n8n-editor-ui 1.62.0 → 1.63.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 (127) hide show
  1. package/dist/assets/@jsplumb/{browser-ui-BphmFVJY.js → browser-ui-D3WTv2iL.js} +41 -76
  2. package/dist/assets/@jsplumb/{common-s1StEx7B.js → common-Cn2WooAp.js} +3 -6
  3. package/dist/assets/@jsplumb/{connector-bezier-D659hq4c.js → connector-bezier-BsoOTqok.js} +16 -29
  4. package/dist/assets/@jsplumb/{core-B__RSZHf.js → core-DLCSr9D4.js} +33 -57
  5. package/dist/assets/@jsplumb/{util-BwtpiQ4c.js → util-DggqnqQo.js} +12 -24
  6. package/dist/assets/@lezer/{common-CnY9etib.js → common-Bs5t-XhT.js} +93 -97
  7. package/dist/assets/@n8n/api-types-Clq_Leox.js +1 -0
  8. package/dist/assets/@n8n/{codemirror-lang-CIGGB1t0.js → codemirror-lang-Bizw8G99.js} +168 -196
  9. package/dist/assets/@n8n/{codemirror-lang-sql-Bygy_eOg.js → codemirror-lang-sql-C9sfSTUi.js} +61 -65
  10. package/dist/assets/@sentry/{vue-UFuYeDxK.js → vue-By9cUXYj.js} +217 -261
  11. package/dist/assets/@vue-flow/{background-VFdKMN89.js → background-B1J8rodd.js} +2 -2
  12. package/dist/assets/@vue-flow/{controls-ByUYVWad.js → controls-B4bXJQnK.js} +2 -2
  13. package/dist/assets/@vue-flow/{core-DgOSPOHv.js → core-tETEFGtP.js} +3116 -3001
  14. package/dist/assets/@vue-flow/{minimap-CXuyA5pl.js → minimap-CGW7BbeH.js} +13 -7
  15. package/dist/assets/@vue-flow/{node-resizer-BiyXe9J3.js → node-resizer-C7hxX6Ea.js} +2 -2
  16. package/dist/assets/@vueuse/{core-A8AAAljH.js → core-BTO0AmLR.js} +5 -8
  17. package/dist/assets/{AnnotationTagsDropdown.ee-mUu5T0tU.js → AnnotationTagsDropdown.ee-c1s6_1ml.js} +4 -5
  18. package/dist/assets/{AuthView-cCH1ZFxz.js → AuthView-DM3fg-uZ.js} +4 -4
  19. package/dist/assets/{CanvasControls-Dzk7BXvt.js → CanvasControls-BZsnpR-P.js} +27 -27
  20. package/dist/assets/{ChangePasswordView-C-hzAV5J.js → ChangePasswordView-BOX9wOkY.js} +30 -32
  21. package/dist/assets/{CredentialsView-Bi4lOx9G.js → CredentialsView-BfctUnEE.js} +217 -212
  22. package/dist/assets/{ErrorView-CL_B0_IM.js → ErrorView-CmGFwk2i.js} +27 -27
  23. package/dist/assets/{ExecutionsFilter-Bmf8tmri.js → ExecutionsFilter-ClKCOgil.js} +4 -4
  24. package/dist/assets/{ExecutionsView-BhkQu2ph.js → ExecutionsView-CXoBpkr1.js} +30 -30
  25. package/dist/assets/{FixedCollectionParameter-CtjVOOBw.js → FixedCollectionParameter-m6vT-d6U.js} +27 -27
  26. package/dist/assets/{ForgotMyPasswordView-lCgL2d4C.js → ForgotMyPasswordView-CPctWsln.js} +28 -28
  27. package/dist/assets/{MainHeader-xZeUKO3O.js → MainHeader-DpZ1_HJp.js} +45 -52
  28. package/dist/assets/{MainHeader-PNFUlNPa.css → MainHeader-m131IPYi.css} +9 -9
  29. package/dist/assets/{MainSidebar-nNVDMzvW.js → MainSidebar-BgMIQ9GG.js} +28 -28
  30. package/dist/assets/{NodeCreation-CUrrlBgR.js → NodeCreation-Dmhfjt0Z.js} +14 -21
  31. package/dist/assets/{NodeCreator-DHaVpCdb.js → NodeCreator-DvXH1Kxq.js} +70 -95
  32. package/dist/assets/{NodeViewSwitcher-DZNvWE_C.css → NodeViewSwitcher-BMWd0Gm9.css} +166 -128
  33. package/dist/assets/{NodeViewSwitcher-vGEVZgHJ.js → NodeViewSwitcher-CinMnxE6.js} +657 -633
  34. package/dist/assets/{ProjectCardBadge-38h9YkEV.js → ProjectCardBadge-B5sNmxJw.js} +2 -2
  35. package/dist/assets/{ProjectSettings-Ba7NDCJu.js → ProjectSettings-DaJRjK2L.js} +29 -30
  36. package/dist/assets/{ProjectTabs-CcHROgCr.js → ProjectTabs-BFoImsk7.js} +3 -3
  37. package/dist/assets/{PushConnectionTracker-Cswc3AVS.js → PushConnectionTracker-BkaXfrU7.js} +4 -4
  38. package/dist/assets/{ResourcesListLayout-DchHS6X4.js → ResourcesListLayout-DHM3u-kO.js} +4 -4
  39. package/dist/assets/{RunDataAi-BASZn4vn.js → RunDataAi-DEKDhaOo.js} +11 -18
  40. package/dist/assets/{RunDataJson-Dc-zyTVL.js → RunDataJson--CgJB7Jk.js} +30 -30
  41. package/dist/assets/{RunDataJsonActions-By8uYyXg.js → RunDataJsonActions-CS-LkHBr.js} +28 -28
  42. package/dist/assets/{RunDataSearch-DKdf85VL.js → RunDataSearch-CdIlaJ49.js} +27 -27
  43. package/dist/assets/{RunDataTable-Cn6nzmGa.js → RunDataTable-BaqMokFl.js} +27 -27
  44. package/dist/assets/{SamlOnboarding-Dfhrttxd.js → SamlOnboarding-ELcbPJ9B.js} +29 -30
  45. package/dist/assets/{SettingsApiView-BbRTrXcD.js → SettingsApiView-CXwvsUoX.js} +29 -31
  46. package/dist/assets/{SettingsCommunityNodesView-BfDdkK-x.js → SettingsCommunityNodesView-BM40NtvG.js} +31 -33
  47. package/dist/assets/{SettingsExternalSecrets-Bl-wlBde.js → SettingsExternalSecrets-BnbTOMJG.js} +28 -29
  48. package/dist/assets/{SettingsFakeDoorView-QqE3QukO.js → SettingsFakeDoorView-BoA9Kqh_.js} +27 -27
  49. package/dist/assets/{SettingsLdapView-BE8xSeHz.js → SettingsLdapView-9chGyutG.js} +31 -33
  50. package/dist/assets/{SettingsLogStreamingView-BPJCiQ1I.js → SettingsLogStreamingView-BSsUL2og.js} +31 -35
  51. package/dist/assets/{SettingsPersonalView-DSvT3Zu1.js → SettingsPersonalView-2XgZR1ZL.js} +27 -27
  52. package/dist/assets/{SettingsSourceControl-DUJaw-Xf.js → SettingsSourceControl-BgKQxMlN.js} +28 -29
  53. package/dist/assets/{SettingsSso-8NreTxhm.js → SettingsSso-cID_6cjA.js} +27 -27
  54. package/dist/assets/{SettingsUsageAndPlan-DDB0UVxU.css → SettingsUsageAndPlan-B72odhIc.css} +30 -16
  55. package/dist/assets/{SettingsUsageAndPlan-CDh5zcRw.js → SettingsUsageAndPlan-Bvu_wsFm.js} +110 -152
  56. package/dist/assets/{SettingsUsersView-DQ-DCRZ1.js → SettingsUsersView-Bn80qMWT.js} +27 -27
  57. package/dist/assets/{SettingsView-_vMUadDF.js → SettingsView-BrIPYcEj.js} +28 -28
  58. package/dist/assets/{SetupView-Df7KdxaQ.js → SetupView-HTuQjpZp.js} +28 -28
  59. package/dist/assets/{SetupWorkflowCredentialsButton-DQQqU73T.js → SetupWorkflowCredentialsButton-C3CEondE.js} +27 -27
  60. package/dist/assets/{SetupWorkflowFromTemplateView-CamrTW9w.js → SetupWorkflowFromTemplateView-B0BngWKW.js} +29 -29
  61. package/dist/assets/{SigninView-Bk-N1gPe.js → SigninView-DZgEz73_.js} +29 -30
  62. package/dist/assets/SignoutView-CDLvIUvc.js +57 -0
  63. package/dist/assets/{SignupView-BLXUTU5v.js → SignupView-Cg7az6VN.js} +28 -28
  64. package/dist/assets/{TemplateDetails-DvcKd566.js → TemplateDetails-B_ESLx0M.js} +4 -4
  65. package/dist/assets/{TemplateList-BmQV74po.js → TemplateList-CW4e8mt1.js} +3 -3
  66. package/dist/assets/{TemplatesCollectionView-C3-PQCQu.js → TemplatesCollectionView-D7Vqcq9c.js} +31 -31
  67. package/dist/assets/{TemplatesSearchView-cuS8bvak.js → TemplatesSearchView-C96qFt9M.js} +30 -30
  68. package/dist/assets/{TemplatesView-ClNtJ2ov.js → TemplatesView-CdKHOSQn.js} +3 -3
  69. package/dist/assets/{TemplatesWorkflowView-CzrIrhUD.js → TemplatesWorkflowView-IBdLRKjM.js} +31 -31
  70. package/dist/assets/{VariablesView-CCnuUdXB.js → VariablesView-DGeKYvRy.js} +29 -30
  71. package/dist/assets/{WorkerView-DyoF7ooc.js → WorkerView-DpU5rxqv.js} +33 -35
  72. package/dist/assets/{WorkflowActivator-RvLc-qAh.js → WorkflowActivator-DivXM6DQ.js} +4 -4
  73. package/dist/assets/{WorkflowExecutionsInfoAccordion-Bg0qCmnO.js → WorkflowExecutionsInfoAccordion-DjeQdz8i.js} +3 -3
  74. package/dist/assets/{WorkflowExecutionsLandingPage-gbIC1-W0.js → WorkflowExecutionsLandingPage-CS5M1O2I.js} +28 -28
  75. package/dist/assets/{WorkflowExecutionsPreview-K6TfT99N.js → WorkflowExecutionsPreview-CYfunkNH.js} +31 -31
  76. package/dist/assets/{WorkflowExecutionsView-B153CRdQ.js → WorkflowExecutionsView-BPn3-0Z8.js} +33 -35
  77. package/dist/assets/{WorkflowHistory-BDoz9lQx.js → WorkflowHistory-DPzO-d3v.js} +30 -31
  78. package/dist/assets/{WorkflowOnboardingView-BxjLFVFS.js → WorkflowOnboardingView-CXCNCb3T.js} +27 -27
  79. package/dist/assets/{WorkflowPreview-CzGXadkf.js → WorkflowPreview-jN_lhBHw.js} +3 -3
  80. package/dist/assets/WorkflowsView-DZQ572rS.js +791 -0
  81. package/dist/assets/{axios-B4zXCSve.js → axios-BW6T4tHC.js} +12 -24
  82. package/dist/assets/{bowser-C3wWO1p5.js → bowser-CDCHPFWD.js} +16 -32
  83. package/dist/assets/change-case-Dux1iW35.js +137 -0
  84. package/dist/assets/{chart.js-DiBOFLDH.js → chart.js-BYpPl_l4.js} +1 -4
  85. package/dist/assets/{cloud-B1p-KZWU.js → cloud-bUMc8Agc.js} +27 -27
  86. package/dist/assets/{codemirror-lang-html-n8n-COz1fWJn.js → codemirror-lang-html-n8n-BElKE4vf.js} +50 -92
  87. package/dist/assets/{dateFormatter-vLfenR8L.js → dateFormatter-B-oph3V5.js} +1 -1
  88. package/dist/assets/{dateformat-BGl-JyZv.js → dateformat-BevCJF2z.js} +1 -1
  89. package/dist/assets/email-providers-Brdpqw-Z.js +1 -0
  90. package/dist/assets/{fast-json-stable-stringify-U-rSQs8f.js → fast-json-stable-stringify-D9R5x91P.js} +11 -21
  91. package/dist/assets/{file-saver-kjhT_TS0.js → file-saver-Dbfm4l4I.js} +6 -11
  92. package/dist/assets/{flatted-D70IerrI.js → flatted-BLlNkUR-.js} +1 -2
  93. package/dist/assets/highlight.js-Brdpqw-Z.js +1 -0
  94. package/dist/assets/{humanize-duration-Ctua_P33.js → humanize-duration-DdvB4QXM.js} +1 -1
  95. package/dist/assets/{index-DLT0DWwS.css → index-B5Pl_Rdy.css} +97 -21
  96. package/dist/assets/{index-Cpj7dgjR.js → index-CPY4xf2i.js} +4539 -5975
  97. package/dist/assets/{jsonpath-B3CL4C9V.js → jsonpath--XXuA3UN.js} +92 -183
  98. package/dist/assets/{lodash-es-kRWQHL5K.js → lodash-es-DCRmYdQ5.js} +2 -1
  99. package/dist/assets/{luxon-Bt_g4NOb.js → luxon-N8mghSWH.js} +68 -136
  100. package/dist/assets/{n8n-2AIRllP4.css → n8n-C6KBCWah.css} +69 -27
  101. package/dist/assets/{n8n-DKG-k8tQ.js → n8n-o-6nV4eX.js} +2364 -3490
  102. package/dist/assets/{pinia-CH9HlKCh.js → pinia-BWzoPyXU.js} +1 -1
  103. package/dist/assets/{prettier-DuWRKCwA.js → prettier-eWLVZldr.js} +332 -576
  104. package/dist/assets/{pushConnection.store-CWlxAgml.js → pushConnection.store-DSDmSF0s.js} +4 -5
  105. package/dist/assets/{qrcode.vue-BxNS_c3b.js → qrcode.vue-BavVPFUM.js} +9 -18
  106. package/dist/assets/{templateActions-Db-OKiDw.js → templateActions-B7oHjFje.js} +1 -1
  107. package/dist/assets/{useBeforeUnload-D7668b41.js → useBeforeUnload-QdvdNyCn.js} +2 -2
  108. package/dist/assets/{useExecutionDebugging-qJjrenaZ.js → useExecutionDebugging-DTgWI86M.js} +2 -2
  109. package/dist/assets/{usePushConnection-DZy6DvZv.js → usePushConnection-DNuBIs4x.js} +7 -19
  110. package/dist/assets/{useUserHelpers-BvVDIqe5.js → useUserHelpers-BQpOEdTK.js} +1 -1
  111. package/dist/assets/{useWorkflowActivate-DHaWjPqY.js → useWorkflowActivate-ImhuE4H6.js} +2 -2
  112. package/dist/assets/{uuid-BoySKAeK.js → uuid-DRDfXVM2.js} +2 -4
  113. package/dist/assets/{v3-infinite-loading-lAZO0HDs.js → v3-infinite-loading-CHlSsXAy.js} +1 -1
  114. package/dist/assets/{vendor-DCeaNtb_.js → vendor-D8YCjNHu.js} +18 -17
  115. package/dist/assets/{vue-agile-CSC3AwtI.js → vue-agile-Busf3nxn.js} +3 -3
  116. package/dist/assets/{vue-chartjs-CAJPqBur.js → vue-chartjs-DBNEiLG-.js} +3 -4
  117. package/dist/assets/{vue-i18n-CVQE9o3c.js → vue-i18n-CeifA_Nk.js} +2 -3
  118. package/dist/assets/{vue-json-pretty-D1Elveao.js → vue-json-pretty-DHS8nWi_.js} +21 -40
  119. package/dist/assets/xss-Brdpqw-Z.js +1 -0
  120. package/dist/index.html +29 -29
  121. package/package.json +1 -1
  122. package/dist/assets/@n8n/api-types-CxHrH5Ag.js +0 -1
  123. package/dist/assets/SignoutView-ChwcohBv.js +0 -57
  124. package/dist/assets/WorkflowsView-CwxMKB51.js +0 -846
  125. package/dist/assets/email-providers-DKCy3_XM.js +0 -1
  126. package/dist/assets/highlight.js-DKCy3_XM.js +0 -1
  127. package/dist/assets/xss-DKCy3_XM.js +0 -1
