n8n-editor-ui 1.91.1 → 1.93.0

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 (120) hide show
  1. package/dist/assets/{AnimatedSpinner-BrkRvAXQ.js → AnimatedSpinner-hbTZDd93.js} +1 -1
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DRamY8Fo.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CYzc5StE.js} +1 -1
  3. package/dist/assets/{AuthView-ehh7NFh5.js → AuthView-8SLMP0H_.js} +2 -2
  4. package/dist/assets/{CanvasChatSwitch-DUBgoMXw.js → CanvasChatSwitch-Dt8TgNJg.js} +22 -10
  5. package/dist/assets/{ChangePasswordView-BLFb7_-o.js → ChangePasswordView-DIRyDp89.js} +3 -3
  6. package/dist/assets/CollectionParameter-Cj4t6-hd.js +4 -0
  7. package/dist/assets/{CredentialsView-1uYUpp0G.js → CredentialsView-B6-VxAJ6.js} +26 -11
  8. package/dist/assets/{DemoFooter-CNfkqkRC.js → DemoFooter-CIHwH5PG.js} +8 -8
  9. package/dist/assets/{ErrorView-CmYweWFA.js → ErrorView-C7i0TZwT.js} +1 -1
  10. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-DAWTDTON.js → ExecutionsTime.vue_vue_type_script_setup_true_lang--2G21NNR.js} +2 -2
  11. package/dist/assets/{ExecutionsView-fotg1R4V.js → ExecutionsView-C_YtciAr.js} +10 -9
  12. package/dist/assets/{FileSaver.min-CcnqpaV-.js → FileSaver.min-bgn7Q9Gt.js} +1 -1
  13. package/dist/assets/{FixedCollectionParameter-BYR4RzWw.js → FixedCollectionParameter-BPCJ5aaq.js} +1 -1
  14. package/dist/assets/{ForgotMyPasswordView-CQMKtpr-.js → ForgotMyPasswordView-DyUaGd6Z.js} +3 -3
  15. package/dist/assets/{InsightsChartAverageRuntime-B-9BU5qw.js → InsightsChartAverageRuntime-BB2I2vpV.js} +4 -4
  16. package/dist/assets/{InsightsChartFailed-Bd1BlFEm.js → InsightsChartFailed-CN_Rl3Bl.js} +4 -4
  17. package/dist/assets/{InsightsChartFailureRate-DPTCueAp.js → InsightsChartFailureRate-CHKlg6tg.js} +4 -4
  18. package/dist/assets/{InsightsChartTimeSaved-CSVKB08W.js → InsightsChartTimeSaved-Cd05cM8q.js} +4 -4
  19. package/dist/assets/{InsightsChartTotal-Bxjmisao.js → InsightsChartTotal-ChAO7myf.js} +4 -4
  20. package/dist/assets/{InsightsDashboard-5cOORj5z.js → InsightsDashboard-BeCfBVUz.js} +10 -10
  21. package/dist/assets/{InsightsPaywall-Bdo_3Ic_.js → InsightsPaywall-Chz8CDc3.js} +1 -1
  22. package/dist/assets/{InsightsSummary-DB62HhNM.js → InsightsSummary-MECenLJQ.js} +1 -1
  23. package/dist/assets/{InsightsTableWorkflows-BEC5Yh0b.js → InsightsTableWorkflows-5rpYY7YT.js} +2 -2
  24. package/dist/assets/{Logo-CK8euEWT.js → Logo-DUDCllkm.js} +1 -1
  25. package/dist/assets/{LogsPanel-CrGEYFLo.js → LogsPanel-D9r5AcQH.js} +75 -106
  26. package/dist/assets/{LogsPanel-DLC2TAqh.css → LogsPanel-mTaFEGk_.css} +38 -34
  27. package/dist/assets/{MainHeader-CEPLiR-5.css → MainHeader-CEMGASqv.css} +18 -11
  28. package/dist/assets/{MainHeader-C7XOaZKu.js → MainHeader-DkKOOZ_D.js} +145 -79
  29. package/dist/assets/{MainSidebar-CKMiDGvH.css → MainSidebar-D1_1YFQZ.css} +13 -12
  30. package/dist/assets/{MainSidebar-DD_ugRL3.js → MainSidebar-ZUBIWeXm.js} +36 -19
  31. package/dist/assets/{NodeCreation-S2FoBcnW.js → NodeCreation-DCfAFuL5.js} +10 -5
  32. package/dist/assets/{NodeCreator-D9fmPdS2.css → NodeCreator-D18StsVZ.css} +1021 -174
  33. package/dist/assets/{NodeCreator-D6TKVgLu.js → NodeCreator-a0YVv1IE.js} +863 -418
  34. package/dist/assets/{NodeDetailsView-DtvMtBqp.js → NodeDetailsView-C5_hVJzj.js} +60 -47
  35. package/dist/assets/{NodeDetailsView-CGgV4Pn_.css → NodeDetailsView-pYP-34nS.css} +20 -20
  36. package/dist/assets/{NodeView-BPhaaoWK.js → NodeView-Bk9h8GYy.js} +49 -25
  37. package/dist/assets/{ProjectCardBadge-C_L_pqWA.js → ProjectCardBadge-DRlDZx3d.js} +38 -2
  38. package/dist/assets/{ProjectHeader-C0FZTxjm.js → ProjectHeader-DNm605Kk.js} +106 -64
  39. package/dist/assets/{ProjectSettings-DlggJ6Ti.js → ProjectSettings-Dge_6KaR.js} +3 -2
  40. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-BNtCDFSj.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-CUf0LkWR.js} +1 -1
  41. package/dist/assets/{ResourcesListLayout-HzoSFUaj.js → ResourcesListLayout-Bbl-1i4l.js} +156 -53
  42. package/dist/assets/{ResourcesListLayout-CtGME7aU.css → ResourcesListLayout-DuNjbsMn.css} +8 -8
  43. package/dist/assets/{RunData-C9dtm1M2.css → RunData-DQeENuzG.css} +12 -2
  44. package/dist/assets/{RunData-D8Eax0cQ.js → RunData-b0RE2JWc.js} +418 -207
  45. package/dist/assets/{RunDataAi-BF2gZZGr.css → RunDataAi-D9VLFXIf.css} +10 -51
  46. package/dist/assets/{RunDataAi-BUnCQIRN.js → RunDataAi-DnWcCR_0.js} +27 -310
  47. package/dist/assets/{RunDataJson-DXd3nZxI.js → RunDataJson-CptVuHuA.js} +7 -7
  48. package/dist/assets/{RunDataJsonActions-aivOaol2.js → RunDataJsonActions-3jjDztw7.js} +1 -1
  49. package/dist/assets/RunDataParsedAiContent-9EEUzCKp.css +176 -0
  50. package/dist/assets/RunDataParsedAiContent-BbXv-NPD.js +148 -0
  51. package/dist/assets/{RunDataSearch-DJ9BZGTu.js → RunDataSearch-B90wjsDA.js} +1 -1
  52. package/dist/assets/{RunDataTable-vEPCwbcC.js → RunDataTable-CpS78GlT.js} +3 -3
  53. package/dist/assets/{SamlOnboarding--OTxMEws.js → SamlOnboarding-Ch9K5rRW.js} +3 -3
  54. package/dist/assets/{SettingsApiView-BulxWyyY.js → SettingsApiView-9GU5n_rm.js} +1 -1
  55. package/dist/assets/{SettingsCommunityNodesView-4wwPXFO2.js → SettingsCommunityNodesView-CPnVRzNX.js} +24 -11
  56. package/dist/assets/{SettingsExternalSecrets-zt7dxBKK.js → SettingsExternalSecrets-D7xTMV9h.js} +1 -1
  57. package/dist/assets/{SettingsLdapView-xneO6UIv.js → SettingsLdapView-OfrjGKkt.js} +1 -1
  58. package/dist/assets/{SettingsLogStreamingView-_h8wUzum.js → SettingsLogStreamingView-C_VnOaeX.js} +1 -1
  59. package/dist/assets/{SettingsPersonalView-CwYMP4sk.js → SettingsPersonalView-Dm24akPV.js} +14 -13
  60. package/dist/assets/{SettingsSourceControl-B9Tg93u3.js → SettingsSourceControl-DDCmL82j.js} +1 -1
  61. package/dist/assets/{SettingsSso-XaL1PzfW.js → SettingsSso-BGGQ0Cpg.js} +14 -1
  62. package/dist/assets/{SettingsUsageAndPlan-Ci15FW81.js → SettingsUsageAndPlan-BzO_zdkH.js} +1 -1
  63. package/dist/assets/{SettingsUsersView-DBJV4vSK.js → SettingsUsersView-DHQUqhqB.js} +1 -1
  64. package/dist/assets/{SettingsView-DMzdPF-1.js → SettingsView-CbtAqjOX.js} +1 -1
  65. package/dist/assets/{SetupView-BqWgdvDq.js → SetupView-BME1OE6U.js} +3 -3
  66. package/dist/assets/{SetupWorkflowCredentialsButton-B2wnuUnF.js → SetupWorkflowCredentialsButton-DZr4TCPC.js} +1 -1
  67. package/dist/assets/{SetupWorkflowFromTemplateView-BwC_wFSc.js → SetupWorkflowFromTemplateView-CPkKEY04.js} +3 -3
  68. package/dist/assets/{SigninView-DpTLJJwD.js → SigninView-DUeRvOiY.js} +3 -3
  69. package/dist/assets/{SignoutView-dkTtOCo1.js → SignoutView-BC7SBunZ.js} +1 -1
  70. package/dist/assets/{SignupView-CJFJJO3L.js → SignupView-B5ecYJ2q.js} +3 -3
  71. package/dist/assets/{TemplateDetails-84YElIBA.js → TemplateDetails-DjanZgC1.js} +1 -1
  72. package/dist/assets/{TemplateList-CGsfKuVA.js → TemplateList-8TyNGxY-.js} +1 -1
  73. package/dist/assets/{TemplatesCollectionView-2y8KZk0I.js → TemplatesCollectionView-BkH4pJCv.js} +5 -5
  74. package/dist/assets/{TemplatesSearchView-DgosiOzl.js → TemplatesSearchView-Bcdhi1SL.js} +3 -3
  75. package/dist/assets/{TemplatesView-CgQSZO4a.js → TemplatesView-De2XB6We.js} +1 -1
  76. package/dist/assets/{TemplatesWorkflowView-2pSUmAbX.js → TemplatesWorkflowView-BVnwtrMa.js} +5 -5
  77. package/dist/assets/{TestDefinitionEditView-C26sWE7p.js → TestDefinitionEditView-DjmPnrTk.js} +7 -7
  78. package/dist/assets/{TestDefinitionListView-Cyl6bsLP.js → TestDefinitionListView-BL2s_qBZ.js} +1 -1
  79. package/dist/assets/{TestDefinitionNewView-CfIZ0atk.js → TestDefinitionNewView-B9BqJZST.js} +2 -2
  80. package/dist/assets/{TestDefinitionRootView-CYg7HBL-.js → TestDefinitionRootView-AlWyxbc0.js} +1 -1
  81. package/dist/assets/{VariablesView-BFE9B0_b.js → VariablesView-BZCvPfan.js} +4 -3
  82. package/dist/assets/{WorkerView-BUMCMS_B.js → WorkerView-CigxqnWi.js} +6 -6
  83. package/dist/assets/{WorkflowActivator-BDLto9c0.js → WorkflowActivator-B7jRy4L1.js} +8 -4
  84. package/dist/assets/{WorkflowActivator-DAyH7N29.css → WorkflowActivator-DrMTmuTZ.css} +2 -2
  85. package/dist/assets/{WorkflowExecutionsInfoAccordion-manN-WIj.js → WorkflowExecutionsInfoAccordion-C_ZycbsF.js} +1 -1
  86. package/dist/assets/{WorkflowExecutionsLandingPage-BzGmpGvf.js → WorkflowExecutionsLandingPage-DOqrfKlC.js} +2 -2
  87. package/dist/assets/{WorkflowExecutionsPreview-CNEV2lom.js → WorkflowExecutionsPreview-B4Cj2gXW.js} +6 -6
  88. package/dist/assets/{WorkflowExecutionsView-WiNvtAmD.js → WorkflowExecutionsView-RXfP7zkJ.js} +11 -9
  89. package/dist/assets/{WorkflowHistory-6uJJqB4x.js → WorkflowHistory-DrXrRwIS.js} +37 -19
  90. package/dist/assets/{WorkflowOnboardingView-CPt_AUR-.js → WorkflowOnboardingView-CXH1vCW2.js} +1 -1
  91. package/dist/assets/{WorkflowPreview-CHUEX6H6.js → WorkflowPreview-B_MuFEV8.js} +1 -1
  92. package/dist/assets/{WorkflowsView-B2_HJCJ5.css → WorkflowsView-CQvTAWQ0.css} +24 -13
  93. package/dist/assets/{WorkflowsView-DbGBRbfc.js → WorkflowsView-D90hfJ35.js} +300 -158
  94. package/dist/assets/{chartjs.utils-C--HONKb.js → chartjs.utils-DalQn9bk.js} +2 -2
  95. package/dist/assets/{dateFormatter-DbKqmK4w.js → dateFormatter-BPfJSa6q.js} +1 -1
  96. package/dist/assets/{easyAiWorkflowUtils-BWgfZ0am.js → easyAiWorkflowUtils-kgtpBx2h.js} +1 -1
  97. package/dist/assets/{global-link-actions-COf-9vBh.js → global-link-actions-CnWOMvqA.js} +1 -1
  98. package/dist/assets/{import-curl-BiXaU2jk.js → import-curl-BvX_O56D.js} +1 -1
  99. package/dist/assets/{index-B6xE9gZ1.js → index-Bb2NNknG.js} +1 -1
  100. package/dist/assets/{index-BLAboPd2.js → index-DZ6VpjNj.js} +4635 -2824
  101. package/dist/assets/{index-sq5ggyEC.css → index-yNaoC3fo.css} +363 -97
  102. package/dist/assets/{pickBy-gZHb6vZ2.js → pickBy-B_HGYyxS.js} +1 -1
  103. package/dist/assets/{templateActions-DCx74tPa.js → templateActions-DQfZ3ni5.js} +1 -1
  104. package/dist/assets/{useBeforeUnload-DbfysOS-.js → useBeforeUnload-Cu0LPVWe.js} +1 -1
  105. package/dist/assets/{useCanvasMapping-CSuq_dYj.js → useCanvasMapping-CTTq6x8X.js} +62 -40
  106. package/dist/assets/{useCanvasMapping-cuXLM-h-.css → useCanvasMapping-VtpW_QZA.css} +6 -5
  107. package/dist/assets/{useCanvasOperations-C0pQBHW3.js → useCanvasOperations-u8oSDa_u.js} +96 -445
  108. package/dist/assets/{useClearExecutionButtonVisible-Cvfxw8xC.js → useClearExecutionButtonVisible-Dwc1_eG9.js} +2 -2
  109. package/dist/assets/{useExecutionDebugging-D2H5O6fT.js → useExecutionDebugging-rc72wLIp.js} +1 -1
  110. package/dist/assets/{useExecutionHelpers-C--m0pTQ.js → useExecutionHelpers-DqwMonFW.js} +2 -2
  111. package/dist/assets/{useImportCurlCommand-XFn6Ezp2.js → useImportCurlCommand-D_onuFvo.js} +19 -10
  112. package/dist/assets/useProjectPages-e8b03-5_.js +17 -0
  113. package/dist/assets/usePushConnection-wm-7Id6Q.js +629 -0
  114. package/dist/assets/{useTestDefinitionForm-2YP-8pAN.js → useTestDefinitionForm-DlUOnNC0.js} +1 -1
  115. package/dist/assets/{useWorkflowActivate-CvmIpy5T.js → useWorkflowActivate-65xML23U.js} +1 -1
  116. package/dist/assets/useWorkflowSaving-CUel20JA.js +66 -0
  117. package/dist/index.html +2 -2
  118. package/package.json +1 -1
  119. package/dist/assets/CollectionParameter-BaH_a73u.js +0 -4
  120. package/dist/assets/usePushConnection-x0iF1Axz.js +0 -537
