mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-18 02:21:13 +00:00
93 lines
2.6 KiB
TypeScript
93 lines
2.6 KiB
TypeScript
import { CanvasNodeKey } from '@/constants';
|
|
import { computed, inject } from 'vue';
|
|
import type { CanvasNodeData } from '@/types';
|
|
import { CanvasNodeRenderType, CanvasConnectionMode } from '@/types';
|
|
|
|
export function useCanvasNode() {
|
|
const node = inject(CanvasNodeKey);
|
|
const data = computed(
|
|
() =>
|
|
node?.data.value ??
|
|
({
|
|
id: '',
|
|
name: '',
|
|
subtitle: '',
|
|
type: '',
|
|
typeVersion: 1,
|
|
disabled: false,
|
|
inputs: [],
|
|
outputs: [],
|
|
connections: { [CanvasConnectionMode.Input]: {}, [CanvasConnectionMode.Output]: {} },
|
|
issues: { items: [], visible: false },
|
|
pinnedData: { count: 0, visible: false },
|
|
execution: {
|
|
running: false,
|
|
},
|
|
runData: { iterations: 0, outputMap: {}, visible: false },
|
|
render: {
|
|
type: CanvasNodeRenderType.Default,
|
|
options: {},
|
|
},
|
|
} satisfies CanvasNodeData),
|
|
);
|
|
|
|
const id = computed(() => node?.id.value ?? '');
|
|
const label = computed(() => node?.label.value ?? '');
|
|
|
|
const subtitle = computed(() => data.value.subtitle);
|
|
const name = computed(() => data.value.name);
|
|
const inputs = computed(() => data.value.inputs);
|
|
const outputs = computed(() => data.value.outputs);
|
|
const connections = computed(() => data.value.connections);
|
|
|
|
const isDisabled = computed(() => data.value.disabled);
|
|
const isReadOnly = computed(() => node?.readOnly.value);
|
|
const isSelected = computed(() => node?.selected.value);
|
|
|
|
const pinnedDataCount = computed(() => data.value.pinnedData.count);
|
|
const hasPinnedData = computed(() => data.value.pinnedData.count > 0);
|
|
|
|
const issues = computed(() => data.value.issues.items ?? []);
|
|
const hasIssues = computed(() => data.value.issues.visible);
|
|
|
|
const executionStatus = computed(() => data.value.execution.status);
|
|
const executionWaiting = computed(() => data.value.execution.waiting);
|
|
const executionWaitingForNext = computed(() => data.value.execution.waitingForNext);
|
|
const executionRunning = computed(() => data.value.execution.running);
|
|
|
|
const runDataOutputMap = computed(() => data.value.runData.outputMap);
|
|
const runDataIterations = computed(() => data.value.runData.iterations);
|
|
const hasRunData = computed(() => data.value.runData.visible);
|
|
|
|
const render = computed(() => data.value.render);
|
|
|
|
const eventBus = computed(() => node?.eventBus.value);
|
|
|
|
return {
|
|
node,
|
|
id,
|
|
name,
|
|
label,
|
|
subtitle,
|
|
inputs,
|
|
outputs,
|
|
connections,
|
|
isDisabled,
|
|
isReadOnly,
|
|
isSelected,
|
|
pinnedDataCount,
|
|
hasPinnedData,
|
|
runDataIterations,
|
|
runDataOutputMap,
|
|
hasRunData,
|
|
issues,
|
|
hasIssues,
|
|
executionStatus,
|
|
executionWaiting,
|
|
executionWaitingForNext,
|
|
executionRunning,
|
|
render,
|
|
eventBus,
|
|
};
|
|
}
|