n8n-editor-ui 1.99.1 → 1.100.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/assets/{AnimatedSpinner-By7QeVvC.js → AnimatedSpinner-D9sOdHbo.js} +1 -1
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-Cod1Wo9M.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CsAls5-8.js} +1 -1
  3. package/dist/assets/{AuthView-BNBwVz1X.js → AuthView-BaqU1uAk.js} +2 -2
  4. package/dist/assets/{ChangePasswordView-BDaQbYrs.js → ChangePasswordView-BI0RJz2-.js} +3 -3
  5. package/dist/assets/CollectionParameter-DuJnPXMe.js +4 -0
  6. package/dist/assets/{CredentialsView-DXsfuDgO.js → CredentialsView-CDPG1S55.js} +7 -7
  7. package/dist/assets/{DemoFooter-DSFmGhEh.js → DemoFooter-BbegDfIh.js} +6 -6
  8. package/dist/assets/{EntityNotFound-CM3vchqf.js → EntityNotFound-DEESqi-f.js} +1 -1
  9. package/dist/assets/{EntityUnAuthorised-F1-20Yc5.js → EntityUnAuthorised-C7DY9PxO.js} +1 -1
  10. package/dist/assets/{ErrorView-CVWsP21x.js → ErrorView-YIQojEmO.js} +1 -1
  11. package/dist/assets/{EvaluationsRootView-Rpyp-cAa.js → EvaluationsRootView-DP6or1Qc.js} +1 -1
  12. package/dist/assets/{EvaluationsView-Bwe9fctZ.js → EvaluationsView-BNdmBMxX.js} +3 -3
  13. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-z8CBn7k3.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-CNPKUen3.js} +2 -2
  14. package/dist/assets/{ExecutionsView-gJvPwY-c.js → ExecutionsView-B_kD18Cs.js} +8 -8
  15. package/dist/assets/{FileSaver.min-Ba1NW2qr.js → FileSaver.min-C7cViz61.js} +1 -1
  16. package/dist/assets/{FixedCollectionParameter-CYa34n6Q.js → FixedCollectionParameter-C_B1JCpo.js} +1 -1
  17. package/dist/assets/{ForgotMyPasswordView-CO717agw.js → ForgotMyPasswordView-DCe8-Gjn.js} +3 -3
  18. package/dist/assets/{InsightsChartAverageRuntime-Bqt5LuVC.js → InsightsChartAverageRuntime-BJWbPoYr.js} +4 -4
  19. package/dist/assets/{InsightsChartFailed-Btuid7Qt.js → InsightsChartFailed-Dr3mHQ7w.js} +4 -4
  20. package/dist/assets/{InsightsChartFailureRate-xiyKo1-3.js → InsightsChartFailureRate-6iYWie9g.js} +4 -4
  21. package/dist/assets/{InsightsChartTimeSaved-D215Ps1V.js → InsightsChartTimeSaved-DI4zq7ni.js} +4 -4
  22. package/dist/assets/{InsightsChartTotal-CblKHPdp.js → InsightsChartTotal-vQ8H5qdx.js} +4 -4
  23. package/dist/assets/{InsightsDashboard-BSFKIr8J.js → InsightsDashboard-BkTlKlCz.js} +10 -10
  24. package/dist/assets/{InsightsPaywall-B0erZlSP.js → InsightsPaywall-J529K3_Q.js} +1 -1
  25. package/dist/assets/{InsightsSummary-CzLvoz3i.js → InsightsSummary-1nuMG8Sn.js} +1 -1
  26. package/dist/assets/{InsightsTableWorkflows-BxPZnO1q.js → InsightsTableWorkflows-C8vIS7i7.js} +2 -2
  27. package/dist/assets/{Logo-h1nzxLUV.js → Logo-CfIAVyXK.js} +1 -1
  28. package/dist/assets/{LogsPanel-B16caVIK.js → LogsPanel-CaVtvitq.js} +164 -114
  29. package/dist/assets/{LogsPanel-BkEQ0mgk.css → LogsPanel-D5R6F35L.css} +39 -39
  30. package/dist/assets/{MainHeader-BRl77CT3.css → MainHeader--6ITU977.css} +18 -18
  31. package/dist/assets/{MainHeader-CERMn-m6.js → MainHeader-rAxgY73d.js} +57 -11
  32. package/dist/assets/{MainSidebar-IAhaxSFu.js → MainSidebar-BF3hfM0o.js} +4 -4
  33. package/dist/assets/{NodeCreation-BdlX_3Tg.js → NodeCreation-BsZaXqbI.js} +3 -3
  34. package/dist/assets/{NodeCreator-OTL7YKC3.js → NodeCreator-CZIV-ACA.js} +4 -4
  35. package/dist/assets/{NodeDetailsView-CJ_lg1pq.js → NodeDetailsView-C_kBwPui.js} +12 -12
  36. package/dist/assets/{NodeView-Bc086Y-p.js → NodeView-B0s9cPrB.js} +480 -433
  37. package/dist/assets/{NodeView-Cpu1z_ye.css → NodeView-RurRbUaI.css} +265 -132
  38. package/dist/assets/{ProjectCardBadge-V9HJb18k.js → ProjectCardBadge-E_IsZc3o.js} +1 -1
  39. package/dist/assets/{ProjectHeader-dEiwp3wt.js → ProjectHeader-D_rQ2Z_z.js} +2 -2
  40. package/dist/assets/{ProjectSettings-BWL04ZmI.js → ProjectSettings-DHkGlkdK.js} +3 -3
  41. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-BuoCEXZQ.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-xlEKKxth.js} +1 -1
  42. package/dist/assets/{ResourcesListLayout-CZdUgv0S.js → ResourcesListLayout-C6nd-oZd.js} +3 -3
  43. package/dist/assets/{ResourcesListLayout-CPwJc792.css → ResourcesListLayout-D6zDTXm4.css} +8 -8
  44. package/dist/assets/{RunData-Ccq7yyEj.js → RunData-D-o34apM.js} +9 -9
  45. package/dist/assets/{RunDataJson-B-jKKTqf.js → RunDataJson-xUE7bObs.js} +6 -6
  46. package/dist/assets/{RunDataJsonActions-BycSAteM.js → RunDataJsonActions-DVaIMZPv.js} +2 -2
  47. package/dist/assets/{RunDataParsedAiContent-CS9WopeO.js → RunDataParsedAiContent-jMIWlUHw.js} +4 -4
  48. package/dist/assets/{RunDataSearch-UZYekh4r.js → RunDataSearch-K9C37VT7.js} +1 -1
  49. package/dist/assets/{RunDataTable-BOaXi4fS.js → RunDataTable-BXSFK5eS.js} +2 -2
  50. package/dist/assets/{SamlOnboarding-C7DJHTbF.js → SamlOnboarding-CqkAXrys.js} +3 -3
  51. package/dist/assets/{SettingsApiView-BQYEiqpt.js → SettingsApiView-BamUupmm.js} +1 -1
  52. package/dist/assets/{SettingsCommunityNodesView-Drjh3D_N.js → SettingsCommunityNodesView-C0qM30Iz.js} +3 -3
  53. package/dist/assets/{SettingsExternalSecrets-H2GHyc8y.js → SettingsExternalSecrets-C0u3pZfh.js} +1 -1
  54. package/dist/assets/{SettingsLdapView-Co5R1Xnn.js → SettingsLdapView-C-_XW2lB.js} +1 -1
  55. package/dist/assets/{SettingsLogStreamingView-BOzKqbJT.js → SettingsLogStreamingView-D4Cljmmp.js} +1 -1
  56. package/dist/assets/{SettingsPersonalView-Dk_BP-Vj.js → SettingsPersonalView-DfnvsBkd.js} +1 -1
  57. package/dist/assets/{SettingsSourceControl-Bio6_jxT.js → SettingsSourceControl-DrYJm2j2.js} +1 -1
  58. package/dist/assets/{SettingsSso-DnHZo2WN.js → SettingsSso-BrDEf60z.js} +102 -63
  59. package/dist/assets/{SettingsUsageAndPlan-CkfJ5FVz.js → SettingsUsageAndPlan-Dc0DFLFk.js} +1 -1
  60. package/dist/assets/{SettingsUsersView-Dd2iTlK9.js → SettingsUsersView-BhW1HdZC.js} +7 -7
  61. package/dist/assets/{SettingsView-3Swluorr.js → SettingsView-Cn27mVjz.js} +1 -1
  62. package/dist/assets/{SetupView-UUO28tUh.js → SetupView-BmpULg7N.js} +3 -3
  63. package/dist/assets/{SetupWorkflowCredentialsButton-1OgGhAkl.js → SetupWorkflowCredentialsButton-BElZF8gF.js} +1 -1
  64. package/dist/assets/{SetupWorkflowFromTemplateView-DSfvqojV.js → SetupWorkflowFromTemplateView-D0F1kt9u.js} +3 -3
  65. package/dist/assets/{SigninView-B7O2oMYP.js → SigninView-9aNXw245.js} +6 -3
  66. package/dist/assets/{SignoutView-BlRB5_No.js → SignoutView-D8Nc8IS2.js} +1 -1
  67. package/dist/assets/{SignupView-eaO_nCgE.js → SignupView-OGFLA9xw.js} +3 -3
  68. package/dist/assets/{TemplateDetails-MnpfplS3.js → TemplateDetails-BvUSc06g.js} +1 -1
  69. package/dist/assets/{TemplateList-DAgqgGqA.js → TemplateList-Bn4ZIEiW.js} +1 -1
  70. package/dist/assets/{TemplatesCollectionView-C6hhLrhu.js → TemplatesCollectionView-CaY2OjkN.js} +5 -5
  71. package/dist/assets/{TemplatesSearchView-D00L2HKa.js → TemplatesSearchView-BHAd1Ups.js} +3 -3
  72. package/dist/assets/{TemplatesView-CsiXLYQI.js → TemplatesView-BEvs_oiL.js} +1 -1
  73. package/dist/assets/{TemplatesWorkflowView-B2bVwsMf.js → TemplatesWorkflowView-DxxN0Ru0.js} +5 -5
  74. package/dist/assets/{VariablesView-BKTHGcH2.js → VariablesView-BMHrLOxM.js} +4 -4
  75. package/dist/assets/{WorkerView-Dp7Vl7G8.js → WorkerView-BVfZLI1e.js} +5 -5
  76. package/dist/assets/{WorkflowActivator-PNXqiMUa.js → WorkflowActivator-FRiMEA-P.js} +2 -2
  77. package/dist/assets/{WorkflowExecutionsInfoAccordion-C28N9THl.js → WorkflowExecutionsInfoAccordion-DHUGDyWM.js} +1 -1
  78. package/dist/assets/{WorkflowExecutionsLandingPage-DomH2kkK.js → WorkflowExecutionsLandingPage-CjrTYaCW.js} +2 -2
  79. package/dist/assets/{WorkflowExecutionsPreview-COYZLJCI.js → WorkflowExecutionsPreview-EUR-wNq6.js} +5 -5
  80. package/dist/assets/{WorkflowExecutionsView-CQxlaJ-N.js → WorkflowExecutionsView-CXvFkk3_.js} +8 -5
  81. package/dist/assets/{WorkflowHistory-oJQmL_-J.js → WorkflowHistory-CDv0Gn-l.js} +3 -3
  82. package/dist/assets/{WorkflowOnboardingView-_eND7v8h.js → WorkflowOnboardingView-DudGhdYF.js} +1 -1
  83. package/dist/assets/{WorkflowPreview-DfidhxjI.js → WorkflowPreview-C8W8a5fW.js} +1 -1
  84. package/dist/assets/{WorkflowsView-BPgw_hVG.js → WorkflowsView-BG6kQhDP.js} +8 -8
  85. package/dist/assets/{chartjs.utils-BaFuULEH.js → chartjs.utils-iOjKsrqH.js} +2 -2
  86. package/dist/assets/{en-gSl4aEB-.js → en-BUHUsdZz.js} +4 -1
  87. package/dist/assets/{global-link-actions-D9rAyY2i.js → global-link-actions-BTpxVk8y.js} +1 -1
  88. package/dist/assets/{import-curl-DznX-6zQ.js → import-curl-nlEV28nJ.js} +1 -1
  89. package/dist/assets/{index-CKxPg00R.js → index-Cb_lQ9m_.js} +22288 -22398
  90. package/dist/assets/{index-C1XlnjOl.css → index-CeLskvTy.css} +56 -25
  91. package/dist/assets/{index-DakiuyrJ.js → index-RkzJvnTY.js} +1 -1
  92. package/dist/assets/{pickBy-BrbjokRd.js → pickBy-CKcRFCvr.js} +1 -1
  93. package/dist/assets/{templateActions-XYE_erXB.js → templateActions-CL3-gpaI.js} +1 -1
  94. package/dist/assets/{useBeforeUnload-5dUIo4WK.js → useBeforeUnload-BIFFkMiK.js} +1 -1
  95. package/dist/assets/{useExecutionDebugging-DLm_-3mN.js → useExecutionDebugging-CTegQXp3.js} +1 -1
  96. package/dist/assets/{useExecutionHelpers-C_9FYOFV.js → useExecutionHelpers-Ae2t-uj6.js} +1 -1
  97. package/dist/assets/{useImportCurlCommand-DjXQG-IU.js → useImportCurlCommand-Cvt_Clpn.js} +2 -2
  98. package/dist/assets/useKeybindings-BZXwu-r0.js +84 -0
  99. package/dist/assets/{useProjectPages-CbDSyEjz.js → useProjectPages-BAOeVvhJ.js} +1 -1
  100. package/dist/assets/{usePushConnection-Dt3lpxPG.js → usePushConnection-BHHONRzA.js} +2 -2
  101. package/dist/assets/{useWorkflowActivate-5rNzZIb4.js → useWorkflowActivate-BInq6R2j.js} +1 -1
  102. package/dist/index.html +2 -2
  103. package/package.json +1 -1
  104. package/dist/assets/CollectionParameter-C2u5mcQf.js +0 -4
  105. package/dist/assets/canvas-CIm8w6n1.js +0 -5
