n8n-editor-ui 1.62.2 → 1.63.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) 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-DVjv2hwE.js → core-BTO0AmLR.js} +5 -8
  17. package/dist/assets/{AnnotationTagsDropdown.ee-DCIPUepk.js → AnnotationTagsDropdown.ee-CEthDL8s.js} +4 -5
  18. package/dist/assets/{AuthView-DUPyWTzP.js → AuthView-Dtllm2Hm.js} +4 -4
  19. package/dist/assets/{CanvasControls-Bp-Hti67.js → CanvasControls-3e7GyyWC.js} +27 -27
  20. package/dist/assets/{ChangePasswordView-D-ZXDCSs.js → ChangePasswordView-RbBzZKmy.js} +30 -32
  21. package/dist/assets/{CredentialsView-CfTFJvIh.js → CredentialsView-BEobbBhB.js} +217 -212
  22. package/dist/assets/{ErrorView-QGaMA0LX.js → ErrorView-Dig_858_.js} +27 -27
  23. package/dist/assets/{ExecutionsFilter-Bck1b8Ij.js → ExecutionsFilter-D4gTpteQ.js} +4 -4
  24. package/dist/assets/{ExecutionsView-CzoIB_Xb.js → ExecutionsView-BzDdfbTp.js} +30 -30
  25. package/dist/assets/{FixedCollectionParameter-lpg6xB-C.js → FixedCollectionParameter-B1iBnOzV.js} +27 -27
  26. package/dist/assets/{ForgotMyPasswordView-CuYZWaqe.js → ForgotMyPasswordView-DrecvRAt.js} +28 -28
  27. package/dist/assets/{MainHeader-CyQZuyFo.js → MainHeader-BGBc_yGt.js} +45 -52
  28. package/dist/assets/{MainHeader-PNFUlNPa.css → MainHeader-m131IPYi.css} +9 -9
  29. package/dist/assets/{MainSidebar-K1l1zimY.js → MainSidebar-CGoARd9G.js} +28 -28
  30. package/dist/assets/{NodeCreation-BwNEef4i.js → NodeCreation-CJ4p9t6U.js} +14 -21
  31. package/dist/assets/{NodeCreator-B8E-cqcN.js → NodeCreator-MlJNsM5w.js} +68 -94
  32. package/dist/assets/{NodeViewSwitcher-DZNvWE_C.css → NodeViewSwitcher-BMWd0Gm9.css} +166 -128
  33. package/dist/assets/{NodeViewSwitcher-BiAFccgP.js → NodeViewSwitcher-CPwqYIKa.js} +647 -632
  34. package/dist/assets/{ProjectCardBadge-Bm4smn6X.js → ProjectCardBadge-Dsi1FktR.js} +2 -2
  35. package/dist/assets/{ProjectSettings-C0vFQjA7.js → ProjectSettings-NxkU_5Cm.js} +29 -30
  36. package/dist/assets/{ProjectTabs-BaktqVTx.js → ProjectTabs-BNt9vnB4.js} +3 -3
  37. package/dist/assets/{PushConnectionTracker-CgYWwLIC.js → PushConnectionTracker-BfyBSTsq.js} +4 -4
  38. package/dist/assets/{ResourcesListLayout-BWVlXJTF.js → ResourcesListLayout-wxQPFPh8.js} +4 -4
  39. package/dist/assets/{RunDataAi-BGOKfyvO.js → RunDataAi-BPXMLfKc.js} +11 -18
  40. package/dist/assets/{RunDataJson-Dpt6MF9e.js → RunDataJson-nHxoBXwc.js} +30 -30
  41. package/dist/assets/{RunDataJsonActions-8St1Hrls.js → RunDataJsonActions-CXjxyS8I.js} +28 -28
  42. package/dist/assets/{RunDataSearch-DSiRjRgH.js → RunDataSearch-_dTfLnCz.js} +27 -27
  43. package/dist/assets/{RunDataTable-C_7N0jmc.js → RunDataTable-Cle-Xlc9.js} +27 -27
  44. package/dist/assets/{SamlOnboarding-DZSla_S4.js → SamlOnboarding-DJd6oxdL.js} +29 -30
  45. package/dist/assets/{SettingsApiView-DT8DOVp4.js → SettingsApiView-B6K4GJFb.js} +29 -31
  46. package/dist/assets/{SettingsCommunityNodesView-CLIsL549.js → SettingsCommunityNodesView-BqLPWoe4.js} +31 -33
  47. package/dist/assets/{SettingsExternalSecrets-tTHThU03.js → SettingsExternalSecrets-hxNeJoPh.js} +28 -29
  48. package/dist/assets/{SettingsFakeDoorView-B1w2z2tW.js → SettingsFakeDoorView-B-CvApAQ.js} +27 -27
  49. package/dist/assets/{SettingsLdapView-CXjatsy2.js → SettingsLdapView-Cx9juILz.js} +31 -33
  50. package/dist/assets/{SettingsLogStreamingView-hVeF8Js7.js → SettingsLogStreamingView-DHdBwQLl.js} +31 -35
  51. package/dist/assets/{SettingsPersonalView-dPFbOBaU.js → SettingsPersonalView-BB52C_8a.js} +27 -27
  52. package/dist/assets/{SettingsSourceControl-iPHLpUWW.js → SettingsSourceControl-jvUljmfM.js} +28 -29
  53. package/dist/assets/{SettingsSso-D4kKt04i.js → SettingsSso-CtDqCHek.js} +27 -27
  54. package/dist/assets/{SettingsUsageAndPlan-DDB0UVxU.css → SettingsUsageAndPlan-B72odhIc.css} +30 -16
  55. package/dist/assets/{SettingsUsageAndPlan-DL4cSlMX.js → SettingsUsageAndPlan-DtE-8JQB.js} +110 -152
  56. package/dist/assets/{SettingsUsersView-DSKPJqAb.js → SettingsUsersView-D0fkCNqq.js} +27 -27
  57. package/dist/assets/{SettingsView-BDu7L_0_.js → SettingsView-Bdy1VVV5.js} +28 -28
  58. package/dist/assets/{SetupView-EXoXB-ik.js → SetupView-DZD5V-sp.js} +28 -28
  59. package/dist/assets/{SetupWorkflowCredentialsButton-BQelHZob.js → SetupWorkflowCredentialsButton-BniWA70J.js} +27 -27
  60. package/dist/assets/{SetupWorkflowFromTemplateView-0BtcqGD7.js → SetupWorkflowFromTemplateView-zPdNiNwz.js} +29 -29
  61. package/dist/assets/{SigninView-BaOFfcdg.js → SigninView-vhBJQAUq.js} +29 -30
  62. package/dist/assets/SignoutView-BvsyOBJl.js +57 -0
  63. package/dist/assets/{SignupView-CDCHJ_UU.js → SignupView-BnaxyfVy.js} +28 -28
  64. package/dist/assets/{TemplateDetails-CmiQhqfe.js → TemplateDetails-CgWak1sI.js} +4 -4
  65. package/dist/assets/{TemplateList-Cjfx-kvz.js → TemplateList-Dk-hIcwM.js} +3 -3
  66. package/dist/assets/{TemplatesCollectionView-BJoAQahB.js → TemplatesCollectionView-BykSqyyh.js} +31 -31
  67. package/dist/assets/{TemplatesSearchView-CcDOMLoo.js → TemplatesSearchView-Db3YPUKN.js} +30 -30
  68. package/dist/assets/{TemplatesView-S843Sfeg.js → TemplatesView-DSqSs2Fe.js} +3 -3
  69. package/dist/assets/{TemplatesWorkflowView-CJODvWh-.js → TemplatesWorkflowView-AcNIRcdH.js} +31 -31
  70. package/dist/assets/{VariablesView-CvCl_CSB.js → VariablesView-BDucuF4S.js} +29 -30
  71. package/dist/assets/{WorkerView-2i9FVRFh.js → WorkerView-Bt7mkvne.js} +33 -35
  72. package/dist/assets/{WorkflowActivator-vZvN6hnQ.js → WorkflowActivator-BBCmkXVM.js} +4 -4
  73. package/dist/assets/{WorkflowExecutionsInfoAccordion-Dat-XhDW.js → WorkflowExecutionsInfoAccordion-C1u1QoTS.js} +3 -3
  74. package/dist/assets/{WorkflowExecutionsLandingPage-BwaqELU2.js → WorkflowExecutionsLandingPage-DO0GNREn.js} +28 -28
  75. package/dist/assets/{WorkflowExecutionsPreview-CZbsi063.js → WorkflowExecutionsPreview-DKazVAlp.js} +31 -31
  76. package/dist/assets/{WorkflowExecutionsView-Dy-qrHuK.js → WorkflowExecutionsView-xQs2Ihb3.js} +33 -35
  77. package/dist/assets/{WorkflowHistory-D03vy7TN.js → WorkflowHistory-CRZhK8Sh.js} +30 -31
  78. package/dist/assets/{WorkflowOnboardingView-CnXznpEj.js → WorkflowOnboardingView-BLRc_Z_9.js} +27 -27
  79. package/dist/assets/{WorkflowPreview-Ch0qYfjN.js → WorkflowPreview-CpeWIc9m.js} +3 -3
  80. package/dist/assets/WorkflowsView-CADkCbWU.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/{chart.js-DiBOFLDH.js → chart.js-BYpPl_l4.js} +1 -4
  84. package/dist/assets/{cloud-CxxrWb7j.js → cloud-CyEezfUz.js} +27 -27
  85. package/dist/assets/{codemirror-lang-html-n8n-COz1fWJn.js → codemirror-lang-html-n8n-BElKE4vf.js} +50 -92
  86. package/dist/assets/{dateFormatter-D2RNj1zt.js → dateFormatter-B-oph3V5.js} +1 -1
  87. package/dist/assets/{dateformat-DjCPSdAV.js → dateformat-BevCJF2z.js} +1 -1
  88. package/dist/assets/email-providers-Brdpqw-Z.js +1 -0
  89. package/dist/assets/{fast-json-stable-stringify-DSBIc8sQ.js → fast-json-stable-stringify-D9R5x91P.js} +11 -21
  90. package/dist/assets/{file-saver-Do8bJuLv.js → file-saver-Dbfm4l4I.js} +6 -11
  91. package/dist/assets/{flatted-D70IerrI.js → flatted-BLlNkUR-.js} +1 -2
  92. package/dist/assets/highlight.js-Brdpqw-Z.js +1 -0
  93. package/dist/assets/{humanize-duration-BPzNjE6S.js → humanize-duration-DdvB4QXM.js} +1 -1
  94. package/dist/assets/{index-CSBhQMYI.css → index-B5Pl_Rdy.css} +96 -21
  95. package/dist/assets/{index-B4ZmQmcP.js → index-DTqspxIG.js} +4487 -5975
  96. package/dist/assets/{jsonpath-C_2TkXL_.js → jsonpath--XXuA3UN.js} +92 -183
  97. package/dist/assets/{lodash-es-kRWQHL5K.js → lodash-es-DCRmYdQ5.js} +2 -1
  98. package/dist/assets/{luxon-Bt_g4NOb.js → luxon-N8mghSWH.js} +68 -136
  99. package/dist/assets/{n8n-2AIRllP4.css → n8n-C6KBCWah.css} +69 -27
  100. package/dist/assets/{n8n-B_ltL-ji.js → n8n-o-6nV4eX.js} +2297 -3491
  101. package/dist/assets/{pinia-CH9HlKCh.js → pinia-BWzoPyXU.js} +1 -1
  102. package/dist/assets/{prettier-DuWRKCwA.js → prettier-eWLVZldr.js} +332 -576
  103. package/dist/assets/{pushConnection.store-CUfZkZRc.js → pushConnection.store-BGMVJHP3.js} +4 -5
  104. package/dist/assets/{qrcode.vue-BxNS_c3b.js → qrcode.vue-BavVPFUM.js} +9 -18
  105. package/dist/assets/{templateActions-HBG0P7yi.js → templateActions-DOJZ_yY5.js} +1 -1
  106. package/dist/assets/{useBeforeUnload-DuM6ishT.js → useBeforeUnload-Tcm8t4ZF.js} +2 -2
  107. package/dist/assets/{useExecutionDebugging-BWhMgffE.js → useExecutionDebugging-CiwtVWXD.js} +2 -2
  108. package/dist/assets/{usePushConnection-37N3tZJ2.js → usePushConnection-CbB_XBsw.js} +7 -19
  109. package/dist/assets/{useUserHelpers-DqBuD9oN.js → useUserHelpers-CKYk9GNq.js} +1 -1
  110. package/dist/assets/{useWorkflowActivate-aYIkmCnj.js → useWorkflowActivate-C8RDXHeZ.js} +2 -2
  111. package/dist/assets/{uuid-BoySKAeK.js → uuid-DRDfXVM2.js} +2 -4
  112. package/dist/assets/{v3-infinite-loading-lAZO0HDs.js → v3-infinite-loading-CHlSsXAy.js} +1 -1
  113. package/dist/assets/{vendor-DCeaNtb_.js → vendor-D8YCjNHu.js} +18 -17
  114. package/dist/assets/{vue-agile-CyiHXD5R.js → vue-agile-Busf3nxn.js} +3 -3
  115. package/dist/assets/{vue-chartjs-CAJPqBur.js → vue-chartjs-DBNEiLG-.js} +3 -4
  116. package/dist/assets/{vue-i18n-CVQE9o3c.js → vue-i18n-CeifA_Nk.js} +2 -3
  117. package/dist/assets/{vue-json-pretty-DkJjhayc.js → vue-json-pretty-DHS8nWi_.js} +21 -40
  118. package/dist/assets/xss-Brdpqw-Z.js +1 -0
  119. package/dist/index.html +29 -29
  120. package/package.json +1 -1
  121. package/dist/assets/@n8n/api-types-Di8JQpRT.js +0 -1
  122. package/dist/assets/SignoutView-CB5tWChF.js +0 -57
  123. package/dist/assets/WorkflowsView-bdDn4gu_.js +0 -846
  124. package/dist/assets/email-providers-CUV6UfrV.js +0 -1
  125. package/dist/assets/highlight.js-CUV6UfrV.js +0 -1
  126. package/dist/assets/xss-CUV6UfrV.js +0 -1
@@ -1,27 +1,27 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataTable-C_7N0jmc.js","assets/index-B4ZmQmcP.js","assets/vendor-DCeaNtb_.js","assets/@sentry/vue-UFuYeDxK.js","assets/n8n-B_ltL-ji.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-DVjv2hwE.js","assets/n8n-2AIRllP4.css","assets/flatted-D70IerrI.js","assets/pinia-CH9HlKCh.js","assets/bowser-C3wWO1p5.js","assets/dateformat-DjCPSdAV.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-DSBIc8sQ.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-CSBhQMYI.css","assets/RunDataTable-ZwoYenSI.css","assets/RunDataJson-Dpt6MF9e.js","assets/vue-json-pretty-DkJjhayc.js","assets/RunDataJson-Dtc8i0I7.css","assets/RunDataSearch-DSiRjRgH.js","assets/RunDataSearch-BA0wlJtp.css","assets/NodeCreation-BwNEef4i.js","assets/NodeCreation-30KXmZi2.css","assets/CanvasControls-Bp-Hti67.js","assets/CanvasControls-Gjw5xMXK.css","assets/SetupWorkflowCredentialsButton-BQelHZob.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-DVjv2hwE.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-B4ZmQmcP.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-B_ltL-ji.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-BGOKfyvO.js";
8
- import { V as VueJsonPretty } from "./vue-json-pretty-DkJjhayc.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-Do8bJuLv.js";
11
- import { c as convertToDisplayDateComponents } from "./dateFormatter-D2RNj1zt.js";
12
- import { u as useWorkflowActivate } from "./useWorkflowActivate-aYIkmCnj.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-BWhMgffE.js";
15
- import { v as v4 } from "./uuid-BoySKAeK.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataTable-Cle-Xlc9.js","assets/index-DTqspxIG.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-nHxoBXwc.js","assets/vue-json-pretty-DHS8nWi_.js","assets/RunDataJson-Dtc8i0I7.css","assets/RunDataSearch-_dTfLnCz.js","assets/RunDataSearch-BA0wlJtp.css","assets/NodeCreation-CJ4p9t6U.js","assets/NodeCreation-30KXmZi2.css","assets/CanvasControls-3e7GyyWC.js","assets/CanvasControls-Gjw5xMXK.css","assets/SetupWorkflowCredentialsButton-BniWA70J.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-DTqspxIG.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-BPXMLfKc.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-C8RDXHeZ.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-CiwtVWXD.js";
15
+ import { v as v4 } from "./uuid-DRDfXVM2.js";
16
16
  import { n as noCase } from "./change-case-Dux1iW35.js";
17
- import { u as usePushConnectionStore } from "./pushConnection.store-CUfZkZRc.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-BphmFVJY.js";
19
- import { u as useBeforeUnload } from "./useBeforeUnload-DuM6ishT.js";
20
- import { _ as _sfc_main$$ } from "./@vue-flow/controls-ByUYVWad.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-DgOSPOHv.js";
22
- import { _ as _sfc_main$11 } from "./@vue-flow/background-VFdKMN89.js";
23
- import { _ as _sfc_main$12 } from "./@vue-flow/minimap-CXuyA5pl.js";
24
- import { _ as _sfc_main$10 } from "./@vue-flow/node-resizer-BiyXe9J3.js";
17
+ import { u as usePushConnectionStore } from "./pushConnection.store-BGMVJHP3.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-Tcm8t4ZF.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";
25
25
  const position = ref([0, 0]);
26
26
  const isOpen = ref(false);
27
27
  const target = ref();
@@ -42,8 +42,7 @@ const useContextMenu = (onAction = () => {
42
42
  () => sourceControlStore.preferences.branchReadOnly || uiStore.isReadOnlyView || !workflowPermissions.value.update
43
43
  );
44
44
  const targetNodeIds = computed(() => {
45
- if (!isOpen.value || !target.value)
46
- return [];
45
+ if (!isOpen.value || !target.value) return [];
47
46
  const currentTarget = target.value;
48
47
  return currentTarget.source === "canvas" ? currentTarget.nodeIds : [currentTarget.nodeId];
49
48
  });
@@ -56,10 +55,8 @@ const useContextMenu = (onAction = () => {
56
55
  };
57
56
  const canDuplicateNode = (node2) => {
58
57
  const nodeType = nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
59
- if (!nodeType)
60
- return false;
61
- if (NOT_DUPLICATABLE_NODE_TYPES.includes(nodeType.name))
62
- return false;
58
+ if (!nodeType) return false;
59
+ if (NOT_DUPLICATABLE_NODE_TYPES.includes(nodeType.name)) return false;
63
60
  return canAddNodeOfType(nodeType);
64
61
  };
65
62
  const hasPinData = (node2) => {
@@ -571,8 +568,8 @@ const _hoisted_1$p = {
571
568
  key: 0,
572
569
  class: "webhooks"
573
570
  };
574
- const _hoisted_2$j = ["title"];
575
- const _hoisted_3$c = {
571
+ const _hoisted_2$i = ["title"];
572
+ const _hoisted_3$d = {
576
573
  key: 0,
577
574
  class: "node-webhooks"
578
575
  };
@@ -748,10 +745,10 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent({
748
745
  class: "minimize-button minimize-icon"
749
746
  }),
750
747
  createTextVNode(" " + toDisplayString(baseText.value.toggleTitle), 1)
751
- ], 10, _hoisted_2$j),
748
+ ], 10, _hoisted_2$i),
752
749
  createVNode(_component_el_collapse_transition, null, {
753
750
  default: withCtx(() => [
754
- !isMinimized.value ? (openBlock(), createElementBlock("div", _hoisted_3$c, [
751
+ !isMinimized.value ? (openBlock(), createElementBlock("div", _hoisted_3$d, [
755
752
  !isProductionOnly.value ? (openBlock(), createElementBlock("div", _hoisted_4$7, [
756
753
  createVNode(_component_el_row, null, {
757
754
  default: withCtx(() => [
@@ -2766,8 +2763,7 @@ function useScrollLock(element, initialState = false) {
2766
2763
  set(v) {
2767
2764
  if (v)
2768
2765
  lock();
2769
- else
2770
- unlock();
2766
+ else unlock();
2771
2767
  }
2772
2768
  });
2773
2769
  }
@@ -2848,8 +2844,8 @@ const UseWindowSize = /* @__PURE__ */ defineComponent({
2848
2844
  }
2849
2845
  });
2850
2846
  const _hoisted_1$o = ["data-test-id"];
2851
- const _hoisted_2$i = ["textContent"];
2852
- const _hoisted_3$b = ["onClick"];
2847
+ const _hoisted_2$h = ["textContent"];
2848
+ const _hoisted_3$c = ["onClick"];
2853
2849
  const _hoisted_4$6 = ["onClick"];
2854
2850
  const _hoisted_5$7 = ["data-node-name"];
2855
2851
  const _hoisted_6$6 = ["onClick"];
@@ -2932,17 +2928,14 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
2932
2928
  return shouldShowNodeInputIssues.value && (nodeInputIssues.value[connectionType2] ?? []).length > 0;
2933
2929
  }
2934
2930
  function isNodeInputConfiguration(connectionConfig) {
2935
- if (typeof connectionConfig === "string")
2936
- return false;
2931
+ if (typeof connectionConfig === "string") return false;
2937
2932
  return "type" in connectionConfig;
2938
2933
  }
2939
2934
  function getPossibleSubInputConnections() {
2940
- if (!nodeType.value || !props.rootNode)
2941
- return [];
2935
+ if (!nodeType.value || !props.rootNode) return [];
2942
2936
  const inputs2 = getNodeInputs(workflow.value, props.rootNode, nodeType.value);
2943
2937
  const nonMainInputs = inputs2.filter((input) => {
2944
- if (!isNodeInputConfiguration(input))
2945
- return false;
2938
+ if (!isNodeInputConfiguration(input)) return false;
2946
2939
  return input.type !== "main";
2947
2940
  });
2948
2941
  return nonMainInputs;
@@ -3006,7 +2999,7 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
3006
2999
  [_ctx.$style.hasIssues]: hasInputIssues(connection.type)
3007
3000
  }),
3008
3001
  textContent: toDisplayString(`${connection.displayName}${connection.required ? " *" : ""}`)
3009
- }, null, 10, _hoisted_2$i),
3002
+ }, null, 10, _hoisted_2$h),
3010
3003
  createVNode(unref(OnClickOutside), {
3011
3004
  onTrigger: ($event) => expandConnectionGroup(connection.type, false)
3012
3005
  }, {
@@ -3105,7 +3098,7 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
3105
3098
  ], 14, _hoisted_5$7);
3106
3099
  }), 128))
3107
3100
  ], 2)) : createCommentVNode("", true)
3108
- ], 14, _hoisted_3$b)
3101
+ ], 14, _hoisted_3$c)
3109
3102
  ]),
