n8n-editor-ui 1.81.3 → 1.82.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 (110) hide show
  1. package/biome.jsonc +2 -2
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BW998oiU.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CVAPh1f-.js} +1 -1
  3. package/dist/assets/{AuthView-D06Y8WaW.js → AuthView-f4oecjPB.js} +2 -2
  4. package/dist/assets/{CanvasChat-oFfeuF_m.css → CanvasChat-CSLR5tKe.css} +67 -67
  5. package/dist/assets/{CanvasChat-B1XqDPdJ.js → CanvasChat-DRLqKEil.js} +7 -7
  6. package/dist/assets/{ChangePasswordView-DlhvSj3v.js → ChangePasswordView-qEIbFcTO.js} +3 -3
  7. package/dist/assets/CollectionParameter-l-cUQi-f.js +4 -0
  8. package/dist/assets/{ConcurrentExecutionsHeader-DpmCHvh5.js → ConcurrentExecutionsHeader-Ddh95eQk.js} +2 -2
  9. package/dist/assets/{CredentialsView-gqJJjZnH.js → CredentialsView-BsOy9bMK.js} +6 -6
  10. package/dist/assets/{ErrorView-CWdS6JZF.js → ErrorView--froAN-1.js} +1 -1
  11. package/dist/assets/{ExecutionsView-D5yJwk_n.js → ExecutionsView-odqi6gmC.js} +6 -6
  12. package/dist/assets/{FileSaver.min-JqqCDClh.js → FileSaver.min-pwLVwMq4.js} +1 -1
  13. package/dist/assets/{FixedCollectionParameter-BReT5syB.css → FixedCollectionParameter-BATXrzXI.css} +18 -18
  14. package/dist/assets/{FixedCollectionParameter-B3QletY6.js → FixedCollectionParameter-DWdgl2BK.js} +2 -2
  15. package/dist/assets/{ForgotMyPasswordView-Ch9OesTT.js → ForgotMyPasswordView-DM8k7659.js} +3 -3
  16. package/dist/assets/{Logo-DNtRgn1M.js → Logo-86l8l_Uc.js} +1 -1
  17. package/dist/assets/{MainHeader-ByRLGpW_.css → MainHeader-CX-ZfeKE.css} +34 -40
  18. package/dist/assets/{MainHeader-W9wyL7aF.js → MainHeader-Ddeqm9X3.js} +112 -97
  19. package/dist/assets/{MainSidebar-iL8E6f86.js → MainSidebar-CBjO7dQF.js} +3 -3
  20. package/dist/assets/{MainSidebar-BQVC8zBU.css → MainSidebar-DULRx8tG.css} +2 -2
  21. package/dist/assets/{NodeCreation-LU_Jd7ZN.js → NodeCreation-D4zlvQth.js} +4 -4
  22. package/dist/assets/{NodeCreator-CbVtwR4D.js → NodeCreator-CRV2RNCc.js} +4 -4
  23. package/dist/assets/{NodeDetailsView-C5qgc2nE.js → NodeDetailsView-CGPkwklD.js} +43 -26
  24. package/dist/assets/{NodeDetailsView-C2CtoATD.css → NodeDetailsView-mr-1IzdH.css} +22 -22
  25. package/dist/assets/{NodeView-cgb1K0sK.js → NodeView-BO6hcUEI.js} +28 -18
  26. package/dist/assets/{ProjectCardBadge-DY9PI-lv.js → ProjectCardBadge-CukEqaMt.js} +1 -1
  27. package/dist/assets/{ProjectCreateResource-icMXxLmn.js → ProjectCreateResource-CtheSWks.js} +1 -1
  28. package/dist/assets/{ProjectHeader-B1QbGLAy.js → ProjectHeader-DyqSSbiB.js} +31 -12
  29. package/dist/assets/{ProjectSettings-Sjv7MdiW.js → ProjectSettings-A-Jx5EuH.js} +3 -3
  30. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-BkeJK_o6.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DCOYMajh.js} +2 -2
  31. package/dist/assets/{ResourcesListLayout-DgwDLCvq.js → ResourcesListLayout--Bt5VWxW.js} +31 -27
  32. package/dist/assets/{ResourcesListLayout-GXGxZsS7.css → ResourcesListLayout-CrglsyJJ.css} +28 -25
  33. package/dist/assets/{RunDataAi-CVZUcHKh.js → RunDataAi-3mvlRRpH.js} +95 -81
  34. package/dist/assets/{RunDataJson-v1xs8mOh.js → RunDataJson-zJPQ05WS.js} +12 -12
  35. package/dist/assets/{RunDataJsonActions-BF_w46-j.js → RunDataJsonActions-B7Oc2vSo.js} +2 -2
  36. package/dist/assets/{RunDataSearch-C9vTRbpZ.js → RunDataSearch-unoOqlxw.js} +1 -1
  37. package/dist/assets/{RunDataTable-Cyt-R5Ne.js → RunDataTable-D4ImpIT0.js} +2 -2
  38. package/dist/assets/{SamlOnboarding-B0GtxhUj.js → SamlOnboarding-79GZgVmm.js} +3 -3
  39. package/dist/assets/{SettingsApiView-BB3Lm3bi.css → SettingsApiView-BF29ifnH.css} +17 -7
  40. package/dist/assets/{SettingsApiView-BquBHARi.js → SettingsApiView-Bfu9Eq70.js} +96 -12
  41. package/dist/assets/{SettingsCommunityNodesView-MlgZs1pJ.js → SettingsCommunityNodesView-D0ljXB1M.js} +5 -5
  42. package/dist/assets/{SettingsExternalSecrets-B1tujBx-.js → SettingsExternalSecrets-B26gYiBu.js} +1 -1
  43. package/dist/assets/{SettingsLdapView-Bu2QmZFA.js → SettingsLdapView-vYxwcftp.js} +1 -1
  44. package/dist/assets/{SettingsLogStreamingView-4o7kKzWx.js → SettingsLogStreamingView-BdbopaRu.js} +1 -1
  45. package/dist/assets/{SettingsPersonalView-BT1ea9Z0.js → SettingsPersonalView-b-MqOeug.js} +1 -1
  46. package/dist/assets/{SettingsSourceControl-BgyzWk3N.js → SettingsSourceControl-uQItePJJ.js} +1 -1
  47. package/dist/assets/{SettingsSso-Bj2HtCgL.js → SettingsSso-Dax1Fk3N.js} +1 -1
  48. package/dist/assets/{SettingsUsageAndPlan-B5DEUrT3.css → SettingsUsageAndPlan-Cul4YcIk.css} +3 -3
  49. package/dist/assets/{SettingsUsageAndPlan-DjPctQ_D.js → SettingsUsageAndPlan-DmRaRr9Y.js} +2 -2
  50. package/dist/assets/{SettingsUsersView-CJO9WyW-.js → SettingsUsersView-Dq_Xawhz.js} +1 -1
  51. package/dist/assets/{SettingsView-D_eMci-B.js → SettingsView-CwE_fjon.js} +1 -1
  52. package/dist/assets/{SetupView-wadckBuD.js → SetupView-CBN-MPm-.js} +3 -3
  53. package/dist/assets/{SetupWorkflowCredentialsButton-BtI5-vnz.js → SetupWorkflowCredentialsButton-DMEKgnto.js} +1 -1
  54. package/dist/assets/{SetupWorkflowFromTemplateView-BXi0z9da.js → SetupWorkflowFromTemplateView-C-xX73HU.js} +3 -3
  55. package/dist/assets/{SigninView-CF48sXfq.js → SigninView-Y47sX3sc.js} +3 -3
  56. package/dist/assets/{SignoutView-Ce-O1UMs.js → SignoutView-L91VLZRK.js} +1 -1
  57. package/dist/assets/{SignupView-H4rvet3k.js → SignupView-BSHwg6_v.js} +3 -3
  58. package/dist/assets/{TemplateDetails-Bord-EUO.js → TemplateDetails-C6QQKqXn.js} +1 -1
  59. package/dist/assets/{TemplateList-D2yeNaWY.js → TemplateList-BzVBnzbc.js} +1 -1
  60. package/dist/assets/{TemplatesCollectionView-Cis6Moe6.js → TemplatesCollectionView-DKaMozRB.js} +5 -5
  61. package/dist/assets/{TemplatesSearchView-cQp7aQ8O.js → TemplatesSearchView-Avn4D7q4.js} +3 -3
  62. package/dist/assets/{TemplatesView-Bzt-Y5nc.js → TemplatesView-DktpANMP.js} +1 -1
  63. package/dist/assets/{TemplatesWorkflowView-g_-2p5ff.js → TemplatesWorkflowView-B-XJLYyE.js} +5 -5
  64. package/dist/assets/{TestDefinitionEditView-BLTcYPQo.js → TestDefinitionEditView-BA1sXEbp.js} +316 -446
  65. package/dist/assets/{TestDefinitionEditView-B-ShDvcb.css → TestDefinitionEditView-JONL00pA.css} +54 -239
  66. package/dist/assets/{TestDefinitionListView-DUy0g6ec.js → TestDefinitionListView-CFrLcIk_.js} +29 -35
  67. package/dist/assets/{TestDefinitionListView-DQQJ8Oqf.css → TestDefinitionListView-Di-Edppe.css} +5 -5
  68. package/dist/assets/{TestDefinitionNewView-B4zhJ4fN.js → TestDefinitionNewView-B0ez8o4U.js} +2 -2
  69. package/dist/assets/{TestDefinitionRootView-Bxlk4Tgo.js → TestDefinitionRootView-BIq9LbNz.js} +1 -1
  70. package/dist/assets/{VariablesView-BbD_NAsg.js → VariablesView-CJO6im3Q.js} +6 -6
  71. package/dist/assets/{VariablesView-0Eu4NnUq.css → VariablesView-CbTLdNwU.css} +10 -10
  72. package/dist/assets/{WorkerView-Bv8QDUJT.js → WorkerView-BZFdCgX1.js} +7 -7
  73. package/dist/assets/{WorkflowActivator-Zsg0lNt1.js → WorkflowActivator-Dio1FWuT.js} +2 -2
  74. package/dist/assets/{WorkflowExecutionsInfoAccordion-CSN7f5M7.js → WorkflowExecutionsInfoAccordion-DNiIxxXO.js} +1 -1
  75. package/dist/assets/{WorkflowExecutionsLandingPage-B50N9dpW.js → WorkflowExecutionsLandingPage-UiQavDut.js} +2 -2
  76. package/dist/assets/{WorkflowExecutionsPreview-DMeq-RS5.js → WorkflowExecutionsPreview-wbxiFm6F.js} +6 -6
  77. package/dist/assets/{WorkflowExecutionsView-FR2n2eBe.js → WorkflowExecutionsView-BXjP0BOn.js} +7 -7
  78. package/dist/assets/{WorkflowHistory-CEqY5Y6b.js → WorkflowHistory-lacb8AOz.js} +3 -3
  79. package/dist/assets/{WorkflowOnboardingView-Bi5Hxeov.js → WorkflowOnboardingView-BdS71XgS.js} +1 -1
  80. package/dist/assets/{WorkflowPreview-DKlt4Yv2.js → WorkflowPreview-DDD47V5y.js} +1 -1
  81. package/dist/assets/{WorkflowsView-B8AX9T7c.js → WorkflowsView-A_2DIum0.js} +633 -272
  82. package/dist/assets/{WorkflowsView-Dc4DNgGT.css → WorkflowsView-JN0Hvhvt.css} +323 -26
  83. package/dist/assets/{easyAiWorkflowUtils-BeiAbGC2.js → easyAiWorkflowUtils-qtdB9CeQ.js} +1 -1
  84. package/dist/assets/{global-link-actions-DeB7eHyR.js → global-link-actions-D2_SnpTc.js} +1 -1
  85. package/dist/assets/{import-curl-C7cTqHyb.js → import-curl-Bm8BI4Ms.js} +1 -1
  86. package/dist/assets/{index-CkwX7P7C.js → index-CnJ6KvXD.js} +1 -1
  87. package/dist/assets/{index-DSYFXmvJ.js → index-DkwrpQEB.js} +3391 -3352
  88. package/dist/assets/{index-CKK_xS1q.css → index-DvUG3hgI.css} +355 -148
  89. package/dist/assets/{pickBy-BHWEuElj.js → pickBy-4c9jgxg1.js} +1 -1
  90. package/dist/assets/{pushConnection.store-BZc1Uu8B.js → pushConnection.store-DAf-xv0B.js} +1 -1
  91. package/dist/assets/{templateActions-CzrfZkNs.js → templateActions-DhuUlB_y.js} +1 -1
  92. package/dist/assets/{useBeforeUnload-7dWWMCaC.js → useBeforeUnload-B-rNKRVu.js} +1 -1
  93. package/dist/assets/{useCanvasMapping-CM-3KDoy.js → useCanvasMapping-BE9PMjep.js} +4252 -279
  94. package/dist/assets/{useCanvasMapping-Bb0rYy8s.css → useCanvasMapping-CkNBF2SE.css} +184 -45
  95. package/dist/assets/{useCanvasOperations-C8HcBhlE.js → useCanvasOperations-BYt9MoCZ.js} +219 -21
  96. package/dist/assets/{useExecutionDebugging-CO_W_RS3.js → useExecutionDebugging-eHQMFoAz.js} +1 -1
  97. package/dist/assets/{useExecutionHelpers-DKm2JOsm.js → useExecutionHelpers-DTlfzIbO.js} +1 -1
  98. package/dist/assets/{useImportCurlCommand-CA75qM-Y.js → useImportCurlCommand-CWfidUYH.js} +2 -2
  99. package/dist/assets/{usePinnedData-CX8CCdD1.js → usePinnedData-cAEPUGIg.js} +1 -1
  100. package/dist/assets/{usePushConnection-CArtQ7pf.js → usePushConnection-De7r5t9d.js} +4 -4
  101. package/dist/assets/{useRunWorkflow-BsB1hrcR.js → useRunWorkflow-Cr62-QBr.js} +193 -18
  102. package/dist/assets/{useTestDefinitionForm-DgumxLYU.js → useTestDefinitionForm-wWVotwCR.js} +1 -1
  103. package/dist/assets/{useWorkflowActivate-C_9fNHFS.js → useWorkflowActivate-COcGS4jx.js} +1 -1
  104. package/dist/index.html +2 -2
  105. package/package.json +1 -1
  106. package/tsconfig.json +8 -12
  107. package/vite.config.mts +17 -16
  108. package/dist/assets/CollectionParameter-C8EYd2H8.js +0 -4
  109. /package/dist/{public/tree-sitter-bash.wasm → tree-sitter-bash.wasm} +0 -0
  110. /package/dist/{public/tree-sitter.wasm → tree-sitter.wasm} +0 -0