@@ -1,11 +1,11 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-BdlX_3Tg.js","assets/index-CKxPg00R.js","assets/index-C1XlnjOl.css","assets/NodeCreation-RKvezEeg.css","assets/NodeDetailsView-CJ_lg1pq.js","assets/RunData-Ccq7yyEj.js","assets/FileSaver.min-Ba1NW2qr.js","assets/useExecutionHelpers-C_9FYOFV.js","assets/RunData-B5_okvCv.css","assets/RunDataParsedAiContent-CS9WopeO.js","assets/RunDataParsedAiContent-9EEUzCKp.css","assets/useWorkflowActivate-5rNzZIb4.js","assets/import-curl-DznX-6zQ.js","assets/global-link-actions-D9rAyY2i.js","assets/useExecutionDebugging-DLm_-3mN.js","assets/useBeforeUnload-5dUIo4WK.js","assets/canvas-CIm8w6n1.js","assets/NodeDetailsView-DWA1ZgwG.css","assets/SetupWorkflowCredentialsButton-1OgGhAkl.js"])))=>i.map(i=>d[i]);
2
- import { _ as _export_sfc$1, i as createElementBlock, g as openBlock, k as createBaseVNode, d as defineComponent, cc as PanelPosition, cd as useVueFlow, bJ as toRef, e as createBlock, w as withCtx, A as renderSlot, f as createCommentVNode, F as Fragment, j as createVNode, bQ as resolveDynamicComponent, m as unref, ce as _sfc_main$N, x as computed, h as resolveComponent, c as useI18n, b_ as KeyboardShortcutTooltip, n as normalizeClass, bf as NodeConnectionTypes, cf as getBezierPath, cg as getSmoothStepPath, ch as Position, bM as inject, ci as CanvasKey, a0 as useCssModule, cj as parseCanvasConnectionHandleString, r as ref, o as onMounted, G as renderList, ck as _sfc_main$d$1, D as normalizeStyle, J as useUIStore, bw as useNodeTypesStore, T as useWorkflowsStore, a3 as useSourceControlStore, ab as getResourcePermissions, cl as isNodeWithWorkflowSelector, cm as getSubworkflowId, cn as isPresent, $ as watch, co as getMousePosition, aG as STICKY_NODE_TYPE, bp as usePinnedData, cp as NOT_DUPLICATABLE_NODE_TYPES, cq as isExecutable, cr as Teleport, c0 as useStyles, c1 as N8nActionDropdown, bz as getDefaultExportFromCjs, cs as NODE_SIZE, ct as CanvasNodeRenderType, cu as GRID_SIZE, c3 as useThrottleFn, cv as getRectOfNodes, bT as onUnmounted, cw as useActiveElement, cx as useDeviceSupport, cy as useEventListener$1, cz as onKeyDown, cA as onKeyUp, cB as useSlots, cC as useAttrs, cD as getBoundsofRects, cE as watchEffect, t as toDisplayString, cF as getConnectedEdges, bO as normalizeProps, bK as mergeProps, bu as provide, ay as h, b1 as createSlots, cG as isValidNodeConnectionType, cH as _sfc_main$3$1, cI as CanvasConnectionMode, cJ as CanvasNodeKey, cK as mergeModels, cL as useModel, z as onBeforeUnmount, br as useNodeHelpers, cM as TitledList, aZ as N8nTooltip, l as createTextVNode, cN as CanvasNodeDirtiness, v as useSettingsStore, bv as useCanvasOperations, cO as refDebounced, ag as useTemplateRef, cP as useElementSize, bF as _sfc_main$O, ah as InlineRename, aA as useNDVStore, cQ as isCommunityPackageName, cR as NPM_PACKAGE_DOCS_BASE_URL, cS as BUILTIN_NODES_DOCS_URL, cT as COMMUNITY_NODES_INSTALLATION_DOCS_URL, aX as useExternalHooks, am as useTelemetry, bW as useClipboard, a9 as useWorkflowHelpers, a as useToast, cU as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, cV as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, cW as MCP_TRIGGER_NODE_TYPE, cX as FORM_TRIGGER_NODE_TYPE, bo as CHAT_TRIGGER_NODE_TYPE, aY as onClickOutside, cY as toRef$1, cZ as tryOnScopeDispose, c_ as toValue, c$ as isIOS, d0 as noop$2, d1 as isObject, d2 as isClient, I as useDebounce, d3 as getNodeInputs, d4 as SWITCH_NODE_TYPE, d5 as isEqual, d6 as captureException, aC as usePostHog, d7 as useCredentialsStore, u as useUsersStore, a4 as useProjectsStore, d8 as OPEN_AI_API_CREDENTIAL_TYPE, d9 as AI_CREDITS_EXPERIMENT, da as useHistoryStore, af as ProjectTypes, db as getConnectionTypes, cb as ndvEventBus, dc as _sfc_main$P, dd as CUSTOM_NODES_DOCS_URL, aI as withDirectives, aJ as vShow, de as _sfc_main$Q, df as NodeCredentials, bE as withModifiers, dg as get$3, dh as getNodeParameters, di as deepCopy, dj as set$3, dk as unset, dl as getUpdatedToolDescription, dm as isDefaultNodeName, dn as makeNodeName, dp as RenameNodeCommand, dq as isINodePropertyCollectionList, dr as isINodePropertiesList, ds as isINodePropertyOptionsList, dt as displayParameter, E as createEventBus, du as useGetPointerPosition, dv as clamp, dw as NodeId, dx as useNodeCreatorStore, an as nodeViewEventBus, dy as NODE_CREATOR_OPEN_SOURCES, dz as useBuilderStore, bV as withKeys, dA as CanvasNodeHandleKey, dB as Transition$1, dC as _sfc_main$f$1, b as useRouter, bq as useLogsStore, bs as useRunWorkflow, q as N8nButton, dD as insertSpacersBetweenEndpoints, dE as createCanvasConnectionHandleString, B as nextTick, dF as _sfc_main$1$4, dG as MarkerType, dH as Suspense, bP as guardReactiveProps, dI as updateViewportToContainNodes, dJ as useNodeDirtiness, dK as CUSTOM_API_CALL_KEY, dL as mapLegacyEndpointsToCanvasConnectionPort, dM as getNodeOutputs, dN as getTriggerNodeServiceName, dO as sanitizeHtml, dP as WAIT_NODE_TYPE, dQ as SEND_AND_WAIT_OPERATION, dR as FORM_NODE_TYPE, dS as WAIT_INDEFINITELY, dT as checkOverlap, dU as SIMULATE_NODE_TYPE, dV as SIMULATE_TRIGGER_NODE_TYPE, dW as mapLegacyConnectionsToCanvasConnections, dX as getNodeIconSource, dY as refThrottled, be as isChatNode, dZ as truncateBeforeLast, p as N8nText, d_ as reactive, U as useRoute, a7 as useDocumentTitle, a8 as useWorkflowSaving, d$ as useEnvironmentsStore, e0 as useExternalSecretsStore, a1 as useRootStore, aB as useExecutionsStore, a2 as useCanvasStore, a6 as useNpsSurveyStore, H as useTagsStore, S as usePushConnectionStore, aV as useTemplatesStore, a5 as useFoldersStore, e1 as useAgentRequestStore, e2 as useWorkflowExtraction, W as PLACEHOLDER_EMPTY_WORKFLOW_ID, e3 as NEW_WORKFLOW_ID, V as VIEWS, bx as START_NODE_TYPE, e4 as getNodeViewTab, y as MAIN_HEADER_TABS, e5 as VALID_WORKFLOW_IMPORT_URL_REGEX, ao as useMessage, ap as MODAL_CONFIRM, e6 as jsonParse, bn as MANUAL_CHAT_TRIGGER_NODE_TYPE, e7 as EVALUATION_TRIGGER_NODE_TYPE, e8 as getBounds, e9 as onBeforeRouteLeave, aH as onBeforeMount, aq as WORKFLOW_SETTINGS_MODAL_KEY, ea as onActivated, eb as onDeactivated, ec as defineAsyncComponent, ed as N8nCallout, aw as __vitePreload, ae as EnterpriseEditionFeature, ee as EVALUATION_NODE_TYPE, ef as getEasyAiWorkflowJson, eg as getRagStarterWorkflowJson, eh as tryToParseNumber, aO as sourceControlEventBus, ei as getNodesWithNormalizedPosition, ej as historyBus, ek as needsAgentInput, el as FROM_AI_PARAMETERS_MODAL_KEY, em as DRAG_EVENT_DATA_KEY } from "./index-CKxPg00R.js";
3
- import { i as importCurlEventBus } from "./import-curl-DznX-6zQ.js";
4
- import { g as globalLinkActionsEventBus } from "./global-link-actions-D9rAyY2i.js";
5
- import { u as useExecutionDebugging } from "./useExecutionDebugging-DLm_-3mN.js";
6
- import { u as useBeforeUnload } from "./useBeforeUnload-5dUIo4WK.js";
7
- import { c as canvasEventBus } from "./canvas-CIm8w6n1.js";
8
- const _sfc_main$M = {};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-BsZaXqbI.js","assets/index-Cb_lQ9m_.js","assets/index-CeLskvTy.css","assets/NodeCreation-RKvezEeg.css","assets/NodeDetailsView-C_kBwPui.js","assets/RunData-D-o34apM.js","assets/FileSaver.min-C7cViz61.js","assets/useExecutionHelpers-Ae2t-uj6.js","assets/RunData-B5_okvCv.css","assets/RunDataParsedAiContent-jMIWlUHw.js","assets/RunDataParsedAiContent-9EEUzCKp.css","assets/useWorkflowActivate-BInq6R2j.js","assets/useKeybindings-BZXwu-r0.js","assets/import-curl-nlEV28nJ.js","assets/global-link-actions-BTpxVk8y.js","assets/useExecutionDebugging-CTegQXp3.js","assets/useBeforeUnload-BIFFkMiK.js","assets/NodeDetailsView-DWA1ZgwG.css","assets/SetupWorkflowCredentialsButton-BElZF8gF.js"])))=>i.map(i=>d[i]);
2
+ import { _ as _export_sfc$1, i as createElementBlock, g as openBlock, k as createBaseVNode, d as defineComponent, cf as PanelPosition, cg as useVueFlow, bJ as toRef, e as createBlock, w as withCtx, A as renderSlot, f as createCommentVNode, F as Fragment, j as createVNode, bQ as resolveDynamicComponent, m as unref, ch as _sfc_main$O, x as computed, h as resolveComponent, c as useI18n, b$ as KeyboardShortcutTooltip, n as normalizeClass, bf as NodeConnectionTypes, ci as getBezierPath, cj as getSmoothStepPath, ck as Position, bM as inject, cl as CanvasKey, a0 as useCssModule, cm as parseCanvasConnectionHandleString, r as ref, o as onMounted, G as renderList, cn as _sfc_main$d$1, D as normalizeStyle, J as useUIStore, bw as useNodeTypesStore, T as useWorkflowsStore, a3 as useSourceControlStore, ab as getResourcePermissions, co as isNodeWithWorkflowSelector, cp as getSubworkflowId, cq as isPresent, $ as watch, cr as getMousePosition, aG as STICKY_NODE_TYPE, bp as usePinnedData, cs as NOT_DUPLICATABLE_NODE_TYPES, ct as isExecutable, cu as Teleport, c1 as useStyles, c2 as N8nActionDropdown, bz as getDefaultExportFromCjs, cv as NODE_SIZE, cw as CanvasNodeRenderType, cx as GRID_SIZE, c4 as useThrottleFn, cy as getRectOfNodes, bT as onUnmounted, cz as onKeyDown, cA as onKeyUp, cB as useSlots, cC as useAttrs, cD as getBoundsofRects, cE as watchEffect, t as toDisplayString, cF as getConnectedEdges, bO as normalizeProps, bK as mergeProps, bu as provide, ay as h, b1 as createSlots, cG as isValidNodeConnectionType, cH as _sfc_main$3$1, cI as CanvasConnectionMode, cJ as CanvasNodeKey, cK as mergeModels, cL as useModel, z as onBeforeUnmount, br as useNodeHelpers, cM as TitledList, aZ as N8nTooltip, l as createTextVNode, cN as CanvasNodeDirtiness, v as useSettingsStore, bv as useCanvasOperations, cO as refDebounced, ag as useTemplateRef, cP as useElementSize, bF as _sfc_main$P, ah as InlineRename, aA as useNDVStore, cQ as isCommunityPackageName, cR as NPM_PACKAGE_DOCS_BASE_URL, cS as BUILTIN_NODES_DOCS_URL, cT as COMMUNITY_NODES_INSTALLATION_DOCS_URL, aX as useExternalHooks, am as useTelemetry, bW as useClipboard, a9 as useWorkflowHelpers, a as useToast, cU as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, cV as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, cW as MCP_TRIGGER_NODE_TYPE, cX as FORM_TRIGGER_NODE_TYPE, bo as CHAT_TRIGGER_NODE_TYPE, aY as onClickOutside, cY as toRef$1, cZ as tryOnScopeDispose, c_ as toValue, c$ as isIOS, d0 as noop$2, d1 as isObject, d2 as isClient, I as useDebounce, d3 as getNodeInputs, d4 as SWITCH_NODE_TYPE, d5 as isEqual, d6 as captureException, aC as usePostHog, d7 as useCredentialsStore, u as useUsersStore, a4 as useProjectsStore, d8 as OPEN_AI_API_CREDENTIAL_TYPE, d9 as AI_CREDITS_EXPERIMENT, da as useHistoryStore, af as ProjectTypes, db as getConnectionTypes, ce as ndvEventBus, bE as withModifiers, dc as _sfc_main$Q, a$ as _sfc_main$R, dd as CUSTOM_NODES_DOCS_URL, aI as withDirectives, aJ as vShow, de as _sfc_main$S, df as NodeCredentials, dg as get$3, dh as getNodeParameters, di as deepCopy, dj as set$3, dk as unset, dl as getUpdatedToolDescription, dm as isDefaultNodeName, dn as makeNodeName, dp as RenameNodeCommand, dq as isINodePropertyCollectionList, dr as isINodePropertiesList, ds as isINodePropertyOptionsList, dt as displayParameter, E as createEventBus, du as calculateNodeSize, dv as useGetPointerPosition, dw as clamp, dx as NodeId, dy as useNodeCreatorStore, an as nodeViewEventBus, dz as NODE_CREATOR_OPEN_SOURCES, dA as useBuilderStore, bV as withKeys, dB as CanvasNodeHandleKey, dC as Transition$1, dD as _sfc_main$f$1, b as useRouter, bq as useLogsStore, bs as useRunWorkflow, q as N8nButton, dE as insertSpacersBetweenEndpoints, dF as createCanvasConnectionHandleString, dG as useDeviceSupport, dH as isOutsideSelected, B as nextTick, dI as _sfc_main$1$4, dJ as MarkerType, dK as Suspense, bP as guardReactiveProps, dL as updateViewportToContainNodes, dM as useNodeDirtiness, dN as CUSTOM_API_CALL_KEY, dO as mapLegacyEndpointsToCanvasConnectionPort, dP as getNodeOutputs, dQ as getTriggerNodeServiceName, dR as sanitizeHtml, dS as WAIT_NODE_TYPE, dT as SEND_AND_WAIT_OPERATION, dU as FORM_NODE_TYPE, dV as WAIT_INDEFINITELY, dW as checkOverlap, dX as SIMULATE_NODE_TYPE, dY as SIMULATE_TRIGGER_NODE_TYPE, dZ as mapLegacyConnectionsToCanvasConnections, d_ as getNodeIconSource, p as N8nText, d$ as refThrottled, be as isChatNode, e0 as truncateBeforeLast, e1 as reactive, U as useRoute, a7 as useDocumentTitle, a8 as useWorkflowSaving, e2 as useEnvironmentsStore, e3 as useExternalSecretsStore, a1 as useRootStore, aB as useExecutionsStore, a2 as useCanvasStore, a6 as useNpsSurveyStore, H as useTagsStore, S as usePushConnectionStore, aV as useTemplatesStore, a5 as useFoldersStore, e4 as useAgentRequestStore, e5 as useWorkflowExtraction, W as PLACEHOLDER_EMPTY_WORKFLOW_ID, e6 as NEW_WORKFLOW_ID, V as VIEWS, bx as START_NODE_TYPE, e7 as getNodeViewTab, y as MAIN_HEADER_TABS, e8 as VALID_WORKFLOW_IMPORT_URL_REGEX, ao as useMessage, ap as MODAL_CONFIRM, e9 as jsonParse, bn as MANUAL_CHAT_TRIGGER_NODE_TYPE, ea as EVALUATION_TRIGGER_NODE_TYPE, eb as getBounds, ec as onBeforeRouteLeave, aH as onBeforeMount, aq as WORKFLOW_SETTINGS_MODAL_KEY, ed as onActivated, ee as onDeactivated, ef as defineAsyncComponent, eg as N8nCallout, aw as __vitePreload, ae as EnterpriseEditionFeature, eh as EVALUATION_NODE_TYPE, ei as getEasyAiWorkflowJson, ej as getRagStarterWorkflowJson, ek as tryToParseNumber, aO as sourceControlEventBus, el as getNodesWithNormalizedPosition, em as historyBus, en as needsAgentInput, eo as FROM_AI_PARAMETERS_MODAL_KEY, ep as DRAG_EVENT_DATA_KEY } from "./index-Cb_lQ9m_.js";
3
+ import { u as useKeybindings, c as canvasEventBus } from "./useKeybindings-BZXwu-r0.js";
4
+ import { i as importCurlEventBus } from "./import-curl-nlEV28nJ.js";
5
+ import { g as globalLinkActionsEventBus } from "./global-link-actions-BTpxVk8y.js";
6
+ import { u as useExecutionDebugging } from "./useExecutionDebugging-CTegQXp3.js";
7
+ import { u as useBeforeUnload } from "./useBeforeUnload-BIFFkMiK.js";
8
+ const _sfc_main$N = {};
9
9
  const _hoisted_1$h = {
10
10
  xmlns: "http://www.w3.org/2000/svg",
11
11
  viewBox: "0 0 16 16"
@@ -18,7 +18,7 @@ function _sfc_render$1(_ctx, _cache) {
18
18
  }, null, -1)
19
19
  ]));
20
20
  }