3110
3103
  _: 2
3111
3104
  }, 1032, ["onTrigger"])
@@ -3173,7 +3166,7 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
3173
3166
  const emit = __emit;
3174
3167
  const lastPopupCountUpdate = ref(0);
3175
3168
  const router = useRouter();
3176
- const { runWorkflow, stopCurrentExecution } = useRunWorkflow({ router });
3169
+ const { runWorkflowResolvePending, stopCurrentExecution } = useRunWorkflow({ router });
3177
3170
  const workflowsStore = useWorkflowsStore();
3178
3171
  const externalHooks = useExternalHooks();
3179
3172
  const toast = useToast();
@@ -3253,8 +3246,7 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
3253
3246
  return "";
3254
3247
  });
3255
3248
  const tooltipText = computed(() => {
3256
- if (disabledHint.value)
3257
- return disabledHint.value;
3249
+ if (disabledHint.value) return disabledHint.value;
3258
3250
  if (props.tooltip && !isLoading.value && testStepButtonPopupCount() < MAX_POPUP_COUNT) {
3259
3251
  return props.tooltip;
3260
3252
  }
@@ -3339,7 +3331,7 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
3339
3331
  };
3340
3332
  telemetry.track("User clicked execute node button", telemetryPayload);
3341
3333
  await externalHooks.run("nodeExecuteButton.onClick", telemetryPayload);
3342
- await runWorkflow({
3334
+ await runWorkflowResolvePending({
3343
3335
  destinationNode: props.nodeName,
3344
3336
  source: "RunData.ExecuteNodeButton"
3345
3337
  });
@@ -3382,8 +3374,8 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
3382
3374
  });
3383
3375
  const _withScopeId$5 = (n) => (pushScopeId("data-v-08ca8efa"), n = n(), popScopeId(), n);
3384
3376
  const _hoisted_1$n = { class: "header-side-menu" };
3385
- const _hoisted_2$h = { key: 1 };
3386
- const _hoisted_3$a = {
3377
+ const _hoisted_2$g = { key: 1 };
3378
+ const _hoisted_3$b = {
3387
3379
  key: 0,
3388
3380
  class: "node-is-not-valid"
3389
3381
  };
@@ -3486,8 +3478,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
3486
3478
  return props.executable || props.foreignCredentials.length > 0;
3487
3479
  });
3488
3480
  const nodeTypeVersions = computed(() => {
3489
- if (!node2.value)
3490
- return [];
3481
+ if (!node2.value) return [];
3491
3482
  return nodeTypesStore.getNodeVersions(node2.value.type);
3492
3483
  });
3493
3484
  const latestVersion = computed(() => Math.max(...nodeTypeVersions.value));
@@ -3818,8 +3809,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
3818
3809
  emit("openConnectionNodeCreator", nodeName, connectionType2);
3819
3810
  };
3820
3811
  const populateHiddenIssuesSet = () => {
3821
- if (!node2.value || !workflowsStore.isNodePristine(node2.value.name))
3822
- return;
3812
+ if (!node2.value || !workflowsStore.isNodePristine(node2.value.name)) return;
3823
3813
  hiddenIssuesInputs.value.push("credentials");
3824
3814
  parametersNoneSetting.value.forEach((parameter) => {
3825
3815
  hiddenIssuesInputs.value.push(parameter.name);
@@ -4139,7 +4129,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
4139
4129
  "read-only": isReadOnly.value,
4140
4130
  "onUpdate:modelValue": nameChanged
4141
4131
  }, null, 8, ["model-value", "node-type", "read-only"])) : createCommentVNode("", true),
