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