@@ -1,26 +1,27 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataTable-Cn6nzmGa.js","assets/index-Cpj7dgjR.js","assets/vendor-DCeaNtb_.js","assets/@sentry/vue-UFuYeDxK.js","assets/n8n-DKG-k8tQ.js","assets/esprima-next-DUEu30kB.js","assets/axios-B4zXCSve.js","assets/luxon-Bt_g4NOb.js","assets/lodash-es-kRWQHL5K.js","assets/uuid-BoySKAeK.js","assets/@vueuse/core-A8AAAljH.js","assets/n8n-2AIRllP4.css","assets/flatted-D70IerrI.js","assets/pinia-CH9HlKCh.js","assets/bowser-C3wWO1p5.js","assets/dateformat-BGl-JyZv.js","assets/vue-i18n-CVQE9o3c.js","assets/@n8n/permissions-BxSXRD9U.js","assets/@jsplumb/util-BwtpiQ4c.js","assets/@jsplumb/core-B__RSZHf.js","assets/@jsplumb/common-s1StEx7B.js","assets/@jsplumb/connector-bezier-D659hq4c.js","assets/@jsplumb/browser-ui-BphmFVJY.js","assets/@n8n/codemirror-lang-CIGGB1t0.js","assets/@lezer/common-CnY9etib.js","assets/@n8n/codemirror-lang-sql-Bygy_eOg.js","assets/prettier-DuWRKCwA.js","assets/codemirror-lang-html-n8n-COz1fWJn.js","assets/fast-json-stable-stringify-U-rSQs8f.js","assets/timeago.js-CgQus8nl.js","assets/qrcode.vue-BxNS_c3b.js","assets/vue3-touch-events-DVOgU3fI.js","assets/chart.js-DiBOFLDH.js","assets/index-DLT0DWwS.css","assets/RunDataTable-ZwoYenSI.css","assets/RunDataJson-Dc-zyTVL.js","assets/vue-json-pretty-D1Elveao.js","assets/RunDataJson-Dtc8i0I7.css","assets/RunDataSearch-DKdf85VL.js","assets/RunDataSearch-BA0wlJtp.css","assets/NodeCreation-CUrrlBgR.js","assets/NodeCreation-30KXmZi2.css","assets/CanvasControls-Dzk7BXvt.js","assets/CanvasControls-Gjw5xMXK.css","assets/SetupWorkflowCredentialsButton-DQQqU73T.js"])))=>i.map(i=>d[i]);
2
- import { r as ref, f as computed, b as watch, I as defineComponent, u as unref, J as openBlock, V as createBlock, L as createBaseVNode, a8 as createVNode, a3 as withCtx, _ as normalizeClass, $ as normalizeStyle, Y as Teleport, U as createCommentVNode, an as resolveComponent, K as createElementBlock, a6 as createTextVNode, a7 as toDisplayString, ag as withKeys, ac as withModifiers, n as nextTick, aL as useRouter, R as Fragment, af as renderList, aB as pushScopeId, aC as popScopeId, X as h, h as reactive, s as shallowRef, k as getCurrentInstance, q as onMounted, w as watchEffect, t as toRefs, a0 as mergeProps, m as onBeforeUnmount, a4 as withDirectives, a9 as vShow, a1 as useSlots, Z as renderSlot, j as toRef$1, aO as defineAsyncComponent, au as resolveDirective, aQ as Suspense, ah as createSlots, aV as createStaticVNode, a5 as resolveDynamicComponent, a2 as Transition, x as onUnmounted, aE as useRoute, i as inject, aA as useCssModule, p as provide, aG as toValue$1, aj as normalizeProps, ar as guardReactiveProps, l as onBeforeMount, aW as onActivated, ae as onDeactivated, aX as onBeforeRouteLeave } from "./vendor-DCeaNtb_.js";
3
- import { o as onClickOutside$1, t as toValue, i as isClient, n as noop, f as isObject, g as tryOnScopeDispose, h as isIOS, j as directiveHooks, k as useActiveElement, l as useBattery, m as useBrowserLocation, c as useClipboard$1, p as watchPausable, q as tryOnMounted, r as toRef, s as useDark, v as useToggle, x as useDeviceMotion, y as useDeviceOrientation, z as useDevicePixelRatio, A as useDevicesList, e as useDocumentVisibility, a as useStorage$1, B as useDraggable, C as useElementBounding, D as useElementSize$1, E as useElementVisibility$1, F as notNullish, G as useEyeDropper, H as useFullscreen, I as useGeolocation, J as useIdle, K as promiseTimeout, L as until, M as useDebounceFn, N as useThrottleFn, O as useMouse, P as useMouseInElement, Q as useMousePressed, R as useNetwork, S as useNow, T as useObjectUrl, U as useOffsetPagination, V as useOnline, W as usePageLeave, X as usePointer, Y as usePointerLock, Z as usePreferredColorScheme, _ as usePreferredContrast, $ as usePreferredDark$1, a0 as usePreferredLanguages, a1 as usePreferredReducedMotion, a2 as useTimeAgo, a3 as useTimestamp, a4 as useVirtualList, a5 as useWindowFocus, a6 as useWindowSize, a7 as useEventListener$1, a8 as onKeyDown, a9 as onKeyUp, b as useLocalStorage } from "./@vueuse/core-A8AAAljH.js";
4
- import { f as useUIStore, a4 as useNodeTypesStore, k as useWorkflowsStore, n as useSourceControlStore, b as useI18n, t as getResourcePermissions, a5 as isPresent, a6 as NOT_DUPLICATABLE_NODE_TYPES, a7 as getMousePosition, O as STICKY_NODE_TYPE, a8 as usePinnedData, a9 as _sfc_main$X, L as useNDVStore, aa as isCommunityPackageName, ab as NPM_PACKAGE_DOCS_BASE_URL, ac as BUILTIN_NODES_DOCS_URL, ad as COMMUNITY_NODES_INSTALLATION_DOCS_URL, a1 as useExternalHooks, y as useTelemetry, ae as useClipboard, r as useWorkflowHelpers, a as useToast, af as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, ag as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, ah as FORM_TRIGGER_NODE_TYPE, ai as CHAT_TRIGGER_NODE_TYPE, aj as useNodeHelpers, e as useDebounce, ak as TitledList, al as useRunWorkflow, am as MANUAL_TRIGGER_NODE_TYPE, an as WEBHOOK_NODE_TYPE, z as useMessage, C as nodeViewEventBus, D as MODAL_CONFIRM, ao as useCredentialsStore, ap as useHistoryStore, aq as ProjectTypes, ar as importCurlEventBus, as as ndvEventBus, at as CUSTOM_NODES_DOCS_URL, au as NodeCredentials, av as _sfc_main$Y, aw as SHOULD_CLEAR_NODE_OUTPUTS, ax as RenameNodeCommand, ay as Draggable, Z as useStorage$2, az as LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH, aA as MAIN_NODE_PANEL_WIDTH, aB as __unplugin_components_2$2, aC as useNodeType, aD as MAX_DISPLAY_DATA_SIZE, aE as MAX_DISPLAY_DATA_SIZE_SCHEMA_VIEW, aF as MAX_DISPLAY_ITEMS_AUTO_ALL, l as useRootStore, aG as DATA_PINNING_DOCS_URL, aH as DATA_EDITING_DOCS_URL, aI as HTML_NODE_TYPE, aJ as executionDataToJson, aK as NODE_TYPES_EXCLUDED_FROM_OUTPUT_NAME_APPEND, aL as isEmpty, aM as getGenericHints, aN as LOCAL_STORAGE_PIN_DATA_DISCOVERY_NDV_FLAG, aO as dataPinningEventBus, aP as LOCAL_STORAGE_PIN_DATA_DISCOVERY_CANVAS_FLAG, aQ as clearJsonKey, aR as searchInObject, aS as TEST_PIN_DATA, aT as START_NODE_TYPE, aU as CRON_NODE_TYPE, aV as INTERVAL_NODE_TYPE, aW as CopyInput, aX as isTriggerPanelObject, aY as getTriggerNodeServiceName, V as VIEWS, G as WORKFLOW_SETTINGS_MODAL_KEY, c as useSettingsStore, aZ as EXECUTABLE_TRIGGER_NODE_TYPES, a_ as BASE_NODE_SURVEY_URL, E as EnterpriseEditionFeature, a$ as APP_MODALS_ELEMENT_ID, b0 as NODE_CONNECTION_TYPE_ALLOW_MULTIPLE, b1 as getAnchorPosition, b2 as isValidNodeConnectionType, b3 as getEndpointScope, b4 as getInputEndpointUUID, b5 as getInputEndpointStyle, b6 as getScope, b7 as getInputNameOverlay, b8 as NODE_INSERT_SPACER_BETWEEN_INPUT_GROUPS, b9 as NODE_MIN_INPUT_ITEMS_COUNT, ba as getOutputEndpointUUID, bb as getOutputEndpointStyle, bc as getOutputNameOverlay, bd as NO_OP_NODE_TYPE, be as GRID_SIZE, bf as isString, bg as isNumber, bh as assert, bi as QUICKSTART_NOTE_NAME, bj as WAIT_TIME_UNLIMITED, bk as SIMULATE_NODE_TYPE, bl as SIMULATE_TRIGGER_NODE_TYPE, bm as CUSTOM_API_CALL_KEY, bn as globalLinkActionsEventBus, m as useCanvasStore, bo as getRelativePosition, bp as CORE_NODES_CATEGORY, bq as DEFAULT_SUBCATEGORY, br as AI_SUBCATEGORY, bs as usePostHog, bt as AI_TRANSFORM_NODE_TYPE, bu as AI_CATEGORY_AGENTS, bv as i18n, $ as useTemplatesStore, bw as AI_CATEGORY_CHAINS, bx as AI_NODE_CREATOR_VIEW, by as AI_OTHERS_NODE_CREATOR_VIEW, bz as AI_CATEGORY_DOCUMENT_LOADERS, bA as AI_CATEGORY_LANGUAGE_MODELS, bB as AI_CATEGORY_MEMORY, bC as AI_CATEGORY_OUTPUTPARSER, bD as AI_CATEGORY_RETRIEVERS, bE as AI_CATEGORY_TEXT_SPLITTERS, bF as AI_CATEGORY_TOOLS, bG as AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, bH as AI_CODE_TOOL_LANGCHAIN_NODE_TYPE, bI as AI_CATEGORY_EMBEDDING, bJ as AI_CATEGORY_VECTOR_STORES, bK as AI_UNCATEGORIZED_CATEGORY, bL as TRIGGER_NODE_CREATOR_VIEW, bM as EMAIL_IMAP_NODE_TYPE, bN as SCHEDULE_TRIGGER_NODE_TYPE, bO as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, bP as MANUAL_CHAT_TRIGGER_NODE_TYPE, bQ as OTHER_TRIGGER_NODES_SUBCATEGORY, bR as SET_NODE_TYPE, bS as CODE_NODE_TYPE, bT as DATETIME_NODE_TYPE, bU as REGULAR_NODE_CREATOR_VIEW, bV as RSS_READ_NODE_TYPE, bW as EMAIL_SEND_NODE_TYPE, bX as TRANSFORM_DATA_SUBCATEGORY, bY as FILTER_NODE_TYPE, bZ as REMOVE_DUPLICATES_NODE_TYPE, b_ as SPLIT_OUT_NODE_TYPE, b$ as LIMIT_NODE_TYPE, c0 as SUMMARIZE_NODE_TYPE, c1 as AGGREGATE_NODE_TYPE, c2 as MERGE_NODE_TYPE, c3 as MARKDOWN_NODE_TYPE, c4 as XML_NODE_TYPE, c5 as CRYPTO_NODE_TYPE, c6 as EXTRACT_FROM_FILE_NODE_TYPE, c7 as CONVERT_TO_FILE_NODE_TYPE, c8 as COMPRESSION_NODE_TYPE, c9 as EDIT_IMAGE_NODE_TYPE, ca as FLOWS_CONTROL_SUBCATEGORY, cb as IF_NODE_TYPE, cc as SPLIT_IN_BATCHES_NODE_TYPE, cd as HELPERS_SUBCATEGORY, ce as HTTP_REQUEST_NODE_TYPE, cf as AI_CATEGORY_ROOT_NODES, cg as AI_CODE_NODE_TYPE, ch as CanvasConnectionMode, ci as isValidCanvasConnectionMode, S as STORES, cj as NODE_CREATOR_OPEN_SOURCES, ck as isVueFlowConnection, cl as MOUSE_EVENT_BUTTON, cm as MOUSE_EVENT_BUTTONS, cn as KeyboardShortcutTooltip, q as useDocumentTitle, p as useNpsSurveyStore, o as useProjectsStore, N as useExecutionsStore, co as useExternalSecretsStore, cp as useWorkflowsEEStore, cq as useEnvironmentsStore, u as useUsersStore, d as useTagsStore, cr as getBackgroundStyles, K as MAIN_HEADER_TABS, R as sourceControlEventBus, cs as historyBus, P as PLACEHOLDER_EMPTY_WORKFLOW_ID, ct as WORKFLOW_LM_CHAT_MODAL_KEY, cu as N8nAddInputEndpointType, cv as getFixedNodesList, cw as tryToParseNumber, cx as MoveNodeCommand, I as VALID_WORKFLOW_IMPORT_URL_REGEX, cy as UPDATE_WEBHOOK_ID_NODE_TYPES, cz as getNewNodePosition, cA as DRAG_EVENT_DATA_KEY, cB as MAX_X_TO_PUSH_DOWNSTREAM_NODES, cC as PUSH_NODES_OFFSET, cD as NODE_SIZE, cE as resetConnectionAfterPull, cF as resetConnection, cG as moveBackInputLabelPosition, cH as hideOutputNameLabel, cI as addConnectionActionsOverlay, cJ as getOverlay, cK as OVERLAY_ENDPOINT_ARROW_ID, cL as getConnectorPaintStyleData, cM as AddConnectionCommand, cN as addConnectionTestData, cO as showOrHideItemsLabel, cP as showOrHideMidpointArrow, cQ as isJSPlumbConnection, cR as hideConnectionActions, cS as showConnectionActions, cT as resetInputLabelPosition, cU as getConnectionInfo, cV as showOutputNameLabel, cW as RemoveConnectionCommand, cX as isJSPlumbEndpointElement, cY as EVENT_PLUS_ENDPOINT_CLICK, cZ as EVENT_ADD_INPUT_ENDPOINT_CLICK, c_ as N8nPlusEndpointType, c$ as CANVAS_AUTO_ADD_MANUAL_TRIGGER_EXPERIMENT, d0 as MODAL_CANCEL, d1 as addClassesToOverlays, d2 as OVERLAY_RUN_ITEMS_ID, d3 as getJSPlumbEndpoints, d4 as RemoveNodeCommand, d5 as useDataSchema, d6 as getNodeViewTab, d7 as getConnectorLengths, d8 as isElementIntersection, d9 as calculateElementIntersection, da as showDropConnectionState, db as showPullConnectionState, dc as CanvasKey, dd as CanvasNodeKey, de as CanvasNodeRenderType, df as CanvasNodeHandleKey, dg as sanitizeHtml$1, dh as AddNodeCommand, di as DEFAULT_NODE_SIZE, dj as CONFIGURATION_NODE_SIZE, dk as CONFIGURABLE_NODE_SIZE, dl as NEW_WORKFLOW_ID } from "./index-Cpj7dgjR.js";
5
- import { aB as N8nActionDropdown, _ as _export_sfc, N as NodeConnectionType, a as isVue2, aC as nodeIssuesToString, q as getNodeInputs, p as getConnectionTypes, aD as isSingleExecution, m as deepCopy, aE as isINodePropertyCollectionList, aF as isINodePropertiesList, aG as isINodePropertyOptionsList, at as displayParameter, t as getNodeParameters, aH as sanitizeHtml, aI as sanitizeHtml_1, j as jsonParse, o as getNodeOutputs, aJ as getNodeHints, k as __vitePreload, av as truncate, f as createEventBus, aw as useDeviceSupport, x as xss, aA as FontAwesomeIcon, al as _sfc_main$_, aK as AI_TRANSFORM_NODE_TYPE$1, n as nodeConnectionTypes, aL as generateNodesGraph, aa as isSubNodeType, Y as N8nTooltip } from "./n8n-DKG-k8tQ.js";
6
- import { g as get, s as set, C as unset, e as isEqual, A as isObject$1, x as sortBy, D as camelCase, E as difference } from "./lodash-es-kRWQHL5K.js";
7
- import { _ as _sfc_main$Z, R as RunDataAi } from "./RunDataAi-BASZn4vn.js";
8
- import { V as VueJsonPretty } from "./vue-json-pretty-D1Elveao.js";
9
- import { m as mapStores, s as storeToRefs, d as defineStore } from "./pinia-CH9HlKCh.js";
10
- import { F as FileSaver_minExports } from "./file-saver-kjhT_TS0.js";
11
- import { c as convertToDisplayDateComponents } from "./dateFormatter-vLfenR8L.js";
12
- import { u as useWorkflowActivate } from "./useWorkflowActivate-DHaWjPqY.js";
13
- import { _ as INTERCEPT_BEFORE_DROP, $ as EVENT_CONNECTION, a0 as EVENT_CONNECTION_MOVED, a1 as EVENT_CONNECTION_DETACHED } from "./@jsplumb/core-B__RSZHf.js";
14
- import { u as useExecutionDebugging } from "./useExecutionDebugging-qJjrenaZ.js";
15
- import { v as v4 } from "./uuid-BoySKAeK.js";
16
- import { u as usePushConnectionStore } from "./pushConnection.store-CWlxAgml.js";
17
- import { g as ready$1, f as EVENT_CONNECTION_ABORT, h as EVENT_DRAG_MOVE, a as EVENT_CONNECTION_MOUSEOVER, E as EVENT_CONNECTION_MOUSEOUT, b as EVENT_ENDPOINT_MOUSEOVER, d as EVENT_ENDPOINT_MOUSEOUT, i as EVENT_CONNECTION_DRAG } from "./@jsplumb/browser-ui-BphmFVJY.js";
18
- import { u as useBeforeUnload } from "./useBeforeUnload-D7668b41.js";
19
- import { _ as _sfc_main$$ } from "./@vue-flow/controls-ByUYVWad.js";
20
- import { e as getBezierPath, f as getSmoothStepPath, h as Position, i as _sfc_main$d$1, j as _sfc_main$f$1, u as useVueFlow, k as _sfc_main$3$1, P as PanelPosition, M as MarkerType, l as _sfc_main$1$1 } from "./@vue-flow/core-DgOSPOHv.js";
21
- import { _ as _sfc_main$11 } from "./@vue-flow/background-VFdKMN89.js";
22
- import { _ as _sfc_main$12 } from "./@vue-flow/minimap-CXuyA5pl.js";
23
- import { _ as _sfc_main$10 } from "./@vue-flow/node-resizer-BiyXe9J3.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataTable-BaqMokFl.js","assets/index-CPY4xf2i.js","assets/vendor-D8YCjNHu.js","assets/@sentry/vue-By9cUXYj.js","assets/n8n-o-6nV4eX.js","assets/esprima-next-DUEu30kB.js","assets/axios-BW6T4tHC.js","assets/luxon-N8mghSWH.js","assets/lodash-es-DCRmYdQ5.js","assets/uuid-DRDfXVM2.js","assets/@vueuse/core-BTO0AmLR.js","assets/n8n-C6KBCWah.css","assets/flatted-BLlNkUR-.js","assets/pinia-BWzoPyXU.js","assets/bowser-CDCHPFWD.js","assets/dateformat-BevCJF2z.js","assets/vue-i18n-CeifA_Nk.js","assets/@n8n/permissions-BxSXRD9U.js","assets/@jsplumb/util-DggqnqQo.js","assets/@jsplumb/core-DLCSr9D4.js","assets/@jsplumb/common-Cn2WooAp.js","assets/@jsplumb/connector-bezier-BsoOTqok.js","assets/@jsplumb/browser-ui-D3WTv2iL.js","assets/@n8n/codemirror-lang-Bizw8G99.js","assets/@lezer/common-Bs5t-XhT.js","assets/@n8n/codemirror-lang-sql-C9sfSTUi.js","assets/prettier-eWLVZldr.js","assets/codemirror-lang-html-n8n-BElKE4vf.js","assets/fast-json-stable-stringify-D9R5x91P.js","assets/timeago.js-CgQus8nl.js","assets/qrcode.vue-BavVPFUM.js","assets/vue3-touch-events-DVOgU3fI.js","assets/chart.js-BYpPl_l4.js","assets/index-B5Pl_Rdy.css","assets/RunDataTable-ZwoYenSI.css","assets/RunDataJson--CgJB7Jk.js","assets/vue-json-pretty-DHS8nWi_.js","assets/RunDataJson-Dtc8i0I7.css","assets/RunDataSearch-CdIlaJ49.js","assets/RunDataSearch-BA0wlJtp.css","assets/NodeCreation-Dmhfjt0Z.js","assets/NodeCreation-30KXmZi2.css","assets/CanvasControls-BZsnpR-P.js","assets/CanvasControls-Gjw5xMXK.css","assets/SetupWorkflowCredentialsButton-C3CEondE.js"])))=>i.map(i=>d[i]);
2
+ import { r as ref, f as computed, b as watch, I as defineComponent, u as unref, J as openBlock, V as createBlock, L as createBaseVNode, a8 as createVNode, a3 as withCtx, _ as normalizeClass, $ as normalizeStyle, Y as Teleport, U as createCommentVNode, an as resolveComponent, K as createElementBlock, a6 as createTextVNode, a7 as toDisplayString, ag as withKeys, ac as withModifiers, n as nextTick, aM as useRouter, R as Fragment, af as renderList, aB as pushScopeId, aC as popScopeId, X as h, h as reactive, s as shallowRef, k as getCurrentInstance, q as onMounted, w as watchEffect, t as toRefs, a0 as mergeProps, m as onBeforeUnmount, a4 as withDirectives, a9 as vShow, a1 as useSlots, Z as renderSlot, j as toRef$1, aP as defineAsyncComponent, au as resolveDirective, aR as Suspense, ah as createSlots, aW as createStaticVNode, a5 as resolveDynamicComponent, a2 as Transition, x as onUnmounted, aE as useRoute, i as inject, aA as useCssModule, p as provide, aj as normalizeProps, ar as guardReactiveProps, l as onBeforeMount, aX as onActivated, ae as onDeactivated, aY as onBeforeRouteLeave } from "./vendor-D8YCjNHu.js";
3
+ import { o as onClickOutside$1, t as toValue, i as isClient, n as noop, f as isObject, g as tryOnScopeDispose, h as isIOS, j as directiveHooks, k as useActiveElement, l as useBattery, m as useBrowserLocation, c as useClipboard$1, p as watchPausable, q as tryOnMounted, r as toRef, s as useDark, v as useToggle, x as useDeviceMotion, y as useDeviceOrientation, z as useDevicePixelRatio, A as useDevicesList, e as useDocumentVisibility, a as useStorage$1, B as useDraggable, C as useElementBounding, D as useElementSize$1, E as useElementVisibility$1, F as notNullish, G as useEyeDropper, H as useFullscreen, I as useGeolocation, J as useIdle, K as promiseTimeout, L as until, M as useDebounceFn, N as useThrottleFn, O as useMouse, P as useMouseInElement, Q as useMousePressed, R as useNetwork, S as useNow, T as useObjectUrl, U as useOffsetPagination, V as useOnline, W as usePageLeave, X as usePointer, Y as usePointerLock, Z as usePreferredColorScheme, _ as usePreferredContrast, $ as usePreferredDark$1, a0 as usePreferredLanguages, a1 as usePreferredReducedMotion, a2 as useTimeAgo, a3 as useTimestamp, a4 as useVirtualList, a5 as useWindowFocus, a6 as useWindowSize, a7 as useEventListener$1, a8 as onKeyDown, a9 as onKeyUp, b as useLocalStorage } from "./@vueuse/core-BTO0AmLR.js";
4
+ import { f as useUIStore, a4 as useNodeTypesStore, k as useWorkflowsStore, n as useSourceControlStore, b as useI18n, t as getResourcePermissions, a5 as isPresent, a6 as NOT_DUPLICATABLE_NODE_TYPES, a7 as getMousePosition, O as STICKY_NODE_TYPE, a8 as usePinnedData, a9 as _sfc_main$X, L as useNDVStore, aa as isCommunityPackageName, ab as NPM_PACKAGE_DOCS_BASE_URL, ac as BUILTIN_NODES_DOCS_URL, ad as COMMUNITY_NODES_INSTALLATION_DOCS_URL, a1 as useExternalHooks, y as useTelemetry, ae as useClipboard, r as useWorkflowHelpers, a as useToast, af as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, ag as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, ah as FORM_TRIGGER_NODE_TYPE, ai as CHAT_TRIGGER_NODE_TYPE, aj as useNodeHelpers, e as useDebounce, ak as TitledList, al as useRunWorkflow, am as MANUAL_TRIGGER_NODE_TYPE, an as WEBHOOK_NODE_TYPE, z as useMessage, C as nodeViewEventBus, D as MODAL_CONFIRM, ao as useCredentialsStore, ap as useHistoryStore, aq as ProjectTypes, ar as importCurlEventBus, as as ndvEventBus, at as CUSTOM_NODES_DOCS_URL, au as NodeCredentials, av as _sfc_main$Y, aw as SHOULD_CLEAR_NODE_OUTPUTS, ax as RenameNodeCommand, ay as Draggable, Z as useStorage$2, az as LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH, aA as MAIN_NODE_PANEL_WIDTH, aB as __unplugin_components_2$2, aC as useNodeType, aD as MAX_DISPLAY_DATA_SIZE, aE as MAX_DISPLAY_DATA_SIZE_SCHEMA_VIEW, aF as MAX_DISPLAY_ITEMS_AUTO_ALL, l as useRootStore, aG as DATA_PINNING_DOCS_URL, aH as DATA_EDITING_DOCS_URL, aI as HTML_NODE_TYPE, aJ as executionDataToJson, aK as NODE_TYPES_EXCLUDED_FROM_OUTPUT_NAME_APPEND, aL as isEmpty, aM as getGenericHints, aN as LOCAL_STORAGE_PIN_DATA_DISCOVERY_NDV_FLAG, aO as dataPinningEventBus, aP as LOCAL_STORAGE_PIN_DATA_DISCOVERY_CANVAS_FLAG, aQ as clearJsonKey, aR as searchInObject, aS as TEST_PIN_DATA, aT as waitingNodeTooltip, aU as START_NODE_TYPE, aV as CRON_NODE_TYPE, aW as INTERVAL_NODE_TYPE, aX as CopyInput, aY as isTriggerPanelObject, aZ as getTriggerNodeServiceName, V as VIEWS, G as WORKFLOW_SETTINGS_MODAL_KEY, c as useSettingsStore, a_ as EXECUTABLE_TRIGGER_NODE_TYPES, a$ as BASE_NODE_SURVEY_URL, E as EnterpriseEditionFeature, b0 as APP_MODALS_ELEMENT_ID, b1 as NODE_CONNECTION_TYPE_ALLOW_MULTIPLE, b2 as getAnchorPosition, b3 as isValidNodeConnectionType, b4 as getEndpointScope, b5 as getInputEndpointUUID, b6 as getInputEndpointStyle, b7 as getScope, b8 as getInputNameOverlay, b9 as NODE_INSERT_SPACER_BETWEEN_INPUT_GROUPS, ba as NODE_MIN_INPUT_ITEMS_COUNT, bb as getOutputEndpointUUID, bc as getOutputEndpointStyle, bd as getOutputNameOverlay, be as NO_OP_NODE_TYPE, bf as GRID_SIZE, bg as isString, bh as isNumber, bi as assert, bj as QUICKSTART_NOTE_NAME, bk as WAIT_NODE_TYPE, bl as WAIT_TIME_UNLIMITED, bm as SIMULATE_NODE_TYPE, bn as SIMULATE_TRIGGER_NODE_TYPE, bo as CUSTOM_API_CALL_KEY, bp as globalLinkActionsEventBus, m as useCanvasStore, bq as getRelativePosition, br as CORE_NODES_CATEGORY, bs as DEFAULT_SUBCATEGORY, bt as AI_SUBCATEGORY, bu as AI_TRANSFORM_NODE_TYPE, bv as AI_CATEGORY_AGENTS, bw as i18n, $ as useTemplatesStore, bx as AI_CATEGORY_CHAINS, by as AI_NODE_CREATOR_VIEW, bz as AI_OTHERS_NODE_CREATOR_VIEW, bA as AI_CATEGORY_DOCUMENT_LOADERS, bB as AI_CATEGORY_LANGUAGE_MODELS, bC as AI_CATEGORY_MEMORY, bD as AI_CATEGORY_OUTPUTPARSER, bE as AI_CATEGORY_RETRIEVERS, bF as AI_CATEGORY_TEXT_SPLITTERS, bG as AI_CATEGORY_TOOLS, bH as AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, bI as AI_CODE_TOOL_LANGCHAIN_NODE_TYPE, bJ as AI_CATEGORY_EMBEDDING, bK as AI_CATEGORY_VECTOR_STORES, bL as AI_UNCATEGORIZED_CATEGORY, bM as TRIGGER_NODE_CREATOR_VIEW, bN as EMAIL_IMAP_NODE_TYPE, bO as SCHEDULE_TRIGGER_NODE_TYPE, bP as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, bQ as MANUAL_CHAT_TRIGGER_NODE_TYPE, bR as OTHER_TRIGGER_NODES_SUBCATEGORY, bS as SET_NODE_TYPE, bT as CODE_NODE_TYPE, bU as DATETIME_NODE_TYPE, bV as REGULAR_NODE_CREATOR_VIEW, bW as RSS_READ_NODE_TYPE, bX as EMAIL_SEND_NODE_TYPE, bY as TRANSFORM_DATA_SUBCATEGORY, bZ as FILTER_NODE_TYPE, b_ as REMOVE_DUPLICATES_NODE_TYPE, b$ as SPLIT_OUT_NODE_TYPE, c0 as LIMIT_NODE_TYPE, c1 as SUMMARIZE_NODE_TYPE, c2 as AGGREGATE_NODE_TYPE, c3 as MERGE_NODE_TYPE, c4 as MARKDOWN_NODE_TYPE, c5 as XML_NODE_TYPE, c6 as CRYPTO_NODE_TYPE, c7 as EXTRACT_FROM_FILE_NODE_TYPE, c8 as CONVERT_TO_FILE_NODE_TYPE, c9 as COMPRESSION_NODE_TYPE, ca as EDIT_IMAGE_NODE_TYPE, cb as FLOWS_CONTROL_SUBCATEGORY, cc as IF_NODE_TYPE, cd as SPLIT_IN_BATCHES_NODE_TYPE, ce as HELPERS_SUBCATEGORY, cf as HTTP_REQUEST_NODE_TYPE, cg as AI_CATEGORY_ROOT_NODES, ch as AI_CODE_NODE_TYPE, ci as CanvasConnectionMode, cj as isValidCanvasConnectionMode, S as STORES, ck as NODE_CREATOR_OPEN_SOURCES, cl as isVueFlowConnection, cm as MOUSE_EVENT_BUTTON, cn as MOUSE_EVENT_BUTTONS, co as KeyboardShortcutTooltip, q as useDocumentTitle, p as useNpsSurveyStore, o as useProjectsStore, N as useExecutionsStore, cp as useExternalSecretsStore, cq as useWorkflowsEEStore, cr as useEnvironmentsStore, u as useUsersStore, d as useTagsStore, cs as getBackgroundStyles, K as MAIN_HEADER_TABS, R as sourceControlEventBus, ct as historyBus, P as PLACEHOLDER_EMPTY_WORKFLOW_ID, cu as WORKFLOW_LM_CHAT_MODAL_KEY, cv as N8nAddInputEndpointType, cw as getFixedNodesList, cx as tryToParseNumber, cy as MoveNodeCommand, I as VALID_WORKFLOW_IMPORT_URL_REGEX, cz as UPDATE_WEBHOOK_ID_NODE_TYPES, cA as getNewNodePosition, cB as DRAG_EVENT_DATA_KEY, cC as MAX_X_TO_PUSH_DOWNSTREAM_NODES, cD as PUSH_NODES_OFFSET, cE as NODE_SIZE, cF as resetConnectionAfterPull, cG as resetConnection, cH as moveBackInputLabelPosition, cI as hideOutputNameLabel, cJ as addConnectionActionsOverlay, cK as getOverlay, cL as OVERLAY_ENDPOINT_ARROW_ID, cM as getConnectorPaintStyleData, cN as AddConnectionCommand, cO as addConnectionTestData, cP as showOrHideItemsLabel, cQ as showOrHideMidpointArrow, cR as isJSPlumbConnection, cS as hideConnectionActions, cT as showConnectionActions, cU as resetInputLabelPosition, cV as getConnectionInfo, cW as showOutputNameLabel, cX as RemoveConnectionCommand, cY as isJSPlumbEndpointElement, cZ as EVENT_PLUS_ENDPOINT_CLICK, c_ as EVENT_ADD_INPUT_ENDPOINT_CLICK, c$ as N8nPlusEndpointType, d0 as usePostHog, d1 as CANVAS_AUTO_ADD_MANUAL_TRIGGER_EXPERIMENT, d2 as MODAL_CANCEL, d3 as addClassesToOverlays, d4 as OVERLAY_RUN_ITEMS_ID, d5 as getJSPlumbEndpoints, d6 as RemoveNodeCommand, d7 as useDataSchema, d8 as getNodeViewTab, d9 as getConnectorLengths, da as isElementIntersection, db as calculateElementIntersection, dc as showDropConnectionState, dd as showPullConnectionState, de as CanvasKey, df as CanvasNodeKey, dg as CanvasNodeRenderType, dh as CanvasNodeHandleKey, di as sanitizeHtml$1, dj as AddNodeCommand, dk as DEFAULT_NODE_SIZE, dl as CONFIGURATION_NODE_SIZE, dm as CONFIGURABLE_NODE_SIZE, dn as NEW_WORKFLOW_ID } from "./index-CPY4xf2i.js";
5
+ import { aD as N8nActionDropdown, _ as _export_sfc, N as NodeConnectionType, a as isVue2, aE as nodeIssuesToString, q as getNodeInputs, p as getConnectionTypes, aF as isSingleExecution, m as deepCopy, aG as isINodePropertyCollectionList, aH as isINodePropertiesList, aI as isINodePropertyOptionsList, au as displayParameter, t as getNodeParameters, aJ as sanitizeHtml, aK as sanitizeHtml_1, j as jsonParse, o as getNodeOutputs, aL as getNodeHints, k as __vitePreload, aw as truncate, f as createEventBus, ay as useDeviceSupport, x as xss, S as SEND_AND_WAIT_OPERATION, aC as FontAwesomeIcon, am as _sfc_main$_, aM as AI_TRANSFORM_NODE_TYPE$1, n as nodeConnectionTypes, aN as generateNodesGraph, ab as isSubNodeType, Z as N8nTooltip } from "./n8n-o-6nV4eX.js";
6
+ import { g as get, s as set, C as unset, e as isEqual, A as isObject$1, x as sortBy, D as camelCase, E as difference } from "./lodash-es-DCRmYdQ5.js";
7
+ import { _ as _sfc_main$Z, R as RunDataAi } from "./RunDataAi-DEKDhaOo.js";
8
+ import { V as VueJsonPretty } from "./vue-json-pretty-DHS8nWi_.js";
9
+ import { m as mapStores, s as storeToRefs, d as defineStore } from "./pinia-BWzoPyXU.js";
10
+ import { F as FileSaver_minExports } from "./file-saver-Dbfm4l4I.js";
11
+ import { c as convertToDisplayDateComponents } from "./dateFormatter-B-oph3V5.js";
12
+ import { u as useWorkflowActivate } from "./useWorkflowActivate-ImhuE4H6.js";
13
+ import { _ as INTERCEPT_BEFORE_DROP, $ as EVENT_CONNECTION, a0 as EVENT_CONNECTION_MOVED, a1 as EVENT_CONNECTION_DETACHED } from "./@jsplumb/core-DLCSr9D4.js";
14
+ import { u as useExecutionDebugging } from "./useExecutionDebugging-DTgWI86M.js";
15
+ import { v as v4 } from "./uuid-DRDfXVM2.js";
16
+ import { n as noCase } from "./change-case-Dux1iW35.js";
17
+ import { u as usePushConnectionStore } from "./pushConnection.store-DSDmSF0s.js";
18
+ import { g as ready$1, f as EVENT_CONNECTION_ABORT, h as EVENT_DRAG_MOVE, a as EVENT_CONNECTION_MOUSEOVER, E as EVENT_CONNECTION_MOUSEOUT, b as EVENT_ENDPOINT_MOUSEOVER, d as EVENT_ENDPOINT_MOUSEOUT, i as EVENT_CONNECTION_DRAG } from "./@jsplumb/browser-ui-D3WTv2iL.js";
19
+ import { u as useBeforeUnload } from "./useBeforeUnload-QdvdNyCn.js";
20
+ import { _ as _sfc_main$$ } from "./@vue-flow/controls-B4bXJQnK.js";
21
+ import { e as getBezierPath, f as getSmoothStepPath, h as Position, i as _sfc_main$d$1, j as _sfc_main$f$1, u as useVueFlow, k as _sfc_main$3$1, P as PanelPosition, M as MarkerType, l as _sfc_main$1$1 } from "./@vue-flow/core-tETEFGtP.js";
22
+ import { _ as _sfc_main$11 } from "./@vue-flow/background-B1J8rodd.js";
23
+ import { _ as _sfc_main$12 } from "./@vue-flow/minimap-CGW7BbeH.js";
24
+ import { _ as _sfc_main$10 } from "./@vue-flow/node-resizer-C7hxX6Ea.js";
24
25
  const position = ref([0, 0]);
25
26
  const isOpen = ref(false);
26
27
  const target = ref();
@@ -41,8 +42,7 @@ const useContextMenu = (onAction = () => {
41
42
  () => sourceControlStore.preferences.branchReadOnly || uiStore.isReadOnlyView || !workflowPermissions.value.update
42
43
  );
43
44
  const targetNodeIds = computed(() => {
44
- if (!isOpen.value || !target.value)
45
- return [];
45
+ if (!isOpen.value || !target.value) return [];
46
46
  const currentTarget = target.value;
47
47
  return currentTarget.source === "canvas" ? currentTarget.nodeIds : [currentTarget.nodeId];
48
48
  });
@@ -55,10 +55,8 @@ const useContextMenu = (onAction = () => {
55
55
  };
56
56
  const canDuplicateNode = (node2) => {
57
57
  const nodeType = nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
58
- if (!nodeType)
59
- return false;
60
- if (NOT_DUPLICATABLE_NODE_TYPES.includes(nodeType.name))
61
- return false;
58
+ if (!nodeType) return false;
59
+ if (NOT_DUPLICATABLE_NODE_TYPES.includes(nodeType.name)) return false;
62
60
  return canAddNodeOfType(nodeType);
63
61
  };
64
62
  const hasPinData = (node2) => {
@@ -570,8 +568,8 @@ const _hoisted_1$p = {
570
568
  key: 0,
571
569
  class: "webhooks"
572
570
  };
573
- const _hoisted_2$j = ["title"];
574
- const _hoisted_3$c = {
571
+ const _hoisted_2$i = ["title"];
572
+ const _hoisted_3$d = {
575
573
  key: 0,
576
574
  class: "node-webhooks"
577
575
  };
@@ -747,10 +745,10 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent({
747
745
  class: "minimize-button minimize-icon"
748
746
  }),
749
747
  createTextVNode(" " + toDisplayString(baseText.value.toggleTitle), 1)
750
- ], 10, _hoisted_2$j),
748
+ ], 10, _hoisted_2$i),
751
749
  createVNode(_component_el_collapse_transition, null, {
752
750
  default: withCtx(() => [
753
- !isMinimized.value ? (openBlock(), createElementBlock("div", _hoisted_3$c, [
751
+ !isMinimized.value ? (openBlock(), createElementBlock("div", _hoisted_3$d, [
754
752
  !isProductionOnly.value ? (openBlock(), createElementBlock("div", _hoisted_4$7, [
755
753
  createVNode(_component_el_row, null, {
756
754
  default: withCtx(() => [
@@ -2765,8 +2763,7 @@ function useScrollLock(element, initialState = false) {
2765
2763
  set(v) {
2766
2764
  if (v)
2767
2765
  lock();
2768
- else
2769
- unlock();
2766
+ else unlock();
2770
2767
  }
2771
2768
  });
2772
2769
  }
@@ -2847,8 +2844,8 @@ const UseWindowSize = /* @__PURE__ */ defineComponent({
2847
2844
  }
2848
2845
  });
2849
2846
  const _hoisted_1$o = ["data-test-id"];
2850
- const _hoisted_2$i = ["textContent"];
2851
- const _hoisted_3$b = ["onClick"];
2847
+ const _hoisted_2$h = ["textContent"];
2848
+ const _hoisted_3$c = ["onClick"];
2852
2849
  const _hoisted_4$6 = ["onClick"];
2853
2850
  const _hoisted_5$7 = ["data-node-name"];
2854
2851
  const _hoisted_6$6 = ["onClick"];
@@ -2931,17 +2928,14 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
2931
2928
  return shouldShowNodeInputIssues.value && (nodeInputIssues.value[connectionType2] ?? []).length > 0;
2932
2929
  }
2933
2930
  function isNodeInputConfiguration(connectionConfig) {
2934
- if (typeof connectionConfig === "string")
2935
- return false;
2931
+ if (typeof connectionConfig === "string") return false;
2936
2932
  return "type" in connectionConfig;
2937
2933
  }
2938
2934
  function getPossibleSubInputConnections() {
2939
- if (!nodeType.value || !props.rootNode)
2940
- return [];
2935
+ if (!nodeType.value || !props.rootNode) return [];
2941
2936
  const inputs2 = getNodeInputs(workflow.value, props.rootNode, nodeType.value);
2942
2937
  const nonMainInputs = inputs2.filter((input) => {
2943
- if (!isNodeInputConfiguration(input))
2944
- return false;
2938
+ if (!isNodeInputConfiguration(input)) return false;
2945
2939
  return input.type !== "main";
2946
2940
  });
2947
2941
  return nonMainInputs;
@@ -3005,7 +2999,7 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
3005
2999
  [_ctx.$style.hasIssues]: hasInputIssues(connection.type)
3006
3000
  }),
3007
3001
  textContent: toDisplayString(`${connection.displayName}${connection.required ? " *" : ""}`)
3008
- }, null, 10, _hoisted_2$i),
3002
+ }, null, 10, _hoisted_2$h),
3009
3003
  createVNode(unref(OnClickOutside), {
3010
3004
  onTrigger: ($event) => expandConnectionGroup(connection.type, false)
3011
3005
  }, {
@@ -3104,7 +3098,7 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
3104
3098
  ], 14, _hoisted_5$7);
3105
3099
  }), 128))
3106
3100
  ], 2)) : createCommentVNode("", true)
3107
- ], 14, _hoisted_3$b)
3101
+ ], 14, _hoisted_3$c)
3108
3102
  ]),
3109
3103
  _: 2
3110
3104
  }, 1032, ["onTrigger"])
@@ -3172,7 +3166,7 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
3172
3166
  const emit = __emit;
3173
3167
  const lastPopupCountUpdate = ref(0);
3174
3168
  const router = useRouter();
3175
- const { runWorkflow, stopCurrentExecution } = useRunWorkflow({ router });
3169
+ const { runWorkflowResolvePending, stopCurrentExecution } = useRunWorkflow({ router });
3176
3170
  const workflowsStore = useWorkflowsStore();
3177
3171
  const externalHooks = useExternalHooks();
3178
3172
  const toast = useToast();
@@ -3252,8 +3246,7 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
3252
3246
  return "";
3253
3247
  });
3254
3248
  const tooltipText = computed(() => {
3255
- if (disabledHint.value)
3256
- return disabledHint.value;
3249
+ if (disabledHint.value) return disabledHint.value;
3257
3250
  if (props.tooltip && !isLoading.value && testStepButtonPopupCount() < MAX_POPUP_COUNT) {
3258
3251
  return props.tooltip;
3259
3252
  }
@@ -3338,7 +3331,7 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
3338
3331
  };
3339
3332
  telemetry.track("User clicked execute node button", telemetryPayload);
3340
3333
  await externalHooks.run("nodeExecuteButton.onClick", telemetryPayload);
3341
- await runWorkflow({
3334
+ await runWorkflowResolvePending({
3342
3335
  destinationNode: props.nodeName,
3343
3336
  source: "RunData.ExecuteNodeButton"
3344
3337
  });
@@ -3381,8 +3374,8 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
3381
3374
  });
3382
3375
  const _withScopeId$5 = (n) => (pushScopeId("data-v-08ca8efa"), n = n(), popScopeId(), n);
3383
3376
  const _hoisted_1$n = { class: "header-side-menu" };
3384
- const _hoisted_2$h = { key: 1 };
3385
- const _hoisted_3$a = {
3377
+ const _hoisted_2$g = { key: 1 };
3378
+ const _hoisted_3$b = {
3386
3379
  key: 0,
3387
3380
  class: "node-is-not-valid"
3388
3381
  };
@@ -3485,8 +3478,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
3485
3478
  return props.executable || props.foreignCredentials.length > 0;
3486
3479
  });
3487
3480
  const nodeTypeVersions = computed(() => {
3488
- if (!node2.value)
3489
- return [];
3481
+ if (!node2.value) return [];
3490
3482
  return nodeTypesStore.getNodeVersions(node2.value.type);
3491
3483
  });