4142
- isExecutable.value ? (openBlock(), createElementBlock("div", _hoisted_2$h, [
4132
+ isExecutable.value ? (openBlock(), createElementBlock("div", _hoisted_2$g, [
4143
4133
  !_ctx.blockUI && node2.value && nodeValid.value ? (openBlock(), createBlock(_sfc_main$R, {
4144
4134
  key: 0,
4145
4135
  "data-test-id": "node-execute-button",
@@ -4161,7 +4151,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
4161
4151
  "onUpdate:modelValue": onTabSelect
4162
4152
  }, null, 8, ["model-value", "node-type", "push-ref"])) : createCommentVNode("", true)
4163
4153
  ], 2),
4164
- node2.value && !nodeValid.value ? (openBlock(), createElementBlock("div", _hoisted_3$a, [
4154
+ node2.value && !nodeValid.value ? (openBlock(), createElementBlock("div", _hoisted_3$b, [
4165
4155
  createBaseVNode("p", {
4166
4156
  class: normalizeClass(_ctx.$style.warningIcon)
4167
4157
  }, [
@@ -4383,16 +4373,16 @@ const _hoisted_1$m = /* @__PURE__ */ createBaseVNode("div", null, [
4383
4373
  /* @__PURE__ */ createBaseVNode("div"),
4384
4374
  /* @__PURE__ */ createBaseVNode("div")
4385
4375
  ], -1);
4386
- const _hoisted_2$g = /* @__PURE__ */ createBaseVNode("div", null, [
4376
+ const _hoisted_2$f = /* @__PURE__ */ createBaseVNode("div", null, [
4387
4377
  /* @__PURE__ */ createBaseVNode("div"),
4388
4378
  /* @__PURE__ */ createBaseVNode("div"),
4389
4379
  /* @__PURE__ */ createBaseVNode("div"),
4390
4380
  /* @__PURE__ */ createBaseVNode("div"),
4391
4381
  /* @__PURE__ */ createBaseVNode("div")
4392
4382
  ], -1);
4393
- const _hoisted_3$9 = [
4383
+ const _hoisted_3$a = [
4394
4384
  _hoisted_1$m,
4395
- _hoisted_2$g
4385
+ _hoisted_2$f
4396
4386
  ];
4397
4387
  function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
4398
4388
  const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
@@ -4422,7 +4412,7 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
4422
4412
  ], 2)) : createCommentVNode("", true),
4423
4413
  createBaseVNode("div", {
4424
4414
  class: normalizeClass(_ctx.$style.grid)
4425
- }, _hoisted_3$9, 2)
4415
+ }, _hoisted_3$a, 2)
4426
4416
  ], 2)
4427
4417
  ]),
4428
4418
  _: 1
@@ -4664,12 +4654,9 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
4664
4654
  setPositions(mainPanelDimensions.value.relativeLeft);
4665
4655
  });
4666
4656
  const currentNodePaneType = computed(() => {
4667
- if (!hasInputSlot.value)
4668
- return "inputless";
4669
- if (!props.isDraggable)
4670
- return "dragless";
4671
- if (props.nodeType === null)
4672
- return "unknown";
4657
+ if (!hasInputSlot.value) return "inputless";
4658
+ if (!props.isDraggable) return "dragless";
4659
+ if (props.nodeType === null) return "unknown";
4673
4660
  return props.nodeType.parameterPane ?? "regular";
4674
4661
  });
4675
4662
  const mainPanelDimensions = computed(
@@ -4695,8 +4682,7 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
4695
4682
  });
4696
4683
  const supportedResizeDirections = computed(() => {
4697
4684
  const supportedDirections = ["right"];
4698
- if (props.isDraggable)
4699
- supportedDirections.push("left");
4685
+ if (props.isDraggable) supportedDirections.push("left");
4700
4686
  return supportedDirections;
4701
4687
  });
4702
4688
  const hasInputSlot = computed(() => {
@@ -4704,15 +4690,12 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
4704
4690
  });
4705
4691
  const inputPanelMargin = computed(() => pxToRelativeWidth(SIDE_PANELS_MARGIN));
4706
4692
  const minimumLeftPosition = computed(() => {
4707
- if (containerWidth.value < MIN_WINDOW_WIDTH)
4708
- return pxToRelativeWidth(1);
4709
- if (!hasInputSlot.value)
4710
- return pxToRelativeWidth(SIDE_MARGIN);
4693
+ if (containerWidth.value < MIN_WINDOW_WIDTH) return pxToRelativeWidth(1);
4694
+ if (!hasInputSlot.value) return pxToRelativeWidth(SIDE_MARGIN);
4711
4695
  return pxToRelativeWidth(SIDE_MARGIN + 20) + inputPanelMargin.value;
4712
4696
  });
4713
4697
  const maximumRightPosition = computed(() => {
4714
- if (containerWidth.value < MIN_WINDOW_WIDTH)
4715
- return pxToRelativeWidth(1);
4698
+ if (containerWidth.value < MIN_WINDOW_WIDTH) return pxToRelativeWidth(1);
4716
4699
  return pxToRelativeWidth(SIDE_MARGIN + 20) + inputPanelMargin.value;
4717
4700
  });
4718
4701
  const canMoveLeft = computed(() => {
@@ -4823,12 +4806,9 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
4823
4806
  function onResize({ direction, x, width }) {
4824
4807
  const relativeDistance = pxToRelativeWidth(x);
4825
4808
  const relativeWidth = pxToRelativeWidth(width);
4826
- if (direction === "left" && relativeDistance <= minimumLeftPosition.value)
4827
- return;
4828
- if (direction === "right" && 1 - relativeDistance <= maximumRightPosition.value)
4829
- return;
4830
- if (width <= MIN_PANEL_WIDTH)
4831
- 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;
4832
4812
  setMainPanelWidth(relativeWidth);
4833
4813
  setPositions(direction === "left" ? relativeDistance : mainPanelDimensions.value.relativeLeft);
4834
4814
  }
@@ -4954,8 +4934,8 @@ const cssModules$w = {
4954
4934
  };
4955
4935
  const NDVDraggablePanels = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__cssModules", cssModules$w]]);
4956
4936
  const _hoisted_1$k = { key: 0 };
4957
- const _hoisted_2$f = { key: 1 };
4958
- const _hoisted_3$8 = { key: 2 };
4937
+ const _hoisted_2$e = { key: 1 };
4938
+ const _hoisted_3$9 = { key: 2 };
4959
4939
  const _sfc_main$M = /* @__PURE__ */ defineComponent({
4960
4940
  __name: "RunDataPinButton",
4961
4941
  props: {
@@ -4982,7 +4962,7 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
4982
4962
  visible: visible2.value
4983
4963
  }, {
4984
4964
  content: withCtx(() => [
4985
- 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, [
4986
4966
  createBaseVNode("strong", null, toDisplayString(unref(locale).baseText("ndv.pinData.pin.title")), 1),
4987
4967
  createVNode(_component_n8n_text, {
4988
4968
  size: "small",
@@ -5068,8 +5048,8 @@ const RunDataHtml$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defin
5068
5048
  default: RunDataHtml
5069
5049
  }, Symbol.toStringTag, { value: "Module" }));
5070
5050
  const _hoisted_1$i = { key: 0 };
5071
- const _hoisted_2$e = { key: 1 };
5072
- const _hoisted_3$7 = { key: 2 };
5051
+ const _hoisted_2$d = { key: 1 };
5052
+ const _hoisted_3$8 = { key: 2 };
5073
5053
  const _hoisted_4$4 = {
5074
5054
  key: 0,
5075
5055
  controls: "",
@@ -5126,7 +5106,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
5126
5106
  });
5127
5107
  return (_ctx, _cache) => {
5128
5108
  return openBlock(), createElementBlock("span", null, [
5129
- 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, [
5130
5110
  _ctx.binaryData.fileType === "video" ? (openBlock(), createElementBlock("video", _hoisted_4$4, [
5131
5111
  createBaseVNode("source", {
5132
5112
  src: embedSource.value,
@@ -5161,7 +5141,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
5161
5141
  }
5162
5142
  });
5163
5143
  const _hoisted_1$h = { class: "binary-data-window-wrapper" };
5164
- const _hoisted_2$d = { key: 0 };
5144
+ const _hoisted_2$c = { key: 0 };
5165
5145
  const _sfc_main$J = /* @__PURE__ */ defineComponent({
5166
5146
  __name: "BinaryDataDisplay",
5167
5147
  props: {
@@ -5221,7 +5201,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
5221
5201
  onClick: withModifiers(closeWindow, ["stop"])
5222
5202
  }, null, 8, ["title", "label"]),
5223
5203
  createBaseVNode("div", _hoisted_1$h, [
5224
- !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, {
5225
5205
  key: 1,
5226
5206
  "binary-data": binaryData.value
5227
5207
  }, null, 8, ["binary-data"]))
@@ -5231,19 +5211,19 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
5231
5211
  }
5232
5212
  });
5233
5213
  const LazyRunDataTable = defineAsyncComponent(
5234
- async () => await __vitePreload(() => import("./RunDataTable-C_7N0jmc.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-Cle-Xlc9.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)
5235
5215
  );
5236
5216
  const LazyRunDataJson = defineAsyncComponent(
5237
- async () => await __vitePreload(() => import("./RunDataJson-Dpt6MF9e.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-nHxoBXwc.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)
5238
5218
  );
5239
5219
  const LazyRunDataSchema = defineAsyncComponent(
5240
- async () => await __vitePreload(() => import("./index-B4ZmQmcP.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-DTqspxIG.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)
5241
5221
  );
5242
5222
  const LazyRunDataHtml = defineAsyncComponent(
5243
5223
  async () => await __vitePreload(() => Promise.resolve().then(() => RunDataHtml$1), true ? void 0 : void 0)
5244
5224
  );
5245
5225
  const LazyRunDataSearch = defineAsyncComponent(
5246
- async () => await __vitePreload(() => import("./RunDataSearch-DSiRjRgH.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-_dTfLnCz.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)
5247
5227
  );
5248
5228
  const _sfc_main$I = defineComponent({
5249
5229
  name: "RunData",
@@ -5376,6 +5356,10 @@ const _sfc_main$I = defineComponent({
5376
5356
  var _a, _b;
5377
5357
  return ((_b = (_a = this.$route) == null ? void 0 : _a.meta) == null ? void 0 : _b.readOnlyCanvas) === true;
5378
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
+ },
5379
5363
  activeNode() {
5380
5364
  return this.ndvStore.activeNode;
5381
5365
  },
@@ -5397,8 +5381,8 @@ const _sfc_main$I = defineComponent({
5397
5381
  isSchemaView() {
5398
5382
  return this.displayMode === "schema";
5399
5383
  },
5400
- isInputSchemaView() {
5401
- return this.isSchemaView && this.paneType === "input";
5384
+ displaysMultipleNodes() {
5385
+ return this.isSchemaView && this.paneType === "input" && this.nodes.length > 0;
5402
5386
  },
5403
5387
  isTriggerNode() {
5404
5388
  if (this.node === null) {
@@ -5470,8 +5454,7 @@ const _sfc_main$I = defineComponent({
5470
5454
  var _a, _b, _c;
5471
5455
  if (this.hasNodeRun) {
5472
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);
5473
- if (hints)
5474
- return hints;
5457
+ if (hints) return hints;
5475
5458
  }
5476
5459
  return [];
5477
5460
  },
@@ -5620,12 +5603,9 @@ const _sfc_main$I = defineComponent({
5620
5603
  return this.hasNodeRun && !this.hasRunError && this.unfilteredInputData.length > 0;
5621
5604
  },
5622
5605
  inputSelectLocation() {
5623
- if (this.isSchemaView)
5624
- return "none";
5625
- if (!this.hasNodeRun)
5626
- return "header";
5627
- if (this.maxRunIndex > 0)
5628
- return "runs";
5606
+ if (this.isSchemaView) return "none";
5607
+ if (!this.hasNodeRun) return "header";
5608
+ if (this.maxRunIndex > 0) return "runs";
5629
5609
  if (this.maxOutputIndex > 0 && this.branches.length > 1) {
5630
5610
  return "outputs";
5631
5611
  }
@@ -5657,13 +5637,11 @@ const _sfc_main$I = defineComponent({
5657
5637
  },
5658
5638
  watch: {
5659
5639
  node(newNode, prevNode) {
5660
- if ((newNode == null ? void 0 : newNode.id) === (prevNode == null ? void 0 : prevNode.id))
5661
- return;
5640
+ if ((newNode == null ? void 0 : newNode.id) === (prevNode == null ? void 0 : prevNode.id)) return;
5662
5641
  this.init();
5663
5642
  },
5664
5643
  hasNodeRun() {
5665
- if (this.paneType === "output")
5666
- this.setDisplayMode();
5644
+ if (this.paneType === "output") this.setDisplayMode();
5667
5645
  },
5668
5646
  inputDataPage: {
5669
5647
  handler(data) {
@@ -5678,8 +5656,7 @@ const _sfc_main$I = defineComponent({
5678
5656
  deep: true
5679
5657
  },
5680
5658
  jsonData(data, prevData) {
5681
- if (isEqual(data, prevData))
5682
- return;
5659
+ if (isEqual(data, prevData)) return;
5683
5660
  this.refreshDataSize();
5684
5661
  if (this.dataCount) {
5685
5662
  this.resetCurrentPageIfTooFar();
@@ -6014,8 +5991,7 @@ const _sfc_main$I = defineComponent({
6014
5991
  onDisplayModeChange(displayMode) {
6015
5992
  const previous = this.displayMode;
6016
5993
  this.ndvStore.setPanelDisplayMode({ pane: this.paneType, mode: displayMode });
6017
- if (!this.userEnabledShowData)
6018
- this.updateShowData();
5994
+ if (!this.userEnabledShowData) this.updateShowData();
6019
5995
  const dataContainerRef = this.$refs.dataContainer;
6020
5996
  if (dataContainerRef) {
6021
5997
  const dataDisplay2 = dataContainerRef.children[0];
@@ -6210,8 +6186,7 @@ const _sfc_main$I = defineComponent({
6210
6186
  }
6211
6187
  },
6212
6188
  setDisplayMode() {
6213
- if (!this.activeNode)
6214
- return;
6189
+ if (!this.activeNode) return;
6215
6190
  const shouldDisplayHtml = this.activeNode.type === HTML_NODE_TYPE && this.activeNode.parameters.operation === "generateHtmlTemplate";
6216
6191
  if (shouldDisplayHtml) {
6217
6192
  this.ndvStore.setPanelDisplayMode({
@@ -6306,13 +6281,13 @@ const style0$s = {
6306
6281
  hintCallout,
6307
6282
  schema
6308
6283
  };
6309
- 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);
6310
6285
  const _hoisted_1$g = {
6311
6286
  key: 0,
6312
6287
  class: "ml-4xs"
6313
6288
  };
6314
- const _hoisted_2$c = { key: 1 };
6315
- const _hoisted_3$6 = { key: 0 };
6289
+ const _hoisted_2$b = { key: 1 };
6290
+ const _hoisted_3$7 = { key: 0 };
6316
6291
  const _hoisted_4$3 = ["data-test-id"];
6317
6292
  const _hoisted_5$4 = { key: 0 };
6318
6293
  const _hoisted_6$3 = { key: 1 };
@@ -6482,7 +6457,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6482
6457
  }, [
6483
6458
  renderSlot(_ctx.$slots, "input-select", {}, void 0, true)
6484
6459
  ], 2)) : createCommentVNode("", true),
6485
- _ctx.maxRunIndex > 0 && !_ctx.isInputSchemaView ? withDirectives((openBlock(), createElementBlock("div", {
6460
+ _ctx.maxRunIndex > 0 && !_ctx.displaysMultipleNodes ? withDirectives((openBlock(), createElementBlock("div", {
6486
6461
  key: 3,
6487
6462
  class: normalizeClass(_ctx.$style.runSelector)
6488
6463
  }, [
@@ -6535,7 +6510,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6535
6510
  ], 2)), [
6536
6511
  [vShow, !_ctx.editMode.enabled]
6537
6512
  ]) : createCommentVNode("", true),
6538
- !_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),
6539
6514
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.getNodeHints(), (hint) => {
6540
6515
  return openBlock(), createBlock(_component_n8n_callout, {
6541
6516
  key: hint.message,
@@ -6550,7 +6525,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6550
6525
  _: 2
6551
6526
  }, 1032, ["class", "theme"]);
6552
6527
  }), 128)),
6553
- _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", {
6554
6529
  key: 5,
6555
6530
  class: normalizeClass(_ctx.$style.outputs),
6556
6531
  "data-test-id": "branches"
@@ -6565,7 +6540,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6565
6540
  "onUpdate:modelValue": _ctx.onBranchChange
6566
6541
  }, null, 8, ["model-value", "options", "onUpdate:modelValue"])
6567
6542
  ], 2)
6568
- ], 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", {
6569
6544
  key: 6,
6570
6545
  class: normalizeClass([_ctx.$style.itemsCount, { [_ctx.$style.muted]: _ctx.paneType === "input" && _ctx.maxRunIndex === 0 }]),
6571
6546
  "data-test-id": "ndv-items-count"
@@ -6661,14 +6636,21 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6661
6636
  error: _ctx.subworkflowExecutionError,
6662
6637
  class: normalizeClass(_ctx.$style.errorDisplay)
6663
6638
  }, null, 8, ["error", "class"])
6664
- ], 2)) : !_ctx.hasNodeRun && !(_ctx.isInputSchemaView && ((_e = _ctx.node) == null ? void 0 : _e.disabled)) ? (openBlock(), createElementBlock("div", {
6639
+ ], 2)) : _ctx.isWaitNodeWaiting ? (openBlock(), createElementBlock("div", {
6665
6640
  key: 3,
6666
6641
  class: normalizeClass(_ctx.$style.center)
6667
6642
  }, [
6668
- renderSlot(_ctx.$slots, "node-not-run", {}, void 0, true)
6669
- ], 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", {
6670
6647
  key: 4,
6671
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)
6672
6654
  }, [
6673
6655
  createVNode(_component_n8n_text, null, {
6674
6656
  default: withCtx(() => [
@@ -6683,12 +6665,12 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6683
6665
  _: 1
6684
6666
  })
6685
6667
  ], 2)) : _ctx.hasNodeRun && _ctx.isArtificialRecoveredEventItem ? (openBlock(), createElementBlock("div", {
6686
- key: 5,
6668
+ key: 6,
6687
6669
  class: normalizeClass(_ctx.$style.center)
6688
6670
  }, [
6689
6671
  renderSlot(_ctx.$slots, "recovered-artificial-output-data", {}, void 0, true)
6690
6672
  ], 2)) : _ctx.hasNodeRun && _ctx.hasRunError ? (openBlock(), createElementBlock("div", {
6691
- key: 6,
6673
+ key: 7,
6692
6674
  class: normalizeClass(_ctx.$style.stretchVertically)
6693
6675
  }, [
6694
6676
  _ctx.isPaneTypeInput ? (openBlock(), createBlock(_component_n8n_text, {
@@ -6707,7 +6689,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6707
6689
  ];
6708
6690
  }),
6709
6691
  _: 1
6710
- }, 8, ["class"])) : _ctx.$slots["content"] ? (openBlock(), createElementBlock("div", _hoisted_2$c, [
6692
+ }, 8, ["class"])) : _ctx.$slots["content"] ? (openBlock(), createElementBlock("div", _hoisted_2$b, [
6711
6693
  _ctx.workflowRunErrorAsNodeError ? (openBlock(), createBlock(_component_NodeErrorView, {
6712
6694
  key: 0,
6713
6695
  error: _ctx.workflowRunErrorAsNodeError,
@@ -6721,10 +6703,10 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6721
6703
  class: normalizeClass(_ctx.$style.dataDisplay)
6722
6704
  }, null, 8, ["error", "class"])) : createCommentVNode("", true)
6723
6705
  ], 2)) : _ctx.hasNodeRun && (!_ctx.unfilteredDataCount || _ctx.search && !_ctx.dataCount) && _ctx.branches.length > 1 ? (openBlock(), createElementBlock("div", {
6724
- key: 7,
6706
+ key: 8,
6725
6707
  class: normalizeClass(_ctx.$style.center)
6726
6708
  }, [
6727
- _ctx.search ? (openBlock(), createElementBlock("div", _hoisted_3$6, [
6709
+ _ctx.search ? (openBlock(), createElementBlock("div", _hoisted_3$7, [
6728
6710
  createVNode(_component_n8n_text, {
6729
6711
  tag: "h3",
6730
6712
  size: "large"
@@ -6758,14 +6740,14 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6758
6740
  _: 1
6759
6741
  }))
6760
6742
  ], 2)) : _ctx.hasNodeRun && !_ctx.inputData.length && !_ctx.search ? (openBlock(), createElementBlock("div", {
6761
- key: 8,
6743
+ key: 9,
6762
6744
  class: normalizeClass(_ctx.$style.center)
6763
6745
  }, [
6764
6746
  renderSlot(_ctx.$slots, "no-output-data", {}, () => [
6765
6747
  createTextVNode("xxx")
6766
6748
  ], true)
6767
6749
  ], 2)) : _ctx.hasNodeRun && !_ctx.showData ? (openBlock(), createElementBlock("div", {
6768
- key: 9,
6750
+ key: 10,
6769
6751
  class: normalizeClass(_ctx.$style.center)
6770
6752
  }, [
6771
6753
  createVNode(_component_n8n_text, {
@@ -6804,8 +6786,8 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6804
6786
  label: _ctx.$locale.baseText("runData.downloadBinaryData"),
6805
6787
  onClick: _cache[8] || (_cache[8] = ($event) => _ctx.downloadJsonData())
6806
6788
  }, null, 8, ["label"])
6807
- ], 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", {
6808
- 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,
6809
6791
  class: normalizeClass(_ctx.$style.center)
6810
6792
  }, [
6811
6793
  createVNode(_component_n8n_text, null, {
@@ -6818,7 +6800,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6818
6800
  _: 1
6819
6801
  })
6820
6802
  ], 2)) : _ctx.showIoSearchNoMatchContent ? (openBlock(), createElementBlock("div", {
6821
- key: 12,
6803
+ key: 13,
6822
6804
  class: normalizeClass(_ctx.$style.center)
6823
6805
  }, [
6824
6806
  createVNode(_component_n8n_text, {
@@ -6847,7 +6829,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6847
6829
  ]),
6848
6830
  _: 1
6849
6831
  })
6850
- ], 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 }, {
6851
6833
  default: withCtx(() => [
6852
6834
  createVNode(_component_LazyRunDataTable, {
6853
6835
  node: _ctx.node,
@@ -6865,7 +6847,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6865
6847
  }, null, 8, ["node", "input-data", "mapping-enabled", "distance-from-active", "run-index", "page-offset", "total-runs", "has-default-hover-state", "search", "onActiveRowChanged", "onDisplayModeChange"])
6866
6848
  ]),
6867
6849
  _: 1
6868
- })) : _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 }, {
6869
6851
  default: withCtx(() => [
6870
6852
  createVNode(_component_LazyRunDataJson, {
6871
6853
  "pane-type": _ctx.paneType,
@@ -6881,12 +6863,12 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6881
6863
  }, null, 8, ["pane-type", "edit-mode", "push-ref", "node", "input-data", "mapping-enabled", "distance-from-active", "run-index", "total-runs", "search"])
6882
6864
  ]),
6883
6865
  _: 1
6884
- })) : _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 }, {
6885
6867
  default: withCtx(() => [
6886
6868
  createVNode(_component_LazyRunDataHtml, { "input-html": _ctx.inputHtml }, null, 8, ["input-html"])
6887
6869
  ]),
6888
6870
  _: 1
6889
- })) : _ctx.hasNodeRun && _ctx.isSchemaView ? (openBlock(), createBlock(Suspense, { key: 16 }, {
6871
+ })) : _ctx.hasNodeRun && _ctx.isSchemaView ? (openBlock(), createBlock(Suspense, { key: 17 }, {
6890
6872
  default: withCtx(() => [
6891
6873
  createVNode(_component_LazyRunDataSchema, {
6892
6874
  nodes: _ctx.nodes,
@@ -6905,7 +6887,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6905
6887
  ]),
6906
6888
  _: 1
6907
6889
  })) : _ctx.displayMode === "binary" && _ctx.binaryData.length === 0 ? (openBlock(), createElementBlock("div", {
6908
- key: 17,
6890
+ key: 18,
6909
6891
  class: normalizeClass(_ctx.$style.center)
6910
6892
  }, [
6911
6893
  createVNode(_component_n8n_text, {
@@ -6918,7 +6900,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6918
6900
  _: 1
6919
6901
  })
6920
6902
  ], 2)) : _ctx.displayMode === "binary" ? (openBlock(), createElementBlock("div", {
6921
- key: 18,
6903
+ key: 19,
6922
6904
  class: normalizeClass(_ctx.$style.dataDisplay)
6923
6905
  }, [
6924
6906
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.binaryData, (binaryDataEntry, index) => {
@@ -7105,9 +7087,9 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
7105
7087
  const cssModules$u = {
7106
7088
  "$style": style0$s
7107
7089
  };
7108
- 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"]]);
7109
7091
  const _hoisted_1$f = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
7110
- const _hoisted_2$b = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
7092
+ const _hoisted_2$a = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
7111
7093
  const _sfc_main$H = /* @__PURE__ */ defineComponent({
7112
7094
  __name: "RunInfo",
7113
7095
  props: {
@@ -7189,7 +7171,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
7189
7171
  _: 1
7190
7172
  }),
7191
7173
  createTextVNode(" " + toDisplayString(runMetadata.value.startTime), 1),
7192
- _hoisted_2$b,
7174
+ _hoisted_2$a,
7193
7175
  createVNode(_component_n8n_text, {
7194
7176
  bold: true,
7195
7177
  size: "small"
@@ -7273,7 +7255,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7273
7255
  const isNodeRunning = computed(() => {
7274
7256
  return !!node2.value && workflowsStore.isNodeExecuting(node2.value.name);
7275
7257
  });
7276
- const workflowRunning2 = computed(() => {
7258
+ const workflowRunning = computed(() => {
7277
7259
  return uiStore.isActionActive["workflowRunning"];
7278
7260
  });
7279
7261
  const workflowExecution = computed(() => {
@@ -7291,8 +7273,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7291
7273
  return executionData.resultData.runData;
7292
7274
  });
7293
7275
  const hasNodeRun = computed(() => {
7294
- if (workflowsStore.subWorkflowExecutionError)
7295
- return true;
7276
+ if (workflowsStore.subWorkflowExecutionError) return true;
7296
7277
  return Boolean(
7297
7278
  node2.value && workflowRunData.value && workflowRunData.value.hasOwnProperty(node2.value.name)
7298
7279
  );
@@ -7342,8 +7323,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7342
7323
  });
7343
7324
  const insertTestData = () => {
7344
7325
  var _a;
7345
- if (!runDataRef.value)
7346
- return;
7326
+ if (!runDataRef.value) return;
7347
7327
  runDataRef.value.enterEditMode({
7348
7328
  origin: "insertTestDataLink"
7349
7329
  });
@@ -7396,6 +7376,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7396
7376
  return (_ctx, _cache) => {
7397
7377
  const _component_n8n_radio_buttons = resolveComponent("n8n-radio-buttons");
7398
7378
  const _component_n8n_text = resolveComponent("n8n-text");
7379
+ const _directive_n8n_html = resolveDirective("n8n-html");
7399
7380
  return openBlock(), createBlock(__unplugin_components_3, {
7400
7381
  ref_key: "runDataRef",
7401
7382
  ref: runDataRef,
@@ -7450,7 +7431,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7450
7431
  ], 2)
7451
7432
  ]),
7452
7433
  "node-not-run": withCtx(() => [
7453
- workflowRunning2.value && !isTriggerNode.value ? (openBlock(), createBlock(_component_n8n_text, {
7434
+ workflowRunning.value && !isTriggerNode.value ? (openBlock(), createBlock(_component_n8n_text, {
7454
7435
  key: 0,
7455
7436
  "data-test-id": "ndv-output-waiting"
7456
7437
  }, {
@@ -7459,7 +7440,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7459
7440
  ]),
7460
7441
  _: 1
7461
7442
  })) : createCommentVNode("", true),
7462
- !workflowRunning2.value ? (openBlock(), createBlock(_component_n8n_text, {
7443
+ !workflowRunning.value ? (openBlock(), createBlock(_component_n8n_text, {
7463
7444
  key: 1,
7464
7445
  "data-test-id": "ndv-output-run-node-hint"
7465
7446
  }, {
@@ -7490,6 +7471,21 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7490
7471
  _: 1
7491
7472
  })) : createCommentVNode("", true)
7492
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
+ ]),
7493
7489
  "no-output-data": withCtx(() => [
7494
7490
  createVNode(_component_n8n_text, {
7495
7491
  bold: true,
@@ -7581,9 +7577,9 @@ const _hoisted_1$d = {
7581
7577
  xmlns: "http://www.w3.org/2000/svg",
7582
7578
  "xmlns:xlink": "http://www.w3.org/1999/xlink"
7583
7579
  };
7584
- 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);
7585
7581
  const _hoisted_5$3 = [
7586
- _hoisted_2$a
7582
+ _hoisted_2$9
7587
7583
  ];
7588
7584
  function _sfc_render$4(_ctx, _cache) {
7589
7585
  return openBlock(), createElementBlock("svg", _hoisted_1$d, _hoisted_5$3);
@@ -7608,15 +7604,13 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7608
7604
  const selectedInputNode = computed(() => workflowsStore.getNodeByName(props.modelValue ?? ""));
7609
7605
  const selectedInputNodeType = computed(() => {
7610
7606
  const node2 = selectedInputNode.value;
7611
- if (!node2)
7612
- return null;
7607
+ if (!node2) return null;
7613
7608
  return nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
7614
7609
  });
7615
7610
  const inputNodes = computed(
7616
7611
  () => props.nodes.map((node2) => {
7617
7612
  const fullNode = workflowsStore.getNodeByName(node2.name);
7618
- if (!fullNode)
7619
- return null;
7613
+ if (!fullNode) return null;
7620
7614
  return {
7621
7615
  node: fullNode,
7622
7616
  type: nodeTypesStore.getNodeType(fullNode.type, fullNode.typeVersion),
@@ -7627,8 +7621,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7627
7621
  const activeNode = computed(() => ndvStore.activeNode);
7628
7622
  const activeNodeType = computed(() => {
7629
7623
  const node2 = activeNode.value;
7630
- if (!node2)
7631
- return null;
7624
+ if (!node2) return null;
7632
7625
  return nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
7633
7626
  });
7634
7627
  const isMultiInputNode = computed(() => {
@@ -7637,8 +7630,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7637
7630
  });
7638
7631
  const connectedTo = (nodeName) => {
7639
7632
  const connections2 = ndvStore.ndvNodeInputNumber[nodeName];
7640
- if (!connections2)
7641
- return "";
7633
+ if (!connections2) return "";
7642
7634
  if (connections2.length === 1) {
7643
7635
  return `Input ${ndvStore.ndvNodeInputNumber[nodeName]}`;
7644
7636
  }
@@ -7650,8 +7642,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7650
7642
  return "";
7651
7643
  const activeNodeConnections = props.workflow.connectionsByDestinationNode[activeNode.value.name].main || [];
7652
7644
  const connectedInputIndexes = activeNodeConnections.reduce((acc, node2, index) => {
7653
- if (node2[0] && node2[0].node === nodeName)
7654
- return [...acc, index];
7645
+ if (node2[0] && node2[0].node === nodeName) return [...acc, index];
7655
7646
  return acc;
7656
7647
  }, []);
7657
7648
  const connectedInputs = connectedInputIndexes.map(
@@ -7660,8 +7651,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7660
7651
  return (_b = (_a2 = activeNodeType.value) == null ? void 0 : _a2.inputNames) == null ? void 0 : _b[inputIndex];
7661
7652
  }
7662
7653
  );
7663
- if (connectedInputs.length === 0)
7664
- return "";
7654
+ if (connectedInputs.length === 0) return "";
7665
7655
  return `(${connectedInputs.join(" & ")})`;
7666
7656
  }
7667
7657
  function title2(nodeName, length = 30) {
@@ -7669,8 +7659,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7669
7659
  }
7670
7660
  function subtitle2(nodeName, depth) {
7671
7661
  const multipleNodesText = getMultipleNodesText(nodeName);
7672
- if (multipleNodesText)
7673
- return multipleNodesText;
7662
+ if (multipleNodesText) return multipleNodesText;
7674
7663
  return i18n2.baseText("ndv.input.nodeDistance", { adjustToNumber: depth });
7675
7664
  }
7676
7665
  function onInputNodeChange(value) {
@@ -7859,10 +7848,8 @@ const _sfc_main$D = defineComponent({
7859
7848
  return false;
7860
7849
  },
7861
7850
  isMappingEnabled() {
7862
- if (this.readOnly)
7863
- return false;
7864
- if (this.isActiveNodeConfig)
7865
- return this.isMappingMode && this.mappedNode !== null;
7851
+ if (this.readOnly) return false;
7852
+ if (this.isActiveNodeConfig) return this.isMappingMode && this.mappedNode !== null;
7866
7853
  return true;
7867
7854
  },
7868
7855
  isExecutingPrevious() {
@@ -7930,12 +7917,14 @@ const _sfc_main$D = defineComponent({
7930
7917
  return node2 ? node2.depth : -1;
7931
7918
  },
7932
7919
  activeNodeType() {
7933
- if (!this.activeNode)
7934
- return null;
7920
+ if (!this.activeNode) return null;
7935
7921
  return this.nodeTypesStore.getNodeType(this.activeNode.type, this.activeNode.typeVersion);
7936
7922
  },
7937
7923
  isMultiInputNode() {
7938
7924
  return this.activeNodeType !== null && this.activeNodeType.inputs.length > 1;
7925
+ },
7926
+ waitingMessage() {
7927
+ return waitingNodeTooltip();
7939
7928
  }
7940
7929
  },
7941
7930
  watch: {
@@ -7973,8 +7962,7 @@ const _sfc_main$D = defineComponent({
7973
7962
  },
7974
7963
  methods: {
7975
7964
  filterOutConnectionType(item, type) {
7976
- if (!item)
7977
- return false;
7965
+ if (!item) return false;
7978
7966
  return typeof item === "string" ? item !== type : item.type !== type;
7979
7967
  },
7980
7968
  onInputModeChange(val) {
@@ -8187,6 +8175,21 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
8187
8175
  })
8188
8176
  ], 2))
8189
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
+ ]),
8190
8193
  "no-output-data": withCtx(() => [
8191
8194
  createVNode(_component_n8n_text, {
8192
8195
  tag: "div",
@@ -8521,8 +8524,7 @@ const _sfc_main$C = defineComponent({
8521
8524
  return;
8522
8525
  }
8523
8526
  const target2 = e.target;
8524
- if (target2.localName !== "a")
8525
- return;
8527
+ if (target2.localName !== "a") return;
8526
8528
  if ((_a = target2.dataset) == null ? void 0 : _a.key) {
8527
8529
  e.stopPropagation();
8528
8530
  e.preventDefault();
@@ -8569,8 +8571,8 @@ const style0$o = {
8569
8571
  };
8570
8572
  const _withScopeId$3 = (n) => (pushScopeId("data-v-32dc70fa"), n = n(), popScopeId(), n);
8571
8573
  const _hoisted_1$b = { key: "empty" };
8572
- const _hoisted_2$9 = { key: "listening" };
8573
- const _hoisted_3$5 = { key: 0 };
8574
+ const _hoisted_2$8 = { key: "listening" };
8575
+ const _hoisted_3$6 = { key: 0 };
8574
8576
  const _hoisted_4$2 = { key: 1 };
8575
8577
  const _hoisted_5$2 = { key: 0 };
8576
8578
  const _hoisted_6$2 = { key: "default" };
@@ -8599,7 +8601,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
8599
8601
  mode: "out-in"
8600
8602
  }, {
8601
8603
  default: withCtx(() => [
8602
- _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, [
8603
8605
  createVNode(_component_n8n_pulse, null, {
8604
8606
  default: withCtx(() => [
8605
8607
  createVNode(_component_NodeIcon, {
@@ -8609,7 +8611,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
8609
8611
  ]),
8610
8612
  _: 1
8611
8613
  }),
8612
- _ctx.isWebhookNode ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
8614
+ _ctx.isWebhookNode ? (openBlock(), createElementBlock("div", _hoisted_3$6, [
8613
8615
  createVNode(_component_n8n_text, {
8614
8616
  tag: "div",
8615
8617
  size: "large",
@@ -8819,9 +8821,9 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
8819
8821
  }
8820
8822
  return null;
8821
8823
  });
8822
- const workflowRunning2 = computed(() => uiStore.isActionActive.workflowRunning);
8824
+ const workflowRunning = computed(() => uiStore.isActionActive.workflowRunning);
8823
8825
  const showTriggerWaitingWarning = computed(
8824
- () => 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
8825
8827
  );
8826
8828
  const workflowRunData = computed(() => {
8827
8829
  if (workflowExecution.value === null) {
@@ -8877,14 +8879,12 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
8877
8879
  });
8878
8880
  const hasOutputConnection = computed(() => {
8879
8881
  var _a, _b;
8880
- if (!activeNode.value)
8881
- return false;
8882
+ if (!activeNode.value) return false;
8882
8883
  const outgoingConnections = workflowsStore.outgoingConnectionsByNodeName(activeNode.value.name);
8883
8884
  return (((_b = (_a = Object.values(outgoingConnections)) == null ? void 0 : _a[0]) == null ? void 0 : _b[0]) ?? []).length > 0;
8884
8885
  });
8885
8886
  const isExecutableTriggerNode = computed(() => {
8886
- if (!activeNodeType.value)
8887
- return false;
8887
+ if (!activeNodeType.value) return false;
8888
8888
  return EXECUTABLE_TRIGGER_NODE_TYPES.includes(activeNodeType.value.name);
8889
8889
  });
8890
8890
  const isActiveStickyNode = computed(
@@ -8978,8 +8978,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
8978
8978
  if (e.key === "s" && deviceSupport.isCtrlKeyPressed(e)) {
8979
8979
  e.stopPropagation();
8980
8980
  e.preventDefault();
8981
- if (props.readOnly)
8982
- return;
8981
+ if (props.readOnly) return;
8983
8982
  emit("saveKeyboardShortcut", e);
8984
8983
  }
8985
8984
  };
@@ -9062,7 +9061,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
9062
9061
  };
9063
9062
  const onNodeExecute = () => {
9064
9063
  setTimeout(() => {
9065
- if (!activeNode.value || !workflowRunning2.value) {
9064
+ if (!activeNode.value || !workflowRunning.value) {
9066
9065
  return;
9067
9066
  }
9068
9067
  triggerWaitingWarningEnabled.value = true;
@@ -9497,10 +9496,8 @@ function useNodeBase({
9497
9496
  }
9498
9497
  });
9499
9498
  const getEndpointLabelLength = (length) => {
9500
- if (length <= 2)
9501
- return "small";
9502
- else if (length <= 6)
9503
- return "medium";
9499
+ if (length <= 2) return "small";
9500
+ else if (length <= 6) return "medium";
9504
9501
  return "large";
9505
9502
  };
9506
9503
  function addEndpointTestingData(endpoint, type, inputIndex) {
@@ -9943,8 +9940,8 @@ function useNodeBase({
9943
9940
  }
9944
9941
  const _withScopeId$2 = (n) => (pushScopeId("data-v-c3c3325d"), n = n(), popScopeId(), n);
9945
9942
  const _hoisted_1$a = ["id", "data-name"];
9946
- const _hoisted_2$8 = { class: "select-sticky-background" };
9947
- const _hoisted_3$4 = ["title"];
9943
+ const _hoisted_2$7 = { class: "select-sticky-background" };
9944
+ const _hoisted_3$5 = ["title"];
9948
9945
  const _hoisted_4$1 = ["title"];
9949
9946
  const _hoisted_5$1 = { class: "content" };
9950
9947
  const _hoisted_6$1 = ["onClick"];
@@ -10049,9 +10046,9 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10049
10046
  top: position2.value[1] + "px",
10050
10047
  zIndex: props.isActive ? 9999999 : -1 * Math.floor(height.value * width.value / 1e3)
10051
10048
  }));
10052
- const workflowRunning2 = computed(() => uiStore.isActionActive.workflowRunning);
10049
+ const workflowRunning = computed(() => uiStore.isActionActive.workflowRunning);
10053
10050
  const showActions = computed(
10054
- () => !(props.hideActions || props.isReadOnly || workflowRunning2.value || isResizing.value) || forceActions.value
10051
+ () => !(props.hideActions || props.isReadOnly || workflowRunning.value || isResizing.value) || forceActions.value
10055
10052
  );
10056
10053
  onMounted(() => {
10057
10054
  if (data.value !== null) {
@@ -10119,8 +10116,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10119
10116
  setParameters({ content: content2 });
10120
10117
  };
10121
10118
  const setPosition = (newPosition) => {
10122
- if (!node2.value)
10123
- return;
10119
+ if (!node2.value) return;
10124
10120
  workflowsStore.updateNodeProperties({
10125
10121
  name: node2.value.name,
10126
10122
  properties: { position: newPosition }
@@ -10187,7 +10183,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10187
10183
  }),
10188
10184
  style: normalizeStyle(stickySize.value)
10189
10185
  }, [
10190
- withDirectives(createBaseVNode("div", _hoisted_2$8, null, 512), [
10186
+ withDirectives(createBaseVNode("div", _hoisted_2$7, null, 512), [
10191
10187
  [vShow, isSelected.value]
10192
10188
  ]),
10193
10189
  withDirectives((openBlock(), createElementBlock("div", {
@@ -10233,7 +10229,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10233
10229
  title: _ctx.$locale.baseText("node.delete")
10234
10230
  }, [
10235
10231
  createVNode(_component_font_awesome_icon, { icon: "trash" })
10236
- ], 8, _hoisted_3$4)), [
10232
+ ], 8, _hoisted_3$5)), [
10237
10233
  [_directive_touch, deleteNode, "tap"]
10238
10234
  ]),
10239
10235
  createVNode(_component_n8n_popover, {
@@ -10286,10 +10282,10 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10286
10282
  }
10287
10283
  });
10288
10284
  const __unplugin_components_1 = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-c3c3325d"]]);
10289
- 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);
10290
10286
  const _hoisted_1$9 = ["id", "data-name", "data-node-type"];
10291
- const _hoisted_2$7 = { class: "select-background" };
10292
- const _hoisted_3$3 = {
10287
+ const _hoisted_2$6 = { class: "select-background" };
10288
+ const _hoisted_3$4 = {
10293
10289
  key: 0,
10294
10290
  class: "trigger-icon"
10295
10291
  };
@@ -10321,16 +10317,17 @@ const _hoisted_11 = {
10321
10317
  class: "items-count"
10322
10318
  };
10323
10319
  const _hoisted_12 = ["title"];
10324
- const _hoisted_13 = { class: "node-trigger-tooltip__wrapper" };
10325
- const _hoisted_14 = ["textContent"];
10326
- 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"];
10327
10323
  const _hoisted_16 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createBaseVNode("span", null, null, -1));
10328
- const _hoisted_17 = { class: "node-description" };
10329
- const _hoisted_18 = ["title"];
10330
- const _hoisted_19 = { "data-test-id": "canvas-node-box-title" };
10331
- const _hoisted_20 = { key: 0 };
10332
- const _hoisted_21 = ["title"];
10333
- 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" };
10334
10331
  const _sfc_main$z = /* @__PURE__ */ defineComponent({
10335
10332
  __name: "Node",
10336
10333
  props: {
@@ -10392,16 +10389,14 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10392
10389
  return void 0;
10393
10390
  });
10394
10391
  const nodeRunData = computed(() => {
10395
- if (!node2.value)
10396
- return [];
10392
+ if (!node2.value) return [];
10397
10393
  return workflowsStore.getWorkflowResultDataByNodeName(node2.value.name) ?? [];
10398
10394
  });
10399
10395
  const hasIssues2 = computed(() => {
10400
10396
  var _a;
10401
10397
  if (nodeExecutionStatus.value && ["crashed", "error"].includes(nodeExecutionStatus.value))
10402
10398
  return true;
10403
- if (pinnedData2.hasData.value)
10404
- return false;
10399
+ if (pinnedData2.hasData.value) return false;
10405
10400
  if (((_a = node2.value) == null ? void 0 : _a.issues) !== void 0 && Object.keys(node2.value.issues).length) {
10406
10401
  return true;
10407
10402
  }
@@ -10433,8 +10428,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10433
10428
  return !!((_a = nodeType.value) == null ? void 0 : _a.polling);
10434
10429
  });
10435
10430
  const isExecuting = computed(() => {
10436
- if (!node2.value)
10437
- return false;
10431
+ if (!node2.value) return false;
10438
10432
  return workflowsStore.isNodeExecuting(node2.value.name);
10439
10433
  });
10440
10434
  const isSingleActiveTriggerNode = computed(() => {
@@ -10449,14 +10443,12 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10449
10443
  return ((_a = node2.value) == null ? void 0 : _a.type) === MANUAL_TRIGGER_NODE_TYPE;
10450
10444
  });
10451
10445
  const isConfigNode = computed(() => {
10452
- if (!node2.value)
10453
- return false;
10446
+ if (!node2.value) return false;
10454
10447
  return nodeTypesStore.isConfigNode(props.workflow, node2.value, node2.value.type ?? "");
10455
10448
  });
10456
10449
  const isConfigurableNode = computed(() => {
10457
10450
  var _a;
10458
- if (!node2.value)
10459
- return false;
10451
+ if (!node2.value) return false;
10460
10452
  return nodeTypesStore.isConfigurableNode(props.workflow, node2.value, ((_a = node2.value) == null ? void 0 : _a.type) ?? "");
10461
10453
  });
10462
10454
  const isTriggerNode = computed(
@@ -10532,10 +10524,10 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10532
10524
  };
10533
10525
  });
10534
10526
  const nodeExecutionStatus = computed(() => {
10535
- var _a;
10527
+ var _a, _b;
10536
10528
  const nodeExecutionRunData = (_a = workflowsStore.getWorkflowRunData) == null ? void 0 : _a[props.name];
10537
10529
  if (nodeExecutionRunData) {
10538
- return nodeExecutionRunData.filter(Boolean)[0].executionStatus ?? "";
10530
+ return ((_b = nodeExecutionRunData.filter(Boolean)[0]) == null ? void 0 : _b.executionStatus) ?? "";
10539
10531
  }
10540
10532
  return "";
10541
10533
  });
@@ -10557,7 +10549,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10557
10549
  }
10558
10550
  return issues2;
10559
10551
  });
10560
- const nodeDisabledTitle2 = computed(() => {
10552
+ const nodeDisabledTitle = computed(() => {
10561
10553
  var _a;
10562
10554
  return ((_a = node2.value) == null ? void 0 : _a.disabled) ? i18n2.baseText("node.enable") : i18n2.baseText("node.disable");
10563
10555
  });
@@ -10578,11 +10570,19 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10578
10570
  }
10579
10571
  return ((_b = node2.value) == null ? void 0 : _b.name) ?? "";
10580
10572
  });
10581
- const waiting = computed(() => {
10573
+ const waiting2 = computed(() => {
10582
10574
  const workflowExecution = workflowsStore.getWorkflowExecution;
10583
- if (workflowExecution == null ? void 0 : workflowExecution.waitTill) {
10575
+ if ((workflowExecution == null ? void 0 : workflowExecution.waitTill) && !(workflowExecution == null ? void 0 : workflowExecution.finished)) {
10584
10576
  const lastNodeExecuted = get(workflowExecution, "data.resultData.lastNodeExecuted");
10585
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
+ }
10586
10586
  const waitDate = new Date(workflowExecution.waitTill);
10587
10587
  if (waitDate.toISOString() === WAIT_TIME_UNLIMITED) {
10588
10588
  return i18n2.baseText("node.theNodeIsWaitingIndefinitelyForAnIncomingWebhookCall");
@@ -10597,7 +10597,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10597
10597
  }
10598
10598
  return void 0;
10599
10599
  });
10600
- const workflowRunning2 = computed(() => uiStore.isActionActive.workflowRunning);
10600
+ const workflowRunning = computed(() => uiStore.isActionActive.workflowRunning);
10601
10601
  const nodeStyle = computed(() => {
10602
10602
  var _a, _b, _c, _d;
10603
10603
  const returnStyles = {};
@@ -10614,7 +10614,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10614
10614
  returnStyles["border-width"] = "2px";
10615
10615
  returnStyles["border-style"] = "solid";
10616
10616
  }
10617
- } else if (!!waiting.value || showPinnedDataInfo.value) {
10617
+ } else if (!!waiting2.value || showPinnedDataInfo.value) {
10618
10618
  borderColor = "--color-node-pinned-border";
10619
10619
  } else if (nodeExecutionStatus.value === "unknown") {
10620
10620
  borderColor = "--color-foreground-xdark";
@@ -10635,7 +10635,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10635
10635
  );
10636
10636
  const shiftOutputCount = computed(() => !!(nodeType.value && nodeBase.outputs.value.length > 2));
10637
10637
  const shouldShowTriggerTooltip = computed(() => {
10638
- 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;
10639
10639
  });
10640
10640
  const isContextMenuOpen = computed(
10641
10641
  () => {
@@ -10697,13 +10697,12 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10697
10697
  if (!node2.value) {
10698
10698
  return;
10699
10699
  }
10700
- emit("run", { name: node2.value.name, data: newValue, waiting: !!waiting.value });
10700
+ emit("run", { name: node2.value.name, data: newValue, waiting: !!waiting2.value });
10701
10701
  },
10702
10702
  { deep: true }
10703
10703
  );
10704
10704
  const unwatchWorkflowDataItems = watch(workflowDataItems, (dataItemsCount) => {
10705
- if (!hasSeenPinDataTooltip.value)
10706
- showPinDataDiscoveryTooltip(dataItemsCount);
10705
+ if (!hasSeenPinDataTooltip.value) showPinDataDiscoveryTooltip(dataItemsCount);
10707
10706
  });
10708
10707
  onMounted(() => {
10709
10708
  if (node2.value !== null) {
@@ -10720,7 +10719,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10720
10719
  emit("run", {
10721
10720
  name: node2.value.name,
10722
10721
  data: nodeRunData.value,
10723
- waiting: !!waiting.value
10722
+ waiting: !!waiting2.value
10724
10723
  });
10725
10724
  }
10726
10725
  }, 0);
@@ -10733,8 +10732,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10733
10732
  unwatchWorkflowDataItems();
10734
10733
  }
10735
10734
  function setSubtitle() {
10736
- if (!node2.value || !nodeType.value)
10737
- return;
10735
+ if (!node2.value || !nodeType.value) return;
10738
10736
  try {
10739
10737
  const subtitle2 = nodeHelpers.getNodeSubtitle(node2.value, nodeType.value, props.workflow) ?? "";
10740
10738
  nodeSubtitle.value = subtitle2.includes(CUSTOM_API_CALL_KEY) ? "" : subtitle2;
@@ -10742,8 +10740,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10742
10740
  }
10743
10741
  }
10744
10742
  function executeNode() {
10745
- if (!node2.value)
10746
- return;
10743
+ if (!node2.value) return;
10747
10744
  emit("runWorkflow", node2.value.name, "Node.executeNode");
10748
10745
  telemetry.track("User clicked node hover button", {
10749
10746
  node_type: node2.value.type,
@@ -10752,8 +10749,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10752
10749
  });
10753
10750
  }
10754
10751
  function deleteNode() {
10755
- if (!node2.value)
10756
- return;
10752
+ if (!node2.value) return;
10757
10753
  telemetry.track("User clicked node hover button", {
10758
10754
  node_type: node2.value.type,
10759
10755
  button_name: "delete",
@@ -10763,8 +10759,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10763
10759
  }
10764
10760
  function toggleDisableNode(event) {
10765
10761
  var _a;
10766
- if (!node2.value)
10767
- return;
10762
+ if (!node2.value) return;
10768
10763
  event.currentTarget.blur();
10769
10764
  telemetry.track("User clicked node hover button", {
10770
10765
  node_type: (_a = node2.value) == null ? void 0 : _a.type,
@@ -10819,7 +10814,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10819
10814
  "data-node-type": (_a = nodeType.value) == null ? void 0 : _a.name,
10820
10815
  onContextmenu: _cache[3] || (_cache[3] = (e) => openContextMenu(e, "node-right-click"))
10821
10816
  }, [
10822
- withDirectives(createBaseVNode("div", _hoisted_2$7, null, 512), [
10817
+ withDirectives(createBaseVNode("div", _hoisted_2$6, null, 512), [
10823
10818
  [vShow, isSelected.value]
10824
10819
  ]),
10825
10820
  createBaseVNode("div", {
@@ -10836,7 +10831,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10836
10831
  style: normalizeStyle(nodeStyle.value),
10837
10832
  onClick: withModifiers(onClick, ["left"])
10838
10833
  }, [
10839
- isTriggerNode.value ? (openBlock(), createElementBlock("i", _hoisted_3$3, [
10834
+ isTriggerNode.value ? (openBlock(), createElementBlock("i", _hoisted_3$4, [
10840
10835
  createVNode(_component_n8n_tooltip, { placement: "bottom" }, {
10841
10836
  content: withCtx(() => [
10842
10837
  withDirectives(createBaseVNode("span", null, null, 512), [
@@ -10872,11 +10867,11 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10872
10867
  ]),
10873
10868
  _: 1
10874
10869
  })
10875
- ])) : waiting.value || nodeExecutionStatus.value === "waiting" ? (openBlock(), createElementBlock("div", _hoisted_5, [
10870
+ ])) : waiting2.value || nodeExecutionStatus.value === "waiting" ? (openBlock(), createElementBlock("div", _hoisted_5, [
10876
10871
  createVNode(_component_n8n_tooltip, { placement: "bottom" }, {
10877
10872
  content: withCtx(() => [
10878
10873
  createBaseVNode("div", {
10879
- textContent: toDisplayString(waiting.value)
10874
+ textContent: toDisplayString(waiting2.value)
10880
10875
  }, null, 8, _hoisted_6)
10881
10876
  ]),
10882
10877
  default: withCtx(() => [
@@ -10901,7 +10896,17 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10901
10896
  spin: ""
10902
10897
  })
10903
10898
  ], 8, _hoisted_12),
10904
- 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, [
10905
10910
  createVNode(_component_n8n_tooltip, {
10906
10911
  placement: "top",
10907
10912
  "show-after": 500,
@@ -10911,10 +10916,10 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10911
10916
  content: withCtx(() => [
10912
10917
  createBaseVNode("div", {
10913
10918
  textContent: toDisplayString(getTriggerNodeTooltip.value)
10914
- }, null, 8, _hoisted_14)
10919
+ }, null, 8, _hoisted_15)
10915
10920
  ]),
10916
10921
  default: withCtx(() => [
10917
- _hoisted_15
10922
+ _hoisted_16
10918
10923
  ]),
10919
10924
  _: 1
10920
10925
  }, 8, ["visible"]),
@@ -10928,7 +10933,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10928
10933
  createTextVNode(toDisplayString(unref(i18n2).baseText("node.discovery.pinData.canvas")), 1)
10929
10934
  ]),
10930
10935
  default: withCtx(() => [
10931
- _hoisted_16
10936
+ _hoisted_17
10932
10937
  ]),
10933
10938
  _: 1
10934
10939
  }, 8, ["visible"])) : createCommentVNode("", true)
@@ -10953,19 +10958,19 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10953
10958
  })
10954
10959
  }, null, 2)) : createCommentVNode("", true)
10955
10960
  ], 2),
10956
- createBaseVNode("div", _hoisted_17, [
10961
+ createBaseVNode("div", _hoisted_18, [
10957
10962
  createBaseVNode("div", {
10958
10963
  class: "node-name",
10959
10964
  title: nodeTitle.value
10960
10965
  }, [
10961
- createBaseVNode("p", _hoisted_19, toDisplayString(nodeTitle.value), 1),
10962
- node2.value.disabled ? (openBlock(), createElementBlock("p", _hoisted_20, "(" + toDisplayString(unref(i18n2).baseText("node.disabled")) + ")", 1)) : createCommentVNode("", true)
10963
- ], 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),
10964
10969
  nodeSubtitle.value !== void 0 ? (openBlock(), createElementBlock("div", {
10965
10970
  key: 0,
10966
10971
  class: "node-subtitle",
10967
10972
  title: nodeSubtitle.value
10968
- }, toDisplayString(nodeSubtitle.value), 9, _hoisted_21)) : createCommentVNode("", true)
10973
+ }, toDisplayString(nodeSubtitle.value), 9, _hoisted_22)) : createCommentVNode("", true)
10969
10974
  ]),
10970
10975
  !_ctx.isReadOnly ? withDirectives((openBlock(), createElementBlock("div", {
10971
10976
  key: 0,
@@ -10975,7 +10980,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10975
10980
  onMousedown: _cache[2] || (_cache[2] = withModifiers(() => {
10976
10981
  }, ["stop"]))
10977
10982
  }, [
10978
- createBaseVNode("div", _hoisted_22, [
10983
+ createBaseVNode("div", _hoisted_23, [
10979
10984
  !isConfigNode.value ? (openBlock(), createBlock(unref(_sfc_main$_), {
10980
10985
  key: 0,
10981
10986
  "data-test-id": "execute-node-button",
@@ -10983,7 +10988,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10983
10988
  text: "",
10984
10989
  size: "small",
10985
10990
  icon: "play",
10986
- disabled: workflowRunning2.value,
10991
+ disabled: workflowRunning.value,
10987
10992
  title: unref(i18n2).baseText("node.testStep"),
10988
10993
  onClick: executeNode
10989
10994
  }, null, 8, ["disabled", "title"])) : createCommentVNode("", true),
@@ -10993,7 +10998,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
10993
10998
  text: "",
10994
10999
  size: "small",
10995
11000
  icon: "power-off",
10996
- title: nodeDisabledTitle2.value,
11001
+ title: nodeDisabledTitle.value,
10997
11002
  onClick: toggleDisableNode
10998
11003
  }, null, 8, ["title"]),
10999
11004
  createVNode(unref(_sfc_main$_), {
@@ -11021,7 +11026,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
11021
11026
  };
11022
11027
  }
11023
11028
  });
11024
- 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"]]);
11025
11030
  const state = reactive({
11026
11031
  customActions: {},
11027
11032
  delegatedClickHandler: null
@@ -11046,8 +11051,7 @@ function useGlobalLinkActions() {
11046
11051
  }
11047
11052
  function delegateClick(e) {
11048
11053
  const clickedElement = e.target;
11049
- if (!(clickedElement instanceof Element) || clickedElement.tagName !== "A")
11050
- return;
11054
+ if (!(clickedElement instanceof Element) || clickedElement.tagName !== "A") return;
11051
11055
  const actionAttribute = clickedElement.getAttribute("data-action");
11052
11056
  if (actionAttribute && typeof availableActions.value[actionAttribute] === "function") {
11053
11057
  e.preventDefault();
@@ -11067,8 +11071,7 @@ function useGlobalLinkActions() {
11067
11071
  ...state.customActions
11068
11072
  }));
11069
11073
  onMounted(() => {
11070
- if (state.delegatedClickHandler)
11071
- return;
11074
+ if (state.delegatedClickHandler) return;
11072
11075
  state.delegatedClickHandler = delegateClick;
11073
11076
  window.addEventListener("click", delegateClick);
11074
11077
  globalLinkActionsEventBus.on("registerGlobalLinkAction", registerCustomAction);
@@ -11170,8 +11173,7 @@ function useCanvasMouseSelect() {
11170
11173
  _updateSelectBox(e);
11171
11174
  }
11172
11175
  function mouseUpMouseSelect(e) {
11173
- if ("button" in e && e.button === 2 || isContextMenuOpen.value)
11174
- return;
11176
+ if ("button" in e && e.button === 2 || isContextMenuOpen.value) return;
11175
11177
  if (!selectActive.value) {
11176
11178
  if (isTouchDevice && e.target instanceof HTMLElement) {
11177
11179
  if (e.target && e.target.id.includes("node-view")) {
@@ -11245,8 +11247,7 @@ function useUniqueNodeName() {
11245
11247
  if (typeof nodeType.defaults.name !== "string") {
11246
11248
  throw new Error("Expected node name default to be a string");
11247
11249
  }
11248
- if (/\d$/.test(nodeType.defaults.name))
11249
- acc.push(nodeType.defaults.name);
11250
+ if (/\d$/.test(nodeType.defaults.name)) acc.push(nodeType.defaults.name);
11250
11251
  return acc;
11251
11252
  }, []);
11252
11253
  }
@@ -11254,8 +11255,7 @@ function useUniqueNodeName() {
11254
11255
  var _a, _b;
11255
11256
  const { canvasNames } = useWorkflowsStore();
11256
11257
  const isUnique = !canvasNames.has(originalName) && !extraNames.includes(originalName);
11257
- if (isUnique)
11258
- return originalName;
11258
+ if (isUnique) return originalName;
11259
11259
  const nsn = numberSuffixedNames().find((nsn2) => originalName.startsWith(nsn2));
11260
11260
  if (nsn) {
11261
11261
  let unique2 = "";
@@ -11528,16 +11528,15 @@ function subcategorizeItems(items) {
11528
11528
  function sortNodeCreateElements(nodes) {
11529
11529
  return nodes.sort((a, b) => {
11530
11530
  var _a, _b, _c, _d;
11531
- if (a.type !== "node" || b.type !== "node")
11532
- return 0;
11531
+ if (a.type !== "node" || b.type !== "node") return 0;
11533
11532
  const displayNameA = ((_b = (_a = a.properties) == null ? void 0 : _a.displayName) == null ? void 0 : _b.toLowerCase()) || a.key;
11534
11533
  const displayNameB = ((_d = (_c = b.properties) == null ? void 0 : _c.displayName) == null ? void 0 : _d.toLowerCase()) || b.key;
11535
11534
  return displayNameA.localeCompare(displayNameB, void 0, { sensitivity: "base" });
11536
11535
  });
11537
11536
  }
11538
11537
  function searchNodes(searchFilter, items) {
11539
- const aiEnabled = usePostHog().isAiEnabled();
11540
- if (!aiEnabled) {
11538
+ const askAiEnabled = useSettingsStore().isAskAiEnabled;
11539
+ if (!askAiEnabled) {
11541
11540
  items = items.filter((item) => item.key !== AI_TRANSFORM_NODE_TYPE);
11542
11541
  }
11543
11542
  const trimmedFilter = searchFilter.toLowerCase().replace("trigger", "").trimEnd();
@@ -11553,8 +11552,7 @@ function flattenCreateElements(items) {
11553
11552
  function isAINode(node2) {
11554
11553
  var _a, _b, _c, _d, _e;
11555
11554
  const isNode = node2.type === "node";
11556
- if (!isNode)
11557
- return false;
11555
+ if (!isNode) return false;
11558
11556
  if ((_b = (_a = node2.properties.codex) == null ? void 0 : _a.categories) == null ? void 0 : _b.includes(AI_SUBCATEGORY)) {
11559
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);
11560
11558
  return !isAgentSubcategory;
@@ -11594,10 +11592,8 @@ function groupItemsInSections(items, sections, sortAlphabetically = true) {
11594
11592
  children: sortNodeCreateElements(nonAINodesBySection.other ?? [])
11595
11593
  }).filter((section) => section.type !== "section" || section.children.length > 0);
11596
11594
  result.sort((a, b) => {
11597
- if (a.key.toLowerCase().includes("recommended"))
11598
- return -1;
11599
- if (b.key.toLowerCase().includes("recommended"))
11600
- return 1;
11595
+ if (a.key.toLowerCase().includes("recommended")) return -1;
11596
+ if (b.key.toLowerCase().includes("recommended")) return 1;
11601
11597
  return 0;
11602
11598
  });
11603
11599
  if (result.length <= 1) {
@@ -11687,8 +11683,7 @@ function AINodesView(_nodes) {
11687
11683
  function getSubcategoryInfo(subcategory) {
11688
11684
  const localeKey = `nodeCreator.subcategoryInfos.${camelCase(subcategory)}`;
11689
11685
  const info = i18n2.baseText(localeKey);
11690
- if (info === localeKey)
11691
- return void 0;
11686
+ if (info === localeKey) return void 0;
11692
11687
  return info;
11693
11688
  }
11694
11689
  return {
@@ -12079,8 +12074,7 @@ const useKeyboardNavigation = defineStore("nodeCreatorKeyboardNavigation", () =>
12079
12074
  const flatHooks = Object.values(keysHooks.value);
12080
12075
  const hooks = flatHooks.filter((hook) => hook.keyboardKeys.includes(keyboardKey));
12081
12076
  hooks.forEach((hook) => {
12082
- if (!activeItemId.value)
12083
- return;
12077
+ if (!activeItemId.value) return;
12084
12078
  const conditionPassed = hook.condition === void 0 || hook.condition(getItemType(activeItem) || "", activeItemId.value);
12085
12079
  if (conditionPassed && activeItemId.value) {
12086
12080
  hook.handler(activeItemId.value, keyboardKey);
@@ -12090,8 +12084,7 @@ const useKeyboardNavigation = defineStore("nodeCreatorKeyboardNavigation", () =>
12090
12084
  async function onKeyDown2(e) {
12091
12085
  var _a, _b, _c;
12092
12086
  const pressedKey = e.key;
12093
- if (!WATCHED_KEYS.includes(pressedKey))
12094
- return;
12087
+ if (!WATCHED_KEYS.includes(pressedKey)) return;
12095
12088
  e.preventDefault();
12096
12089
  e.stopPropagation();
12097
12090
  await refreshSelectableItems();
@@ -12101,8 +12094,7 @@ const useKeyboardNavigation = defineStore("nodeCreatorKeyboardNavigation", () =>
12101
12094
  const activeItem = (_a = selectableItems.value[activeItemIndex]) == null ? void 0 : _a.deref();
12102
12095
  const isArrowDown = pressedKey === "ArrowDown";
12103
12096
  const isArrowUp = pressedKey === "ArrowUp";
12104
- if (!activeItem)
12105
- return;
12097
+ if (!activeItem) return;
12106
12098
  if (isArrowDown) {
12107
12099
  const nextItemIndex = activeItemIndex < selectableItems.value.length - 1 ? activeItemIndex + 1 : 0;
12108
12100
  setActiveItem((_b = selectableItems.value[nextItemIndex]) == null ? void 0 : _b.deref());
@@ -12118,8 +12110,7 @@ const useKeyboardNavigation = defineStore("nodeCreatorKeyboardNavigation", () =>
12118
12110
  }
12119
12111
  function setActiveItem(item) {
12120
12112
  const itemId = getElementId(item);
12121
- if (!itemId)
12122
- return;
12113
+ if (!itemId) return;
12123
12114
  setActiveItemId(itemId);
12124
12115
  if (item == null ? void 0 : item.scrollIntoView) {
12125
12116
  item == null ? void 0 : item.scrollIntoView({ block: "center" });
@@ -12169,6 +12160,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12169
12160
  const nodeCreatorStore = useNodeCreatorStore();
12170
12161
  const { getActiveItemIndex } = useKeyboardNavigation();
12171
12162
  const i18n2 = useI18n();
12163
+ const settingsStore = useSettingsStore();
12172
12164
  const viewStacks = ref([]);
12173
12165
  const activeStackItems = computed(() => {
12174
12166
  const stack = getLastActiveStack();
@@ -12197,8 +12189,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12197
12189
  });
12198
12190
  const activeViewStack = computed(() => {
12199
12191
  const stack = getLastActiveStack();
12200
- if (!stack)
12201
- return {};
12192
+ if (!stack) return {};
12202
12193
  const flatBaselineItems = flattenCreateElements(stack.baselineItems ?? []);
12203
12194
  return {
12204
12195
  ...stack,
@@ -12211,8 +12202,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12211
12202
  );
12212
12203
  const searchBaseItems = computed(() => {
12213
12204
  const stack = getLastActiveStack();
12214
- if (!(stack == null ? void 0 : stack.searchItems))
12215
- return [];
12205
+ if (!(stack == null ? void 0 : stack.searchItems)) return [];
12216
12206
  return stack.searchItems.map((item) => transformNodeType(item, stack.subcategory));
12217
12207
  });
12218
12208
  function isAiSubcategoryView(stack) {
@@ -12223,8 +12213,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12223
12213
  }
12224
12214
  const globalSearchItemsDiff = computed(() => {
12225
12215
  const stack = getLastActiveStack();
12226
- if (!(stack == null ? void 0 : stack.search) || isAiSubcategoryView(stack))
12227
- return [];
12216
+ if (!(stack == null ? void 0 : stack.search) || isAiSubcategoryView(stack)) return [];
12228
12217
  const allNodes = nodeCreatorStore.mergedNodes.map((item) => transformNodeType(item));
12229
12218
  const filteredNodes = isAiRootView(stack) ? allNodes : filterOutAiNodes(allNodes);
12230
12219
  let globalSearchResult = extendItemsWithUUID(
@@ -12262,8 +12251,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12262
12251
  function filterAiRootNodes(items) {
12263
12252
  return items.filter((node2) => {
12264
12253
  var _a, _b;
12265
- if (node2.type !== "node")
12266
- return false;
12254
+ if (node2.type !== "node") return false;
12267
12255
  return (_b = (_a = node2.properties.codex) == null ? void 0 : _a.subcategories) == null ? void 0 : _b[AI_SUBCATEGORY].includes(
12268
12256
  AI_CATEGORY_ROOT_NODES
12269
12257
  );
@@ -12315,8 +12303,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12315
12303
  var _a, _b, _c, _d, _e;
12316
12304
  if (item.type === "node") {
12317
12305
  const isAICategory = ((_b = (_a = item.properties.codex) == null ? void 0 : _a.categories) == null ? void 0 : _b.includes(AI_SUBCATEGORY)) === true;
12318
- if (!isAICategory)
12319
- return true;
12306
+ if (!isAICategory) return true;
12320
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);
12321
12308
  return isRootNodeSubcategory;
12322
12309
  }
@@ -12361,8 +12348,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12361
12348
  panelClass: relatedAIView == null ? void 0 : relatedAIView.properties.panelClass,
12362
12349
  baseFilter: (i) => {
12363
12350
  var _a2;
12364
- if (i.key === AI_CODE_NODE_TYPE)
12365
- return false;
12351
+ if (i.key === AI_CODE_NODE_TYPE) return false;
12366
12352
  const displayNode = nodesByConnectionType[connectionType2].includes(i.key);
12367
12353
  if (displayNode && ((_a2 = filter == null ? void 0 : filter.nodes) == null ? void 0 : _a2.length)) {
12368
12354
  return filter.nodes.includes(i.key);
@@ -12381,14 +12367,13 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12381
12367
  }
12382
12368
  function setStackBaselineItems() {
12383
12369
  const stack = getLastActiveStack();
12384
- if (!stack || !activeViewStack.value.uuid)
12385
- return;
12370
+ if (!stack || !activeViewStack.value.uuid) return;
12386
12371
  let stackItems = (stack == null ? void 0 : stack.items) ?? [];
12387
12372
  if (!(stack == null ? void 0 : stack.items)) {
12388
12373
  const subcategory = (stack == null ? void 0 : stack.subcategory) ?? DEFAULT_SUBCATEGORY;
12389
12374
  let itemsInSubcategory = itemsBySubcategory.value[subcategory];
12390
- const aiEnabled = usePostHog().isAiEnabled();
12391
- if (!aiEnabled) {
12375
+ const isAskAiEnabled = settingsStore.isAskAiEnabled;
12376
+ if (!isAskAiEnabled) {
12392
12377
  itemsInSubcategory = itemsInSubcategory.filter(
12393
12378
  (item) => item.key !== AI_TRANSFORM_NODE_TYPE$1
12394
12379
  );
@@ -12446,8 +12431,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
12446
12431
  function updateCurrentViewStack(stack) {
12447
12432
  const currentStack = getLastActiveStack();
12448
12433
  const matchedIndex = viewStacks.value.findIndex((s) => s.uuid === currentStack.uuid);
12449
- if (!currentStack)
12450
- return;
12434
+ if (!currentStack) return;
12451
12435
  Object.keys(stack).forEach((key) => {
12452
12436
  const typedKey = key;
12453
12437
  viewStacks.value[matchedIndex] = {
@@ -12617,18 +12601,6 @@ function mapLegacyEndpointsToCanvasConnectionPort(endpoints, endpointNames = [])
12617
12601
  };
12618
12602
  });
12619
12603
  }
12620
- function getUniqueNodeName(name, existingNames) {
12621
- if (!existingNames.has(name)) {
12622
- return name;
12623
- }
12624
- for (let i = 1; i < 100; i++) {
12625
- const newName = `${name} ${i}`;
12626
- if (!existingNames.has(newName)) {
12627
- return newName;
12628
- }
12629
- }
12630
- return `${name} ${v4()}`;
12631
- }
12632
12604
  function checkOverlap(node1, node2) {
12633
12605
  return !// node1 is completely to the left of node2
12634
12606
  (node1.x + node1.width <= node2.x || // node2 is completely to the left of node1
@@ -12791,8 +12763,7 @@ const useNodeCreatorStore = defineStore(STORES.NODE_CREATOR, () => {
12791
12763
  let filter;
12792
12764
  const workflow = workflowsStore.getCurrentWorkflow();
12793
12765
  const workflowNode = workflow.getNode(nodeName);
12794
- if (!workflowNode)
12795
- return { nodes: [] };
12766
+ if (!workflowNode) return { nodes: [] };
12796
12767
  const nodeType = nodeTypesStore.getNodeType(workflowNode == null ? void 0 : workflowNode.type, workflowNode.typeVersion);
12797
12768
  if (nodeType) {
12798
12769
  const inputs2 = getNodeInputs(workflow, workflowNode, nodeType);
@@ -12956,8 +12927,8 @@ function useCanvasPanning(elementRef, options = {}) {
12956
12927
  };
12957
12928
  }
12958
12929
  const _hoisted_1$7 = { "data-action": "reload" };
12959
- const _hoisted_2$6 = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
12960
- const _hoisted_3$2 = {
12930
+ const _hoisted_2$5 = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
12931
+ const _hoisted_3$3 = {
12961
12932
  href: "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/",
12962
12933
  target: "_blank"
12963
12934
  };
@@ -12969,20 +12940,20 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
12969
12940
  return openBlock(), createElementBlock("div", null, [
12970
12941
  createBaseVNode("a", _hoisted_1$7, toDisplayString(unref(i18).baseText("nodeView.refresh")), 1),
12971
12942
  createTextVNode(" " + toDisplayString(unref(i18).baseText("nodeView.toSeeTheLatestStatus")) + ". ", 1),
12972
- _hoisted_2$6,
12973
- 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)
12974
12945
  ]);
12975
12946
  };
12976
12947
  }
12977
12948
  });
12978
12949
  const LazyNodeCreation = defineAsyncComponent(
12979
- async () => await __vitePreload(() => import("./NodeCreation-BwNEef4i.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-CJ4p9t6U.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)
12980
12951
  );
12981
12952
  const LazyCanvasControls = defineAsyncComponent(
12982
- async () => await __vitePreload(() => import("./CanvasControls-Bp-Hti67.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-3e7GyyWC.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)
12983
12954
  );
12984
12955
  const LazySetupWorkflowCredentialsButton = defineAsyncComponent(
12985
- async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-BQelHZob.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-BniWA70J.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)
12986
12957
  );
12987
12958
  const _sfc_main$w = defineComponent({
12988
12959
  name: "NodeView",
@@ -13016,7 +12987,9 @@ const _sfc_main$w = defineComponent({
13016
12987
  const { callDebounced } = useDebounce();
13017
12988
  const canvasPanning = useCanvasPanning(nodeViewRootRef, { onMouseMoveEnd });
13018
12989
  const workflowHelpers = useWorkflowHelpers({ router });
13019
- const { runWorkflow, stopCurrentExecution } = useRunWorkflow({ router });
12990
+ const { runWorkflow, stopCurrentExecution, runWorkflowResolvePending } = useRunWorkflow({
12991
+ router
12992
+ });
13020
12993
  const { addBeforeUnloadEventBindings, removeBeforeUnloadEventBindings } = useBeforeUnload({
13021
12994
  route
13022
12995
  });
@@ -13035,6 +13008,7 @@ const _sfc_main$w = defineComponent({
13035
13008
  onMouseMoveEnd,
13036
13009
  workflowHelpers,
13037
13010
  runWorkflow,
13011
+ runWorkflowResolvePending,
13038
13012
  stopCurrentExecution,
13039
13013
  callDebounced,
13040
13014
  ...useCanvasMouseSelect(),
@@ -13191,7 +13165,12 @@ const _sfc_main$w = defineComponent({
13191
13165
  return this.workflowsStore.getWorkflowExecution;
13192
13166
  },
13193
13167
  workflowRunning() {
13194
- 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;
13195
13174
  },
13196
13175
  currentWorkflow() {
13197
13176
  var _a;
@@ -13218,16 +13197,14 @@ const _sfc_main$w = defineComponent({
13218
13197
  );
13219
13198
  },
13220
13199
  isManualChatOnly() {
13221
- if (!this.canvasChatNode)
13222
- return false;
13200
+ if (!this.canvasChatNode) return false;
13223
13201
  return this.containsChatNodes && this.triggerNodes.length === 1 && !this.pinnedChatNodeData;
13224
13202
  },
13225
13203
  canvasChatNode() {
13226
13204
  return this.nodes.find((node2) => node2.type === CHAT_TRIGGER_NODE_TYPE);
13227
13205
  },
13228
13206
  pinnedChatNodeData() {
13229
- if (!this.canvasChatNode)
13230
- return null;
13207
+ if (!this.canvasChatNode) return null;
13231
13208
  return this.workflowsStore.pinDataByNodeName(this.canvasChatNode.name);
13232
13209
  },
13233
13210
  isExecutionDisabled() {
@@ -13342,8 +13319,7 @@ const _sfc_main$w = defineComponent({
13342
13319
  this.clipboard.onPaste.value = this.onClipboardPasteEvent;
13343
13320
  this.canvasStore.startLoading();
13344
13321
  const loadPromises = (() => {
13345
- if (this.settingsStore.isPreviewMode && this.isDemo)
13346
- return [];
13322
+ if (this.settingsStore.isPreviewMode && this.isDemo) return [];
13347
13323
  const promises = [this.loadActiveWorkflows(), this.loadCredentialTypes()];
13348
13324
  if (this.settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.Variables]) {
13349
13325
  promises.push(this.loadVariables());
@@ -13555,7 +13531,11 @@ const _sfc_main$w = defineComponent({
13555
13531
  };
13556
13532
  this.$telemetry.track("User clicked execute node button", telemetryPayload);
13557
13533
  void this.externalHooks.run("nodeView.onRunNode", telemetryPayload);
13558
- 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
+ }
13559
13539
  },
13560
13540
  async onOpenChat() {
13561
13541
  const telemetryPayload = {
@@ -13580,7 +13560,11 @@ const _sfc_main$w = defineComponent({
13580
13560
  this.$telemetry.track("User clicked execute workflow button", telemetryPayload);
13581
13561
  void this.externalHooks.run("nodeView.onRunWorkflow", telemetryPayload);
13582
13562
  });
13583
- await this.runWorkflow({});
13563
+ if (!this.isExecutionPreview && this.workflowsStore.isWaitingExecution) {
13564
+ void this.runWorkflowResolvePending({});
13565
+ } else {
13566
+ void this.runWorkflow({});
13567
+ }
13584
13568
  this.refreshEndpointsErrorsState();
13585
13569
  },
13586
13570
  resetEndpointsErrors() {
@@ -13615,8 +13599,7 @@ const _sfc_main$w = defineComponent({
13615
13599
  });
13616
13600
  },
13617
13601
  onRunContainerClick() {
13618
- if (this.containsTrigger && !this.allTriggersDisabled)
13619
- return;
13602
+ if (this.containsTrigger && !this.allTriggersDisabled) return;
13620
13603
  const message = this.containsTrigger && this.allTriggersDisabled ? this.$locale.baseText("nodeView.addOrEnableTriggerNode") : this.$locale.baseText("nodeView.addATriggerNodeFirst");
13621
13604
  const notice = this.showMessage({
13622
13605
  type: "info",
@@ -13624,13 +13607,12 @@ const _sfc_main$w = defineComponent({
13624
13607
  message,
13625
13608
  duration: 3e3,
13626
13609
  onClick: () => setTimeout(() => {
13627
- if (this.createNodeActive)
13628
- notice.close();
13610
+ if (this.createNodeActive) notice.close();
13629
13611
  }, 0),
13630
13612
  dangerouslyUseHTMLString: true
13631
13613
  });
13632
13614
  },
13633
- clearExecutionData() {
13615
+ async clearExecutionData() {
13634
13616
  this.workflowsStore.workflowExecutionData = null;
13635
13617
  this.nodeHelpers.updateNodesExecutionIssues();
13636
13618
  },
@@ -13663,8 +13645,7 @@ const _sfc_main$w = defineComponent({
13663
13645
  this.showTriggerCreator(NODE_CREATOR_OPEN_SOURCES.TRIGGER_PLACEHOLDER_BUTTON);
13664
13646
  },
13665
13647
  showTriggerCreator(source) {
13666
- if (this.createNodeActive)
13667
- return;
13648
+ if (this.createNodeActive) return;
13668
13649
  this.ndvStore.activeNodeName = null;
13669
13650
  this.nodeCreatorStore.setSelectedView(TRIGGER_NODE_CREATOR_VIEW);
13670
13651
  this.nodeCreatorStore.setShowScrim(true);
@@ -13727,15 +13708,14 @@ const _sfc_main$w = defineComponent({
13727
13708
  let nodeErrorFound = false;
13728
13709
  if (data.data.resultData.runData) {
13729
13710
  const runData2 = data.data.resultData.runData;
13730
- errorCheck:
13731
- for (const nodeName of Object.keys(runData2)) {
13732
- for (const taskData of runData2[nodeName]) {
13733
- if (taskData.error) {
13734
- nodeErrorFound = true;
13735
- break errorCheck;
13736
- }
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;
13737
13716
  }
13738
13717
  }
13718
+ }
13739
13719
  }
13740
13720
  if (!nodeErrorFound && (data.data.resultData.error.stack || data.data.resultData.error.message)) {
13741
13721
  console.error(`Execution ${executionId} error:`);
@@ -14101,7 +14081,7 @@ const _sfc_main$w = defineComponent({
14101
14081
  if (!this.editAllowedCheck()) {
14102
14082
  return;
14103
14083
  }
14104
- this.nodeHelpers.disableNodes(nodes, true);
14084
+ this.nodeHelpers.disableNodes(nodes, { trackHistory: true, trackBulk: true });
14105
14085
  },
14106
14086
  togglePinNodes(nodes, source) {
14107
14087
  if (!this.editAllowedCheck()) {
@@ -14498,14 +14478,11 @@ const _sfc_main$w = defineComponent({
14498
14478
  }
14499
14479
  },
14500
14480
  removeUnknownCredentials(workflow) {
14501
- if (!(workflow == null ? void 0 : workflow.nodes))
14502
- return;
14481
+ if (!(workflow == null ? void 0 : workflow.nodes)) return;
14503
14482
  for (const node2 of workflow.nodes) {
14504
- if (!node2.credentials)
14505
- continue;
14483
+ if (!node2.credentials) continue;
14506
14484
  for (const [name, credential] of Object.entries(node2.credentials)) {
14507
- if (typeof credential === "string" || credential.id === null)
14508
- continue;
14485
+ if (typeof credential === "string" || credential.id === null) continue;
14509
14486
  if (!this.credentialsStore.getCredentialById(credential.id)) {
14510
14487
  delete node2.credentials[name];
14511
14488
  }
@@ -14915,8 +14892,7 @@ const _sfc_main$w = defineComponent({
14915
14892
  let filter;
14916
14893
  const workflow = this.workflowHelpers.getCurrentWorkflow();
14917
14894
  const workflowNode = workflow.getNode(nodeName);
14918
- if (!workflowNode)
14919
- return { nodes: [] };
14895
+ if (!workflowNode) return { nodes: [] };
14920
14896
  const nodeType = this.nodeTypesStore.getNodeType(
14921
14897
  workflowNode == null ? void 0 : workflowNode.type,
14922
14898
  workflowNode.typeVersion
@@ -15186,16 +15162,14 @@ const _sfc_main$w = defineComponent({
15186
15162
  showOrHideMidpointArrow(connection);
15187
15163
  Object.values(connection.overlays).forEach((overlay) => {
15188
15164
  var _a2;
15189
- if (!overlay.canvas)
15190
- return;
15165
+ if (!overlay.canvas) return;
15191
15166
  (_a2 = this.instance) == null ? void 0 : _a2.repaint(overlay.canvas);
15192
15167
  });
15193
15168
  });
15194
15169
  },
15195
15170
  isConnectionActive(connection) {
15196
15171
  var _a, _b;
15197
- if (!(connection == null ? void 0 : connection.id) || !((_a = this.activeConnection) == null ? void 0 : _a.id))
15198
- return false;
15172
+ if (!(connection == null ? void 0 : connection.id) || !((_a = this.activeConnection) == null ? void 0 : _a.id)) return false;
15199
15173
  return ((_b = this.activeConnection) == null ? void 0 : _b.id) === connection.id;
15200
15174
  },
15201
15175
  onConnectionMouseOver(connection) {
@@ -15226,8 +15200,7 @@ const _sfc_main$w = defineComponent({
15226
15200
  },
15227
15201
  onConnectionMouseOut(connection) {
15228
15202
  try {
15229
- if (this.exitTimer)
15230
- return;
15203
+ if (this.exitTimer) return;
15231
15204
  if (this.enterTimer) {
15232
15205
  clearTimeout(this.enterTimer);
15233
15206
  this.enterTimer = void 0;
@@ -15273,13 +15246,11 @@ const _sfc_main$w = defineComponent({
15273
15246
  }
15274
15247
  },
15275
15248
  onEndpointMouseOver(endpoint, mouse) {
15276
- if (!endpoint.isTarget || mouse.target !== endpoint.endpoint.canvas)
15277
- return;
15249
+ if (!endpoint.isTarget || mouse.target !== endpoint.endpoint.canvas) return;
15278
15250
  this.instance.setHover(endpoint, true);
15279
15251
  },
15280
15252
  onEndpointMouseOut(endpoint) {
15281
- if (!endpoint.isTarget)
15282
- return;
15253
+ if (!endpoint.isTarget) return;
15283
15254
  this.instance.setHover(endpoint, false);
15284
15255
  },
15285
15256
  async onConnectionDetached(info) {
@@ -15342,11 +15313,9 @@ const _sfc_main$w = defineComponent({
15342
15313
  const connectionType2 = connection.parameters.connection;
15343
15314
  const requiredType = connectionType2 === "source" ? "target" : "source";
15344
15315
  const filteredEndpoints = scopedEndpoints.filter((el) => {
15345
- if (!isJSPlumbEndpointElement(el))
15346
- return false;
15316
+ if (!isJSPlumbEndpointElement(el)) return false;
15347
15317
  const endpoint = el.jtk.endpoint;
15348
- if (!endpoint)
15349
- return false;
15318
+ if (!endpoint) return false;
15350
15319
  const isSameNode = endpoint.parameters.nodeId === connection.parameters.nodeId;
15351
15320
  const endpointType = endpoint.parameters.connection;
15352
15321
  return !isSameNode && endpointType === requiredType;
@@ -15356,8 +15325,7 @@ const _sfc_main$w = defineComponent({
15356
15325
  return;
15357
15326
  }
15358
15327
  const intersectingEndpoints = filteredEndpoints.filter((element) => {
15359
- if (!isJSPlumbEndpointElement(element))
15360
- return false;
15328
+ if (!isJSPlumbEndpointElement(element)) return false;
15361
15329
  const endpoint = element.jtk.endpoint;
15362
15330
  if (element.classList.contains("jtk-floating-endpoint")) {
15363
15331
  return false;
@@ -15372,8 +15340,7 @@ const _sfc_main$w = defineComponent({
15372
15340
  const node2 = this.workflowsStore.getNodeById(endpoint.parameters.nodeId);
15373
15341
  if (node2) {
15374
15342
  const nodeType = this.nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
15375
- if (!nodeType)
15376
- return false;
15343
+ if (!nodeType) return false;
15377
15344
  return true;
15378
15345
  }
15379
15346
  }
@@ -15384,10 +15351,8 @@ const _sfc_main$w = defineComponent({
15384
15351
  if (!(aEndpointIntersect == null ? void 0 : aEndpointIntersect.y) && !(bEndpointIntersect == null ? void 0 : bEndpointIntersect.y)) {
15385
15352
  return 0;
15386
15353
  }
15387
- if (!(aEndpointIntersect == null ? void 0 : aEndpointIntersect.y))
15388
- return 1;
15389
- if (!(bEndpointIntersect == null ? void 0 : bEndpointIntersect.y))
15390
- return -1;
15354
+ if (!(aEndpointIntersect == null ? void 0 : aEndpointIntersect.y)) return 1;
15355
+ if (!(bEndpointIntersect == null ? void 0 : bEndpointIntersect.y)) return -1;
15391
15356
  return bEndpointIntersect.y - aEndpointIntersect.y;
15392
15357
  });
15393
15358
  if (intersectingEndpoints.length > 0 && isJSPlumbEndpointElement(intersectingEndpoints[0])) {
@@ -15450,8 +15415,7 @@ const _sfc_main$w = defineComponent({
15450
15415
  }
15451
15416
  },
15452
15417
  bindCanvasEvents() {
15453
- if (this.eventsAttached)
15454
- return;
15418
+ if (this.eventsAttached) return;
15455
15419
  this.instance.bind(EVENT_CONNECTION_ABORT, this.onEventConnectionAbort);
15456
15420
  this.instance.bind(INTERCEPT_BEFORE_DROP, this.onInterceptBeforeDrop);
15457
15421
  this.instance.bind(EVENT_CONNECTION, this.onEventConnection);
@@ -15568,8 +15532,7 @@ const _sfc_main$w = defineComponent({
15568
15532
  );
15569
15533
  if (confirmModal === MODAL_CONFIRM) {
15570
15534
  const saved = await this.workflowHelpers.saveCurrentWorkflow();
15571
- if (saved)
15572
- await this.npsSurveyStore.fetchPromptsData();
15535
+ if (saved) await this.npsSurveyStore.fetchPromptsData();
15573
15536
  } else if (confirmModal === MODAL_CANCEL) {
15574
15537
  return;
15575
15538
  }
@@ -15658,7 +15621,7 @@ const _sfc_main$w = defineComponent({
15658
15621
  onNodeRun({
15659
15622
  name,
15660
15623
  data,
15661
- waiting
15624
+ waiting: waiting2
15662
15625
  }) {
15663
15626
  var _a;
15664
15627
  const pinData = this.workflowsStore.pinnedWorkflowData;
@@ -15681,7 +15644,7 @@ const _sfc_main$w = defineComponent({
15681
15644
  const sourceNodeName = name;
15682
15645
  const sourceNode = this.workflowsStore.getNodeByName(sourceNodeName);
15683
15646
  const sourceId = sourceNode !== null ? sourceNode.id : "";
15684
- if (data === null || data.length === 0 || waiting) {
15647
+ if (data === null || data.length === 0 || waiting2) {
15685
15648
  const sourceElement = document.getElementById(sourceId);
15686
15649
  if (!sourceElement) {
15687
15650
  return;
@@ -16186,8 +16149,7 @@ const _sfc_main$w = defineComponent({
16186
16149
  }
16187
16150
  },
16188
16151
  onToggleNodeCreator({ source, createNodeActive, nodeCreatorView }) {
16189
- if (createNodeActive === this.createNodeActive)
16190
- return;
16152
+ if (createNodeActive === this.createNodeActive) return;
16191
16153
  if (!nodeCreatorView) {
16192
16154
  nodeCreatorView = this.containsTrigger ? REGULAR_NODE_CREATOR_VIEW : TRIGGER_NODE_CREATOR_VIEW;
16193
16155
  }
@@ -16204,8 +16166,7 @@ const _sfc_main$w = defineComponent({
16204
16166
  default:
16205
16167
  mode = "regular";
16206
16168
  }
16207
- if (createNodeActive && source)
16208
- this.nodeCreatorStore.setOpenSource(source);
16169
+ if (createNodeActive && source) this.nodeCreatorStore.setOpenSource(source);
16209
16170
  void this.externalHooks.run("nodeView.createNodeActiveChanged", {
16210
16171
  source,
16211
16172
  mode,
@@ -16252,8 +16213,7 @@ const _sfc_main$w = defineComponent({
16252
16213
  if (lastNodeInputs.length > 1) {
16253
16214
  lastNodeInputs.slice(1).forEach((node2, index) => {
16254
16215
  const nodeUi = this.workflowsStore.getNodeByName(node2.name);
16255
- if (!nodeUi)
16256
- return;
16216
+ if (!nodeUi) return;
16257
16217
  this.onMoveNode({
16258
16218
  nodeName: nodeUi.name,
16259
16219
  position: [nodeUi.position[0], nodeUi.position[1] + 100 * (index + 1)]
@@ -16425,9 +16385,9 @@ const style2 = {
16425
16385
  shake,
16426
16386
  setupCredentialsButtonWrapper
16427
16387
  };
16428
- const _withScopeId = (n) => (pushScopeId("data-v-15661dcd"), n = n(), popScopeId(), n);
16388
+ const _withScopeId = (n) => (pushScopeId("data-v-266ff160"), n = n(), popScopeId(), n);
16429
16389
  const _hoisted_1$6 = ["textContent"];
16430
- const _hoisted_2$5 = {
16390
+ const _hoisted_2$4 = {
16431
16391
  key: 0,
16432
16392
  class: "workflow-execute-wrapper"
16433
16393
  };
@@ -16586,7 +16546,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
16586
16546
  ]),
16587
16547
  _: 1
16588
16548
  })),
16589
- !_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, [
16590
16550
  !_ctx.isManualChatOnly ? (openBlock(), createElementBlock("span", {
16591
16551
  key: 0,
16592
16552
  onMouseenter: _cache[10] || (_cache[10] = ($event) => _ctx.showTriggerMissingToltip(true)),
@@ -16657,7 +16617,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
16657
16617
  const cssModules$n = {
16658
16618
  "$style": style2
16659
16619
  };
16660
- 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"]]);
16661
16621
  const _sfc_main$v = {};
16662
16622
  function _sfc_render(_ctx, _cache) {
16663
16623
  const _component_N8nButton = resolveComponent("N8nButton");
@@ -16816,7 +16776,9 @@ function getCustomPath(props, {
16816
16776
  function useCanvas() {
16817
16777
  const canvas2 = inject(CanvasKey);
16818
16778
  const connectingHandle = computed(() => canvas2 == null ? void 0 : canvas2.connectingHandle.value);
16779
+ const isExecuting = computed(() => canvas2 == null ? void 0 : canvas2.isExecuting.value);
16819
16780
  return {
16781
+ isExecuting,
16820
16782
  connectingHandle
16821
16783
  };
16822
16784
  }
@@ -16952,7 +16914,7 @@ function useCanvasNode() {
16952
16914
  };
16953
16915
  }
16954
16916
  const _hoisted_1$5 = ["title"];
16955
- const _hoisted_2$4 = ["onClick"];
16917
+ const _hoisted_2$3 = ["onClick"];
16956
16918
  const _sfc_main$s = /* @__PURE__ */ defineComponent({
16957
16919
  __name: "CanvasNodeStickyColorSelector",
16958
16920
  emits: ["update"],
@@ -17034,7 +16996,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
17034
16996
  renderOptions.value.color === color2 ? _ctx.$style.selected : ""
17035
16997
  ]),
17036
16998
  onClick: ($event) => changeColor(color2)
17037
- }, null, 10, _hoisted_2$4);
16999
+ }, null, 10, _hoisted_2$3);
17038
17000
  }), 128))
17039
17001
  ], 2)
17040
17002
  ]),
@@ -17066,8 +17028,6 @@ const cssModules$l = {
17066
17028
  "$style": style0$l
17067
17029
  };
17068
17030
  const __unplugin_components_0$3 = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__cssModules", cssModules$l]]);
17069
- const workflowRunning = false;
17070
- const nodeDisabledTitle = "Test";
17071
17031
  const _sfc_main$r = /* @__PURE__ */ defineComponent({
17072
17032
  __name: "CanvasNodeToolbar",
17073
17033
  props: {
@@ -17079,7 +17039,11 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
17079
17039
  const props = __props;
17080
17040
  const $style = useCssModule();
17081
17041
  const i18n2 = useI18n();
17082
- 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
+ });
17083
17047
  const classes = computed(() => ({
17084
17048
  [$style.canvasNodeToolbar]: true,
17085
17049
  [$style.readOnly]: props.readOnly
@@ -17127,10 +17091,10 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
17127
17091
  text: "",
17128
17092
  size: "small",
17129
17093
  icon: "play",
17130
- disabled: workflowRunning,
17094
+ disabled: unref(isExecuting),
17131
17095
  title: unref(i18n2).baseText("node.testStep"),
17132
17096
  onClick: executeNode
17133
- }, null, 8, ["title"])) : createCommentVNode("", true),
17097
+ }, null, 8, ["disabled", "title"])) : createCommentVNode("", true),
17134
17098
  isDisableNodeVisible.value ? (openBlock(), createBlock(_component_N8nIconButton, {
17135
17099
  key: 1,
17136
17100
  "data-test-id": "disable-node-button",
@@ -17138,9 +17102,9 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
17138
17102
  text: "",
17139
17103
  size: "small",
17140
17104
  icon: "power-off",
17141
- title: nodeDisabledTitle,
17105
+ title: nodeDisabledTitle.value,
17142
17106
  onClick: onToggleNode
17143
- })) : createCommentVNode("", true),
17107
+ }, null, 8, ["title"])) : createCommentVNode("", true),
17144
17108
  isDeleteNodeVisible.value ? (openBlock(), createBlock(_component_N8nIconButton, {
17145
17109
  key: 2,
17146
17110
  "data-test-id": "delete-node-button",
@@ -17211,10 +17175,9 @@ function useNodeConnections({
17211
17175
  const { type: targetType, mode: targetMode } = parseCanvasConnectionHandleString(
17212
17176
  connection.targetHandle
17213
17177
  );
17214
- const isSameNode = connection.source === connection.target;
17215
17178
  const isSameMode = sourceMode === targetMode;
17216
17179
  const isSameType = sourceType === targetType;
17217
- return !isSameNode && !isSameMode && isSameType;
17180
+ return !isSameMode && isSameType;
17218
17181
  }
17219
17182
  return {
17220
17183
  mainInputs,
@@ -17255,8 +17218,9 @@ const cssModules$j = {
17255
17218
  "$style": style0$j
17256
17219
  };
17257
17220
  const CanvasNodeDisabledStrikeThrough = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__cssModules", cssModules$j]]);
17258
- const _hoisted_1$4 = ["textContent"];
17259
- 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 };
17260
17224
  const _sfc_main$p = /* @__PURE__ */ defineComponent({
17261
17225
  __name: "CanvasNodeStatusIcons",
17262
17226
  setup(__props) {
@@ -17296,28 +17260,37 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
17296
17260
  ]),
17297
17261
  _: 1
17298
17262
  })
17299
- ], 2)) : unref(executionWaiting) || unref(executionStatus) === "waiting" ? (openBlock(), createElementBlock("div", {
17300
- key: 1,
17301
- class: normalizeClass([_ctx.$style.status, _ctx.$style.waiting])
17302
- }, [
17303
- createVNode(_component_N8nTooltip, { placement: "bottom" }, {
17304
- content: withCtx(() => [
17305
- createBaseVNode("div", {
17306
- textContent: toDisplayString(unref(executionWaiting))
17307
- }, null, 8, _hoisted_1$4)
17308
- ]),
17309
- default: withCtx(() => [
17310
- createVNode(_component_FontAwesomeIcon, { icon: "clock" })
17311
- ]),
17312
- _: 1
17313
- })
17314
- ], 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", {
17315
17288
  key: 2,
17316
17289
  "data-test-id": "canvas-node-status-pinned",
17317
17290
  class: normalizeClass([_ctx.$style.status, _ctx.$style.pinnedData])
17318
17291
  }, [
17319
17292
  createVNode(_component_FontAwesomeIcon, { icon: "thumbtack" })
17320
- ], 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", {
17321
17294
  key: 4,
17322
17295
  "data-test-id": "canvas-node-status-running",
17323
17296
  class: normalizeClass([_ctx.$style.status, _ctx.$style.running])
@@ -17340,17 +17313,20 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
17340
17313
  };
17341
17314
  }
17342
17315
  });
17343
- const status = "_status_r5e7l_1";
17344
- const runData = "_runData_r5e7l_7";
17345
- const pinnedData = "_pinnedData_r5e7l_12";
17346
- const running$1 = "_running_r5e7l_16";
17347
- const issues = "_issues_r5e7l_26";
17348
- 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";
17349
17323
  const style0$i = {
17350
17324
  status,
17351
17325
  runData,
17326
+ waiting: waiting$1,
17352
17327
  pinnedData,
17353
17328
  running: running$1,
17329
+ "node-waiting-spinner": "_node-waiting-spinner_l067o_30",
17354
17330
  issues,
17355
17331
  count
17356
17332
  };
@@ -17359,7 +17335,6 @@ const cssModules$i = {
17359
17335
  };
17360
17336
  const CanvasNodeStatusIcons = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__cssModules", cssModules$i]]);
17361
17337
  const _hoisted_1$3 = ["data-test-id"];
17362
- const _hoisted_2$2 = { key: 0 };
17363
17338
  const _sfc_main$o = /* @__PURE__ */ defineComponent({
17364
17339
  __name: "CanvasNodeDefault",
17365
17340
  emits: ["open:contextmenu"],
@@ -17376,6 +17351,8 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17376
17351
  isDisabled,
17377
17352
  isSelected,
17378
17353
  hasPinnedData,
17354
+ executionStatus,
17355
+ executionWaiting,
17379
17356
  executionRunning,
17380
17357
  hasRunData,
17381
17358
  hasIssues: hasIssues2,
@@ -17402,6 +17379,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17402
17379
  [$style.success]: hasRunData.value,
17403
17380
  [$style.error]: hasIssues2.value,
17404
17381
  [$style.pinned]: hasPinnedData.value,
17382
+ [$style.waiting]: executionWaiting.value ?? executionStatus.value === "waiting",
17405
17383
  [$style.running]: executionRunning.value,
17406
17384
  [$style.configurable]: renderOptions.value.configurable,
17407
17385
  [$style.configuration]: renderOptions.value.configuration,
@@ -17484,12 +17462,13 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17484
17462
  unref(label2) ? (openBlock(), createElementBlock("div", {
17485
17463
  key: 0,
17486
17464
  class: normalizeClass(unref($style).label)
17487
- }, [
17488
- createTextVNode(toDisplayString(unref(label2)) + " ", 1),
17489
- unref(isDisabled) ? (openBlock(), createElementBlock("div", _hoisted_2$2, "(" + toDisplayString(unref(i18n2).baseText("node.disabled")) + ")", 1)) : createCommentVNode("", true)
17490
- ], 2)) : createCommentVNode("", true),
17491
- unref(subtitle2) ? (openBlock(), createElementBlock("div", {
17465
+ }, toDisplayString(unref(label2)), 3)) : createCommentVNode("", true),
17466
+ unref(isDisabled) ? (openBlock(), createElementBlock("div", {
17492
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,
17493
17472
  class: normalizeClass(unref($style).subtitle)
17494
17473
  }, toDisplayString(unref(subtitle2)), 3)) : createCommentVNode("", true)
17495
17474
  ], 2)
@@ -17497,21 +17476,23 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17497
17476
  };
17498
17477
  }
17499
17478
  });
17500
- const node = "_node_11rg8_1";
17501
- const trigger = "_trigger_11rg8_32";
17502
- const configuration = "_configuration_11rg8_35";
17503
- const statusIcons = "_statusIcons_11rg8_42";
17504
- const configurable = "_configurable_11rg8_45";
17505
- const description = "_description_11rg8_52";
17506
- const label$5 = "_label_11rg8_61";
17507
- const selected$1 = "_selected_11rg8_71";
17508
- const success$1 = "_success_11rg8_74";
17509
- const error = "_error_11rg8_77";
17510
- const pinned = "_pinned_11rg8_80";
17511
- const disabled = "_disabled_11rg8_83";
17512
- const running = "_running_11rg8_86";
17513
- const subtitle = "_subtitle_11rg8_116";
17514
- 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";
17515
17496
  const style0$h = {
17516
17497
  node,
17517
17498
  trigger,
@@ -17526,6 +17507,8 @@ const style0$h = {
17526
17507
  pinned,
17527
17508
  disabled,
17528
17509
  running,
17510
+ waiting,
17511
+ disabledLabel,
17529
17512
  subtitle,
17530
17513
  triggerIcon
17531
17514
  };
@@ -17928,14 +17911,14 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
17928
17911
  };
17929
17912
  }
17930
17913
  });
17931
- const wrapper$1 = "_wrapper_13ue6_1";
17932
- const ai = "_ai_13ue6_4";
17933
- const line = "_line_13ue6_4";
17934
- const plus$1 = "_plus_13ue6_7";
17935
- 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";
17936
17919
  const style0$c = {
17937
17920
  wrapper: wrapper$1,
17938
- ai,
17921
+ secondary,
17939
17922
  line,
17940
17923
  plus: plus$1,
17941
17924
  success
@@ -17982,6 +17965,10 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
17982
17965
  }));
17983
17966
  const isHovered = ref(false);
17984
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
+ });
17985
17972
  const runDataLabel2 = computed(
17986
17973
  () => runData2.value ? i18n2.baseText("ndv.output.items", {
17987
17974
  adjustToNumber: runData2.value.total,
@@ -17989,7 +17976,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
17989
17976
  }) : ""
17990
17977
  );
17991
17978
  const isHandlePlusVisible = computed(() => !isConnecting.value || isHovered.value);
17992
- const plusType = computed(() => runData2.value ? "success" : "default");
17979
+ const plusType = computed(() => runDataTotal.value > 0 ? "success" : "default");
17993
17980
  const plusLineSize = computed(
17994
17981
  () => {
17995
17982
  var _a;
@@ -17997,7 +17984,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
17997
17984
  small: 46,
17998
17985
  medium: 66,
17999
17986
  large: 80
18000
- }[((_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"];
18001
17988
  }
18002
17989
  );
18003
17990
  function onMouseEnter() {
@@ -18088,7 +18075,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
18088
18075
  setup(__props, { emit: __emit }) {
18089
18076
  const emit = __emit;
18090
18077
  const $style = useCssModule();
18091
- const { label: label2, isConnected, isConnecting, isRequired, type, runData: runData2 } = useCanvasNodeHandle();
18078
+ const { label: label2, isConnected, isConnecting, isRequired, type } = useCanvasNodeHandle();
18092
18079
  const classes = computed(() => ({
18093
18080
  "canvas-node-handle-non-main-input": true,
18094
18081
  [$style.handle]: true,
@@ -18101,7 +18088,6 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
18101
18088
  const isHandlePlusVisible = computed(
18102
18089
  () => !isConnecting.value || isHovered.value || supportsMultipleConnections.value
18103
18090
  );
18104
- const plusType = computed(() => runData2.value ? "success" : "ai");
18105
18091
  const isHovered = ref(false);
18106
18092
  function onMouseEnter() {
18107
18093
  isHovered.value = true;
@@ -18126,12 +18112,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
18126
18112
  isHandlePlusAvailable.value ? withDirectives((openBlock(), createBlock(CanvasHandlePlus, {
18127
18113
  key: 0,
18128
18114
  "handle-classes": handleClasses$1,
18129
- type: plusType.value,
18115
+ type: "secondary",
18130
18116
  position: "bottom",
18131
18117
  onMouseenter: onMouseEnter,
18132
18118
  onMouseleave: onMouseLeave,
18133
18119
  "onClick:plus": onClickAdd
18134
- }, null, 8, ["type"])), [
18120
+ }, null, 512)), [
18135
18121
  [vShow, isHandlePlusVisible.value]
18136
18122
  ]) : createCommentVNode("", true)
18137
18123
  ]),
@@ -18219,25 +18205,16 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
18219
18205
  const handleType = computed(
18220
18206
  () => props.mode === CanvasConnectionMode.Input ? "target" : "source"
18221
18207
  );
18222
- const handleString = computed(
18223
- () => createCanvasConnectionHandleString({
18224
- mode: props.mode,
18225
- type: props.type,
18226
- index: props.index
18227
- })
18228
- );
18229
18208
  const handleClasses2 = computed(() => [style.handle, style[props.type], style[props.mode]]);
18230
18209
  const connectionsLimitReached = computed(() => {
18231
18210
  return props.maxConnections && props.connectionsCount >= props.maxConnections;
18232
18211
  });
18233
18212
  const isConnectableStart = computed(() => {
18234
- if (connectionsLimitReached.value)
18235
- return false;
18213
+ if (connectionsLimitReached.value) return false;
18236
18214
  return props.mode === CanvasConnectionMode.Output || props.type !== NodeConnectionType.Main;
18237
18215
  });
18238
18216
  const isConnectableEnd = computed(() => {
18239
- if (connectionsLimitReached.value)
18240
- return false;
18217
+ if (connectionsLimitReached.value) return false;
18241
18218
  return props.mode === CanvasConnectionMode.Input || props.type !== NodeConnectionType.Main;
18242
18219
  });
18243
18220
  const isConnected = computed(() => props.connectionsCount > 0);
@@ -18267,7 +18244,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
18267
18244
  return Component ? h(Component) : null;
18268
18245
  };
18269
18246
  function onAdd() {
18270
- emit("add", handleString.value);
18247
+ emit("add", props.handleId);
18271
18248
  }
18272
18249
  const label2 = toRef$1(props, "label");
18273
18250
  const isConnecting = toRef$1(props, "isConnecting");
@@ -18289,7 +18266,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
18289
18266
  });
18290
18267
  return (_ctx, _cache) => {
18291
18268
  return openBlock(), createBlock(unref(_sfc_main$f$1), mergeProps(_ctx.$attrs, {
18292
- id: handleString.value,
18269
+ id: _ctx.handleId,
18293
18270
  class: handleClasses2.value,
18294
18271
  type: handleType.value,
18295
18272
  position: _ctx.position,
@@ -18513,7 +18490,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
18513
18490
  }, [
18514
18491
  (openBlock(true), createElementBlock(Fragment, null, renderList(mappedOutputs.value, (source) => {
18515
18492
  return openBlock(), createBlock(CanvasHandleRenderer, mergeProps({
18516
- key: source.handleId
18493
+ key: `${source.handleId}(${source.index + 1}/${mappedOutputs.value.length})`
18517
18494
  }, source, {
18518
18495
  mode: unref(CanvasConnectionMode).Output,
18519
18496
  "is-read-only": readOnly.value,
@@ -18524,7 +18501,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
18524
18501
  }), 128)),
18525
18502
  (openBlock(true), createElementBlock(Fragment, null, renderList(mappedInputs.value, (target2) => {
18526
18503
  return openBlock(), createBlock(CanvasHandleRenderer, mergeProps({
18527
- key: target2.handleId
18504
+ key: `${target2.handleId}(${target2.index + 1}/${mappedInputs.value.length})`
18528
18505
  }, target2, {
18529
18506
  mode: unref(CanvasConnectionMode).Input,
18530
18507
  "is-read-only": readOnly.value,
@@ -18678,26 +18655,22 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
18678
18655
  const { onEdgeMouseEnter, onEdgeMouseLeave } = useVueFlow();
18679
18656
  const isHovered = ref(false);
18680
18657
  onEdgeMouseEnter(({ edge: edge2 }) => {
18681
- if (edge2.id !== props.id)
18682
- return;
18658
+ if (edge2.id !== props.id) return;
18683
18659
  isHovered.value = true;
18684
18660
  });
18685
18661
  onEdgeMouseLeave(({ edge: edge2 }) => {
18686
- if (edge2.id !== props.id)
18687
- return;
18662
+ if (edge2.id !== props.id) return;
18688
18663
  isHovered.value = false;
18689
18664
  });
18690
18665
  const $style = useCssModule();
18691
18666
  const connectionType2 = computed(
18692
18667
  () => isValidNodeConnectionType(props.data.source.type) ? props.data.source.type : NodeConnectionType.Main
18693
18668
  );
18694
- const renderToolbar = computed(() => (props.selected || isHovered.value) && !props.readOnly);
18669
+ const renderToolbar = computed(() => isHovered.value && !props.readOnly);
18695
18670
  const isMainConnection = computed(() => data.value.source.type === NodeConnectionType.Main);
18696
18671
  const status2 = computed(() => props.data.status);
18697
18672
  const edgeColor = computed(() => {
18698
- if (props.selected) {
18699
- return "var(--color-background-dark)";
18700
- } else if (status2.value === "success") {
18673
+ if (status2.value === "success") {
18701
18674
  return "var(--color-success)";
18702
18675
  } else if (status2.value === "pinned") {
18703
18676
  return "var(--color-secondary)";
@@ -18705,6 +18678,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
18705
18678
  return "var(--color-primary)";
18706
18679
  } else if (!isMainConnection.value) {
18707
18680
  return "var(--node-type-supplemental-color)";
18681
+ } else if (props.selected) {
18682
+ return "var(--color-background-dark)";
18708
18683
  } else {
18709
18684
  return "var(--color-foreground-xdark)";
18710
18685
  }
@@ -18793,8 +18768,7 @@ const useKeybindings = (keymap, options) => {
18793
18768
  const { isCtrlKeyPressed } = useDeviceSupport();
18794
18769
  const isDisabled = computed(() => unref(options == null ? void 0 : options.disabled));
18795
18770
  const ignoreKeyPresses = computed(() => {
18796
- if (!activeElement.value)
18797
- return false;
18771
+ if (!activeElement.value) return false;
18798
18772
  const active = activeElement.value;
18799
18773
  const isInput = ["INPUT", "TEXTAREA"].includes(active.tagName);
18800
18774
  const isContentEditable = active.closest("[contenteditable]") !== null;
@@ -18803,7 +18777,7 @@ const useKeybindings = (keymap, options) => {
18803
18777
  });
18804
18778
  const normalizedKeymap = computed(
18805
18779
  () => Object.fromEntries(
18806
- Object.entries(toValue$1(keymap)).map(([shortcut, handler]) => {
18780
+ Object.entries(keymap.value).map(([shortcut, handler]) => {
18807
18781
  const shortcuts = shortcut.split("|");
18808
18782
  return shortcuts.map((s) => [normalizeShortcutString(s), handler]);
18809
18783
  }).flat()
@@ -18829,8 +18803,7 @@ const useKeybindings = (keymap, options) => {
18829
18803
  return normalizeShortcutString([...modifiers, ...keys].join("+"));
18830
18804
  }
18831
18805
  function onKeyDown2(event) {
18832
- if (ignoreKeyPresses.value || isDisabled.value)
18833
- return;
18806
+ if (ignoreKeyPresses.value || isDisabled.value) return;
18834
18807
  const shortcutString = toShortcutString(event);
18835
18808
  const handler = normalizedKeymap.value[shortcutString];
18836
18809
  if (handler) {
@@ -18889,6 +18862,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
18889
18862
  controlsPosition: { default: PanelPosition.BottomLeft },
18890
18863
  eventBus: { default: () => createEventBus() },
18891
18864
  readOnly: { type: Boolean, default: false },
18865
+ executing: { type: Boolean, default: false },
18892
18866
  keyBindings: { type: Boolean, default: true }
18893
18867
  },
18894
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"],
@@ -18926,30 +18900,30 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
18926
18900
  onKeyUp(panningKeyCode, () => {
18927
18901
  isPanningEnabled.value = false;
18928
18902
  });
18929
- useKeybindings(
18930
- {
18931
- 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 ? {} : {
18932
18913
  ctrl_x: emitWithSelectedNodes((ids) => emit("cut:nodes", ids)),
18933
18914
  "delete|backspace": emitWithSelectedNodes((ids) => emit("delete:nodes", ids)),
18934
18915
  ctrl_d: emitWithSelectedNodes((ids) => emit("duplicate:nodes", ids)),
18935
18916
  d: emitWithSelectedNodes((ids) => emit("update:nodes:enabled", ids)),
18936
18917
  p: emitWithSelectedNodes((ids) => emit("update:nodes:pin", ids, "keyboard-shortcut")),
18937
- enter: emitWithLastSelectedNode((id) => onSetNodeActive(id)),
18938
18918
  f2: emitWithLastSelectedNode((id) => emit("update:node:name", id)),
18939
18919
  tab: () => emit("create:node", "tab"),
18940
18920
  shift_s: () => emit("create:sticky"),
18941
18921
  ctrl_alt_n: () => emit("create:workflow"),
18942
18922
  ctrl_enter: () => emit("run:workflow"),
18943
- ctrl_s: () => emit("save:workflow"),
18944
- ctrl_a: () => addSelectedNodes(graphNodes.value),
18945
- "+|=": async () => await onZoomIn(),
18946
- "-|_": async () => await onZoomOut(),
18947
- 0: async () => await onResetZoom(),
18948
- 1: async () => await onFitView()
18949
- // @TODO implement arrow key shortcuts to modify selection
18950
- },
18951
- { disabled: disableKeyBindings }
18952
- );
18923
+ ctrl_s: () => emit("save:workflow")
18924
+ }
18925
+ }));
18926
+ useKeybindings(keyMap, { disabled: disableKeyBindings });
18953
18927
  const selectionKeyCode = computed(() => isPanningEnabled.value ? null : true);
18954
18928
  const lastSelectedNode = computed(() => selectedNodes.value[selectedNodes.value.length - 1]);
18955
18929
  const hasSelection = computed(() => selectedNodes.value.length > 0);
@@ -18957,17 +18931,17 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
18957
18931
  function onClickNodeAdd(id, handle2) {
18958
18932
  emit("click:node:add", id, handle2);
18959
18933
  }
18960
- function onUpdateNodesPosition(events) {
18934
+ const onUpdateNodesPosition = useDebounceFn((events) => {
18961
18935
  emit("update:nodes:position", events);
18962
- }
18936
+ }, 200);
18963
18937
  function onUpdateNodePosition(id, position2) {
18964
18938
  emit("update:node:position", id, position2);
18965
18939
  }
18940
+ const isPositionChangeEvent = (event) => event.type === "position" && "position" in event;
18966
18941
  function onNodesChange(events) {
18967
- const isPositionChangeEvent = (event) => event.type === "position" && "position" in event;
18968
18942
  const positionChangeEndEvents = events.filter(isPositionChangeEvent);
18969
18943
  if (positionChangeEndEvents.length > 0) {
18970
- onUpdateNodesPosition(positionChangeEndEvents);
18944
+ void onUpdateNodesPosition(positionChangeEndEvents);
18971
18945
  }
18972
18946
  }
18973
18947
  function onSetNodeActive(id) {
@@ -18978,8 +18952,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
18978
18952
  removeSelectedNodes(selectedNodes.value);
18979
18953
  }
18980
18954
  function onSelectNode() {
18981
- if (!lastSelectedNode.value)
18982
- return;
18955
+ if (!lastSelectedNode.value) return;
18983
18956
  emit("update:node:selected", lastSelectedNode.value.id);
18984
18957
  }
18985
18958
  function onSelectNodes({ ids }) {
@@ -19173,8 +19146,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
19173
19146
  watch(() => props.readOnly, setReadonly, {
19174
19147
  immediate: true
19175
19148
  });
19149
+ const isExecuting = toRef$1(props, "executing");
19176
19150
  provide(CanvasKey, {
19177
- connectingHandle
19151
+ connectingHandle,
19152
+ isExecuting
19178
19153
  });
19179
19154
  return (_ctx, _cache) => {
19180
19155
  const _component_CanvasConnectionLine = __unplugin_components_0$4;
@@ -19292,7 +19267,7 @@ const style0$2 = {
19292
19267
  const cssModules$2 = {
19293
19268
  "$style": style0$2
19294
19269
  };
19295
- 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"]]);
19296
19271
  function useCanvasMapping({
19297
19272
  nodes,
19298
19273
  connections: connections2,
@@ -19445,8 +19420,8 @@ function useCanvasMapping({
19445
19420
  );
19446
19421
  const nodeExecutionStatusById = computed(
19447
19422
  () => nodes.value.reduce((acc, node2) => {
19448
- var _a, _b;
19449
- 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";
19450
19425
  return acc;
19451
19426
  }, {})
19452
19427
  );
@@ -19520,7 +19495,15 @@ function useCanvasMapping({
19520
19495
  const workflowExecution = workflowsStore.getWorkflowExecution;
19521
19496
  const lastNodeExecuted = (_b = (_a = workflowExecution == null ? void 0 : workflowExecution.data) == null ? void 0 : _a.resultData) == null ? void 0 : _b.lastNodeExecuted;
19522
19497
  if (workflowExecution && lastNodeExecuted && isExecutionSummary(workflowExecution)) {
19523
- 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
+ }
19524
19507
  const waitDate = new Date(workflowExecution.waitTill);
19525
19508
  if (waitDate.toISOString() === WAIT_TIME_UNLIMITED) {
19526
19509
  acc[node2.id] = i18n2.baseText(
@@ -19723,7 +19706,8 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
19723
19706
  workflowObject: {},
19724
19707
  fallbackNodes: { default: () => [] },
19725
19708
  eventBus: { default: () => createEventBus() },
19726
- readOnly: { type: Boolean }
19709
+ readOnly: { type: Boolean },
19710
+ executing: { type: Boolean }
19727
19711
  },
19728
19712
  setup(__props) {
19729
19713
  const props = __props;
@@ -19835,6 +19819,7 @@ function useCanvasOperations({ router }) {
19835
19819
  const telemetry = useTelemetry();
19836
19820
  const externalHooks = useExternalHooks();
19837
19821
  const clipboard = useClipboard();
19822
+ const { uniqueNodeName } = useUniqueNodeName();
19838
19823
  const lastClickPosition = ref([0, 0]);
19839
19824
  const preventOpeningNDV = !!localStorage.getItem("NodeView.preventOpeningNDV");
19840
19825
  const editableWorkflow = computed(() => workflowsStore.workflow);
@@ -19849,7 +19834,7 @@ function useCanvasOperations({ router }) {
19849
19834
  events.forEach(({ id, position: position2 }) => {
19850
19835
  updateNodePosition(id, position2, { trackHistory });
19851
19836
  });
19852
- if (trackBulk) {
19837
+ if (trackHistory && trackBulk) {
19853
19838
  historyStore.stopRecordingUndo();
19854
19839
  }
19855
19840
  }
@@ -19872,14 +19857,14 @@ function useCanvasOperations({ router }) {
19872
19857
  }
19873
19858
  updateNodePosition(node2.id, position2);
19874
19859
  }
19875
- async function renameNode(currentName, newName, { trackHistory = false } = {}) {
19860
+ async function renameNode(currentName, newName, { trackHistory = false, trackBulk = true } = {}) {
19876
19861
  if (currentName === newName) {
19877
19862
  return;
19878
19863
  }
19879
- if (trackHistory) {
19864
+ if (trackHistory && trackBulk) {
19880
19865
  historyStore.startRecordingUndo();
19881
19866
  }
19882
- newName = getUniqueNodeName(newName, workflowsStore.canvasNames);
19867
+ newName = uniqueNodeName(newName);
19883
19868
  const workflow = workflowsStore.getCurrentWorkflow(true);
19884
19869
  workflow.renameNode(currentName, newName);
19885
19870
  if (trackHistory) {
@@ -19892,7 +19877,7 @@ function useCanvasOperations({ router }) {
19892
19877
  if (isRenamingActiveNode) {
19893
19878
  ndvStore.activeNodeName = newName;
19894
19879
  }
19895
- if (trackHistory) {
19880
+ if (trackHistory && trackBulk) {
19896
19881
  historyStore.stopRecordingUndo();
19897
19882
  }
19898
19883
  }
@@ -19912,12 +19897,10 @@ function useCanvasOperations({ router }) {
19912
19897
  )) {
19913
19898
  for (const incomingConnection of incomingConnectionsByInputIndex.at(0) ?? []) {
19914
19899
  const incomingNodeId = (_a = workflowsStore.getNodeByName(incomingConnection.node)) == null ? void 0 : _a.id;
19915
- if (!incomingNodeId)
19916
- continue;
19900
+ if (!incomingNodeId) continue;
19917
19901
  for (const outgoingConnection of ((_b = outputConnectionsByType[type]) == null ? void 0 : _b.at(0)) ?? []) {
19918
19902
  const outgoingNodeId = (_c = workflowsStore.getNodeByName(outgoingConnection.node)) == null ? void 0 : _c.id;
19919
- if (!outgoingNodeId)
19920
- continue;
19903
+ if (!outgoingNodeId) continue;
19921
19904
  if (trackHistory) {
19922
19905
  historyStore.pushCommandToUndo(
19923
19906
  new AddConnectionCommand([
@@ -19959,7 +19942,7 @@ function useCanvasOperations({ router }) {
19959
19942
  historyStore.startRecordingUndo();
19960
19943
  }
19961
19944
  if (uiStore.lastInteractedWithNodeId === id) {
19962
- uiStore.lastInteractedWithNodeId = null;
19945
+ uiStore.lastInteractedWithNodeId = void 0;
19963
19946
  }
19964
19947
  connectAdjacentNodes(id, { trackHistory });
19965
19948
  deleteConnectionsByNodeId(id, { trackHistory, trackBulk: false });
@@ -19973,10 +19956,14 @@ function useCanvasOperations({ router }) {
19973
19956
  }
19974
19957
  trackDeleteNode(id);
19975
19958
  }
19976
- function deleteNodes(ids) {
19977
- historyStore.startRecordingUndo();
19978
- ids.forEach((id) => deleteNode(id, { trackHistory: true, trackBulk: false }));
19979
- 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
+ }
19980
19967
  }
19981
19968
  function revertDeleteNode(node2) {
19982
19969
  workflowsStore.addNode(node2);
@@ -20024,7 +20011,7 @@ function useCanvasOperations({ router }) {
20024
20011
  }
20025
20012
  function setNodeSelected(id) {
20026
20013
  if (!id) {
20027
- uiStore.lastInteractedWithNodeId = null;
20014
+ uiStore.lastInteractedWithNodeId = void 0;
20028
20015
  uiStore.lastSelectedNode = "";
20029
20016
  return;
20030
20017
  }
@@ -20036,12 +20023,12 @@ function useCanvasOperations({ router }) {
20036
20023
  uiStore.lastSelectedNode = node2.name;
20037
20024
  }
20038
20025
  function toggleNodesDisabled(ids, { trackHistory = true, trackBulk = true } = {}) {
20039
- if (trackBulk) {
20026
+ if (trackHistory && trackBulk) {
20040
20027
  historyStore.startRecordingUndo();
20041
20028
  }
20042
20029
  const nodes = workflowsStore.getNodesByIds(ids);
20043
- nodeHelpers.disableNodes(nodes, trackHistory);
20044
- if (trackBulk) {
20030
+ nodeHelpers.disableNodes(nodes, { trackHistory, trackBulk: false });
20031
+ if (trackHistory && trackBulk) {
20045
20032
  historyStore.stopRecordingUndo();
20046
20033
  }
20047
20034
  }
@@ -20051,8 +20038,10 @@ function useCanvasOperations({ router }) {
20051
20038
  nodeHelpers.disableNodes([node2]);
20052
20039
  }
20053
20040
  }
20054
- function toggleNodesPinned(ids, source) {
20055
- historyStore.startRecordingUndo();
20041
+ function toggleNodesPinned(ids, source, { trackHistory = true, trackBulk = true } = {}) {
20042
+ if (trackHistory && trackBulk) {
20043
+ historyStore.startRecordingUndo();
20044
+ }
20056
20045
  const nodes = workflowsStore.getNodesByIds(ids);
20057
20046
  const nextStatePinned = nodes.some((node2) => !workflowsStore.pinDataByNodeName(node2.name));
20058
20047
  for (const node2 of nodes) {
@@ -20066,7 +20055,9 @@ function useCanvasOperations({ router }) {
20066
20055
  pinnedDataForNode.unsetData(source);
20067
20056
  }
20068
20057
  }
20069
- historyStore.stopRecordingUndo();
20058
+ if (trackHistory && trackBulk) {
20059
+ historyStore.stopRecordingUndo();
20060
+ }
20070
20061
  }
20071
20062
  function requireNodeTypeDescription(type, version) {
20072
20063
  return nodeTypesStore.getNodeType(type, version) ?? {
@@ -20084,9 +20075,6 @@ function useCanvasOperations({ router }) {
20084
20075
  async function addNodes2(nodes, options = {}) {
20085
20076
  let insertPosition = options.position;
20086
20077
  let lastAddedNode;
20087
- if (options.trackBulk) {
20088
- historyStore.startRecordingUndo();
20089
- }
20090
20078
  const nodesWithTypeVersion = nodes.map((node2) => {
20091
20079
  const typeVersion = node2.typeVersion ?? resolveNodeVersion(requireNodeTypeDescription(node2.type));
20092
20080
  return {
@@ -20095,7 +20083,7 @@ function useCanvasOperations({ router }) {
20095
20083
  };
20096
20084
  });
20097
20085
  await loadNodeTypesProperties(nodesWithTypeVersion);
20098
- if (options.trackBulk) {
20086
+ if (options.trackHistory && options.trackBulk) {
20099
20087
  historyStore.startRecordingUndo();
20100
20088
  }
20101
20089
  for (const nodeAddData of nodesWithTypeVersion) {
@@ -20128,7 +20116,7 @@ function useCanvasOperations({ router }) {
20128
20116
  if (lastAddedNode) {
20129
20117
  updatePositionForNodeWithMultipleInputs(lastAddedNode);
20130
20118
  }
20131
- if (options.trackBulk) {
20119
+ if (options.trackHistory && options.trackBulk) {
20132
20120
  historyStore.stopRecordingUndo();
20133
20121
  }
20134
20122
  if (!options.keepPristine) {
@@ -20140,8 +20128,7 @@ function useCanvasOperations({ router }) {
20140
20128
  if (inputNodes.length > 1) {
20141
20129
  inputNodes.slice(1).forEach((inputNode, index) => {
20142
20130
  const nodeUi = workflowsStore.getNodeByName(inputNode.name);
20143
- if (!nodeUi)
20144
- return;
20131
+ if (!nodeUi) return;
20145
20132
  updateNodePosition(nodeUi.id, {
20146
20133
  x: nodeUi.position[0],
20147
20134
  y: nodeUi.position[1] + 100 * (index + 1)
@@ -20149,8 +20136,8 @@ function useCanvasOperations({ router }) {
20149
20136
  });
20150
20137
  }
20151
20138
  }
20152
- function addNode(node2, nodeTypeDescription, options = {}) {
20153
- 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) {
20154
20141
  throw new Error(
20155
20142
  i18n2.baseText("nodeView.showMessage.showMaxNodeTypeError.message", {
20156
20143
  adjustToNumber: nodeTypeDescription.maxNodes,
@@ -20158,17 +20145,20 @@ function useCanvasOperations({ router }) {
20158
20145
  })
20159
20146
  );
20160
20147
  }
20148
+ }
20149
+ function addNode(node2, nodeTypeDescription, options = {}) {
20150
+ checkMaxNodesOfTypeReached(nodeTypeDescription);
20161
20151
  const nodeData = resolveNodeData(node2, nodeTypeDescription);
20162
20152
  if (!nodeData) {
20163
20153
  throw new Error(i18n2.baseText("nodeViewV2.showError.failedToCreateNode"));
20164
20154
  }
20165
- nodeHelpers.matchCredentials(nodeData);
20155
+ workflowsStore.addNode(nodeData);
20156
+ if (options.trackHistory) {
20157
+ historyStore.pushCommandToUndo(new AddNodeCommand(nodeData));
20158
+ }
20166
20159
  void nextTick(() => {
20167
- if (options.trackHistory) {
20168
- historyStore.pushCommandToUndo(new AddNodeCommand(nodeData));
20169
- }
20170
- workflowsStore.addNode(nodeData);
20171
20160
  workflowsStore.setNodePristine(nodeData.name, true);
20161
+ nodeHelpers.matchCredentials(nodeData);
20172
20162
  nodeHelpers.updateNodeParameterIssues(nodeData);
20173
20163
  nodeHelpers.updateNodeCredentialIssues(nodeData);
20174
20164
  nodeHelpers.updateNodeInputIssues(nodeData);
@@ -20180,9 +20170,9 @@ function useCanvasOperations({ router }) {
20180
20170
  }
20181
20171
  if (nodeData.type !== STICKY_NODE_TYPE) {
20182
20172
  void externalHooks.run("nodeView.addNodeButton", { nodeTypeName: nodeData.type });
20183
- }
20184
- if (options.openNDV && !preventOpeningNDV) {
20185
- ndvStore.setActiveNodeName(nodeData.name);
20173
+ if (options.openNDV && !preventOpeningNDV) {
20174
+ ndvStore.setActiveNodeName(nodeData.name);
20175
+ }
20186
20176
  }
20187
20177
  });
20188
20178
  return nodeData;
@@ -20392,6 +20382,9 @@ function useCanvasOperations({ router }) {
20392
20382
  function resolveNodePosition(node2, nodeTypeDescription) {
20393
20383
  let position2 = node2.position;
20394
20384
  let pushOffsets = [40, 40];
20385
+ if (position2) {
20386
+ return getNewNodePosition(workflowsStore.allNodes, position2, pushOffsets);
20387
+ }
20395
20388
  const lastInteractedWithNode = uiStore.lastInteractedWithNode;
20396
20389
  const lastInteractedWithNodeConnection = uiStore.lastInteractedWithNodeConnection;
20397
20390
  const lastInteractedWithNodeHandle = uiStore.lastInteractedWithNodeHandle;
@@ -20409,7 +20402,7 @@ function useCanvasOperations({ router }) {
20409
20402
  const xOffset = connectionType2 === NodeConnectionType.Main ? 0 : -nodeSize[0] / 2;
20410
20403
  const yOffset = connectionType2 === NodeConnectionType.Main ? -nodeSize[1] / 2 : 0;
20411
20404
  position2 = [newNodeInsertPosition[0] + xOffset, newNodeInsertPosition[1] + yOffset];
20412
- uiStore.lastCancelledConnectionPosition = null;
20405
+ uiStore.lastCancelledConnectionPosition = void 0;
20413
20406
  } else if (lastInteractedWithNodeTypeDescription) {
20414
20407
  let yOffset = 0;
20415
20408
  if (lastInteractedWithNodeConnection) {
@@ -20508,7 +20501,7 @@ function useCanvasOperations({ router }) {
20508
20501
  }
20509
20502
  function resolveNodeName(node2) {
20510
20503
  const localizedName = i18n2.localizeNodeName(node2.name, node2.type);
20511
- node2.name = getUniqueNodeName(localizedName, workflowsStore.canvasNames);
20504
+ node2.name = uniqueNodeName(localizedName);
20512
20505
  }
20513
20506
  function resolveNodeWebhook(node2, nodeTypeDescription) {
20514
20507
  var _a;
@@ -20669,9 +20662,6 @@ function useCanvasOperations({ router }) {
20669
20662
  }
20670
20663
  function isConnectionAllowed(sourceNode, targetNode, sourceConnectionType, targetConnectionType) {
20671
20664
  const blocklist = [STICKY_NODE_TYPE];
20672
- if (sourceNode.id === targetNode.id) {
20673
- return false;
20674
- }
20675
20665
  if (sourceConnectionType !== targetConnectionType) {
20676
20666
  return false;
20677
20667
  }
@@ -20713,8 +20703,7 @@ function useCanvasOperations({ router }) {
20713
20703
  }
20714
20704
  const targetNodeHasInputConnectionOfType = !!targetNodeInputs.find((input) => {
20715
20705
  const inputType = typeof input === "string" ? input : input.type;
20716
- if (inputType !== targetConnectionType)
20717
- return false;
20706
+ if (inputType !== targetConnectionType) return false;
20718
20707
  const filter = typeof input === "object" && "filter" in input ? input.filter : void 0;
20719
20708
  if ((filter == null ? void 0 : filter.nodes.length) && !filter.nodes.includes(sourceNode.type)) {
20720
20709
  toast.showToast({
@@ -20731,22 +20720,31 @@ function useCanvasOperations({ router }) {
20731
20720
  });
20732
20721
  return targetNodeHasInputConnectionOfType;
20733
20722
  }
20734
- function addConnections(connections2) {
20723
+ function addConnections(connections2, { trackBulk = true, trackHistory = false } = {}) {
20724
+ if (trackBulk && trackHistory) {
20725
+ historyStore.startRecordingUndo();
20726
+ }
20735
20727
  for (const { source, target: target2, data } of connections2) {
20736
- createConnection({
20737
- source,
20738
- sourceHandle: createCanvasConnectionHandleString({
20739
- mode: CanvasConnectionMode.Output,
20740
- type: isValidNodeConnectionType(data == null ? void 0 : data.source.type) ? data == null ? void 0 : data.source.type : NodeConnectionType.Main,
20741
- index: (data == null ? void 0 : data.source.index) ?? 0
20742
- }),
20743
- target: target2,
20744
- targetHandle: createCanvasConnectionHandleString({
20745
- mode: CanvasConnectionMode.Input,
20746
- type: isValidNodeConnectionType(data == null ? void 0 : data.target.type) ? data == null ? void 0 : data.target.type : NodeConnectionType.Main,
20747
- index: (data == null ? void 0 : data.target.index) ?? 0
20748
- })
20749
- });
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();
20750
20748
  }
20751
20749
  }
20752
20750
  function resetWorkspace() {
@@ -20761,6 +20759,7 @@ function useCanvasOperations({ router }) {
20761
20759
  workflowsStore.resetWorkflow();
20762
20760
  workflowsStore.resetState();
20763
20761
  workflowsStore.currentWorkflowExecutions = [];
20762
+ uiStore.resetLastInteractedWith();
20764
20763
  uiStore.removeActiveAction("workflowRunning");
20765
20764
  uiStore.stateIsDirty = false;
20766
20765
  executionsStore.activeExecution = null;
@@ -20772,21 +20771,18 @@ function useCanvasOperations({ router }) {
20772
20771
  workflowsStore.setConnections(data.connections);
20773
20772
  }
20774
20773
  function removeUnknownCredentials(workflow) {
20775
- if (!(workflow == null ? void 0 : workflow.nodes))
20776
- return;
20774
+ if (!(workflow == null ? void 0 : workflow.nodes)) return;
20777
20775
  for (const node2 of workflow.nodes) {
20778
- if (!node2.credentials)
20779
- continue;
20776
+ if (!node2.credentials) continue;
20780
20777
  for (const [name, credential] of Object.entries(node2.credentials)) {
20781
- if (typeof credential === "string" || credential.id === null)
20782
- continue;
20778
+ if (typeof credential === "string" || credential.id === null) continue;
20783
20779
  if (!credentialsStore.getCredentialById(credential.id)) {
20784
20780
  delete node2.credentials[name];
20785
20781
  }
20786
20782
  }
20787
20783
  }
20788
20784
  }
20789
- async function addImportedNodesToWorkflow(data) {
20785
+ async function addImportedNodesToWorkflow(data, { trackBulk = true, trackHistory = false } = {}) {
20790
20786
  const nodeNameTable = {};
20791
20787
  const newNodeNames = /* @__PURE__ */ new Set();
20792
20788
  if (!data.nodes) {
@@ -20810,7 +20806,7 @@ function useCanvasOperations({ router }) {
20810
20806
  }
20811
20807
  oldName = node2.name;
20812
20808
  const localized = i18n2.localizeNodeName(node2.name, node2.type);
20813
- newName = getUniqueNodeName(localized, newNodeNames);
20809
+ newName = uniqueNodeName(localized, Array.from(newNodeNames));
20814
20810
  newNodeNames.add(newName);
20815
20811
  nodeNameTable[oldName] = newName;
20816
20812
  createNodes.push(node2);
@@ -20870,22 +20866,28 @@ function useCanvasOperations({ router }) {
20870
20866
  }
20871
20867
  }
20872
20868
  }
20873
- historyStore.startRecordingUndo();
20874
- await addNodes2(Object.values(tempWorkflow.nodes));
20869
+ if (trackBulk && trackHistory) {
20870
+ historyStore.startRecordingUndo();
20871
+ }
20872
+ await addNodes2(Object.values(tempWorkflow.nodes), { trackBulk: false, trackHistory });
20875
20873
  addConnections(
20876
20874
  mapLegacyConnectionsToCanvasConnections(
20877
20875
  tempWorkflow.connectionsBySourceNode,
20878
20876
  Object.values(tempWorkflow.nodes)
20879
- )
20877
+ ),
20878
+ { trackBulk: false, trackHistory }
20880
20879
  );
20881
- historyStore.stopRecordingUndo();
20880
+ if (trackBulk && trackHistory) {
20881
+ historyStore.stopRecordingUndo();
20882
+ }
20882
20883
  uiStore.stateIsDirty = true;
20883
20884
  return {
20884
20885
  nodes: Object.values(tempWorkflow.nodes),
20885
20886
  connections: tempWorkflow.connectionsBySourceNode
20886
20887
  };
20887
20888
  }
20888
- async function importWorkflowData(workflowData, source, importTags = true) {
20889
+ async function importWorkflowData(workflowData, source, importTags = true, { trackBulk = true, trackHistory = true } = {}) {
20890
+ uiStore.resetLastInteractedWith();
20889
20891
  if (!workflowData.hasOwnProperty("nodes") || !workflowData.hasOwnProperty("connections")) {
20890
20892
  return {};
20891
20893
  }
@@ -20896,7 +20898,10 @@ function useCanvasOperations({ router }) {
20896
20898
  workflowData.nodes.forEach((node2) => {
20897
20899
  if (!node2.name) {
20898
20900
  const nodeType = nodeTypesStore.getNodeType(node2.type);
20899
- 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
+ );
20900
20905
  node2.name = newName;
20901
20906
  nodeNames.add(newName);
20902
20907
  }
@@ -20950,7 +20955,7 @@ function useCanvasOperations({ router }) {
20950
20955
  workflowData,
20951
20956
  getNewNodePosition(editableWorkflow.value.nodes, lastClickPosition.value)
20952
20957
  );
20953
- await addImportedNodesToWorkflow(workflowData);
20958
+ await addImportedNodesToWorkflow(workflowData, { trackBulk, trackHistory });
20954
20959
  if (importTags && settingsStore.areTagsEnabled && Array.isArray(workflowData.tags)) {
20955
20960
  await importWorkflowTags(workflowData);
20956
20961
  }
@@ -21037,8 +21042,7 @@ function useCanvasOperations({ router }) {
21037
21042
  const connections2 = {};
21038
21043
  for (const node2 of nodes) {
21039
21044
  const outgoingConnections = workflowsStore.outgoingConnectionsByNodeName(node2.name);
21040
- if (!Object.keys(outgoingConnections).length)
21041
- continue;
21045
+ if (!Object.keys(outgoingConnections).length) continue;
21042
21046
  const filteredConnections = filterConnectionsByNodes(outgoingConnections, includeNodeNames);
21043
21047
  if (Object.keys(filteredConnections).length) {
21044
21048
  connections2[node2.name] = filteredConnections;
@@ -21179,7 +21183,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21179
21183
  __name: "NodeView.v2",
21180
21184
  setup(__props) {
21181
21185
  const LazyNodeCreation2 = defineAsyncComponent(
21182
- async () => await __vitePreload(() => import("./NodeCreation-BwNEef4i.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-CJ4p9t6U.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)
21183
21187
  );
21184
21188
  const LazyNodeDetailsView = defineAsyncComponent(
21185
21189
  async () => await __vitePreload(() => Promise.resolve().then(() => NodeDetailsView), true ? void 0 : void 0)
@@ -21220,7 +21224,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21220
21224
  route
21221
21225
  });
21222
21226
  const { registerCustomAction, unregisterCustomAction } = useGlobalLinkActions();
21223
- const { runWorkflow, stopCurrentExecution, stopWaitingForWebhook } = useRunWorkflow({ router });
21227
+ const { runWorkflow, runWorkflowResolvePending, stopCurrentExecution, stopWaitingForWebhook } = useRunWorkflow({ router });
21224
21228
  const {
21225
21229
  updateNodePosition,
21226
21230
  updateNodesPosition,
@@ -21298,12 +21302,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21298
21302
  ]
21299
21303
  );
21300
21304
  const keyBindingsEnabled = computed(() => {
21301
- return !ndvStore.activeNode;
21305
+ return !ndvStore.activeNode && uiStore.activeModals.length === 0;
21302
21306
  });
21303
21307
  async function initializeData() {
21304
21308
  const loadPromises = (() => {
21305
- if (settingsStore.isPreviewMode && isDemoRoute.value)
21306
- return [];
21309
+ if (settingsStore.isPreviewMode && isDemoRoute.value) return [];
21307
21310
  const promises = [
21308
21311
  workflowsStore.fetchActiveWorkflows(),
21309
21312
  credentialsStore.fetchAllCredentials(),
@@ -21391,7 +21394,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21391
21394
  }
21392
21395
  async function openWorkflow(data) {
21393
21396
  resetWorkspace();
21394
- workflowHelpers.setDocumentTitle(editableWorkflow.value.name, "IDLE");
21397
+ workflowHelpers.setDocumentTitle(data.name, "IDLE");
21395
21398
  await initializeWorkspace(data);
21396
21399
  void externalHooks.run("workflow.open", {
21397
21400
  workflowId: data.id,
@@ -21518,10 +21521,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21518
21521
  }
21519
21522
  async function onClipboardPaste(plainTextData) {
21520
21523
  var _a;
21521
- if (getNodeViewTab(route) !== MAIN_HEADER_TABS.WORKFLOW) {
21522
- return;
21523
- }
21524
- if (!checkIfEditingIsAllowed()) {
21524
+ if (getNodeViewTab(route) !== MAIN_HEADER_TABS.WORKFLOW || !keyBindingsEnabled.value || !checkIfEditingIsAllowed()) {
21525
21525
  return;
21526
21526
  }
21527
21527
  let workflowData = null;
@@ -21689,6 +21689,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21689
21689
  uiStore.lastInteractedWithNodeHandle = event.handleId;
21690
21690
  uiStore.lastCancelledConnectionPosition = [position2.x, position2.y];
21691
21691
  setTimeout(() => {
21692
+ if (!event.nodeId) return;
21692
21693
  nodeCreatorStore.openNodeCreatorForConnectingNode({
21693
21694
  connection: {
21694
21695
  source: event.nodeId,
@@ -21812,7 +21813,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21812
21813
  return getResourcePermissions(project == null ? void 0 : project.scopes);
21813
21814
  });
21814
21815
  const isStoppingExecution = ref(false);
21815
- 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
+ });
21816
21824
  const isExecutionWaitingForWebhook = computed(() => workflowsStore.executionWaitingForWebhook);
21817
21825
  const isExecutionDisabled = computed(() => {
21818
21826
  if (containsChatTriggerNodes.value && isOnlyChatTriggerNodeActive.value && !chatTriggerNodePinnedData.value) {
@@ -21820,6 +21828,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21820
21828
  }
21821
21829
  return !containsTriggerNodes.value || allTriggerNodesDisabled.value;
21822
21830
  });
21831
+ const isRunWorkflowButtonVisible = computed(() => !isOnlyChatTriggerNodeActive.value);
21823
21832
  const isStopExecutionButtonVisible = computed(
21824
21833
  () => isWorkflowRunning.value && !isExecutionWaitingForWebhook.value
21825
21834
  );
@@ -21832,7 +21841,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21832
21841
  const workflowExecutionData = computed(() => workflowsStore.workflowExecutionData);
21833
21842
  async function onRunWorkflow() {
21834
21843
  trackRunWorkflow();
21835
- await runWorkflow({});
21844
+ if (!isExecutionPreview.value && workflowsStore.isWaitingExecution) {
21845
+ void runWorkflowResolvePending({});
21846
+ } else {
21847
+ void runWorkflow({});
21848
+ }
21836
21849
  }
21837
21850
  function trackRunWorkflow() {
21838
21851
  void workflowHelpers.getWorkflowDataToSave().then((workflowData) => {
@@ -21852,10 +21865,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21852
21865
  }
21853
21866
  async function onRunWorkflowToNode(id) {
21854
21867
  const node2 = workflowsStore.getNodeById(id);
21855
- if (!node2)
21856
- return;
21868
+ if (!node2) return;
21857
21869
  trackRunWorkflowToNode(node2);
21858
- 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
+ }
21859
21875
  }
21860
21876
  function trackRunWorkflowToNode(node2) {
21861
21877
  const telemetryPayload = {
@@ -21904,15 +21920,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21904
21920
  let nodeErrorFound = false;
21905
21921
  if (data.data.resultData.runData) {
21906
21922
  const runData2 = data.data.resultData.runData;
21907
- errorCheck:
21908
- for (const nodeName of Object.keys(runData2)) {
21909
- for (const taskData of runData2[nodeName]) {
21910
- if (taskData.error) {
21911
- nodeErrorFound = true;
21912
- break errorCheck;
21913
- }
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;
21914
21928
  }
21915
21929
  }
21930
+ }
21916
21931
  }
21917
21932
  if (!nodeErrorFound && (data.data.resultData.error.stack ?? data.data.resultData.error.message)) {
21918
21933
  console.error(`Execution ${data.id} error:`);
@@ -21974,8 +21989,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21974
21989
  return triggerNodes.value.every((node2) => node2.disabled || node2.type === CHAT_TRIGGER_NODE_TYPE);
21975
21990
  });
21976
21991
  const chatTriggerNodePinnedData = computed(() => {
21977
- if (!chatTriggerNode.value)
21978
- return null;
21992
+ if (!chatTriggerNode.value) return null;
21979
21993
  return workflowsStore.pinDataByNodeName(chatTriggerNode.value.name);
21980
21994
  });
21981
21995
  async function onOpenChat() {
@@ -22140,8 +22154,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
22140
22154
  }
22141
22155
  }
22142
22156
  async function onSaveFromWithinExecutionDebug() {
22143
- if (route.name !== VIEWS.EXECUTION_DEBUG)
22144
- return;
22157
+ if (route.name !== VIEWS.EXECUTION_DEBUG) return;
22145
22158
  await router.replace({
22146
22159
  name: VIEWS.WORKFLOW,
22147
22160
  params: { name: workflowId.value }
@@ -22255,6 +22268,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
22255
22268
  "fallback-nodes": fallbackNodes.value,
22256
22269
  "event-bus": unref(canvasEventBus),
22257
22270
  "read-only": isCanvasReadOnly.value,
22271
+ executing: isWorkflowRunning.value,
22258
22272
  "key-bindings": keyBindingsEnabled.value,
22259
22273
  "onUpdate:nodes:position": onUpdateNodesPosition,
22260
22274
  "onUpdate:node:position": onUpdateNodePosition,
@@ -22289,29 +22303,30 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
22289
22303
  key: 0,
22290
22304
  class: normalizeClass(unref($style).executionButtons)
22291
22305
  }, [
22292
- createVNode(_sfc_main$5, {
22306
+ isRunWorkflowButtonVisible.value ? (openBlock(), createBlock(_sfc_main$5, {
22307
+ key: 0,
22293
22308
  "waiting-for-webhook": isExecutionWaitingForWebhook.value,
22294
22309
  disabled: isExecutionDisabled.value,
22295
22310
  executing: isWorkflowRunning.value,
22296
22311
  onMouseenter: onRunWorkflowButtonMouseEnter,
22297
22312
  onMouseleave: onRunWorkflowButtonMouseLeave,
22298
22313
  onClick: onRunWorkflow
22299
- }, null, 8, ["waiting-for-webhook", "disabled", "executing"]),
22314
+ }, null, 8, ["waiting-for-webhook", "disabled", "executing"])) : createCommentVNode("", true),
22300
22315
  containsChatTriggerNodes.value ? (openBlock(), createBlock(_component_CanvasChatButton, {
22301
- key: 0,
22316
+ key: 1,
22302
22317
  onClick: onOpenChat
22303
22318
  })) : createCommentVNode("", true),
22304
22319
  isStopExecutionButtonVisible.value ? (openBlock(), createBlock(_sfc_main$4, {
22305
- key: 1,
22320
+ key: 2,
22306
22321
  stopping: isStoppingExecution.value,
22307
22322
  onClick: onStopExecution
22308
22323
  }, null, 8, ["stopping"])) : createCommentVNode("", true),
22309
22324
  isStopWaitingForWebhookButtonVisible.value ? (openBlock(), createBlock(_sfc_main$3, {
22310
- key: 2,
22325
+ key: 3,
22311
22326
  onClick: onStopWaitingForWebhook
22312
22327
  })) : createCommentVNode("", true),
22313
22328
  isClearExecutionButtonVisible.value ? (openBlock(), createBlock(_sfc_main$2, {
22314
- key: 3,
22329
+ key: 4,
22315
22330
  onClick: onClearExecutionData
22316
22331
  })) : createCommentVNode("", true)
22317
22332
  ], 2)) : createCommentVNode("", true),
@@ -22345,7 +22360,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
22345
22360
  }))
22346
22361
  ]),
22347
22362
  _: 1
22348
- }, 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);
22349
22364
  };
22350
22365
  }
22351
22366
  });