@@ -1,4 +1,4 @@
1
- import { gs as arrayMap, gt as getAllKeysIn, gu as baseIteratee, gv as basePickBy } from "./index-BLAboPd2.js";
1
+ import { gF as arrayMap, gG as getAllKeysIn, gH as baseIteratee, gI as basePickBy } from "./index-DZ6VpjNj.js";
2
2
  function pickBy(object, predicate) {
3
3
  if (object == null) {
4
4
  return {};
@@ -1,4 +1,4 @@
1
- import { cR as assert, d4 as doesNodeHaveCredentialsToFill, V as VIEWS, c4 as tryToParseNumber, d5 as getNewWorkflow, d6 as replaceAllTemplateNodeCredentials, c8 as getNodesWithNormalizedPosition } from "./index-BLAboPd2.js";
1
+ import { cY as assert, db as doesNodeHaveCredentialsToFill, V as VIEWS, c7 as tryToParseNumber, dc as getNewWorkflow, dd as replaceAllTemplateNodeCredentials, cb as getNodesWithNormalizedPosition } from "./index-DZ6VpjNj.js";
2
2
  async function createWorkflowFromTemplate(opts) {
3
3
  const { credentialOverrides, nodeTypeProvider, rootStore, template, workflowsStore } = opts;
4
4
  const workflowData = await getNewWorkflow(rootStore.restApiContext, { name: template.name });
@@ -1,4 +1,4 @@
1
- import { H as useUIStore, $ as useCanvasStore, r as ref, q as computed, V as VIEWS, c as useI18n } from "./index-BLAboPd2.js";
1
+ import { H as useUIStore, $ as useCanvasStore, r as ref, q as computed, V as VIEWS, c as useI18n } from "./index-DZ6VpjNj.js";
2
2
  function useBeforeUnload({ route }) {
3
3
  const uiStore = useUIStore();
4
4
  const canvasStore = useCanvasStore();
@@ -1,5 +1,5 @@
1
- import { _ as _export_sfc$1, i as createElementBlock, g as openBlock, k as createBaseVNode, d as defineComponent, fM as getCurrentScope, b0 as inject, fN as effectScope, X as watch, cS as getCurrentInstance, fO as useSlots, bb as onUnmounted, j as createVNode, x as renderSlot, w as withCtx, m as unref, r as ref, fP as useAttrs, f as createCommentVNode, e as createBlock, b7 as mergeProps, F as Fragment, bN as toRef, fQ as Teleport, fR as createPropsRestProxy, q as computed, o as onMounted, n as normalizeClass, bQ as reactive, fS as onScopeDispose, az as onBeforeMount, D as renderList, B as normalizeStyle, z as nextTick, y as onBeforeUnmount, fT as isMemoSame, t as toDisplayString, b6 as resolveDynamicComponent, l as createTextVNode, b1 as isRef, b3 as toRefs$1, fU as customRef, bh as provide, h as resolveComponent, aq as h, fV as toValue$1, fW as markRaw, fX as readonly, c as useI18n, bP as KeyboardShortcutTooltip, bm as NodeConnectionTypes, fY as CanvasKey, Y as useCssModule, H as useUIStore, bz as useNodeTypesStore, Q as useWorkflowsStore, a0 as useSourceControlStore, a7 as getResourcePermissions, ee as isPresent, fZ as getMousePosition$1, ay as STICKY_NODE_TYPE, bq as usePinnedData, f_ as NOT_DUPLICATABLE_NODE_TYPES, f$ as isExecutable, bJ as useStyles, g0 as N8nActionDropdown, cq as getDefaultExportFromCjs, fI as NODE_SIZE, ca as CanvasNodeRenderType, fJ as GRID_SIZE, bM as useThrottleFn, g1 as useActiveElement, g2 as useDeviceSupport, g3 as useEventListener$1, g4 as onKeyDown, g5 as onKeyUp, a_ as watchEffect, b4 as normalizeProps, aV as createSlots, c5 as isValidNodeConnectionType, c6 as CanvasConnectionMode, g6 as refThrottled, g7 as CanvasNodeKey, g8 as mergeModels, g9 as useModel, bA as useNodeHelpers, ga as TitledList, aR as N8nTooltip, gb as CanvasNodeDirtiness, bC as _sfc_main$A, b2 as withModifiers, ah as nodeViewEventBus, c9 as NODE_CREATOR_OPEN_SOURCES, bV as useBuilderStore, bd as withKeys, gc as CanvasNodeHandleKey, aA as withDirectives, aB as vShow, gd as Transition$2, b as useRouter, bB as useRunWorkflow, aZ as LOGS_PANEL_STATE, bk as CHAT_TRIGGER_NODE_TYPE, C as createEventBus, ej as isEqual, p as useSettingsStore, c1 as Suspense, b5 as guardReactiveProps, ge as useNodeDirtiness, fs as CUSTOM_API_CALL_KEY, bw as getNodeInputs, by as getNodeOutputs, dx as getTriggerNodeServiceName, cn as sanitizeHtml, gf as WAIT_NODE_TYPE, eA as SEND_AND_WAIT_OPERATION, gg as FORM_NODE_TYPE, gh as WAIT_INDEFINITELY, gi as SIMULATE_NODE_TYPE, gj as SIMULATE_TRIGGER_NODE_TYPE, gk as getNodeIconSource } from "./index-BLAboPd2.js";
2
- import { p as parseCanvasConnectionHandleString, a as useNodeCreatorStore, b as useCanvasOperations, i as insertSpacersBetweenEndpoints, c as createCanvasConnectionHandleString, m as mapLegacyEndpointsToCanvasConnectionPort, e as checkOverlap, f as mapLegacyConnectionsToCanvasConnections } from "./useCanvasOperations-C0pQBHW3.js";
1
+ import { _ as _export_sfc$1, i as createElementBlock, g as openBlock, k as createBaseVNode, d as defineComponent, fX as getCurrentScope, b0 as inject, fY as effectScope, X as watch, cZ as getCurrentInstance, fZ as useSlots, bb as onUnmounted, j as createVNode, x as renderSlot, w as withCtx, m as unref, r as ref, f_ as useAttrs, f as createCommentVNode, e as createBlock, b7 as mergeProps, F as Fragment, bO as toRef, f$ as Teleport, g0 as createPropsRestProxy, q as computed, o as onMounted, n as normalizeClass, bR as reactive, g1 as onScopeDispose, az as onBeforeMount, D as renderList, B as normalizeStyle, z as nextTick, y as onBeforeUnmount, g2 as isMemoSame, t as toDisplayString, b6 as resolveDynamicComponent, l as createTextVNode, b1 as isRef, b3 as toRefs$1, g3 as customRef, bh as provide, h as resolveComponent, aq as h, g4 as toValue$1, g5 as markRaw, g6 as readonly, c as useI18n, bQ as KeyboardShortcutTooltip, bm as NodeConnectionTypes, g7 as CanvasKey, Y as useCssModule, H as useUIStore, bz as useNodeTypesStore, Q as useWorkflowsStore, a0 as useSourceControlStore, a7 as getResourcePermissions, g8 as EXECUTE_WORKFLOW_NODE_TYPE, fD as getSubworkflowId, el as isPresent, g9 as getMousePosition$1, ay as STICKY_NODE_TYPE, bq as usePinnedData, ga as NOT_DUPLICATABLE_NODE_TYPES, gb as isExecutable, bK as useStyles, gc as N8nActionDropdown, cx as getDefaultExportFromCjs, fT as NODE_SIZE, cd as CanvasNodeRenderType, fU as GRID_SIZE, bN as useThrottleFn, gd as useActiveElement, ge as useDeviceSupport, gf as useEventListener$1, gg as onKeyDown, gh as onKeyUp, a_ as watchEffect, b4 as normalizeProps, aV as createSlots, c8 as isValidNodeConnectionType, c9 as CanvasConnectionMode, gi as CanvasNodeKey, gj as mergeModels, gk as useModel, bA as useNodeHelpers, gl as TitledList, aR as N8nTooltip, gm as CanvasNodeDirtiness, bC as _sfc_main$A, b2 as withModifiers, ah as nodeViewEventBus, cc as NODE_CREATOR_OPEN_SOURCES, bW as useBuilderStore, bd as withKeys, gn as CanvasNodeHandleKey, aA as withDirectives, aB as vShow, go as Transition$2, b as useRouter, bB as useRunWorkflow, aZ as LOGS_PANEL_STATE, bk as CHAT_TRIGGER_NODE_TYPE, C as createEventBus, eq as isEqual, p as useSettingsStore, c4 as Suspense, b5 as guardReactiveProps, gp as useNodeDirtiness, fC as CUSTOM_API_CALL_KEY, bw as getNodeInputs, by as getNodeOutputs, dB as getTriggerNodeServiceName, cu as sanitizeHtml, gq as WAIT_NODE_TYPE, gr as SEND_AND_WAIT_OPERATION, gs as FORM_NODE_TYPE, gt as WAIT_INDEFINITELY, gu as SIMULATE_NODE_TYPE, gv as SIMULATE_TRIGGER_NODE_TYPE, gw as getNodeIconSource } from "./index-DZ6VpjNj.js";
2
+ import { p as parseCanvasConnectionHandleString, u as useNodeCreatorStore, a as useCanvasOperations, i as insertSpacersBetweenEndpoints, c as createCanvasConnectionHandleString, m as mapLegacyEndpointsToCanvasConnectionPort, d as checkOverlap, e as mapLegacyConnectionsToCanvasConnections } from "./useCanvasOperations-u8oSDa_u.js";
3
3
  const _sfc_main$z = {};
4
4
  const _hoisted_1$d = {
5
5
  xmlns: "http://www.w3.org/2000/svg",
@@ -10073,8 +10073,14 @@ const useContextMenu = (onAction = () => {
10073
10073
  () => getResourcePermissions(workflowsStore.workflow.scopes).workflow
10074
10074
  );
10075
10075
  const isReadOnly = computed(
10076
- () => sourceControlStore.preferences.branchReadOnly || uiStore.isReadOnlyView || !workflowPermissions.value.update
10076
+ () => sourceControlStore.preferences.branchReadOnly || uiStore.isReadOnlyView || !workflowPermissions.value.update || workflowsStore.workflow.isArchived
10077
10077
  );
10078
+ const canOpenSubworkflow = computed(() => {
10079
+ if (targetNodes.value.length !== 1) return false;
10080
+ const node2 = targetNodes.value[0];
10081
+ if (node2.type !== EXECUTE_WORKFLOW_NODE_TYPE) return false;
10082
+ return getSubworkflowId(node2);
10083
+ });
10078
10084
  const targetNodeIds = computed(() => {
10079
10085
  if (!isOpen.value || !target.value) return [];
10080
10086
  const currentTarget = target.value;
@@ -10113,7 +10119,7 @@ const useContextMenu = (onAction = () => {
10113
10119
  };
10114
10120
  const open = (event, menuTarget) => {
10115
10121
  event.stopPropagation();
10116
- if (isOpen.value && menuTarget.source === target.value?.source) {
10122
+ if (isOpen.value && menuTarget.source === target.value?.source && menuTarget.nodeId === target.value?.nodeId) {
10117
10123
  close();
10118
10124
  return;
10119
10125
  }
@@ -10207,6 +10213,7 @@ const useContextMenu = (onAction = () => {
10207
10213
  }
10208
10214
  ].filter(Boolean);
10209
10215
  if (nodes.length === 1) {
10216
+ const isExecuteWorkflowNode = nodes[0].type === EXECUTE_WORKFLOW_NODE_TYPE;
10210
10217
  const singleNodeActions = onlyStickies ? [
10211
10218
  {
10212
10219
  id: "open",
@@ -10233,10 +10240,18 @@ const useContextMenu = (onAction = () => {
10233
10240
  {
10234
10241
  id: "rename",
10235
10242
  label: i18n.baseText("contextMenu.rename"),
10236
- shortcut: { keys: ["F2"] },
10243
+ shortcut: { keys: ["Space"] },
10237
10244
  disabled: isReadOnly.value
10238
10245
  }
10239
10246
  ];
10247
+ if (isExecuteWorkflowNode) {
10248
+ singleNodeActions.push({
10249
+ id: "open_sub_workflow",
10250
+ label: i18n.baseText("contextMenu.openSubworkflow"),
10251
+ shortcut: { shiftKey: true, metaKey: true, keys: ["O"] },
10252
+ disabled: !canOpenSubworkflow.value
10253
+ });
10254
+ }
10240
10255
  menuActions.unshift(...singleNodeActions);
10241
10256
  }
10242
10257
  actions.value = menuActions;
@@ -17416,7 +17431,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17416
17431
  };
17417
17432
  }
17418
17433
  });
17419
- const canvasEdgeToolbar = "_canvasEdgeToolbar_8p9ym_123";
17434
+ const canvasEdgeToolbar = "_canvasEdgeToolbar_1d3yh_123";
17420
17435
  const style0$m = {
17421
17436
  canvasEdgeToolbar
17422
17437
  };
@@ -17426,7 +17441,7 @@ const cssModules$m = {
17426
17441
  const CanvasEdgeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$o, [["__cssModules", cssModules$m]]);
17427
17442
  const _hoisted_1$6 = ["data-source-node-name", "data-target-node-name"];
17428
17443
  const _hoisted_2$3 = ["data-source-node-name", "data-target-node-name", "data-edge-status"];
17429
- const delayedHoveredTimeout = 300;
17444
+ const delayedHoveredTimeout = 600;
17430
17445
  const _sfc_main$n = /* @__PURE__ */ defineComponent({
17431
17446
  __name: "CanvasEdge",
17432
17447
  props: {
@@ -17658,7 +17673,6 @@ function useCanvasNode() {
17658
17673
  const executionStatus = computed(() => data.value.execution.status);
17659
17674
  const executionWaiting = computed(() => data.value.execution.waiting);
17660
17675
  const executionRunning = computed(() => data.value.execution.running);
17661
- const executionRunningThrottled = refThrottled(executionRunning, 300);
17662
17676
  const runDataOutputMap = computed(() => data.value.runData.outputMap);
17663
17677
  const runDataIterations = computed(() => data.value.runData.iterations);
17664
17678
  const hasRunData = computed(() => data.value.runData.visible);
@@ -17686,7 +17700,6 @@ function useCanvasNode() {
17686
17700
  executionStatus,
17687
17701
  executionWaiting,
17688
17702
  executionRunning,
17689
- executionRunningThrottled,
17690
17703
  render: render2,
17691
17704
  eventBus
17692
17705
  };
@@ -17817,7 +17830,11 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
17817
17830
  const $style = useCssModule();
17818
17831
  const i18n = useI18n();
17819
17832
  const { isExecuting } = useCanvas();
17820
- const { isDisabled, render: render2 } = useCanvasNode();
17833
+ const { isDisabled, render: render2, name } = useCanvasNode();
17834
+ const workflowsStore = useWorkflowsStore();
17835
+ const nodeTypesStore = useNodeTypesStore();
17836
+ const node2 = computed(() => !!name.value && workflowsStore.getNodeByName(name.value));
17837
+ const isToolNode = computed(() => !!node2.value && nodeTypesStore.isToolNode(node2.value.type));
17821
17838
  const nodeDisabledTitle = computed(() => {
17822
17839
  return isDisabled.value ? i18n.baseText("node.enable") : i18n.baseText("node.disable");
17823
17840
  });
@@ -17829,7 +17846,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
17829
17846
  [$style.forceVisible]: isHovered.value || isStickyColorSelectorOpen.value
17830
17847
  }));
17831
17848
  const isExecuteNodeVisible = computed(() => {
17832
- return !props.readOnly && render2.value.type === CanvasNodeRenderType.Default && "configuration" in render2.value.options && !render2.value.options.configuration;
17849
+ return !props.readOnly && render2.value.type === CanvasNodeRenderType.Default && "configuration" in render2.value.options && (!render2.value.options.configuration || isToolNode.value);
17833
17850
  });
17834
17851
  const isDisableNodeVisible = computed(() => {
17835
17852
  return !props.readOnly && render2.value.type === CanvasNodeRenderType.Default;
@@ -17978,7 +17995,7 @@ const cssModules$i = {
17978
17995
  const __unplugin_components_3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$k, [["__cssModules", cssModules$i]]);
17979
17996
  const _hoisted_1$4 = { key: 1 };
17980
17997
  const _hoisted_2$1 = ["textContent"];
17981
- const _hoisted_3$1 = { key: 3 };
17998
+ const _hoisted_3$1 = { key: 2 };
17982
17999
  const _hoisted_4 = { key: 5 };
17983
18000
  const _sfc_main$j = /* @__PURE__ */ defineComponent({
17984
18001
  __name: "CanvasNodeStatusIcons",
@@ -17991,7 +18008,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
17991
18008
  hasIssues,
17992
18009
  executionStatus,
17993
18010
  executionWaiting,
17994
- executionRunningThrottled,
18011
+ executionRunning,
17995
18012
  hasRunData,
17996
18013
  runDataIterations,
17997
18014
  isDisabled,
@@ -18047,14 +18064,8 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
18047
18064
  spin: ""
18048
18065
  })
18049
18066
  ], 2)
18050
- ])) : unref(hasPinnedData) && !unref(nodeHelpers).isProductionExecutionPreview.value && !unref(isDisabled) ? (openBlock(), createElementBlock("div", {
18051
- key: 2,
18052
- "data-test-id": "canvas-node-status-pinned",
18053
- class: normalizeClass([_ctx.$style.status, _ctx.$style.pinnedData])
18054
- }, [
18055
- createVNode(_component_FontAwesomeIcon, { icon: "thumbtack" })
18056
- ], 2)) : unref(executionStatus) === "unknown" ? (openBlock(), createElementBlock("div", _hoisted_3$1)) : unref(executionRunningThrottled) || unref(executionStatus) === "running" ? (openBlock(), createElementBlock("div", {
18057
- key: 4,
18067
+ ])) : unref(executionStatus) === "unknown" ? (openBlock(), createElementBlock("div", _hoisted_3$1)) : unref(executionRunning) || unref(executionStatus) === "running" ? (openBlock(), createElementBlock("div", {
18068
+ key: 3,
18058
18069
  "data-test-id": "canvas-node-status-running",
18059
18070
  class: normalizeClass([_ctx.$style.status, _ctx.$style.running])
18060
18071
  }, [
@@ -18062,6 +18073,12 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
18062
18073
  icon: "sync-alt",
18063
18074
  spin: ""
18064
18075
  })
18076
+ ], 2)) : unref(hasPinnedData) && !unref(nodeHelpers).isProductionExecutionPreview.value && !unref(isDisabled) ? (openBlock(), createElementBlock("div", {
18077
+ key: 4,
18078
+ "data-test-id": "canvas-node-status-pinned",
18079
+ class: normalizeClass([_ctx.$style.status, _ctx.$style.pinnedData])
18080
+ }, [
18081
+ createVNode(_component_FontAwesomeIcon, { icon: "thumbtack" })
18065
18082
  ], 2)) : dirtiness.value !== void 0 ? (openBlock(), createElementBlock("div", _hoisted_4, [
18066
18083
  createVNode(unref(N8nTooltip), {
18067
18084
  "show-after": 500,
@@ -18315,8 +18332,8 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
18315
18332
  function openContextMenu(event) {
18316
18333
  emit("open:contextmenu", event);
18317
18334
  }
18318
- function onActivate() {
18319
- emit("activate", id2.value);
18335
+ function onActivate(event) {
18336
+ emit("activate", id2.value, event);
18320
18337
  }
18321
18338
  return (_ctx, _cache) => {
18322
18339
  const _component_CanvasNodeTooltip = __unplugin_components_0$3;
@@ -20726,11 +20743,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
20726
20743
  const router = useRouter();
20727
20744
  const i18n = useI18n();
20728
20745
  const workflowsStore = useWorkflowsStore();
20729
- const uiStore = useUIStore();
20730
20746
  const { runEntireWorkflow } = useRunWorkflow({ router });
20731
20747
  const { toggleChatOpen } = useCanvasOperations({ router });
20732
20748
  const isChatOpen = computed(() => workflowsStore.logsPanelState !== LOGS_PANEL_STATE.CLOSED);
20733
- const isExecuting = computed(() => uiStore.isActionActive.workflowRunning);
20749
+ const isExecuting = computed(() => workflowsStore.isWorkflowRunning);
20734
20750
  const testId = computed(() => `execute-workflow-button-${__props.name}`);
20735
20751
  return (_ctx, _cache) => {
20736
20752
  const _component_FontAwesomeIcon = resolveComponent("FontAwesomeIcon");
@@ -20933,8 +20949,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
20933
20949
  function onDisabledToggle() {
20934
20950
  emit("toggle", props.id);
20935
20951
  }
20936
- function onActivate() {
20937
- emit("activate", props.id);
20952
+ function onActivate(id22, event) {
20953
+ emit("activate", id22, event);
20938
20954
  }
20939
20955
  function onDeactivate() {
20940
20956
  emit("deactivate", props.id);
@@ -21141,7 +21157,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21141
21157
  keyBindings: { type: Boolean, default: true },
21142
21158
  loading: { type: Boolean, default: false }
21143
21159
  },
21144
- emits: ["update:modelValue", "update:node:position", "update:nodes:position", "update:node:activated", "update:node:deactivated", "update:node:enabled", "update:node:selected", "update:node:name", "update:node:parameters", "update:node:inputs", "update:node:outputs", "click:node", "click:node:add", "run:node", "delete:node", "create:node", "create:sticky", "delete:nodes", "update:nodes:enabled", "copy:nodes", "duplicate:nodes", "update:nodes:pin", "cut:nodes", "delete:connection", "create:connection:start", "create:connection", "create:connection:end", "create:connection:cancelled", "click:connection:add", "click:pane", "run:workflow", "save:workflow", "create:workflow", "drag-and-drop", "tidy-up"],
21160
+ emits: ["update:modelValue", "update:node:position", "update:nodes:position", "update:node:activated", "update:node:deactivated", "update:node:enabled", "update:node:selected", "update:node:name", "update:node:parameters", "update:node:inputs", "update:node:outputs", "click:node", "click:node:add", "run:node", "delete:node", "create:node", "create:sticky", "delete:nodes", "update:nodes:enabled", "copy:nodes", "duplicate:nodes", "update:nodes:pin", "cut:nodes", "delete:connection", "create:connection:start", "create:connection", "create:connection:end", "create:connection:cancelled", "click:connection:add", "click:pane", "run:workflow", "save:workflow", "create:workflow", "drag-and-drop", "tidy-up", "open:sub-workflow"],
21145
21161
  setup(__props, { emit: __emit }) {
21146
21162
  const $style = useCssModule();
21147
21163
  const emit = __emit;
@@ -21257,6 +21273,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21257
21273
  }
21258
21274
  const keyMap = computed(() => {
21259
21275
  const readOnlyKeymap = {
21276
+ ctrl_shift_o: emitWithLastSelectedNode((id2) => emit("open:sub-workflow", id2)),
21260
21277
  ctrl_c: emitWithSelectedNodes((ids) => emit("copy:nodes", ids)),
21261
21278
  enter: emitWithLastSelectedNode((id2) => onSetNodeActivated(id2)),
21262
21279
  ctrl_a: () => addSelectedNodes(graphNodes.value),
@@ -21338,9 +21355,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21338
21355
  nodesSelectionActive.value = false;
21339
21356
  }
21340
21357
  }
21341
- function onSetNodeActivated(id2) {
21358
+ function onSetNodeActivated(id2, event) {
21342
21359
  props.eventBus.emit("nodes:action", { ids: [id2], action: "update:node:activated" });
21343
- emit("update:node:activated", id2);
21360
+ emit("update:node:activated", id2, event);
21344
21361
  }
21345
21362
  function onSetNodeDeactivated(id2) {
21346
21363
  emit("update:node:deactivated", id2);
@@ -21500,23 +21517,25 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21500
21517
  }, {});
21501
21518
  });
21502
21519
  const contextMenu2 = useContextMenu();
21503
- function onOpenContextMenu(event) {
21520
+ function onOpenContextMenu(event, target2) {
21504
21521
  contextMenu2.open(event, {
21505
21522
  source: "canvas",
21506
- nodeIds: selectedNodeIds.value
21523
+ nodeIds: selectedNodeIds.value,
21524
+ ...target2
21507
21525
  });
21508
21526
  }
21509
21527
  function onOpenSelectionContextMenu({ event }) {
21510
- contextMenu2.open(event, {
21511
- source: "canvas",
21512
- nodeIds: selectedNodeIds.value
21513
- });
21528
+ onOpenContextMenu(event);
21514
21529
  }
21515
21530
  function onOpenNodeContextMenu(id2, event, source) {
21516
- if (selectedNodeIds.value.includes(id2)) {
21517
- onOpenContextMenu(event);
21531
+ if (source === "node-button") {
21532
+ contextMenu2.open(event, { source, nodeId: id2 });
21533
+ } else if (selectedNodeIds.value.length > 1 && selectedNodeIds.value.includes(id2)) {
21534
+ onOpenContextMenu(event, { nodeId: id2 });
21535
+ } else {
21536
+ onSelectNodes({ ids: [id2] });
21537
+ contextMenu2.open(event, { source, nodeId: id2 });
21518
21538
  }
21519
- contextMenu2.open(event, { source, nodeId: id2 });
21520
21539
  }
21521
21540
  async function onContextMenuAction(action, nodeIds) {
21522
21541
  switch (action) {
@@ -21548,6 +21567,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21548
21567
  return props.eventBus.emit("nodes:action", { ids: nodeIds, action: "update:sticky:color" });
21549
21568
  case "tidy_up":
21550
21569
  return await onTidyUp({ source: "context-menu" });
21570
+ case "open_sub_workflow": {
21571
+ return emit("open:sub-workflow", nodeIds[0]);
21572
+ }
21551
21573
  }
21552
21574
  }
21553
21575
  async function onTidyUp(payload) {
@@ -21772,7 +21794,7 @@ const style0 = {
21772
21794
  const cssModules = {
21773
21795
  "$style": style0
21774
21796
  };
21775
- const Canvas = /* @__PURE__ */ _export_sfc$1(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-af44edae"]]);
21797
+ const Canvas = /* @__PURE__ */ _export_sfc$1(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-d4a7c14c"]]);
21776
21798
  function useCanvasMapping({
21777
21799
  nodes,
21778
21800
  connections,
@@ -637,12 +637,13 @@ path[data-v-161512f5] {
637
637
  -------------------------- */
638
638
  /* BEM
639
639
  -------------------------- */
640
- ._canvasEdgeToolbar_8p9ym_123 {
640
+ ._canvasEdgeToolbar_1d3yh_123 {
641
641
  display: flex;
642
642
  justify-content: center;
643
643
  align-items: center;
644
644
  gap: var(--spacing-2xs);
645
645
  pointer-events: all;
646
+ padding: var(--spacing-l);
646
647
  }/* BEM support Func
647
648
  -------------------------- */
648
649
  /* Transition
@@ -4496,11 +4497,11 @@ body:not([data-theme]) .canvas-edge-toolbar-button {
4496
4497
  -------------------------- */
4497
4498
  /* BEM
4498
4499
  -------------------------- */
4499
- .minimap-enter-active[data-v-af44edae],
4500
- .minimap-leave-active[data-v-af44edae] {
4500
+ .minimap-enter-active[data-v-d4a7c14c],
4501
+ .minimap-leave-active[data-v-d4a7c14c] {
4501
4502
  transition: opacity 0.3s ease;
4502
4503
  }
4503
- .minimap-enter-from[data-v-af44edae],
4504
- .minimap-leave-to[data-v-af44edae] {
4504
+ .minimap-enter-from[data-v-d4a7c14c],
4505
+ .minimap-leave-to[data-v-d4a7c14c] {
4505
4506
  opacity: 0;
4506
4507
  }