@@ -1,6 +1,6 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreator-CbVtwR4D.js","assets/index-DSYFXmvJ.js","assets/index-CKK_xS1q.css","assets/useCanvasOperations-C8HcBhlE.js","assets/usePinnedData-CX8CCdD1.js","assets/NodeCreator-DDiuO5S0.css"])))=>i.map(i=>d[i]);
2
- import { bo as useNodeTypesStore, q as computed, g as useI18n, ed as MANUAL_TRIGGER_NODE_TYPE, gu as CHAIN_LLM_LANGCHAIN_NODE_TYPE, bh as NodeConnectionType, b7 as CHAT_TRIGGER_NODE_TYPE, gv as OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE, gw as OPEN_AI_NODE_TYPE, eE as SPLIT_IN_BATCHES_NODE_TYPE, gx as NO_OP_NODE_TYPE, U as useWorkflowsStore, aT as useExternalHooks, ee as WEBHOOK_NODE_TYPE, eg as SCHEDULE_TRIGGER_NODE_TYPE, aB as STICKY_NODE_TYPE, a0 as useCanvasStore, e1 as AI_CATEGORY_LANGUAGE_MODELS, ec as TRIGGER_NODE_CREATOR_VIEW, gy as QA_CHAIN_NODE_TYPE, gz as AGENT_NODE_TYPE, gA as BASIC_CHAIN_NODE_TYPE, gB as OPEN_AI_ASSISTANT_NODE_TYPE, bJ as NODE_CREATOR_OPEN_SOURCES, d as defineComponent, L as useUIStore, r as ref, fx as useThrottleFn, o as onMounted, y as onBeforeUnmount, m as resolveComponent, c as openBlock, h as createElementBlock, n as normalizeClass, j as createBaseVNode, i as createVNode, w as withCtx, l as unref, bs as KeyboardShortcutTooltip, f as createCommentVNode, e as createBlock, bD as Suspense, F as Fragment, bF as defineAsyncComponent, ar as __vitePreload, gC as getMidCanvasPosition, gD as DEFAULT_STICKY_WIDTH, gE as DEFAULT_STICKY_HEIGHT, _ as _export_sfc } from "./index-DSYFXmvJ.js";
3
- import { u as useNodeCreatorStore, t as transformNodeType, s as sortNodeCreateElements } from "./useCanvasOperations-C8HcBhlE.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreator-CRV2RNCc.js","assets/index-DkwrpQEB.js","assets/index-DvUG3hgI.css","assets/useCanvasOperations-BYt9MoCZ.js","assets/usePinnedData-cAEPUGIg.js","assets/NodeCreator-DDiuO5S0.css"])))=>i.map(i=>d[i]);
2
+ import { bp as useNodeTypesStore, q as computed, g as useI18n, el as MANUAL_TRIGGER_NODE_TYPE, gC as CHAIN_LLM_LANGCHAIN_NODE_TYPE, bi as NodeConnectionType, b8 as CHAT_TRIGGER_NODE_TYPE, gD as OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE, gE as OPEN_AI_NODE_TYPE, eM as SPLIT_IN_BATCHES_NODE_TYPE, gF as NO_OP_NODE_TYPE, U as useWorkflowsStore, aU as useExternalHooks, em as WEBHOOK_NODE_TYPE, eo as SCHEDULE_TRIGGER_NODE_TYPE, aC as STICKY_NODE_TYPE, a0 as useCanvasStore, e9 as AI_CATEGORY_LANGUAGE_MODELS, ek as TRIGGER_NODE_CREATOR_VIEW, gG as QA_CHAIN_NODE_TYPE, gH as AGENT_NODE_TYPE, gI as BASIC_CHAIN_NODE_TYPE, gJ as OPEN_AI_ASSISTANT_NODE_TYPE, bK as NODE_CREATOR_OPEN_SOURCES, d as defineComponent, L as useUIStore, r as ref, fB as useThrottleFn, o as onMounted, y as onBeforeUnmount, m as resolveComponent, c as openBlock, h as createElementBlock, n as normalizeClass, j as createBaseVNode, i as createVNode, w as withCtx, l as unref, bt as KeyboardShortcutTooltip, f as createCommentVNode, e as createBlock, bE as Suspense, F as Fragment, bG as defineAsyncComponent, ar as __vitePreload, gK as getMidCanvasPosition, gL as DEFAULT_STICKY_WIDTH, gM as DEFAULT_STICKY_HEIGHT, _ as _export_sfc } from "./index-DkwrpQEB.js";
3
+ import { u as useNodeCreatorStore, t as transformNodeType, s as sortNodeCreateElements } from "./useCanvasOperations-BYt9MoCZ.js";
4
4
  const useActions = () => {
5
5
  const nodeCreatorStore = useNodeCreatorStore();
6
6
  const nodeTypesStore = useNodeTypesStore();
@@ -241,7 +241,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
241
241
  emits: ["addNodes", "toggleNodeCreator"],
242
242
  setup(__props, { emit: __emit }) {
243
243
  const LazyNodeCreator = defineAsyncComponent(
244
- async () => await __vitePreload(() => import("./NodeCreator-CbVtwR4D.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0)
244
+ async () => await __vitePreload(() => import("./NodeCreator-CRV2RNCc.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0)
245
245
  );
246
246
  const props = __props;
247
247
  const emit = __emit;
@@ -1,7 +1,7 @@
1
- import { dK as createCompounder, hH as memoize, cY as i18n, eG as HTTP_REQUEST_NODE_TYPE, hI as getCredentialOnlyNodeType, e6 as AI_CATEGORY_TOOLS, eL as AI_CATEGORY_ROOT_NODES, eO as CUSTOM_API_CALL_KEY, ba as AI_SUBCATEGORY, d as defineComponent, bt as reactive, o as onMounted, y as onBeforeUnmount, aY as toRefs, m as resolveComponent, c as openBlock, h as createElementBlock, j as createBaseVNode, i as createVNode, n as normalizeClass, f as createCommentVNode, aT as useExternalHooks, _ as _export_sfc, r as ref, q as computed, dT as DEFAULT_SUBCATEGORY, hJ as CREDENTIAL_ONLY_NODE_PREFIX, eI as HITL_SUBCATEGORY, dE as isCommunityPackageName, bV as resolveDirective, e as createBlock, aS as createSlots, w as withCtx, ax as withDirectives, l as unref, ck as COMMUNITY_NODES_INSTALLATION_DOCS_URL, cB as _sfc_main$h, C as normalizeStyle, J as withModifiers, ay as vShow, g as useI18n, bM as DRAG_EVENT_DATA_KEY, ak as useTelemetry, a$ as mergeProps, t as toDisplayString, ee as WEBHOOK_NODE_TYPE, eX as getNewNodePosition, eT as NODE_SIZE, v as renderSlot, U as useWorkflowsStore, I as watch, aZ as normalizeProps, a_ as guardReactiveProps, b4 as onUnmounted, F as Fragment, B as renderList, ej as REGULAR_NODE_CREATOR_VIEW, u as useUsersStore, ec as TRIGGER_NODE_CREATOR_VIEW, gw as OPEN_AI_NODE_TYPE, gv as OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE, hK as withMemo, hw as createStaticVNode, k as createTextVNode, hL as REQUEST_NODE_FORM_URL, L as useUIStore, $ as useRootStore, hM as getNodeIconUrl, hN as getNodeIcon, hO as getNodeIconColor, dY as SEND_AND_WAIT_OPERATION, d_ as AI_NODE_CREATOR_VIEW, d$ as AI_OTHERS_NODE_CREATOR_VIEW, K as useDebounce, fn as Transition, eb as AI_UNCATEGORIZED_CATEGORY, d8 as useAssistantStore, bu as useCredentialsStore, bo as useNodeTypesStore, aQ as _sfc_main$i, hP as SlideTransition } from "./index-DSYFXmvJ.js";
2
- import { f as formatTriggerActionName, u as useNodeCreatorStore, e as useViewStacks, g as camelCase, h as useKeyboardNavigation, t as transformNodeType, j as flattenCreateElements, T as TriggerView, R as RegularView, A as AIView, k as AINodesView } from "./useCanvasOperations-C8HcBhlE.js";
3
- import { b as upperFirst, a as useNodeType } from "./usePinnedData-CX8CCdD1.js";
4
- import { u as useActions } from "./NodeCreation-LU_Jd7ZN.js";
1
+ import { dT as createCompounder, hP as memoize, c_ as i18n, eO as HTTP_REQUEST_NODE_TYPE, hQ as getCredentialOnlyNodeType, ee as AI_CATEGORY_TOOLS, eT as AI_CATEGORY_ROOT_NODES, eW as CUSTOM_API_CALL_KEY, bb as AI_SUBCATEGORY, d as defineComponent, bu as reactive, o as onMounted, y as onBeforeUnmount, aZ as toRefs, m as resolveComponent, c as openBlock, h as createElementBlock, j as createBaseVNode, i as createVNode, n as normalizeClass, f as createCommentVNode, aU as useExternalHooks, _ as _export_sfc, r as ref, q as computed, e0 as DEFAULT_SUBCATEGORY, hR as CREDENTIAL_ONLY_NODE_PREFIX, eQ as HITL_SUBCATEGORY, dN as isCommunityPackageName, bW as resolveDirective, e as createBlock, aT as createSlots, w as withCtx, ax as withDirectives, l as unref, cl as COMMUNITY_NODES_INSTALLATION_DOCS_URL, cD as _sfc_main$h, C as normalizeStyle, J as withModifiers, ay as vShow, g as useI18n, bN as DRAG_EVENT_DATA_KEY, ak as useTelemetry, b0 as mergeProps, t as toDisplayString, em as WEBHOOK_NODE_TYPE, f0 as getNewNodePosition, eZ as NODE_SIZE, v as renderSlot, U as useWorkflowsStore, I as watch, a_ as normalizeProps, a$ as guardReactiveProps, b5 as onUnmounted, F as Fragment, B as renderList, er as REGULAR_NODE_CREATOR_VIEW, u as useUsersStore, ek as TRIGGER_NODE_CREATOR_VIEW, gE as OPEN_AI_NODE_TYPE, gD as OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE, hS as withMemo, hE as createStaticVNode, k as createTextVNode, hT as REQUEST_NODE_FORM_URL, L as useUIStore, $ as useRootStore, hU as getNodeIconUrl, hV as getNodeIcon, hW as getNodeIconColor, e4 as SEND_AND_WAIT_OPERATION, e6 as AI_NODE_CREATOR_VIEW, e7 as AI_OTHERS_NODE_CREATOR_VIEW, K as useDebounce, fr as Transition, ej as AI_UNCATEGORIZED_CATEGORY, da as useAssistantStore, bv as useCredentialsStore, bp as useNodeTypesStore, aR as _sfc_main$i, hX as SlideTransition } from "./index-DkwrpQEB.js";
2
+ import { f as formatTriggerActionName, u as useNodeCreatorStore, e as useViewStacks, g as camelCase, h as useKeyboardNavigation, t as transformNodeType, j as flattenCreateElements, T as TriggerView, R as RegularView, A as AIView, k as AINodesView } from "./useCanvasOperations-BYt9MoCZ.js";
3
+ import { b as upperFirst, a as useNodeType } from "./usePinnedData-cAEPUGIg.js";
4
+ import { u as useActions } from "./NodeCreation-D4zlvQth.js";
5
5
  var startCase = createCompounder(function(result, word, index) {
6
6
  return result + (index ? " " : "") + upperFirst(word);
7
7
  });
@@ -1,12 +1,12 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataTable-Cyt-R5Ne.js","assets/index-DSYFXmvJ.js","assets/index-CKK_xS1q.css","assets/useExecutionHelpers-DKm2JOsm.js","assets/RunDataTable-CX7gToH4.css","assets/RunDataJson-v1xs8mOh.js","assets/usePinnedData-CX8CCdD1.js","assets/useRunWorkflow-BsB1hrcR.js","assets/pushConnection.store-BZc1Uu8B.js","assets/import-curl-C7cTqHyb.js","assets/FileSaver.min-JqqCDClh.js","assets/RunDataAi-CVZUcHKh.js","assets/RunDataAi-DWoFsQdi.css","assets/useWorkflowActivate-C_9fNHFS.js","assets/RunDataJson-Txw0lqay.css","assets/RunDataSearch-C9vTRbpZ.js","assets/RunDataSearch-R6qtl0Jf.css"])))=>i.map(i=>d[i]);
2
- import { gF as hasKey, d as defineComponent, r as ref, q as computed, m as resolveComponent, c as openBlock, h as createElementBlock, j as createBaseVNode, i as createVNode, cB as _sfc_main$m, n as normalizeClass, w as withCtx, k as createTextVNode, t as toDisplayString, e as createBlock, f as createCommentVNode, H as withKeys, J as withModifiers, l as unref, g as useI18n, z as nextTick, _ as _export_sfc, as as useNDVStore, U as useWorkflowsStore, dE as isCommunityPackageName, ch as NPM_PACKAGE_DOCS_BASE_URL, gG as BUILTIN_NODES_DOCS_URL, ck as COMMUNITY_NODES_INSTALLATION_DOCS_URL, bh as NodeConnectionType, aT as useExternalHooks, ak as useTelemetry, b as useRouter, b6 as useClipboard, a5 as useWorkflowHelpers, a as useToast, gH as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, gI as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, eh as FORM_TRIGGER_NODE_TYPE, b7 as CHAT_TRIGGER_NODE_TYPE, I as watch, F as Fragment, B as renderList, G as onClickOutside, ap as h, gJ as toValue, gK as toRef, gL as tryOnScopeDispose, gM as isIOS, gN as noop, gO as isObject, gP as isClient, bo as useNodeTypesStore, bp as useNodeHelpers, K as useDebounce, fy as nodeIssuesToString, C as normalizeStyle, fl as TitledList, be as getNodeInputs, L as useUIStore, ed as MANUAL_TRIGGER_NODE_TYPE, ee as WEBHOOK_NODE_TYPE, eM as AI_TRANSFORM_NODE_TYPE, gQ as AI_TRANSFORM_CODE_GENERATED_FOR_PROMPT, a$ as mergeProps, gR as generateCodeForAiTransform, gS as AI_TRANSFORM_JS_CODE, ad as nodeViewEventBus, al as useMessage, af as MODAL_CONFIRM, gT as SWITCH_NODE_TYPE, fq as isEqual, gU as captureException, p as useSettingsStore, au as usePostHog, bu as useCredentialsStore, u as useUsersStore, a2 as useProjectsStore, dj as OPEN_AI_API_CREDENTIAL_TYPE, bH as AI_CREDITS_EXPERIMENT, bx as useHistoryStore, g4 as ProjectTypes, bf as getConnectionTypes, o as onMounted, gV as ndvEventBus, y as onBeforeUnmount, gW as CUSTOM_NODES_DOCS_URL, ax as withDirectives, ay as vShow, gX as NodeCredentials, gn as _sfc_main$n, bj as get, eW as getNodeParameters, bU as deepCopy, gY as set, gZ as unset, eQ as RenameNodeCommand, gm as isINodePropertyCollectionList, g_ as isINodePropertiesList, g$ as isINodePropertyOptionsList, h0 as displayParameter, h1 as Draggable, fx as useThrottleFn, f6 as useSlots, aI as useStorage, h2 as LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH, v as renderSlot, h3 as MAIN_NODE_PANEL_WIDTH, h4 as requireVue, c0 as getDefaultExportFromCjs, h5 as sanitizeHtml, h6 as sanitizeHtmlExports, bz as jsonParse, fU as N8nText, aO as N8nLink, aQ as _sfc_main$o, aP as N8nTooltip, a1 as useSourceControlStore, $ as useRootStore, h7 as useSchemaPreviewStore, W as useRoute, br as toRef$1, cm as storeToRefs, eu as HTML_NODE_TYPE, h8 as TRIMMED_TASK_DATA_CONNECTIONS_KEY, h9 as executionDataToJson, ha as NODE_TYPES_EXCLUDED_FROM_OUTPUT_NAME_APPEND, dS as CORE_NODES_CATEGORY, hb as SCHEMA_PREVIEW_EXPERIMENT, hc as computedAsync, f3 as isPresent, dq as isEmpty, hd as LOCAL_STORAGE_PIN_DATA_DISCOVERY_NDV_FLAG, he as dataPinningEventBus, hf as LOCAL_STORAGE_PIN_DATA_DISCOVERY_CANVAS_FLAG, hg as searchInObject, hh as isObject$1, hi as MAX_DISPLAY_DATA_SIZE_SCHEMA_VIEW, dD as MAX_DISPLAY_DATA_SIZE, bV as resolveDirective, hj as DATA_PINNING_DOCS_URL, bE as N8nCallout, bD as Suspense, hk as N8nRadioButtons, cP as N8nButton, gc as _sfc_main$p, gb as N8nSelect, hl as N8nTabs, hm as _sfc_main$q, hn as JsonEditor, ho as DATA_EDITING_DOCS_URL, cZ as InfoTip, hp as N8nBlockUi, bF as defineAsyncComponent, ar as __vitePreload, bg as getNodeOutputs, hq as getNodeHints, hr as getGenericHints, hs as clearJsonKey, ht as TEST_PIN_DATA, aS as createSlots, hu as waitingNodeTooltip, hv as truncate, hw as createStaticVNode, hx as uniqBy, b0 as resolveDynamicComponent, bO as START_NODE_TYPE, hy as CRON_NODE_TYPE, hz as INTERVAL_NODE_TYPE, hA as isTriggerPanelObject, dd as getTriggerNodeServiceName, d0 as CopyInput, fn as Transition, D as createEventBus, V as VIEWS, ag as WORKFLOW_SETTINGS_MODAL_KEY, fu as useDeviceSupport, hB as EXECUTABLE_TRIGGER_NODE_TYPES, aB as STICKY_NODE_TYPE, hC as BASE_NODE_SURVEY_URL, a9 as EnterpriseEditionFeature, hD as APP_MODALS_ELEMENT_ID, hE as useStyles } from "./index-DSYFXmvJ.js";
3
- import { u as usePinnedData, a as useNodeType } from "./usePinnedData-CX8CCdD1.js";
4
- import { u as useRunWorkflow } from "./useRunWorkflow-BsB1hrcR.js";
5
- import { i as importCurlEventBus } from "./import-curl-C7cTqHyb.js";
6
- import { F as FileSaver_minExports } from "./FileSaver.min-JqqCDClh.js";
7
- import { _ as _sfc_main$r, R as RunDataAi } from "./RunDataAi-CVZUcHKh.js";
8
- import { u as useExecutionHelpers, b as convertToDisplayDateComponents } from "./useExecutionHelpers-DKm2JOsm.js";
9
- import { u as useWorkflowActivate } from "./useWorkflowActivate-C_9fNHFS.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataTable-D4ImpIT0.js","assets/index-DkwrpQEB.js","assets/index-DvUG3hgI.css","assets/useExecutionHelpers-DTlfzIbO.js","assets/RunDataTable-CX7gToH4.css","assets/RunDataJson-zJPQ05WS.js","assets/usePinnedData-cAEPUGIg.js","assets/useRunWorkflow-Cr62-QBr.js","assets/pushConnection.store-DAf-xv0B.js","assets/import-curl-Bm8BI4Ms.js","assets/FileSaver.min-pwLVwMq4.js","assets/RunDataAi-3mvlRRpH.js","assets/RunDataAi-DWoFsQdi.css","assets/useWorkflowActivate-COcGS4jx.js","assets/RunDataJson-Txw0lqay.css","assets/RunDataSearch-unoOqlxw.js","assets/RunDataSearch-R6qtl0Jf.css"])))=>i.map(i=>d[i]);
2
+ import { gN as hasKey, d as defineComponent, r as ref, q as computed, m as resolveComponent, c as openBlock, h as createElementBlock, j as createBaseVNode, i as createVNode, cD as _sfc_main$m, n as normalizeClass, w as withCtx, k as createTextVNode, t as toDisplayString, e as createBlock, f as createCommentVNode, H as withKeys, J as withModifiers, l as unref, g as useI18n, z as nextTick, _ as _export_sfc, as as useNDVStore, U as useWorkflowsStore, dN as isCommunityPackageName, ci as NPM_PACKAGE_DOCS_BASE_URL, gO as BUILTIN_NODES_DOCS_URL, cl as COMMUNITY_NODES_INSTALLATION_DOCS_URL, bi as NodeConnectionType, aU as useExternalHooks, ak as useTelemetry, b as useRouter, b7 as useClipboard, a5 as useWorkflowHelpers, a as useToast, gP as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, gQ as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, ep as FORM_TRIGGER_NODE_TYPE, b8 as CHAT_TRIGGER_NODE_TYPE, I as watch, F as Fragment, B as renderList, G as onClickOutside, ap as h, gR as toValue, gS as toRef, gT as tryOnScopeDispose, gU as isIOS, gV as noop, gW as isObject, gX as isClient, bp as useNodeTypesStore, bq as useNodeHelpers, K as useDebounce, fC as nodeIssuesToString, C as normalizeStyle, fp as TitledList, bf as getNodeInputs, L as useUIStore, el as MANUAL_TRIGGER_NODE_TYPE, em as WEBHOOK_NODE_TYPE, eU as AI_TRANSFORM_NODE_TYPE, gY as AI_TRANSFORM_CODE_GENERATED_FOR_PROMPT, b0 as mergeProps, gZ as generateCodeForAiTransform, g_ as AI_TRANSFORM_JS_CODE, ad as nodeViewEventBus, al as useMessage, af as MODAL_CONFIRM, g$ as SWITCH_NODE_TYPE, fu as isEqual, h0 as captureException, p as useSettingsStore, au as usePostHog, bv as useCredentialsStore, u as useUsersStore, a2 as useProjectsStore, dl as OPEN_AI_API_CREDENTIAL_TYPE, bI as AI_CREDITS_EXPERIMENT, by as useHistoryStore, g9 as ProjectTypes, bg as getConnectionTypes, o as onMounted, h1 as ndvEventBus, y as onBeforeUnmount, h2 as CUSTOM_NODES_DOCS_URL, ax as withDirectives, ay as vShow, h3 as NodeCredentials, gv as _sfc_main$n, bk as get, e$ as getNodeParameters, bV as deepCopy, h4 as set, h5 as unset, eY as RenameNodeCommand, gu as isINodePropertyCollectionList, h6 as isINodePropertiesList, h7 as isINodePropertyOptionsList, h8 as displayParameter, h9 as Draggable, fB as useThrottleFn, fa as useSlots, aJ as useStorage, ha as LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH, v as renderSlot, hb as MAIN_NODE_PANEL_WIDTH, hc as requireVue, c1 as getDefaultExportFromCjs, hd as sanitizeHtml, he as sanitizeHtmlExports, bA as jsonParse, fY as N8nText, aP as N8nLink, aR as _sfc_main$o, aQ as N8nTooltip, a1 as useSourceControlStore, $ as useRootStore, hf as useSchemaPreviewStore, W as useRoute, bs as toRef$1, cn as storeToRefs, eC as HTML_NODE_TYPE, hg as TRIMMED_TASK_DATA_CONNECTIONS_KEY, hh as executionDataToJson, hi as NODE_TYPES_EXCLUDED_FROM_OUTPUT_NAME_APPEND, d$ as CORE_NODES_CATEGORY, hj as SCHEMA_PREVIEW_EXPERIMENT, hk as computedAsync, f7 as isPresent, dz as isEmpty, hl as LOCAL_STORAGE_PIN_DATA_DISCOVERY_NDV_FLAG, hm as dataPinningEventBus, hn as LOCAL_STORAGE_PIN_DATA_DISCOVERY_CANVAS_FLAG, ho as searchInObject, hp as isObject$1, hq as MAX_DISPLAY_DATA_SIZE_SCHEMA_VIEW, dM as MAX_DISPLAY_DATA_SIZE, bW as resolveDirective, hr as DATA_PINNING_DOCS_URL, bF as N8nCallout, bE as Suspense, hs as N8nRadioButtons, cR as N8nButton, gk as _sfc_main$p, gj as N8nSelect, ht as N8nTabs, hu as _sfc_main$q, hv as JsonEditor, hw as DATA_EDITING_DOCS_URL, c$ as InfoTip, hx as N8nBlockUi, bG as defineAsyncComponent, ar as __vitePreload, bh as getNodeOutputs, hy as getNodeHints, hz as getGenericHints, hA as clearJsonKey, hB as TEST_PIN_DATA, dq as CanvasNodeDirtiness, aT as createSlots, hC as waitingNodeTooltip, hD as truncate, hE as createStaticVNode, hF as uniqBy, b1 as resolveDynamicComponent, fZ as N8nIcon, bP as START_NODE_TYPE, hG as CRON_NODE_TYPE, hH as INTERVAL_NODE_TYPE, hI as isTriggerPanelObject, df as getTriggerNodeServiceName, d2 as CopyInput, fr as Transition, D as createEventBus, V as VIEWS, ag as WORKFLOW_SETTINGS_MODAL_KEY, fy as useDeviceSupport, hJ as EXECUTABLE_TRIGGER_NODE_TYPES, aC as STICKY_NODE_TYPE, hK as BASE_NODE_SURVEY_URL, a9 as EnterpriseEditionFeature, hL as APP_MODALS_ELEMENT_ID, hM as useStyles } from "./index-DkwrpQEB.js";
3
+ import { u as usePinnedData, a as useNodeType } from "./usePinnedData-cAEPUGIg.js";
4
+ import { u as useRunWorkflow, a as useNodeDirtiness } from "./useRunWorkflow-Cr62-QBr.js";
5
+ import { i as importCurlEventBus } from "./import-curl-Bm8BI4Ms.js";
6
+ import { F as FileSaver_minExports } from "./FileSaver.min-pwLVwMq4.js";
7
+ import { _ as _sfc_main$r, R as RunDataAi } from "./RunDataAi-3mvlRRpH.js";
8
+ import { u as useExecutionHelpers, b as convertToDisplayDateComponents } from "./useExecutionHelpers-DTlfzIbO.js";
9
+ import { u as useWorkflowActivate } from "./useWorkflowActivate-COcGS4jx.js";
10
10
  function responseHasSubworkflowData(response) {
11
11
  return ["executionId", "workflowId"].every(
12
12
  (x) => hasKey(response, x) && typeof response[x] === "string"
@@ -1359,8 +1359,8 @@ function updateDynamicConnections(node2, workflowConnections, parameterData) {
1359
1359
  } else {
1360
1360
  const newRulesvalues = parameterData.value;
1361
1361
  const updatedConnectionsIndex = [];
1362
- for (const rule of curentRulesvalues) {
1363
- const index = newRulesvalues.findIndex((newRule) => isEqual(rule, newRule));
1362
+ for (const newRule of newRulesvalues) {
1363
+ const index = curentRulesvalues.findIndex((rule) => isEqual(rule, newRule));
1364
1364
  if (index !== -1) {
1365
1365
  updatedConnectionsIndex.push(index);
1366
1366
  }
@@ -2057,7 +2057,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
2057
2057
  };
2058
2058
  const nameChanged = (name) => {
2059
2059
  if (node2.value) {
2060
- historyStore.pushCommandToUndo(new RenameNodeCommand(node2.value.name, name));
2060
+ historyStore.pushCommandToUndo(new RenameNodeCommand(node2.value.name, name, Date.now()));
2061
2061
  }
2062
2062
  valueChanged({
2063
2063
  value: name,
@@ -2424,7 +2424,7 @@ const style0$a = {
2424
2424
  const cssModules$b = {
2425
2425
  "$style": style0$a
2426
2426
  };
2427
- const NodeSettings = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__cssModules", cssModules$b], ["__scopeId", "data-v-1d71f962"]]);
2427
+ const NodeSettings = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__cssModules", cssModules$b], ["__scopeId", "data-v-177bcda8"]]);
2428
2428
  const _sfc_main$e = /* @__PURE__ */ defineComponent({
2429
2429
  __name: "PanelDragButton",
2430
2430
  props: {
@@ -3672,19 +3672,19 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3672
3672
  emits: ["search", "runChange", "itemHover", "linkRun", "unlinkRun", "activatePane", "tableMounted"],
3673
3673
  setup(__props, { expose: __expose, emit: __emit }) {
3674
3674
  const LazyRunDataTable = defineAsyncComponent(
3675
- async () => await __vitePreload(() => import("./RunDataTable-Cyt-R5Ne.js"), true ? __vite__mapDeps([0,1,2,3,4]) : void 0)
3675
+ async () => await __vitePreload(() => import("./RunDataTable-D4ImpIT0.js"), true ? __vite__mapDeps([0,1,2,3,4]) : void 0)
3676
3676
  );
3677
3677
  const LazyRunDataJson = defineAsyncComponent(
3678
- async () => await __vitePreload(() => import("./RunDataJson-v1xs8mOh.js"), true ? __vite__mapDeps([5,1,2,6,7,8,9,10,11,3,12,13,14]) : void 0)
3678
+ async () => await __vitePreload(() => import("./RunDataJson-zJPQ05WS.js"), true ? __vite__mapDeps([5,1,2,6,7,8,9,10,11,3,12,13,14]) : void 0)
3679
3679
  );
3680
3680
  const LazyRunDataSchema = defineAsyncComponent(
3681
- async () => await __vitePreload(() => import("./index-DSYFXmvJ.js").then((n) => n.hZ), true ? __vite__mapDeps([1,2]) : void 0)
3681
+ async () => await __vitePreload(() => import("./index-DkwrpQEB.js").then((n) => n.i5), true ? __vite__mapDeps([1,2]) : void 0)
3682
3682
  );
3683
3683
  const LazyRunDataHtml = defineAsyncComponent(
3684
3684
  async () => await __vitePreload(() => Promise.resolve().then(() => RunDataHtml$1), true ? void 0 : void 0)
3685
3685
  );
3686
3686
  const LazyRunDataSearch = defineAsyncComponent(
3687
- async () => await __vitePreload(() => import("./RunDataSearch-C9vTRbpZ.js"), true ? __vite__mapDeps([15,1,2,16]) : void 0)
3687
+ async () => await __vitePreload(() => import("./RunDataSearch-unoOqlxw.js"), true ? __vite__mapDeps([15,1,2,16]) : void 0)
3688
3688
  );
3689
3689
  const props = __props;
3690
3690
  const emit = __emit;
@@ -5543,7 +5543,7 @@ const style0$5 = {
5543
5543
  const cssModules$6 = {
5544
5544
  "$style": style0$5
5545
5545
  };
5546
- const RunData = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__cssModules", cssModules$6], ["__scopeId", "data-v-cb603342"]]);
5546
+ const RunData = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__cssModules", cssModules$6], ["__scopeId", "data-v-4f4b3f8b"]]);
5547
5547
  const _sfc_main$6 = /* @__PURE__ */ defineComponent({
5548
5548
  __name: "RunInfo",
5549
5549
  props: {
@@ -5571,12 +5571,11 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
5571
5571
  };
5572
5572
  });
5573
5573
  return (_ctx, _cache) => {
5574
- const _component_n8n_info_tip = resolveComponent("n8n-info-tip");
5575
5574
  const _component_n8n_text = resolveComponent("n8n-text");
5576
5575
  const _directive_n8n_html = resolveDirective("n8n-html");
5577
- return _ctx.hasStaleData ? (openBlock(), createBlock(_component_n8n_info_tip, {
5576
+ return _ctx.hasStaleData ? (openBlock(), createBlock(unref(InfoTip), {
5578
5577
  key: 0,
5579
- theme: "warning",
5578
+ theme: "warning-light",
5580
5579
  type: "tooltip",
5581
5580
  "tooltip-placement": "right",
5582
5581
  "data-test-id": "node-run-info-stale"
@@ -5596,12 +5595,12 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
5596
5595
  key: 1,
5597
5596
  class: normalizeClass(_ctx.$style.tooltipRow)
5598
5597
  }, [
5599
- createVNode(_component_n8n_info_tip, {
5598
+ createVNode(unref(InfoTip), {
5600
5599
  type: "note",
5601
5600
  theme: theme.value,
5602
5601
  "data-test-id": `node-run-status-${theme.value}`
5603
5602
  }, null, 8, ["theme", "data-test-id"]),
5604
- createVNode(_component_n8n_info_tip, {
5603
+ createVNode(unref(InfoTip), {
5605
5604
  type: "tooltip",
5606
5605
  theme: "info",
5607
5606
  "data-test-id": `node-run-info`,
@@ -5684,6 +5683,8 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
5684
5683
  const telemetry = useTelemetry();
5685
5684
  const i18n = useI18n();
5686
5685
  const { activeNode } = storeToRefs(ndvStore);
5686
+ const settings = useSettingsStore();
5687
+ const { dirtinessByName } = useNodeDirtiness();
5687
5688
  const { isSubNodeType } = useNodeType({
5688
5689
  node: activeNode
5689
5690
  });
@@ -5775,6 +5776,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
5775
5776
  if (!node2.value) {
5776
5777
  return false;
5777
5778
  }
5779
+ if (settings.partialExecutionVersion === 2) {
5780
+ return dirtinessByName.value[node2.value.name] === CanvasNodeDirtiness.PARAMETERS_UPDATED;
5781
+ }
5778
5782
  const updatedAt = workflowsStore.getParametersLastUpdate(node2.value.name);
5779
5783
  if (!updatedAt || !runTaskData.value) {
5780
5784
  return false;
@@ -5902,7 +5906,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
5902
5906
  key: 1,
5903
5907
  class: normalizeClass(_ctx.$style.title)
5904
5908
  }, toDisplayString(unref(i18n).baseText(outputPanelEditMode.value.enabled ? "ndv.output.edit" : "ndv.output")), 3)),
5905
- hasNodeRun.value && !unref(pinnedData).hasData.value && runsCount.value === 1 ? withDirectives((openBlock(), createBlock(RunInfo, {
5909
+ hasNodeRun.value && !unref(pinnedData).hasData.value && (runsCount.value === 1 || runsCount.value > 0 && staleData.value) ? withDirectives((openBlock(), createBlock(RunInfo, {
5906
5910
  key: 2,
5907
5911
  "task-data": runTaskData.value,
5908
5912
  "has-stale-data": staleData.value,
@@ -6582,7 +6586,20 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
6582
6586
  size: "small"
6583
6587
  }, {
6584
6588
  default: withCtx(() => [
6585
- createTextVNode(toDisplayString(unref(i18n).baseText("ndv.input.noOutputData.hint")), 1)
6589
+ createVNode(_component_i18n_t, { keypath: "ndv.input.noOutputData.hint" }, {
6590
+ info: withCtx(() => [
6591
+ createVNode(unref(N8nTooltip), { placement: "bottom" }, {
6592
+ content: withCtx(() => [
6593
+ createTextVNode(toDisplayString(unref(i18n).baseText("ndv.input.noOutputData.hint.tooltip")), 1)
6594
+ ]),
6595
+ default: withCtx(() => [
6596
+ createVNode(unref(N8nIcon), { icon: "question-circle" })
6597
+ ]),
6598
+ _: 1
6599
+ })
6600
+ ]),
6601
+ _: 1
6602
+ })
6586
6603
  ]),
6587
6604
  _: 1
6588
6605
  })) : createCommentVNode("", true)
@@ -7199,7 +7216,7 @@ const style0 = {
7199
7216
  const cssModules$1 = {
7200
7217
  "$style": style0
7201
7218
  };
7202
- const TriggerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-61e12e36"]]);
7219
+ const TriggerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-7d8eb44d"]]);
7203
7220
  const _sfc_main = /* @__PURE__ */ defineComponent({
7204
7221
  __name: "NodeDetailsView",
7205
7222
  props: {
@@ -1006,7 +1006,7 @@
1006
1006
  -------------------------- */
1007
1007
  /* BEM
1008
1008
  -------------------------- */
1009
- .node-settings[data-v-1d71f962] {
1009
+ .node-settings[data-v-177bcda8] {
1010
1010
  display: flex;
1011
1011
  flex-direction: column;
1012
1012
  overflow: hidden;
@@ -1014,19 +1014,19 @@
1014
1014
  height: 100%;
1015
1015
  width: 100%;
1016
1016
  }
1017
- .node-settings .no-parameters[data-v-1d71f962] {
1017
+ .node-settings .no-parameters[data-v-177bcda8] {
1018
1018
  margin-top: var(--spacing-xs);
1019
1019
  }
1020
- .node-settings .header-side-menu[data-v-1d71f962] {
1020
+ .node-settings .header-side-menu[data-v-177bcda8] {
1021
1021
  padding: var(--spacing-s) var(--spacing-s) var(--spacing-s) var(--spacing-s);
1022
1022
  font-size: var(--font-size-l);
1023
1023
  display: flex;
1024
1024
  justify-content: space-between;
1025
1025
  }
1026
- .node-settings .header-side-menu .node-name[data-v-1d71f962] {
1026
+ .node-settings .header-side-menu .node-name[data-v-177bcda8] {
1027
1027
  padding-top: var(--spacing-5xs);
1028
1028
  }
1029
- .node-settings .node-is-not-valid[data-v-1d71f962] {
1029
+ .node-settings .node-is-not-valid[data-v-177bcda8] {
1030
1030
  height: 75%;
1031
1031
  padding: 10px;
1032
1032
  display: flex;
@@ -1036,54 +1036,54 @@
1036
1036
  text-align: center;
1037
1037
  line-height: var(--font-line-height-regular);
1038
1038
  }
1039
- .node-settings .node-parameters-wrapper[data-v-1d71f962] {
1039
+ .node-settings .node-parameters-wrapper[data-v-177bcda8] {
1040
1040
  overflow-y: auto;
1041
1041
  padding: 0 var(--spacing-m) var(--spacing-l) var(--spacing-m);
1042
1042
  flex-grow: 1;
1043
1043
  }
1044
- .node-settings.dragging[data-v-1d71f962] {
1044
+ .node-settings.dragging[data-v-177bcda8] {
1045
1045
  border-color: var(--color-primary);
1046
1046
  box-shadow: 0px 6px 16px rgba(255, 74, 51, 0.15);
1047
1047
  }
1048
- .parameter-content[data-v-1d71f962] {
1048
+ .parameter-content[data-v-177bcda8] {
1049
1049
  font-size: 0.9em;
1050
1050
  margin-right: -15px;
1051
1051
  margin-left: -15px;
1052
1052
  }
1053
- .parameter-content input[data-v-1d71f962] {
1053
+ .parameter-content input[data-v-177bcda8] {
1054
1054
  width: calc(100% - 35px);
1055
1055
  padding: 5px;
1056
1056
  }
1057
- .parameter-content select[data-v-1d71f962] {
1057
+ .parameter-content select[data-v-177bcda8] {
1058
1058
  width: calc(100% - 20px);
1059
1059
  padding: 5px;
1060
1060
  }
1061
- .parameter-content[data-v-1d71f962]:before {
1061
+ .parameter-content[data-v-177bcda8]:before {
1062
1062
  display: table;
1063
1063
  content: " ";
1064
1064
  position: relative;
1065
1065
  box-sizing: border-box;
1066
1066
  clear: both;
1067
1067
  }
1068
- .parameter-wrapper[data-v-1d71f962] {
1068
+ .parameter-wrapper[data-v-177bcda8] {
1069
1069
  padding: 0 1em;
1070
1070
  }
1071
- .color-reset-button-wrapper[data-v-1d71f962] {
1071
+ .color-reset-button-wrapper[data-v-177bcda8] {
1072
1072
  position: relative;
1073
1073
  }
1074
- .color-reset-button[data-v-1d71f962] {
1074
+ .color-reset-button[data-v-177bcda8] {
1075
1075
  position: absolute;
1076
1076
  right: 7px;
1077
1077
  top: -25px;
1078
1078
  }
1079
- .node-version[data-v-1d71f962] {
1079
+ .node-version[data-v-177bcda8] {
1080
1080
  border-top: var(--border-base);
1081
1081
  font-size: var(--font-size-xs);
1082
1082
  font-size: var(--font-size-2xs);
1083
1083
  padding: var(--spacing-xs) 0 var(--spacing-2xs) 0;
1084
1084
  color: var(--color-text-light);
1085
1085
  }
1086
- .parameter-value input.expression[data-v-1d71f962] {
1086
+ .parameter-value input.expression[data-v-177bcda8] {
1087
1087
  border-style: dashed;
1088
1088
  border-color: #ff9600;
1089
1089
  display: inline-block;
@@ -2709,7 +2709,7 @@ video {
2709
2709
  -------------------------- */
2710
2710
  /* BEM
2711
2711
  -------------------------- */
2712
- .run-data .code-node-editor[data-v-cb603342] {
2712
+ .run-data .code-node-editor[data-v-4f4b3f8b] {
2713
2713
  height: 100%;
2714
2714
  }/* BEM support Func
2715
2715
  -------------------------- */
@@ -2833,7 +2833,7 @@ video {
2833
2833
  -------------------------- */
2834
2834
  /* BEM
2835
2835
  -------------------------- */
2836
- [data-v-cb603342] .highlight {
2836
+ [data-v-4f4b3f8b] .highlight {
2837
2837
  background-color: #f7dc55;
2838
2838
  color: black;
2839
2839
  border-radius: var(--border-radius-base);
@@ -3741,12 +3741,12 @@ video {
3741
3741
  -------------------------- */
3742
3742
  /* BEM
3743
3743
  -------------------------- */
3744
- .fade-enter-active[data-v-61e12e36],
3745
- .fade-leave-active[data-v-61e12e36] {
3744
+ .fade-enter-active[data-v-7d8eb44d],
3745
+ .fade-leave-active[data-v-7d8eb44d] {
3746
3746
  transition: opacity 200ms;
3747
3747
  }
3748
- .fade-enter[data-v-61e12e36],
3749
- .fade-leave-to[data-v-61e12e36] {
3748
+ .fade-enter[data-v-7d8eb44d],
3749
+ .fade-leave-to[data-v-7d8eb44d] {
3750
3750
  opacity: 0;
3751
3751
  }/* BEM support Func
3752
3752
  -------------------------- */
@@ -1,14 +1,14 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-LU_Jd7ZN.js","assets/index-DSYFXmvJ.js","assets/index-CKK_xS1q.css","assets/useCanvasOperations-C8HcBhlE.js","assets/usePinnedData-CX8CCdD1.js","assets/NodeCreation-RKvezEeg.css","assets/NodeDetailsView-C5qgc2nE.js","assets/useRunWorkflow-BsB1hrcR.js","assets/pushConnection.store-BZc1Uu8B.js","assets/import-curl-C7cTqHyb.js","assets/FileSaver.min-JqqCDClh.js","assets/RunDataAi-CVZUcHKh.js","assets/useExecutionHelpers-DKm2JOsm.js","assets/RunDataAi-DWoFsQdi.css","assets/useWorkflowActivate-C_9fNHFS.js","assets/NodeDetailsView-C2CtoATD.css","assets/SetupWorkflowCredentialsButton-BtI5-vnz.js"])))=>i.map(i=>d[i]);
2
- import { d as defineComponent, c as openBlock, e as createBlock, m as resolveComponent, D as createEventBus, br as toRef, q as computed, r as ref, h as createElementBlock, j as createBaseVNode, a$ as mergeProps, l as unref, f as createCommentVNode, n as normalizeClass, v as renderSlot, ab as useCssModule, _ as _export_sfc, w as withCtx, i as createVNode, J as withModifiers, bs as KeyboardShortcutTooltip, g as useI18n, bt as reactive, o as onMounted, b4 as onUnmounted, t as toDisplayString, k as createTextVNode, b as useRouter, W as useRoute, a as useToast, a4 as useDocumentTitle, a5 as useWorkflowHelpers, bp as useNodeHelpers, bo as useNodeTypesStore, L as useUIStore, U as useWorkflowsStore, a1 as useSourceControlStore, p as useSettingsStore, bu as useCredentialsStore, bv as useEnvironmentsStore, bw as useExternalSecretsStore, $ as useRootStore, at as useExecutionsStore, a0 as useCanvasStore, a3 as useNpsSurveyStore, bx as useHistoryStore, a2 as useProjectsStore, u as useUsersStore, E as useTagsStore, as as useNDVStore, aM as useTemplatesStore, au as usePostHog, b6 as useClipboard, by as getNodeViewTab, s as MAIN_HEADER_TABS, ai as VALID_WORKFLOW_IMPORT_URL_REGEX, af as MODAL_CONFIRM, bz as jsonParse, I as watch, bA as onBeforeRouteLeave, aw as onBeforeMount, V as VIEWS, bB as onActivated, bC as onDeactivated, y as onBeforeUnmount, bD as Suspense, bE as N8nCallout, bF as defineAsyncComponent, aT as useExternalHooks, al as useMessage, a9 as EnterpriseEditionFeature, bG as NEW_WORKFLOW_ID, bH as AI_CREDITS_EXPERIMENT, z as nextTick, bI as tryToParseNumber, bJ as NODE_CREATOR_OPEN_SOURCES, ad as nodeViewEventBus, bh as NodeConnectionType, bK as CanvasConnectionMode, bL as isValidNodeConnectionType, aB as STICKY_NODE_TYPE, aE as sourceControlEventBus, bM as DRAG_EVENT_DATA_KEY, ak as useTelemetry, Y as PLACEHOLDER_EMPTY_WORKFLOW_ID, bN as CanvasNodeRenderType, bO as START_NODE_TYPE, bP as getNodesWithNormalizedPosition, am as getResourcePermissions, ap as h, b7 as CHAT_TRIGGER_NODE_TYPE, b8 as MANUAL_CHAT_TRIGGER_NODE_TYPE, ar as __vitePreload, bQ as historyBus } from "./index-DSYFXmvJ.js";
3
- import { u as useVueFlow, a as useCanvasMapping, _ as __unplugin_components_0 } from "./useCanvasMapping-CM-3KDoy.js";
4
- import { u as useRunWorkflow } from "./useRunWorkflow-BsB1hrcR.js";
5
- import { g as globalLinkActionsEventBus } from "./global-link-actions-DeB7eHyR.js";
6
- import { u as useNodeCreatorStore, a as useCanvasOperations, c as createCanvasConnectionHandleString } from "./useCanvasOperations-C8HcBhlE.js";
7
- import { u as useExecutionDebugging } from "./useExecutionDebugging-CO_W_RS3.js";
8
- import { u as usePushConnectionStore } from "./pushConnection.store-BZc1Uu8B.js";
9
- import { u as useBeforeUnload } from "./useBeforeUnload-7dWWMCaC.js";
10
- import { g as getEasyAiWorkflowJson } from "./easyAiWorkflowUtils-BeiAbGC2.js";
11
- import "./usePinnedData-CX8CCdD1.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-D4zlvQth.js","assets/index-DkwrpQEB.js","assets/index-DvUG3hgI.css","assets/useCanvasOperations-BYt9MoCZ.js","assets/usePinnedData-cAEPUGIg.js","assets/NodeCreation-RKvezEeg.css","assets/NodeDetailsView-CGPkwklD.js","assets/useRunWorkflow-Cr62-QBr.js","assets/pushConnection.store-DAf-xv0B.js","assets/import-curl-Bm8BI4Ms.js","assets/FileSaver.min-pwLVwMq4.js","assets/RunDataAi-3mvlRRpH.js","assets/useExecutionHelpers-DTlfzIbO.js","assets/RunDataAi-DWoFsQdi.css","assets/useWorkflowActivate-COcGS4jx.js","assets/NodeDetailsView-mr-1IzdH.css","assets/SetupWorkflowCredentialsButton-DMEKgnto.js"])))=>i.map(i=>d[i]);
2
+ import { d as defineComponent, c as openBlock, e as createBlock, m as resolveComponent, D as createEventBus, bs as toRef, q as computed, r as ref, h as createElementBlock, j as createBaseVNode, b0 as mergeProps, l as unref, f as createCommentVNode, n as normalizeClass, v as renderSlot, ab as useCssModule, _ as _export_sfc, w as withCtx, i as createVNode, J as withModifiers, bt as KeyboardShortcutTooltip, g as useI18n, bu as reactive, o as onMounted, b5 as onUnmounted, t as toDisplayString, k as createTextVNode, b as useRouter, W as useRoute, a as useToast, a4 as useDocumentTitle, a5 as useWorkflowHelpers, bq as useNodeHelpers, bp as useNodeTypesStore, L as useUIStore, U as useWorkflowsStore, a1 as useSourceControlStore, p as useSettingsStore, bv as useCredentialsStore, bw as useEnvironmentsStore, bx as useExternalSecretsStore, $ as useRootStore, at as useExecutionsStore, a0 as useCanvasStore, a3 as useNpsSurveyStore, by as useHistoryStore, a2 as useProjectsStore, u as useUsersStore, E as useTagsStore, as as useNDVStore, aN as useTemplatesStore, au as usePostHog, b7 as useClipboard, bz as getNodeViewTab, s as MAIN_HEADER_TABS, ai as VALID_WORKFLOW_IMPORT_URL_REGEX, af as MODAL_CONFIRM, bA as jsonParse, I as watch, bB as onBeforeRouteLeave, aw as onBeforeMount, V as VIEWS, bC as onActivated, bD as onDeactivated, y as onBeforeUnmount, bE as Suspense, bF as N8nCallout, bG as defineAsyncComponent, aU as useExternalHooks, al as useMessage, a9 as EnterpriseEditionFeature, bH as NEW_WORKFLOW_ID, bI as AI_CREDITS_EXPERIMENT, z as nextTick, bJ as tryToParseNumber, bK as NODE_CREATOR_OPEN_SOURCES, ad as nodeViewEventBus, bi as NodeConnectionType, bL as CanvasConnectionMode, bM as isValidNodeConnectionType, aC as STICKY_NODE_TYPE, aF as sourceControlEventBus, bN as DRAG_EVENT_DATA_KEY, ak as useTelemetry, Y as PLACEHOLDER_EMPTY_WORKFLOW_ID, bO as CanvasNodeRenderType, bP as START_NODE_TYPE, bQ as getNodesWithNormalizedPosition, am as getResourcePermissions, ap as h, b8 as CHAT_TRIGGER_NODE_TYPE, b9 as MANUAL_CHAT_TRIGGER_NODE_TYPE, ar as __vitePreload, bR as historyBus } from "./index-DkwrpQEB.js";
3
+ import { u as useVueFlow, a as useCanvasMapping, _ as __unplugin_components_0 } from "./useCanvasMapping-BE9PMjep.js";
4
+ import { u as useRunWorkflow } from "./useRunWorkflow-Cr62-QBr.js";
5
+ import { g as globalLinkActionsEventBus } from "./global-link-actions-D2_SnpTc.js";
6
+ import { u as useNodeCreatorStore, a as useCanvasOperations, c as createCanvasConnectionHandleString } from "./useCanvasOperations-BYt9MoCZ.js";
7
+ import { u as useExecutionDebugging } from "./useExecutionDebugging-eHQMFoAz.js";
8
+ import { u as usePushConnectionStore } from "./pushConnection.store-DAf-xv0B.js";
9
+ import { u as useBeforeUnload } from "./useBeforeUnload-B-rNKRVu.js";
10
+ import { g as getEasyAiWorkflowJson } from "./easyAiWorkflowUtils-qtdB9CeQ.js";
11
+ import "./usePinnedData-cAEPUGIg.js";
12
12
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
13
13
  __name: "CanvasChatButton",
14
14
  props: {
@@ -284,13 +284,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
284
284
  __name: "NodeView",
285
285
  setup(__props) {
286
286
  const LazyNodeCreation = defineAsyncComponent(
287
- async () => await __vitePreload(() => import("./NodeCreation-LU_Jd7ZN.js").then((n) => n.N), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0)
287
+ async () => await __vitePreload(() => import("./NodeCreation-D4zlvQth.js").then((n) => n.N), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0)
288
288
  );
289
289
  const LazyNodeDetailsView = defineAsyncComponent(
290
- async () => await __vitePreload(() => import("./NodeDetailsView-C5qgc2nE.js").then((n) => n.N), true ? __vite__mapDeps([6,1,2,4,7,8,9,10,11,12,13,14,15]) : void 0)
290
+ async () => await __vitePreload(() => import("./NodeDetailsView-CGPkwklD.js").then((n) => n.N), true ? __vite__mapDeps([6,1,2,4,7,8,9,10,11,12,13,14,15]) : void 0)
291
291
  );
292
292
  const LazySetupWorkflowCredentialsButton = defineAsyncComponent(
293
- async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-BtI5-vnz.js"), true ? __vite__mapDeps([16,1,2]) : void 0)
293
+ async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-DMEKgnto.js"), true ? __vite__mapDeps([16,1,2]) : void 0)
294
294
  );
295
295
  const $style = useCssModule();
296
296
  const router = useRouter();
@@ -358,6 +358,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
358
358
  revalidateNodeInputConnections,
359
359
  revalidateNodeOutputConnections,
360
360
  setNodeActiveByName,
361
+ clearNodeActive,
361
362
  addConnections,
362
363
  importWorkflowData,
363
364
  fetchWorkflowDataFromUrl,
@@ -488,7 +489,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
488
489
  }
489
490
  async function initializeWorkspaceForNewWorkflow() {
490
491
  resetWorkspace();
491
- await workflowsStore.getNewWorkflowData(void 0, projectsStore.currentProjectId);
492
+ await workflowsStore.getNewWorkflowData(
493
+ void 0,
494
+ projectsStore.currentProjectId,
495
+ route.query.parentFolderId
496
+ );
492
497
  workflowsStore.makeNewWorkflowShareable();
493
498
  uiStore.nodeViewInitialized = true;
494
499
  initializedWorkflowId.value = NEW_WORKFLOW_ID;
@@ -553,9 +558,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
553
558
  executionsStore.activeExecution = null;
554
559
  isBlankRedirect.value = true;
555
560
  const templateId = workflow.meta.templateId;
561
+ const parentFolderId = route.query.parentFolderId;
556
562
  await router.replace({
557
563
  name: VIEWS.NEW_WORKFLOW,
558
- query: { templateId }
564
+ query: { templateId, parentFolderId }
559
565
  });
560
566
  await importTemplate({ id: templateId, name: workflow.name, workflow });
561
567
  uiStore.stateIsDirty = true;
@@ -656,9 +662,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
656
662
  function onClickNode() {
657
663
  closeNodeCreator();
658
664
  }
659
- function onSetNodeActive(id) {
665
+ function onSetNodeActivated(id) {
660
666
  setNodeActive(id);
661
667
  }
668
+ function onSetNodeDeactivated() {
669
+ clearNodeActive();
670
+ }
662
671
  function onSetNodeSelected(id) {
663
672
  closeNodeCreator();
664
673
  setNodeSelected(id);
@@ -1445,7 +1454,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1445
1454
  "key-bindings": keyBindingsEnabled.value,
1446
1455
  "onUpdate:nodes:position": onUpdateNodesPosition,
1447
1456
  "onUpdate:node:position": onUpdateNodePosition,
1448
- "onUpdate:node:active": onSetNodeActive,
1457
+ "onUpdate:node:activated": onSetNodeActivated,
1458
+ "onUpdate:node:deactivated": onSetNodeDeactivated,
1449
1459
  "onUpdate:node:selected": onSetNodeSelected,
1450
1460
  "onUpdate:node:enabled": onToggleNodeDisabled,
1451
1461
  "onUpdate:node:name": onOpenRenameNodeModal,
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, q as computed, g4 as ProjectTypes, gd as splitName, m as resolveComponent, bV as resolveDirective, c as openBlock, e as createBlock, w as withCtx, k as createTextVNode, t as toDisplayString, j as createBaseVNode, a$ as mergeProps, n as normalizeClass, i as createVNode, ax as withDirectives, h as createElementBlock, f as createCommentVNode, g as useI18n, g5 as __unplugin_components_0, _ as _export_sfc } from "./index-DSYFXmvJ.js";
1
+ import { d as defineComponent, q as computed, g9 as ProjectTypes, gl as splitName, m as resolveComponent, bW as resolveDirective, c as openBlock, e as createBlock, w as withCtx, k as createTextVNode, t as toDisplayString, j as createBaseVNode, b0 as mergeProps, n as normalizeClass, i as createVNode, ax as withDirectives, h as createElementBlock, f as createCommentVNode, g as useI18n, ga as __unplugin_components_0, _ as _export_sfc } from "./index-DkwrpQEB.js";
2
2
  const _sfc_main = /* @__PURE__ */ defineComponent({
3
3
  __name: "ProjectCardBadge",
4
4
  props: {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, r as ref, c as openBlock, h as createElementBlock, v as renderSlot, i as createVNode, w as withCtx, l as unref, aQ as _sfc_main$1, n as normalizeClass, fG as N8nActionToggle, _ as _export_sfc } from "./index-DSYFXmvJ.js";
1
+ import { d as defineComponent, r as ref, c as openBlock, h as createElementBlock, v as renderSlot, i as createVNode, w as withCtx, l as unref, aR as _sfc_main$1, n as normalizeClass, fK as N8nActionToggle, _ as _export_sfc } from "./index-DkwrpQEB.js";
2
2
  const _sfc_main = /* @__PURE__ */ defineComponent({
3
3
  __name: "ProjectCreateResource",
4
4
  props: {
@@ -1,5 +1,5 @@
1
- import { d as defineComponent, W as useRoute, r as ref, q as computed, I as watch, c as openBlock, e as createBlock, m as resolveComponent, V as VIEWS, g as useI18n, b as useRouter, a2 as useProjectsStore, a1 as useSourceControlStore, h as createElementBlock, j as createBaseVNode, n as normalizeClass, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, v as renderSlot, l as unref, f as createCommentVNode, cP as N8nButton, a$ as mergeProps, aP as N8nTooltip, g5 as __unplugin_components_0, g4 as ProjectTypes, am as getResourcePermissions, _ as _export_sfc } from "./index-DSYFXmvJ.js";
2
- import { P as ProjectCreateResource } from "./ProjectCreateResource-icMXxLmn.js";
1
+ import { d as defineComponent, W as useRoute, r as ref, q as computed, I as watch, c as openBlock, e as createBlock, m as resolveComponent, V as VIEWS, g as useI18n, b as useRouter, a2 as useProjectsStore, a1 as useSourceControlStore, p as useSettingsStore, h as createElementBlock, j as createBaseVNode, n as normalizeClass, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, v as renderSlot, l as unref, f as createCommentVNode, cR as N8nButton, b0 as mergeProps, aQ as N8nTooltip, ga as __unplugin_components_0, g9 as ProjectTypes, am as getResourcePermissions, _ as _export_sfc } from "./index-DkwrpQEB.js";
2
+ import { P as ProjectCreateResource } from "./ProjectCreateResource-CtheSWks.js";
3
3
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4
4
  __name: "ProjectTabs",
5
5
  props: {
@@ -84,12 +84,15 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
84
84
  const _hoisted_1 = { key: 0 };
85
85
  const _sfc_main = /* @__PURE__ */ defineComponent({
86
86
  __name: "ProjectHeader",
87
- setup(__props) {
87
+ emits: ["createFolder"],
88
+ setup(__props, { emit: __emit }) {
88
89
  const route = useRoute();
89
90
  const router = useRouter();
90
91
  const i18n = useI18n();
91
92
  const projectsStore = useProjectsStore();
92
93
  const sourceControlStore = useSourceControlStore();
94
+ const settingsStore = useSettingsStore();
95
+ const emit = __emit;
93
96
  const headerIcon = computed(() => {
94
97
  if (projectsStore.currentProject?.type === ProjectTypes.Personal) {
95
98
  return { type: "icon", value: "user" };
@@ -115,30 +118,43 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
115
118
  () => !!route?.params?.projectId && !!projectPermissions.value.update && projectsStore.currentProject?.type === ProjectTypes.Team
116
119
  );
117
120
  const homeProject = computed(() => projectsStore.currentProject ?? projectsStore.personalProject);
121
+ const isFoldersFeatureEnabled = computed(() => settingsStore.settings.folders.enabled);
118
122
  const ACTION_TYPES = {
119
123
  WORKFLOW: "workflow",
120
- CREDENTIAL: "credential"
124
+ CREDENTIAL: "credential",
125
+ FOLDER: "folder"
121
126
  };
122
127
  const createWorkflowButton = computed(() => ({
123
128
  value: ACTION_TYPES.WORKFLOW,
124
- label: "Create Workflow",
129
+ label: i18n.baseText("projects.header.create.workflow"),
125
130
  icon: sourceControlStore.preferences.branchReadOnly ? "lock" : void 0,
126
131
  size: "mini",
127
132
  disabled: sourceControlStore.preferences.branchReadOnly || !getResourcePermissions(homeProject.value?.scopes).workflow.create
128
133
  }));
129
- const menu = computed(() => [
130
- {
131
- value: ACTION_TYPES.CREDENTIAL,
132
- label: "Create credential",
133
- disabled: sourceControlStore.preferences.branchReadOnly || !getResourcePermissions(homeProject.value?.scopes).credential.create
134
+ const menu = computed(() => {
135
+ const items = [
136
+ {
137
+ value: ACTION_TYPES.CREDENTIAL,
138
+ label: i18n.baseText("projects.header.create.credential"),
139
+ disabled: sourceControlStore.preferences.branchReadOnly || !getResourcePermissions(homeProject.value?.scopes).credential.create
140
+ }
141
+ ];
142
+ if (isFoldersFeatureEnabled.value) {
143
+ items.push({
144
+ value: ACTION_TYPES.FOLDER,
145
+ label: i18n.baseText("projects.header.create.folder"),
146
+ disabled: false
147
+ });
134
148
  }
135
- ]);
149
+ return items;
150
+ });
136
151
  const actions2 = {
137
152
  [ACTION_TYPES.WORKFLOW]: (projectId) => {
138
153
  void router.push({
139
154
  name: VIEWS.NEW_WORKFLOW,
140
155
  query: {
141
- projectId
156
+ projectId,
157
+ parentFolderId: route.params.folderId
142
158
  }
143
159
  });
144
160
  },
@@ -150,6 +166,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
150
166
  credentialId: "create"
151
167
  }
152
168
  });
169
+ },
170
+ [ACTION_TYPES.FOLDER]: async () => {
171
+ emit("createFolder");
153
172
  }
154
173
  };
155
174
  const onSelect = (action) => {
@@ -1,6 +1,6 @@
1
- import { d as defineComponent, fj as mergeModels, fk as useModel, r as ref, q as computed, c as openBlock, e as createBlock, w as withCtx, i as createVNode, k as createTextVNode, t as toDisplayString, l as unref, J as withModifiers, j as createBaseVNode, h as createElementBlock, fH as ProjectSharing, n as normalizeClass, f as createCommentVNode, g as useI18n, m as resolveComponent, _ as _export_sfc, a6 as usePageRedirectionHelper, u as useUsersStore, a2 as useProjectsStore, gk as useRolesStore, aH as useCloudPlanStore, a as useToast, b as useRouter, a4 as useDocumentTitle, gl as getAllIconNames, I as watch, aw as onBeforeMount, o as onMounted, cO as N8nFormInput, F as Fragment, B as renderList, V as VIEWS, bU as deepCopy, z as nextTick, ak as useTelemetry } from "./index-DSYFXmvJ.js";
2
- import { P as ProjectHeader } from "./ProjectHeader-B1QbGLAy.js";
3
- import "./ProjectCreateResource-icMXxLmn.js";
1
+ import { d as defineComponent, fn as mergeModels, fo as useModel, r as ref, q as computed, c as openBlock, e as createBlock, w as withCtx, i as createVNode, k as createTextVNode, t as toDisplayString, l as unref, J as withModifiers, j as createBaseVNode, h as createElementBlock, fL as ProjectSharing, n as normalizeClass, f as createCommentVNode, g as useI18n, m as resolveComponent, _ as _export_sfc, a6 as usePageRedirectionHelper, u as useUsersStore, a2 as useProjectsStore, gs as useRolesStore, aI as useCloudPlanStore, a as useToast, b as useRouter, a4 as useDocumentTitle, gt as getAllIconNames, I as watch, aw as onBeforeMount, o as onMounted, cQ as N8nFormInput, F as Fragment, B as renderList, V as VIEWS, bV as deepCopy, z as nextTick, ak as useTelemetry } from "./index-DkwrpQEB.js";
2
+ import { P as ProjectHeader } from "./ProjectHeader-DyqSSbiB.js";
3
+ import "./ProjectCreateResource-CtheSWks.js";
4
4
  const _hoisted_1$2 = { class: "pt-l" };
5
5
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
6
6
  __name: "ProjectDeleteDialog",
@@ -1,5 +1,5 @@
1
- import { u as usePushConnectionStore } from "./pushConnection.store-BZc1Uu8B.js";
2
- import { d as defineComponent, q as computed, c as openBlock, h as createElementBlock, i as createVNode, w as withCtx, ax as withDirectives, l as unref, j as createBaseVNode, k as createTextVNode, t as toDisplayString, v as renderSlot, g as useI18n, m as resolveComponent, bV as resolveDirective } from "./index-DSYFXmvJ.js";
1
+ import { u as usePushConnectionStore } from "./pushConnection.store-DAf-xv0B.js";
2
+ import { d as defineComponent, q as computed, c as openBlock, h as createElementBlock, i as createVNode, w as withCtx, ax as withDirectives, l as unref, j as createBaseVNode, k as createTextVNode, t as toDisplayString, v as renderSlot, g as useI18n, m as resolveComponent, bW as resolveDirective } from "./index-DkwrpQEB.js";
3
3
  const _hoisted_1 = {
4
4
  key: 0,
5
5
  class: "push-connection-lost primary-color"