21
- const TidyUpIcon = /* @__PURE__ */ _export_sfc$1(_sfc_main$M, [["render", _sfc_render$1]]);
21
+ const TidyUpIcon = /* @__PURE__ */ _export_sfc$1(_sfc_main$N, [["render", _sfc_render$1]]);
22
22
  const _sfc_main$1$3 = {
23
23
  name: "ControlButton",
24
24
  compatConfig: { MODE: 3 }
@@ -101,7 +101,7 @@ const __default__$4 = {
101
101
  name: "Controls",
102
102
  compatConfig: { MODE: 3 }
103
103
  };
104
- const _sfc_main$L = /* @__PURE__ */ defineComponent({
104
+ const _sfc_main$M = /* @__PURE__ */ defineComponent({
105
105
  ...__default__$4,
106
106
  props: {
107
107
  showZoom: { type: Boolean, default: true },
@@ -144,7 +144,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
144
144
  emit("interactionChange", !isInteractive.value);
145
145
  }
146
146
  return (_ctx, _cache) => {
147
- return openBlock(), createBlock(unref(_sfc_main$N), {
147
+ return openBlock(), createBlock(unref(_sfc_main$O), {
148
148
  class: "vue-flow__controls",
149
149
  position: _ctx.position
150
150
  }, {
@@ -217,7 +217,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
217
217
  };
218
218
  }
219
219
  });
220
- const _sfc_main$K = /* @__PURE__ */ defineComponent({
220
+ const _sfc_main$L = /* @__PURE__ */ defineComponent({
221
221
  __name: "CanvasControlButtons",
222
222
  props: {
223
223
  zoom: { default: 1 },
@@ -247,7 +247,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
247
247
  return (_ctx, _cache) => {
248
248
  const _component_N8nIconButton = resolveComponent("N8nIconButton");
249
249
  const _component_N8nButton = resolveComponent("N8nButton");
250
- return openBlock(), createBlock(unref(_sfc_main$L), {
250
+ return openBlock(), createBlock(unref(_sfc_main$M), {
251
251
  "show-zoom": false,
252
252
  "show-fit-view": false
253
253
  }, {
@@ -342,13 +342,13 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
342
342
  }
343
343
  });
344
344
  const iconButton = "_iconButton_fx9xi_123";
345
- const style0$v = {
345
+ const style0$w = {
346
346
  iconButton
347
347
  };
348
- const cssModules$v = {
349
- "$style": style0$v
348
+ const cssModules$w = {
349
+ "$style": style0$w
350
350
  };
351
- const __unplugin_components_1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$K, [["__cssModules", cssModules$v]]);
351
+ const __unplugin_components_1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$L, [["__cssModules", cssModules$w]]);
352
352
  const EDGE_PADDING_BOTTOM = 130;
353
353
  const EDGE_PADDING_X = 40;
354
354
  const EDGE_BORDER_RADIUS = 16;
@@ -405,7 +405,7 @@ function injectStrict(key, fallback) {
405
405
  function useCanvas() {
406
406
  return injectStrict(CanvasKey);
407
407
  }
408
- const _sfc_main$J = /* @__PURE__ */ defineComponent({
408
+ const _sfc_main$K = /* @__PURE__ */ defineComponent({
409
409
  __name: "CanvasConnectionLine",
410
410
  props: {
411
411
  sourceX: {},
@@ -472,14 +472,14 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
472
472
  });
473
473
  const edge$1 = "_edge_cbk94_123";
474
474
  const visible = "_visible_cbk94_129";
475
- const style0$u = {
475
+ const style0$v = {
476
476
  edge: edge$1,
477
477
  visible
478
478
  };
479
- const cssModules$u = {
480
- "$style": style0$u
479
+ const cssModules$v = {
480
+ "$style": style0$v
481
481
  };
482
- const __unplugin_components_0$5 = /* @__PURE__ */ _export_sfc$1(_sfc_main$J, [["__cssModules", cssModules$u]]);
482
+ const __unplugin_components_0$5 = /* @__PURE__ */ _export_sfc$1(_sfc_main$K, [["__cssModules", cssModules$v]]);
483
483
  const position = ref([0, 0]);
484
484
  const isOpen = ref(false);
485
485
  const target = ref();
@@ -710,7 +710,7 @@ const useContextMenu = (onAction = () => {
710
710
  _dispatchAction
711
711
  };
712
712
  };
713
- const _sfc_main$I = /* @__PURE__ */ defineComponent({
713
+ const _sfc_main$J = /* @__PURE__ */ defineComponent({
714
714
  __name: "ContextMenu",
715
715
  emits: ["action"],
716
716
  setup(__props, { emit: __emit }) {
@@ -778,14 +778,14 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
778
778
  });
779
779
  const contextMenu = "_contextMenu_12fz3_123";
780
780
  const activator = "_activator_12fz3_127";
781
- const style0$t = {
781
+ const style0$u = {
782
782
  contextMenu,
783
783
  activator
784
784
  };
785
- const cssModules$t = {
786
- "$style": style0$t
785
+ const cssModules$u = {
786
+ "$style": style0$u
787
787
  };
788
- const ContextMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$I, [["__cssModules", cssModules$t]]);
788
+ const ContextMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$J, [["__cssModules", cssModules$u]]);
789
789
  var graph;
790
790
  var hasRequiredGraph;
791
791
  function requireGraph() {
@@ -4729,82 +4729,6 @@ function useCanvasTraversal({ getIncomers, getOutgoers }) {
4729
4729
  getUpstreamNodes
4730
4730
  };
4731
4731
  }
4732
- const useKeybindings = (keymap, options) => {
4733
- const activeElement = useActiveElement();
4734
- const { isCtrlKeyPressed } = useDeviceSupport();
4735
- const isDisabled = computed(() => unref(options?.disabled));
4736
- const ignoreKeyPresses = computed(() => {
4737
- if (!activeElement.value) return false;
4738
- const active = activeElement.value;
4739
- const isInput = ["INPUT", "TEXTAREA"].includes(active.tagName);
4740
- const isContentEditable = active.closest("[contenteditable]") !== null;
4741
- const isIgnoreClass = active.closest(".ignore-key-press-canvas") !== null;
4742
- return isInput || isContentEditable || isIgnoreClass;
4743
- });
4744
- const normalizedKeymap = computed(
4745
- () => Object.fromEntries(
4746
- Object.entries(keymap.value).flatMap(([shortcut, handler]) => {
4747
- const shortcuts = shortcut.split("|");
4748
- return shortcuts.map((s) => [normalizeShortcutString(s), handler]);
4749
- })
4750
- )
4751
- );
4752
- function shortcutPartsToString(parts) {
4753
- return parts.map((key) => key.toLowerCase()).sort((a, b) => a.localeCompare(b)).join("+");
4754
- }
4755
- function normalizeShortcutString(shortcut) {
4756
- if (shortcut.length === 1) {
4757
- return shortcut.toLowerCase();
4758
- }
4759
- const splitChars = ["+", "_", "-"];
4760
- const splitCharsRegEx = splitChars.reduce((acc, char) => {
4761
- if (shortcut.startsWith(char) || shortcut.endsWith(char)) {
4762
- return acc;
4763
- }
4764
- return char + acc;
4765
- }, "");
4766
- return shortcutPartsToString(shortcut.split(new RegExp(`[${splitCharsRegEx}]`)));
4767
- }
4768
- function keyboardEventCodeToKey(code) {
4769
- if (code.startsWith("Digit")) {
4770
- return code.replace("Digit", "").toLowerCase();
4771
- } else if (code.startsWith("Key")) {
4772
- return code.replace("Key", "").toLowerCase();
4773
- }
4774
- return code.toLowerCase();
4775
- }
4776
- function toShortcutString(event) {
4777
- const { shiftKey, altKey } = event;
4778
- const ctrlKey = isCtrlKeyPressed(event);
4779
- const keys = "key" in event ? [event.key] : [];
4780
- const codes = "code" in event ? [keyboardEventCodeToKey(event.code)] : [];
4781
- const modifiers = [];
4782
- if (shiftKey) {
4783
- modifiers.push("shift");
4784
- }
4785
- if (ctrlKey) {
4786
- modifiers.push("ctrl");
4787
- }
4788
- if (altKey) {
4789
- modifiers.push("alt");
4790
- }
4791
- return {
4792
- byKey: shortcutPartsToString([...modifiers, ...keys]),
4793
- byCode: shortcutPartsToString([...modifiers, ...codes])
4794
- };
4795
- }
4796
- function onKeyDown2(event) {
4797
- if (ignoreKeyPresses.value || isDisabled.value) return;
4798
- const { byKey, byCode } = toShortcutString(event);
4799
- const handler = normalizedKeymap.value[byKey] ?? normalizedKeymap.value[byCode];
4800
- if (handler) {
4801
- event.preventDefault();
4802
- event.stopPropagation();
4803
- handler(event);
4804
- }
4805
- }
4806
- useEventListener$1(document, "keydown", onKeyDown2);
4807
- };
4808
4732
  function useShortKeyPress(key, fn, {
4809
4733
  dedupe = true,
4810
4734
  threshold = 300,
@@ -7376,7 +7300,7 @@ const __default__$3 = {
7376
7300
  name: "MiniMap",
7377
7301
  compatConfig: { MODE: 3 }
7378
7302
  };
7379
- const _sfc_main$H = /* @__PURE__ */ defineComponent({
7303
+ const _sfc_main$I = /* @__PURE__ */ defineComponent({
7380
7304
  ...__default__$3,
7381
7305
  props: {
7382
7306
  nodeColor: { type: [String, Function], default: "#e2e2e2" },
@@ -7539,7 +7463,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
7539
7463
  emit("nodeMouseleave", param);
7540
7464
  }
7541
7465
  return (_ctx, _cache) => {
7542
- return openBlock(), createBlock(unref(_sfc_main$N), {
7466
+ return openBlock(), createBlock(unref(_sfc_main$O), {
7543
7467
  position: _ctx.position,
7544
7468
  class: normalizeClass(["vue-flow__minimap", { pannable: _ctx.pannable, zoomable: _ctx.zoomable }])
7545
7469
  }, {
@@ -7599,7 +7523,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
7599
7523
  });
7600
7524
  const _hoisted_1$e = ["id", "x", "y", "width", "height", "patternTransform"];
7601
7525
  const _hoisted_2$9 = ["d", "stroke-width"];
7602
- const _sfc_main$G = /* @__PURE__ */ defineComponent({
7526
+ const _sfc_main$H = /* @__PURE__ */ defineComponent({
7603
7527
  __name: "CanvasBackgroundStripedPattern",
7604
7528
  props: {
7605
7529
  id: {},
@@ -7629,7 +7553,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7629
7553
  };
7630
7554
  }
7631
7555
  });
7632
- const CanvasBackgroundStripedPattern = /* @__PURE__ */ _export_sfc$1(_sfc_main$G, [["__scopeId", "data-v-161512f5"]]);
7556
+ const CanvasBackgroundStripedPattern = /* @__PURE__ */ _export_sfc$1(_sfc_main$H, [["__scopeId", "data-v-161512f5"]]);
7633
7557
  var BackgroundVariant = /* @__PURE__ */ ((BackgroundVariant2) => {
7634
7558
  BackgroundVariant2["Lines"] = "lines";
7635
7559
  BackgroundVariant2["Dots"] = "dots";
@@ -7665,7 +7589,7 @@ const __default__$2 = {
7665
7589
  name: "Background",
7666
7590
  compatConfig: { MODE: 3 }
7667
7591
  };
7668
- const _sfc_main$F = /* @__PURE__ */ defineComponent({
7592
+ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7669
7593
  ...__default__$2,
7670
7594
  props: {
7671
7595
  id: {},
@@ -7750,7 +7674,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
7750
7674
  };
7751
7675
  }
7752
7676
  });
7753
- const _sfc_main$E = /* @__PURE__ */ defineComponent({
7677
+ const _sfc_main$F = /* @__PURE__ */ defineComponent({
7754
7678
  __name: "CanvasBackground",
7755
7679
  props: {
7756
7680
  striped: { type: Boolean },
@@ -7758,7 +7682,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7758
7682
  },
7759
7683
  setup(__props) {
7760
7684
  return (_ctx, _cache) => {
7761
- return openBlock(), createBlock(unref(_sfc_main$F), {
7685
+ return openBlock(), createBlock(unref(_sfc_main$G), {
7762
7686
  "data-test-id": "canvas-background",
7763
7687
  "pattern-color": "#aaa",
7764
7688
  gap: unref(GRID_SIZE)
@@ -7781,7 +7705,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7781
7705
  }
7782
7706
  });
7783
7707
  const _hoisted_1$c = ["id"];
7784
- const _sfc_main$D = /* @__PURE__ */ defineComponent({
7708
+ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7785
7709
  __name: "CanvasArrowHeadMarker",
7786
7710
  props: {
7787
7711
  id: {}
@@ -7814,7 +7738,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
7814
7738
  };
7815
7739
  }
7816
7740
  });
7817
- const _sfc_main$C = /* @__PURE__ */ defineComponent({
7741
+ const _sfc_main$D = /* @__PURE__ */ defineComponent({
7818
7742
  __name: "CanvasEdgeToolbar",
7819
7743
  props: {
7820
7744
  type: {}
@@ -7865,17 +7789,17 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
7865
7789
  }
7866
7790
  });
7867
7791
  const canvasEdgeToolbar = "_canvasEdgeToolbar_uogmx_123";
7868
- const style0$s = {
7792
+ const style0$t = {
7869
7793
  canvasEdgeToolbar
7870
7794
  };
7871
- const cssModules$s = {
7872
- "$style": style0$s
7795
+ const cssModules$t = {
7796
+ "$style": style0$t
7873
7797
  };
7874
- const CanvasEdgeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$C, [["__cssModules", cssModules$s]]);
7798
+ const CanvasEdgeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$D, [["__cssModules", cssModules$t]]);
7875
7799
  const _hoisted_1$b = ["data-source-node-name", "data-target-node-name"];
7876
7800
  const _hoisted_2$7 = ["data-source-node-name", "data-target-node-name", "data-edge-status"];
7877
7801
  const delayedHoveredTimeout = 600;
7878
- const _sfc_main$B = /* @__PURE__ */ defineComponent({
7802
+ const _sfc_main$C = /* @__PURE__ */ defineComponent({
7879
7803
  __name: "CanvasEdge",
7880
7804
  props: {
7881
7805
  id: {},
@@ -8055,15 +7979,15 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
8055
7979
  const edge = "_edge_fyzmo_123";
8056
7980
  const edgeLabelWrapper = "_edgeLabelWrapper_fyzmo_127";
8057
7981
  const edgeLabel = "_edgeLabel_fyzmo_127";
8058
- const style0$r = {
7982
+ const style0$s = {
8059
7983
  edge,
8060
7984
  edgeLabelWrapper,
8061
7985
  edgeLabel
8062
7986
  };
8063
- const cssModules$r = {
8064
- "$style": style0$r
7987
+ const cssModules$s = {
7988
+ "$style": style0$s
8065
7989
  };
8066
- const Edge = /* @__PURE__ */ _export_sfc$1(_sfc_main$B, [["__cssModules", cssModules$r]]);
7990
+ const Edge = /* @__PURE__ */ _export_sfc$1(_sfc_main$C, [["__cssModules", cssModules$s]]);
8067
7991
  function useCanvasNode() {
8068
7992
  const node2 = inject(CanvasNodeKey);
8069
7993
  const data = computed(
@@ -8141,7 +8065,7 @@ function useCanvasNode() {
8141
8065
  }
8142
8066
  const _hoisted_1$a = ["title"];
8143
8067
  const _hoisted_2$6 = ["onClick"];
8144
- const _sfc_main$A = /* @__PURE__ */ defineComponent({
8068
+ const _sfc_main$B = /* @__PURE__ */ defineComponent({
8145
8069
  __name: "CanvasNodeStickyColorSelector",
8146
8070
  props: {
8147
8071
  "visible": { type: Boolean },
@@ -8235,7 +8159,7 @@ const content = "_content_3lp7u_129";
8235
8159
  const color = "_color_3lp7u_136";
8236
8160
  const selected$2 = "_selected_3lp7u_148";
8237
8161
  const option = "_option_3lp7u_173";
8238
- const style0$q = {
8162
+ const style0$r = {
8239
8163
  popover,
8240
8164
  content,
8241
8165
  color,
@@ -8249,11 +8173,11 @@ const style0$q = {
8249
8173
  "sticky-color-7": "_sticky-color-7_3lp7u_169",
8250
8174
  option
8251
8175
  };
8252
- const cssModules$q = {
8253
- "$style": style0$q
8176
+ const cssModules$r = {
8177
+ "$style": style0$r
8254
8178
  };
8255
- const __unplugin_components_0$4 = /* @__PURE__ */ _export_sfc$1(_sfc_main$A, [["__cssModules", cssModules$q]]);
8256
- const _sfc_main$z = /* @__PURE__ */ defineComponent({
8179
+ const __unplugin_components_0$4 = /* @__PURE__ */ _export_sfc$1(_sfc_main$B, [["__cssModules", cssModules$r]]);
8180
+ const _sfc_main$A = /* @__PURE__ */ defineComponent({
8257
8181
  __name: "CanvasNodeToolbar",
8258
8182
  props: {
8259
8183
  readOnly: { type: Boolean }
@@ -8388,51 +8312,20 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
8388
8312
  const canvasNodeToolbar$1 = "_canvasNodeToolbar_104hp_123";
8389
8313
  const canvasNodeToolbarItems = "_canvasNodeToolbarItems_104hp_130";
8390
8314
  const forceVisible = "_forceVisible_104hp_141";
8391
- const style0$p = {
8315
+ const style0$q = {
8392
8316
  canvasNodeToolbar: canvasNodeToolbar$1,
8393
8317
  canvasNodeToolbarItems,
8394
8318
  forceVisible
8395
8319
  };
8396
- const cssModules$p = {
8397
- "$style": style0$p
8398
- };
8399
- const CanvasNodeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$z, [["__cssModules", cssModules$p]]);
8400
- const _sfc_main$y = /* @__PURE__ */ defineComponent({
8401
- __name: "CanvasNodeDisabledStrikeThrough",
8402
- setup(__props) {
8403
- const $style = useCssModule();
8404
- const { hasRunData, render: render2 } = useCanvasNode();
8405
- const classes = computed(() => {
8406
- return {
8407
- [$style.disabledStrikeThrough]: true,
8408
- [$style.success]: hasRunData.value,
8409
- [$style.warning]: render2.value.type === CanvasNodeRenderType.Default && render2.value.options.dirtiness !== void 0
8410
- };
8411
- });
8412
- return (_ctx, _cache) => {
8413
- return openBlock(), createElementBlock("div", {
8414
- class: normalizeClass(classes.value)
8415
- }, null, 2);
8416
- };
8417
- }
8418
- });
8419
- const disabledStrikeThrough = "_disabledStrikeThrough_nl2g7_123";
8420
- const success$2 = "_success_nl2g7_132";
8421
- const warning$2 = "_warning_nl2g7_136";
8422
- const style0$o = {
8423
- disabledStrikeThrough,
8424
- success: success$2,
8425
- warning: warning$2
8426
- };
8427
- const cssModules$o = {
8428
- "$style": style0$o
8320
+ const cssModules$q = {
8321
+ "$style": style0$q
8429
8322
  };
8430
- const __unplugin_components_3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$y, [["__cssModules", cssModules$o]]);
8323
+ const CanvasNodeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$A, [["__cssModules", cssModules$q]]);
8431
8324
  const _hoisted_1$9 = { key: 1 };
8432
8325
  const _hoisted_2$5 = ["textContent"];
8433
8326
  const _hoisted_3$4 = { key: 2 };
8434
8327
  const _hoisted_4$3 = { key: 5 };
8435
- const _sfc_main$x = /* @__PURE__ */ defineComponent({
8328
+ const _sfc_main$z = /* @__PURE__ */ defineComponent({
8436
8329
  __name: "CanvasNodeStatusIcons",
8437
8330
  setup(__props) {
8438
8331
  const nodeHelpers = useNodeHelpers();
@@ -8560,8 +8453,8 @@ const pinnedData = "_pinnedData_93vv6_138";
8560
8453
  const running$1 = "_running_93vv6_142";
8561
8454
  const issues = "_issues_93vv6_165";
8562
8455
  const count = "_count_93vv6_170";
8563
- const warning$1 = "_warning_93vv6_174";
8564
- const style0$n = {
8456
+ const warning$2 = "_warning_93vv6_174";
8457
+ const style0$p = {
8565
8458
  status,
8566
8459
  runData,
8567
8460
  waiting: waiting$1,
@@ -8570,13 +8463,44 @@ const style0$n = {
8570
8463
  "node-waiting-spinner": "_node-waiting-spinner_93vv6_152",
8571
8464
  issues,
8572
8465
  count,
8466
+ warning: warning$2
8467
+ };
8468
+ const cssModules$p = {
8469
+ "$style": style0$p
8470
+ };
8471
+ const __unplugin_components_3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$z, [["__cssModules", cssModules$p]]);
8472
+ const _sfc_main$y = /* @__PURE__ */ defineComponent({
8473
+ __name: "CanvasNodeDisabledStrikeThrough",
8474
+ setup(__props) {
8475
+ const $style = useCssModule();
8476
+ const { hasRunData, render: render2 } = useCanvasNode();
8477
+ const classes = computed(() => {
8478
+ return {
8479
+ [$style.disabledStrikeThrough]: true,
8480
+ [$style.success]: hasRunData.value,
8481
+ [$style.warning]: render2.value.type === CanvasNodeRenderType.Default && render2.value.options.dirtiness !== void 0
8482
+ };
8483
+ });
8484
+ return (_ctx, _cache) => {
8485
+ return openBlock(), createElementBlock("div", {
8486
+ class: normalizeClass(classes.value)
8487
+ }, null, 2);
8488
+ };
8489
+ }
8490
+ });
8491
+ const disabledStrikeThrough = "_disabledStrikeThrough_nl2g7_123";
8492
+ const success$2 = "_success_nl2g7_132";
8493
+ const warning$1 = "_warning_nl2g7_136";
8494
+ const style0$o = {
8495
+ disabledStrikeThrough,
8496
+ success: success$2,
8573
8497
  warning: warning$1
8574
8498
  };
8575
- const cssModules$n = {
8576
- "$style": style0$n
8499
+ const cssModules$o = {
8500
+ "$style": style0$o
8577
8501
  };
8578
- const __unplugin_components_2 = /* @__PURE__ */ _export_sfc$1(_sfc_main$x, [["__cssModules", cssModules$n]]);
8579
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
8502
+ const __unplugin_components_2 = /* @__PURE__ */ _export_sfc$1(_sfc_main$y, [["__cssModules", cssModules$o]]);
8503
+ const _sfc_main$x = /* @__PURE__ */ defineComponent({
8580
8504
  __name: "CanvasNodeTooltip",
8581
8505
  props: {
8582
8506
  visible: { type: Boolean }
@@ -8615,14 +8539,14 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
8615
8539
  });
8616
8540
  const tooltipTrigger = "_tooltipTrigger_dauyi_123";
8617
8541
  const popper = "_popper_dauyi_131";
8618
- const style0$m = {
8542
+ const style0$n = {
8619
8543
  tooltipTrigger,
8620
8544
  popper
8621
8545
  };
8622
- const cssModules$m = {
8623
- "$style": style0$m
8546
+ const cssModules$n = {
8547
+ "$style": style0$n
8624
8548
  };
8625
- const __unplugin_components_0$3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$w, [["__cssModules", cssModules$m]]);
8549
+ const __unplugin_components_0$3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$x, [["__cssModules", cssModules$n]]);
8626
8550
  function useNodeConnections({
8627
8551
  inputs: inputs2,
8628
8552
  outputs,
@@ -8684,7 +8608,7 @@ function useNodeSettingsInCanvas() {
8684
8608
  () => debouncedZoom.value > settingsStore.experimental__minZoomNodeSettingsInCanvas ? debouncedZoom.value : void 0
8685
8609
  );
8686
8610
  }
8687
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
8611
+ const _sfc_main$w = /* @__PURE__ */ defineComponent({
8688
8612
  __name: "NodeTitle",
8689
8613
  props: {
8690
8614
  modelValue: { default: "" },
@@ -8709,7 +8633,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
8709
8633
  createBaseVNode("span", {
8710
8634
  class: normalizeClass(_ctx.$style.iconWrapper)
8711
8635
  }, [
8712
- createVNode(_sfc_main$O, {
8636
+ createVNode(_sfc_main$P, {
8713
8637
  "node-type": _ctx.nodeType,
8714
8638
  size: 18,
8715
8639
  "show-tooltip": true,
@@ -8735,16 +8659,16 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
8735
8659
  const container$3 = "_container_178ym_123";
8736
8660
  const textWrapper = "_textWrapper_178ym_132";
8737
8661
  const iconWrapper = "_iconWrapper_178ym_137";
8738
- const style0$l = {
8662
+ const style0$m = {
8739
8663
  container: container$3,
8740
8664
  textWrapper,
8741
8665
  iconWrapper
8742
8666
  };
8743
- const cssModules$l = {
8744
- "$style": style0$l
8667
+ const cssModules$m = {
8668
+ "$style": style0$m
8745
8669
  };
8746
- const NodeTitle = /* @__PURE__ */ _export_sfc$1(_sfc_main$v, [["__cssModules", cssModules$l]]);
8747
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
8670
+ const NodeTitle = /* @__PURE__ */ _export_sfc$1(_sfc_main$w, [["__cssModules", cssModules$m]]);
8671
+ const _sfc_main$v = /* @__PURE__ */ defineComponent({
8748
8672
  __name: "NodeSettingsTabs",
8749
8673
  props: {
8750
8674
  modelValue: { default: "params" },
@@ -8890,9 +8814,9 @@ const _hoisted_10$1 = {
8890
8814
  key: 1,
8891
8815
  class: "webhook-wrapper"
8892
8816
  };
8893
- const _hoisted_11$1 = { class: "url-field-full-width" };
8817
+ const _hoisted_11 = { class: "url-field-full-width" };
8894
8818
  const _hoisted_12 = ["onClick"];
8895
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
8819
+ const _sfc_main$u = /* @__PURE__ */ defineComponent({
8896
8820
  __name: "NodeWebhooks",
8897
8821
  props: {
8898
8822
  node: {},
@@ -9097,7 +9021,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9097
9021
  ], 8, _hoisted_9$1)
9098
9022
  ])
9099
9023
  ])) : (openBlock(), createElementBlock("div", _hoisted_10$1, [
9100
- createBaseVNode("div", _hoisted_11$1, [
9024
+ createBaseVNode("div", _hoisted_11, [
9101
9025
  createBaseVNode("div", {
9102
9026
  class: "webhook-url left-ellipsis clickable",
9103
9027
  onClick: ($event) => copyWebhookUrl(webhook)
@@ -9119,7 +9043,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9119
9043
  };
9120
9044
  }
9121
9045
  });
9122
- const NodeWebhooks = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__scopeId", "data-v-84b9da4b"]]);
9046
+ const NodeWebhooks = /* @__PURE__ */ _export_sfc$1(_sfc_main$u, [["__scopeId", "data-v-84b9da4b"]]);
9123
9047
  const OnClickOutside = /* @__PURE__ */ defineComponent({
9124
9048
  name: "OnClickOutside",
9125
9049
  props: ["as", "options"],
@@ -9296,7 +9220,7 @@ const _hoisted_3$2 = ["onClick"];
9296
9220
  const _hoisted_4$1 = ["onClick"];
9297
9221
  const _hoisted_5$1 = ["data-node-name"];
9298
9222
  const _hoisted_6$1 = ["onClick"];
9299
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
9223
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9300
9224
  __name: "NDVSubConnections",
9301
9225
  props: {
9302
9226
  rootNode: {}
@@ -9329,34 +9253,61 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9329
9253
  return issues2?.input ?? {};
9330
9254
  });
9331
9255
  const connectedNodes2 = computed(() => {
9256
+ const typeIndexCounters = {};
9332
9257
  return possibleConnections.value.reduce(
9333
9258
  (acc, connection) => {
9334
- const nodes = getINodesFromNames(
9335
- workflow.value.getParentNodes(props.rootNode.name, connection.type)
9336
- );
9337
- return { ...acc, [connection.type]: nodes };
9259
+ const typeIndex = typeIndexCounters[connection.type] ?? 0;
9260
+ typeIndexCounters[connection.type] = typeIndex + 1;
9261
+ const nodeConnections = workflow.value.connectionsByDestinationNode[props.rootNode.name]?.[connection.type] ?? [];
9262
+ const inputConnections = nodeConnections[typeIndex] ?? [];
9263
+ const nodeNames = inputConnections.map((conn) => conn.node);
9264
+ const nodes = getINodesFromNames(nodeNames);
9265
+ const connectionKey = `${connection.type}-${typeIndex}`;
9266
+ return { ...acc, [connectionKey]: nodes };
9338
9267
  },
9339
9268
  {}
9340
9269
  );
9341
9270
  });
9342
- function getConnectionConfig(connectionType2) {
9343
- return possibleConnections.value.find((c) => c.type === connectionType2);
9271
+ function getConnectionKey(connection, globalIndex) {
9272
+ let typeIndex = 0;
9273
+ for (let i = 0; i < globalIndex; i++) {
9274
+ if (possibleConnections.value[i].type === connection.type) {
9275
+ typeIndex++;
9276
+ }
9277
+ }
9278
+ return `${connection.type}-${typeIndex}`;
9344
9279
  }
9345
- function isMultiConnection(connectionType2) {
9346
- const connectionConfig = getConnectionConfig(connectionType2);
9280
+ function getConnectionConfig(connectionKey) {
9281
+ const [type, indexStr] = connectionKey.split("-");
9282
+ const typeIndex = parseInt(indexStr, 10);
9283
+ let currentTypeIndex = 0;
9284
+ for (const connection of possibleConnections.value) {
9285
+ if (connection.type === type) {
9286
+ if (currentTypeIndex === typeIndex) {
9287
+ return connection;
9288
+ }
9289
+ currentTypeIndex++;
9290
+ }
9291
+ }
9292
+ return void 0;
9293
+ }
9294
+ function isMultiConnection(connectionKey) {
9295
+ const connectionConfig = getConnectionConfig(connectionKey);
9347
9296
  return connectionConfig?.maxConnections !== 1;
9348
9297
  }
9349
- function shouldShowConnectionTooltip(connectionType2) {
9350
- return isMultiConnection(connectionType2) && !expandedGroups.value.includes(connectionType2);
9298
+ function shouldShowConnectionTooltip(connectionKey) {
9299
+ const [type] = connectionKey.split("-");
9300
+ return isMultiConnection(connectionKey) && !expandedGroups.value.includes(type);
9351
9301
  }
9352
- function expandConnectionGroup(connectionType2, isExpanded) {
9353
- if (!isMultiConnection(connectionType2)) {
9302
+ function expandConnectionGroup(connectionKey, isExpanded) {
9303
+ const [type] = connectionKey.split("-");
9304
+ if (!isMultiConnection(connectionKey)) {
9354
9305
  return;
9355
9306
  }
9356
9307
  if (isExpanded) {
9357
- expandedGroups.value = [...expandedGroups.value, connectionType2];
9308
+ expandedGroups.value = [...expandedGroups.value, type];
9358
9309
  } else {
9359
- expandedGroups.value = expandedGroups.value.filter((g) => g !== connectionType2);
9310
+ expandedGroups.value = expandedGroups.value.filter((g) => g !== type);
9360
9311
  }
9361
9312
  }
9362
9313
  function getINodesFromNames(names) {
@@ -9373,8 +9324,9 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9373
9324
  return null;
9374
9325
  }).filter((n) => n !== null);
9375
9326
  }
9376
- function hasInputIssues(connectionType2) {
9377
- return shouldShowNodeInputIssues.value && (nodeInputIssues.value[connectionType2] ?? []).length > 0;
9327
+ function hasInputIssues(connectionKey) {
9328
+ const [type] = connectionKey.split("-");
9329
+ return shouldShowNodeInputIssues.value && (nodeInputIssues.value[type] ?? []).length > 0;
9378
9330
  }
9379
9331
  function isNodeInputConfiguration(connectionConfig) {
9380
9332
  if (typeof connectionConfig === "string") return false;
@@ -9389,20 +9341,22 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9389
9341
  });
9390
9342
  return nonMainInputs;
9391
9343
  }
9392
- function onNodeClick(nodeName, connectionType2) {
9393
- if (isMultiConnection(connectionType2) && !expandedGroups.value.includes(connectionType2)) {
9394
- expandConnectionGroup(connectionType2, true);
9344
+ function onNodeClick(nodeName, connectionKey) {
9345
+ const [type] = connectionKey.split("-");
9346
+ if (isMultiConnection(connectionKey) && !expandedGroups.value.includes(type)) {
9347
+ expandConnectionGroup(connectionKey, true);
9395
9348
  return;
9396
9349
  }
9397
9350
  emit("switchSelectedNode", nodeName);
9398
9351
  }
9399
- function onPlusClick(connectionType2) {
9400
- const connectionNodes = connectedNodes2.value[connectionType2];
9401
- if (isMultiConnection(connectionType2) && !expandedGroups.value.includes(connectionType2) && connectionNodes.length >= 1) {
9402
- expandConnectionGroup(connectionType2, true);
9352
+ function onPlusClick(connectionKey) {
9353
+ const [type] = connectionKey.split("-");
9354
+ const connectionNodes = connectedNodes2.value[connectionKey];
9355
+ if (isMultiConnection(connectionKey) && !expandedGroups.value.includes(type) && connectionNodes.length >= 1) {
9356
+ expandConnectionGroup(connectionKey, true);
9403
9357
  return;
9404
9358
  }
9405
- emit("openConnectionNodeCreator", props.rootNode.name, connectionType2);
9359
+ emit("openConnectionNodeCreator", props.rootNode.name, type);
9406
9360
  }
9407
9361
  function showNodeInputsIssues() {
9408
9362
  shouldShowNodeInputIssues.value = false;
@@ -9435,10 +9389,10 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9435
9389
  class: normalizeClass(_ctx.$style.connections),
9436
9390
  style: normalizeStyle(`--possible-connections: ${possibleConnections.value.length}`)
9437
9391
  }, [
9438
- (openBlock(true), createElementBlock(Fragment, null, renderList(possibleConnections.value, (connection) => {
9392
+ (openBlock(true), createElementBlock(Fragment, null, renderList(possibleConnections.value, (connection, index) => {
9439
9393
  return openBlock(), createElementBlock("div", {
9440
- key: connection.type,
9441
- "data-test-id": `subnode-connection-group-${connection.type}`
9394
+ key: getConnectionKey(connection, index),
9395
+ "data-test-id": `subnode-connection-group-${getConnectionKey(connection, index)}`
9442
9396
  }, [
9443
9397
  createBaseVNode("div", {
9444
9398
  class: normalizeClass(_ctx.$style.connectionType)
@@ -9446,12 +9400,12 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9446
9400
  createBaseVNode("span", {
9447
9401
  class: normalizeClass({
9448
9402
  [_ctx.$style.connectionLabel]: true,
9449
- [_ctx.$style.hasIssues]: hasInputIssues(connection.type)
9403
+ [_ctx.$style.hasIssues]: hasInputIssues(getConnectionKey(connection, index))
9450
9404
  }),
9451
9405
  textContent: toDisplayString(`${connection.displayName}${connection.required ? " *" : ""}`)
9452
9406
  }, null, 10, _hoisted_2$3),
9453
9407
  createVNode(unref(OnClickOutside), {
9454
- onTrigger: ($event) => expandConnectionGroup(connection.type, false)
9408
+ onTrigger: ($event) => expandConnectionGroup(getConnectionKey(connection, index), false)
9455
9409
  }, {
9456
9410
  default: withCtx(() => [
9457
9411
  createBaseVNode("div", {
@@ -9461,27 +9415,27 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9461
9415
  [_ctx.$style.connectedNodesWrapper]: true,
9462
9416
  [_ctx.$style.connectedNodesWrapperExpanded]: expandedGroups.value.includes(connection.type)
9463
9417
  }),
9464
- style: normalizeStyle(`--nodes-length: ${connectedNodes2.value[connection.type].length}`),
9465
- onClick: ($event) => expandConnectionGroup(connection.type, true)
9418
+ style: normalizeStyle(`--nodes-length: ${connectedNodes2.value[getConnectionKey(connection, index)].length}`),
9419
+ onClick: ($event) => expandConnectionGroup(getConnectionKey(connection, index), true)
9466
9420
  }, [
9467
- (connectedNodes2.value[connection.type].length >= 1 ? connection.maxConnections !== 1 : true) ? (openBlock(), createElementBlock("div", {
9421
+ (connectedNodes2.value[getConnectionKey(connection, index)].length >= 1 ? connection.maxConnections !== 1 : true) ? (openBlock(), createElementBlock("div", {
9468
9422
  key: 0,
9469
9423
  class: normalizeClass({
9470
9424
  [_ctx.$style.plusButton]: true,
9471
- [_ctx.$style.hasIssues]: hasInputIssues(connection.type)
9425
+ [_ctx.$style.hasIssues]: hasInputIssues(getConnectionKey(connection, index))
9472
9426
  }),
9473
- onClick: ($event) => onPlusClick(connection.type)
9427
+ onClick: ($event) => onPlusClick(getConnectionKey(connection, index))
9474
9428
  }, [
9475
9429
  createVNode(_component_n8n_tooltip, {
9476
9430
  placement: "top",
9477
9431
  teleported: true,
9478
9432
  offset: 10,
9479
9433
  "show-after": 300,
9480
- disabled: shouldShowConnectionTooltip(connection.type) && connectedNodes2.value[connection.type].length >= 1
9434
+ disabled: shouldShowConnectionTooltip(getConnectionKey(connection, index)) && connectedNodes2.value[getConnectionKey(connection, index)].length >= 1
9481
9435
  }, {
9482
9436
  content: withCtx(() => [
9483
9437
  createTextVNode(" Add " + toDisplayString(connection.displayName) + " ", 1),
9484
- hasInputIssues(connection.type) ? (openBlock(), createBlock(TitledList, {
9438
+ hasInputIssues(getConnectionKey(connection, index)) ? (openBlock(), createBlock(TitledList, {
9485
9439
  key: 0,
9486
9440
  title: `${unref(i18n).baseText("node.issues")}:`,
9487
9441
  items: nodeInputIssues.value[connection.type]
@@ -9492,26 +9446,26 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9492
9446
  size: "medium",
9493
9447
  icon: "plus",
9494
9448
  type: "tertiary",
9495
- "data-test-id": `add-subnode-${connection.type}`
9449
+ "data-test-id": `add-subnode-${getConnectionKey(connection, index)}`
9496
9450
  }, null, 8, ["data-test-id"])
9497
9451
  ]),
9498
9452
  _: 2
9499
9453
  }, 1032, ["disabled"])
9500
9454
  ], 10, _hoisted_4$1)) : createCommentVNode("", true),
9501
- connectedNodes2.value[connection.type].length > 0 ? (openBlock(), createElementBlock("div", {
9455
+ connectedNodes2.value[getConnectionKey(connection, index)].length > 0 ? (openBlock(), createElementBlock("div", {
9502
9456
  key: 1,
9503
9457
  class: normalizeClass({
9504
9458
  [_ctx.$style.connectedNodes]: true,
9505
- [_ctx.$style.connectedNodesMultiple]: connectedNodes2.value[connection.type].length > 1
9459
+ [_ctx.$style.connectedNodesMultiple]: connectedNodes2.value[getConnectionKey(connection, index)].length > 1
9506
9460
  })
9507
9461
  }, [
9508
- (openBlock(true), createElementBlock(Fragment, null, renderList(connectedNodes2.value[connection.type], (node2, index) => {
9462
+ (openBlock(true), createElementBlock(Fragment, null, renderList(connectedNodes2.value[getConnectionKey(connection, index)], (node2, nodeIndex) => {
9509
9463
  return openBlock(), createElementBlock("div", {
9510
9464
  key: node2.node.name,
9511
9465
  class: normalizeClass({ [_ctx.$style.nodeWrapper]: true, [_ctx.$style.hasIssues]: node2.issues }),
9512
9466
  "data-test-id": "floating-subnode",
9513
9467
  "data-node-name": node2.node.name,
9514
- style: normalizeStyle(`--node-index: ${index}`)
9468
+ style: normalizeStyle(`--node-index: ${nodeIndex}`)
9515
9469
  }, [
9516
9470
  (openBlock(), createBlock(_component_n8n_tooltip, {
9517
9471
  key: node2.node.name,
@@ -9519,7 +9473,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9519
9473
  teleported: true,
9520
9474
  offset: 10,
9521
9475
  "show-after": 300,
9522
- disabled: shouldShowConnectionTooltip(connection.type)
9476
+ disabled: shouldShowConnectionTooltip(getConnectionKey(connection, index))
9523
9477
  }, {
9524
9478
  content: withCtx(() => [
9525
9479
  createTextVNode(toDisplayString(node2.node.name) + " ", 1),
@@ -9532,9 +9486,9 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9532
9486
  default: withCtx(() => [
9533
9487
  createBaseVNode("div", {
9534
9488
  class: normalizeClass(_ctx.$style.connectedNode),
9535
- onClick: ($event) => onNodeClick(node2.node.name, connection.type)
9489
+ onClick: ($event) => onNodeClick(node2.node.name, getConnectionKey(connection, index))
9536
9490
  }, [
9537
- createVNode(_sfc_main$O, {
9491
+ createVNode(_sfc_main$P, {
9538
9492
  "node-type": node2.nodeType,
9539
9493
  "node-name": node2.node.name,
9540
9494
  "tooltip-position": "top",
@@ -9572,7 +9526,7 @@ const connectedNodesMultiple = "_connectedNodesMultiple_ac466_209";
9572
9526
  const connectedNode = "_connectedNode_ac466_177";
9573
9527
  const connectedNodes = "_connectedNodes_ac466_177";
9574
9528
  const nodeWrapper = "_nodeWrapper_ac466_247";
9575
- const style0$k = {
9529
+ const style0$l = {
9576
9530
  container: container$2,
9577
9531
  connections,
9578
9532
  connectionType,
@@ -9587,10 +9541,10 @@ const style0$k = {
9587
9541
  connectedNodes,
9588
9542
  nodeWrapper
9589
9543
  };
9590
- const cssModules$k = {
9591
- "$style": style0$k
9544
+ const cssModules$l = {
9545
+ "$style": style0$l
9592
9546
  };
9593
- const NDVSubConnections = /* @__PURE__ */ _export_sfc$1(_sfc_main$s, [["__cssModules", cssModules$k]]);
9547
+ const NDVSubConnections = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__cssModules", cssModules$l]]);
9594
9548
  function updateDynamicConnections(node2, workflowConnections, parameterData) {
9595
9549
  const connections2 = { ...workflowConnections };
9596
9550
  try {
@@ -9677,7 +9631,7 @@ function updateDynamicConnections(node2, workflowConnections, parameterData) {
9677
9631
  const _hoisted_1$6 = { class: "mt-xs" };
9678
9632
  const LANGCHAIN_NODES_PREFIX = "@n8n/n8n-nodes-langchain.";
9679
9633
  const N8N_NODES_PREFIX = "@n8n/n8n-nodes.";
9680
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
9634
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9681
9635
  __name: "FreeAiCreditsCallout",
9682
9636
  setup(__props) {
9683
9637
  const NODES_WITH_OPEN_AI_API_CREDENTIAL = [
@@ -9787,34 +9741,33 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
9787
9741
  }
9788
9742
  });
9789
9743
  const _hoisted_1$5 = { class: "header-side-menu" };
9790
- const _hoisted_2$2 = { key: 1 };
9791
- const _hoisted_3$1 = {
9744
+ const _hoisted_2$2 = {
9792
9745
  key: 0,
9793
9746
  class: "node-is-not-valid"
9794
9747
  };
9795
- const _hoisted_4 = { class: "missingNodeTitleContainer mt-s mb-xs" };
9796
- const _hoisted_5 = { class: "mb-l" };
9797
- const _hoisted_6 = ["href"];
9798
- const _hoisted_7 = ["href", "textContent"];
9799
- const _hoisted_8 = {
9748
+ const _hoisted_3$1 = { class: "missingNodeTitleContainer mt-s mb-xs" };
9749
+ const _hoisted_4 = { class: "mb-l" };
9750
+ const _hoisted_5 = ["href"];
9751
+ const _hoisted_6 = ["href", "textContent"];
9752
+ const _hoisted_7 = {
9800
9753
  key: 1,
9801
9754
  class: "node-parameters-wrapper",
9802
9755
  "data-test-id": "node-parameters"
9803
9756
  };
9804
- const _hoisted_9 = {
9757
+ const _hoisted_8 = {
9805
9758
  key: 1,
9806
9759
  class: "no-parameters"
9807
9760
  };
9808
- const _hoisted_10 = {
9761
+ const _hoisted_9 = {
9809
9762
  key: 2,
9810
9763
  class: "parameter-item parameter-notice",
9811
9764
  "data-test-id": "node-parameters-http-notice"
9812
9765
  };
9813
- const _hoisted_11 = {
9766
+ const _hoisted_10 = {
9814
9767
  class: "node-version",
9815
9768
  "data-test-id": "node-version"
9816
9769
  };
9817
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
9770
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
9818
9771
  __name: "NodeSettings",
9819
9772
  props: {
9820
9773
  eventBus: {},
@@ -9826,9 +9779,11 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
9826
9779
  blockUI: { type: Boolean, default: false },
9827
9780
  executable: { type: Boolean, default: true },
9828
9781
  inputSize: { default: 0 },
9829
- activeNode: {}
9782
+ activeNode: { default: void 0 },
9783
+ canExpand: { type: Boolean, default: false },
9784
+ hideConnections: { type: Boolean, default: false }
9830
9785
  },
9831
- emits: ["stopExecution", "redrawRequired", "valueChanged", "switchSelectedNode", "openConnectionNodeCreator", "activate", "execute"],
9786
+ emits: ["stopExecution", "redrawRequired", "valueChanged", "switchSelectedNode", "openConnectionNodeCreator", "activate", "execute", "expand"],
9832
9787
  setup(__props, { emit: __emit }) {
9833
9788
  const props = __props;
9834
9789
  const emit = __emit;
@@ -10516,7 +10471,9 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10516
10471
  populateSettings();
10517
10472
  setNodeValues();
10518
10473
  props.eventBus?.on("openSettings", openSettings);
10519
- nodeHelpers.updateNodeParameterIssues(node2.value, props.nodeType);
10474
+ if (node2.value !== null) {
10475
+ nodeHelpers.updateNodeParameterIssues(node2.value, props.nodeType);
10476
+ }
10520
10477
  importCurlEventBus.on("setHttpNodeParameters", setHttpNodeParameters);
10521
10478
  ndvEventBus.on("updateParameterValue", valueChanged);
10522
10479
  });
@@ -10543,7 +10500,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10543
10500
  "node-settings": true,
10544
10501
  dragging: _ctx.dragging
10545
10502
  }),
10546
- onKeydown: _cache[0] || (_cache[0] = withModifiers(() => {
10503
+ onKeydown: _cache[1] || (_cache[1] = withModifiers(() => {
10547
10504
  }, ["stop"]))
10548
10505
  }, [
10549
10506
  createBaseVNode("div", {
@@ -10558,8 +10515,11 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10558
10515
  "read-only": isReadOnly.value,
10559
10516
  "onUpdate:modelValue": nameChanged
10560
10517
  }, null, 8, ["model-value", "node-type", "read-only"])) : createCommentVNode("", true),
10561
- isExecutable2.value ? (openBlock(), createElementBlock("div", _hoisted_2$2, [
10562
- !_ctx.blockUI && node2.value && nodeValid.value ? (openBlock(), createBlock(_sfc_main$P, {
10518
+ isExecutable2.value || props.canExpand ? (openBlock(), createElementBlock("div", {
10519
+ key: 1,
10520
+ class: normalizeClass(_ctx.$style.headerActions)
10521
+ }, [
10522
+ isExecutable2.value && !_ctx.blockUI && node2.value && nodeValid.value ? (openBlock(), createBlock(_sfc_main$Q, {
10563
10523
  key: 0,
10564
10524
  "data-test-id": "node-execute-button",
10565
10525
  "node-name": node2.value.name,
@@ -10570,10 +10530,20 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10570
10530
  onExecute: onNodeExecute,
10571
10531
  onStopExecution,
10572
10532
  onValueChanged: valueChanged
10573
- }, null, 8, ["node-name", "disabled", "tooltip"])) : createCommentVNode("", true)
10574
- ])) : createCommentVNode("", true)
10533
+ }, null, 8, ["node-name", "disabled", "tooltip"])) : createCommentVNode("", true),
10534
+ props.canExpand ? (openBlock(), createBlock(unref(_sfc_main$R), {
10535
+ key: 1,
10536
+ icon: "expand",
10537
+ type: "secondary",
10538
+ text: "",
10539
+ size: "mini",
10540
+ "icon-size": "large",
10541
+ "aria-label": "Expand",
10542
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("expand"))
10543
+ })) : createCommentVNode("", true)
10544
+ ], 2)) : createCommentVNode("", true)
10575
10545
  ]),
10576
- node2.value && nodeValid.value ? (openBlock(), createBlock(_sfc_main$u, {
10546
+ node2.value && nodeValid.value ? (openBlock(), createBlock(_sfc_main$v, {
10577
10547
  key: 0,
10578
10548
  "model-value": openPanel.value,
10579
10549
  "node-type": _ctx.nodeType,
@@ -10581,13 +10551,13 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10581
10551
  "onUpdate:modelValue": onTabSelect
10582
10552
  }, null, 8, ["model-value", "node-type", "push-ref"])) : createCommentVNode("", true)
10583
10553
  ], 2),
10584
- node2.value && !nodeValid.value ? (openBlock(), createElementBlock("div", _hoisted_3$1, [
10554
+ node2.value && !nodeValid.value ? (openBlock(), createElementBlock("div", _hoisted_2$2, [
10585
10555
  createBaseVNode("p", {
10586
10556
  class: normalizeClass(_ctx.$style.warningIcon)
10587
10557
  }, [
10588
10558
  createVNode(_component_font_awesome_icon, { icon: "exclamation-triangle" })
10589
10559
  ], 2),
10590
- createBaseVNode("div", _hoisted_4, [
10560
+ createBaseVNode("div", _hoisted_3$1, [
10591
10561
  createVNode(_component_n8n_text, {
10592
10562
  size: "large",
10593
10563
  color: "text-dark",
@@ -10603,7 +10573,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10603
10573
  key: 0,
10604
10574
  class: normalizeClass(_ctx.$style.descriptionContainer)
10605
10575
  }, [
10606
- createBaseVNode("div", _hoisted_5, [
10576
+ createBaseVNode("div", _hoisted_4, [
10607
10577
  createVNode(_component_i18n_t, {
10608
10578
  keypath: "nodeSettings.communityNodeUnknown.description",
10609
10579
  tag: "span",
@@ -10613,7 +10583,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10613
10583
  createBaseVNode("a", {
10614
10584
  href: `https://www.npmjs.com/package/${node2.value.type.split(".")[0]}`,
10615
10585
  target: "_blank"
10616
- }, toDisplayString(node2.value.type.split(".")[0]), 9, _hoisted_6)
10586
+ }, toDisplayString(node2.value.type.split(".")[0]), 9, _hoisted_5)
10617
10587
  ]),
10618
10588
  _: 1
10619
10589
  })
@@ -10637,25 +10607,25 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10637
10607
  href: unref(CUSTOM_NODES_DOCS_URL),
10638
10608
  target: "_blank",
10639
10609
  textContent: toDisplayString(unref(i18n).baseText("nodeSettings.nodeTypeUnknown.description.customNode"))
10640
- }, null, 8, _hoisted_7)
10610
+ }, null, 8, _hoisted_6)
10641
10611
  ]),
10642
10612
  _: 1
10643
10613
  }))
10644
10614
  ])) : createCommentVNode("", true),
10645
- node2.value && nodeValid.value ? (openBlock(), createElementBlock("div", _hoisted_8, [
10615
+ node2.value && nodeValid.value ? (openBlock(), createElementBlock("div", _hoisted_7, [
10646
10616
  hasForeignCredential.value && !isHomeProjectTeam.value ? (openBlock(), createBlock(_component_n8n_notice, {
10647
10617
  key: 0,
10648
10618
  content: unref(i18n).baseText("nodeSettings.hasForeignCredential", {
10649
10619
  interpolate: { owner: credentialOwnerName.value }
10650
10620
  })
10651
10621
  }, null, 8, ["content"])) : createCommentVNode("", true),
10652
- createVNode(_sfc_main$r),
10622
+ createVNode(_sfc_main$s),
10653
10623
  withDirectives(createBaseVNode("div", null, [
10654
10624
  createVNode(NodeWebhooks, {
10655
10625
  node: node2.value,
10656
10626
  "node-type-description": _ctx.nodeType
10657
10627
  }, null, 8, ["node", "node-type-description"]),
10658
- nodeValuesInitialized.value ? (openBlock(), createBlock(_sfc_main$Q, {
10628
+ nodeValuesInitialized.value ? (openBlock(), createBlock(_sfc_main$S, {
10659
10629
  key: 0,
10660
10630
  parameters: parametersNoneSetting.value,
10661
10631
  "hide-delete": true,
@@ -10680,7 +10650,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10680
10650
  ]),
10681
10651
  _: 1
10682
10652
  }, 8, ["parameters", "node-values", "is-read-only", "hidden-issues-inputs"])) : createCommentVNode("", true),
10683
- showNoParametersNotice.value ? (openBlock(), createElementBlock("div", _hoisted_9, [
10653
+ showNoParametersNotice.value ? (openBlock(), createElementBlock("div", _hoisted_8, [
10684
10654
  createVNode(_component_n8n_text, null, {
10685
10655
  default: withCtx(() => [
10686
10656
  createTextVNode(toDisplayString(unref(i18n).baseText("nodeSettings.thisNodeDoesNotHaveAnyParameters")), 1)
@@ -10688,7 +10658,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10688
10658
  _: 1
10689
10659
  })
10690
10660
  ])) : createCommentVNode("", true),
10691
- unref(nodeHelpers).isCustomApiCallSelected(nodeValues.value) ? (openBlock(), createElementBlock("div", _hoisted_10, [
10661
+ unref(nodeHelpers).isCustomApiCallSelected(nodeValues.value) ? (openBlock(), createElementBlock("div", _hoisted_9, [
10692
10662
  createVNode(_component_n8n_notice, {
10693
10663
  content: unref(i18n).baseText("nodeSettings.useTheHttpRequestNode", {
10694
10664
  interpolate: { nodeTypeDisplayName: _ctx.nodeType?.displayName ?? "" }
@@ -10699,7 +10669,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10699
10669
  [vShow, openPanel.value === "params"]
10700
10670
  ]),
10701
10671
  withDirectives(createBaseVNode("div", null, [
10702
- createVNode(_sfc_main$Q, {
10672
+ createVNode(_sfc_main$S, {
10703
10673
  parameters: parametersSetting.value,
10704
10674
  "node-values": nodeValues.value,
10705
10675
  "is-read-only": isReadOnly.value,
@@ -10709,7 +10679,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10709
10679
  onValueChanged: valueChanged,
10710
10680
  onParameterBlur
10711
10681
  }, null, 8, ["parameters", "node-values", "is-read-only", "hidden-issues-inputs"]),
10712
- createVNode(_sfc_main$Q, {
10682
+ createVNode(_sfc_main$S, {
10713
10683
  parameters: nodeSettings.value,
10714
10684
  "hide-delete": true,
10715
10685
  "node-values": nodeValues.value,
@@ -10719,7 +10689,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10719
10689
  onValueChanged: valueChanged,
10720
10690
  onParameterBlur
10721
10691
  }, null, 8, ["parameters", "node-values", "is-read-only", "hidden-issues-inputs"]),
10722
- createBaseVNode("div", _hoisted_11, [
10692
+ createBaseVNode("div", _hoisted_10, [
10723
10693
  createTextVNode(toDisplayString(unref(i18n).baseText("nodeSettings.nodeVersion", {
10724
10694
  interpolate: {
10725
10695
  node: _ctx.nodeType?.displayName,
@@ -10732,7 +10702,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10732
10702
  [vShow, openPanel.value === "settings"]
10733
10703
  ])
10734
10704
  ])) : createCommentVNode("", true),
10735
- node2.value ? (openBlock(), createBlock(NDVSubConnections, {
10705
+ node2.value && !props.hideConnections ? (openBlock(), createBlock(NDVSubConnections, {
10736
10706
  key: 2,
10737
10707
  ref_key: "subConnections",
10738
10708
  ref: subConnections,
@@ -10745,27 +10715,32 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10745
10715
  };
10746
10716
  }
10747
10717
  });
10748
- const header = "_header_13al3_123";
10749
- const warningIcon = "_warningIcon_13al3_127";
10750
- const descriptionContainer = "_descriptionContainer_13al3_132";
10751
- const style0$j = {
10718
+ const header = "_header_ksz9x_123";
10719
+ const headerActions = "_headerActions_ksz9x_127";
10720
+ const warningIcon = "_warningIcon_ksz9x_133";
10721
+ const descriptionContainer = "_descriptionContainer_ksz9x_138";
10722
+ const style0$k = {
10752
10723
  header,
10724
+ headerActions,
10753
10725
  warningIcon,
10754
10726
  descriptionContainer
10755
10727
  };
10756
- const cssModules$j = {
10757
- "$style": style0$j
10728
+ const cssModules$k = {
10729
+ "$style": style0$k
10758
10730
  };
10759
- const NodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$q, [["__cssModules", cssModules$j], ["__scopeId", "data-v-1c54b7ac"]]);
10760
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
10761
- __name: "CanvasNodeNodeSettings",
10731
+ const NodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$r, [["__cssModules", cssModules$k], ["__scopeId", "data-v-d069a584"]]);
10732
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10733
+ __name: "ExperimentalCanvasNodeSettings",
10762
10734
  props: {
10763
- nodeId: {}
10735
+ nodeId: {},
10736
+ canOpenNdv: { type: Boolean }
10764
10737
  },
10765
10738
  setup(__props) {
10766
10739
  const settingsEventBus = createEventBus();
10767
10740
  const nodeTypesStore = useNodeTypesStore();
10768
10741
  const workflowsStore = useWorkflowsStore();
10742
+ const { setActiveNodeName } = useNDVStore();
10743
+ const { renameNode } = useCanvasOperations();
10769
10744
  const activeNode = computed(() => workflowsStore.getNodeById(__props.nodeId));
10770
10745
  const activeNodeType = computed(() => {
10771
10746
  if (activeNode.value) {
@@ -10773,8 +10748,19 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
10773
10748
  }
10774
10749
  return null;
10775
10750
  });
10751
+ function handleOpenNdv() {
10752
+ if (activeNode.value) {
10753
+ setActiveNodeName(activeNode.value.name);
10754
+ }
10755
+ }
10756
+ function handleValueChanged(parameterData) {
10757
+ if (parameterData.name === "name" && parameterData.oldValue) {
10758
+ void renameNode(parameterData.oldValue, parameterData.value);
10759
+ }
10760
+ }
10776
10761
  return (_ctx, _cache) => {
10777
10762
  return openBlock(), createBlock(NodeSettings, {
10763
+ "can-expand": _ctx.canOpenNdv,
10778
10764
  "event-bus": unref(settingsEventBus),
10779
10765
  dragging: false,
10780
10766
  "active-node": activeNode.value,
@@ -10784,13 +10770,16 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
10784
10770
  "read-only": false,
10785
10771
  "block-u-i": false,
10786
10772
  executable: false,
10787
- "input-size": 0
10788
- }, null, 8, ["event-bus", "active-node", "node-type"]);
10773
+ "input-size": 0,
10774
+ "hide-connections": "",
10775
+ onExpand: handleOpenNdv,
10776
+ onValueChanged: handleValueChanged
10777
+ }, null, 8, ["can-expand", "event-bus", "active-node", "node-type"]);
10789
10778
  };
10790
10779
  }
10791
10780
  });
10792
10781
  const _hoisted_1$4 = ["data-test-id"];
10793
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
10782
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
10794
10783
  __name: "CanvasNodeDefault",
10795
10784
  emits: ["open:contextmenu", "activate"],
10796
10785
  setup(__props, { emit: __emit }) {
@@ -10816,13 +10805,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10816
10805
  hasIssues: hasIssues2,
10817
10806
  render: render2
10818
10807
  } = useCanvasNode();
10819
- const {
10820
- mainOutputs,
10821
- mainOutputConnections,
10822
- mainInputs,
10823
- mainInputConnections,
10824
- nonMainInputs
10825
- } = useNodeConnections({
10808
+ const { mainOutputs, mainOutputConnections, mainInputs, mainInputConnections, nonMainInputs } = useNodeConnections({
10826
10809
  inputs: inputs2,
10827
10810
  outputs,
10828
10811
  connections: connections2
@@ -10846,19 +10829,22 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10846
10829
  [$style.settingsView]: nodeSettingsZoom.value !== void 0
10847
10830
  };
10848
10831
  });
10849
- const styles = computed(() => {
10850
- const stylesObject = {};
10851
- if (renderOptions.value.configurable) {
10852
- let spacerCount = 0;
10853
- stylesObject["--configurable-node--input-count"] = nonMainInputs.value.length + spacerCount;
10854
- }
10855
- if (nodeSettingsZoom.value !== void 0) {
10856
- stylesObject["--zoom"] = nodeSettingsZoom.value;
10857
- }
10858
- stylesObject["--canvas-node--main-input-count"] = mainInputs.value.length;
10859
- stylesObject["--canvas-node--main-output-count"] = mainOutputs.value.length;
10860
- return stylesObject;
10861
- });
10832
+ const iconSize = computed(() => renderOptions.value.configuration ? 30 : 40);
10833
+ const nodeSize = computed(
10834
+ () => calculateNodeSize(
10835
+ renderOptions.value.configuration ?? false,
10836
+ renderOptions.value.configurable ?? false,
10837
+ mainInputs.value.length,
10838
+ mainOutputs.value.length,
10839
+ nonMainInputs.value.length
10840
+ )
10841
+ );
10842
+ const styles = computed(() => ({
10843
+ "--canvas-node--width": `${nodeSize.value.width}px`,
10844
+ "--canvas-node--height": `${nodeSize.value.height}px`,
10845
+ "--node-icon-size": `${iconSize.value}px`,
10846
+ ...nodeSettingsZoom.value === void 0 ? {} : { "--zoom": nodeSettingsZoom.value }
10847
+ }));
10862
10848
  const dataTestId = computed(() => {
10863
10849
  let type = "default";
10864
10850
  if (renderOptions.value.configurable) {
@@ -10875,7 +10861,6 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10875
10861
  const isSingleMainOutputNode = mainOutputs.value.length === 1 && mainOutputConnections.value.length <= 1;
10876
10862
  return isDisabled.value && isSingleMainInputNode && isSingleMainOutputNode;
10877
10863
  });
10878
- const iconSize = computed(() => renderOptions.value.configuration ? 30 : 40);
10879
10864
  const iconSource = computed(() => renderOptions.value.icon);
10880
10865
  const showTooltip = ref(false);
10881
10866
  watch(initialized, () => {
@@ -10897,9 +10882,9 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10897
10882
  }
10898
10883
  return (_ctx, _cache) => {
10899
10884
  const _component_CanvasNodeTooltip = __unplugin_components_0$3;
10900
- const _component_NodeIcon = _sfc_main$O;
10901
- const _component_CanvasNodeStatusIcons = __unplugin_components_2;
10902
- const _component_CanvasNodeDisabledStrikeThrough = __unplugin_components_3;
10885
+ const _component_NodeIcon = _sfc_main$P;
10886
+ const _component_CanvasNodeDisabledStrikeThrough = __unplugin_components_2;
10887
+ const _component_CanvasNodeStatusIcons = __unplugin_components_3;
10903
10888
  return openBlock(), createElementBlock("div", {
10904
10889
  class: normalizeClass(classes.value),
10905
10890
  style: normalizeStyle(styles.value),
@@ -10907,7 +10892,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10907
10892
  onContextmenu: openContextMenu,
10908
10893
  onDblclick: withModifiers(onActivate, ["stop"])
10909
10894
  }, [
10910
- unref(nodeSettingsZoom) !== void 0 ? (openBlock(), createBlock(_sfc_main$p, {
10895
+ unref(nodeSettingsZoom) !== void 0 ? (openBlock(), createBlock(_sfc_main$q, {
10911
10896
  key: 0,
10912
10897
  "node-id": unref(id2)
10913
10898
  }, null, 8, ["node-id"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
@@ -10919,13 +10904,10 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10919
10904
  "icon-source": iconSource.value,
10920
10905
  size: iconSize.value,
10921
10906
  shrink: false,
10922
- disabled: unref(isDisabled)
10923
- }, null, 8, ["icon-source", "size", "disabled"]),
10924
- !unref(isDisabled) ? (openBlock(), createBlock(_component_CanvasNodeStatusIcons, {
10925
- key: 1,
10926
- class: normalizeClass(unref($style).statusIcons)
10927
- }, null, 8, ["class"])) : createCommentVNode("", true),
10928
- isStrikethroughVisible.value ? (openBlock(), createBlock(_component_CanvasNodeDisabledStrikeThrough, { key: 2 })) : createCommentVNode("", true),
10907
+ disabled: unref(isDisabled),
10908
+ class: normalizeClass(unref($style).icon)
10909
+ }, null, 8, ["icon-source", "size", "disabled", "class"]),
10910
+ isStrikethroughVisible.value ? (openBlock(), createBlock(_component_CanvasNodeDisabledStrikeThrough, { key: 1 })) : createCommentVNode("", true),
10929
10911
  createBaseVNode("div", {
10930
10912
  class: normalizeClass(unref($style).description)
10931
10913
  }, [
@@ -10941,54 +10923,60 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
10941
10923
  key: 2,
10942
10924
  class: normalizeClass(unref($style).subtitle)
10943
10925
  }, toDisplayString(unref(subtitle2)), 3)) : createCommentVNode("", true)
10944
- ], 2)
10926
+ ], 2),
10927
+ !unref(isDisabled) ? (openBlock(), createBlock(_component_CanvasNodeStatusIcons, {
10928
+ key: 2,
10929
+ class: normalizeClass(unref($style).statusIcons)
10930
+ }, null, 8, ["class"])) : createCommentVNode("", true)
10945
10931
  ], 64))
10946
10932
  ], 46, _hoisted_1$4);
10947
10933
  };
10948
10934
  }
10949
10935
  });
10950
- const node = "_node_jt24t_123";
10951
- const trigger$1 = "_trigger_jt24t_156";
10952
- const settingsView = "_settingsView_jt24t_159";
10953
- const configuration = "_configuration_jt24t_172";
10954
- const statusIcons = "_statusIcons_jt24t_179";
10955
- const configurable = "_configurable_jt24t_182";
10956
- const description = "_description_jt24t_193";
10957
- const label$5 = "_label_jt24t_203";
10958
- const subtitle = "_subtitle_jt24t_206";
10959
- const selected$1 = "_selected_jt24t_216";
10960
- const success$1 = "_success_jt24t_219";
10961
- const warning = "_warning_jt24t_222";
10962
- const error = "_error_jt24t_225";
10963
- const pinned = "_pinned_jt24t_228";
10964
- const disabled$1 = "_disabled_jt24t_231";
10965
- const running = "_running_jt24t_234";
10966
- const waiting = "_waiting_jt24t_238";
10967
- const disabledLabel = "_disabledLabel_jt24t_255";
10968
- const style0$i = {
10936
+ const node = "_node_1b2gp_123";
10937
+ const trigger$1 = "_trigger_1b2gp_145";
10938
+ const settingsView = "_settingsView_1b2gp_148";
10939
+ const configuration = "_configuration_1b2gp_160";
10940
+ const statusIcons = "_statusIcons_1b2gp_165";
10941
+ const configurable = "_configurable_1b2gp_168";
10942
+ const icon = "_icon_1b2gp_168";
10943
+ const description = "_description_1b2gp_171";
10944
+ const label$5 = "_label_1b2gp_184";
10945
+ const subtitle = "_subtitle_1b2gp_187";
10946
+ const running = "_running_1b2gp_193";
10947
+ const selected$1 = "_selected_1b2gp_200";
10948
+ const success$1 = "_success_1b2gp_203";
10949
+ const warning = "_warning_1b2gp_206";
10950
+ const error = "_error_1b2gp_209";
10951
+ const pinned = "_pinned_1b2gp_212";
10952
+ const disabled$1 = "_disabled_1b2gp_215";
10953
+ const waiting = "_waiting_1b2gp_222";
10954
+ const disabledLabel = "_disabledLabel_1b2gp_238";
10955
+ const style0$j = {
10969
10956
  node,
10970
10957
  trigger: trigger$1,
10971
10958
  settingsView,
10972
10959
  configuration,
10973
10960
  statusIcons,
10974
10961
  configurable,
10962
+ icon,
10975
10963
  description,
10976
10964
  label: label$5,
10977
10965
  subtitle,
10966
+ running,
10978
10967
  selected: selected$1,
10979
10968
  success: success$1,
10980
10969
  warning,
10981
10970
  error,
10982
10971
  pinned,
10983
10972
  disabled: disabled$1,
10984
- running,
10985
10973
  waiting,
10986
10974
  disabledLabel
10987
10975
  };
10988
- const cssModules$i = {
10989
- "$style": style0$i
10976
+ const cssModules$j = {
10977
+ "$style": style0$j
10990
10978
  };
10991
- const CanvasNodeDefault = /* @__PURE__ */ _export_sfc$1(_sfc_main$o, [["__cssModules", cssModules$i]]);
10979
+ const CanvasNodeDefault = /* @__PURE__ */ _export_sfc$1(_sfc_main$p, [["__cssModules", cssModules$j]]);
10992
10980
  var xhtml = "http://www.w3.org/1999/xhtml";
10993
10981
  const namespaces = {
10994
10982
  svg: "http://www.w3.org/2000/svg",
@@ -12268,7 +12256,7 @@ const __default__ = {
12268
12256
  compatConfig: { MODE: 3 },
12269
12257
  inheritAttrs: false
12270
12258
  };
12271
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
12259
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
12272
12260
  ...__default__,
12273
12261
  props: {
12274
12262
  nodeId: {},
@@ -12381,7 +12369,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
12381
12369
  };
12382
12370
  }
12383
12371
  });
12384
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
12372
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
12385
12373
  ...{
12386
12374
  inheritAttrs: false
12387
12375
  },
@@ -12438,7 +12426,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
12438
12426
  return (_ctx, _cache) => {
12439
12427
  const _component_N8nSticky = resolveComponent("N8nSticky");
12440
12428
  return openBlock(), createElementBlock(Fragment, null, [
12441
- createVNode(unref(_sfc_main$n), {
12429
+ createVNode(unref(_sfc_main$o), {
12442
12430
  "min-height": 80,
12443
12431
  "min-width": 150,
12444
12432
  height: renderOptions.value.height,
@@ -12467,16 +12455,16 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
12467
12455
  });
12468
12456
  const sticky = "_sticky_1jyj2_123";
12469
12457
  const selected = "_selected_1jyj2_130";
12470
- const style0$h = {
12458
+ const style0$i = {
12471
12459
  sticky,
12472
12460
  selected
12473
12461
  };
12474
- const cssModules$h = {
12475
- "$style": style0$h
12462
+ const cssModules$i = {
12463
+ "$style": style0$i
12476
12464
  };
12477
- const CanvasNodeStickyNote = /* @__PURE__ */ _export_sfc$1(_sfc_main$m, [["__cssModules", cssModules$h]]);
12465
+ const CanvasNodeStickyNote = /* @__PURE__ */ _export_sfc$1(_sfc_main$n, [["__cssModules", cssModules$i]]);
12478
12466
  const _hoisted_1$3 = ["textContent"];
12479
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
12467
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
12480
12468
  __name: "CanvasNodeAddNodes",
12481
12469
  setup(__props) {
12482
12470
  const nodeCreatorStore = useNodeCreatorStore();
@@ -12544,16 +12532,16 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
12544
12532
  const addNodes = "_addNodes_1qfrq_123";
12545
12533
  const button$1 = "_button_1qfrq_131";
12546
12534
  const label$4 = "_label_1qfrq_152";
12547
- const style0$g = {
12535
+ const style0$h = {
12548
12536
  addNodes,
12549
12537
  button: button$1,
12550
12538
  label: label$4
12551
12539
  };
12552
- const cssModules$g = {
12553
- "$style": style0$g
12540
+ const cssModules$h = {
12541
+ "$style": style0$h
12554
12542
  };
12555
- const CanvasNodeAddNodes = /* @__PURE__ */ _export_sfc$1(_sfc_main$l, [["__cssModules", cssModules$g]]);
12556
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
12543
+ const CanvasNodeAddNodes = /* @__PURE__ */ _export_sfc$1(_sfc_main$m, [["__cssModules", cssModules$h]]);
12544
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
12557
12545
  __name: "CanvasNodeAIPrompt",
12558
12546
  emits: ["delete"],
12559
12547
  setup(__props, { emit: __emit }) {
@@ -12634,7 +12622,7 @@ const form_textarea = "_form_textarea_145fr_153";
12634
12622
  const form_footer = "_form_footer_145fr_170";
12635
12623
  const or = "_or_145fr_176";
12636
12624
  const or_text = "_or_text_145fr_185";
12637
- const style0$f = {
12625
+ const style0$g = {
12638
12626
  container: container$1,
12639
12627
  promptContainer,
12640
12628
  focused,
@@ -12644,11 +12632,11 @@ const style0$f = {
12644
12632
  or,
12645
12633
  or_text
12646
12634
  };
12647
- const cssModules$f = {
12648
- "$style": style0$f
12635
+ const cssModules$g = {
12636
+ "$style": style0$g
12649
12637
  };
12650
- const CanvasNodeAIPrompt = /* @__PURE__ */ _export_sfc$1(_sfc_main$k, [["__cssModules", cssModules$f]]);
12651
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
12638
+ const CanvasNodeAIPrompt = /* @__PURE__ */ _export_sfc$1(_sfc_main$l, [["__cssModules", cssModules$g]]);
12639
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
12652
12640
  __name: "CanvasNodeRenderer",
12653
12641
  setup(__props) {
12654
12642
  const node2 = inject(CanvasNodeKey);
@@ -12677,7 +12665,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
12677
12665
  };
12678
12666
  }
12679
12667
  });
12680
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
12668
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
12681
12669
  __name: "CanvasHandleRectangle",
12682
12670
  props: {
12683
12671
  handleClasses: { default: void 0 }
@@ -12691,13 +12679,13 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
12691
12679
  }
12692
12680
  });
12693
12681
  const rectangle = "_rectangle_rd2w6_123";
12694
- const style0$e = {
12682
+ const style0$f = {
12695
12683
  rectangle
12696
12684
  };
12697
- const cssModules$e = {
12698
- "$style": style0$e
12685
+ const cssModules$f = {
12686
+ "$style": style0$f
12699
12687
  };
12700
- const __unplugin_components_0$2 = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__cssModules", cssModules$e]]);
12688
+ const __unplugin_components_0$2 = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["__cssModules", cssModules$f]]);
12701
12689
  function useCanvasNodeHandle() {
12702
12690
  const handle2 = inject(CanvasNodeHandleKey);
12703
12691
  const label2 = computed(() => handle2?.label.value ?? "");
@@ -12724,7 +12712,7 @@ function useCanvasNodeHandle() {
12724
12712
  };
12725
12713
  }
12726
12714
  const handleClasses$3 = "target";
12727
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
12715
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
12728
12716
  __name: "CanvasHandleMainInput",
12729
12717
  setup(__props) {
12730
12718
  const $style = useCssModule();
@@ -12750,19 +12738,19 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
12750
12738
  const handle$4 = "_handle_1v80z_123";
12751
12739
  const label$3 = "_label_1v80z_130";
12752
12740
  const required$3 = "_required_1v80z_143";
12753
- const style0$d = {
12741
+ const style0$e = {
12754
12742
  handle: handle$4,
12755
12743
  label: label$3,
12756
12744
  required: required$3
12757
12745
  };
12758
- const cssModules$d = {
12759
- "$style": style0$d
12746
+ const cssModules$e = {
12747
+ "$style": style0$e
12760
12748
  };
12761
- const CanvasHandleMainInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$h, [["__cssModules", cssModules$d]]);
12749
+ const CanvasHandleMainInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__cssModules", cssModules$e]]);
12762
12750
  const _hoisted_1$2 = ["viewBox"];
12763
12751
  const _hoisted_2$1 = ["x1", "y1", "x2", "y2"];
12764
12752
  const _hoisted_3 = ["transform"];
12765
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
12753
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
12766
12754
  __name: "CanvasHandlePlus",
12767
12755
  props: {
12768
12756
  position: { default: "right" },
@@ -12888,18 +12876,18 @@ const secondary = "_secondary_hyidj_126";
12888
12876
  const line = "_line_hyidj_126";
12889
12877
  const plus$1 = "_plus_hyidj_129";
12890
12878
  const success = "_success_hyidj_135";
12891
- const style0$c = {
12879
+ const style0$d = {
12892
12880
  wrapper: wrapper$1,
12893
12881
  secondary,
12894
12882
  line,
12895
12883
  plus: plus$1,
12896
12884
  success
12897
12885
  };
12898
- const cssModules$c = {
12899
- "$style": style0$c
12886
+ const cssModules$d = {
12887
+ "$style": style0$d
12900
12888
  };
12901
- const CanvasHandlePlus = /* @__PURE__ */ _export_sfc$1(_sfc_main$g, [["__cssModules", cssModules$c]]);
12902
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
12889
+ const CanvasHandlePlus = /* @__PURE__ */ _export_sfc$1(_sfc_main$h, [["__cssModules", cssModules$d]]);
12890
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
12903
12891
  __name: "CanvasHandleDot",
12904
12892
  props: {
12905
12893
  handleClasses: { default: void 0 }
@@ -12913,15 +12901,15 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
12913
12901
  }
12914
12902
  });
12915
12903
  const dot = "_dot_gdjps_123";
12916
- const style0$b = {
12904
+ const style0$c = {
12917
12905
  dot
12918
12906
  };
12919
- const cssModules$b = {
12920
- "$style": style0$b
12907
+ const cssModules$c = {
12908
+ "$style": style0$c
12921
12909
  };
12922
- const __unplugin_components_0$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["__cssModules", cssModules$b]]);
12910
+ const __unplugin_components_0$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$g, [["__cssModules", cssModules$c]]);
12923
12911
  const handleClasses$2 = "source";
12924
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
12912
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
12925
12913
  __name: "CanvasHandleMainOutput",
12926
12914
  emits: ["add"],
12927
12915
  setup(__props, { emit: __emit }) {
@@ -13013,7 +13001,7 @@ const label$2 = "_label_1u904_129";
13013
13001
  const required$2 = "_required_1u904_143";
13014
13002
  const outputLabel = "_outputLabel_1u904_148";
13015
13003
  const runDataLabel = "_runDataLabel_1u904_156";
13016
- const style0$a = {
13004
+ const style0$b = {
13017
13005
  handle: handle$3,
13018
13006
  connected,
13019
13007
  label: label$2,
@@ -13021,11 +13009,11 @@ const style0$a = {
13021
13009
  outputLabel,
13022
13010
  runDataLabel
13023
13011
  };
13024
- const cssModules$a = {
13025
- "$style": style0$a
13012
+ const cssModules$b = {
13013
+ "$style": style0$b
13026
13014
  };
13027
- const CanvasHandleMainOutput = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["__cssModules", cssModules$a]]);
13028
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
13015
+ const CanvasHandleMainOutput = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["__cssModules", cssModules$b]]);
13016
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
13029
13017
  __name: "CanvasHandleDiamond",
13030
13018
  props: {
13031
13019
  handleClasses: { default: void 0 }
@@ -13039,15 +13027,15 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
13039
13027
  }
13040
13028
  });
13041
13029
  const diamond = "_diamond_kuwdo_123";
13042
- const style0$9 = {
13030
+ const style0$a = {
13043
13031
  diamond
13044
13032
  };
13045
- const cssModules$9 = {
13046
- "$style": style0$9
13033
+ const cssModules$a = {
13034
+ "$style": style0$a
13047
13035
  };
13048
- const __unplugin_components_0 = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["__cssModules", cssModules$9]]);
13036
+ const __unplugin_components_0 = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["__cssModules", cssModules$a]]);
13049
13037
  const handleClasses$1 = "target";
13050
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
13038
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
13051
13039
  __name: "CanvasHandleNonMainInput",
13052
13040
  emits: ["add"],
13053
13041
  setup(__props, { emit: __emit }) {
@@ -13107,17 +13095,17 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
13107
13095
  const handle$2 = "_handle_3v1rt_123";
13108
13096
  const label$1 = "_label_3v1rt_130";
13109
13097
  const required$1 = "_required_3v1rt_143";
13110
- const style0$8 = {
13098
+ const style0$9 = {
13111
13099
  handle: handle$2,
13112
13100
  label: label$1,
13113
13101
  required: required$1
13114
13102
  };
13115
- const cssModules$8 = {
13116
- "$style": style0$8
13103
+ const cssModules$9 = {
13104
+ "$style": style0$9
13117
13105
  };
13118
- const CanvasHandleNonMainInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["__cssModules", cssModules$8]]);
13106
+ const CanvasHandleNonMainInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["__cssModules", cssModules$9]]);
13119
13107
  const handleClasses = "source";
13120
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
13108
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
13121
13109
  __name: "CanvasHandleNonMainOutput",
13122
13110
  setup(__props) {
13123
13111
  const $style = useCssModule();
@@ -13144,17 +13132,17 @@ const handle$1 = "_handle_1x1ua_123";
13144
13132
  const label = "_label_1x1ua_130";
13145
13133
  const required = "_required_1x1ua_142";
13146
13134
  const plus = "_plus_1x1ua_147";
13147
- const style0$7 = {
13135
+ const style0$8 = {
13148
13136
  handle: handle$1,
13149
13137
  label,
13150
13138
  required,
13151
13139
  plus
13152
13140
  };
13153
- const cssModules$7 = {
13154
- "$style": style0$7
13141
+ const cssModules$8 = {
13142
+ "$style": style0$8
13155
13143
  };
13156
- const CanvasHandleNonMainOutput = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__cssModules", cssModules$7]]);
13157
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
13144
+ const CanvasHandleNonMainOutput = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["__cssModules", cssModules$8]]);
13145
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
13158
13146
  ...{
13159
13147
  inheritAttrs: false
13160
13148
  },
@@ -13275,7 +13263,7 @@ const top = "_top_5ceyz_140";
13275
13263
  const right = "_right_5ceyz_144";
13276
13264
  const left = "_left_5ceyz_148";
13277
13265
  const bottom = "_bottom_5ceyz_152";
13278
- const style0$6 = {
13266
+ const style0$7 = {
13279
13267
  handle,
13280
13268
  inputs,
13281
13269
  main,
@@ -13285,11 +13273,11 @@ const style0$6 = {
13285
13273
  left,
13286
13274
  bottom
13287
13275
  };
13288
- const cssModules$6 = {
13289
- "$style": style0$6
13276
+ const cssModules$7 = {
13277
+ "$style": style0$7
13290
13278
  };
13291
- const CanvasHandleRenderer = /* @__PURE__ */ _export_sfc$1(_sfc_main$a, [["__cssModules", cssModules$6]]);
13292
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
13279
+ const CanvasHandleRenderer = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__cssModules", cssModules$7]]);
13280
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
13293
13281
  __name: "CanvasNodeTrigger",
13294
13282
  props: {
13295
13283
  name: {},
@@ -13387,18 +13375,18 @@ const container = "_container_ze6b9_123";
13387
13375
  const interactive = "_interactive_ze6b9_144";
13388
13376
  const hovered = "_hovered_ze6b9_144";
13389
13377
  const bolt = "_bolt_ze6b9_150";
13390
- const style0$5 = {
13378
+ const style0$6 = {
13391
13379
  container,
13392
13380
  interactive,
13393
13381
  hovered,
13394
13382
  bolt
13395
13383
  };
13396
- const cssModules$5 = {
13397
- "$style": style0$5
13384
+ const cssModules$6 = {
13385
+ "$style": style0$6
13398
13386
  };
13399
- const CanvasNodeTrigger = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__cssModules", cssModules$5]]);
13387
+ const CanvasNodeTrigger = /* @__PURE__ */ _export_sfc$1(_sfc_main$a, [["__cssModules", cssModules$6]]);
13400
13388
  const _hoisted_1$1 = ["data-test-id", "data-node-name", "data-node-type"];
13401
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
13389
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
13402
13390
  __name: "CanvasNode",
13403
13391
  props: {
13404
13392
  id: {},
@@ -13498,6 +13486,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
13498
13486
  const handleType = mode === CanvasConnectionMode.Input ? "target" : "source";
13499
13487
  const connectionsCount = connections2.value[mode][endpoint.type]?.[endpoint.index]?.length ?? 0;
13500
13488
  const isConnecting = connectingHandle.value?.nodeId === props.id && connectingHandle.value?.handleType === handleType && connectingHandle.value?.handleId === handleId;
13489
+ const offsetValue = position2 === Position.Bottom ? `${GRID_SIZE * (2 + index * 2)}px` : `${100 / (endpoints.length + 1) * (index + 1)}%`;
13501
13490
  return {
13502
13491
  ...endpoint,
13503
13492
  handleId,
@@ -13505,7 +13494,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
13505
13494
  isConnecting,
13506
13495
  position: position2,
13507
13496
  offset: {
13508
- [offsetAxis]: `${100 / (endpoints.length + 1) * (index + 1)}%`
13497
+ [offsetAxis]: offsetValue
13509
13498
  }
13510
13499
  };
13511
13500
  };
@@ -13659,7 +13648,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
13659
13648
  onUpdate,
13660
13649
  "onOpen:contextmenu": onOpenContextMenuFromToolbar
13661
13650
  }, null, 8, ["read-only", "class"])) : createCommentVNode("", true),
13662
- createVNode(_sfc_main$j, {
13651
+ createVNode(_sfc_main$k, {
13663
13652
  onActivate,
13664
13653
  onDeactivate,
13665
13654
  onMove,
@@ -13684,16 +13673,16 @@ const canvasNode = "_canvasNode_1ftik_123";
13684
13673
  const trigger = "_trigger_1ftik_123";
13685
13674
  const canvasNodeToolbar = "_canvasNodeToolbar_1ftik_123";
13686
13675
  const showToolbar = "_showToolbar_1ftik_123";
13687
- const style0$4 = {
13676
+ const style0$5 = {
13688
13677
  canvasNode,
13689
13678
  trigger,
13690
13679
  canvasNodeToolbar,
13691
13680
  showToolbar
13692
13681
  };
13693
- const cssModules$4 = {
13694
- "$style": style0$4
13682
+ const cssModules$5 = {
13683
+ "$style": style0$5
13695
13684
  };
13696
- const Node = /* @__PURE__ */ _export_sfc$1(_sfc_main$8, [["__cssModules", cssModules$4]]);
13685
+ const Node = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__cssModules", cssModules$5]]);
13697
13686
  function useViewportAutoAdjust(viewportRef, viewport, setViewport) {
13698
13687
  const canvasRect = ref();
13699
13688
  watch(
@@ -13733,7 +13722,7 @@ function useViewportAutoAdjust(viewportRef, viewport, setViewport) {
13733
13722
  const renameKeyCode = " ";
13734
13723
  const defaultZoom = 1;
13735
13724
  const minimapVisibilityDelay = 1e3;
13736
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
13725
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
13737
13726
  __name: "Canvas",
13738
13727
  props: {
13739
13728
  id: { default: "canvas" },
@@ -13865,7 +13854,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
13865
13854
  const keyMap = computed(() => {
13866
13855
  const readOnlyKeymap = {
13867
13856
  ctrl_shift_o: emitWithLastSelectedNode((id2) => emit("open:sub-workflow", id2)),
13868
- ctrl_c: emitWithSelectedNodes((ids) => emit("copy:nodes", ids)),
13857
+ ctrl_c: {
13858
+ disabled: () => isOutsideSelected(viewportRef.value),
13859
+ run: emitWithSelectedNodes((ids) => emit("copy:nodes", ids))
13860
+ },
13869
13861
  enter: emitWithLastSelectedNode((id2) => onSetNodeActivated(id2)),
13870
13862
  ctrl_a: () => addSelectedNodes(graphNodes.value),
13871
13863
  // Support both key and code for zooming in and out
@@ -14349,14 +14341,14 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
14349
14341
  createVNode(_component_CanvasConnectionLine, normalizeProps(guardReactiveProps(connectionLineProps)), null, 16)
14350
14342
  ]),
14351
14343
  default: withCtx(() => [
14352
- createVNode(_sfc_main$D, { id: arrowHeadMarkerId.value }, null, 8, ["id"]),
14353
- createVNode(_sfc_main$E, {
14344
+ createVNode(_sfc_main$E, { id: arrowHeadMarkerId.value }, null, 8, ["id"]),
14345
+ createVNode(_sfc_main$F, {
14354
14346
  viewport: unref(viewport),
14355
14347
  striped: _ctx.readOnly
14356
14348
  }, null, 8, ["viewport", "striped"]),
14357
14349
  createVNode(Transition$1, { name: "minimap" }, {
14358
14350
  default: withCtx(() => [
14359
- withDirectives(createVNode(unref(_sfc_main$H), {
14351
+ withDirectives(createVNode(unref(_sfc_main$I), {
14360
14352
  "data-test-id": "canvas-minimap",
14361
14353
  "aria-label": "n8n Minimap",
14362
14354
  height: 120,
@@ -14401,14 +14393,14 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
14401
14393
  });
14402
14394
  const canvas$1 = "_canvas_1fjji_123";
14403
14395
  const ready = "_ready_1fjji_129";
14404
- const style0$3 = {
14396
+ const style0$4 = {
14405
14397
  canvas: canvas$1,
14406
14398
  ready
14407
14399
  };
14408
- const cssModules$3 = {
14409
- "$style": style0$3
14400
+ const cssModules$4 = {
14401
+ "$style": style0$4
14410
14402
  };
14411
- const Canvas = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["__cssModules", cssModules$3], ["__scopeId", "data-v-ff688b7e"]]);
14403
+ const Canvas = /* @__PURE__ */ _export_sfc$1(_sfc_main$8, [["__cssModules", cssModules$4], ["__scopeId", "data-v-f87bc480"]]);
14412
14404
  function useCanvasMapping({
14413
14405
  nodes,
14414
14406
  connections: connections2,
@@ -14444,7 +14436,7 @@ function useCanvasMapping({
14444
14436
  }
14445
14437
  function createDefaultNodeRenderType(node2) {
14446
14438
  const nodeType = nodeTypeDescriptionByNodeId.value[node2.id];
14447
- const icon = getNodeIconSource(
14439
+ const icon2 = getNodeIconSource(
14448
14440
  simulatedNodeTypeDescriptionByNodeId.value[node2.id] ? simulatedNodeTypeDescriptionByNodeId.value[node2.id] : nodeType
14449
14441
  );
14450
14442
  return {
@@ -14461,7 +14453,7 @@ function useCanvasMapping({
14461
14453
  },
14462
14454
  tooltip: nodeTooltipById.value[node2.id],
14463
14455
  dirtiness: dirtinessByName.value[node2.name],
14464
- icon
14456
+ icon: icon2
14465
14457
  }
14466
14458
  };
14467
14459
  }
@@ -14786,10 +14778,10 @@ function useCanvasMapping({
14786
14778
  const simulatedNodeTypeDescriptionByNodeId = computed(() => {
14787
14779
  return nodes.value.reduce((acc, node2) => {
14788
14780
  if ([SIMULATE_NODE_TYPE, SIMULATE_TRIGGER_NODE_TYPE].includes(node2.type)) {
14789
- const icon = node2.parameters?.icon;
14781
+ const icon2 = node2.parameters?.icon;
14790
14782
  const iconValue = workflowObject.value.expression.getSimpleParameterValue(
14791
14783
  node2,
14792
- icon,
14784
+ icon2,
14793
14785
  "internal",
14794
14786
  {}
14795
14787
  );
@@ -14926,6 +14918,56 @@ function useCanvasMapping({
14926
14918
  nodes: mappedNodes
14927
14919
  };
14928
14920
  }
14921
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
14922
+ __name: "ExperimentalNodeDetailsDrawer",
14923
+ props: {
14924
+ selectedNodes: {}
14925
+ },
14926
+ setup(__props) {
14927
+ const content2 = computed(
14928
+ () => __props.selectedNodes.length > 1 ? `${__props.selectedNodes.length} nodes selected` : __props.selectedNodes.length > 0 ? __props.selectedNodes[0] : void 0
14929
+ );
14930
+ const lastContent = ref();
14931
+ watch(
14932
+ content2,
14933
+ (newContent) => {
14934
+ if (newContent !== void 0) {
14935
+ lastContent.value = newContent;
14936
+ }
14937
+ },
14938
+ { immediate: true }
14939
+ );
14940
+ return (_ctx, _cache) => {
14941
+ return openBlock(), createElementBlock("div", {
14942
+ class: normalizeClass([_ctx.$style.component, content2.value === void 0 ? _ctx.$style.closed : ""])
14943
+ }, [
14944
+ typeof lastContent.value === "string" ? (openBlock(), createBlock(unref(N8nText), {
14945
+ key: 0,
14946
+ color: "text-base"
14947
+ }, {
14948
+ default: withCtx(() => [
14949
+ createTextVNode(toDisplayString(lastContent.value), 1)
14950
+ ]),
14951
+ _: 1
14952
+ })) : lastContent.value !== void 0 ? (openBlock(), createBlock(_sfc_main$q, {
14953
+ key: lastContent.value.id,
14954
+ "node-id": lastContent.value.id,
14955
+ "can-open-ndv": ""
14956
+ }, null, 8, ["node-id"])) : createCommentVNode("", true)
14957
+ ], 2);
14958
+ };
14959
+ }
14960
+ });
14961
+ const component$1 = "_component_wojby_123";
14962
+ const closed = "_closed_wojby_138";
14963
+ const style0$3 = {
14964
+ component: component$1,
14965
+ closed
14966
+ };
14967
+ const cssModules$3 = {
14968
+ "$style": style0$3
14969
+ };
14970
+ const ExperimentalNodeDetailsDrawer = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["__cssModules", cssModules$3]]);
14929
14971
  const _sfc_main$6 = /* @__PURE__ */ defineComponent({
14930
14972
  ...{
14931
14973
  inheritAttrs: false
@@ -14944,7 +14986,8 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
14944
14986
  setup(__props) {
14945
14987
  const props = __props;
14946
14988
  const $style = useCssModule();
14947
- const { onNodesInitialized } = useVueFlow({ id: props.id });
14989
+ const settingsStore = useSettingsStore();
14990
+ const { onNodesInitialized, getSelectedNodes } = useVueFlow({ id: props.id });
14948
14991
  const workflow = toRef(props, "workflow");
14949
14992
  const workflowObject = toRef(props, "workflowObject");
14950
14993
  const nodes = computed(() => {
@@ -14982,13 +15025,17 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
14982
15025
  "read-only": _ctx.readOnly
14983
15026
  }, _ctx.$attrs), null, 16, ["id", "nodes", "connections", "event-bus", "read-only"])) : createCommentVNode("", true)
14984
15027
  ], 2),
14985
- renderSlot(_ctx.$slots, "default")
15028
+ renderSlot(_ctx.$slots, "default"),
15029
+ unref(settingsStore).experimental__dockedNodeSettingsEnabled && !props.readOnly ? (openBlock(), createBlock(ExperimentalNodeDetailsDrawer, {
15030
+ key: 0,
15031
+ "selected-nodes": unref(getSelectedNodes)
15032
+ }, null, 8, ["selected-nodes"])) : createCommentVNode("", true)
14986
15033
  ], 2);
14987
15034
  };
14988
15035
  }
14989
15036
  });
14990
- const wrapper = "_wrapper_17o0o_123";
14991
- const canvas = "_canvas_17o0o_131";
15037
+ const wrapper = "_wrapper_jyurh_123";
15038
+ const canvas = "_canvas_jyurh_131";
14992
15039
  const style0$2 = {
14993
15040
  wrapper,
14994
15041
  canvas
@@ -15048,7 +15095,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
15048
15095
  }
15049
15096
  return (_ctx, _cache) => {
15050
15097
  const _component_I18nT = resolveComponent("I18nT");
15051
- const _component_NodeIcon = _sfc_main$O;
15098
+ const _component_NodeIcon = _sfc_main$P;
15052
15099
  return openBlock(), createElementBlock("div", {
15053
15100
  class: normalizeClass([_ctx.$style.component, isSplitButton.value ? _ctx.$style.split : ""])
15054
15101
  }, [
@@ -15328,13 +15375,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
15328
15375
  __name: "NodeView",
15329
15376
  setup(__props) {
15330
15377
  const LazyNodeCreation = defineAsyncComponent(
15331
- async () => await __vitePreload(() => import("./NodeCreation-BdlX_3Tg.js").then((n) => n.N), true ? __vite__mapDeps([0,1,2,3]) : void 0)
15378
+ async () => await __vitePreload(() => import("./NodeCreation-BsZaXqbI.js").then((n) => n.N), true ? __vite__mapDeps([0,1,2,3]) : void 0)
15332
15379
  );
15333
15380
  const LazyNodeDetailsView = defineAsyncComponent(
15334
- async () => await __vitePreload(() => import("./NodeDetailsView-CJ_lg1pq.js"), true ? __vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17]) : void 0)
15381
+ async () => await __vitePreload(() => import("./NodeDetailsView-C_kBwPui.js"), true ? __vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17]) : void 0)
15335
15382
  );
15336
15383
  const LazySetupWorkflowCredentialsButton = defineAsyncComponent(
15337
- async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-1OgGhAkl.js"), true ? __vite__mapDeps([18,1,2]) : void 0)
15384
+ async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-BElZF8gF.js"), true ? __vite__mapDeps([18,1,2]) : void 0)
15338
15385
  );
15339
15386
  const $style = useCssModule();
15340
15387
  const router = useRouter();