3492
3484
  const latestVersion = computed(() => Math.max(...nodeTypeVersions.value));
@@ -3817,8 +3809,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
3817
3809
  emit("openConnectionNodeCreator", nodeName, connectionType2);
3818
3810
  };
3819
3811
  const populateHiddenIssuesSet = () => {
3820
- if (!node2.value || !workflowsStore.isNodePristine(node2.value.name))
3821
- return;
3812
+ if (!node2.value || !workflowsStore.isNodePristine(node2.value.name)) return;
3822
3813
  hiddenIssuesInputs.value.push("credentials");
3823
3814
  parametersNoneSetting.value.forEach((parameter) => {
3824
3815
  hiddenIssuesInputs.value.push(parameter.name);
@@ -4138,7 +4129,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
4138
4129
  "read-only": isReadOnly.value,
4139
4130
  "onUpdate:modelValue": nameChanged
4140
4131
  }, null, 8, ["model-value", "node-type", "read-only"])) : createCommentVNode("", true),
4141
- isExecutable.value ? (openBlock(), createElementBlock("div", _hoisted_2$h, [
4132
+ isExecutable.value ? (openBlock(), createElementBlock("div", _hoisted_2$g, [
4142
4133
  !_ctx.blockUI && node2.value && nodeValid.value ? (openBlock(), createBlock(_sfc_main$R, {
4143
4134
  key: 0,
4144
4135
  "data-test-id": "node-execute-button",
@@ -4160,7 +4151,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
4160
4151
  "onUpdate:modelValue": onTabSelect
4161
4152
  }, null, 8, ["model-value", "node-type", "push-ref"])) : createCommentVNode("", true)
4162
4153
  ], 2),
4163
- node2.value && !nodeValid.value ? (openBlock(), createElementBlock("div", _hoisted_3$a, [
4154
+ node2.value && !nodeValid.value ? (openBlock(), createElementBlock("div", _hoisted_3$b, [
4164
4155
  createBaseVNode("p", {
4165
4156
  class: normalizeClass(_ctx.$style.warningIcon)
4166
4157
  }, [
@@ -4382,16 +4373,16 @@ const _hoisted_1$m = /* @__PURE__ */ createBaseVNode("div", null, [
4382
4373
  /* @__PURE__ */ createBaseVNode("div"),
4383
4374
  /* @__PURE__ */ createBaseVNode("div")
4384
4375
  ], -1);
4385
- const _hoisted_2$g = /* @__PURE__ */ createBaseVNode("div", null, [
4376
+ const _hoisted_2$f = /* @__PURE__ */ createBaseVNode("div", null, [
4386
4377
  /* @__PURE__ */ createBaseVNode("div"),
4387
4378
  /* @__PURE__ */ createBaseVNode("div"),
4388
4379
  /* @__PURE__ */ createBaseVNode("div"),
4389
4380
  /* @__PURE__ */ createBaseVNode("div"),
4390
4381
  /* @__PURE__ */ createBaseVNode("div")
4391
4382
  ], -1);
4392
- const _hoisted_3$9 = [
4383
+ const _hoisted_3$a = [
4393
4384
  _hoisted_1$m,
4394
- _hoisted_2$g
4385
+ _hoisted_2$f
4395
4386
  ];
4396
4387
  function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
4397
4388
  const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
@@ -4421,7 +4412,7 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
4421
4412
  ], 2)) : createCommentVNode("", true),
4422
4413
  createBaseVNode("div", {
4423
4414
  class: normalizeClass(_ctx.$style.grid)
4424
- }, _hoisted_3$9, 2)
4415
+ }, _hoisted_3$a, 2)
4425
4416
  ], 2)
4426
4417
  ]),
4427
4418
  _: 1
@@ -4663,12 +4654,9 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
4663
4654
  setPositions(mainPanelDimensions.value.relativeLeft);
4664
4655
  });
4665
4656
  const currentNodePaneType = computed(() => {
4666
- if (!hasInputSlot.value)
4667
- return "inputless";
4668
- if (!props.isDraggable)
4669
- return "dragless";
4670
- if (props.nodeType === null)
4671
- return "unknown";
4657
+ if (!hasInputSlot.value) return "inputless";
4658
+ if (!props.isDraggable) return "dragless";
4659
+ if (props.nodeType === null) return "unknown";
4672
4660
  return props.nodeType.parameterPane ?? "regular";
4673
4661
  });
4674
4662
  const mainPanelDimensions = computed(
@@ -4694,8 +4682,7 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
4694
4682
  });
4695
4683
  const supportedResizeDirections = computed(() => {
4696
4684
  const supportedDirections = ["right"];
4697
- if (props.isDraggable)
4698
- supportedDirections.push("left");
4685
+ if (props.isDraggable) supportedDirections.push("left");
4699
4686
  return supportedDirections;
4700
4687
  });
4701
4688
  const hasInputSlot = computed(() => {
@@ -4703,15 +4690,12 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
4703
4690
  });
4704
4691
  const inputPanelMargin = computed(() => pxToRelativeWidth(SIDE_PANELS_MARGIN));
4705
4692
  const minimumLeftPosition = computed(() => {
4706
- if (containerWidth.value < MIN_WINDOW_WIDTH)
4707
- return pxToRelativeWidth(1);
4708
- if (!hasInputSlot.value)
4709
- return pxToRelativeWidth(SIDE_MARGIN);
4693
+ if (containerWidth.value < MIN_WINDOW_WIDTH) return pxToRelativeWidth(1);
4694
+ if (!hasInputSlot.value) return pxToRelativeWidth(SIDE_MARGIN);
4710
4695
  return pxToRelativeWidth(SIDE_MARGIN + 20) + inputPanelMargin.value;
4711
4696
  });
4712
4697
  const maximumRightPosition = computed(() => {
4713
- if (containerWidth.value < MIN_WINDOW_WIDTH)
4714
- return pxToRelativeWidth(1);
4698
+ if (containerWidth.value < MIN_WINDOW_WIDTH) return pxToRelativeWidth(1);
4715
4699
  return pxToRelativeWidth(SIDE_MARGIN + 20) + inputPanelMargin.value;
4716
4700
  });
4717
4701
  const canMoveLeft = computed(() => {
@@ -4822,12 +4806,9 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
4822
4806
  function onResize({ direction, x, width }) {
4823
4807
  const relativeDistance = pxToRelativeWidth(x);
4824
4808
  const relativeWidth = pxToRelativeWidth(width);
4825
- if (direction === "left" && relativeDistance <= minimumLeftPosition.value)
4826
- return;
4827
- if (direction === "right" && 1 - relativeDistance <= maximumRightPosition.value)
4828
- return;
4829
- if (width <= MIN_PANEL_WIDTH)
4830
- return;
4809
+ if (direction === "left" && relativeDistance <= minimumLeftPosition.value) return;
4810
+ if (direction === "right" && 1 - relativeDistance <= maximumRightPosition.value) return;
4811
+ if (width <= MIN_PANEL_WIDTH) return;
4831
4812
  setMainPanelWidth(relativeWidth);
4832
4813
  setPositions(direction === "left" ? relativeDistance : mainPanelDimensions.value.relativeLeft);
4833
4814
  }
@@ -4953,8 +4934,8 @@ const cssModules$w = {
4953
4934
  };
4954
4935
  const NDVDraggablePanels = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__cssModules", cssModules$w]]);
4955
4936
  const _hoisted_1$k = { key: 0 };
4956
- const _hoisted_2$f = { key: 1 };
4957
- const _hoisted_3$8 = { key: 2 };
4937
+ const _hoisted_2$e = { key: 1 };
4938
+ const _hoisted_3$9 = { key: 2 };
4958
4939
  const _sfc_main$M = /* @__PURE__ */ defineComponent({
4959
4940
  __name: "RunDataPinButton",
4960
4941
  props: {
@@ -4981,7 +4962,7 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
4981
4962
  visible: visible2.value
4982
4963
  }, {
4983
4964
  content: withCtx(() => [
4984
- props.tooltipContentsVisibility.binaryDataTooltipContent ? (openBlock(), createElementBlock("div", _hoisted_1$k, toDisplayString(unref(locale).baseText("ndv.pinData.pin.binary")), 1)) : props.tooltipContentsVisibility.pinDataDiscoveryTooltipContent ? (openBlock(), createElementBlock("div", _hoisted_2$f, toDisplayString(unref(locale).baseText("node.discovery.pinData.ndv")), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$8, [
4965
+ props.tooltipContentsVisibility.binaryDataTooltipContent ? (openBlock(), createElementBlock("div", _hoisted_1$k, toDisplayString(unref(locale).baseText("ndv.pinData.pin.binary")), 1)) : props.tooltipContentsVisibility.pinDataDiscoveryTooltipContent ? (openBlock(), createElementBlock("div", _hoisted_2$e, toDisplayString(unref(locale).baseText("node.discovery.pinData.ndv")), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$9, [
4985
4966
  createBaseVNode("strong", null, toDisplayString(unref(locale).baseText("ndv.pinData.pin.title")), 1),
4986
4967
  createVNode(_component_n8n_text, {
4987
4968
  size: "small",
@@ -5067,8 +5048,8 @@ const RunDataHtml$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defin
5067
5048
  default: RunDataHtml
5068
5049
  }, Symbol.toStringTag, { value: "Module" }));
5069
5050
  const _hoisted_1$i = { key: 0 };
5070
- const _hoisted_2$e = { key: 1 };
5071
- const _hoisted_3$7 = { key: 2 };
5051
+ const _hoisted_2$d = { key: 1 };
5052
+ const _hoisted_3$8 = { key: 2 };
5072
5053
  const _hoisted_4$4 = {
5073
5054
  key: 0,
5074
5055
  controls: "",
@@ -5125,7 +5106,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
5125
5106
  });
5126
5107
  return (_ctx, _cache) => {
5127
5108
  return openBlock(), createElementBlock("span", null, [
5128
- isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1$i, "Loading binary data...")) : error2.value ? (openBlock(), createElementBlock("div", _hoisted_2$e, "Error loading binary data")) : (openBlock(), createElementBlock("span", _hoisted_3$7, [
5109
+ isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1$i, "Loading binary data...")) : error2.value ? (openBlock(), createElementBlock("div", _hoisted_2$d, "Error loading binary data")) : (openBlock(), createElementBlock("span", _hoisted_3$8, [
5129
5110
  _ctx.binaryData.fileType === "video" ? (openBlock(), createElementBlock("video", _hoisted_4$4, [
5130
5111
  createBaseVNode("source", {
5131
5112
  src: embedSource.value,
@@ -5160,7 +5141,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
5160
5141
  }
5161
5142
  });
5162
5143
  const _hoisted_1$h = { class: "binary-data-window-wrapper" };
5163
- const _hoisted_2$d = { key: 0 };
5144
+ const _hoisted_2$c = { key: 0 };
5164
5145
  const _sfc_main$J = /* @__PURE__ */ defineComponent({
5165
5146
  __name: "BinaryDataDisplay",
5166
5147
  props: {
@@ -5220,7 +5201,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
5220
5201
  onClick: withModifiers(closeWindow, ["stop"])
5221
5202
  }, null, 8, ["title", "label"]),
5222
5203
  createBaseVNode("div", _hoisted_1$h, [
5223
- !binaryData.value ? (openBlock(), createElementBlock("div", _hoisted_2$d, toDisplayString(_ctx.$locale.baseText("binaryDataDisplay.noDataFoundToDisplay")), 1)) : (openBlock(), createBlock(_sfc_main$K, {
5204
+ !binaryData.value ? (openBlock(), createElementBlock("div", _hoisted_2$c, toDisplayString(_ctx.$locale.baseText("binaryDataDisplay.noDataFoundToDisplay")), 1)) : (openBlock(), createBlock(_sfc_main$K, {
5224
5205
  key: 1,
5225
5206
  "binary-data": binaryData.value
5226
5207
  }, null, 8, ["binary-data"]))
@@ -5230,19 +5211,19 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
5230
5211
  }
5231
5212
  });
5232
5213
  const LazyRunDataTable = defineAsyncComponent(
5233
- async () => await __vitePreload(() => import("./RunDataTable-Cn6nzmGa.js"), true ? __vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]) : void 0)
5214
+ async () => await __vitePreload(() => import("./RunDataTable-BaqMokFl.js"), true ? __vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]) : void 0)
5234
5215
  );
5235
5216
  const LazyRunDataJson = defineAsyncComponent(
5236
- async () => await __vitePreload(() => import("./RunDataJson-Dc-zyTVL.js"), true ? __vite__mapDeps([35,4,5,6,7,2,8,9,10,11,36,1,3,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,37]) : void 0)
5217
+ async () => await __vitePreload(() => import("./RunDataJson--CgJB7Jk.js"), true ? __vite__mapDeps([35,4,5,6,7,2,8,9,10,11,36,1,3,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,37]) : void 0)
5237
5218
  );
5238
5219
  const LazyRunDataSchema = defineAsyncComponent(
5239
- async () => await __vitePreload(() => import("./index-Cpj7dgjR.js").then((n) => n.eN), true ? __vite__mapDeps([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]) : void 0)
5220
+ async () => await __vitePreload(() => import("./index-CPY4xf2i.js").then((n) => n.eT), true ? __vite__mapDeps([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]) : void 0)
5240
5221
  );
5241
5222
  const LazyRunDataHtml = defineAsyncComponent(
5242
5223
  async () => await __vitePreload(() => Promise.resolve().then(() => RunDataHtml$1), true ? void 0 : void 0)
5243
5224
  );
5244
5225
  const LazyRunDataSearch = defineAsyncComponent(
5245
- async () => await __vitePreload(() => import("./RunDataSearch-DKdf85VL.js"), true ? __vite__mapDeps([38,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,39]) : void 0)
5226
+ async () => await __vitePreload(() => import("./RunDataSearch-CdIlaJ49.js"), true ? __vite__mapDeps([38,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,39]) : void 0)
5246
5227
  );
5247
5228
  const _sfc_main$I = defineComponent({
5248
5229
  name: "RunData",
@@ -5375,6 +5356,10 @@ const _sfc_main$I = defineComponent({
5375
5356
  var _a, _b;
5376
5357
  return ((_b = (_a = this.$route) == null ? void 0 : _a.meta) == null ? void 0 : _b.readOnlyCanvas) === true;
5377
5358
  },
5359
+ isWaitNodeWaiting() {
5360
+ var _a, _b, _c, _d, _e, _f;
5361
+ return ((_a = this.workflowExecution) == null ? void 0 : _a.status) === "waiting" && ((_b = this.workflowExecution.data) == null ? void 0 : _b.waitTill) && ((_e = (_d = (_c = this.workflowExecution) == null ? void 0 : _c.data) == null ? void 0 : _d.resultData) == null ? void 0 : _e.lastNodeExecuted) === ((_f = this.node) == null ? void 0 : _f.name);
5362
+ },
5378
5363
  activeNode() {
5379
5364
  return this.ndvStore.activeNode;
5380
5365
  },
@@ -5396,8 +5381,8 @@ const _sfc_main$I = defineComponent({
5396
5381
  isSchemaView() {
5397
5382
  return this.displayMode === "schema";
5398
5383
  },
5399
- isInputSchemaView() {
5400
- return this.isSchemaView && this.paneType === "input";
5384
+ displaysMultipleNodes() {
5385
+ return this.isSchemaView && this.paneType === "input" && this.nodes.length > 0;
5401
5386
  },
5402
5387
  isTriggerNode() {
5403
5388
  if (this.node === null) {
@@ -5469,8 +5454,7 @@ const _sfc_main$I = defineComponent({
5469
5454
  var _a, _b, _c;
5470
5455
  if (this.hasNodeRun) {
5471
5456
  const hints = this.node && ((_c = (_b = (_a = this.workflowRunData) == null ? void 0 : _a[this.node.name]) == null ? void 0 : _b[this.runIndex]) == null ? void 0 : _c.hints);
5472
- if (hints)
5473
- return hints;
5457
+ if (hints) return hints;
5474
5458
  }
5475
5459
  return [];
5476
5460
  },
@@ -5619,12 +5603,9 @@ const _sfc_main$I = defineComponent({
5619
5603
  return this.hasNodeRun && !this.hasRunError && this.unfilteredInputData.length > 0;
5620
5604
  },
5621
5605
  inputSelectLocation() {
5622
- if (this.isSchemaView)
5623
- return "none";
5624
- if (!this.hasNodeRun)
5625
- return "header";
5626
- if (this.maxRunIndex > 0)
5627
- return "runs";
5606
+ if (this.isSchemaView) return "none";
5607
+ if (!this.hasNodeRun) return "header";
5608
+ if (this.maxRunIndex > 0) return "runs";
5628
5609
  if (this.maxOutputIndex > 0 && this.branches.length > 1) {
5629
5610
  return "outputs";
5630
5611
  }
@@ -5656,13 +5637,11 @@ const _sfc_main$I = defineComponent({
5656
5637
  },
5657
5638
  watch: {
5658
5639
  node(newNode, prevNode) {
5659
- if ((newNode == null ? void 0 : newNode.id) === (prevNode == null ? void 0 : prevNode.id))
5660
- return;
5640
+ if ((newNode == null ? void 0 : newNode.id) === (prevNode == null ? void 0 : prevNode.id)) return;
5661
5641
  this.init();
5662
5642
  },
5663
5643
  hasNodeRun() {
5664
- if (this.paneType === "output")
5665
- this.setDisplayMode();
5644
+ if (this.paneType === "output") this.setDisplayMode();
5666
5645
  },
5667
5646
  inputDataPage: {
5668
5647
  handler(data) {
@@ -5677,8 +5656,7 @@ const _sfc_main$I = defineComponent({
5677
5656
  deep: true
5678
5657
  },
5679
5658
  jsonData(data, prevData) {
5680
- if (isEqual(data, prevData))
5681
- return;
5659
+ if (isEqual(data, prevData)) return;
5682
5660
  this.refreshDataSize();
5683
5661
  if (this.dataCount) {
5684
5662
  this.resetCurrentPageIfTooFar();
@@ -6013,8 +5991,7 @@ const _sfc_main$I = defineComponent({
6013
5991
  onDisplayModeChange(displayMode) {
6014
5992
  const previous = this.displayMode;
6015
5993
  this.ndvStore.setPanelDisplayMode({ pane: this.paneType, mode: displayMode });
6016
- if (!this.userEnabledShowData)
6017
- this.updateShowData();
5994
+ if (!this.userEnabledShowData) this.updateShowData();
6018
5995
  const dataContainerRef = this.$refs.dataContainer;
6019
5996
  if (dataContainerRef) {
6020
5997
  const dataDisplay2 = dataContainerRef.children[0];
@@ -6209,8 +6186,7 @@ const _sfc_main$I = defineComponent({
6209
6186
  }
6210
6187
  },
6211
6188
  setDisplayMode() {
6212
- if (!this.activeNode)
6213
- return;
6189
+ if (!this.activeNode) return;
6214
6190
  const shouldDisplayHtml = this.activeNode.type === HTML_NODE_TYPE && this.activeNode.parameters.operation === "generateHtmlTemplate";
6215
6191
  if (shouldDisplayHtml) {
6216
6192
  this.ndvStore.setPanelDisplayMode({
@@ -6305,13 +6281,13 @@ const style0$s = {
6305
6281
  hintCallout,
6306
6282
  schema
6307
6283
  };
6308
- const _withScopeId$4 = (n) => (pushScopeId("data-v-6f0c34d1"), n = n(), popScopeId(), n);
6284
+ const _withScopeId$4 = (n) => (pushScopeId("data-v-1bcc9c5b"), n = n(), popScopeId(), n);
6309
6285
  const _hoisted_1$g = {
6310
6286
  key: 0,
6311
6287
  class: "ml-4xs"
6312
6288
  };
6313
- const _hoisted_2$c = { key: 1 };
6314
- const _hoisted_3$6 = { key: 0 };
6289
+ const _hoisted_2$b = { key: 1 };
6290
+ const _hoisted_3$7 = { key: 0 };
6315
6291
  const _hoisted_4$3 = ["data-test-id"];
6316
6292
  const _hoisted_5$4 = { key: 0 };
6317
6293
  const _hoisted_6$3 = { key: 1 };
@@ -6481,7 +6457,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6481
6457
  }, [
6482
6458
  renderSlot(_ctx.$slots, "input-select", {}, void 0, true)
6483
6459
  ], 2)) : createCommentVNode("", true),
6484
- _ctx.maxRunIndex > 0 && !_ctx.isInputSchemaView ? withDirectives((openBlock(), createElementBlock("div", {
6460
+ _ctx.maxRunIndex > 0 && !_ctx.displaysMultipleNodes ? withDirectives((openBlock(), createElementBlock("div", {
6485
6461
  key: 3,
6486
6462
  class: normalizeClass(_ctx.$style.runSelector)
6487
6463
  }, [
@@ -6534,7 +6510,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6534
6510
  ], 2)), [
6535
6511
  [vShow, !_ctx.editMode.enabled]
6536
6512
  ]) : createCommentVNode("", true),
6537
- !_ctx.isInputSchemaView ? renderSlot(_ctx.$slots, "before-data", { key: 4 }, void 0, true) : createCommentVNode("", true),
6513
+ !_ctx.displaysMultipleNodes ? renderSlot(_ctx.$slots, "before-data", { key: 4 }, void 0, true) : createCommentVNode("", true),
6538
6514
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.getNodeHints(), (hint) => {
6539
6515
  return openBlock(), createBlock(_component_n8n_callout, {
6540
6516
  key: hint.message,
@@ -6549,7 +6525,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6549
6525
  _: 2
6550
6526
  }, 1032, ["class", "theme"]);
6551
6527
  }), 128)),
6552
- _ctx.maxOutputIndex > 0 && _ctx.branches.length > 1 && !_ctx.isInputSchemaView ? (openBlock(), createElementBlock("div", {
6528
+ _ctx.maxOutputIndex > 0 && _ctx.branches.length > 1 && !_ctx.displaysMultipleNodes ? (openBlock(), createElementBlock("div", {
6553
6529
  key: 5,
6554
6530
  class: normalizeClass(_ctx.$style.outputs),
6555
6531
  "data-test-id": "branches"
@@ -6564,7 +6540,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6564
6540
  "onUpdate:modelValue": _ctx.onBranchChange
6565
6541
  }, null, 8, ["model-value", "options", "onUpdate:modelValue"])
6566
6542
  ], 2)
6567
- ], 2)) : !_ctx.hasRunError && _ctx.hasNodeRun && (_ctx.dataCount > 0 && _ctx.maxRunIndex === 0 || _ctx.search) && !_ctx.isArtificialRecoveredEventItem && !_ctx.isInputSchemaView ? withDirectives((openBlock(), createElementBlock("div", {
6543
+ ], 2)) : !_ctx.hasRunError && _ctx.hasNodeRun && (_ctx.dataCount > 0 && _ctx.maxRunIndex === 0 || _ctx.search) && !_ctx.isArtificialRecoveredEventItem && !_ctx.displaysMultipleNodes ? withDirectives((openBlock(), createElementBlock("div", {
6568
6544
  key: 6,
6569
6545
  class: normalizeClass([_ctx.$style.itemsCount, { [_ctx.$style.muted]: _ctx.paneType === "input" && _ctx.maxRunIndex === 0 }]),
6570
6546
  "data-test-id": "ndv-items-count"
@@ -6660,14 +6636,21 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6660
6636
  error: _ctx.subworkflowExecutionError,
6661
6637
  class: normalizeClass(_ctx.$style.errorDisplay)
6662
6638
  }, null, 8, ["error", "class"])
6663
- ], 2)) : !_ctx.hasNodeRun && !(_ctx.isInputSchemaView && ((_e = _ctx.node) == null ? void 0 : _e.disabled)) ? (openBlock(), createElementBlock("div", {
6639
+ ], 2)) : _ctx.isWaitNodeWaiting ? (openBlock(), createElementBlock("div", {
6664
6640
  key: 3,
6665
6641
  class: normalizeClass(_ctx.$style.center)
6666
6642
  }, [
6667
- renderSlot(_ctx.$slots, "node-not-run", {}, void 0, true)
6668
- ], 2)) : _ctx.paneType === "input" && !_ctx.isInputSchemaView && ((_f = _ctx.node) == null ? void 0 : _f.disabled) ? (openBlock(), createElementBlock("div", {
6643
+ renderSlot(_ctx.$slots, "node-waiting", {}, () => [
6644
+ createTextVNode("xxx")
6645
+ ], true)
6646
+ ], 2)) : !_ctx.hasNodeRun && !(_ctx.displaysMultipleNodes && ((_e = _ctx.node) == null ? void 0 : _e.disabled)) ? (openBlock(), createElementBlock("div", {
6669
6647
  key: 4,
6670
6648
  class: normalizeClass(_ctx.$style.center)
6649
+ }, [
6650
+ renderSlot(_ctx.$slots, "node-not-run", {}, void 0, true)
6651
+ ], 2)) : _ctx.paneType === "input" && !_ctx.displaysMultipleNodes && ((_f = _ctx.node) == null ? void 0 : _f.disabled) ? (openBlock(), createElementBlock("div", {
6652
+ key: 5,
6653
+ class: normalizeClass(_ctx.$style.center)
6671
6654
  }, [
6672
6655
  createVNode(_component_n8n_text, null, {
6673
6656
  default: withCtx(() => [
@@ -6682,12 +6665,12 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6682
6665
  _: 1
6683
6666
  })
6684
6667
  ], 2)) : _ctx.hasNodeRun && _ctx.isArtificialRecoveredEventItem ? (openBlock(), createElementBlock("div", {
6685
- key: 5,
6668
+ key: 6,
6686
6669
  class: normalizeClass(_ctx.$style.center)
6687
6670
  }, [
6688
6671
  renderSlot(_ctx.$slots, "recovered-artificial-output-data", {}, void 0, true)
6689
6672
  ], 2)) : _ctx.hasNodeRun && _ctx.hasRunError ? (openBlock(), createElementBlock("div", {
6690
- key: 6,
6673
+ key: 7,
6691
6674
  class: normalizeClass(_ctx.$style.stretchVertically)
6692
6675
  }, [
6693
6676
  _ctx.isPaneTypeInput ? (openBlock(), createBlock(_component_n8n_text, {
@@ -6706,7 +6689,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6706
6689
  ];
6707
6690
  }),
6708
6691
  _: 1
6709
- }, 8, ["class"])) : _ctx.$slots["content"] ? (openBlock(), createElementBlock("div", _hoisted_2$c, [
6692
+ }, 8, ["class"])) : _ctx.$slots["content"] ? (openBlock(), createElementBlock("div", _hoisted_2$b, [
6710
6693
  _ctx.workflowRunErrorAsNodeError ? (openBlock(), createBlock(_component_NodeErrorView, {
6711
6694
  key: 0,
6712
6695
  error: _ctx.workflowRunErrorAsNodeError,
@@ -6720,10 +6703,10 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6720
6703
  class: normalizeClass(_ctx.$style.dataDisplay)
6721
6704
  }, null, 8, ["error", "class"])) : createCommentVNode("", true)
6722
6705
  ], 2)) : _ctx.hasNodeRun && (!_ctx.unfilteredDataCount || _ctx.search && !_ctx.dataCount) && _ctx.branches.length > 1 ? (openBlock(), createElementBlock("div", {
6723
- key: 7,
6706
+ key: 8,
6724
6707
  class: normalizeClass(_ctx.$style.center)
6725
6708
  }, [
6726
- _ctx.search ? (openBlock(), createElementBlock("div", _hoisted_3$6, [
6709
+ _ctx.search ? (openBlock(), createElementBlock("div", _hoisted_3$7, [
6727
6710
  createVNode(_component_n8n_text, {
6728
6711
  tag: "h3",
6729
6712
  size: "large"
@@ -6757,14 +6740,14 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6757
6740
  _: 1
6758
6741
  }))
6759
6742
  ], 2)) : _ctx.hasNodeRun && !_ctx.inputData.length && !_ctx.search ? (openBlock(), createElementBlock("div", {
6760
- key: 8,
6743
+ key: 9,
6761
6744
  class: normalizeClass(_ctx.$style.center)
6762
6745
  }, [
6763
6746
  renderSlot(_ctx.$slots, "no-output-data", {}, () => [
6764
6747
  createTextVNode("xxx")
6765
6748
  ], true)
6766
6749
  ], 2)) : _ctx.hasNodeRun && !_ctx.showData ? (openBlock(), createElementBlock("div", {
6767
- key: 9,
6750
+ key: 10,
6768
6751
  class: normalizeClass(_ctx.$style.center)
6769
6752
  }, [
6770
6753
  createVNode(_component_n8n_text, {
@@ -6803,8 +6786,8 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6803
6786
  label: _ctx.$locale.baseText("runData.downloadBinaryData"),
6804
6787
  onClick: _cache[8] || (_cache[8] = ($event) => _ctx.downloadJsonData())
6805
6788
  }, null, 8, ["label"])
6806
- ], 2)) : _ctx.hasNodeRun && _ctx.$slots["content"] ? renderSlot(_ctx.$slots, "content", { key: 10 }, void 0, true) : _ctx.hasNodeRun && _ctx.displayMode === "table" && _ctx.binaryData.length > 0 && _ctx.inputData.length === 1 && Object.keys(_ctx.jsonData[0] || {}).length === 0 ? (openBlock(), createElementBlock("div", {
6807
- key: 11,
6789
+ ], 2)) : _ctx.hasNodeRun && _ctx.$slots["content"] ? renderSlot(_ctx.$slots, "content", { key: 11 }, void 0, true) : _ctx.hasNodeRun && _ctx.displayMode === "table" && _ctx.binaryData.length > 0 && _ctx.inputData.length === 1 && Object.keys(_ctx.jsonData[0] || {}).length === 0 ? (openBlock(), createElementBlock("div", {
6790
+ key: 12,
6808
6791
  class: normalizeClass(_ctx.$style.center)
6809
6792
  }, [
6810
6793
  createVNode(_component_n8n_text, null, {
@@ -6817,7 +6800,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6817
6800
  _: 1
6818
6801
  })
6819
6802
  ], 2)) : _ctx.showIoSearchNoMatchContent ? (openBlock(), createElementBlock("div", {
6820
- key: 12,
6803
+ key: 13,
6821
6804
  class: normalizeClass(_ctx.$style.center)
6822
6805
  }, [
6823
6806
  createVNode(_component_n8n_text, {
@@ -6846,7 +6829,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6846
6829
  ]),
6847
6830
  _: 1
6848
6831
  })
6849
- ], 2)) : _ctx.hasNodeRun && _ctx.displayMode === "table" && _ctx.node ? (openBlock(), createBlock(Suspense, { key: 13 }, {
6832
+ ], 2)) : _ctx.hasNodeRun && _ctx.displayMode === "table" && _ctx.node ? (openBlock(), createBlock(Suspense, { key: 14 }, {
6850
6833
  default: withCtx(() => [
6851
6834
  createVNode(_component_LazyRunDataTable, {
6852
6835
  node: _ctx.node,
@@ -6864,7 +6847,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6864
6847
  }, null, 8, ["node", "input-data", "mapping-enabled", "distance-from-active", "run-index", "page-offset", "total-runs", "has-default-hover-state", "search", "onActiveRowChanged", "onDisplayModeChange"])
6865
6848
  ]),
6866
6849
  _: 1
6867
- })) : _ctx.hasNodeRun && _ctx.displayMode === "json" && _ctx.node ? (openBlock(), createBlock(Suspense, { key: 14 }, {
6850
+ })) : _ctx.hasNodeRun && _ctx.displayMode === "json" && _ctx.node ? (openBlock(), createBlock(Suspense, { key: 15 }, {
6868
6851
  default: withCtx(() => [
6869
6852
  createVNode(_component_LazyRunDataJson, {
6870
6853
  "pane-type": _ctx.paneType,
@@ -6880,12 +6863,12 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6880
6863
  }, null, 8, ["pane-type", "edit-mode", "push-ref", "node", "input-data", "mapping-enabled", "distance-from-active", "run-index", "total-runs", "search"])
6881
6864
  ]),
6882
6865
  _: 1
6883
- })) : _ctx.hasNodeRun && _ctx.isPaneTypeOutput && _ctx.displayMode === "html" ? (openBlock(), createBlock(Suspense, { key: 15 }, {
6866
+ })) : _ctx.hasNodeRun && _ctx.isPaneTypeOutput && _ctx.displayMode === "html" ? (openBlock(), createBlock(Suspense, { key: 16 }, {
6884
6867
  default: withCtx(() => [
6885
6868
  createVNode(_component_LazyRunDataHtml, { "input-html": _ctx.inputHtml }, null, 8, ["input-html"])
6886
6869
  ]),
6887
6870
  _: 1
6888
- })) : _ctx.hasNodeRun && _ctx.isSchemaView ? (openBlock(), createBlock(Suspense, { key: 16 }, {
6871
+ })) : _ctx.hasNodeRun && _ctx.isSchemaView ? (openBlock(), createBlock(Suspense, { key: 17 }, {
6889
6872
  default: withCtx(() => [
6890
6873
  createVNode(_component_LazyRunDataSchema, {
6891
6874
  nodes: _ctx.nodes,
@@ -6904,7 +6887,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6904
6887
  ]),
6905
6888
  _: 1
6906
6889
  })) : _ctx.displayMode === "binary" && _ctx.binaryData.length === 0 ? (openBlock(), createElementBlock("div", {
6907
- key: 17,
6890
+ key: 18,
6908
6891
  class: normalizeClass(_ctx.$style.center)
6909
6892
  }, [
6910
6893
  createVNode(_component_n8n_text, {
@@ -6917,7 +6900,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6917
6900
  _: 1
6918
6901
  })
6919
6902
  ], 2)) : _ctx.displayMode === "binary" ? (openBlock(), createElementBlock("div", {
6920
- key: 18,
6903
+ key: 19,
6921
6904
  class: normalizeClass(_ctx.$style.dataDisplay)
6922
6905
  }, [
6923
6906
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.binaryData, (binaryDataEntry, index) => {
@@ -7104,9 +7087,9 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
7104
7087
  const cssModules$u = {
7105
7088
  "$style": style0$s
7106
7089
  };
7107
- const __unplugin_components_3 = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["render", _sfc_render$5], ["__cssModules", cssModules$u], ["__scopeId", "data-v-6f0c34d1"]]);
7090
+ const __unplugin_components_3 = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["render", _sfc_render$5], ["__cssModules", cssModules$u], ["__scopeId", "data-v-1bcc9c5b"]]);
7108
7091
  const _hoisted_1$f = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
7109
- const _hoisted_2$b = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
7092
+ const _hoisted_2$a = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
7110
7093
  const _sfc_main$H = /* @__PURE__ */ defineComponent({
7111
7094
  __name: "RunInfo",
7112
7095
  props: {
@@ -7188,7 +7171,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
7188
7171
  _: 1
7189
7172
  }),
7190
7173
  createTextVNode(" " + toDisplayString(runMetadata.value.startTime), 1),
7191
- _hoisted_2$b,
7174
+ _hoisted_2$a,
7192
7175
  createVNode(_component_n8n_text, {
7193
7176
  bold: true,
7194
7177
  size: "small"
@@ -7272,7 +7255,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7272
7255
  const isNodeRunning = computed(() => {
7273
7256
  return !!node2.value && workflowsStore.isNodeExecuting(node2.value.name);
7274
7257
  });
7275
- const workflowRunning2 = computed(() => {
7258
+ const workflowRunning = computed(() => {
7276
7259
  return uiStore.isActionActive["workflowRunning"];
7277
7260
  });
7278
7261
  const workflowExecution = computed(() => {
@@ -7290,8 +7273,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7290
7273
  return executionData.resultData.runData;
7291
7274
  });
7292
7275
  const hasNodeRun = computed(() => {
7293
- if (workflowsStore.subWorkflowExecutionError)
7294
- return true;
7276
+ if (workflowsStore.subWorkflowExecutionError) return true;
7295
7277
  return Boolean(
7296
7278
  node2.value && workflowRunData.value && workflowRunData.value.hasOwnProperty(node2.value.name)
7297
7279
  );
@@ -7341,8 +7323,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7341
7323
  });
7342
7324
  const insertTestData = () => {
7343
7325
  var _a;
7344
- if (!runDataRef.value)
7345
- return;
7326
+ if (!runDataRef.value) return;
7346
7327
  runDataRef.value.enterEditMode({
7347
7328
  origin: "insertTestDataLink"
7348
7329
  });
@@ -7395,6 +7376,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7395
7376
  return (_ctx, _cache) => {
7396
7377
  const _component_n8n_radio_buttons = resolveComponent("n8n-radio-buttons");
7397
7378
  const _component_n8n_text = resolveComponent("n8n-text");
7379
+ const _directive_n8n_html = resolveDirective("n8n-html");
7398
7380
  return openBlock(), createBlock(__unplugin_components_3, {
7399
7381
  ref_key: "runDataRef",
7400
7382
  ref: runDataRef,
@@ -7449,7 +7431,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7449
7431
  ], 2)
7450
7432
  ]),
7451
7433
  "node-not-run": withCtx(() => [
7452
- workflowRunning2.value && !isTriggerNode.value ? (openBlock(), createBlock(_component_n8n_text, {
7434
+ workflowRunning.value && !isTriggerNode.value ? (openBlock(), createBlock(_component_n8n_text, {
7453
7435
  key: 0,
7454
7436
  "data-test-id": "ndv-output-waiting"
7455
7437
  }, {
@@ -7458,7 +7440,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7458
7440
  ]),
7459
7441
  _: 1
7460
7442
  })) : createCommentVNode("", true),
7461
- !workflowRunning2.value ? (openBlock(), createBlock(_component_n8n_text, {
7443
+ !workflowRunning.value ? (openBlock(), createBlock(_component_n8n_text, {
7462
7444
  key: 1,
7463
7445
  "data-test-id": "ndv-output-run-node-hint"
7464
7446
  }, {
@@ -7489,6 +7471,21 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7489
7471
  _: 1
7490
7472
  })) : createCommentVNode("", true)
7491
7473
  ]),
7474
+ "node-waiting": withCtx(() => [
7475
+ createVNode(_component_n8n_text, {
7476
+ bold: true,
7477
+ color: "text-dark",
7478
+ size: "large"
7479
+ }, {
7480
+ default: withCtx(() => [
7481
+ createTextVNode("Waiting for input")
7482
+ ]),
7483
+ _: 1
7484
+ }),
7485
+ withDirectives(createVNode(_component_n8n_text, null, null, 512), [
7486
+ [_directive_n8n_html, unref(waitingNodeTooltip)()]
7487
+ ])
7488
+ ]),
7492
7489
  "no-output-data": withCtx(() => [
7493
7490
  createVNode(_component_n8n_text, {
7494
7491
  bold: true,
@@ -7580,9 +7577,9 @@ const _hoisted_1$d = {
7580
7577
  xmlns: "http://www.w3.org/2000/svg",
7581
7578
  "xmlns:xlink": "http://www.w3.org/1999/xlink"
7582
7579
  };
7583
- const _hoisted_2$a = /* @__PURE__ */ createStaticVNode('<mask id="mask0_489_46042" style="mask-type:alpha;" maskUnits="userSpaceOnUse" x="0" y="0" width="112" height="80"><rect width="112" height="80" fill="url(#paint0_linear_489_46042)"></rect></mask><g mask="url(#mask0_489_46042)"><rect x="-0.5" width="112" height="80" fill="url(#pattern0)" fill-opacity="0.6"></rect></g><defs><pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1"><use xlink:href="#image0_489_46042" transform="scale(0.00357143 0.005)"></use></pattern><linearGradient id="paint0_linear_489_46042" x1="90.5" y1="40.4494" x2="112.5" y2="40.4494" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient><image id="image0_489_46042" width="280" height="200" xlink:href="data:image/png;base64,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"></image></defs>', 3);
7580
+ const _hoisted_2$9 = /* @__PURE__ */ createStaticVNode('<mask id="mask0_489_46042" style="mask-type:alpha;" maskUnits="userSpaceOnUse" x="0" y="0" width="112" height="80"><rect width="112" height="80" fill="url(#paint0_linear_489_46042)"></rect></mask><g mask="url(#mask0_489_46042)"><rect x="-0.5" width="112" height="80" fill="url(#pattern0)" fill-opacity="0.6"></rect></g><defs><pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1"><use xlink:href="#image0_489_46042" transform="scale(0.00357143 0.005)"></use></pattern><linearGradient id="paint0_linear_489_46042" x1="90.5" y1="40.4494" x2="112.5" y2="40.4494" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient><image id="image0_489_46042" width="280" height="200" xlink:href="data:image/png;base64,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"></image></defs>', 3);
7584
7581
  const _hoisted_5$3 = [
7585
- _hoisted_2$a
7582
+ _hoisted_2$9
7586
7583
  ];
7587
7584
  function _sfc_render$4(_ctx, _cache) {
7588
7585
  return openBlock(), createElementBlock("svg", _hoisted_1$d, _hoisted_5$3);
@@ -7607,15 +7604,13 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7607
7604
  const selectedInputNode = computed(() => workflowsStore.getNodeByName(props.modelValue ?? ""));
7608
7605
  const selectedInputNodeType = computed(() => {
7609
7606
  const node2 = selectedInputNode.value;
7610
- if (!node2)
7611
- return null;
7607
+ if (!node2) return null;
7612
7608
  return nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
7613
7609
  });
7614
7610
  const inputNodes = computed(
7615
7611
  () => props.nodes.map((node2) => {
7616
7612
  const fullNode = workflowsStore.getNodeByName(node2.name);
7617
- if (!fullNode)
7618
- return null;
7613
+ if (!fullNode) return null;
7619
7614
  return {
7620
7615
  node: fullNode,
7621
7616
  type: nodeTypesStore.getNodeType(fullNode.type, fullNode.typeVersion),
@@ -7626,8 +7621,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7626
7621
  const activeNode = computed(() => ndvStore.activeNode);
7627
7622
  const activeNodeType = computed(() => {
7628
7623
  const node2 = activeNode.value;
7629
- if (!node2)
7630
- return null;
7624
+ if (!node2) return null;
7631
7625
  return nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
7632
7626
  });
7633
7627
  const isMultiInputNode = computed(() => {
@@ -7636,8 +7630,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7636
7630
  });
7637
7631
  const connectedTo = (nodeName) => {
7638
7632
  const connections2 = ndvStore.ndvNodeInputNumber[nodeName];
7639
- if (!connections2)
7640
- return "";
7633
+ if (!connections2) return "";
7641
7634
  if (connections2.length === 1) {
7642
7635
  return `Input ${ndvStore.ndvNodeInputNumber[nodeName]}`;
7643
7636
  }
@@ -7649,8 +7642,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7649
7642
  return "";
7650
7643
  const activeNodeConnections = props.workflow.connectionsByDestinationNode[activeNode.value.name].main || [];
7651
7644
  const connectedInputIndexes = activeNodeConnections.reduce((acc, node2, index) => {
7652
- if (node2[0] && node2[0].node === nodeName)
7653
- return [...acc, index];
7645
+ if (node2[0] && node2[0].node === nodeName) return [...acc, index];
7654
7646
  return acc;
7655
7647
  }, []);
7656
7648
  const connectedInputs = connectedInputIndexes.map(
@@ -7659,8 +7651,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7659
7651
  return (_b = (_a2 = activeNodeType.value) == null ? void 0 : _a2.inputNames) == null ? void 0 : _b[inputIndex];
7660
7652
  }
7661
7653
  );
7662
- if (connectedInputs.length === 0)
7663
- return "";
7654
+ if (connectedInputs.length === 0) return "";
7664
7655
  return `(${connectedInputs.join(" & ")})`;
7665
7656
  }
7666
7657
  function title2(nodeName, length = 30) {
@@ -7668,8 +7659,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7668
7659
  }
7669
7660
  function subtitle2(nodeName, depth) {
7670
7661
  const multipleNodesText = getMultipleNodesText(nodeName);
7671
- if (multipleNodesText)
7672
- return multipleNodesText;
7662
+ if (multipleNodesText) return multipleNodesText;
7673
7663
  return i18n2.baseText("ndv.input.nodeDistance", { adjustToNumber: depth });
7674
7664
  }
7675
7665
  function onInputNodeChange(value) {
@@ -7858,10 +7848,8 @@ const _sfc_main$D = defineComponent({
7858
7848
  return false;
7859
7849
  },
7860
7850
  isMappingEnabled() {
7861
- if (this.readOnly)
7862
- return false;
7863
- if (this.isActiveNodeConfig)
7864
- return this.isMappingMode && this.mappedNode !== null;
7851
+ if (this.readOnly) return false;
7852
+ if (this.isActiveNodeConfig) return this.isMappingMode && this.mappedNode !== null;
7865
7853
  return true;
7866
7854
  },
7867
7855
  isExecutingPrevious() {
@@ -7929,12 +7917,14 @@ const _sfc_main$D = defineComponent({
7929
7917
  return node2 ? node2.depth : -1;
7930
7918
  },
7931
7919
  activeNodeType() {
7932
- if (!this.activeNode)
7933
- return null;
7920
+ if (!this.activeNode) return null;
7934
7921
  return this.nodeTypesStore.getNodeType(this.activeNode.type, this.activeNode.typeVersion);
7935
7922
  },
7936
7923
  isMultiInputNode() {
7937
7924
  return this.activeNodeType !== null && this.activeNodeType.inputs.length > 1;
7925
+ },
7926
+ waitingMessage() {
7927
+ return waitingNodeTooltip();
7938
7928
  }
7939
7929
  },
7940
7930
  watch: {
@@ -7972,8 +7962,7 @@ const _sfc_main$D = defineComponent({
7972
7962
  },
7973
7963
  methods: {
7974
7964
  filterOutConnectionType(item, type) {
7975
- if (!item)
7976
- return false;
7965
+ if (!item) return false;
7977
7966
  return typeof item === "string" ? item !== type : item.type !== type;
7978
7967
  },
7979
7968
  onInputModeChange(val) {
@@ -8186,6 +8175,21 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
8186
8175
  })
8187
8176
  ], 2))
8188
8177
  ]),
8178
+ "node-waiting": withCtx(() => [
8179
+ createVNode(_component_n8n_text, {
8180
+ bold: true,
8181
+ color: "text-dark",
8182
+ size: "large"
8183
+ }, {
8184
+ default: withCtx(() => [
8185
+ createTextVNode("Waiting for input")
8186
+ ]),
8187
+ _: 1
8188
+ }),
8189
+ withDirectives(createVNode(_component_n8n_text, null, null, 512), [
8190
+ [_directive_n8n_html, _ctx.waitingMessage]
8191
+ ])
8192
+ ]),
8189
8193
  "no-output-data": withCtx(() => [
8190
8194
  createVNode(_component_n8n_text, {
8191
8195
  tag: "div",
@@ -8520,8 +8524,7 @@ const _sfc_main$C = defineComponent({
8520
8524
  return;
8521
8525
  }
8522
8526
  const target2 = e.target;
8523
- if (target2.localName !== "a")
8524
- return;
8527
+ if (target2.localName !== "a") return;
8525
8528
  if ((_a = target2.dataset) == null ? void 0 : _a.key) {
8526
8529
  e.stopPropagation();
8527
8530
  e.preventDefault();
@@ -8568,8 +8571,8 @@ const style0$o = {
8568
8571
  };
8569
8572
  const _withScopeId$3 = (n) => (pushScopeId("data-v-32dc70fa"), n = n(), popScopeId(), n);
8570
8573
  const _hoisted_1$b = { key: "empty" };
8571
- const _hoisted_2$9 = { key: "listening" };
8572
- const _hoisted_3$5 = { key: 0 };
8574
+ const _hoisted_2$8 = { key: "listening" };
8575
+ const _hoisted_3$6 = { key: 0 };
8573
8576
  const _hoisted_4$2 = { key: 1 };
8574
8577
  const _hoisted_5$2 = { key: 0 };
8575
8578
  const _hoisted_6$2 = { key: "default" };
@@ -8598,7 +8601,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
8598
8601
  mode: "out-in"
8599
8602
  }, {
8600
8603
  default: withCtx(() => [
8601
- _ctx.hasIssues || _ctx.hideContent ? (openBlock(), createElementBlock("div", _hoisted_1$b)) : _ctx.isListeningForEvents ? (openBlock(), createElementBlock("div", _hoisted_2$9, [
8604
+ _ctx.hasIssues || _ctx.hideContent ? (openBlock(), createElementBlock("div", _hoisted_1$b)) : _ctx.isListeningForEvents ? (openBlock(), createElementBlock("div", _hoisted_2$8, [
8602
8605
  createVNode(_component_n8n_pulse, null, {
8603
8606
  default: withCtx(() => [
8604
8607
  createVNode(_component_NodeIcon, {
@@ -8608,7 +8611,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
8608
8611
  ]),
8609
8612
  _: 1
8610
8613
  }),
8611
- _ctx.isWebhookNode ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
8614
+ _ctx.isWebhookNode ? (openBlock(), createElementBlock("div", _hoisted_3$6, [
8612
8615
  createVNode(_component_n8n_text, {
8613
8616
  tag: "div",
8614
8617
  size: "large",
@@ -8818,9 +8821,9 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
8818
8821
  }
8819
8822
  return null;
8820
8823
  });
8821
- const workflowRunning2 = computed(() => uiStore.isActionActive.workflowRunning);
8824
+ const workflowRunning = computed(() => uiStore.isActionActive.workflowRunning);
8822
8825
  const showTriggerWaitingWarning = computed(
8823
- () => triggerWaitingWarningEnabled.value && !!activeNodeType.value && !activeNodeType.value.group.includes("trigger") && workflowRunning2.value && workflowsStore.executionWaitingForWebhook
8826
+ () => triggerWaitingWarningEnabled.value && !!activeNodeType.value && !activeNodeType.value.group.includes("trigger") && workflowRunning.value && workflowsStore.executionWaitingForWebhook
8824
8827
  );
8825
8828
  const workflowRunData = computed(() => {
8826
8829
  if (workflowExecution.value === null) {
@@ -8876,14 +8879,12 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
8876
8879
  });
8877
8880
  const hasOutputConnection = computed(() => {
8878
8881
  var _a, _b;
8879
- if (!activeNode.value)
8880
- return false;
8882
+ if (!activeNode.value) return false;
8881
8883
  const outgoingConnections = workflowsStore.outgoingConnectionsByNodeName(activeNode.value.name);
8882
8884
  return (((_b = (_a = Object.values(outgoingConnections)) == null ? void 0 : _a[0]) == null ? void 0 : _b[0]) ?? []).length > 0;
8883
8885
  });
8884
8886
  const isExecutableTriggerNode = computed(() => {
8885
- if (!activeNodeType.value)
8886
- return false;
8887
+ if (!activeNodeType.value) return false;
8887
8888
  return EXECUTABLE_TRIGGER_NODE_TYPES.includes(activeNodeType.value.name);
8888
8889
  });
8889
8890
  const isActiveStickyNode = computed(
@@ -8977,8 +8978,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
8977
8978
  if (e.key === "s" && deviceSupport.isCtrlKeyPressed(e)) {
8978
8979
  e.stopPropagation();
8979
8980
  e.preventDefault();
8980
- if (props.readOnly)
8981
- return;
8981
+ if (props.readOnly) return;
8982
8982
  emit("saveKeyboardShortcut", e);
8983
8983
  }
8984
8984
  };
@@ -9061,7 +9061,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
9061
9061
  };
9062
9062
  const onNodeExecute = () => {
9063
9063
  setTimeout(() => {
9064
- if (!activeNode.value || !workflowRunning2.value) {
9064
+ if (!activeNode.value || !workflowRunning.value) {
9065
9065
  return;
9066
9066
  }
9067
9067
  triggerWaitingWarningEnabled.value = true;
@@ -9496,10 +9496,8 @@ function useNodeBase({
9496
9496
  }
9497
9497
  });
9498
9498
  const getEndpointLabelLength = (length) => {
9499
- if (length <= 2)
9500
- return "small";
9501
- else if (length <= 6)
9502
- return "medium";
9499
+ if (length <= 2) return "small";
9500
+ else if (length <= 6) return "medium";
9503
9501
  return "large";
9504
9502
  };
9505
9503
  function addEndpointTestingData(endpoint, type, inputIndex) {
@@ -9942,8 +9940,8 @@ function useNodeBase({
9942
9940
  }
9943
9941
  const _withScopeId$2 = (n) => (pushScopeId("data-v-c3c3325d"), n = n(), popScopeId(), n);
9944
9942
  const _hoisted_1$a = ["id", "data-name"];
9945
- const _hoisted_2$8 = { class: "select-sticky-background" };
9946
- const _hoisted_3$4 = ["title"];
9943
+ const _hoisted_2$7 = { class: "select-sticky-background" };
9944
+ const _hoisted_3$5 = ["title"];
9947
9945
  const _hoisted_4$1 = ["title"];
9948
9946
  const _hoisted_5$1 = { class: "content" };
9949
9947
  const _hoisted_6$1 = ["onClick"];
@@ -10048,9 +10046,9 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10048
10046
  top: position2.value[1] + "px",
10049
10047
  zIndex: props.isActive ? 9999999 : -1 * Math.floor(height.value * width.value / 1e3)
10050
10048
  }));
10051
- const workflowRunning2 = computed(() => uiStore.isActionActive.workflowRunning);
10049
+ const workflowRunning = computed(() => uiStore.isActionActive.workflowRunning);
10052
10050
  const showActions = computed(
10053
- () => !(props.hideActions || props.isReadOnly || workflowRunning2.value || isResizing.value) || forceActions.value
10051
+ () => !(props.hideActions || props.isReadOnly || workflowRunning.value || isResizing.value) || forceActions.value
10054
10052
  );
10055
10053
  onMounted(() => {
10056
10054
  if (data.value !== null) {
@@ -10118,8 +10116,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10118
10116
  setParameters({ content: content2 });
10119
10117
  };
10120
10118
  const setPosition = (newPosition) => {
10121
- if (!node2.value)
10122
- return;
10119
+ if (!node2.value) return;
10123
10120
  workflowsStore.updateNodeProperties({
10124
10121
  name: node2.value.name,
10125
10122
  properties: { position: newPosition }
@@ -10186,7 +10183,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10186
10183
  }),
10187
10184
  style: normalizeStyle(stickySize.value)
10188
10185
  }, [
10189
- withDirectives(createBaseVNode("div", _hoisted_2$8, null, 512), [
10186
+ withDirectives(createBaseVNode("div", _hoisted_2$7, null, 512), [
10190
10187
  [vShow, isSelected.value]
10191
10188
  ]),
10192
10189
  withDirectives((openBlock(), createElementBlock("div", {
@@ -10232,7 +10229,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10232
10229
  title: _ctx.$locale.baseText("node.delete")
10233
10230
  }, [
10234
10231
  createVNode(_component_font_awesome_icon, { icon: "trash" })
10235
- ], 8, _hoisted_3$4)), [
10232
+ ], 8, _hoisted_3$5)), [
10236
10233
  [_directive_touch, deleteNode, "tap"]
10237
10234
  ]),
10238
10235
  createVNode(_component_n8n_popover, {
@@ -10285,10 +10282,10 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10285
10282
  }
10286
10283
  });
10287
10284
  const __unplugin_components_1 = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-c3c3325d"]]);
10288
- const _withScopeId$1 = (n) => (pushScopeId("data-v-a84c6b35"), n = n(), popScopeId(), n);
10285
+ const _withScopeId$1 = (n) => (pushScopeId("data-v-8570930b"), n = n(), popScopeId(), n);
10289
10286
  const _hoisted_1$9 = ["id", "data-name", "data-node-type"];
10290
- const _hoisted_2$7 = { class: "select-background" };
10291
- const _hoisted_3$3 = {
10287
+ const _hoisted_2$6 = { class: "select-background" };
10288
+ const _hoisted_3$4 = {
10292
10289
  key: 0,
10293
10290
  class: "trigger-icon"
10294
10291
  };
@@ -10320,16 +10317,17 @@ const _hoisted_11 = {
10320
10317
  class: "items-count"
10321
10318
  };
10322
10319
  const _hoisted_12 = ["title"];
10323
- const _hoisted_13 = { class: "node-trigger-tooltip__wrapper" };
10324
- const _hoisted_14 = ["textContent"];
10325
- const _hoisted_15 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createBaseVNode("span", null, null, -1));
10320
+ const _hoisted_13 = ["title"];
10321
+ const _hoisted_14 = { class: "node-trigger-tooltip__wrapper" };
10322
+ const _hoisted_15 = ["textContent"];
10326
10323
  const _hoisted_16 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createBaseVNode("span", null, null, -1));
10327
- const _hoisted_17 = { class: "node-description" };
10328
- const _hoisted_18 = ["title"];
10329
- const _hoisted_19 = { "data-test-id": "canvas-node-box-title" };
10330
- const _hoisted_20 = { key: 0 };
10331
- const _hoisted_21 = ["title"];
10332
- const _hoisted_22 = { class: "node-options-inner" };
10324
+ const _hoisted_17 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createBaseVNode("span", null, null, -1));
10325
+ const _hoisted_18 = { class: "node-description" };
10326
+ const _hoisted_19 = ["title"];
10327
+ const _hoisted_20 = { "data-test-id": "canvas-node-box-title" };
10328
+ const _hoisted_21 = { key: 0 };
10329
+ const _hoisted_22 = ["title"];
10330
+ const _hoisted_23 = { class: "node-options-inner" };
10333
10331
  const _sfc_main$z = /* @__PURE__ */ defineComponent({
10334
10332
  __name: "Node",
10335
10333
  props: {
@@ -10391,16 +10389,14 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10391
10389
  return void 0;
10392
10390
  });
10393
10391
  const nodeRunData = computed(() => {
10394
- if (!node2.value)
10395
- return [];
10392
+ if (!node2.value) return [];
10396
10393
  return workflowsStore.getWorkflowResultDataByNodeName(node2.value.name) ?? [];
10397
10394
  });
10398
10395
  const hasIssues2 = computed(() => {
10399
10396
  var _a;
10400
10397
  if (nodeExecutionStatus.value && ["crashed", "error"].includes(nodeExecutionStatus.value))
10401
10398
  return true;
10402
- if (pinnedData2.hasData.value)
10403
- return false;
10399
+ if (pinnedData2.hasData.value) return false;
10404
10400
  if (((_a = node2.value) == null ? void 0 : _a.issues) !== void 0 && Object.keys(node2.value.issues).length) {
10405
10401
  return true;
10406
10402
  }
@@ -10432,8 +10428,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10432
10428
  return !!((_a = nodeType.value) == null ? void 0 : _a.polling);
10433
10429
  });
10434
10430
  const isExecuting = computed(() => {
10435
- if (!node2.value)
10436
- return false;
10431
+ if (!node2.value) return false;
10437
10432
  return workflowsStore.isNodeExecuting(node2.value.name);
10438
10433
  });
10439
10434
  const isSingleActiveTriggerNode = computed(() => {
@@ -10448,14 +10443,12 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10448
10443
  return ((_a = node2.value) == null ? void 0 : _a.type) === MANUAL_TRIGGER_NODE_TYPE;
10449
10444
  });
10450
10445
  const isConfigNode = computed(() => {
10451
- if (!node2.value)
10452
- return false;
10446
+ if (!node2.value) return false;
10453
10447
  return nodeTypesStore.isConfigNode(props.workflow, node2.value, node2.value.type ?? "");
10454
10448
  });
10455
10449
  const isConfigurableNode = computed(() => {
10456
10450
  var _a;
10457
- if (!node2.value)
10458
- return false;
10451
+ if (!node2.value) return false;
10459
10452
  return nodeTypesStore.isConfigurableNode(props.workflow, node2.value, ((_a = node2.value) == null ? void 0 : _a.type) ?? "");
10460
10453
  });
10461
10454
  const isTriggerNode = computed(
@@ -10531,10 +10524,10 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10531
10524
  };
10532
10525
  });
10533
10526
  const nodeExecutionStatus = computed(() => {
10534
- var _a;
10527
+ var _a, _b;
10535
10528
  const nodeExecutionRunData = (_a = workflowsStore.getWorkflowRunData) == null ? void 0 : _a[props.name];
10536
10529
  if (nodeExecutionRunData) {
10537
- return nodeExecutionRunData.filter(Boolean)[0].executionStatus ?? "";
10530
+ return ((_b = nodeExecutionRunData.filter(Boolean)[0]) == null ? void 0 : _b.executionStatus) ?? "";
10538
10531
  }
10539
10532
  return "";
10540
10533
  });
@@ -10556,7 +10549,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10556
10549
  }
10557
10550
  return issues2;
10558
10551
  });
10559
- const nodeDisabledTitle2 = computed(() => {
10552
+ const nodeDisabledTitle = computed(() => {
10560
10553
  var _a;
10561
10554
  return ((_a = node2.value) == null ? void 0 : _a.disabled) ? i18n2.baseText("node.enable") : i18n2.baseText("node.disable");
10562
10555
  });
@@ -10577,11 +10570,19 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10577
10570
  }
10578
10571
  return ((_b = node2.value) == null ? void 0 : _b.name) ?? "";
10579
10572
  });
10580
- const waiting = computed(() => {
10573
+ const waiting2 = computed(() => {
10581
10574
  const workflowExecution = workflowsStore.getWorkflowExecution;
10582
- if (workflowExecution == null ? void 0 : workflowExecution.waitTill) {
10575
+ if ((workflowExecution == null ? void 0 : workflowExecution.waitTill) && !(workflowExecution == null ? void 0 : workflowExecution.finished)) {
10583
10576
  const lastNodeExecuted = get(workflowExecution, "data.resultData.lastNodeExecuted");
10584
10577
  if (props.name === lastNodeExecuted) {
10578
+ const node22 = props.workflow.getNode(lastNodeExecuted);
10579
+ if (node22 && node22.type === WAIT_NODE_TYPE && ["webhook", "form"].includes(node22.parameters.resume)) {
10580
+ const event = node22.parameters.resume === "webhook" ? i18n2.baseText("node.theNodeIsWaitingWebhookCall") : i18n2.baseText("node.theNodeIsWaitingFormCall");
10581
+ return event;
10582
+ }
10583
+ if ((node22 == null ? void 0 : node22.parameters.operation) === SEND_AND_WAIT_OPERATION) {
10584
+ return i18n2.baseText("node.theNodeIsWaitingUserInput");
10585
+ }
10585
10586
  const waitDate = new Date(workflowExecution.waitTill);
10586
10587
  if (waitDate.toISOString() === WAIT_TIME_UNLIMITED) {
10587
10588
  return i18n2.baseText("node.theNodeIsWaitingIndefinitelyForAnIncomingWebhookCall");
@@ -10596,7 +10597,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10596
10597
  }
10597
10598
  return void 0;
10598
10599
  });
10599
- const workflowRunning2 = computed(() => uiStore.isActionActive.workflowRunning);
10600
+ const workflowRunning = computed(() => uiStore.isActionActive.workflowRunning);
10600
10601
  const nodeStyle = computed(() => {
10601
10602
  var _a, _b, _c, _d;
10602
10603
  const returnStyles = {};
@@ -10613,7 +10614,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10613
10614
  returnStyles["border-width"] = "2px";
10614
10615
  returnStyles["border-style"] = "solid";
10615
10616
  }
10616
- } else if (!!waiting.value || showPinnedDataInfo.value) {
10617
+ } else if (!!waiting2.value || showPinnedDataInfo.value) {
10617
10618
  borderColor = "--color-node-pinned-border";
10618
10619
  } else if (nodeExecutionStatus.value === "unknown") {
10619
10620
  borderColor = "--color-foreground-xdark";
@@ -10634,7 +10635,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10634
10635
  );
10635
10636
  const shiftOutputCount = computed(() => !!(nodeType.value && nodeBase.outputs.value.length > 2));
10636
10637
  const shouldShowTriggerTooltip = computed(() => {
10637
- return !!node2.value && isTriggerNode.value && !isPollingTypeNode.value && !pinnedData2.hasData.value && !isNodeDisabled.value && workflowRunning2.value && workflowDataItems.value === 0 && isSingleActiveTriggerNode.value && !isTriggerNodeTooltipEmpty.value && !hasIssues2.value && !dragging2.value;
10638
+ return !!node2.value && isTriggerNode.value && !isPollingTypeNode.value && !pinnedData2.hasData.value && !isNodeDisabled.value && workflowRunning.value && workflowDataItems.value === 0 && isSingleActiveTriggerNode.value && !isTriggerNodeTooltipEmpty.value && !hasIssues2.value && !dragging2.value;
10638
10639
  });
10639
10640
  const isContextMenuOpen = computed(
10640
10641
  () => {
@@ -10696,13 +10697,12 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10696
10697
  if (!node2.value) {
10697
10698
  return;
10698
10699
  }
10699
- emit("run", { name: node2.value.name, data: newValue, waiting: !!waiting.value });
10700
+ emit("run", { name: node2.value.name, data: newValue, waiting: !!waiting2.value });
10700
10701
  },
10701
10702
  { deep: true }
10702
10703
  );
10703
10704
  const unwatchWorkflowDataItems = watch(workflowDataItems, (dataItemsCount) => {
10704
- if (!hasSeenPinDataTooltip.value)
10705
- showPinDataDiscoveryTooltip(dataItemsCount);
10705
+ if (!hasSeenPinDataTooltip.value) showPinDataDiscoveryTooltip(dataItemsCount);
10706
10706
  });
10707
10707
  onMounted(() => {
10708
10708
  if (node2.value !== null) {
@@ -10719,7 +10719,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10719
10719
  emit("run", {
10720
10720
  name: node2.value.name,
10721
10721
  data: nodeRunData.value,
10722
- waiting: !!waiting.value
10722
+ waiting: !!waiting2.value
10723
10723
  });
10724
10724
  }
10725
10725
  }, 0);
@@ -10732,8 +10732,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10732
10732
  unwatchWorkflowDataItems();
10733
10733
  }
10734
10734
  function setSubtitle() {
10735
- if (!node2.value || !nodeType.value)
10736
- return;
10735
+ if (!node2.value || !nodeType.value) return;
10737
10736
  try {
10738
10737
  const subtitle2 = nodeHelpers.getNodeSubtitle(node2.value, nodeType.value, props.workflow) ?? "";
10739
10738
  nodeSubtitle.value = subtitle2.includes(CUSTOM_API_CALL_KEY) ? "" : subtitle2;
@@ -10741,8 +10740,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10741
10740
  }
10742
10741
  }
10743
10742
  function executeNode() {
10744
- if (!node2.value)
10745
- return;
10743
+ if (!node2.value) return;
10746
10744
  emit("runWorkflow", node2.value.name, "Node.executeNode");
10747
10745
  telemetry.track("User clicked node hover button", {
10748
10746
  node_type: node2.value.type,
@@ -10751,8 +10749,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10751
10749
  });
10752
10750
  }
10753
10751
  function deleteNode() {
10754
- if (!node2.value)
10755
- return;
10752
+ if (!node2.value) return;
10756
10753
  telemetry.track("User clicked node hover button", {
10757
10754
  node_type: node2.value.type,
10758
10755
  button_name: "delete",
@@ -10762,8 +10759,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10762
10759
  }
10763
10760
  function toggleDisableNode(event) {
10764
10761
  var _a;
10765
- if (!node2.value)
10766
- return;
10762
+ if (!node2.value) return;
10767
10763
  event.currentTarget.blur();
10768
10764
  telemetry.track("User clicked node hover button", {
10769
10765
  node_type: (_a = node2.value) == null ? void 0 : _a.type,
@@ -10818,7 +10814,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10818
10814
  "data-node-type": (_a = nodeType.value) == null ? void 0 : _a.name,
10819
10815
  onContextmenu: _cache[3] || (_cache[3] = (e) => openContextMenu(e, "node-right-click"))
10820
10816
  }, [
10821
- withDirectives(createBaseVNode("div", _hoisted_2$7, null, 512), [
10817
+ withDirectives(createBaseVNode("div", _hoisted_2$6, null, 512), [
10822
10818
  [vShow, isSelected.value]
10823
10819
  ]),
10824
10820
  createBaseVNode("div", {
@@ -10835,7 +10831,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10835
10831
  style: normalizeStyle(nodeStyle.value),
10836
10832
  onClick: withModifiers(onClick, ["left"])
10837
10833
  }, [
10838
- isTriggerNode.value ? (openBlock(), createElementBlock("i", _hoisted_3$3, [
10834
+ isTriggerNode.value ? (openBlock(), createElementBlock("i", _hoisted_3$4, [
10839
10835
  createVNode(_component_n8n_tooltip, { placement: "bottom" }, {
10840
10836
  content: withCtx(() => [
10841
10837
  withDirectives(createBaseVNode("span", null, null, 512), [
@@ -10871,11 +10867,11 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10871
10867
  ]),
10872
10868
  _: 1
10873
10869
  })
10874
- ])) : waiting.value || nodeExecutionStatus.value === "waiting" ? (openBlock(), createElementBlock("div", _hoisted_5, [
10870
+ ])) : waiting2.value || nodeExecutionStatus.value === "waiting" ? (openBlock(), createElementBlock("div", _hoisted_5, [
10875
10871
  createVNode(_component_n8n_tooltip, { placement: "bottom" }, {
10876
10872
  content: withCtx(() => [
10877
10873
  createBaseVNode("div", {
10878
- textContent: toDisplayString(waiting.value)
10874
+ textContent: toDisplayString(waiting2.value)
10879
10875
  }, null, 8, _hoisted_6)
10880
10876
  ]),
10881
10877
  default: withCtx(() => [
@@ -10900,7 +10896,17 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10900
10896
  spin: ""
10901
10897
  })
10902
10898
  ], 8, _hoisted_12),
10903
- createBaseVNode("div", _hoisted_13, [
10899
+ waiting2.value ? (openBlock(), createElementBlock("div", {
10900
+ key: 2,
10901
+ class: "node-waiting-spinner",
10902
+ title: waiting2.value
10903
+ }, [
10904
+ createVNode(unref(FontAwesomeIcon), {
10905
+ icon: "sync-alt",
10906
+ spin: ""
10907
+ })
10908
+ ], 8, _hoisted_13)) : createCommentVNode("", true),
10909
+ createBaseVNode("div", _hoisted_14, [
10904
10910
  createVNode(_component_n8n_tooltip, {
10905
10911
  placement: "top",
10906
10912
  "show-after": 500,
@@ -10910,10 +10916,10 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10910
10916
  content: withCtx(() => [
10911
10917
  createBaseVNode("div", {
10912
10918
  textContent: toDisplayString(getTriggerNodeTooltip.value)
10913
- }, null, 8, _hoisted_14)
10919
+ }, null, 8, _hoisted_15)
10914
10920
  ]),
10915
10921
  default: withCtx(() => [
10916
- _hoisted_15
10922
+ _hoisted_16
10917
10923
  ]),
10918
10924
  _: 1
10919
10925
  }, 8, ["visible"]),
@@ -10927,7 +10933,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10927
10933
  createTextVNode(toDisplayString(unref(i18n2).baseText("node.discovery.pinData.canvas")), 1)
10928
10934
  ]),
10929
10935
  default: withCtx(() => [
10930
- _hoisted_16
10936
+ _hoisted_17
10931
10937
  ]),
10932
10938
  _: 1
10933
10939
  }, 8, ["visible"])) : createCommentVNode("", true)
@@ -10952,19 +10958,19 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10952
10958
  })
10953
10959
  }, null, 2)) : createCommentVNode("", true)
10954
10960
  ], 2),
10955
- createBaseVNode("div", _hoisted_17, [
10961
+ createBaseVNode("div", _hoisted_18, [
10956
10962
  createBaseVNode("div", {
10957
10963
  class: "node-name",
10958
10964
  title: nodeTitle.value
10959
10965
  }, [
10960
- createBaseVNode("p", _hoisted_19, toDisplayString(nodeTitle.value), 1),
10961
- node2.value.disabled ? (openBlock(), createElementBlock("p", _hoisted_20, "(" + toDisplayString(unref(i18n2).baseText("node.disabled")) + ")", 1)) : createCommentVNode("", true)
10962
- ], 8, _hoisted_18),
10966
+ createBaseVNode("p", _hoisted_20, toDisplayString(nodeTitle.value), 1),
10967
+ node2.value.disabled ? (openBlock(), createElementBlock("p", _hoisted_21, "(" + toDisplayString(unref(i18n2).baseText("node.disabled")) + ")", 1)) : createCommentVNode("", true)
10968
+ ], 8, _hoisted_19),
10963
10969
  nodeSubtitle.value !== void 0 ? (openBlock(), createElementBlock("div", {
10964
10970
  key: 0,
10965
10971
  class: "node-subtitle",
10966
10972
  title: nodeSubtitle.value
10967
- }, toDisplayString(nodeSubtitle.value), 9, _hoisted_21)) : createCommentVNode("", true)
10973
+ }, toDisplayString(nodeSubtitle.value), 9, _hoisted_22)) : createCommentVNode("", true)
10968
10974
  ]),
10969
10975
  !_ctx.isReadOnly ? withDirectives((openBlock(), createElementBlock("div", {
10970
10976
  key: 0,
@@ -10974,7 +10980,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10974
10980
  onMousedown: _cache[2] || (_cache[2] = withModifiers(() => {
10975
10981
  }, ["stop"]))
10976
10982
  }, [
10977
- createBaseVNode("div", _hoisted_22, [
10983
+ createBaseVNode("div", _hoisted_23, [
10978
10984
  !isConfigNode.value ? (openBlock(), createBlock(unref(_sfc_main$_), {
10979
10985
  key: 0,
10980
10986
  "data-test-id": "execute-node-button",
@@ -10982,7 +10988,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10982
10988
  text: "",
10983
10989
  size: "small",
10984
10990
  icon: "play",
10985
- disabled: workflowRunning2.value,
10991
+ disabled: workflowRunning.value,
10986
10992
  title: unref(i18n2).baseText("node.testStep"),
10987
10993
  onClick: executeNode
10988
10994
  }, null, 8, ["disabled", "title"])) : createCommentVNode("", true),
@@ -10992,7 +10998,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10992
10998
  text: "",
10993
10999
  size: "small",
10994
11000
  icon: "power-off",
10995
- title: nodeDisabledTitle2.value,
11001
+ title: nodeDisabledTitle.value,
10996
11002
  onClick: toggleDisableNode
10997
11003
  }, null, 8, ["title"]),
10998
11004
  createVNode(unref(_sfc_main$_), {
@@ -11020,7 +11026,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
11020
11026
  };
11021
11027
  }
11022
11028
  });
11023
- const __unplugin_components_0$6 = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-a84c6b35"]]);
11029
+ const __unplugin_components_0$6 = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-8570930b"]]);
11024
11030
  const state = reactive({
11025
11031
  customActions: {},
11026
11032
  delegatedClickHandler: null
@@ -11045,8 +11051,7 @@ function useGlobalLinkActions() {
11045
11051
  }
11046
11052
  function delegateClick(e) {
11047
11053
  const clickedElement = e.target;
11048
- if (!(clickedElement instanceof Element) || clickedElement.tagName !== "A")
11049
- return;
11054
+ if (!(clickedElement instanceof Element) || clickedElement.tagName !== "A") return;
11050
11055
  const actionAttribute = clickedElement.getAttribute("data-action");
11051
11056
  if (actionAttribute && typeof availableActions.value[actionAttribute] === "function") {
11052
11057
  e.preventDefault();
@@ -11066,8 +11071,7 @@ function useGlobalLinkActions() {
11066
11071
  ...state.customActions
11067
11072
  }));
11068
11073
  onMounted(() => {
11069
- if (state.delegatedClickHandler)
11070
- return;
11074
+ if (state.delegatedClickHandler) return;
11071
11075
  state.delegatedClickHandler = delegateClick;
11072
11076
  window.addEventListener("click", delegateClick);
11073
11077
  globalLinkActionsEventBus.on("registerGlobalLinkAction", registerCustomAction);
@@ -11169,8 +11173,7 @@ function useCanvasMouseSelect() {
11169
11173
  _updateSelectBox(e);
11170
11174
  }
11171
11175
  function mouseUpMouseSelect(e) {
11172
- if ("button" in e && e.button === 2 || isContextMenuOpen.value)
11173
- return;
11176
+ if ("button" in e && e.button === 2 || isContextMenuOpen.value) return;
11174
11177
  if (!selectActive.value) {
11175
11178
  if (isTouchDevice && e.target instanceof HTMLElement) {
11176
11179
  if (e.target && e.target.id.includes("node-view")) {
@@ -11244,8 +11247,7 @@ function useUniqueNodeName() {
11244
11247
  if (typeof nodeType.defaults.name !== "string") {
11245
11248
  throw new Error("Expected node name default to be a string");
11246
11249
  }
11247
- if (/\d$/.test(nodeType.defaults.name))
11248
- acc.push(nodeType.defaults.name);
11250
+ if (/\d$/.test(nodeType.defaults.name)) acc.push(nodeType.defaults.name);
11249
11251
  return acc;
11250
11252
  }, []);
11251
11253
  }
@@ -11253,8 +11255,7 @@ function useUniqueNodeName() {
11253
11255
  var _a, _b;
11254
11256
  const { canvasNames } = useWorkflowsStore();
11255
11257
  const isUnique = !canvasNames.has(originalName) && !extraNames.includes(originalName);
11256
- if (isUnique)
11257
- return originalName;
11258
+ if (isUnique) return originalName;
11258
11259
  const nsn = numberSuffixedNames().find((nsn2) => originalName.startsWith(nsn2));
11259
11260
  if (nsn) {
11260
11261
  let unique2 = "";
@@ -11527,16 +11528,15 @@ function subcategorizeItems(items) {
11527
11528
  function sortNodeCreateElements(nodes) {
11528
11529
  return nodes.sort((a, b) => {
11529
11530
  var _a, _b, _c, _d;
11530
- if (a.type !== "node" || b.type !== "node")
11531
- return 0;
11531
+ if (a.type !== "node" || b.type !== "node") return 0;
11532
11532
  const displayNameA = ((_b = (_a = a.properties) == null ? void 0 : _a.displayName) == null ? void 0 : _b.toLowerCase()) || a.key;
11533
11533
  const displayNameB = ((_d = (_c = b.properties) == null ? void 0 : _c.displayName) == null ? void 0 : _d.toLowerCase()) || b.key;
11534
11534
  return displayNameA.localeCompare(displayNameB, void 0, { sensitivity: "base" });
11535
11535
  });
11536
11536
  }
11537
11537
  function searchNodes(searchFilter, items) {
11538
- const aiEnabled = usePostHog().isAiEnabled();
11539
- if (!aiEnabled) {
11538
+ const askAiEnabled = useSettingsStore().isAskAiEnabled;
11539
+ if (!askAiEnabled) {
11540
11540
  items = items.filter((item) => item.key !== AI_TRANSFORM_NODE_TYPE);
11541
11541
  }
11542
11542
  const trimmedFilter = searchFilter.toLowerCase().replace("trigger", "").trimEnd();
@@ -11552,8 +11552,7 @@ function flattenCreateElements(items) {
11552
11552
  function isAINode(node2) {
11553
11553
  var _a, _b, _c, _d, _e;
11554
11554
  const isNode = node2.type === "node";
11555
- if (!isNode)
11556
- return false;
11555
+ if (!isNode) return false;
11557
11556
  if ((_b = (_a = node2.properties.codex) == null ? void 0 : _a.categories) == null ? void 0 : _b.includes(AI_SUBCATEGORY)) {
11558
11557
  const isAgentSubcategory = (_e = (_d = (_c = node2.properties.codex) == null ? void 0 : _c.subcategories) == null ? void 0 : _d[AI_SUBCATEGORY]) == null ? void 0 : _e.includes(AI_CATEGORY_AGENTS);
11559
11558
  return !isAgentSubcategory;
@@ -11593,10 +11592,8 @@ function groupItemsInSections(items, sections, sortAlphabetically = true) {
11593
11592
  children: sortNodeCreateElements(nonAINodesBySection.other ?? [])
11594
11593
  }).filter((section) => section.type !== "section" || section.children.length > 0);
11595
11594
  result.sort((a, b) => {
11596
- if (a.key.toLowerCase().includes("recommended"))
11597
- return -1;
11598
- if (b.key.toLowerCase().includes("recommended"))
11599
- return 1;
11595
+ if (a.key.toLowerCase().includes("recommended")) return -1;
11596
+ if (b.key.toLowerCase().includes("recommended")) return 1;
11600
11597
  return 0;
11601
11598
  });
11602
11599
  if (result.length <= 1) {
@@ -11604,6 +11601,13 @@ function groupItemsInSections(items, sections, sortAlphabetically = true) {
11604
11601
  }
11605
11602
  return result;
11606
11603
  }
11604
+ const formatTriggerActionName = (actionPropertyName) => {
11605
+ let name = actionPropertyName;
11606
+ if (actionPropertyName.includes(".")) {
11607
+ name = actionPropertyName.split(".").join(" ");
11608
+ }
11609
+ return noCase(name);
11610
+ };
11607
11611
  function getAiNodesBySubcategory(nodes, subcategory) {
11608
11612
  return nodes.filter(
11609
11613
  (node2) => {
@@ -11679,8 +11683,7 @@ function AINodesView(_nodes) {
11679
11683
  function getSubcategoryInfo(subcategory) {
11680
11684
  const localeKey = `nodeCreator.subcategoryInfos.${camelCase(subcategory)}`;
11681
11685
  const info = i18n2.baseText(localeKey);
11682
- if (info === localeKey)
11683
- return void 0;
11686
+ if (info === localeKey) return void 0;
11684
11687
  return info;
11685
11688
  }
11686
11689
  return {
@@ -12071,8 +12074,7 @@ const useKeyboardNavigation = defineStore("nodeCreatorKeyboardNavigation", () =>
12071
12074
  const flatHooks = Object.values(keysHooks.value);
12072
12075
  const hooks = flatHooks.filter((hook) => hook.keyboardKeys.includes(keyboardKey));
12073
12076
  hooks.forEach((hook) => {
12074
- if (!activeItemId.value)
12075
- return;
12077
+ if (!activeItemId.value) return;
12076
12078
  const conditionPassed = hook.condition === void 0 || hook.condition(getItemType(activeItem) || "", activeItemId.value);
12077
12079
  if (conditionPassed && activeItemId.value) {
12078
12080
  hook.handler(activeItemId.value, keyboardKey);
@@ -12082,8 +12084,7 @@ const useKeyboardNavigation = defineStore("nodeCreatorKeyboardNavigation", () =>
12082
12084
  async function onKeyDown2(e) {
12083
12085
  var _a, _b, _c;
12084
12086
  const pressedKey = e.key;
12085
- if (!WATCHED_KEYS.includes(pressedKey))
12086
- return;
12087
+ if (!WATCHED_KEYS.includes(pressedKey)) return;
12087
12088
  e.preventDefault();
12088
12089
  e.stopPropagation();
12089
12090
  await refreshSelectableItems();
@@ -12093,8 +12094,7 @@ const useKeyboardNavigation = defineStore("nodeCreatorKeyboardNavigation", () =>
12093
12094
  const activeItem = (_a = selectableItems.value[activeItemIndex]) == null ? void 0 : _a.deref();
12094
12095
  const isArrowDown = pressedKey === "ArrowDown";
12095
12096
  const isArrowUp = pressedKey === "ArrowUp";
12096
- if (!activeItem)
12097
- return;
12097
+ if (!activeItem) return;
12098
12098
  if (isArrowDown) {
12099
12099
  const nextItemIndex = activeItemIndex < selectableItems.value.length - 1 ? activeItemIndex + 1 : 0;
12100
12100
  setActiveItem((_b = selectableItems.value[nextItemIndex]) == null ? void 0 : _b.deref());
@@ -12110,8 +12110,7 @@ const useKeyboardNavigation = defineStore("nodeCreatorKeyboardNavigation", () =>
12110
12110
  }
12111
12111
  function setActiveItem(item) {
12112
12112
  const itemId = getElementId(item);
12113
- if (!itemId)
12114
- return;
12113
+ if (!itemId) return;
12115
12114
  setActiveItemId(itemId);
12116
12115
  if (item == null ? void 0 : item.scrollIntoView) {
12117
12116
  item == null ? void 0 : item.scrollIntoView({ block: "center" });
@@ -12161,6 +12160,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12161
12160
  const nodeCreatorStore = useNodeCreatorStore();
12162
12161
  const { getActiveItemIndex } = useKeyboardNavigation();
12163
12162
  const i18n2 = useI18n();
12163
+ const settingsStore = useSettingsStore();
12164
12164
  const viewStacks = ref([]);
12165
12165
  const activeStackItems = computed(() => {
12166
12166
  const stack = getLastActiveStack();
@@ -12189,8 +12189,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12189
12189
  });
12190
12190
  const activeViewStack = computed(() => {
12191
12191
  const stack = getLastActiveStack();
12192
- if (!stack)
12193
- return {};
12192
+ if (!stack) return {};
12194
12193
  const flatBaselineItems = flattenCreateElements(stack.baselineItems ?? []);
12195
12194
  return {
12196
12195
  ...stack,
@@ -12203,8 +12202,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12203
12202
  );
12204
12203
  const searchBaseItems = computed(() => {
12205
12204
  const stack = getLastActiveStack();
12206
- if (!(stack == null ? void 0 : stack.searchItems))
12207
- return [];
12205
+ if (!(stack == null ? void 0 : stack.searchItems)) return [];
12208
12206
  return stack.searchItems.map((item) => transformNodeType(item, stack.subcategory));
12209
12207
  });
12210
12208
  function isAiSubcategoryView(stack) {
@@ -12215,8 +12213,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12215
12213
  }
12216
12214
  const globalSearchItemsDiff = computed(() => {
12217
12215
  const stack = getLastActiveStack();
12218
- if (!(stack == null ? void 0 : stack.search) || isAiSubcategoryView(stack))
12219
- return [];
12216
+ if (!(stack == null ? void 0 : stack.search) || isAiSubcategoryView(stack)) return [];
12220
12217
  const allNodes = nodeCreatorStore.mergedNodes.map((item) => transformNodeType(item));
12221
12218
  const filteredNodes = isAiRootView(stack) ? allNodes : filterOutAiNodes(allNodes);
12222
12219
  let globalSearchResult = extendItemsWithUUID(
@@ -12254,8 +12251,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12254
12251
  function filterAiRootNodes(items) {
12255
12252
  return items.filter((node2) => {
12256
12253
  var _a, _b;
12257
- if (node2.type !== "node")
12258
- return false;
12254
+ if (node2.type !== "node") return false;
12259
12255
  return (_b = (_a = node2.properties.codex) == null ? void 0 : _a.subcategories) == null ? void 0 : _b[AI_SUBCATEGORY].includes(
12260
12256
  AI_CATEGORY_ROOT_NODES
12261
12257
  );
@@ -12307,8 +12303,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12307
12303
  var _a, _b, _c, _d, _e;
12308
12304
  if (item.type === "node") {
12309
12305
  const isAICategory = ((_b = (_a = item.properties.codex) == null ? void 0 : _a.categories) == null ? void 0 : _b.includes(AI_SUBCATEGORY)) === true;
12310
- if (!isAICategory)
12311
- return true;
12306
+ if (!isAICategory) return true;
12312
12307
  const isRootNodeSubcategory = (_e = (_d = (_c = item.properties.codex) == null ? void 0 : _c.subcategories) == null ? void 0 : _d[AI_SUBCATEGORY]) == null ? void 0 : _e.includes(AI_CATEGORY_ROOT_NODES);
12313
12308
  return isRootNodeSubcategory;
12314
12309
  }
@@ -12353,8 +12348,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12353
12348
  panelClass: relatedAIView == null ? void 0 : relatedAIView.properties.panelClass,
12354
12349
  baseFilter: (i) => {
12355
12350
  var _a2;
12356
- if (i.key === AI_CODE_NODE_TYPE)
12357
- return false;
12351
+ if (i.key === AI_CODE_NODE_TYPE) return false;
12358
12352
  const displayNode = nodesByConnectionType[connectionType2].includes(i.key);
12359
12353
  if (displayNode && ((_a2 = filter == null ? void 0 : filter.nodes) == null ? void 0 : _a2.length)) {
12360
12354
  return filter.nodes.includes(i.key);
@@ -12373,14 +12367,13 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12373
12367
  }
12374
12368
  function setStackBaselineItems() {
12375
12369
  const stack = getLastActiveStack();
12376
- if (!stack || !activeViewStack.value.uuid)
12377
- return;
12370
+ if (!stack || !activeViewStack.value.uuid) return;
12378
12371
  let stackItems = (stack == null ? void 0 : stack.items) ?? [];
12379
12372
  if (!(stack == null ? void 0 : stack.items)) {
12380
12373
  const subcategory = (stack == null ? void 0 : stack.subcategory) ?? DEFAULT_SUBCATEGORY;
12381
12374
  let itemsInSubcategory = itemsBySubcategory.value[subcategory];
12382
- const aiEnabled = usePostHog().isAiEnabled();
12383
- if (!aiEnabled) {
12375
+ const isAskAiEnabled = settingsStore.isAskAiEnabled;
12376
+ if (!isAskAiEnabled) {
12384
12377
  itemsInSubcategory = itemsInSubcategory.filter(
12385
12378
  (item) => item.key !== AI_TRANSFORM_NODE_TYPE$1
12386
12379
  );
@@ -12438,8 +12431,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12438
12431
  function updateCurrentViewStack(stack) {
12439
12432
  const currentStack = getLastActiveStack();
12440
12433
  const matchedIndex = viewStacks.value.findIndex((s) => s.uuid === currentStack.uuid);
12441
- if (!currentStack)
12442
- return;
12434
+ if (!currentStack) return;
12443
12435
  Object.keys(stack).forEach((key) => {
12444
12436
  const typedKey = key;
12445
12437
  viewStacks.value[matchedIndex] = {
@@ -12609,18 +12601,6 @@ function mapLegacyEndpointsToCanvasConnectionPort(endpoints, endpointNames = [])
12609
12601
  };
12610
12602
  });
12611
12603
  }
12612
- function getUniqueNodeName(name, existingNames) {
12613
- if (!existingNames.has(name)) {
12614
- return name;
12615
- }
12616
- for (let i = 1; i < 100; i++) {
12617
- const newName = `${name} ${i}`;
12618
- if (!existingNames.has(newName)) {
12619
- return newName;
12620
- }
12621
- }
12622
- return `${name} ${v4()}`;
12623
- }
12624
12604
  function checkOverlap(node1, node2) {
12625
12605
  return !// node1 is completely to the left of node2
12626
12606
  (node1.x + node1.width <= node2.x || // node2 is completely to the left of node1
@@ -12783,8 +12763,7 @@ const useNodeCreatorStore = defineStore(STORES.NODE_CREATOR, () => {
12783
12763
  let filter;
12784
12764
  const workflow = workflowsStore.getCurrentWorkflow();
12785
12765
  const workflowNode = workflow.getNode(nodeName);
12786
- if (!workflowNode)
12787
- return { nodes: [] };
12766
+ if (!workflowNode) return { nodes: [] };
12788
12767
  const nodeType = nodeTypesStore.getNodeType(workflowNode == null ? void 0 : workflowNode.type, workflowNode.typeVersion);
12789
12768
  if (nodeType) {
12790
12769
  const inputs2 = getNodeInputs(workflow, workflowNode, nodeType);
@@ -12948,8 +12927,8 @@ function useCanvasPanning(elementRef, options = {}) {
12948
12927
  };
12949
12928
  }
12950
12929
  const _hoisted_1$7 = { "data-action": "reload" };
12951
- const _hoisted_2$6 = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
12952
- const _hoisted_3$2 = {
12930
+ const _hoisted_2$5 = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
12931
+ const _hoisted_3$3 = {
12953
12932
  href: "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/",
12954
12933
  target: "_blank"
12955
12934
  };
@@ -12961,20 +12940,20 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
12961
12940
  return openBlock(), createElementBlock("div", null, [
12962
12941
  createBaseVNode("a", _hoisted_1$7, toDisplayString(unref(i18).baseText("nodeView.refresh")), 1),
12963
12942
  createTextVNode(" " + toDisplayString(unref(i18).baseText("nodeView.toSeeTheLatestStatus")) + ". ", 1),
12964
- _hoisted_2$6,
12965
- createBaseVNode("a", _hoisted_3$2, toDisplayString(unref(i18).baseText("nodeView.moreInfo")), 1)
12943
+ _hoisted_2$5,
12944
+ createBaseVNode("a", _hoisted_3$3, toDisplayString(unref(i18).baseText("nodeView.moreInfo")), 1)
12966
12945
  ]);
12967
12946
  };
12968
12947
  }
12969
12948
  });
12970
12949
  const LazyNodeCreation = defineAsyncComponent(
12971
- async () => await __vitePreload(() => import("./NodeCreation-CUrrlBgR.js").then((n) => n.N), true ? __vite__mapDeps([40,4,5,6,7,2,8,9,10,11,1,3,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,41]) : void 0)
12950
+ async () => await __vitePreload(() => import("./NodeCreation-Dmhfjt0Z.js").then((n) => n.N), true ? __vite__mapDeps([40,4,5,6,7,2,8,9,10,11,1,3,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,41]) : void 0)
12972
12951
  );
12973
12952
  const LazyCanvasControls = defineAsyncComponent(
12974
- async () => await __vitePreload(() => import("./CanvasControls-Dzk7BXvt.js"), true ? __vite__mapDeps([42,2,13,1,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,43]) : void 0)
12953
+ async () => await __vitePreload(() => import("./CanvasControls-BZsnpR-P.js"), true ? __vite__mapDeps([42,2,13,1,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,43]) : void 0)
12975
12954
  );
12976
12955
  const LazySetupWorkflowCredentialsButton = defineAsyncComponent(
12977
- async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-DQQqU73T.js"), true ? __vite__mapDeps([44,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]) : void 0)
12956
+ async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-C3CEondE.js"), true ? __vite__mapDeps([44,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]) : void 0)
12978
12957
  );
12979
12958
  const _sfc_main$w = defineComponent({
12980
12959
  name: "NodeView",
@@ -13008,7 +12987,9 @@ const _sfc_main$w = defineComponent({
13008
12987
  const { callDebounced } = useDebounce();
13009
12988
  const canvasPanning = useCanvasPanning(nodeViewRootRef, { onMouseMoveEnd });
13010
12989
  const workflowHelpers = useWorkflowHelpers({ router });
13011
- const { runWorkflow, stopCurrentExecution } = useRunWorkflow({ router });
12990
+ const { runWorkflow, stopCurrentExecution, runWorkflowResolvePending } = useRunWorkflow({
12991
+ router
12992
+ });
13012
12993
  const { addBeforeUnloadEventBindings, removeBeforeUnloadEventBindings } = useBeforeUnload({
13013
12994
  route
13014
12995
  });
@@ -13027,6 +13008,7 @@ const _sfc_main$w = defineComponent({
13027
13008
  onMouseMoveEnd,
13028
13009
  workflowHelpers,
13029
13010
  runWorkflow,
13011
+ runWorkflowResolvePending,
13030
13012
  stopCurrentExecution,
13031
13013
  callDebounced,
13032
13014
  ...useCanvasMouseSelect(),
@@ -13183,7 +13165,12 @@ const _sfc_main$w = defineComponent({
13183
13165
  return this.workflowsStore.getWorkflowExecution;
13184
13166
  },
13185
13167
  workflowRunning() {
13186
- return this.uiStore.isActionActive.workflowRunning;
13168
+ if (this.uiStore.isActionActive.workflowRunning) return true;
13169
+ if (this.workflowsStore.activeExecutionId) {
13170
+ const execution = this.workflowsStore.getWorkflowExecution;
13171
+ if (execution && execution.status === "waiting" && !execution.finished) return true;
13172
+ }
13173
+ return false;
13187
13174
  },
13188
13175
  currentWorkflow() {
13189
13176
  var _a;
@@ -13210,16 +13197,14 @@ const _sfc_main$w = defineComponent({
13210
13197
  );
13211
13198
  },
13212
13199
  isManualChatOnly() {
13213
- if (!this.canvasChatNode)
13214
- return false;
13200
+ if (!this.canvasChatNode) return false;
13215
13201
  return this.containsChatNodes && this.triggerNodes.length === 1 && !this.pinnedChatNodeData;
13216
13202
  },
13217
13203
  canvasChatNode() {
13218
13204
  return this.nodes.find((node2) => node2.type === CHAT_TRIGGER_NODE_TYPE);
13219
13205
  },
13220
13206
  pinnedChatNodeData() {
13221
- if (!this.canvasChatNode)
13222
- return null;
13207
+ if (!this.canvasChatNode) return null;
13223
13208
  return this.workflowsStore.pinDataByNodeName(this.canvasChatNode.name);
13224
13209
  },
13225
13210
  isExecutionDisabled() {
@@ -13334,8 +13319,7 @@ const _sfc_main$w = defineComponent({
13334
13319
  this.clipboard.onPaste.value = this.onClipboardPasteEvent;
13335
13320
  this.canvasStore.startLoading();
13336
13321
  const loadPromises = (() => {
13337
- if (this.settingsStore.isPreviewMode && this.isDemo)
13338
- return [];
13322
+ if (this.settingsStore.isPreviewMode && this.isDemo) return [];
13339
13323
  const promises = [this.loadActiveWorkflows(), this.loadCredentialTypes()];
13340
13324
  if (this.settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.Variables]) {
13341
13325
  promises.push(this.loadVariables());
@@ -13547,7 +13531,11 @@ const _sfc_main$w = defineComponent({
13547
13531
  };
13548
13532
  this.$telemetry.track("User clicked execute node button", telemetryPayload);
13549
13533
  void this.externalHooks.run("nodeView.onRunNode", telemetryPayload);
13550
- void this.runWorkflow({ destinationNode: nodeName, source });
13534
+ if (!this.isExecutionPreview && this.workflowsStore.isWaitingExecution) {
13535
+ void this.runWorkflowResolvePending({ destinationNode: nodeName, source });
13536
+ } else {
13537
+ void this.runWorkflow({ destinationNode: nodeName, source });
13538
+ }
13551
13539
  },
13552
13540
  async onOpenChat() {
13553
13541
  const telemetryPayload = {
@@ -13572,7 +13560,11 @@ const _sfc_main$w = defineComponent({
13572
13560
  this.$telemetry.track("User clicked execute workflow button", telemetryPayload);
13573
13561
  void this.externalHooks.run("nodeView.onRunWorkflow", telemetryPayload);
13574
13562
  });
13575
- await this.runWorkflow({});
13563
+ if (!this.isExecutionPreview && this.workflowsStore.isWaitingExecution) {
13564
+ void this.runWorkflowResolvePending({});
13565
+ } else {
13566
+ void this.runWorkflow({});
13567
+ }
13576
13568
  this.refreshEndpointsErrorsState();
13577
13569
  },
13578
13570
  resetEndpointsErrors() {
@@ -13607,8 +13599,7 @@ const _sfc_main$w = defineComponent({
13607
13599
  });
13608
13600
  },
13609
13601
  onRunContainerClick() {
13610
- if (this.containsTrigger && !this.allTriggersDisabled)
13611
- return;
13602
+ if (this.containsTrigger && !this.allTriggersDisabled) return;
13612
13603
  const message = this.containsTrigger && this.allTriggersDisabled ? this.$locale.baseText("nodeView.addOrEnableTriggerNode") : this.$locale.baseText("nodeView.addATriggerNodeFirst");
13613
13604
  const notice = this.showMessage({
13614
13605
  type: "info",
@@ -13616,13 +13607,12 @@ const _sfc_main$w = defineComponent({
13616
13607
  message,
13617
13608
  duration: 3e3,
13618
13609
  onClick: () => setTimeout(() => {
13619
- if (this.createNodeActive)
13620
- notice.close();
13610
+ if (this.createNodeActive) notice.close();
13621
13611
  }, 0),
13622
13612
  dangerouslyUseHTMLString: true
13623
13613
  });
13624
13614
  },
13625
- clearExecutionData() {
13615
+ async clearExecutionData() {
13626
13616
  this.workflowsStore.workflowExecutionData = null;
13627
13617
  this.nodeHelpers.updateNodesExecutionIssues();
13628
13618
  },
@@ -13655,8 +13645,7 @@ const _sfc_main$w = defineComponent({
13655
13645
  this.showTriggerCreator(NODE_CREATOR_OPEN_SOURCES.TRIGGER_PLACEHOLDER_BUTTON);
13656
13646
  },
13657
13647
  showTriggerCreator(source) {
13658
- if (this.createNodeActive)
13659
- return;
13648
+ if (this.createNodeActive) return;
13660
13649
  this.ndvStore.activeNodeName = null;
13661
13650
  this.nodeCreatorStore.setSelectedView(TRIGGER_NODE_CREATOR_VIEW);
13662
13651
  this.nodeCreatorStore.setShowScrim(true);
@@ -13719,15 +13708,14 @@ const _sfc_main$w = defineComponent({
13719
13708
  let nodeErrorFound = false;
13720
13709
  if (data.data.resultData.runData) {
13721
13710
  const runData2 = data.data.resultData.runData;
13722
- errorCheck:
13723
- for (const nodeName of Object.keys(runData2)) {
13724
- for (const taskData of runData2[nodeName]) {
13725
- if (taskData.error) {
13726
- nodeErrorFound = true;
13727
- break errorCheck;
13728
- }
13711
+ errorCheck: for (const nodeName of Object.keys(runData2)) {
13712
+ for (const taskData of runData2[nodeName]) {
13713
+ if (taskData.error) {
13714
+ nodeErrorFound = true;
13715
+ break errorCheck;
13729
13716
  }
13730
13717
  }
13718
+ }
13731
13719
  }
13732
13720
  if (!nodeErrorFound && (data.data.resultData.error.stack || data.data.resultData.error.message)) {
13733
13721
  console.error(`Execution ${executionId} error:`);
@@ -14093,7 +14081,7 @@ const _sfc_main$w = defineComponent({
14093
14081
  if (!this.editAllowedCheck()) {
14094
14082
  return;
14095
14083
  }
14096
- this.nodeHelpers.disableNodes(nodes, true);
14084
+ this.nodeHelpers.disableNodes(nodes, { trackHistory: true, trackBulk: true });
14097
14085
  },
14098
14086
  togglePinNodes(nodes, source) {
14099
14087
  if (!this.editAllowedCheck()) {
@@ -14490,14 +14478,11 @@ const _sfc_main$w = defineComponent({
14490
14478
  }
14491
14479
  },
14492
14480
  removeUnknownCredentials(workflow) {
14493
- if (!(workflow == null ? void 0 : workflow.nodes))
14494
- return;
14481
+ if (!(workflow == null ? void 0 : workflow.nodes)) return;
14495
14482
  for (const node2 of workflow.nodes) {
14496
- if (!node2.credentials)
14497
- continue;
14483
+ if (!node2.credentials) continue;
14498
14484
  for (const [name, credential] of Object.entries(node2.credentials)) {
14499
- if (typeof credential === "string" || credential.id === null)
14500
- continue;
14485
+ if (typeof credential === "string" || credential.id === null) continue;
14501
14486
  if (!this.credentialsStore.getCredentialById(credential.id)) {
14502
14487
  delete node2.credentials[name];
14503
14488
  }
@@ -14907,8 +14892,7 @@ const _sfc_main$w = defineComponent({
14907
14892
  let filter;
14908
14893
  const workflow = this.workflowHelpers.getCurrentWorkflow();
14909
14894
  const workflowNode = workflow.getNode(nodeName);
14910
- if (!workflowNode)
14911
- return { nodes: [] };
14895
+ if (!workflowNode) return { nodes: [] };
14912
14896
  const nodeType = this.nodeTypesStore.getNodeType(
14913
14897
  workflowNode == null ? void 0 : workflowNode.type,
14914
14898
  workflowNode.typeVersion
@@ -15178,16 +15162,14 @@ const _sfc_main$w = defineComponent({
15178
15162
  showOrHideMidpointArrow(connection);
15179
15163
  Object.values(connection.overlays).forEach((overlay) => {
15180
15164
  var _a2;
15181
- if (!overlay.canvas)
15182
- return;
15165
+ if (!overlay.canvas) return;
15183
15166
  (_a2 = this.instance) == null ? void 0 : _a2.repaint(overlay.canvas);
15184
15167
  });
15185
15168
  });
15186
15169
  },
15187
15170
  isConnectionActive(connection) {
15188
15171
  var _a, _b;
15189
- if (!(connection == null ? void 0 : connection.id) || !((_a = this.activeConnection) == null ? void 0 : _a.id))
15190
- return false;
15172
+ if (!(connection == null ? void 0 : connection.id) || !((_a = this.activeConnection) == null ? void 0 : _a.id)) return false;
15191
15173
  return ((_b = this.activeConnection) == null ? void 0 : _b.id) === connection.id;
15192
15174
  },
15193
15175
  onConnectionMouseOver(connection) {
@@ -15218,8 +15200,7 @@ const _sfc_main$w = defineComponent({
15218
15200
  },
15219
15201
  onConnectionMouseOut(connection) {
15220
15202
  try {
15221
- if (this.exitTimer)
15222
- return;
15203
+ if (this.exitTimer) return;
15223
15204
  if (this.enterTimer) {
15224
15205
  clearTimeout(this.enterTimer);
15225
15206
  this.enterTimer = void 0;
@@ -15265,13 +15246,11 @@ const _sfc_main$w = defineComponent({
15265
15246
  }
15266
15247
  },
15267
15248
  onEndpointMouseOver(endpoint, mouse) {
15268
- if (!endpoint.isTarget || mouse.target !== endpoint.endpoint.canvas)
15269
- return;
15249
+ if (!endpoint.isTarget || mouse.target !== endpoint.endpoint.canvas) return;
15270
15250
  this.instance.setHover(endpoint, true);
15271
15251
  },
15272
15252
  onEndpointMouseOut(endpoint) {
15273
- if (!endpoint.isTarget)
15274
- return;
15253
+ if (!endpoint.isTarget) return;
15275
15254
  this.instance.setHover(endpoint, false);
15276
15255
  },
15277
15256
  async onConnectionDetached(info) {
@@ -15334,11 +15313,9 @@ const _sfc_main$w = defineComponent({
15334
15313
  const connectionType2 = connection.parameters.connection;
15335
15314
  const requiredType = connectionType2 === "source" ? "target" : "source";
15336
15315
  const filteredEndpoints = scopedEndpoints.filter((el) => {
15337
- if (!isJSPlumbEndpointElement(el))
15338
- return false;
15316
+ if (!isJSPlumbEndpointElement(el)) return false;
15339
15317
  const endpoint = el.jtk.endpoint;
15340
- if (!endpoint)
15341
- return false;
15318
+ if (!endpoint) return false;
15342
15319
  const isSameNode = endpoint.parameters.nodeId === connection.parameters.nodeId;
15343
15320
  const endpointType = endpoint.parameters.connection;
15344
15321
  return !isSameNode && endpointType === requiredType;
@@ -15348,8 +15325,7 @@ const _sfc_main$w = defineComponent({
15348
15325
  return;
15349
15326
  }
15350
15327
  const intersectingEndpoints = filteredEndpoints.filter((element) => {
15351
- if (!isJSPlumbEndpointElement(element))
15352
- return false;
15328
+ if (!isJSPlumbEndpointElement(element)) return false;
15353
15329
  const endpoint = element.jtk.endpoint;
15354
15330
  if (element.classList.contains("jtk-floating-endpoint")) {
15355
15331
  return false;
@@ -15364,8 +15340,7 @@ const _sfc_main$w = defineComponent({
15364
15340
  const node2 = this.workflowsStore.getNodeById(endpoint.parameters.nodeId);
15365
15341
  if (node2) {
15366
15342
  const nodeType = this.nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
15367
- if (!nodeType)
15368
- return false;
15343
+ if (!nodeType) return false;
15369
15344
  return true;
15370
15345
  }
15371
15346
  }
@@ -15376,10 +15351,8 @@ const _sfc_main$w = defineComponent({
15376
15351
  if (!(aEndpointIntersect == null ? void 0 : aEndpointIntersect.y) && !(bEndpointIntersect == null ? void 0 : bEndpointIntersect.y)) {
15377
15352
  return 0;
15378
15353
  }
15379
- if (!(aEndpointIntersect == null ? void 0 : aEndpointIntersect.y))
15380
- return 1;
15381
- if (!(bEndpointIntersect == null ? void 0 : bEndpointIntersect.y))
15382
- return -1;
15354
+ if (!(aEndpointIntersect == null ? void 0 : aEndpointIntersect.y)) return 1;
15355
+ if (!(bEndpointIntersect == null ? void 0 : bEndpointIntersect.y)) return -1;
15383
15356
  return bEndpointIntersect.y - aEndpointIntersect.y;
15384
15357
  });
15385
15358
  if (intersectingEndpoints.length > 0 && isJSPlumbEndpointElement(intersectingEndpoints[0])) {
@@ -15442,8 +15415,7 @@ const _sfc_main$w = defineComponent({
15442
15415
  }
15443
15416
  },
15444
15417
  bindCanvasEvents() {
15445
- if (this.eventsAttached)
15446
- return;
15418
+ if (this.eventsAttached) return;
15447
15419
  this.instance.bind(EVENT_CONNECTION_ABORT, this.onEventConnectionAbort);
15448
15420
  this.instance.bind(INTERCEPT_BEFORE_DROP, this.onInterceptBeforeDrop);
15449
15421
  this.instance.bind(EVENT_CONNECTION, this.onEventConnection);
@@ -15560,8 +15532,7 @@ const _sfc_main$w = defineComponent({
15560
15532
  );
15561
15533
  if (confirmModal === MODAL_CONFIRM) {
15562
15534
  const saved = await this.workflowHelpers.saveCurrentWorkflow();
15563
- if (saved)
15564
- await this.npsSurveyStore.fetchPromptsData();
15535
+ if (saved) await this.npsSurveyStore.fetchPromptsData();
15565
15536
  } else if (confirmModal === MODAL_CANCEL) {
15566
15537
  return;
15567
15538
  }
@@ -15650,7 +15621,7 @@ const _sfc_main$w = defineComponent({
15650
15621
  onNodeRun({
15651
15622
  name,
15652
15623
  data,
15653
- waiting
15624
+ waiting: waiting2
15654
15625
  }) {
15655
15626
  var _a;
15656
15627
  const pinData = this.workflowsStore.pinnedWorkflowData;
@@ -15673,7 +15644,7 @@ const _sfc_main$w = defineComponent({
15673
15644
  const sourceNodeName = name;
15674
15645
  const sourceNode = this.workflowsStore.getNodeByName(sourceNodeName);
15675
15646
  const sourceId = sourceNode !== null ? sourceNode.id : "";
15676
- if (data === null || data.length === 0 || waiting) {
15647
+ if (data === null || data.length === 0 || waiting2) {
15677
15648
  const sourceElement = document.getElementById(sourceId);
15678
15649
  if (!sourceElement) {
15679
15650
  return;
@@ -16178,8 +16149,7 @@ const _sfc_main$w = defineComponent({
16178
16149
  }
16179
16150
  },
16180
16151
  onToggleNodeCreator({ source, createNodeActive, nodeCreatorView }) {
16181
- if (createNodeActive === this.createNodeActive)
16182
- return;
16152
+ if (createNodeActive === this.createNodeActive) return;
16183
16153
  if (!nodeCreatorView) {
16184
16154
  nodeCreatorView = this.containsTrigger ? REGULAR_NODE_CREATOR_VIEW : TRIGGER_NODE_CREATOR_VIEW;
16185
16155
  }
@@ -16196,8 +16166,7 @@ const _sfc_main$w = defineComponent({
16196
16166
  default:
16197
16167
  mode = "regular";
16198
16168
  }
16199
- if (createNodeActive && source)
16200
- this.nodeCreatorStore.setOpenSource(source);
16169
+ if (createNodeActive && source) this.nodeCreatorStore.setOpenSource(source);
16201
16170
  void this.externalHooks.run("nodeView.createNodeActiveChanged", {
16202
16171
  source,
16203
16172
  mode,
@@ -16244,8 +16213,7 @@ const _sfc_main$w = defineComponent({
16244
16213
  if (lastNodeInputs.length > 1) {
16245
16214
  lastNodeInputs.slice(1).forEach((node2, index) => {
16246
16215
  const nodeUi = this.workflowsStore.getNodeByName(node2.name);
16247
- if (!nodeUi)
16248
- return;
16216
+ if (!nodeUi) return;
16249
16217
  this.onMoveNode({
16250
16218
  nodeName: nodeUi.name,
16251
16219
  position: [nodeUi.position[0], nodeUi.position[1] + 100 * (index + 1)]
@@ -16417,9 +16385,9 @@ const style2 = {
16417
16385
  shake,
16418
16386
  setupCredentialsButtonWrapper
16419
16387
  };
16420
- const _withScopeId = (n) => (pushScopeId("data-v-15661dcd"), n = n(), popScopeId(), n);
16388
+ const _withScopeId = (n) => (pushScopeId("data-v-266ff160"), n = n(), popScopeId(), n);
16421
16389
  const _hoisted_1$6 = ["textContent"];
16422
- const _hoisted_2$5 = {
16390
+ const _hoisted_2$4 = {
16423
16391
  key: 0,
16424
16392
  class: "workflow-execute-wrapper"
16425
16393
  };
@@ -16578,7 +16546,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
16578
16546
  ]),
16579
16547
  _: 1
16580
16548
  })),
16581
- !_ctx.isReadOnlyRoute && !_ctx.readOnlyEnv && (_ctx.workflowPermissions.update ?? _ctx.projectPermissions.workflow.update) ? (openBlock(), createElementBlock("div", _hoisted_2$5, [
16549
+ !_ctx.isReadOnlyRoute && !_ctx.readOnlyEnv && (_ctx.workflowPermissions.update ?? _ctx.projectPermissions.workflow.update) ? (openBlock(), createElementBlock("div", _hoisted_2$4, [
16582
16550
  !_ctx.isManualChatOnly ? (openBlock(), createElementBlock("span", {
16583
16551
  key: 0,
16584
16552
  onMouseenter: _cache[10] || (_cache[10] = ($event) => _ctx.showTriggerMissingToltip(true)),
@@ -16649,7 +16617,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
16649
16617
  const cssModules$n = {
16650
16618
  "$style": style2
16651
16619
  };
16652
- const NodeViewV1 = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$1], ["__cssModules", cssModules$n], ["__scopeId", "data-v-15661dcd"]]);
16620
+ const NodeViewV1 = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$1], ["__cssModules", cssModules$n], ["__scopeId", "data-v-266ff160"]]);
16653
16621
  const _sfc_main$v = {};
16654
16622
  function _sfc_render(_ctx, _cache) {
16655
16623
  const _component_N8nButton = resolveComponent("N8nButton");
@@ -16808,7 +16776,9 @@ function getCustomPath(props, {
16808
16776
  function useCanvas() {
16809
16777
  const canvas2 = inject(CanvasKey);
16810
16778
  const connectingHandle = computed(() => canvas2 == null ? void 0 : canvas2.connectingHandle.value);
16779
+ const isExecuting = computed(() => canvas2 == null ? void 0 : canvas2.isExecuting.value);
16811
16780
  return {
16781
+ isExecuting,
16812
16782
  connectingHandle
16813
16783
  };
16814
16784
  }
@@ -16944,7 +16914,7 @@ function useCanvasNode() {
16944
16914
  };
16945
16915
  }
16946
16916
  const _hoisted_1$5 = ["title"];
16947
- const _hoisted_2$4 = ["onClick"];
16917
+ const _hoisted_2$3 = ["onClick"];
16948
16918
  const _sfc_main$s = /* @__PURE__ */ defineComponent({
16949
16919
  __name: "CanvasNodeStickyColorSelector",
16950
16920
  emits: ["update"],
@@ -17026,7 +16996,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
17026
16996
  renderOptions.value.color === color2 ? _ctx.$style.selected : ""
17027
16997
  ]),
17028
16998
  onClick: ($event) => changeColor(color2)
17029
- }, null, 10, _hoisted_2$4);
16999
+ }, null, 10, _hoisted_2$3);
17030
17000
  }), 128))
17031
17001
  ], 2)
17032
17002
  ]),
@@ -17058,8 +17028,6 @@ const cssModules$l = {
17058
17028
  "$style": style0$l
17059
17029
  };
17060
17030
  const __unplugin_components_0$3 = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__cssModules", cssModules$l]]);
17061
- const workflowRunning = false;
17062
- const nodeDisabledTitle = "Test";
17063
17031
  const _sfc_main$r = /* @__PURE__ */ defineComponent({
17064
17032
  __name: "CanvasNodeToolbar",
17065
17033
  props: {
@@ -17071,7 +17039,11 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
17071
17039
  const props = __props;
17072
17040
  const $style = useCssModule();
17073
17041
  const i18n2 = useI18n();
17074
- const { render } = useCanvasNode();
17042
+ const { isExecuting } = useCanvas();
17043
+ const { isDisabled, render } = useCanvasNode();
17044
+ const nodeDisabledTitle = computed(() => {
17045
+ return isDisabled.value ? i18n2.baseText("node.disable") : i18n2.baseText("node.enable");
17046
+ });
17075
17047
  const classes = computed(() => ({
17076
17048
  [$style.canvasNodeToolbar]: true,
17077
17049
  [$style.readOnly]: props.readOnly
@@ -17119,10 +17091,10 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
17119
17091
  text: "",
17120
17092
  size: "small",
17121
17093
  icon: "play",
17122
- disabled: workflowRunning,
17094
+ disabled: unref(isExecuting),
17123
17095
  title: unref(i18n2).baseText("node.testStep"),
17124
17096
  onClick: executeNode
17125
- }, null, 8, ["title"])) : createCommentVNode("", true),
17097
+ }, null, 8, ["disabled", "title"])) : createCommentVNode("", true),
17126
17098
  isDisableNodeVisible.value ? (openBlock(), createBlock(_component_N8nIconButton, {
17127
17099
  key: 1,
17128
17100
  "data-test-id": "disable-node-button",
@@ -17130,9 +17102,9 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
17130
17102
  text: "",
17131
17103
  size: "small",
17132
17104
  icon: "power-off",
17133
- title: nodeDisabledTitle,
17105
+ title: nodeDisabledTitle.value,
17134
17106
  onClick: onToggleNode
17135
- })) : createCommentVNode("", true),
17107
+ }, null, 8, ["title"])) : createCommentVNode("", true),
17136
17108
  isDeleteNodeVisible.value ? (openBlock(), createBlock(_component_N8nIconButton, {
17137
17109
  key: 2,
17138
17110
  "data-test-id": "delete-node-button",
@@ -17203,10 +17175,9 @@ function useNodeConnections({
17203
17175
  const { type: targetType, mode: targetMode } = parseCanvasConnectionHandleString(
17204
17176
  connection.targetHandle
17205
17177
  );
17206
- const isSameNode = connection.source === connection.target;
17207
17178
  const isSameMode = sourceMode === targetMode;
17208
17179
  const isSameType = sourceType === targetType;
17209
- return !isSameNode && !isSameMode && isSameType;
17180
+ return !isSameMode && isSameType;
17210
17181
  }
17211
17182
  return {
17212
17183
  mainInputs,
@@ -17247,8 +17218,9 @@ const cssModules$j = {
17247
17218
  "$style": style0$j
17248
17219
  };
17249
17220
  const CanvasNodeDisabledStrikeThrough = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__cssModules", cssModules$j]]);
17250
- const _hoisted_1$4 = ["textContent"];
17251
- const _hoisted_2$3 = { key: 3 };
17221
+ const _hoisted_1$4 = { key: 1 };
17222
+ const _hoisted_2$2 = ["textContent"];
17223
+ const _hoisted_3$2 = { key: 3 };
17252
17224
  const _sfc_main$p = /* @__PURE__ */ defineComponent({
17253
17225
  __name: "CanvasNodeStatusIcons",
17254
17226
  setup(__props) {
@@ -17288,28 +17260,37 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
17288
17260
  ]),
17289
17261
  _: 1
17290
17262
  })
17291
- ], 2)) : unref(executionWaiting) || unref(executionStatus) === "waiting" ? (openBlock(), createElementBlock("div", {
17292
- key: 1,
17293
- class: normalizeClass([_ctx.$style.status, _ctx.$style.waiting])
17294
- }, [
17295
- createVNode(_component_N8nTooltip, { placement: "bottom" }, {
17296
- content: withCtx(() => [
17297
- createBaseVNode("div", {
17298
- textContent: toDisplayString(unref(executionWaiting))
17299
- }, null, 8, _hoisted_1$4)
17300
- ]),
17301
- default: withCtx(() => [
17302
- createVNode(_component_FontAwesomeIcon, { icon: "clock" })
17303
- ]),
17304
- _: 1
17305
- })
17306
- ], 2)) : unref(hasPinnedData) && !unref(nodeHelpers).isProductionExecutionPreview.value && !unref(isDisabled) ? (openBlock(), createElementBlock("div", {
17263
+ ], 2)) : unref(executionWaiting) || unref(executionStatus) === "waiting" ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
17264
+ createBaseVNode("div", {
17265
+ class: normalizeClass([_ctx.$style.status, _ctx.$style.waiting])
17266
+ }, [
17267
+ createVNode(_component_N8nTooltip, { placement: "bottom" }, {
17268
+ content: withCtx(() => [
17269
+ createBaseVNode("div", {
17270
+ textContent: toDisplayString(unref(executionWaiting))
17271
+ }, null, 8, _hoisted_2$2)
17272
+ ]),
17273
+ default: withCtx(() => [
17274
+ createVNode(_component_FontAwesomeIcon, { icon: "clock" })
17275
+ ]),
17276
+ _: 1
17277
+ })
17278
+ ], 2),
17279
+ createBaseVNode("div", {
17280
+ class: normalizeClass([_ctx.$style.status, _ctx.$style["node-waiting-spinner"]])
17281
+ }, [
17282
+ createVNode(_component_FontAwesomeIcon, {
17283
+ icon: "sync-alt",
17284
+ spin: ""
17285
+ })
17286
+ ], 2)
17287
+ ])) : unref(hasPinnedData) && !unref(nodeHelpers).isProductionExecutionPreview.value && !unref(isDisabled) ? (openBlock(), createElementBlock("div", {
17307
17288
  key: 2,
17308
17289
  "data-test-id": "canvas-node-status-pinned",
17309
17290
  class: normalizeClass([_ctx.$style.status, _ctx.$style.pinnedData])
17310
17291
  }, [
17311
17292
  createVNode(_component_FontAwesomeIcon, { icon: "thumbtack" })
17312
- ], 2)) : unref(executionStatus) === "unknown" ? (openBlock(), createElementBlock("div", _hoisted_2$3)) : unref(executionRunning) || unref(executionStatus) === "running" ? (openBlock(), createElementBlock("div", {
17293
+ ], 2)) : unref(executionStatus) === "unknown" ? (openBlock(), createElementBlock("div", _hoisted_3$2)) : unref(executionRunning) || unref(executionStatus) === "running" ? (openBlock(), createElementBlock("div", {
17313
17294
  key: 4,
17314
17295
  "data-test-id": "canvas-node-status-running",
17315
17296
  class: normalizeClass([_ctx.$style.status, _ctx.$style.running])
@@ -17332,17 +17313,20 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
17332
17313
  };
17333
17314
  }
17334
17315
  });
17335
- const status = "_status_r5e7l_1";
17336
- const runData = "_runData_r5e7l_7";
17337
- const pinnedData = "_pinnedData_r5e7l_12";
17338
- const running$1 = "_running_r5e7l_16";
17339
- const issues = "_issues_r5e7l_26";
17340
- const count = "_count_r5e7l_31";
17316
+ const status = "_status_l067o_1";
17317
+ const runData = "_runData_l067o_7";
17318
+ const waiting$1 = "_waiting_l067o_12";
17319
+ const pinnedData = "_pinnedData_l067o_16";
17320
+ const running$1 = "_running_l067o_20";
17321
+ const issues = "_issues_l067o_43";
17322
+ const count = "_count_l067o_48";
17341
17323
  const style0$i = {
17342
17324
  status,
17343
17325
  runData,
17326
+ waiting: waiting$1,
17344
17327
  pinnedData,
17345
17328
  running: running$1,
17329
+ "node-waiting-spinner": "_node-waiting-spinner_l067o_30",
17346
17330
  issues,
17347
17331
  count
17348
17332
  };
@@ -17351,7 +17335,6 @@ const cssModules$i = {
17351
17335
  };
17352
17336
  const CanvasNodeStatusIcons = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__cssModules", cssModules$i]]);
17353
17337
  const _hoisted_1$3 = ["data-test-id"];
17354
- const _hoisted_2$2 = { key: 0 };
17355
17338
  const _sfc_main$o = /* @__PURE__ */ defineComponent({
17356
17339
  __name: "CanvasNodeDefault",
17357
17340
  emits: ["open:contextmenu"],
@@ -17368,6 +17351,8 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17368
17351
  isDisabled,
17369
17352
  isSelected,
17370
17353
  hasPinnedData,
17354
+ executionStatus,
17355
+ executionWaiting,
17371
17356
  executionRunning,
17372
17357
  hasRunData,
17373
17358
  hasIssues: hasIssues2,
@@ -17394,6 +17379,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17394
17379
  [$style.success]: hasRunData.value,
17395
17380
  [$style.error]: hasIssues2.value,
17396
17381
  [$style.pinned]: hasPinnedData.value,
17382
+ [$style.waiting]: executionWaiting.value ?? executionStatus.value === "waiting",
17397
17383
  [$style.running]: executionRunning.value,
17398
17384
  [$style.configurable]: renderOptions.value.configurable,
17399
17385
  [$style.configuration]: renderOptions.value.configuration,
@@ -17476,12 +17462,13 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17476
17462
  unref(label2) ? (openBlock(), createElementBlock("div", {
17477
17463
  key: 0,
17478
17464
  class: normalizeClass(unref($style).label)
17479
- }, [
17480
- createTextVNode(toDisplayString(unref(label2)) + " ", 1),
17481
- unref(isDisabled) ? (openBlock(), createElementBlock("div", _hoisted_2$2, "(" + toDisplayString(unref(i18n2).baseText("node.disabled")) + ")", 1)) : createCommentVNode("", true)
17482
- ], 2)) : createCommentVNode("", true),
17483
- unref(subtitle2) ? (openBlock(), createElementBlock("div", {
17465
+ }, toDisplayString(unref(label2)), 3)) : createCommentVNode("", true),
17466
+ unref(isDisabled) ? (openBlock(), createElementBlock("div", {
17484
17467
  key: 1,
17468
+ class: normalizeClass(unref($style).disabledLabel)
17469
+ }, " (" + toDisplayString(unref(i18n2).baseText("node.disabled")) + ") ", 3)) : createCommentVNode("", true),
17470
+ unref(subtitle2) ? (openBlock(), createElementBlock("div", {
17471
+ key: 2,
17485
17472
  class: normalizeClass(unref($style).subtitle)
17486
17473
  }, toDisplayString(unref(subtitle2)), 3)) : createCommentVNode("", true)
17487
17474
  ], 2)
@@ -17489,21 +17476,23 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17489
17476
  };
17490
17477
  }
17491
17478
  });
17492
- const node = "_node_11rg8_1";
17493
- const trigger = "_trigger_11rg8_32";
17494
- const configuration = "_configuration_11rg8_35";
17495
- const statusIcons = "_statusIcons_11rg8_42";
17496
- const configurable = "_configurable_11rg8_45";
17497
- const description = "_description_11rg8_52";
17498
- const label$5 = "_label_11rg8_61";
17499
- const selected$1 = "_selected_11rg8_71";
17500
- const success$1 = "_success_11rg8_74";
17501
- const error = "_error_11rg8_77";
17502
- const pinned = "_pinned_11rg8_80";
17503
- const disabled = "_disabled_11rg8_83";
17504
- const running = "_running_11rg8_86";
17505
- const subtitle = "_subtitle_11rg8_116";
17506
- const triggerIcon = "_triggerIcon_11rg8_134";
17479
+ const node = "_node_ow105_1";
17480
+ const trigger = "_trigger_ow105_32";
17481
+ const configuration = "_configuration_ow105_35";
17482
+ const statusIcons = "_statusIcons_ow105_42";
17483
+ const configurable = "_configurable_ow105_45";
17484
+ const description = "_description_ow105_52";
17485
+ const label$5 = "_label_ow105_61";
17486
+ const selected$1 = "_selected_ow105_71";
17487
+ const success$1 = "_success_ow105_74";
17488
+ const error = "_error_ow105_77";
17489
+ const pinned = "_pinned_ow105_80";
17490
+ const disabled = "_disabled_ow105_83";
17491
+ const running = "_running_ow105_86";
17492
+ const waiting = "_waiting_ow105_90";
17493
+ const disabledLabel = "_disabledLabel_ow105_107";
17494
+ const subtitle = "_subtitle_ow105_120";
17495
+ const triggerIcon = "_triggerIcon_ow105_138";
17507
17496
  const style0$h = {
17508
17497
  node,
17509
17498
  trigger,
@@ -17518,6 +17507,8 @@ const style0$h = {
17518
17507
  pinned,
17519
17508
  disabled,
17520
17509
  running,
17510
+ waiting,
17511
+ disabledLabel,
17521
17512
  subtitle,
17522
17513
  triggerIcon
17523
17514
  };
@@ -17920,14 +17911,14 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
17920
17911
  };
17921
17912
  }
17922
17913
  });
17923
- const wrapper$1 = "_wrapper_13ue6_1";
17924
- const ai = "_ai_13ue6_4";
17925
- const line = "_line_13ue6_4";
17926
- const plus$1 = "_plus_13ue6_7";
17927
- const success = "_success_13ue6_13";
17914
+ const wrapper$1 = "_wrapper_uls3v_1";
17915
+ const secondary = "_secondary_uls3v_4";
17916
+ const line = "_line_uls3v_4";
17917
+ const plus$1 = "_plus_uls3v_7";
17918
+ const success = "_success_uls3v_13";
17928
17919
  const style0$c = {
17929
17920
  wrapper: wrapper$1,
17930
- ai,
17921
+ secondary,
17931
17922
  line,
17932
17923
  plus: plus$1,
17933
17924
  success
@@ -17974,6 +17965,10 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
17974
17965
  }));
17975
17966
  const isHovered = ref(false);
17976
17967
  const renderOptions = computed(() => render.value.options);
17968
+ const runDataTotal = computed(() => {
17969
+ var _a;
17970
+ return ((_a = runData2.value) == null ? void 0 : _a.total) ?? 0;
17971
+ });
17977
17972
  const runDataLabel2 = computed(
17978
17973
  () => runData2.value ? i18n2.baseText("ndv.output.items", {
17979
17974
  adjustToNumber: runData2.value.total,
@@ -17981,7 +17976,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
17981
17976
  }) : ""
17982
17977
  );
17983
17978
  const isHandlePlusVisible = computed(() => !isConnecting.value || isHovered.value);
17984
- const plusType = computed(() => runData2.value ? "success" : "default");
17979
+ const plusType = computed(() => runDataTotal.value > 0 ? "success" : "default");
17985
17980
  const plusLineSize = computed(
17986
17981
  () => {
17987
17982
  var _a;
@@ -17989,7 +17984,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
17989
17984
  small: 46,
17990
17985
  medium: 66,
17991
17986
  large: 80
17992
- }[((_a = renderOptions.value.outputs) == null ? void 0 : _a.labelSize) ?? runData2.value ? "large" : "small"];
17987
+ }[(runDataTotal.value > 0 ? "large" : (_a = renderOptions.value.outputs) == null ? void 0 : _a.labelSize) ?? "small"];
17993
17988
  }
17994
17989
  );
17995
17990
  function onMouseEnter() {
@@ -18080,7 +18075,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
18080
18075
  setup(__props, { emit: __emit }) {
18081
18076
  const emit = __emit;
18082
18077
  const $style = useCssModule();
18083
- const { label: label2, isConnected, isConnecting, isRequired, type, runData: runData2 } = useCanvasNodeHandle();
18078
+ const { label: label2, isConnected, isConnecting, isRequired, type } = useCanvasNodeHandle();
18084
18079
  const classes = computed(() => ({
18085
18080
  "canvas-node-handle-non-main-input": true,
18086
18081
  [$style.handle]: true,
@@ -18093,7 +18088,6 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
18093
18088
  const isHandlePlusVisible = computed(
18094
18089
  () => !isConnecting.value || isHovered.value || supportsMultipleConnections.value
18095
18090
  );
18096
- const plusType = computed(() => runData2.value ? "success" : "ai");
18097
18091
  const isHovered = ref(false);
18098
18092
  function onMouseEnter() {
18099
18093
  isHovered.value = true;
@@ -18118,12 +18112,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
18118
18112
  isHandlePlusAvailable.value ? withDirectives((openBlock(), createBlock(CanvasHandlePlus, {
18119
18113
  key: 0,
18120
18114
  "handle-classes": handleClasses$1,
18121
- type: plusType.value,
18115
+ type: "secondary",
18122
18116
  position: "bottom",
18123
18117
  onMouseenter: onMouseEnter,
18124
18118
  onMouseleave: onMouseLeave,
18125
18119
  "onClick:plus": onClickAdd
18126
- }, null, 8, ["type"])), [
18120
+ }, null, 512)), [
18127
18121
  [vShow, isHandlePlusVisible.value]
18128
18122
  ]) : createCommentVNode("", true)
18129
18123
  ]),
@@ -18211,25 +18205,16 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
18211
18205
  const handleType = computed(
18212
18206
  () => props.mode === CanvasConnectionMode.Input ? "target" : "source"
18213
18207
  );
18214
- const handleString = computed(
18215
- () => createCanvasConnectionHandleString({
18216
- mode: props.mode,
18217
- type: props.type,
18218
- index: props.index
18219
- })
18220
- );
18221
18208
  const handleClasses2 = computed(() => [style.handle, style[props.type], style[props.mode]]);
18222
18209
  const connectionsLimitReached = computed(() => {
18223
18210
  return props.maxConnections && props.connectionsCount >= props.maxConnections;
18224
18211
  });
18225
18212
  const isConnectableStart = computed(() => {
18226
- if (connectionsLimitReached.value)
18227
- return false;
18213
+ if (connectionsLimitReached.value) return false;
18228
18214
  return props.mode === CanvasConnectionMode.Output || props.type !== NodeConnectionType.Main;
18229
18215
  });
18230
18216
  const isConnectableEnd = computed(() => {
18231
- if (connectionsLimitReached.value)
18232
- return false;
18217
+ if (connectionsLimitReached.value) return false;
18233
18218
  return props.mode === CanvasConnectionMode.Input || props.type !== NodeConnectionType.Main;
18234
18219
  });
18235
18220
  const isConnected = computed(() => props.connectionsCount > 0);
@@ -18259,7 +18244,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
18259
18244
  return Component ? h(Component) : null;
18260
18245
  };
18261
18246
  function onAdd() {
18262
- emit("add", handleString.value);
18247
+ emit("add", props.handleId);
18263
18248
  }
18264
18249
  const label2 = toRef$1(props, "label");
18265
18250
  const isConnecting = toRef$1(props, "isConnecting");
@@ -18281,7 +18266,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
18281
18266
  });
18282
18267
  return (_ctx, _cache) => {
18283
18268
  return openBlock(), createBlock(unref(_sfc_main$f$1), mergeProps(_ctx.$attrs, {
18284
- id: handleString.value,
18269
+ id: _ctx.handleId,
18285
18270
  class: handleClasses2.value,
18286
18271
  type: handleType.value,
18287
18272
  position: _ctx.position,
@@ -18505,7 +18490,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
18505
18490
  }, [
18506
18491
  (openBlock(true), createElementBlock(Fragment, null, renderList(mappedOutputs.value, (source) => {
18507
18492
  return openBlock(), createBlock(CanvasHandleRenderer, mergeProps({
18508
- key: source.handleId
18493
+ key: `${source.handleId}(${source.index + 1}/${mappedOutputs.value.length})`
18509
18494
  }, source, {
18510
18495
  mode: unref(CanvasConnectionMode).Output,
18511
18496
  "is-read-only": readOnly.value,
@@ -18516,7 +18501,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
18516
18501
  }), 128)),
18517
18502
  (openBlock(true), createElementBlock(Fragment, null, renderList(mappedInputs.value, (target2) => {
18518
18503
  return openBlock(), createBlock(CanvasHandleRenderer, mergeProps({
18519
- key: target2.handleId
18504
+ key: `${target2.handleId}(${target2.index + 1}/${mappedInputs.value.length})`
18520
18505
  }, target2, {
18521
18506
  mode: unref(CanvasConnectionMode).Input,
18522
18507
  "is-read-only": readOnly.value,
@@ -18670,26 +18655,22 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
18670
18655
  const { onEdgeMouseEnter, onEdgeMouseLeave } = useVueFlow();
18671
18656
  const isHovered = ref(false);
18672
18657
  onEdgeMouseEnter(({ edge: edge2 }) => {
18673
- if (edge2.id !== props.id)
18674
- return;
18658
+ if (edge2.id !== props.id) return;
18675
18659
  isHovered.value = true;
18676
18660
  });
18677
18661
  onEdgeMouseLeave(({ edge: edge2 }) => {
18678
- if (edge2.id !== props.id)
18679
- return;
18662
+ if (edge2.id !== props.id) return;
18680
18663
  isHovered.value = false;
18681
18664
  });
18682
18665
  const $style = useCssModule();
18683
18666
  const connectionType2 = computed(
18684
18667
  () => isValidNodeConnectionType(props.data.source.type) ? props.data.source.type : NodeConnectionType.Main
18685
18668
  );
18686
- const renderToolbar = computed(() => (props.selected || isHovered.value) && !props.readOnly);
18669
+ const renderToolbar = computed(() => isHovered.value && !props.readOnly);
18687
18670
  const isMainConnection = computed(() => data.value.source.type === NodeConnectionType.Main);
18688
18671
  const status2 = computed(() => props.data.status);
18689
18672
  const edgeColor = computed(() => {
18690
- if (props.selected) {
18691
- return "var(--color-background-dark)";
18692
- } else if (status2.value === "success") {
18673
+ if (status2.value === "success") {
18693
18674
  return "var(--color-success)";
18694
18675
  } else if (status2.value === "pinned") {
18695
18676
  return "var(--color-secondary)";
@@ -18697,6 +18678,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
18697
18678
  return "var(--color-primary)";
18698
18679
  } else if (!isMainConnection.value) {
18699
18680
  return "var(--node-type-supplemental-color)";
18681
+ } else if (props.selected) {
18682
+ return "var(--color-background-dark)";
18700
18683
  } else {
18701
18684
  return "var(--color-foreground-xdark)";
18702
18685
  }
@@ -18785,8 +18768,7 @@ const useKeybindings = (keymap, options) => {
18785
18768
  const { isCtrlKeyPressed } = useDeviceSupport();
18786
18769
  const isDisabled = computed(() => unref(options == null ? void 0 : options.disabled));
18787
18770
  const ignoreKeyPresses = computed(() => {
18788
- if (!activeElement.value)
18789
- return false;
18771
+ if (!activeElement.value) return false;
18790
18772
  const active = activeElement.value;
18791
18773
  const isInput = ["INPUT", "TEXTAREA"].includes(active.tagName);
18792
18774
  const isContentEditable = active.closest("[contenteditable]") !== null;
@@ -18795,7 +18777,7 @@ const useKeybindings = (keymap, options) => {
18795
18777
  });
18796
18778
  const normalizedKeymap = computed(
18797
18779
  () => Object.fromEntries(
18798
- Object.entries(toValue$1(keymap)).map(([shortcut, handler]) => {
18780
+ Object.entries(keymap.value).map(([shortcut, handler]) => {
18799
18781
  const shortcuts = shortcut.split("|");
18800
18782
  return shortcuts.map((s) => [normalizeShortcutString(s), handler]);
18801
18783
  }).flat()
@@ -18821,8 +18803,7 @@ const useKeybindings = (keymap, options) => {
18821
18803
  return normalizeShortcutString([...modifiers, ...keys].join("+"));
18822
18804
  }
18823
18805
  function onKeyDown2(event) {
18824
- if (ignoreKeyPresses.value || isDisabled.value)
18825
- return;
18806
+ if (ignoreKeyPresses.value || isDisabled.value) return;
18826
18807
  const shortcutString = toShortcutString(event);
18827
18808
  const handler = normalizedKeymap.value[shortcutString];
18828
18809
  if (handler) {
@@ -18881,6 +18862,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
18881
18862
  controlsPosition: { default: PanelPosition.BottomLeft },
18882
18863
  eventBus: { default: () => createEventBus() },
18883
18864
  readOnly: { type: Boolean, default: false },
18865
+ executing: { type: Boolean, default: false },
18884
18866
  keyBindings: { type: Boolean, default: true }
18885
18867
  },
18886
18868
  emits: ["update:modelValue", "update:node:position", "update:nodes:position", "update:node:active", "update:node:enabled", "update:node:selected", "update:node:name", "update:node:parameters", "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"],
@@ -18918,30 +18900,30 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
18918
18900
  onKeyUp(panningKeyCode, () => {
18919
18901
  isPanningEnabled.value = false;
18920
18902
  });
18921
- useKeybindings(
18922
- {
18923
- ctrl_c: emitWithSelectedNodes((ids) => emit("copy:nodes", ids)),
18903
+ const keyMap = computed(() => ({
18904
+ ctrl_c: emitWithSelectedNodes((ids) => emit("copy:nodes", ids)),
18905
+ enter: emitWithLastSelectedNode((id) => onSetNodeActive(id)),
18906
+ ctrl_a: () => addSelectedNodes(graphNodes.value),
18907
+ "+|=": async () => await onZoomIn(),
18908
+ "-|_": async () => await onZoomOut(),
18909
+ 0: async () => await onResetZoom(),
18910
+ 1: async () => await onFitView(),
18911
+ // @TODO implement arrow key shortcuts to modify selection
18912
+ ...props.readOnly ? {} : {
18924
18913
  ctrl_x: emitWithSelectedNodes((ids) => emit("cut:nodes", ids)),
18925
18914
  "delete|backspace": emitWithSelectedNodes((ids) => emit("delete:nodes", ids)),
18926
18915
  ctrl_d: emitWithSelectedNodes((ids) => emit("duplicate:nodes", ids)),
18927
18916
  d: emitWithSelectedNodes((ids) => emit("update:nodes:enabled", ids)),
18928
18917
  p: emitWithSelectedNodes((ids) => emit("update:nodes:pin", ids, "keyboard-shortcut")),
18929
- enter: emitWithLastSelectedNode((id) => onSetNodeActive(id)),
18930
18918
  f2: emitWithLastSelectedNode((id) => emit("update:node:name", id)),
18931
18919
  tab: () => emit("create:node", "tab"),
18932
18920
  shift_s: () => emit("create:sticky"),
18933
18921
  ctrl_alt_n: () => emit("create:workflow"),
18934
18922
  ctrl_enter: () => emit("run:workflow"),
18935
- ctrl_s: () => emit("save:workflow"),
18936
- ctrl_a: () => addSelectedNodes(graphNodes.value),
18937
- "+|=": async () => await onZoomIn(),
18938
- "-|_": async () => await onZoomOut(),
18939
- 0: async () => await onResetZoom(),
18940
- 1: async () => await onFitView()
18941
- // @TODO implement arrow key shortcuts to modify selection
18942
- },
18943
- { disabled: disableKeyBindings }
18944
- );
18923
+ ctrl_s: () => emit("save:workflow")
18924
+ }
18925
+ }));
18926
+ useKeybindings(keyMap, { disabled: disableKeyBindings });
18945
18927
  const selectionKeyCode = computed(() => isPanningEnabled.value ? null : true);
18946
18928
  const lastSelectedNode = computed(() => selectedNodes.value[selectedNodes.value.length - 1]);
18947
18929
  const hasSelection = computed(() => selectedNodes.value.length > 0);
@@ -18949,17 +18931,17 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
18949
18931
  function onClickNodeAdd(id, handle2) {
18950
18932
  emit("click:node:add", id, handle2);
18951
18933
  }
18952
- function onUpdateNodesPosition(events) {
18934
+ const onUpdateNodesPosition = useDebounceFn((events) => {
18953
18935
  emit("update:nodes:position", events);
18954
- }
18936
+ }, 200);
18955
18937
  function onUpdateNodePosition(id, position2) {
18956
18938
  emit("update:node:position", id, position2);
18957
18939
  }
18940
+ const isPositionChangeEvent = (event) => event.type === "position" && "position" in event;
18958
18941
  function onNodesChange(events) {
18959
- const isPositionChangeEvent = (event) => event.type === "position" && "position" in event;
18960
18942
  const positionChangeEndEvents = events.filter(isPositionChangeEvent);
18961
18943
  if (positionChangeEndEvents.length > 0) {
18962
- onUpdateNodesPosition(positionChangeEndEvents);
18944
+ void onUpdateNodesPosition(positionChangeEndEvents);
18963
18945
  }
18964
18946
  }
18965
18947
  function onSetNodeActive(id) {
@@ -18970,8 +18952,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
18970
18952
  removeSelectedNodes(selectedNodes.value);
18971
18953
  }
18972
18954
  function onSelectNode() {
18973
- if (!lastSelectedNode.value)
18974
- return;
18955
+ if (!lastSelectedNode.value) return;
18975
18956
  emit("update:node:selected", lastSelectedNode.value.id);
18976
18957
  }
18977
18958
  function onSelectNodes({ ids }) {
@@ -19165,8 +19146,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
19165
19146
  watch(() => props.readOnly, setReadonly, {
19166
19147
  immediate: true
19167
19148
  });
19149
+ const isExecuting = toRef$1(props, "executing");
19168
19150
  provide(CanvasKey, {
19169
- connectingHandle
19151
+ connectingHandle,
19152
+ isExecuting
19170
19153
  });
19171
19154
  return (_ctx, _cache) => {
19172
19155
  const _component_CanvasConnectionLine = __unplugin_components_0$4;
@@ -19284,7 +19267,7 @@ const style0$2 = {
19284
19267
  const cssModules$2 = {
19285
19268
  "$style": style0$2
19286
19269
  };
19287
- const Canvas = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__cssModules", cssModules$2], ["__scopeId", "data-v-9277d9c5"]]);
19270
+ const Canvas = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__cssModules", cssModules$2], ["__scopeId", "data-v-b4834d98"]]);
19288
19271
  function useCanvasMapping({
19289
19272
  nodes,
19290
19273
  connections: connections2,
@@ -19437,8 +19420,8 @@ function useCanvasMapping({
19437
19420
  );
19438
19421
  const nodeExecutionStatusById = computed(
19439
19422
  () => nodes.value.reduce((acc, node2) => {
19440
- var _a, _b;
19441
- acc[node2.id] = ((_b = (_a = workflowsStore.getWorkflowRunData) == null ? void 0 : _a[node2.name]) == null ? void 0 : _b.filter(Boolean)[0].executionStatus) ?? "new";
19423
+ var _a, _b, _c;
19424
+ acc[node2.id] = ((_c = (_b = (_a = workflowsStore.getWorkflowRunData) == null ? void 0 : _a[node2.name]) == null ? void 0 : _b.filter(Boolean)[0]) == null ? void 0 : _c.executionStatus) ?? "new";
19442
19425
  return acc;
19443
19426
  }, {})
19444
19427
  );
@@ -19512,7 +19495,15 @@ function useCanvasMapping({
19512
19495
  const workflowExecution = workflowsStore.getWorkflowExecution;
19513
19496
  const lastNodeExecuted = (_b = (_a = workflowExecution == null ? void 0 : workflowExecution.data) == null ? void 0 : _a.resultData) == null ? void 0 : _b.lastNodeExecuted;
19514
19497
  if (workflowExecution && lastNodeExecuted && isExecutionSummary(workflowExecution)) {
19515
- if (node2.name === ((_d = (_c = workflowExecution.data) == null ? void 0 : _c.resultData) == null ? void 0 : _d.lastNodeExecuted) && workflowExecution.waitTill) {
19498
+ if (node2.name === ((_d = (_c = workflowExecution.data) == null ? void 0 : _c.resultData) == null ? void 0 : _d.lastNodeExecuted) && (workflowExecution == null ? void 0 : workflowExecution.waitTill) && !(workflowExecution == null ? void 0 : workflowExecution.finished)) {
19499
+ if (node2 && node2.type === WAIT_NODE_TYPE && ["webhook", "form"].includes(node2.parameters.resume)) {
19500
+ acc[node2.id] = node2.parameters.resume === "webhook" ? i18n2.baseText("node.theNodeIsWaitingWebhookCall") : i18n2.baseText("node.theNodeIsWaitingFormCall");
19501
+ return acc;
19502
+ }
19503
+ if ((node2 == null ? void 0 : node2.parameters.operation) === SEND_AND_WAIT_OPERATION) {
19504
+ acc[node2.id] = i18n2.baseText("node.theNodeIsWaitingUserInput");
19505
+ return acc;
19506
+ }
19516
19507
  const waitDate = new Date(workflowExecution.waitTill);
19517
19508
  if (waitDate.toISOString() === WAIT_TIME_UNLIMITED) {
19518
19509
  acc[node2.id] = i18n2.baseText(
@@ -19715,7 +19706,8 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
19715
19706
  workflowObject: {},
19716
19707
  fallbackNodes: { default: () => [] },
19717
19708
  eventBus: { default: () => createEventBus() },
19718
- readOnly: { type: Boolean }
19709
+ readOnly: { type: Boolean },
19710
+ executing: { type: Boolean }
19719
19711
  },
19720
19712
  setup(__props) {
19721
19713
  const props = __props;
@@ -19827,6 +19819,7 @@ function useCanvasOperations({ router }) {
19827
19819
  const telemetry = useTelemetry();
19828
19820
  const externalHooks = useExternalHooks();
19829
19821
  const clipboard = useClipboard();
19822
+ const { uniqueNodeName } = useUniqueNodeName();
19830
19823
  const lastClickPosition = ref([0, 0]);
19831
19824
  const preventOpeningNDV = !!localStorage.getItem("NodeView.preventOpeningNDV");
19832
19825
  const editableWorkflow = computed(() => workflowsStore.workflow);
@@ -19841,7 +19834,7 @@ function useCanvasOperations({ router }) {
19841
19834
  events.forEach(({ id, position: position2 }) => {
19842
19835
  updateNodePosition(id, position2, { trackHistory });
19843
19836
  });
19844
- if (trackBulk) {
19837
+ if (trackHistory && trackBulk) {
19845
19838
  historyStore.stopRecordingUndo();
19846
19839
  }
19847
19840
  }
@@ -19864,14 +19857,14 @@ function useCanvasOperations({ router }) {
19864
19857
  }
19865
19858
  updateNodePosition(node2.id, position2);
19866
19859
  }
19867
- async function renameNode(currentName, newName, { trackHistory = false } = {}) {
19860
+ async function renameNode(currentName, newName, { trackHistory = false, trackBulk = true } = {}) {
19868
19861
  if (currentName === newName) {
19869
19862
  return;
19870
19863
  }
19871
- if (trackHistory) {
19864
+ if (trackHistory && trackBulk) {
19872
19865
  historyStore.startRecordingUndo();
19873
19866
  }
19874
- newName = getUniqueNodeName(newName, workflowsStore.canvasNames);
19867
+ newName = uniqueNodeName(newName);
19875
19868
  const workflow = workflowsStore.getCurrentWorkflow(true);
19876
19869
  workflow.renameNode(currentName, newName);
19877
19870
  if (trackHistory) {
@@ -19884,7 +19877,7 @@ function useCanvasOperations({ router }) {
19884
19877
  if (isRenamingActiveNode) {
19885
19878
  ndvStore.activeNodeName = newName;
19886
19879
  }
19887
- if (trackHistory) {
19880
+ if (trackHistory && trackBulk) {
19888
19881
  historyStore.stopRecordingUndo();
19889
19882
  }
19890
19883
  }
@@ -19904,12 +19897,10 @@ function useCanvasOperations({ router }) {
19904
19897
  )) {
19905
19898
  for (const incomingConnection of incomingConnectionsByInputIndex.at(0) ?? []) {
19906
19899
  const incomingNodeId = (_a = workflowsStore.getNodeByName(incomingConnection.node)) == null ? void 0 : _a.id;
19907
- if (!incomingNodeId)
19908
- continue;
19900
+ if (!incomingNodeId) continue;
19909
19901
  for (const outgoingConnection of ((_b = outputConnectionsByType[type]) == null ? void 0 : _b.at(0)) ?? []) {
19910
19902
  const outgoingNodeId = (_c = workflowsStore.getNodeByName(outgoingConnection.node)) == null ? void 0 : _c.id;
19911
- if (!outgoingNodeId)
19912
- continue;
19903
+ if (!outgoingNodeId) continue;
19913
19904
  if (trackHistory) {
19914
19905
  historyStore.pushCommandToUndo(
19915
19906
  new AddConnectionCommand([
@@ -19951,7 +19942,7 @@ function useCanvasOperations({ router }) {
19951
19942
  historyStore.startRecordingUndo();
19952
19943
  }
19953
19944
  if (uiStore.lastInteractedWithNodeId === id) {
19954
- uiStore.lastInteractedWithNodeId = null;
19945
+ uiStore.lastInteractedWithNodeId = void 0;
19955
19946
  }
19956
19947
  connectAdjacentNodes(id, { trackHistory });
19957
19948
  deleteConnectionsByNodeId(id, { trackHistory, trackBulk: false });
@@ -19965,10 +19956,14 @@ function useCanvasOperations({ router }) {
19965
19956
  }
19966
19957
  trackDeleteNode(id);
19967
19958
  }
19968
- function deleteNodes(ids) {
19969
- historyStore.startRecordingUndo();
19970
- ids.forEach((id) => deleteNode(id, { trackHistory: true, trackBulk: false }));
19971
- historyStore.stopRecordingUndo();
19959
+ function deleteNodes(ids, { trackHistory = true, trackBulk = true } = {}) {
19960
+ if (trackHistory && trackBulk) {
19961
+ historyStore.startRecordingUndo();
19962
+ }
19963
+ ids.forEach((id) => deleteNode(id, { trackHistory, trackBulk: false }));
19964
+ if (trackHistory && trackBulk) {
19965
+ historyStore.stopRecordingUndo();
19966
+ }
19972
19967
  }
19973
19968
  function revertDeleteNode(node2) {
19974
19969
  workflowsStore.addNode(node2);
@@ -20016,7 +20011,7 @@ function useCanvasOperations({ router }) {
20016
20011
  }
20017
20012
  function setNodeSelected(id) {
20018
20013
  if (!id) {
20019
- uiStore.lastInteractedWithNodeId = null;
20014
+ uiStore.lastInteractedWithNodeId = void 0;
20020
20015
  uiStore.lastSelectedNode = "";
20021
20016
  return;
20022
20017
  }
@@ -20028,12 +20023,12 @@ function useCanvasOperations({ router }) {
20028
20023
  uiStore.lastSelectedNode = node2.name;
20029
20024
  }
20030
20025
  function toggleNodesDisabled(ids, { trackHistory = true, trackBulk = true } = {}) {
20031
- if (trackBulk) {
20026
+ if (trackHistory && trackBulk) {
20032
20027
  historyStore.startRecordingUndo();
20033
20028
  }
20034
20029
  const nodes = workflowsStore.getNodesByIds(ids);
20035
- nodeHelpers.disableNodes(nodes, trackHistory);
20036
- if (trackBulk) {
20030
+ nodeHelpers.disableNodes(nodes, { trackHistory, trackBulk: false });
20031
+ if (trackHistory && trackBulk) {
20037
20032
  historyStore.stopRecordingUndo();
20038
20033
  }
20039
20034
  }
@@ -20043,8 +20038,10 @@ function useCanvasOperations({ router }) {
20043
20038
  nodeHelpers.disableNodes([node2]);
20044
20039
  }
20045
20040
  }
20046
- function toggleNodesPinned(ids, source) {
20047
- historyStore.startRecordingUndo();
20041
+ function toggleNodesPinned(ids, source, { trackHistory = true, trackBulk = true } = {}) {
20042
+ if (trackHistory && trackBulk) {
20043
+ historyStore.startRecordingUndo();
20044
+ }
20048
20045
  const nodes = workflowsStore.getNodesByIds(ids);
20049
20046
  const nextStatePinned = nodes.some((node2) => !workflowsStore.pinDataByNodeName(node2.name));
20050
20047
  for (const node2 of nodes) {
@@ -20058,7 +20055,9 @@ function useCanvasOperations({ router }) {
20058
20055
  pinnedDataForNode.unsetData(source);
20059
20056
  }
20060
20057
  }
20061
- historyStore.stopRecordingUndo();
20058
+ if (trackHistory && trackBulk) {
20059
+ historyStore.stopRecordingUndo();
20060
+ }
20062
20061
  }
20063
20062
  function requireNodeTypeDescription(type, version) {
20064
20063
  return nodeTypesStore.getNodeType(type, version) ?? {
@@ -20076,9 +20075,6 @@ function useCanvasOperations({ router }) {
20076
20075
  async function addNodes2(nodes, options = {}) {
20077
20076
  let insertPosition = options.position;
20078
20077
  let lastAddedNode;
20079
- if (options.trackBulk) {
20080
- historyStore.startRecordingUndo();
20081
- }
20082
20078
  const nodesWithTypeVersion = nodes.map((node2) => {
20083
20079
  const typeVersion = node2.typeVersion ?? resolveNodeVersion(requireNodeTypeDescription(node2.type));
20084
20080
  return {
@@ -20087,7 +20083,7 @@ function useCanvasOperations({ router }) {
20087
20083
  };
20088
20084
  });
20089
20085
  await loadNodeTypesProperties(nodesWithTypeVersion);
20090
- if (options.trackBulk) {
20086
+ if (options.trackHistory && options.trackBulk) {
20091
20087
  historyStore.startRecordingUndo();
20092
20088
  }
20093
20089
  for (const nodeAddData of nodesWithTypeVersion) {
@@ -20120,7 +20116,7 @@ function useCanvasOperations({ router }) {
20120
20116
  if (lastAddedNode) {
20121
20117
  updatePositionForNodeWithMultipleInputs(lastAddedNode);
20122
20118
  }
20123
- if (options.trackBulk) {
20119
+ if (options.trackHistory && options.trackBulk) {
20124
20120
  historyStore.stopRecordingUndo();
20125
20121
  }
20126
20122
  if (!options.keepPristine) {
@@ -20132,8 +20128,7 @@ function useCanvasOperations({ router }) {
20132
20128
  if (inputNodes.length > 1) {
20133
20129
  inputNodes.slice(1).forEach((inputNode, index) => {
20134
20130
  const nodeUi = workflowsStore.getNodeByName(inputNode.name);
20135
- if (!nodeUi)
20136
- return;
20131
+ if (!nodeUi) return;
20137
20132
  updateNodePosition(nodeUi.id, {
20138
20133
  x: nodeUi.position[0],
20139
20134
  y: nodeUi.position[1] + 100 * (index + 1)
@@ -20141,8 +20136,8 @@ function useCanvasOperations({ router }) {
20141
20136
  });
20142
20137
  }
20143
20138
  }
20144
- function addNode(node2, nodeTypeDescription, options = {}) {
20145
- if (nodeTypeDescription.maxNodes !== void 0 && workflowHelpers.getNodeTypeCount(node2.type) >= nodeTypeDescription.maxNodes) {
20139
+ function checkMaxNodesOfTypeReached(nodeTypeDescription) {
20140
+ if (nodeTypeDescription.maxNodes !== void 0 && workflowHelpers.getNodeTypeCount(nodeTypeDescription.name) >= nodeTypeDescription.maxNodes) {
20146
20141
  throw new Error(
20147
20142
  i18n2.baseText("nodeView.showMessage.showMaxNodeTypeError.message", {
20148
20143
  adjustToNumber: nodeTypeDescription.maxNodes,
@@ -20150,17 +20145,20 @@ function useCanvasOperations({ router }) {
20150
20145
  })
20151
20146
  );
20152
20147
  }
20148
+ }
20149
+ function addNode(node2, nodeTypeDescription, options = {}) {
20150
+ checkMaxNodesOfTypeReached(nodeTypeDescription);
20153
20151
  const nodeData = resolveNodeData(node2, nodeTypeDescription);
20154
20152
  if (!nodeData) {
20155
20153
  throw new Error(i18n2.baseText("nodeViewV2.showError.failedToCreateNode"));
20156
20154
  }
20157
- nodeHelpers.matchCredentials(nodeData);
20155
+ workflowsStore.addNode(nodeData);
20156
+ if (options.trackHistory) {
20157
+ historyStore.pushCommandToUndo(new AddNodeCommand(nodeData));
20158
+ }
20158
20159
  void nextTick(() => {
20159
- if (options.trackHistory) {
20160
- historyStore.pushCommandToUndo(new AddNodeCommand(nodeData));
20161
- }
20162
- workflowsStore.addNode(nodeData);
20163
20160
  workflowsStore.setNodePristine(nodeData.name, true);
20161
+ nodeHelpers.matchCredentials(nodeData);
20164
20162
  nodeHelpers.updateNodeParameterIssues(nodeData);
20165
20163
  nodeHelpers.updateNodeCredentialIssues(nodeData);
20166
20164
  nodeHelpers.updateNodeInputIssues(nodeData);
@@ -20172,9 +20170,9 @@ function useCanvasOperations({ router }) {
20172
20170
  }
20173
20171
  if (nodeData.type !== STICKY_NODE_TYPE) {
20174
20172
  void externalHooks.run("nodeView.addNodeButton", { nodeTypeName: nodeData.type });
20175
- }
20176
- if (options.openNDV && !preventOpeningNDV) {
20177
- ndvStore.setActiveNodeName(nodeData.name);
20173
+ if (options.openNDV && !preventOpeningNDV) {
20174
+ ndvStore.setActiveNodeName(nodeData.name);
20175
+ }
20178
20176
  }
20179
20177
  });
20180
20178
  return nodeData;
@@ -20384,6 +20382,9 @@ function useCanvasOperations({ router }) {
20384
20382
  function resolveNodePosition(node2, nodeTypeDescription) {
20385
20383
  let position2 = node2.position;
20386
20384
  let pushOffsets = [40, 40];
20385
+ if (position2) {
20386
+ return getNewNodePosition(workflowsStore.allNodes, position2, pushOffsets);
20387
+ }
20387
20388
  const lastInteractedWithNode = uiStore.lastInteractedWithNode;
20388
20389
  const lastInteractedWithNodeConnection = uiStore.lastInteractedWithNodeConnection;
20389
20390
  const lastInteractedWithNodeHandle = uiStore.lastInteractedWithNodeHandle;
@@ -20401,7 +20402,7 @@ function useCanvasOperations({ router }) {
20401
20402
  const xOffset = connectionType2 === NodeConnectionType.Main ? 0 : -nodeSize[0] / 2;
20402
20403
  const yOffset = connectionType2 === NodeConnectionType.Main ? -nodeSize[1] / 2 : 0;
20403
20404
  position2 = [newNodeInsertPosition[0] + xOffset, newNodeInsertPosition[1] + yOffset];
20404
- uiStore.lastCancelledConnectionPosition = null;
20405
+ uiStore.lastCancelledConnectionPosition = void 0;
20405
20406
  } else if (lastInteractedWithNodeTypeDescription) {
20406
20407
  let yOffset = 0;
20407
20408
  if (lastInteractedWithNodeConnection) {
@@ -20500,7 +20501,7 @@ function useCanvasOperations({ router }) {
20500
20501
  }
20501
20502
  function resolveNodeName(node2) {
20502
20503
  const localizedName = i18n2.localizeNodeName(node2.name, node2.type);
20503
- node2.name = getUniqueNodeName(localizedName, workflowsStore.canvasNames);
20504
+ node2.name = uniqueNodeName(localizedName);
20504
20505
  }
20505
20506
  function resolveNodeWebhook(node2, nodeTypeDescription) {
20506
20507
  var _a;
@@ -20661,9 +20662,6 @@ function useCanvasOperations({ router }) {
20661
20662
  }
20662
20663
  function isConnectionAllowed(sourceNode, targetNode, sourceConnectionType, targetConnectionType) {
20663
20664
  const blocklist = [STICKY_NODE_TYPE];
20664
- if (sourceNode.id === targetNode.id) {
20665
- return false;
20666
- }
20667
20665
  if (sourceConnectionType !== targetConnectionType) {
20668
20666
  return false;
20669
20667
  }
@@ -20705,8 +20703,7 @@ function useCanvasOperations({ router }) {
20705
20703
  }
20706
20704
  const targetNodeHasInputConnectionOfType = !!targetNodeInputs.find((input) => {
20707
20705
  const inputType = typeof input === "string" ? input : input.type;
20708
- if (inputType !== targetConnectionType)
20709
- return false;
20706
+ if (inputType !== targetConnectionType) return false;
20710
20707
  const filter = typeof input === "object" && "filter" in input ? input.filter : void 0;
20711
20708
  if ((filter == null ? void 0 : filter.nodes.length) && !filter.nodes.includes(sourceNode.type)) {
20712
20709
  toast.showToast({
@@ -20723,22 +20720,31 @@ function useCanvasOperations({ router }) {
20723
20720
  });
20724
20721
  return targetNodeHasInputConnectionOfType;
20725
20722
  }
20726
- function addConnections(connections2) {
20723
+ function addConnections(connections2, { trackBulk = true, trackHistory = false } = {}) {
20724
+ if (trackBulk && trackHistory) {
20725
+ historyStore.startRecordingUndo();
20726
+ }
20727
20727
  for (const { source, target: target2, data } of connections2) {
20728
- createConnection({
20729
- source,
20730
- sourceHandle: createCanvasConnectionHandleString({
20731
- mode: CanvasConnectionMode.Output,
20732
- type: isValidNodeConnectionType(data == null ? void 0 : data.source.type) ? data == null ? void 0 : data.source.type : NodeConnectionType.Main,
20733
- index: (data == null ? void 0 : data.source.index) ?? 0
20734
- }),
20735
- target: target2,
20736
- targetHandle: createCanvasConnectionHandleString({
20737
- mode: CanvasConnectionMode.Input,
20738
- type: isValidNodeConnectionType(data == null ? void 0 : data.target.type) ? data == null ? void 0 : data.target.type : NodeConnectionType.Main,
20739
- index: (data == null ? void 0 : data.target.index) ?? 0
20740
- })
20741
- });
20728
+ createConnection(
20729
+ {
20730
+ source,
20731
+ sourceHandle: createCanvasConnectionHandleString({
20732
+ mode: CanvasConnectionMode.Output,
20733
+ type: isValidNodeConnectionType(data == null ? void 0 : data.source.type) ? data == null ? void 0 : data.source.type : NodeConnectionType.Main,
20734
+ index: (data == null ? void 0 : data.source.index) ?? 0
20735
+ }),
20736
+ target: target2,
20737
+ targetHandle: createCanvasConnectionHandleString({
20738
+ mode: CanvasConnectionMode.Input,
20739
+ type: isValidNodeConnectionType(data == null ? void 0 : data.target.type) ? data == null ? void 0 : data.target.type : NodeConnectionType.Main,
20740
+ index: (data == null ? void 0 : data.target.index) ?? 0
20741
+ })
20742
+ },
20743
+ { trackHistory }
20744
+ );
20745
+ }
20746
+ if (trackBulk && trackHistory) {
20747
+ historyStore.stopRecordingUndo();
20742
20748
  }
20743
20749
  }
20744
20750
  function resetWorkspace() {
@@ -20753,6 +20759,7 @@ function useCanvasOperations({ router }) {
20753
20759
  workflowsStore.resetWorkflow();
20754
20760
  workflowsStore.resetState();
20755
20761
  workflowsStore.currentWorkflowExecutions = [];
20762
+ uiStore.resetLastInteractedWith();
20756
20763
  uiStore.removeActiveAction("workflowRunning");
20757
20764
  uiStore.stateIsDirty = false;
20758
20765
  executionsStore.activeExecution = null;
@@ -20764,21 +20771,18 @@ function useCanvasOperations({ router }) {
20764
20771
  workflowsStore.setConnections(data.connections);
20765
20772
  }
20766
20773
  function removeUnknownCredentials(workflow) {
20767
- if (!(workflow == null ? void 0 : workflow.nodes))
20768
- return;
20774
+ if (!(workflow == null ? void 0 : workflow.nodes)) return;
20769
20775
  for (const node2 of workflow.nodes) {
20770
- if (!node2.credentials)
20771
- continue;
20776
+ if (!node2.credentials) continue;
20772
20777
  for (const [name, credential] of Object.entries(node2.credentials)) {
20773
- if (typeof credential === "string" || credential.id === null)
20774
- continue;
20778
+ if (typeof credential === "string" || credential.id === null) continue;
20775
20779
  if (!credentialsStore.getCredentialById(credential.id)) {
20776
20780
  delete node2.credentials[name];
20777
20781
  }
20778
20782
  }
20779
20783
  }
20780
20784
  }
20781
- async function addImportedNodesToWorkflow(data) {
20785
+ async function addImportedNodesToWorkflow(data, { trackBulk = true, trackHistory = false } = {}) {
20782
20786
  const nodeNameTable = {};
20783
20787
  const newNodeNames = /* @__PURE__ */ new Set();
20784
20788
  if (!data.nodes) {
@@ -20802,7 +20806,7 @@ function useCanvasOperations({ router }) {
20802
20806
  }
20803
20807
  oldName = node2.name;
20804
20808
  const localized = i18n2.localizeNodeName(node2.name, node2.type);
20805
- newName = getUniqueNodeName(localized, newNodeNames);
20809
+ newName = uniqueNodeName(localized, Array.from(newNodeNames));
20806
20810
  newNodeNames.add(newName);
20807
20811
  nodeNameTable[oldName] = newName;
20808
20812
  createNodes.push(node2);
@@ -20862,22 +20866,28 @@ function useCanvasOperations({ router }) {
20862
20866
  }
20863
20867
  }
20864
20868
  }
20865
- historyStore.startRecordingUndo();
20866
- await addNodes2(Object.values(tempWorkflow.nodes));
20869
+ if (trackBulk && trackHistory) {
20870
+ historyStore.startRecordingUndo();
20871
+ }
20872
+ await addNodes2(Object.values(tempWorkflow.nodes), { trackBulk: false, trackHistory });
20867
20873
  addConnections(
20868
20874
  mapLegacyConnectionsToCanvasConnections(
20869
20875
  tempWorkflow.connectionsBySourceNode,
20870
20876
  Object.values(tempWorkflow.nodes)
20871
- )
20877
+ ),
20878
+ { trackBulk: false, trackHistory }
20872
20879
  );
20873
- historyStore.stopRecordingUndo();
20880
+ if (trackBulk && trackHistory) {
20881
+ historyStore.stopRecordingUndo();
20882
+ }
20874
20883
  uiStore.stateIsDirty = true;
20875
20884
  return {
20876
20885
  nodes: Object.values(tempWorkflow.nodes),
20877
20886
  connections: tempWorkflow.connectionsBySourceNode
20878
20887
  };
20879
20888
  }
20880
- async function importWorkflowData(workflowData, source, importTags = true) {
20889
+ async function importWorkflowData(workflowData, source, importTags = true, { trackBulk = true, trackHistory = true } = {}) {
20890
+ uiStore.resetLastInteractedWith();
20881
20891
  if (!workflowData.hasOwnProperty("nodes") || !workflowData.hasOwnProperty("connections")) {
20882
20892
  return {};
20883
20893
  }
@@ -20888,7 +20898,10 @@ function useCanvasOperations({ router }) {
20888
20898
  workflowData.nodes.forEach((node2) => {
20889
20899
  if (!node2.name) {
20890
20900
  const nodeType = nodeTypesStore.getNodeType(node2.type);
20891
- const newName = getUniqueNodeName((nodeType == null ? void 0 : nodeType.displayName) ?? node2.type, nodeNames);
20901
+ const newName = uniqueNodeName(
20902
+ (nodeType == null ? void 0 : nodeType.displayName) ?? node2.type,
20903
+ Array.from(nodeNames)
20904
+ );
20892
20905
  node2.name = newName;
20893
20906
  nodeNames.add(newName);
20894
20907
  }
@@ -20942,7 +20955,7 @@ function useCanvasOperations({ router }) {
20942
20955
  workflowData,
20943
20956
  getNewNodePosition(editableWorkflow.value.nodes, lastClickPosition.value)
20944
20957
  );
20945
- await addImportedNodesToWorkflow(workflowData);
20958
+ await addImportedNodesToWorkflow(workflowData, { trackBulk, trackHistory });
20946
20959
  if (importTags && settingsStore.areTagsEnabled && Array.isArray(workflowData.tags)) {
20947
20960
  await importWorkflowTags(workflowData);
20948
20961
  }
@@ -21029,8 +21042,7 @@ function useCanvasOperations({ router }) {
21029
21042
  const connections2 = {};
21030
21043
  for (const node2 of nodes) {
21031
21044
  const outgoingConnections = workflowsStore.outgoingConnectionsByNodeName(node2.name);
21032
- if (!Object.keys(outgoingConnections).length)
21033
- continue;
21045
+ if (!Object.keys(outgoingConnections).length) continue;
21034
21046
  const filteredConnections = filterConnectionsByNodes(outgoingConnections, includeNodeNames);
21035
21047
  if (Object.keys(filteredConnections).length) {
21036
21048
  connections2[node2.name] = filteredConnections;
@@ -21171,7 +21183,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21171
21183
  __name: "NodeView.v2",
21172
21184
  setup(__props) {
21173
21185
  const LazyNodeCreation2 = defineAsyncComponent(
21174
- async () => await __vitePreload(() => import("./NodeCreation-CUrrlBgR.js").then((n) => n.N), true ? __vite__mapDeps([40,4,5,6,7,2,8,9,10,11,1,3,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,41]) : void 0)
21186
+ async () => await __vitePreload(() => import("./NodeCreation-Dmhfjt0Z.js").then((n) => n.N), true ? __vite__mapDeps([40,4,5,6,7,2,8,9,10,11,1,3,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,41]) : void 0)
21175
21187
  );
21176
21188
  const LazyNodeDetailsView = defineAsyncComponent(
21177
21189
  async () => await __vitePreload(() => Promise.resolve().then(() => NodeDetailsView), true ? void 0 : void 0)
@@ -21212,7 +21224,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21212
21224
  route
21213
21225
  });
21214
21226
  const { registerCustomAction, unregisterCustomAction } = useGlobalLinkActions();
21215
- const { runWorkflow, stopCurrentExecution, stopWaitingForWebhook } = useRunWorkflow({ router });
21227
+ const { runWorkflow, runWorkflowResolvePending, stopCurrentExecution, stopWaitingForWebhook } = useRunWorkflow({ router });
21216
21228
  const {
21217
21229
  updateNodePosition,
21218
21230
  updateNodesPosition,
@@ -21290,12 +21302,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21290
21302
  ]
21291
21303
  );
21292
21304
  const keyBindingsEnabled = computed(() => {
21293
- return !ndvStore.activeNode;
21305
+ return !ndvStore.activeNode && uiStore.activeModals.length === 0;
21294
21306
  });
21295
21307
  async function initializeData() {
21296
21308
  const loadPromises = (() => {
21297
- if (settingsStore.isPreviewMode && isDemoRoute.value)
21298
- return [];
21309
+ if (settingsStore.isPreviewMode && isDemoRoute.value) return [];
21299
21310
  const promises = [
21300
21311
  workflowsStore.fetchActiveWorkflows(),
21301
21312
  credentialsStore.fetchAllCredentials(),
@@ -21383,7 +21394,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21383
21394
  }
21384
21395
  async function openWorkflow(data) {
21385
21396
  resetWorkspace();
21386
- workflowHelpers.setDocumentTitle(editableWorkflow.value.name, "IDLE");
21397
+ workflowHelpers.setDocumentTitle(data.name, "IDLE");
21387
21398
  await initializeWorkspace(data);
21388
21399
  void externalHooks.run("workflow.open", {
21389
21400
  workflowId: data.id,
@@ -21510,10 +21521,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21510
21521
  }
21511
21522
  async function onClipboardPaste(plainTextData) {
21512
21523
  var _a;
21513
- if (getNodeViewTab(route) !== MAIN_HEADER_TABS.WORKFLOW) {
21514
- return;
21515
- }
21516
- if (!checkIfEditingIsAllowed()) {
21524
+ if (getNodeViewTab(route) !== MAIN_HEADER_TABS.WORKFLOW || !keyBindingsEnabled.value || !checkIfEditingIsAllowed()) {
21517
21525
  return;
21518
21526
  }
21519
21527
  let workflowData = null;
@@ -21681,6 +21689,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21681
21689
  uiStore.lastInteractedWithNodeHandle = event.handleId;
21682
21690
  uiStore.lastCancelledConnectionPosition = [position2.x, position2.y];
21683
21691
  setTimeout(() => {
21692
+ if (!event.nodeId) return;
21684
21693
  nodeCreatorStore.openNodeCreatorForConnectingNode({
21685
21694
  connection: {
21686
21695
  source: event.nodeId,
@@ -21804,7 +21813,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21804
21813
  return getResourcePermissions(project == null ? void 0 : project.scopes);
21805
21814
  });
21806
21815
  const isStoppingExecution = ref(false);
21807
- const isWorkflowRunning = computed(() => uiStore.isActionActive.workflowRunning);
21816
+ const isWorkflowRunning = computed(() => {
21817
+ if (uiStore.isActionActive.workflowRunning) return true;
21818
+ if (workflowsStore.activeExecutionId) {
21819
+ const execution = workflowsStore.getWorkflowExecution;
21820
+ if (execution && execution.status === "waiting" && !execution.finished) return true;
21821
+ }
21822
+ return false;
21823
+ });
21808
21824
  const isExecutionWaitingForWebhook = computed(() => workflowsStore.executionWaitingForWebhook);
21809
21825
  const isExecutionDisabled = computed(() => {
21810
21826
  if (containsChatTriggerNodes.value && isOnlyChatTriggerNodeActive.value && !chatTriggerNodePinnedData.value) {
@@ -21812,6 +21828,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21812
21828
  }
21813
21829
  return !containsTriggerNodes.value || allTriggerNodesDisabled.value;
21814
21830
  });
21831
+ const isRunWorkflowButtonVisible = computed(() => !isOnlyChatTriggerNodeActive.value);
21815
21832
  const isStopExecutionButtonVisible = computed(
21816
21833
  () => isWorkflowRunning.value && !isExecutionWaitingForWebhook.value
21817
21834
  );
@@ -21824,7 +21841,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21824
21841
  const workflowExecutionData = computed(() => workflowsStore.workflowExecutionData);
21825
21842
  async function onRunWorkflow() {
21826
21843
  trackRunWorkflow();
21827
- await runWorkflow({});
21844
+ if (!isExecutionPreview.value && workflowsStore.isWaitingExecution) {
21845
+ void runWorkflowResolvePending({});
21846
+ } else {
21847
+ void runWorkflow({});
21848
+ }
21828
21849
  }
21829
21850
  function trackRunWorkflow() {
21830
21851
  void workflowHelpers.getWorkflowDataToSave().then((workflowData) => {
@@ -21844,10 +21865,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21844
21865
  }
21845
21866
  async function onRunWorkflowToNode(id) {
21846
21867
  const node2 = workflowsStore.getNodeById(id);
21847
- if (!node2)
21848
- return;
21868
+ if (!node2) return;
21849
21869
  trackRunWorkflowToNode(node2);
21850
- await runWorkflow({ destinationNode: node2.name, source: "Node.executeNode" });
21870
+ if (!isExecutionPreview.value && workflowsStore.isWaitingExecution) {
21871
+ void runWorkflowResolvePending({ destinationNode: node2.name, source: "Node.executeNode" });
21872
+ } else {
21873
+ void runWorkflow({ destinationNode: node2.name, source: "Node.executeNode" });
21874
+ }
21851
21875
  }
21852
21876
  function trackRunWorkflowToNode(node2) {
21853
21877
  const telemetryPayload = {
@@ -21896,15 +21920,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21896
21920
  let nodeErrorFound = false;
21897
21921
  if (data.data.resultData.runData) {
21898
21922
  const runData2 = data.data.resultData.runData;
21899
- errorCheck:
21900
- for (const nodeName of Object.keys(runData2)) {
21901
- for (const taskData of runData2[nodeName]) {
21902
- if (taskData.error) {
21903
- nodeErrorFound = true;
21904
- break errorCheck;
21905
- }
21923
+ errorCheck: for (const nodeName of Object.keys(runData2)) {
21924
+ for (const taskData of runData2[nodeName]) {
21925
+ if (taskData.error) {
21926
+ nodeErrorFound = true;
21927
+ break errorCheck;
21906
21928
  }
21907
21929
  }
21930
+ }
21908
21931
  }
21909
21932
  if (!nodeErrorFound && (data.data.resultData.error.stack ?? data.data.resultData.error.message)) {
21910
21933
  console.error(`Execution ${data.id} error:`);
@@ -21966,8 +21989,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21966
21989
  return triggerNodes.value.every((node2) => node2.disabled || node2.type === CHAT_TRIGGER_NODE_TYPE);
21967
21990
  });
21968
21991
  const chatTriggerNodePinnedData = computed(() => {
21969
- if (!chatTriggerNode.value)
21970
- return null;
21992
+ if (!chatTriggerNode.value) return null;
21971
21993
  return workflowsStore.pinDataByNodeName(chatTriggerNode.value.name);
21972
21994
  });
21973
21995
  async function onOpenChat() {
@@ -22132,8 +22154,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
22132
22154
  }
22133
22155
  }
22134
22156
  async function onSaveFromWithinExecutionDebug() {
22135
- if (route.name !== VIEWS.EXECUTION_DEBUG)
22136
- return;
22157
+ if (route.name !== VIEWS.EXECUTION_DEBUG) return;
22137
22158
  await router.replace({
22138
22159
  name: VIEWS.WORKFLOW,
22139
22160
  params: { name: workflowId.value }
@@ -22247,6 +22268,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
22247
22268
  "fallback-nodes": fallbackNodes.value,
22248
22269
  "event-bus": unref(canvasEventBus),
22249
22270
  "read-only": isCanvasReadOnly.value,
22271
+ executing: isWorkflowRunning.value,
22250
22272
  "key-bindings": keyBindingsEnabled.value,
22251
22273
  "onUpdate:nodes:position": onUpdateNodesPosition,
22252
22274
  "onUpdate:node:position": onUpdateNodePosition,
@@ -22281,29 +22303,30 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
22281
22303
  key: 0,
22282
22304
  class: normalizeClass(unref($style).executionButtons)
22283
22305
  }, [
22284
- createVNode(_sfc_main$5, {
22306
+ isRunWorkflowButtonVisible.value ? (openBlock(), createBlock(_sfc_main$5, {
22307
+ key: 0,
22285
22308
  "waiting-for-webhook": isExecutionWaitingForWebhook.value,
22286
22309
  disabled: isExecutionDisabled.value,
22287
22310
  executing: isWorkflowRunning.value,
22288
22311
  onMouseenter: onRunWorkflowButtonMouseEnter,
22289
22312
  onMouseleave: onRunWorkflowButtonMouseLeave,
22290
22313
  onClick: onRunWorkflow
22291
- }, null, 8, ["waiting-for-webhook", "disabled", "executing"]),
22314
+ }, null, 8, ["waiting-for-webhook", "disabled", "executing"])) : createCommentVNode("", true),
22292
22315
  containsChatTriggerNodes.value ? (openBlock(), createBlock(_component_CanvasChatButton, {
22293
- key: 0,
22316
+ key: 1,
22294
22317
  onClick: onOpenChat
22295
22318
  })) : createCommentVNode("", true),
22296
22319
  isStopExecutionButtonVisible.value ? (openBlock(), createBlock(_sfc_main$4, {
22297
- key: 1,
22320
+ key: 2,
22298
22321
  stopping: isStoppingExecution.value,
22299
22322
  onClick: onStopExecution
22300
22323
  }, null, 8, ["stopping"])) : createCommentVNode("", true),
22301
22324
  isStopWaitingForWebhookButtonVisible.value ? (openBlock(), createBlock(_sfc_main$3, {
22302
- key: 2,
22325
+ key: 3,
22303
22326
  onClick: onStopWaitingForWebhook
22304
22327
  })) : createCommentVNode("", true),
22305
22328
  isClearExecutionButtonVisible.value ? (openBlock(), createBlock(_sfc_main$2, {
22306
- key: 3,
22329
+ key: 4,
22307
22330
  onClick: onClearExecutionData
22308
22331
  })) : createCommentVNode("", true)
22309
22332
  ], 2)) : createCommentVNode("", true),
@@ -22337,7 +22360,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
22337
22360
  }))
22338
22361
  ]),
22339
22362
  _: 1
22340
- }, 8, ["workflow", "workflow-object", "fallback-nodes", "event-bus", "read-only", "key-bindings"])) : createCommentVNode("", true);
22363
+ }, 8, ["workflow", "workflow-object", "fallback-nodes", "event-bus", "read-only", "executing", "key-bindings"])) : createCommentVNode("", true);
22341
22364
  };
22342
22365
  }
22343
22366
  });
@@ -22407,7 +22430,8 @@ export {
22407
22430
  useViewStacks as a,
22408
22431
  useKeyboardNavigation as b,
22409
22432
  AINodesView as c,
22410
- flattenCreateElements as f,
22433
+ flattenCreateElements as d,
22434
+ formatTriggerActionName as f,
22411
22435
  sortNodeCreateElements as s,
22412
22436
  transformNodeType as t,
22413
22437
  useNodeCreatorStore as u