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