n8n-editor-ui 1.50.2 → 1.51.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/@vue-flow/{background-D_Un7DUl.js → background-Dvxud2mg.js} +2 -2
- package/dist/assets/@vue-flow/{controls-BwRI_oge.js → controls-C3soidEc.js} +2 -2
- package/dist/assets/@vue-flow/{core-OODHovzO.js → core-CjwW6FwV.js} +10 -7
- package/dist/assets/@vue-flow/{minimap-BK2HcOSp.js → minimap-Bdd7TR2F.js} +2 -2
- package/dist/assets/@vue-flow/node-resizer-B3B5vubL.js +1398 -0
- package/dist/assets/@vueuse/{core-cLiG7CtG.js → core-DjbzQ1zB.js} +1 -1
- package/dist/assets/{AuthView-CtlY38-w.js → AuthView-DRT5E0j7.js} +4 -4
- package/dist/assets/{CanvasControls-C9YoqDJR.js → CanvasControls-BEPEvUZz.js} +9 -9
- package/dist/assets/{ChangePasswordView-BlNtNNZU.js → ChangePasswordView-B6Kle-xA.js} +10 -10
- package/dist/assets/{CredentialsView-BavOX_Y-.js → CredentialsView-C7j5Z_lQ.js} +12 -12
- package/dist/assets/{ErrorView-RDO1rShi.js → ErrorView-vcOop9tQ.js} +9 -9
- package/dist/assets/{ExecutionsFilter-rpjoJIGm.js → ExecutionsFilter-LCo0GAmp.js} +35 -38
- package/dist/assets/{ExecutionsView-5KEr9pkU.js → ExecutionsView-DgCsJkHs.js} +13 -13
- package/dist/assets/{FixedCollectionParameter-C5RRl4SC.js → FixedCollectionParameter-D8PZsjZ7.js} +3 -3
- package/dist/assets/{ForgotMyPasswordView-BlFHGuR4.js → ForgotMyPasswordView-BwULg5XE.js} +10 -10
- package/dist/assets/{MainHeader-S18kM4z0.js → MainHeader-BJ2UJFW-.js} +37 -37
- package/dist/assets/{MainSidebar-DOcJjnFZ.js → MainSidebar-DMosWD8y.js} +10 -10
- package/dist/assets/{NodeCreation-CgjwaWLn.js → NodeCreation-DDxu1Y6l.js} +6 -6
- package/dist/assets/{NodeCreator-cioFSjj3.css → NodeCreator-Bz15fuWb.css} +4 -4
- package/dist/assets/{NodeCreator-CsCRUDSU.js → NodeCreator-DZBT7PA7.js} +26 -27
- package/dist/assets/{NodeViewSwitcher-CP-fNo1R.js → NodeViewSwitcher-Cj2fR39Z.js} +1333 -812
- package/dist/assets/{NodeViewSwitcher-BCjS1poa.css → NodeViewSwitcher-IiB9O97Y.css} +120 -60
- package/dist/assets/{ProjectCardBadge-CJs8gnSr.js → ProjectCardBadge-CRC19wOw.js} +2 -2
- package/dist/assets/{ProjectSettings-C9AnZ3JJ.js → ProjectSettings-53Pcn7-c.js} +10 -10
- package/dist/assets/{ProjectTabs-Csi4kveM.js → ProjectTabs-N6Sen_A9.js} +3 -3
- package/dist/assets/{PushConnectionTracker-CjY2CFVp.js → PushConnectionTracker-9kLZUAmd.js} +4 -4
- package/dist/assets/{ResourcesListLayout-DolKzrqv.js → ResourcesListLayout-4ZyV48dM.js} +4 -4
- package/dist/assets/{RunDataAi-Dgvd1T5A.js → RunDataAi-BlypxkpJ.js} +9 -9
- package/dist/assets/{RunDataJson-BvbuRbkm.js → RunDataJson-D3tbV5-Q.js} +25 -24
- package/dist/assets/{RunDataJsonActions-CRxlduP1.js → RunDataJsonActions-BJorZIPD.js} +10 -10
- package/dist/assets/{RunDataSchema-DnEX9Ozj.js → RunDataSchema-Bf4JKHHb.js} +70 -53
- package/dist/assets/{RunDataSchema-DTbSxIk6.css → RunDataSchema-ECZtkGiE.css} +32 -32
- package/dist/assets/{RunDataSearch-LaoX-xfk.js → RunDataSearch-Cp1pkU7O.js} +9 -9
- package/dist/assets/{RunDataTable-CcjIMnur.js → RunDataTable-ChEosD0Y.js} +23 -22
- package/dist/assets/{SamlOnboarding-BLtHhldt.js → SamlOnboarding-D5NfxAPm.js} +10 -10
- package/dist/assets/{SettingsApiView-D9My75uB.js → SettingsApiView-B179mb9v.js} +9 -9
- package/dist/assets/{SettingsCommunityNodesView-C0o9UNrG.js → SettingsCommunityNodesView-BXNE35ob.js} +11 -11
- package/dist/assets/{SettingsExternalSecrets-DEBV49iR.js → SettingsExternalSecrets-BbpKRVzY.js} +9 -9
- package/dist/assets/{SettingsFakeDoorView-C91Nv-vT.js → SettingsFakeDoorView-C1GYorCU.js} +9 -9
- package/dist/assets/{SettingsLdapView-Dt3zpbzU.js → SettingsLdapView-BJsF9KYE.js} +11 -11
- package/dist/assets/{SettingsLogStreamingView-FqYF0lKj.js → SettingsLogStreamingView-CjyUXq_C.js} +9 -9
- package/dist/assets/SettingsPersonalView-DOP6H24I.js +402 -0
- package/dist/assets/{SettingsSourceControl-Dj99ZpIx.js → SettingsSourceControl-Bhe7aYbe.js} +9 -9
- package/dist/assets/{SettingsSso-DDSxPV0j.js → SettingsSso-B85P6txp.js} +9 -9
- package/dist/assets/{SettingsUsageAndPlan-LMTHHQd0.js → SettingsUsageAndPlan-nwxut4HR.js} +9 -9
- package/dist/assets/SettingsUsersView-D6IBchsu.js +353 -0
- package/dist/assets/{SettingsView-BV1IC0Uj.js → SettingsView-Bw5QCJbr.js} +10 -10
- package/dist/assets/{SetupView-DoAAw40L.js → SetupView-DVQlSRy3.js} +10 -10
- package/dist/assets/{SetupWorkflowCredentialsButton-D61YFBaI.js → SetupWorkflowCredentialsButton-Cl1OTBlm.js} +10 -10
- package/dist/assets/{SetupWorkflowFromTemplateView-BQDOBehz.js → SetupWorkflowFromTemplateView-BVoyeRhj.js} +11 -11
- package/dist/assets/{SigninView-CwY2LDtO.js → SigninView-B7S3auWJ.js} +10 -10
- package/dist/assets/{SignoutView-Cskf2wG3.js → SignoutView-CCcPeURb.js} +9 -9
- package/dist/assets/{SignupView-DrAgLFOE.js → SignupView-DfetV4tk.js} +10 -10
- package/dist/assets/{TemplateDetails-w9URSTXN.js → TemplateDetails-D_lZtt22.js} +36 -36
- package/dist/assets/{TemplateList-BjVG9MEA.js → TemplateList-BksgxBvk.js} +3 -3
- package/dist/assets/{TemplatesCollectionView-DkOK4hQv.js → TemplatesCollectionView-CCfvL_AJ.js} +13 -13
- package/dist/assets/{TemplatesSearchView-DWct8mW_.js → TemplatesSearchView-D_uGlQbS.js} +54 -56
- package/dist/assets/{TemplatesView-gPtADheZ.js → TemplatesView-D6mT1V9F.js} +27 -37
- package/dist/assets/{TemplatesWorkflowView-CelTCRiO.js → TemplatesWorkflowView-Bov6VKnS.js} +13 -13
- package/dist/assets/{TextWithHighlights-D4eF9kOt.js → TextWithHighlights-D2q_A9ZR.js} +2 -2
- package/dist/assets/{VariablesView-DZuqREBv.js → VariablesView-SXEho5Xd.js} +10 -10
- package/dist/assets/{WorkerView-C6GfZ2AT.js → WorkerView-D5Snu3Ck.js} +13 -13
- package/dist/assets/WorkflowActivator-CA_WNQj-.js +167 -0
- package/dist/assets/{WorkflowActivator-CXOAB341.css → WorkflowActivator-cE2ZZAM9.css} +2 -2
- package/dist/assets/{WorkflowExecutionsInfoAccordion-DfxlJPD3.js → WorkflowExecutionsInfoAccordion-BWQPaxdC.js} +4 -4
- package/dist/assets/{WorkflowExecutionsLandingPage-cTHedCKl.js → WorkflowExecutionsLandingPage-BPi3orDd.js} +10 -10
- package/dist/assets/{WorkflowExecutionsPreview-CJxvBdZG.js → WorkflowExecutionsPreview-CB4-swIp.js} +13 -13
- package/dist/assets/{WorkflowExecutionsView-l044DkMF.js → WorkflowExecutionsView-ioHxFetx.js} +14 -14
- package/dist/assets/{WorkflowHistory-L3d_rBSq.js → WorkflowHistory-DWwyBgOm.js} +11 -11
- package/dist/assets/{WorkflowOnboardingView-D-ekJftu.js → WorkflowOnboardingView-W4sm5jDt.js} +10 -10
- package/dist/assets/{WorkflowPreview-BybmGn17.js → WorkflowPreview-aQ9G8liu.js} +3 -3
- package/dist/assets/{WorkflowsView-C9Zt4__a.js → WorkflowsView-zpBAJBOL.js} +14 -14
- package/dist/assets/{cloud-BrS_dkJI.js → cloud-DAWml5Ow.js} +10 -10
- package/dist/assets/{dateFormatter-DqxIOphq.js → dateFormatter-Cz94F6Me.js} +1 -1
- package/dist/assets/{dateformat-B0XmVuvm.js → dateformat-BGxyBe2P.js} +1 -1
- package/dist/assets/email-providers-DbqVx1jr.js +1 -0
- package/dist/assets/{fast-json-stable-stringify-BkuDyKfx.js → fast-json-stable-stringify-Dwd4D7iT.js} +1 -1
- package/dist/assets/{file-saver-DmnSLJjs.js → file-saver-EX5V8lV4.js} +1 -1
- package/dist/assets/{humanize-duration-BATzEL0p.js → humanize-duration-DTXBersx.js} +1 -1
- package/dist/assets/{index-BGdiexS3.css → index-DQ-dNHi3.css} +134 -25
- package/dist/assets/{index-CHn9oFdm.js → index-Dw_hLuPQ.js} +1159 -1174
- package/dist/assets/{jsonpath-UEgivab5.js → jsonpath-vdx3Kmku.js} +1 -1
- package/dist/assets/{n8n-CwcFEeof.js → n8n-BZOg0o2s.js} +666 -593
- package/dist/assets/{pinia-BcU9Qewp.js → pinia-6fcdwe0b.js} +1 -1
- package/dist/assets/{pushConnection.store-By-nDT2Y.js → pushConnection.store-B3t7vH4m.js} +3 -3
- package/dist/assets/{qrcode.vue-DI7-KOl3.js → qrcode.vue-DO5L5sO1.js} +1 -1
- package/dist/assets/{templateActions-DMO7ww5h.js → templateActions-BjK-aTCL.js} +1 -1
- package/dist/assets/{useExecutionDebugging-KM-vw4jK.js → useExecutionDebugging-sbySCkVo.js} +2 -2
- package/dist/assets/{useExecutionHelpers-FWUIz1ob.js → useExecutionHelpers-Znkq_Mln.js} +2 -2
- package/dist/assets/{usePushConnection-C9sTBz3h.js → usePushConnection-CJIVxKID.js} +5 -5
- package/dist/assets/{useUserHelpers-U6F9HZS8.js → useUserHelpers-DBVmDRtr.js} +1 -1
- package/dist/assets/{useWorkflowActivate-BnEf28Z0.js → useWorkflowActivate-Dj5uE_-1.js} +2 -2
- package/dist/assets/{v3-infinite-loading-DAn86T_B.js → v3-infinite-loading-C4Fo1u2C.js} +1 -1
- package/dist/assets/{vendor-CqkvC5oQ.js → vendor-CMkNOP5U.js} +18 -17
- package/dist/assets/{vue-agile-DiVtruag.js → vue-agile-RIE3GEnw.js} +2 -2
- package/dist/assets/{vue-chartjs-CEoYgQDg.js → vue-chartjs-Bdp9pkPO.js} +1 -1
- package/dist/assets/{vue-i18n-CakRshnZ.js → vue-i18n-ia8PeNLb.js} +1 -1
- package/dist/assets/{vue-json-pretty-DP0y-sh1.js → vue-json-pretty-Smey0Oxa.js} +2 -2
- package/dist/assets/xss-DbqVx1jr.js +1 -0
- package/dist/index.html +11 -11
- package/package.json +1 -1
- package/dist/assets/SettingsPersonalView-CtqDkbBj.js +0 -415
- package/dist/assets/SettingsUsersView-CI6kXfqP.js +0 -366
- package/dist/assets/WorkflowActivator-9BijYvcu.js +0 -172
- package/dist/assets/email-providers-BXHlM8aX.js +0 -1
- package/dist/assets/xss-BXHlM8aX.js +0 -1
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
const __vite__fileDeps=["assets/RunDataTable-
|
|
2
|
-
import { a as ref, f as computed, b as watch, Z as defineComponent, ao as resolveComponent, J as openBlock, K as createElementBlock, I as createBaseVNode, a9 as createVNode, $ as normalizeClass, a4 as withCtx, a7 as createTextVNode, a8 as toDisplayString, V as createBlock, U as createCommentVNode, ah as withKeys, ad as withModifiers, n as nextTick,
|
|
3
|
-
import { a7 as useLocalStorage } from "./@vueuse/core-
|
|
4
|
-
import {
|
|
5
|
-
import { m as mapStores, s as storeToRefs, d as defineStore } from "./pinia-
|
|
1
|
+
const __vite__fileDeps=["assets/RunDataTable-ChEosD0Y.js","assets/vendor-CMkNOP5U.js","assets/pinia-6fcdwe0b.js","assets/index-Dw_hLuPQ.js","assets/axios-Cp0EV6RZ.js","assets/n8n-BZOg0o2s.js","assets/esprima-next-CPsTzYsC.js","assets/luxon-0uZhUj7B.js","assets/lodash-es-COViF6dG.js","assets/@vueuse/core-DjbzQ1zB.js","assets/uuid-sKupIUZ4.js","assets/n8n-HyitiRil.css","assets/flatted-D70IerrI.js","assets/@n8n/permissions-DSKt-Zl7.js","assets/dateformat-BGxyBe2P.js","assets/vue-i18n-ia8PeNLb.js","assets/@n8n/codemirror-lang-CIGGB1t0.js","assets/@lezer/common-CnY9etib.js","assets/@n8n/codemirror-lang-sql-C41WNa63.js","assets/prettier-_aQB57xD.js","assets/@jsplumb/util-BwtpiQ4c.js","assets/@jsplumb/core-B__RSZHf.js","assets/@jsplumb/common-s1StEx7B.js","assets/@jsplumb/connector-bezier-D659hq4c.js","assets/@jsplumb/browser-ui-BphmFVJY.js","assets/codemirror-lang-html-n8n-CXTCIWzP.js","assets/fast-json-stable-stringify-Dwd4D7iT.js","assets/timeago.js-CgQus8nl.js","assets/qrcode.vue-DO5L5sO1.js","assets/vue3-touch-events-DVOgU3fI.js","assets/chart.js-DiBOFLDH.js","assets/index-DQ-dNHi3.css","assets/TextWithHighlights-D2q_A9ZR.js","assets/TextWithHighlights-D6qDtZxR.css","assets/useExecutionDebugging-sbySCkVo.js","assets/file-saver-EX5V8lV4.js","assets/vue-json-pretty-Smey0Oxa.js","assets/dateFormatter-Cz94F6Me.js","assets/RunDataAi-BlypxkpJ.js","assets/RunDataAi-HUzSX62R.css","assets/useWorkflowActivate-Dj5uE_-1.js","assets/pushConnection.store-B3t7vH4m.js","assets/@vue-flow/core-CjwW6FwV.js","assets/@vue-flow/background-Dvxud2mg.js","assets/@vue-flow/controls-C3soidEc.js","assets/@vue-flow/minimap-Bdd7TR2F.js","assets/@vue-flow/node-resizer-B3B5vubL.js","assets/RunDataTable-ZwoYenSI.css","assets/RunDataJson-D3tbV5-Q.js","assets/RunDataJson-DGge2zsB.css","assets/RunDataSchema-Bf4JKHHb.js","assets/RunDataSchema-ECZtkGiE.css","assets/RunDataSearch-Cp1pkU7O.js","assets/RunDataSearch-BA0wlJtp.css","assets/NodeCreation-DDxu1Y6l.js","assets/NodeCreation-DZWp-d3f.css","assets/CanvasControls-BEPEvUZz.js","assets/CanvasControls-CdlXdkgj.css","assets/SetupWorkflowCredentialsButton-Cl1OTBlm.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
|
|
2
|
+
import { a as ref, f as computed, b as watch, Z as defineComponent, ao as resolveComponent, J as openBlock, K as createElementBlock, I as createBaseVNode, a9 as createVNode, $ as normalizeClass, a4 as withCtx, a7 as createTextVNode, a8 as toDisplayString, V as createBlock, U as createCommentVNode, ah as withKeys, ad as withModifiers, n as nextTick, aM as useRouter, aB as pushScopeId, aC as popScopeId, R as Fragment, ag as renderList, av as resolveDirective, a5 as withDirectives, a0 as normalizeStyle, a1 as mergeProps, aa as vShow, _ as renderSlot, Y as Teleport, a6 as resolveDynamicComponent, q as onMounted, m as onBeforeUnmount, a2 as useSlots, u as unref, j as toRef, aP as defineAsyncComponent, aR as Suspense, ai as createSlots, L as createStaticVNode, a3 as Transition, k as getCurrentInstance, i as inject, aA as useCssModule, X as h, p as provide, x as onUnmounted, aE as useRoute, aW as onBeforeRouteLeave, l as onBeforeMount } from "./vendor-CMkNOP5U.js";
|
|
3
|
+
import { a7 as useLocalStorage } from "./@vueuse/core-DjbzQ1zB.js";
|
|
4
|
+
import { ai as useDeviceSupport, _ as _export_sfc, N as NodeConnectionType, an as nodeIssuesToString, m as getNodeInputs, k as getConnectionTypes, ao as isSingleExecution, f as deepCopy, o as getNodeParameters, ap as isINodePropertyCollectionList, aq as isINodePropertiesList, ar as isINodePropertyOptionsList, ad as displayParameter, as as sanitizeHtml, at as sanitizeHtml_1, j as jsonParse, h as getNodeOutputs, au as getNodeHints, e as __vitePreload, b as createEventBus, av as N8nActionDropdown, am as FontAwesomeIcon, x as xss, n as nodeConnectionTypes, aw as generateNodesGraph, M as N8nTooltip } from "./n8n-BZOg0o2s.js";
|
|
5
|
+
import { m as mapStores, s as storeToRefs, d as defineStore } from "./pinia-6fcdwe0b.js";
|
|
6
6
|
import { _ as INTERCEPT_BEFORE_DROP, $ as EVENT_CONNECTION, a0 as EVENT_CONNECTION_MOVED, a1 as EVENT_CONNECTION_DETACHED } from "./@jsplumb/core-B__RSZHf.js";
|
|
7
|
-
import { e as useUIStore, a2 as useNodeTypesStore, m as useWorkflowsStore, l as useSourceControlStore, v as useI18n, a3 as NOT_DUPLICATABLE_NODE_TYPES, a4 as getMousePosition, L as STICKY_NODE_TYPE, a5 as usePinnedData, k as useCanvasStore, a6 as getRelativePosition, a7 as _sfc_main$
|
|
8
|
-
import { u as useExecutionDebugging } from "./useExecutionDebugging-
|
|
7
|
+
import { e as useUIStore, a2 as useNodeTypesStore, m as useWorkflowsStore, l as useSourceControlStore, v as useI18n, a3 as NOT_DUPLICATABLE_NODE_TYPES, a4 as getMousePosition, L as STICKY_NODE_TYPE, a5 as usePinnedData, k as useCanvasStore, a6 as getRelativePosition, a7 as _sfc_main$O, J as useNDVStore, a8 as isCommunityPackageName, a9 as NPM_PACKAGE_DOCS_BASE_URL, aa as BUILTIN_NODES_DOCS_URL, ab as COMMUNITY_NODES_INSTALLATION_DOCS_URL, a1 as useExternalHooks, w as useTelemetry, ac as useClipboard, p as useWorkflowHelpers, u as useToast, ad as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, ae as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, af as FORM_TRIGGER_NODE_TYPE, ag as CHAT_TRIGGER_NODE_TYPE, ah as useNodeHelpers, d as useDebounce, ai as TitledList, aj as useRunWorkflow, x as useMessage, ak as MANUAL_TRIGGER_NODE_TYPE, al as WEBHOOK_NODE_TYPE, A as nodeViewEventBus, C as MODAL_CONFIRM, am as NodeCredentials, an as _sfc_main$P, ao as useWorkflowsEEStore, ap as useCredentialsStore, aq as useHistoryStore, ar as CUSTOM_NODES_DOCS_URL, as as MAIN_NODE_PANEL_WIDTH, at as importCurlEventBus, au as RenameNodeCommand, av as SHOULD_CLEAR_NODE_OUTPUTS, aw as isPresent, ax as ndvEventBus, R as useStorage, ay as LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH, j as useRootStore, az as MAX_DISPLAY_DATA_SIZE, aA as sanitizeHtml$1, aB as JsonEditor, aC as MAX_DISPLAY_DATA_SIZE_SCHEMA_VIEW, aD as MAX_DISPLAY_ITEMS_AUTO_ALL, aE as DATA_PINNING_DOCS_URL, aF as DATA_EDITING_DOCS_URL, aG as HTML_NODE_TYPE, aH as executionDataToJson, aI as NODE_TYPES_EXCLUDED_FROM_OUTPUT_NAME_APPEND, aJ as isEmpty, aK as LOCAL_STORAGE_PIN_DATA_DISCOVERY_NDV_FLAG, aL as dataPinningEventBus, aM as LOCAL_STORAGE_PIN_DATA_DISCOVERY_CANVAS_FLAG, aN as clearJsonKey, aO as searchInObject, aP as TEST_PIN_DATA, aQ as useNodeType, aR as START_NODE_TYPE, aS as CRON_NODE_TYPE, aT as INTERVAL_NODE_TYPE, aU as CopyInput, aV as isTriggerPanelObject, aW as getTriggerNodeServiceName, V as VIEWS, F as WORKFLOW_SETTINGS_MODAL_KEY, b as useSettingsStore, aX as EXECUTABLE_TRIGGER_NODE_TYPES, aY as BASE_NODE_SURVEY_URL, E as EnterpriseEditionFeature, aZ as NODE_CONNECTION_TYPE_ALLOW_MULTIPLE, a_ as getAnchorPosition, a$ as isValidNodeConnectionType, b0 as getEndpointScope, b1 as getInputEndpointUUID, b2 as getInputEndpointStyle, b3 as getScope, b4 as getInputNameOverlay, b5 as NODE_INSERT_SPACER_BETWEEN_INPUT_GROUPS, b6 as NODE_MIN_INPUT_ITEMS_COUNT, b7 as getOutputEndpointUUID, b8 as getOutputEndpointStyle, b9 as getOutputNameOverlay, ba as NO_OP_NODE_TYPE, bb as WAIT_TIME_UNLIMITED, bc as SIMULATE_NODE_TYPE, bd as SIMULATE_TRIGGER_NODE_TYPE, be as CUSTOM_API_CALL_KEY, bf as EnableNodeToggleCommand, bg as GRID_SIZE, bh as isString, bi as isNumber, bj as assert, bk as QUICKSTART_NOTE_NAME, bl as CORE_NODES_CATEGORY, bm as DEFAULT_SUBCATEGORY, bn as AI_SUBCATEGORY, bo as AI_CATEGORY_AGENTS, bp as i18n, Z as useTemplatesStore, bq as AI_CATEGORY_CHAINS, br as AI_NODE_CREATOR_VIEW, bs as AI_OTHERS_NODE_CREATOR_VIEW, bt as AI_CATEGORY_DOCUMENT_LOADERS, bu as AI_CATEGORY_LANGUAGE_MODELS, bv as AI_CATEGORY_MEMORY, bw as AI_CATEGORY_OUTPUTPARSER, bx as AI_CATEGORY_RETRIEVERS, by as AI_CATEGORY_TEXT_SPLITTERS, bz as AI_CATEGORY_TOOLS, bA as AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, bB as AI_CODE_TOOL_LANGCHAIN_NODE_TYPE, bC as AI_CATEGORY_EMBEDDING, bD as AI_CATEGORY_VECTOR_STORES, bE as AI_UNCATEGORIZED_CATEGORY, bF as TRIGGER_NODE_CREATOR_VIEW, bG as EMAIL_IMAP_NODE_TYPE, bH as SCHEDULE_TRIGGER_NODE_TYPE, bI as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, bJ as MANUAL_CHAT_TRIGGER_NODE_TYPE, bK as OTHER_TRIGGER_NODES_SUBCATEGORY, bL as REGULAR_NODE_CREATOR_VIEW, bM as RSS_READ_NODE_TYPE, bN as EMAIL_SEND_NODE_TYPE, bO as TRANSFORM_DATA_SUBCATEGORY, bP as SET_NODE_TYPE, bQ as CODE_NODE_TYPE, bR as DATETIME_NODE_TYPE, bS as FILTER_NODE_TYPE, bT as REMOVE_DUPLICATES_NODE_TYPE, bU as SPLIT_OUT_NODE_TYPE, bV as LIMIT_NODE_TYPE, bW as SUMMARIZE_NODE_TYPE, bX as AGGREGATE_NODE_TYPE, bY as MERGE_NODE_TYPE, bZ as MARKDOWN_NODE_TYPE, b_ as XML_NODE_TYPE, b$ as CRYPTO_NODE_TYPE, c0 as EXTRACT_FROM_FILE_NODE_TYPE, c1 as CONVERT_TO_FILE_NODE_TYPE, c2 as COMPRESSION_NODE_TYPE, c3 as EDIT_IMAGE_NODE_TYPE, c4 as FLOWS_CONTROL_SUBCATEGORY, c5 as IF_NODE_TYPE, c6 as SPLIT_IN_BATCHES_NODE_TYPE, c7 as HELPERS_SUBCATEGORY, c8 as HTTP_REQUEST_NODE_TYPE, c9 as AI_CATEGORY_ROOT_NODES, ca as AI_CODE_NODE_TYPE, cb as CanvasConnectionMode, cc as isValidCanvasConnectionMode, cd as PUSH_NODES_OFFSET, O as STORES, ce as NODE_CREATOR_OPEN_SOURCES, cf as isVueFlowConnection, cg as MOUSE_EVENT_BUTTON, ch as MOUSE_EVENT_BUTTONS, ci as KeyboardShortcutTooltip, cj as getNodeViewTab, I as MAIN_HEADER_TABS, P as PLACEHOLDER_EMPTY_WORKFLOW_ID, ck as MODAL_CANCEL, cl as useGlobalLinkActions, y as useTitleChange, o as useNpsSurveyStore, n as useProjectsStore, K as useExecutionsStore, cm as useExternalSecretsStore, cn as useEnvironmentsStore, a as useUsersStore, c as useTagsStore, co as getBackgroundStyles, X as sourceControlEventBus, cp as historyBus, cq as WORKFLOW_LM_CHAT_MODAL_KEY, cr as N8nAddInputEndpointType, cs as getFixedNodesList, ct as tryToParseNumber, cu as MoveNodeCommand, cv as UPDATE_WEBHOOK_ID_NODE_TYPES, cw as getNewNodePosition, cx as DRAG_EVENT_DATA_KEY, cy as MAX_X_TO_PUSH_DOWNSTREAM_NODES, cz as NODE_SIZE, cA as resetConnectionAfterPull, cB as resetConnection, cC as moveBackInputLabelPosition, cD as hideOutputNameLabel, cE as addConnectionActionsOverlay, cF as getOverlay, cG as OVERLAY_ENDPOINT_ARROW_ID, cH as getConnectorPaintStyleData, cI as AddConnectionCommand, cJ as addConnectionTestData, cK as showOrHideItemsLabel, cL as showOrHideMidpointArrow, cM as isJSPlumbConnection, cN as hideConnectionActions, cO as showConnectionActions, cP as resetInputLabelPosition, cQ as getConnectionInfo, cR as showOutputNameLabel, cS as RemoveConnectionCommand, cT as isJSPlumbEndpointElement, cU as EVENT_PLUS_ENDPOINT_CLICK, cV as EVENT_ADD_INPUT_ENDPOINT_CLICK, cW as N8nPlusEndpointType, cX as usePostHog, cY as CANVAS_AUTO_ADD_MANUAL_TRIGGER_EXPERIMENT, cZ as addClassesToOverlays, c_ as OVERLAY_RUN_ITEMS_ID, c$ as getJSPlumbEndpoints, d0 as RemoveNodeCommand, d1 as useDataSchema, d2 as getConnectorLengths, d3 as isElementIntersection, d4 as calculateElementIntersection, d5 as showDropConnectionState, d6 as showPullConnectionState, d7 as CanvasNodeKey, d8 as CanvasNodeRenderType, d9 as CanvasNodeHandleKey, da as AddNodeCommand } from "./index-Dw_hLuPQ.js";
|
|
8
|
+
import { u as useExecutionDebugging } from "./useExecutionDebugging-sbySCkVo.js";
|
|
9
9
|
import { g as get, s as set, A as unset, e as isEqual, y as isObject, B as sortBy, C as difference } from "./lodash-es-COViF6dG.js";
|
|
10
|
-
import { F as FileSaver_minExports } from "./file-saver-
|
|
11
|
-
import { V as VueJsonPretty } from "./vue-json-pretty-
|
|
12
|
-
import { c as convertToDisplayDateComponents } from "./dateFormatter-
|
|
13
|
-
import RunDataAi from "./RunDataAi-
|
|
14
|
-
import { u as useWorkflowActivate } from "./useWorkflowActivate-
|
|
10
|
+
import { F as FileSaver_minExports } from "./file-saver-EX5V8lV4.js";
|
|
11
|
+
import { V as VueJsonPretty } from "./vue-json-pretty-Smey0Oxa.js";
|
|
12
|
+
import { c as convertToDisplayDateComponents } from "./dateFormatter-Cz94F6Me.js";
|
|
13
|
+
import RunDataAi from "./RunDataAi-BlypxkpJ.js";
|
|
14
|
+
import { u as useWorkflowActivate } from "./useWorkflowActivate-Dj5uE_-1.js";
|
|
15
15
|
import { v as v4 } from "./uuid-sKupIUZ4.js";
|
|
16
|
-
import { u as usePushConnectionStore } from "./pushConnection.store-
|
|
16
|
+
import { u as usePushConnectionStore } from "./pushConnection.store-B3t7vH4m.js";
|
|
17
17
|
import { g as ready, f as EVENT_CONNECTION_ABORT, h as EVENT_DRAG_MOVE, a as EVENT_CONNECTION_MOUSEOVER, E as EVENT_CONNECTION_MOUSEOUT, b as EVENT_ENDPOINT_MOUSEOVER, d as EVENT_ENDPOINT_MOUSEOUT, i as EVENT_CONNECTION_DRAG } from "./@jsplumb/browser-ui-BphmFVJY.js";
|
|
18
|
-
import {
|
|
19
|
-
import { _ as _sfc_main$
|
|
20
|
-
import { _ as _sfc_main$
|
|
21
|
-
import { _ as _sfc_main$
|
|
18
|
+
import { e as _sfc_main$f$1, f as Position, h as getBezierPath, i as _sfc_main$d$1, j as _sfc_main$3$1, P as PanelPosition, u as useVueFlow, k as _sfc_main$1$1 } from "./@vue-flow/core-CjwW6FwV.js";
|
|
19
|
+
import { _ as _sfc_main$R } from "./@vue-flow/background-Dvxud2mg.js";
|
|
20
|
+
import { _ as _sfc_main$T } from "./@vue-flow/controls-C3soidEc.js";
|
|
21
|
+
import { _ as _sfc_main$S } from "./@vue-flow/minimap-Bdd7TR2F.js";
|
|
22
|
+
import { _ as _sfc_main$Q } from "./@vue-flow/node-resizer-B3B5vubL.js";
|
|
22
23
|
const position = ref([0, 0]);
|
|
23
24
|
const isOpen = ref(false);
|
|
24
25
|
const target = ref({ source: "canvas" });
|
|
@@ -432,7 +433,7 @@ function useUniqueNodeName() {
|
|
|
432
433
|
}
|
|
433
434
|
return { uniqueNodeName };
|
|
434
435
|
}
|
|
435
|
-
const _sfc_main$
|
|
436
|
+
const _sfc_main$N = /* @__PURE__ */ defineComponent({
|
|
436
437
|
__name: "NodeTitle",
|
|
437
438
|
props: {
|
|
438
439
|
modelValue: { default: "" },
|
|
@@ -475,7 +476,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
|
|
|
475
476
|
createBaseVNode("span", {
|
|
476
477
|
class: normalizeClass(_ctx.$style.iconWrapper)
|
|
477
478
|
}, [
|
|
478
|
-
createVNode(_sfc_main$
|
|
479
|
+
createVNode(_sfc_main$O, {
|
|
479
480
|
"node-type": _ctx.nodeType,
|
|
480
481
|
size: 18
|
|
481
482
|
}, null, 8, ["node-type"])
|
|
@@ -562,7 +563,7 @@ const iconWrapper = "_iconWrapper_9bi3m_26";
|
|
|
562
563
|
const editIconContainer = "_editIconContainer_9bi3m_39";
|
|
563
564
|
const editButtons = "_editButtons_9bi3m_45";
|
|
564
565
|
const editContainer = "_editContainer_9bi3m_53";
|
|
565
|
-
const style0$
|
|
566
|
+
const style0$t = {
|
|
566
567
|
container: container$3,
|
|
567
568
|
title: title$3,
|
|
568
569
|
hoverable,
|
|
@@ -572,11 +573,11 @@ const style0$r = {
|
|
|
572
573
|
editButtons,
|
|
573
574
|
editContainer
|
|
574
575
|
};
|
|
575
|
-
const cssModules$
|
|
576
|
-
"$style": style0$
|
|
576
|
+
const cssModules$v = {
|
|
577
|
+
"$style": style0$t
|
|
577
578
|
};
|
|
578
|
-
const NodeTitle = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
579
|
-
const _sfc_main$
|
|
579
|
+
const NodeTitle = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__cssModules", cssModules$v]]);
|
|
580
|
+
const _sfc_main$M = /* @__PURE__ */ defineComponent({
|
|
580
581
|
__name: "NodeSettingsTabs",
|
|
581
582
|
props: {
|
|
582
583
|
modelValue: { default: "params" },
|
|
@@ -702,7 +703,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
|
|
|
702
703
|
};
|
|
703
704
|
}
|
|
704
705
|
});
|
|
705
|
-
const _sfc_main$
|
|
706
|
+
const _sfc_main$L = defineComponent({
|
|
706
707
|
name: "NodeWebhooks",
|
|
707
708
|
props: [
|
|
708
709
|
"node",
|
|
@@ -850,12 +851,12 @@ const _sfc_main$I = defineComponent({
|
|
|
850
851
|
}
|
|
851
852
|
});
|
|
852
853
|
const _withScopeId$6 = (n) => (pushScopeId("data-v-36c5dbc7"), n = n(), popScopeId(), n);
|
|
853
|
-
const _hoisted_1$
|
|
854
|
+
const _hoisted_1$n = {
|
|
854
855
|
key: 0,
|
|
855
856
|
class: "webhooks"
|
|
856
857
|
};
|
|
857
858
|
const _hoisted_2$g = ["title"];
|
|
858
|
-
const _hoisted_3$
|
|
859
|
+
const _hoisted_3$c = {
|
|
859
860
|
key: 0,
|
|
860
861
|
class: "node-webhooks"
|
|
861
862
|
};
|
|
@@ -880,14 +881,14 @@ const _hoisted_12$2 = {
|
|
|
880
881
|
const _hoisted_13$2 = { class: "url-field-full-width" };
|
|
881
882
|
const _hoisted_14$2 = ["onClick"];
|
|
882
883
|
const _hoisted_15$2 = /* @__PURE__ */ _withScopeId$6(() => /* @__PURE__ */ createBaseVNode("br", null, null, -1));
|
|
883
|
-
function _sfc_render$
|
|
884
|
+
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
884
885
|
const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
|
|
885
886
|
const _component_n8n_radio_buttons = resolveComponent("n8n-radio-buttons");
|
|
886
887
|
const _component_el_col = resolveComponent("el-col");
|
|
887
888
|
const _component_el_row = resolveComponent("el-row");
|
|
888
889
|
const _component_n8n_tooltip = resolveComponent("n8n-tooltip");
|
|
889
890
|
const _component_el_collapse_transition = resolveComponent("el-collapse-transition");
|
|
890
|
-
return _ctx.webhooksNode.length && _ctx.visibleWebhookUrls.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
891
|
+
return _ctx.webhooksNode.length && _ctx.visibleWebhookUrls.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$n, [
|
|
891
892
|
createBaseVNode("div", {
|
|
892
893
|
class: normalizeClass(["clickable headline", { expanded: !_ctx.isMinimized }]),
|
|
893
894
|
title: _ctx.isMinimized ? _ctx.baseText.clickToDisplay : _ctx.baseText.clickToHide,
|
|
@@ -901,7 +902,7 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
901
902
|
], 10, _hoisted_2$g),
|
|
902
903
|
createVNode(_component_el_collapse_transition, null, {
|
|
903
904
|
default: withCtx(() => [
|
|
904
|
-
!_ctx.isMinimized ? (openBlock(), createElementBlock("div", _hoisted_3$
|
|
905
|
+
!_ctx.isMinimized ? (openBlock(), createElementBlock("div", _hoisted_3$c, [
|
|
905
906
|
!_ctx.isProductionOnly ? (openBlock(), createElementBlock("div", _hoisted_4$8, [
|
|
906
907
|
createVNode(_component_el_row, null, {
|
|
907
908
|
default: withCtx(() => [
|
|
@@ -964,14 +965,14 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
964
965
|
})
|
|
965
966
|
])) : createCommentVNode("", true);
|
|
966
967
|
}
|
|
967
|
-
const NodeWebhooks = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
968
|
-
const _hoisted_1$
|
|
968
|
+
const NodeWebhooks = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["render", _sfc_render$c], ["__scopeId", "data-v-36c5dbc7"]]);
|
|
969
|
+
const _hoisted_1$m = ["data-test-id"];
|
|
969
970
|
const _hoisted_2$f = ["textContent"];
|
|
970
|
-
const _hoisted_3$
|
|
971
|
+
const _hoisted_3$b = ["onClick"];
|
|
971
972
|
const _hoisted_4$7 = ["onClick"];
|
|
972
973
|
const _hoisted_5$8 = ["data-node-name"];
|
|
973
974
|
const _hoisted_6$7 = ["onClick"];
|
|
974
|
-
const _sfc_main$
|
|
975
|
+
const _sfc_main$K = /* @__PURE__ */ defineComponent({
|
|
975
976
|
__name: "NDVSubConnections",
|
|
976
977
|
props: {
|
|
977
978
|
rootNode: {}
|
|
@@ -1204,7 +1205,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
|
|
|
1204
1205
|
class: normalizeClass(_ctx.$style.connectedNode),
|
|
1205
1206
|
onClick: ($event) => onNodeClick(node2.node.name, connection.type)
|
|
1206
1207
|
}, [
|
|
1207
|
-
createVNode(_sfc_main$
|
|
1208
|
+
createVNode(_sfc_main$O, {
|
|
1208
1209
|
"node-type": node2.nodeType,
|
|
1209
1210
|
"node-name": node2.node.name,
|
|
1210
1211
|
"tooltip-position": "top",
|
|
@@ -1218,11 +1219,11 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
|
|
|
1218
1219
|
], 14, _hoisted_5$8);
|
|
1219
1220
|
}), 128))
|
|
1220
1221
|
], 2)) : createCommentVNode("", true)
|
|
1221
|
-
], 14, _hoisted_3$
|
|
1222
|
+
], 14, _hoisted_3$b)), [
|
|
1222
1223
|
[_directive_on_click_outside, () => expandConnectionGroup(connection.type, false)]
|
|
1223
1224
|
])
|
|
1224
1225
|
], 2)
|
|
1225
|
-
], 8, _hoisted_1$
|
|
1226
|
+
], 8, _hoisted_1$m);
|
|
1226
1227
|
}), 128))
|
|
1227
1228
|
], 6)
|
|
1228
1229
|
], 2);
|
|
@@ -1241,7 +1242,7 @@ const connectedNodesMultiple = "_connectedNodesMultiple_tfxh3_87";
|
|
|
1241
1242
|
const connectedNode$1 = "_connectedNode_tfxh3_55";
|
|
1242
1243
|
const connectedNodes = "_connectedNodes_tfxh3_55";
|
|
1243
1244
|
const nodeWrapper = "_nodeWrapper_tfxh3_125";
|
|
1244
|
-
const style0$
|
|
1245
|
+
const style0$s = {
|
|
1245
1246
|
container: container$2,
|
|
1246
1247
|
connections,
|
|
1247
1248
|
connectionType,
|
|
@@ -1256,14 +1257,14 @@ const style0$q = {
|
|
|
1256
1257
|
connectedNodes,
|
|
1257
1258
|
nodeWrapper
|
|
1258
1259
|
};
|
|
1259
|
-
const cssModules$
|
|
1260
|
-
"$style": style0$
|
|
1260
|
+
const cssModules$u = {
|
|
1261
|
+
"$style": style0$s
|
|
1261
1262
|
};
|
|
1262
|
-
const NDVSubConnections = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
1263
|
+
const NDVSubConnections = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__cssModules", cssModules$u]]);
|
|
1263
1264
|
const NODE_TEST_STEP_POPUP_COUNT_KEY = "N8N_NODE_TEST_STEP_POPUP_COUNT";
|
|
1264
1265
|
const MAX_POPUP_COUNT = 10;
|
|
1265
1266
|
const POPUP_UPDATE_DELAY = 3e3;
|
|
1266
|
-
const _sfc_main$
|
|
1267
|
+
const _sfc_main$J = defineComponent({
|
|
1267
1268
|
inheritAttrs: false,
|
|
1268
1269
|
props: {
|
|
1269
1270
|
nodeName: {
|
|
@@ -1496,7 +1497,7 @@ const _sfc_main$G = defineComponent({
|
|
|
1496
1497
|
}
|
|
1497
1498
|
}
|
|
1498
1499
|
});
|
|
1499
|
-
function _sfc_render$
|
|
1500
|
+
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
1500
1501
|
const _component_n8n_button = resolveComponent("n8n-button");
|
|
1501
1502
|
const _component_n8n_tooltip = resolveComponent("n8n-tooltip");
|
|
1502
1503
|
return openBlock(), createElementBlock("div", null, [
|
|
@@ -1527,14 +1528,14 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1527
1528
|
}, 8, ["disabled"])
|
|
1528
1529
|
]);
|
|
1529
1530
|
}
|
|
1530
|
-
const NodeExecuteButton = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
1531
|
-
const _sfc_main$
|
|
1531
|
+
const NodeExecuteButton = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["render", _sfc_render$b]]);
|
|
1532
|
+
const _sfc_main$I = defineComponent({
|
|
1532
1533
|
name: "NodeSettings",
|
|
1533
1534
|
components: {
|
|
1534
1535
|
NodeTitle,
|
|
1535
1536
|
NodeCredentials,
|
|
1536
|
-
ParameterInputList: _sfc_main$
|
|
1537
|
-
NodeSettingsTabs: _sfc_main$
|
|
1537
|
+
ParameterInputList: _sfc_main$P,
|
|
1538
|
+
NodeSettingsTabs: _sfc_main$M,
|
|
1538
1539
|
NodeWebhooks,
|
|
1539
1540
|
NDVSubConnections,
|
|
1540
1541
|
NodeExecuteButton
|
|
@@ -2337,15 +2338,15 @@ const _sfc_main$F = defineComponent({
|
|
|
2337
2338
|
const header$2 = "_header_1pn0y_1";
|
|
2338
2339
|
const warningIcon = "_warningIcon_1pn0y_5";
|
|
2339
2340
|
const descriptionContainer = "_descriptionContainer_1pn0y_10";
|
|
2340
|
-
const style0$
|
|
2341
|
+
const style0$r = {
|
|
2341
2342
|
header: header$2,
|
|
2342
2343
|
warningIcon,
|
|
2343
2344
|
descriptionContainer
|
|
2344
2345
|
};
|
|
2345
2346
|
const _withScopeId$5 = (n) => (pushScopeId("data-v-6b8146a9"), n = n(), popScopeId(), n);
|
|
2346
|
-
const _hoisted_1$
|
|
2347
|
+
const _hoisted_1$l = { class: "header-side-menu" };
|
|
2347
2348
|
const _hoisted_2$e = { key: 1 };
|
|
2348
|
-
const _hoisted_3$
|
|
2349
|
+
const _hoisted_3$a = {
|
|
2349
2350
|
key: 0,
|
|
2350
2351
|
class: "node-is-not-valid"
|
|
2351
2352
|
};
|
|
@@ -2371,7 +2372,7 @@ const _hoisted_11$2 = {
|
|
|
2371
2372
|
class: "node-version",
|
|
2372
2373
|
"data-test-id": "node-version"
|
|
2373
2374
|
};
|
|
2374
|
-
function _sfc_render$
|
|
2375
|
+
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
2375
2376
|
var _a, _b;
|
|
2376
2377
|
const _component_NodeTitle = resolveComponent("NodeTitle");
|
|
2377
2378
|
const _component_NodeExecuteButton = resolveComponent("NodeExecuteButton");
|
|
@@ -2397,7 +2398,7 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2397
2398
|
createBaseVNode("div", {
|
|
2398
2399
|
class: normalizeClass(_ctx.$style.header)
|
|
2399
2400
|
}, [
|
|
2400
|
-
createBaseVNode("div", _hoisted_1$
|
|
2401
|
+
createBaseVNode("div", _hoisted_1$l, [
|
|
2401
2402
|
_ctx.node ? (openBlock(), createBlock(_component_NodeTitle, {
|
|
2402
2403
|
key: 0,
|
|
2403
2404
|
class: "node-name",
|
|
@@ -2428,7 +2429,7 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2428
2429
|
"onUpdate:modelValue": _ctx.onTabSelect
|
|
2429
2430
|
}, null, 8, ["model-value", "node-type", "push-ref", "onUpdate:modelValue"])) : createCommentVNode("", true)
|
|
2430
2431
|
], 2),
|
|
2431
|
-
_ctx.node && !_ctx.nodeValid ? (openBlock(), createElementBlock("div", _hoisted_3$
|
|
2432
|
+
_ctx.node && !_ctx.nodeValid ? (openBlock(), createElementBlock("div", _hoisted_3$a, [
|
|
2432
2433
|
createBaseVNode("p", {
|
|
2433
2434
|
class: normalizeClass(_ctx.$style.warningIcon)
|
|
2434
2435
|
}, [
|
|
@@ -2588,11 +2589,11 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2588
2589
|
createVNode(_component_n8n_block_ui, { show: _ctx.blockUI }, null, 8, ["show"])
|
|
2589
2590
|
], 34);
|
|
2590
2591
|
}
|
|
2591
|
-
const cssModules$
|
|
2592
|
-
"$style": style0$
|
|
2592
|
+
const cssModules$t = {
|
|
2593
|
+
"$style": style0$r
|
|
2593
2594
|
};
|
|
2594
|
-
const NodeSettings = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
2595
|
-
const _sfc_main$
|
|
2595
|
+
const NodeSettings = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["render", _sfc_render$a], ["__cssModules", cssModules$t], ["__scopeId", "data-v-6b8146a9"]]);
|
|
2596
|
+
const _sfc_main$H = /* @__PURE__ */ defineComponent({
|
|
2596
2597
|
__name: "Draggable",
|
|
2597
2598
|
props: {
|
|
2598
2599
|
type: {},
|
|
@@ -2715,16 +2716,16 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
|
|
|
2715
2716
|
});
|
|
2716
2717
|
const dragging$1 = "_dragging_r2v9t_1";
|
|
2717
2718
|
const draggable$1 = "_draggable_r2v9t_6";
|
|
2718
|
-
const style0$
|
|
2719
|
+
const style0$q = {
|
|
2719
2720
|
dragging: dragging$1,
|
|
2720
2721
|
draggable: draggable$1,
|
|
2721
2722
|
"draggable-data-transfer": "_draggable-data-transfer_r2v9t_14"
|
|
2722
2723
|
};
|
|
2723
|
-
const cssModules$
|
|
2724
|
-
"$style": style0$
|
|
2724
|
+
const cssModules$s = {
|
|
2725
|
+
"$style": style0$q
|
|
2725
2726
|
};
|
|
2726
|
-
const Draggable = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
2727
|
-
const _sfc_main$
|
|
2727
|
+
const Draggable = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__cssModules", cssModules$s]]);
|
|
2728
|
+
const _sfc_main$G = defineComponent({
|
|
2728
2729
|
components: {
|
|
2729
2730
|
Draggable
|
|
2730
2731
|
},
|
|
@@ -2755,7 +2756,7 @@ const rightArrow = "_rightArrow_1fum9_20 _arrow_1fum9_28";
|
|
|
2755
2756
|
const visible$1 = "_visible_1fum9_24";
|
|
2756
2757
|
const arrow = "_arrow_1fum9_28";
|
|
2757
2758
|
const grid = "_grid_1fum9_46";
|
|
2758
|
-
const style0$
|
|
2759
|
+
const style0$p = {
|
|
2759
2760
|
dragContainer,
|
|
2760
2761
|
dragButton,
|
|
2761
2762
|
leftArrow,
|
|
@@ -2764,7 +2765,7 @@ const style0$n = {
|
|
|
2764
2765
|
arrow,
|
|
2765
2766
|
grid
|
|
2766
2767
|
};
|
|
2767
|
-
const _hoisted_1$
|
|
2768
|
+
const _hoisted_1$k = /* @__PURE__ */ createBaseVNode("div", null, [
|
|
2768
2769
|
/* @__PURE__ */ createBaseVNode("div"),
|
|
2769
2770
|
/* @__PURE__ */ createBaseVNode("div"),
|
|
2770
2771
|
/* @__PURE__ */ createBaseVNode("div"),
|
|
@@ -2778,11 +2779,11 @@ const _hoisted_2$d = /* @__PURE__ */ createBaseVNode("div", null, [
|
|
|
2778
2779
|
/* @__PURE__ */ createBaseVNode("div"),
|
|
2779
2780
|
/* @__PURE__ */ createBaseVNode("div")
|
|
2780
2781
|
], -1);
|
|
2781
|
-
const _hoisted_3$
|
|
2782
|
-
_hoisted_1$
|
|
2782
|
+
const _hoisted_3$9 = [
|
|
2783
|
+
_hoisted_1$k,
|
|
2783
2784
|
_hoisted_2$d
|
|
2784
2785
|
];
|
|
2785
|
-
function _sfc_render$
|
|
2786
|
+
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
|
2786
2787
|
const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
|
|
2787
2788
|
const _component_Draggable = resolveComponent("Draggable");
|
|
2788
2789
|
return openBlock(), createBlock(_component_Draggable, {
|
|
@@ -2810,24 +2811,24 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2810
2811
|
], 2)) : createCommentVNode("", true),
|
|
2811
2812
|
createBaseVNode("div", {
|
|
2812
2813
|
class: normalizeClass(_ctx.$style.grid)
|
|
2813
|
-
}, _hoisted_3$
|
|
2814
|
+
}, _hoisted_3$9, 2)
|
|
2814
2815
|
], 2)
|
|
2815
2816
|
]),
|
|
2816
2817
|
_: 1
|
|
2817
2818
|
}, 8, ["class", "onDrag", "onDragstart", "onDragend"]);
|
|
2818
2819
|
}
|
|
2819
|
-
const cssModules$
|
|
2820
|
-
"$style": style0$
|
|
2820
|
+
const cssModules$r = {
|
|
2821
|
+
"$style": style0$p
|
|
2821
2822
|
};
|
|
2822
|
-
const PanelDragButton = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
2823
|
-
const _hoisted_1$
|
|
2823
|
+
const PanelDragButton = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["render", _sfc_render$9], ["__cssModules", cssModules$r]]);
|
|
2824
|
+
const _hoisted_1$j = ["data-node-name", "data-node-placement", "onClick"];
|
|
2824
2825
|
var FloatingNodePosition = /* @__PURE__ */ ((FloatingNodePosition2) => {
|
|
2825
2826
|
FloatingNodePosition2["top"] = "outputSub";
|
|
2826
2827
|
FloatingNodePosition2["right"] = "outputMain";
|
|
2827
2828
|
FloatingNodePosition2["left"] = "inputMain";
|
|
2828
2829
|
return FloatingNodePosition2;
|
|
2829
2830
|
})(FloatingNodePosition || {});
|
|
2830
|
-
const _sfc_main$
|
|
2831
|
+
const _sfc_main$F = /* @__PURE__ */ defineComponent({
|
|
2831
2832
|
__name: "NDVFloatingNodes",
|
|
2832
2833
|
props: {
|
|
2833
2834
|
rootNode: {}
|
|
@@ -2948,14 +2949,14 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
2948
2949
|
"data-node-placement": connectionGroup,
|
|
2949
2950
|
onClick: ($event) => emit("switchSelectedNode", node2.name)
|
|
2950
2951
|
}, [
|
|
2951
|
-
createVNode(_sfc_main$
|
|
2952
|
+
createVNode(_sfc_main$O, {
|
|
2952
2953
|
"node-type": nodeType,
|
|
2953
2954
|
"node-name": node2.name,
|
|
2954
2955
|
"tooltip-position": tooltipPositionMapper[connectionGroup],
|
|
2955
2956
|
size: 35,
|
|
2956
2957
|
circle: ""
|
|
2957
2958
|
}, null, 8, ["node-type", "node-name", "tooltip-position"])
|
|
2958
|
-
], 10, _hoisted_1$
|
|
2959
|
+
], 10, _hoisted_1$j)
|
|
2959
2960
|
]),
|
|
2960
2961
|
_: 2
|
|
2961
2962
|
}, 1032, ["placement"])) : createCommentVNode("", true)
|
|
@@ -2974,7 +2975,7 @@ const outputSub = "_outputSub_1sze0_29";
|
|
|
2974
2975
|
const outputMain = "_outputMain_1sze0_40";
|
|
2975
2976
|
const inputMain = "_inputMain_1sze0_40";
|
|
2976
2977
|
const connectedNode = "_connectedNode_1sze0_63";
|
|
2977
|
-
const style0$
|
|
2978
|
+
const style0$o = {
|
|
2978
2979
|
floatingNodes,
|
|
2979
2980
|
nodesList,
|
|
2980
2981
|
inputSub,
|
|
@@ -2983,315 +2984,342 @@ const style0$m = {
|
|
|
2983
2984
|
inputMain,
|
|
2984
2985
|
connectedNode
|
|
2985
2986
|
};
|
|
2986
|
-
const cssModules$
|
|
2987
|
-
"$style": style0$
|
|
2987
|
+
const cssModules$q = {
|
|
2988
|
+
"$style": style0$o
|
|
2988
2989
|
};
|
|
2989
|
-
const NDVFloatingNodes = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
2990
|
+
const NDVFloatingNodes = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__cssModules", cssModules$q]]);
|
|
2990
2991
|
const SIDE_MARGIN = 24;
|
|
2991
2992
|
const SIDE_PANELS_MARGIN = 80;
|
|
2992
2993
|
const MIN_PANEL_WIDTH = 280;
|
|
2993
2994
|
const PANEL_WIDTH = 320;
|
|
2994
2995
|
const PANEL_WIDTH_LARGE = 420;
|
|
2995
|
-
const
|
|
2996
|
-
|
|
2997
|
-
dragless: MAIN_NODE_PANEL_WIDTH,
|
|
2998
|
-
unknown: MAIN_NODE_PANEL_WIDTH,
|
|
2999
|
-
inputless: MAIN_NODE_PANEL_WIDTH,
|
|
3000
|
-
wide: MAIN_NODE_PANEL_WIDTH * 2
|
|
3001
|
-
};
|
|
3002
|
-
const _sfc_main$B = defineComponent({
|
|
3003
|
-
name: "NDVDraggablePanels",
|
|
3004
|
-
components: {
|
|
3005
|
-
PanelDragButton,
|
|
3006
|
-
NDVFloatingNodes
|
|
3007
|
-
},
|
|
2996
|
+
const _sfc_main$E = /* @__PURE__ */ defineComponent({
|
|
2997
|
+
__name: "NDVDraggablePanels",
|
|
3008
2998
|
props: {
|
|
3009
|
-
isDraggable: {
|
|
3010
|
-
|
|
3011
|
-
}
|
|
3012
|
-
hideInputAndOutput: {
|
|
3013
|
-
type: Boolean
|
|
3014
|
-
},
|
|
3015
|
-
position: {
|
|
3016
|
-
type: Number
|
|
3017
|
-
},
|
|
3018
|
-
nodeType: {
|
|
3019
|
-
type: Object,
|
|
3020
|
-
default: () => ({})
|
|
3021
|
-
}
|
|
3022
|
-
},
|
|
3023
|
-
setup() {
|
|
3024
|
-
const { callDebounced } = useDebounce();
|
|
3025
|
-
return { callDebounced };
|
|
2999
|
+
isDraggable: { type: Boolean },
|
|
3000
|
+
hideInputAndOutput: { type: Boolean },
|
|
3001
|
+
nodeType: {}
|
|
3026
3002
|
},
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3003
|
+
emits: ["init", "dragstart", "dragend", "switchSelectedNode", "close"],
|
|
3004
|
+
setup(__props, { emit: __emit }) {
|
|
3005
|
+
const MIN_WINDOW_WIDTH = 2 * (SIDE_MARGIN + SIDE_PANELS_MARGIN) + MIN_PANEL_WIDTH;
|
|
3006
|
+
const initialMainPanelWidth = {
|
|
3007
|
+
regular: MAIN_NODE_PANEL_WIDTH,
|
|
3008
|
+
dragless: MAIN_NODE_PANEL_WIDTH,
|
|
3009
|
+
unknown: MAIN_NODE_PANEL_WIDTH,
|
|
3010
|
+
inputless: MAIN_NODE_PANEL_WIDTH,
|
|
3011
|
+
wide: MAIN_NODE_PANEL_WIDTH * 2
|
|
3033
3012
|
};
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
const
|
|
3063
|
-
if (
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
if (
|
|
3013
|
+
const { callDebounced } = useDebounce();
|
|
3014
|
+
const ndvStore = useNDVStore();
|
|
3015
|
+
const props = __props;
|
|
3016
|
+
const windowWidth = ref(1);
|
|
3017
|
+
const isDragging = ref(false);
|
|
3018
|
+
const initialized = ref(false);
|
|
3019
|
+
const emit = __emit;
|
|
3020
|
+
const slots = useSlots();
|
|
3021
|
+
onMounted(() => {
|
|
3022
|
+
setTotalWidth();
|
|
3023
|
+
if (mainPanelDimensions.value.relativeLeft === 1 && mainPanelDimensions.value.relativeRight === 1) {
|
|
3024
|
+
setMainPanelWidth();
|
|
3025
|
+
setPositions(getInitialLeftPosition(mainPanelDimensions.value.relativeWidth));
|
|
3026
|
+
restorePositionData();
|
|
3027
|
+
}
|
|
3028
|
+
window.addEventListener("resize", setTotalWidth);
|
|
3029
|
+
emit("init", { position: mainPanelDimensions.value.relativeLeft });
|
|
3030
|
+
setTimeout(() => {
|
|
3031
|
+
initialized.value = true;
|
|
3032
|
+
}, 0);
|
|
3033
|
+
ndvEventBus.on("setPositionByName", setPositionByName);
|
|
3034
|
+
});
|
|
3035
|
+
onBeforeUnmount(() => {
|
|
3036
|
+
window.removeEventListener("resize", setTotalWidth);
|
|
3037
|
+
ndvEventBus.off("setPositionByName", setPositionByName);
|
|
3038
|
+
});
|
|
3039
|
+
watch(windowWidth, (width) => {
|
|
3040
|
+
const minRelativeWidth = pxToRelativeWidth(MIN_PANEL_WIDTH);
|
|
3041
|
+
const isBelowMinWidthMainPanel = mainPanelDimensions.value.relativeWidth < minRelativeWidth;
|
|
3042
|
+
if (isBelowMinWidthMainPanel) {
|
|
3043
|
+
setMainPanelWidth(minRelativeWidth);
|
|
3044
|
+
}
|
|
3045
|
+
const isBelowMinLeft = minimumLeftPosition.value > mainPanelDimensions.value.relativeLeft;
|
|
3046
|
+
const isMaxRight = maximumRightPosition.value > mainPanelDimensions.value.relativeRight;
|
|
3047
|
+
if (width > MIN_WINDOW_WIDTH && isBelowMinLeft && isMaxRight) {
|
|
3048
|
+
setMainPanelWidth(minRelativeWidth);
|
|
3049
|
+
setPositions(getInitialLeftPosition(mainPanelDimensions.value.relativeWidth));
|
|
3050
|
+
}
|
|
3051
|
+
setPositions(mainPanelDimensions.value.relativeLeft);
|
|
3052
|
+
});
|
|
3053
|
+
const currentNodePaneType = computed(() => {
|
|
3054
|
+
if (!hasInputSlot.value)
|
|
3069
3055
|
return "inputless";
|
|
3070
|
-
if (!
|
|
3056
|
+
if (!props.isDraggable)
|
|
3071
3057
|
return "dragless";
|
|
3072
|
-
if (
|
|
3058
|
+
if (props.nodeType === null)
|
|
3073
3059
|
return "unknown";
|
|
3074
|
-
return
|
|
3075
|
-
}
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
return
|
|
3096
|
-
}
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
return
|
|
3102
|
-
}
|
|
3103
|
-
|
|
3104
|
-
return
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3060
|
+
return props.nodeType.parameterPane ?? "regular";
|
|
3061
|
+
});
|
|
3062
|
+
const mainPanelDimensions = computed(
|
|
3063
|
+
() => {
|
|
3064
|
+
return ndvStore.getMainPanelDimensions(currentNodePaneType.value);
|
|
3065
|
+
}
|
|
3066
|
+
);
|
|
3067
|
+
const calculatedPositions = computed(
|
|
3068
|
+
() => {
|
|
3069
|
+
const hasInput = slots.input !== void 0;
|
|
3070
|
+
const outputPanelRelativeLeft = mainPanelDimensions.value.relativeLeft + mainPanelDimensions.value.relativeWidth;
|
|
3071
|
+
const inputPanelRelativeRight = hasInput ? 1 - outputPanelRelativeLeft + mainPanelDimensions.value.relativeWidth : 1 - pxToRelativeWidth(SIDE_MARGIN);
|
|
3072
|
+
return {
|
|
3073
|
+
inputPanelRelativeRight,
|
|
3074
|
+
outputPanelRelativeLeft
|
|
3075
|
+
};
|
|
3076
|
+
}
|
|
3077
|
+
);
|
|
3078
|
+
const outputPanelRelativeTranslate = computed(() => {
|
|
3079
|
+
const panelMinLeft = 1 - pxToRelativeWidth(MIN_PANEL_WIDTH + SIDE_MARGIN);
|
|
3080
|
+
const currentRelativeLeftDelta = calculatedPositions.value.outputPanelRelativeLeft - panelMinLeft;
|
|
3081
|
+
return currentRelativeLeftDelta > 0 ? currentRelativeLeftDelta : 0;
|
|
3082
|
+
});
|
|
3083
|
+
const supportedResizeDirections = computed(() => {
|
|
3084
|
+
const supportedDirections = ["right"];
|
|
3085
|
+
if (props.isDraggable)
|
|
3086
|
+
supportedDirections.push("left");
|
|
3087
|
+
return supportedDirections;
|
|
3088
|
+
});
|
|
3089
|
+
const hasInputSlot = computed(() => {
|
|
3090
|
+
return slots.input !== void 0;
|
|
3091
|
+
});
|
|
3092
|
+
const inputPanelMargin = computed(() => pxToRelativeWidth(SIDE_PANELS_MARGIN));
|
|
3093
|
+
const minimumLeftPosition = computed(() => {
|
|
3094
|
+
if (windowWidth.value < MIN_WINDOW_WIDTH)
|
|
3095
|
+
return pxToRelativeWidth(1);
|
|
3096
|
+
if (!hasInputSlot.value)
|
|
3097
|
+
return pxToRelativeWidth(SIDE_MARGIN);
|
|
3098
|
+
return pxToRelativeWidth(SIDE_MARGIN + 20) + inputPanelMargin.value;
|
|
3099
|
+
});
|
|
3100
|
+
const maximumRightPosition = computed(() => {
|
|
3101
|
+
if (windowWidth.value < MIN_WINDOW_WIDTH)
|
|
3102
|
+
return pxToRelativeWidth(1);
|
|
3103
|
+
return pxToRelativeWidth(SIDE_MARGIN + 20) + inputPanelMargin.value;
|
|
3104
|
+
});
|
|
3105
|
+
const canMoveLeft = computed(() => {
|
|
3106
|
+
return mainPanelDimensions.value.relativeLeft > minimumLeftPosition.value;
|
|
3107
|
+
});
|
|
3108
|
+
const canMoveRight = computed(() => {
|
|
3109
|
+
return mainPanelDimensions.value.relativeRight > maximumRightPosition.value;
|
|
3110
|
+
});
|
|
3111
|
+
const mainPanelStyles = computed(() => {
|
|
3110
3112
|
return {
|
|
3111
|
-
|
|
3113
|
+
left: `${relativeWidthToPx(mainPanelDimensions.value.relativeLeft)}px`,
|
|
3114
|
+
right: `${relativeWidthToPx(mainPanelDimensions.value.relativeRight)}px`
|
|
3112
3115
|
};
|
|
3113
|
-
}
|
|
3114
|
-
|
|
3116
|
+
});
|
|
3117
|
+
const inputPanelStyles = computed(() => {
|
|
3115
3118
|
return {
|
|
3116
|
-
|
|
3117
|
-
transform: `translateX(-${this.relativeWidthToPx(this.outputPanelRelativeTranslate)}px)`
|
|
3119
|
+
right: `${relativeWidthToPx(calculatedPositions.value.inputPanelRelativeRight)}px`
|
|
3118
3120
|
};
|
|
3119
|
-
}
|
|
3120
|
-
|
|
3121
|
-
const hasInput = this.$slots.input !== void 0;
|
|
3122
|
-
const outputPanelRelativeLeft = this.mainPanelDimensions.relativeLeft + this.mainPanelDimensions.relativeWidth;
|
|
3123
|
-
const inputPanelRelativeRight = hasInput ? 1 - outputPanelRelativeLeft + this.mainPanelDimensions.relativeWidth : 1 - this.pxToRelativeWidth(SIDE_MARGIN);
|
|
3121
|
+
});
|
|
3122
|
+
const outputPanelStyles = computed(() => {
|
|
3124
3123
|
return {
|
|
3125
|
-
|
|
3126
|
-
|
|
3124
|
+
left: `${relativeWidthToPx(calculatedPositions.value.outputPanelRelativeLeft)}px`,
|
|
3125
|
+
transform: `translateX(-${relativeWidthToPx(outputPanelRelativeTranslate.value)}px)`
|
|
3127
3126
|
};
|
|
3128
|
-
}
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
},
|
|
3137
|
-
fixedPanelWidth() {
|
|
3138
|
-
const multiplier = this.hasDoubleWidth ? 2 : 1;
|
|
3139
|
-
if (this.windowWidth > 1700) {
|
|
3127
|
+
});
|
|
3128
|
+
const hasDoubleWidth = computed(() => {
|
|
3129
|
+
var _a;
|
|
3130
|
+
return ((_a = props.nodeType) == null ? void 0 : _a.parameterPane) === "wide";
|
|
3131
|
+
});
|
|
3132
|
+
const fixedPanelWidth = computed(() => {
|
|
3133
|
+
const multiplier = hasDoubleWidth.value ? 2 : 1;
|
|
3134
|
+
if (windowWidth.value > 1700) {
|
|
3140
3135
|
return PANEL_WIDTH_LARGE * multiplier;
|
|
3141
3136
|
}
|
|
3142
3137
|
return PANEL_WIDTH * multiplier;
|
|
3143
|
-
}
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
const
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
}
|
|
3155
|
-
const isBelowMinLeft = this.minimumLeftPosition > this.mainPanelDimensions.relativeLeft;
|
|
3156
|
-
const isMaxRight = this.maximumRightPosition > this.mainPanelDimensions.relativeRight;
|
|
3157
|
-
if (windowWidth > this.minWindowWidth && isBelowMinLeft && isMaxRight) {
|
|
3158
|
-
this.setMainPanelWidth(minRelativeWidth);
|
|
3159
|
-
this.setPositions(this.getInitialLeftPosition(this.mainPanelDimensions.relativeWidth));
|
|
3160
|
-
}
|
|
3161
|
-
this.setPositions(this.mainPanelDimensions.relativeLeft);
|
|
3162
|
-
}
|
|
3163
|
-
},
|
|
3164
|
-
methods: {
|
|
3165
|
-
onSwitchSelectedNode(node2) {
|
|
3166
|
-
this.$emit("switchSelectedNode", node2);
|
|
3167
|
-
},
|
|
3168
|
-
getInitialLeftPosition(width) {
|
|
3169
|
-
if (this.currentNodePaneType === "dragless")
|
|
3170
|
-
return this.pxToRelativeWidth(SIDE_MARGIN + 1 + this.fixedPanelWidth);
|
|
3171
|
-
return this.hasInputSlot ? 0.5 - width / 2 : this.minimumLeftPosition;
|
|
3172
|
-
},
|
|
3173
|
-
setMainPanelWidth(relativeWidth) {
|
|
3174
|
-
const mainPanelRelativeWidth = relativeWidth || this.pxToRelativeWidth(initialMainPanelWidth[this.currentNodePaneType]);
|
|
3175
|
-
this.ndvStore.setMainPanelDimensions({
|
|
3176
|
-
panelType: this.currentNodePaneType,
|
|
3138
|
+
});
|
|
3139
|
+
const onSwitchSelectedNode = (node2) => emit("switchSelectedNode", node2);
|
|
3140
|
+
function getInitialLeftPosition(width) {
|
|
3141
|
+
if (currentNodePaneType.value === "dragless")
|
|
3142
|
+
return pxToRelativeWidth(SIDE_MARGIN + 1 + fixedPanelWidth.value);
|
|
3143
|
+
return hasInputSlot.value ? 0.5 - width / 2 : minimumLeftPosition.value;
|
|
3144
|
+
}
|
|
3145
|
+
function setMainPanelWidth(relativeWidth) {
|
|
3146
|
+
const mainPanelRelativeWidth = relativeWidth || pxToRelativeWidth(initialMainPanelWidth[currentNodePaneType.value]);
|
|
3147
|
+
ndvStore.setMainPanelDimensions({
|
|
3148
|
+
panelType: currentNodePaneType.value,
|
|
3177
3149
|
dimensions: {
|
|
3178
3150
|
relativeWidth: mainPanelRelativeWidth
|
|
3179
3151
|
}
|
|
3180
3152
|
});
|
|
3181
|
-
}
|
|
3182
|
-
setPositions(relativeLeft) {
|
|
3183
|
-
const mainPanelRelativeLeft = relativeLeft || 1 -
|
|
3184
|
-
const mainPanelRelativeRight = 1 - mainPanelRelativeLeft -
|
|
3185
|
-
const isMaxRight =
|
|
3186
|
-
const isMinLeft =
|
|
3187
|
-
const isInputless =
|
|
3153
|
+
}
|
|
3154
|
+
function setPositions(relativeLeft) {
|
|
3155
|
+
const mainPanelRelativeLeft = relativeLeft || 1 - calculatedPositions.value.inputPanelRelativeRight;
|
|
3156
|
+
const mainPanelRelativeRight = 1 - mainPanelRelativeLeft - mainPanelDimensions.value.relativeWidth;
|
|
3157
|
+
const isMaxRight = maximumRightPosition.value > mainPanelRelativeRight;
|
|
3158
|
+
const isMinLeft = minimumLeftPosition.value > mainPanelRelativeLeft;
|
|
3159
|
+
const isInputless = currentNodePaneType.value === "inputless";
|
|
3188
3160
|
if (isMinLeft) {
|
|
3189
|
-
|
|
3190
|
-
panelType:
|
|
3161
|
+
ndvStore.setMainPanelDimensions({
|
|
3162
|
+
panelType: currentNodePaneType.value,
|
|
3191
3163
|
dimensions: {
|
|
3192
|
-
relativeLeft:
|
|
3193
|
-
relativeRight: 1 -
|
|
3164
|
+
relativeLeft: minimumLeftPosition.value,
|
|
3165
|
+
relativeRight: 1 - mainPanelDimensions.value.relativeWidth - minimumLeftPosition.value
|
|
3194
3166
|
}
|
|
3195
3167
|
});
|
|
3196
3168
|
return;
|
|
3197
3169
|
}
|
|
3198
3170
|
if (isMaxRight) {
|
|
3199
|
-
|
|
3200
|
-
panelType:
|
|
3171
|
+
ndvStore.setMainPanelDimensions({
|
|
3172
|
+
panelType: currentNodePaneType.value,
|
|
3201
3173
|
dimensions: {
|
|
3202
|
-
relativeLeft: 1 -
|
|
3203
|
-
relativeRight:
|
|
3174
|
+
relativeLeft: 1 - mainPanelDimensions.value.relativeWidth - maximumRightPosition.value,
|
|
3175
|
+
relativeRight: maximumRightPosition.value
|
|
3204
3176
|
}
|
|
3205
3177
|
});
|
|
3206
3178
|
return;
|
|
3207
3179
|
}
|
|
3208
|
-
|
|
3209
|
-
panelType:
|
|
3180
|
+
ndvStore.setMainPanelDimensions({
|
|
3181
|
+
panelType: currentNodePaneType.value,
|
|
3210
3182
|
dimensions: {
|
|
3211
|
-
relativeLeft: isInputless ?
|
|
3183
|
+
relativeLeft: isInputless ? minimumLeftPosition.value : mainPanelRelativeLeft,
|
|
3212
3184
|
relativeRight: mainPanelRelativeRight
|
|
3213
3185
|
}
|
|
3214
3186
|
});
|
|
3215
|
-
}
|
|
3216
|
-
setPositionByName(position2) {
|
|
3187
|
+
}
|
|
3188
|
+
function setPositionByName(position2) {
|
|
3217
3189
|
const positionByName = {
|
|
3218
|
-
minLeft:
|
|
3219
|
-
maxRight:
|
|
3220
|
-
initial:
|
|
3190
|
+
minLeft: minimumLeftPosition.value,
|
|
3191
|
+
maxRight: maximumRightPosition.value,
|
|
3192
|
+
initial: getInitialLeftPosition(mainPanelDimensions.value.relativeWidth)
|
|
3221
3193
|
};
|
|
3222
|
-
|
|
3223
|
-
}
|
|
3224
|
-
pxToRelativeWidth(px) {
|
|
3225
|
-
return px /
|
|
3226
|
-
}
|
|
3227
|
-
relativeWidthToPx(relativeWidth) {
|
|
3228
|
-
return relativeWidth *
|
|
3229
|
-
}
|
|
3230
|
-
onResizeStart() {
|
|
3231
|
-
|
|
3232
|
-
}
|
|
3233
|
-
onResizeEnd() {
|
|
3234
|
-
|
|
3235
|
-
}
|
|
3236
|
-
onResizeDebounced(data) {
|
|
3237
|
-
if (
|
|
3238
|
-
void
|
|
3194
|
+
setPositions(positionByName[position2]);
|
|
3195
|
+
}
|
|
3196
|
+
function pxToRelativeWidth(px) {
|
|
3197
|
+
return px / windowWidth.value;
|
|
3198
|
+
}
|
|
3199
|
+
function relativeWidthToPx(relativeWidth) {
|
|
3200
|
+
return relativeWidth * windowWidth.value;
|
|
3201
|
+
}
|
|
3202
|
+
function onResizeStart() {
|
|
3203
|
+
setTotalWidth();
|
|
3204
|
+
}
|
|
3205
|
+
function onResizeEnd() {
|
|
3206
|
+
storePositionData();
|
|
3207
|
+
}
|
|
3208
|
+
function onResizeDebounced(data) {
|
|
3209
|
+
if (initialized.value) {
|
|
3210
|
+
void callDebounced(onResize, { debounceTime: 10, trailing: true }, data);
|
|
3239
3211
|
}
|
|
3240
|
-
}
|
|
3241
|
-
onResize({ direction, x, width }) {
|
|
3242
|
-
const relativeDistance =
|
|
3243
|
-
const relativeWidth =
|
|
3244
|
-
if (direction === "left" && relativeDistance <=
|
|
3212
|
+
}
|
|
3213
|
+
function onResize({ direction, x, width }) {
|
|
3214
|
+
const relativeDistance = pxToRelativeWidth(x);
|
|
3215
|
+
const relativeWidth = pxToRelativeWidth(width);
|
|
3216
|
+
if (direction === "left" && relativeDistance <= minimumLeftPosition.value)
|
|
3245
3217
|
return;
|
|
3246
|
-
if (direction === "right" && 1 - relativeDistance <=
|
|
3218
|
+
if (direction === "right" && 1 - relativeDistance <= maximumRightPosition.value)
|
|
3247
3219
|
return;
|
|
3248
3220
|
if (width <= MIN_PANEL_WIDTH)
|
|
3249
3221
|
return;
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
},
|
|
3255
|
-
restorePositionData() {
|
|
3222
|
+
setMainPanelWidth(relativeWidth);
|
|
3223
|
+
setPositions(direction === "left" ? relativeDistance : mainPanelDimensions.value.relativeLeft);
|
|
3224
|
+
}
|
|
3225
|
+
function restorePositionData() {
|
|
3256
3226
|
const storedPanelWidthData = useStorage(
|
|
3257
|
-
`${LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH}_${
|
|
3227
|
+
`${LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH}_${currentNodePaneType.value}`
|
|
3258
3228
|
).value;
|
|
3259
3229
|
if (storedPanelWidthData) {
|
|
3260
3230
|
const parsedWidth = parseFloat(storedPanelWidthData);
|
|
3261
|
-
|
|
3262
|
-
const initialPosition =
|
|
3263
|
-
|
|
3231
|
+
setMainPanelWidth(parsedWidth);
|
|
3232
|
+
const initialPosition = getInitialLeftPosition(parsedWidth);
|
|
3233
|
+
setPositions(initialPosition);
|
|
3264
3234
|
return true;
|
|
3265
3235
|
}
|
|
3266
3236
|
return false;
|
|
3267
|
-
}
|
|
3268
|
-
storePositionData() {
|
|
3269
|
-
useStorage(`${LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH}_${
|
|
3270
|
-
}
|
|
3271
|
-
onDragStart() {
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
}
|
|
3275
|
-
onDrag(position2) {
|
|
3276
|
-
const relativeLeft =
|
|
3277
|
-
|
|
3278
|
-
}
|
|
3279
|
-
onDragEnd() {
|
|
3237
|
+
}
|
|
3238
|
+
function storePositionData() {
|
|
3239
|
+
useStorage(`${LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH}_${currentNodePaneType.value}`).value = mainPanelDimensions.value.relativeWidth.toString();
|
|
3240
|
+
}
|
|
3241
|
+
function onDragStart() {
|
|
3242
|
+
isDragging.value = true;
|
|
3243
|
+
emit("dragstart", { position: mainPanelDimensions.value.relativeLeft });
|
|
3244
|
+
}
|
|
3245
|
+
function onDrag(position2) {
|
|
3246
|
+
const relativeLeft = pxToRelativeWidth(position2[0]) - mainPanelDimensions.value.relativeWidth / 2;
|
|
3247
|
+
setPositions(relativeLeft);
|
|
3248
|
+
}
|
|
3249
|
+
function onDragEnd() {
|
|
3280
3250
|
setTimeout(() => {
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
windowWidth:
|
|
3284
|
-
position:
|
|
3251
|
+
isDragging.value = false;
|
|
3252
|
+
emit("dragend", {
|
|
3253
|
+
windowWidth: windowWidth.value,
|
|
3254
|
+
position: mainPanelDimensions.value.relativeLeft
|
|
3285
3255
|
});
|
|
3286
3256
|
}, 0);
|
|
3287
|
-
|
|
3288
|
-
}
|
|
3289
|
-
setTotalWidth() {
|
|
3290
|
-
|
|
3291
|
-
},
|
|
3292
|
-
close() {
|
|
3293
|
-
this.$emit("close");
|
|
3257
|
+
storePositionData();
|
|
3258
|
+
}
|
|
3259
|
+
function setTotalWidth() {
|
|
3260
|
+
windowWidth.value = window.innerWidth;
|
|
3294
3261
|
}
|
|
3262
|
+
return (_ctx, _cache) => {
|
|
3263
|
+
const _component_n8n_resize_wrapper = resolveComponent("n8n-resize-wrapper");
|
|
3264
|
+
return openBlock(), createElementBlock("div", null, [
|
|
3265
|
+
unref(ndvStore).activeNode ? (openBlock(), createBlock(NDVFloatingNodes, {
|
|
3266
|
+
key: 0,
|
|
3267
|
+
"root-node": unref(ndvStore).activeNode,
|
|
3268
|
+
onSwitchSelectedNode
|
|
3269
|
+
}, null, 8, ["root-node"])) : createCommentVNode("", true),
|
|
3270
|
+
!_ctx.hideInputAndOutput ? (openBlock(), createElementBlock("div", {
|
|
3271
|
+
key: 1,
|
|
3272
|
+
class: normalizeClass(_ctx.$style.inputPanel),
|
|
3273
|
+
style: normalizeStyle(inputPanelStyles.value)
|
|
3274
|
+
}, [
|
|
3275
|
+
renderSlot(_ctx.$slots, "input")
|
|
3276
|
+
], 6)) : createCommentVNode("", true),
|
|
3277
|
+
!_ctx.hideInputAndOutput ? (openBlock(), createElementBlock("div", {
|
|
3278
|
+
key: 2,
|
|
3279
|
+
class: normalizeClass(_ctx.$style.outputPanel),
|
|
3280
|
+
style: normalizeStyle(outputPanelStyles.value)
|
|
3281
|
+
}, [
|
|
3282
|
+
renderSlot(_ctx.$slots, "output")
|
|
3283
|
+
], 6)) : createCommentVNode("", true),
|
|
3284
|
+
createBaseVNode("div", {
|
|
3285
|
+
class: normalizeClass(_ctx.$style.mainPanel),
|
|
3286
|
+
style: normalizeStyle(mainPanelStyles.value)
|
|
3287
|
+
}, [
|
|
3288
|
+
createVNode(_component_n8n_resize_wrapper, {
|
|
3289
|
+
"is-resizing-enabled": currentNodePaneType.value !== "unknown",
|
|
3290
|
+
width: relativeWidthToPx(mainPanelDimensions.value.relativeWidth),
|
|
3291
|
+
"min-width": MIN_PANEL_WIDTH,
|
|
3292
|
+
"grid-size": 20,
|
|
3293
|
+
"supported-directions": supportedResizeDirections.value,
|
|
3294
|
+
onResize: onResizeDebounced,
|
|
3295
|
+
onResizestart: onResizeStart,
|
|
3296
|
+
onResizeend: onResizeEnd
|
|
3297
|
+
}, {
|
|
3298
|
+
default: withCtx(() => [
|
|
3299
|
+
createBaseVNode("div", {
|
|
3300
|
+
class: normalizeClass(_ctx.$style.dragButtonContainer)
|
|
3301
|
+
}, [
|
|
3302
|
+
!_ctx.hideInputAndOutput && _ctx.isDraggable ? (openBlock(), createBlock(PanelDragButton, {
|
|
3303
|
+
key: 0,
|
|
3304
|
+
class: normalizeClass({ [_ctx.$style.draggable]: true, [_ctx.$style.visible]: isDragging.value }),
|
|
3305
|
+
"can-move-left": canMoveLeft.value,
|
|
3306
|
+
"can-move-right": canMoveRight.value,
|
|
3307
|
+
onDragstart: onDragStart,
|
|
3308
|
+
onDrag,
|
|
3309
|
+
onDragend: onDragEnd
|
|
3310
|
+
}, null, 8, ["class", "can-move-left", "can-move-right"])) : createCommentVNode("", true)
|
|
3311
|
+
], 2),
|
|
3312
|
+
createBaseVNode("div", {
|
|
3313
|
+
class: normalizeClass({ [_ctx.$style.mainPanelInner]: true, [_ctx.$style.dragging]: isDragging.value })
|
|
3314
|
+
}, [
|
|
3315
|
+
renderSlot(_ctx.$slots, "main")
|
|
3316
|
+
], 2)
|
|
3317
|
+
]),
|
|
3318
|
+
_: 3
|
|
3319
|
+
}, 8, ["is-resizing-enabled", "width", "supported-directions"])
|
|
3320
|
+
], 6)
|
|
3321
|
+
]);
|
|
3322
|
+
};
|
|
3295
3323
|
}
|
|
3296
3324
|
});
|
|
3297
3325
|
const dataPanel = "_dataPanel_a6j4o_1";
|
|
@@ -3303,7 +3331,7 @@ const mainPanelInner = "_mainPanelInner_a6j4o_34";
|
|
|
3303
3331
|
const dragging = "_dragging_a6j4o_41";
|
|
3304
3332
|
const dragButtonContainer = "_dragButtonContainer_a6j4o_54";
|
|
3305
3333
|
const visible = "_visible_a6j4o_70";
|
|
3306
|
-
const style0$
|
|
3334
|
+
const style0$n = {
|
|
3307
3335
|
dataPanel,
|
|
3308
3336
|
inputPanel,
|
|
3309
3337
|
outputPanel,
|
|
@@ -3315,73 +3343,10 @@ const style0$l = {
|
|
|
3315
3343
|
dragButtonContainer,
|
|
3316
3344
|
visible
|
|
3317
3345
|
};
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
const _component_PanelDragButton = resolveComponent("PanelDragButton");
|
|
3321
|
-
const _component_n8n_resize_wrapper = resolveComponent("n8n-resize-wrapper");
|
|
3322
|
-
return openBlock(), createElementBlock("div", null, [
|
|
3323
|
-
_ctx.activeNode ? (openBlock(), createBlock(_component_NDVFloatingNodes, {
|
|
3324
|
-
key: 0,
|
|
3325
|
-
"root-node": _ctx.activeNode,
|
|
3326
|
-
onSwitchSelectedNode: _ctx.onSwitchSelectedNode
|
|
3327
|
-
}, null, 8, ["root-node", "onSwitchSelectedNode"])) : createCommentVNode("", true),
|
|
3328
|
-
!_ctx.hideInputAndOutput ? (openBlock(), createElementBlock("div", {
|
|
3329
|
-
key: 1,
|
|
3330
|
-
class: normalizeClass(_ctx.$style.inputPanel),
|
|
3331
|
-
style: normalizeStyle(_ctx.inputPanelStyles)
|
|
3332
|
-
}, [
|
|
3333
|
-
renderSlot(_ctx.$slots, "input")
|
|
3334
|
-
], 6)) : createCommentVNode("", true),
|
|
3335
|
-
!_ctx.hideInputAndOutput ? (openBlock(), createElementBlock("div", {
|
|
3336
|
-
key: 2,
|
|
3337
|
-
class: normalizeClass(_ctx.$style.outputPanel),
|
|
3338
|
-
style: normalizeStyle(_ctx.outputPanelStyles)
|
|
3339
|
-
}, [
|
|
3340
|
-
renderSlot(_ctx.$slots, "output")
|
|
3341
|
-
], 6)) : createCommentVNode("", true),
|
|
3342
|
-
createBaseVNode("div", {
|
|
3343
|
-
class: normalizeClass(_ctx.$style.mainPanel),
|
|
3344
|
-
style: normalizeStyle(_ctx.mainPanelStyles)
|
|
3345
|
-
}, [
|
|
3346
|
-
createVNode(_component_n8n_resize_wrapper, {
|
|
3347
|
-
"is-resizing-enabled": _ctx.currentNodePaneType !== "unknown",
|
|
3348
|
-
width: _ctx.relativeWidthToPx(_ctx.mainPanelDimensions.relativeWidth),
|
|
3349
|
-
"min-width": _ctx.MIN_PANEL_WIDTH,
|
|
3350
|
-
"grid-size": 20,
|
|
3351
|
-
"supported-directions": _ctx.supportedResizeDirections,
|
|
3352
|
-
onResize: _ctx.onResizeDebounced,
|
|
3353
|
-
onResizestart: _ctx.onResizeStart,
|
|
3354
|
-
onResizeend: _ctx.onResizeEnd
|
|
3355
|
-
}, {
|
|
3356
|
-
default: withCtx(() => [
|
|
3357
|
-
createBaseVNode("div", {
|
|
3358
|
-
class: normalizeClass(_ctx.$style.dragButtonContainer)
|
|
3359
|
-
}, [
|
|
3360
|
-
!_ctx.hideInputAndOutput && _ctx.isDraggable ? (openBlock(), createBlock(_component_PanelDragButton, {
|
|
3361
|
-
key: 0,
|
|
3362
|
-
class: normalizeClass({ [_ctx.$style.draggable]: true, [_ctx.$style.visible]: _ctx.isDragging }),
|
|
3363
|
-
"can-move-left": _ctx.canMoveLeft,
|
|
3364
|
-
"can-move-right": _ctx.canMoveRight,
|
|
3365
|
-
onDragstart: _ctx.onDragStart,
|
|
3366
|
-
onDrag: _ctx.onDrag,
|
|
3367
|
-
onDragend: _ctx.onDragEnd
|
|
3368
|
-
}, null, 8, ["class", "can-move-left", "can-move-right", "onDragstart", "onDrag", "onDragend"])) : createCommentVNode("", true)
|
|
3369
|
-
], 2),
|
|
3370
|
-
createBaseVNode("div", {
|
|
3371
|
-
class: normalizeClass({ [_ctx.$style.mainPanelInner]: true, [_ctx.$style.dragging]: _ctx.isDragging })
|
|
3372
|
-
}, [
|
|
3373
|
-
renderSlot(_ctx.$slots, "main")
|
|
3374
|
-
], 2)
|
|
3375
|
-
]),
|
|
3376
|
-
_: 3
|
|
3377
|
-
}, 8, ["is-resizing-enabled", "width", "min-width", "supported-directions", "onResize", "onResizestart", "onResizeend"])
|
|
3378
|
-
], 6)
|
|
3379
|
-
]);
|
|
3380
|
-
}
|
|
3381
|
-
const cssModules$n = {
|
|
3382
|
-
"$style": style0$l
|
|
3346
|
+
const cssModules$p = {
|
|
3347
|
+
"$style": style0$n
|
|
3383
3348
|
};
|
|
3384
|
-
const NDVDraggablePanels = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
3349
|
+
const NDVDraggablePanels = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__cssModules", cssModules$p]]);
|
|
3385
3350
|
const sanitizeOptions = {
|
|
3386
3351
|
allowVulnerableTags: false,
|
|
3387
3352
|
enforceHtmlBoundary: false,
|
|
@@ -3395,7 +3360,7 @@ const sanitizeOptions = {
|
|
|
3395
3360
|
head: ""
|
|
3396
3361
|
}
|
|
3397
3362
|
};
|
|
3398
|
-
const _sfc_main$
|
|
3363
|
+
const _sfc_main$D = {
|
|
3399
3364
|
name: "RunDataHtml",
|
|
3400
3365
|
props: {
|
|
3401
3366
|
inputHtml: {
|
|
@@ -3409,21 +3374,21 @@ const _sfc_main$A = {
|
|
|
3409
3374
|
}
|
|
3410
3375
|
}
|
|
3411
3376
|
};
|
|
3412
|
-
const _hoisted_1$
|
|
3377
|
+
const _hoisted_1$i = ["srcdoc"];
|
|
3413
3378
|
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
3414
3379
|
return openBlock(), createElementBlock("iframe", {
|
|
3415
3380
|
class: "__html-display",
|
|
3416
3381
|
srcdoc: $options.sanitizedHtml
|
|
3417
|
-
}, null, 8, _hoisted_1$
|
|
3382
|
+
}, null, 8, _hoisted_1$i);
|
|
3418
3383
|
}
|
|
3419
|
-
const RunDataHtml$1 = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
3384
|
+
const RunDataHtml$1 = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["render", _sfc_render$8]]);
|
|
3420
3385
|
const RunDataHtml$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3421
3386
|
__proto__: null,
|
|
3422
3387
|
default: RunDataHtml$1
|
|
3423
3388
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
3424
|
-
const _hoisted_1$
|
|
3389
|
+
const _hoisted_1$h = { key: 0 };
|
|
3425
3390
|
const _hoisted_2$c = { key: 1 };
|
|
3426
|
-
const _hoisted_3$
|
|
3391
|
+
const _hoisted_3$8 = { key: 2 };
|
|
3427
3392
|
const _hoisted_4$5 = {
|
|
3428
3393
|
key: 0,
|
|
3429
3394
|
controls: "",
|
|
@@ -3437,7 +3402,7 @@ const _hoisted_6$5 = {
|
|
|
3437
3402
|
};
|
|
3438
3403
|
const _hoisted_7$4 = ["src", "type"];
|
|
3439
3404
|
const _hoisted_8$4 = ["src"];
|
|
3440
|
-
const _sfc_main$
|
|
3405
|
+
const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
3441
3406
|
__name: "BinaryDataDisplayEmbed",
|
|
3442
3407
|
props: {
|
|
3443
3408
|
binaryData: {}
|
|
@@ -3479,7 +3444,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
|
3479
3444
|
});
|
|
3480
3445
|
return (_ctx, _cache) => {
|
|
3481
3446
|
return openBlock(), createElementBlock("span", null, [
|
|
3482
|
-
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
3447
|
+
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1$h, "Loading binary data...")) : error2.value ? (openBlock(), createElementBlock("div", _hoisted_2$c, "Error loading binary data")) : (openBlock(), createElementBlock("span", _hoisted_3$8, [
|
|
3483
3448
|
_ctx.binaryData.fileType === "video" ? (openBlock(), createElementBlock("video", _hoisted_4$5, [
|
|
3484
3449
|
createBaseVNode("source", {
|
|
3485
3450
|
src: embedSource.value,
|
|
@@ -3510,9 +3475,9 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
|
3510
3475
|
};
|
|
3511
3476
|
}
|
|
3512
3477
|
});
|
|
3513
|
-
const _hoisted_1$
|
|
3478
|
+
const _hoisted_1$g = { class: "binary-data-window-wrapper" };
|
|
3514
3479
|
const _hoisted_2$b = { key: 0 };
|
|
3515
|
-
const _sfc_main$
|
|
3480
|
+
const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
3516
3481
|
__name: "BinaryDataDisplay",
|
|
3517
3482
|
props: {
|
|
3518
3483
|
displayData: {},
|
|
@@ -3570,8 +3535,8 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
|
|
|
3570
3535
|
label: _ctx.$locale.baseText("binaryDataDisplay.backToList"),
|
|
3571
3536
|
onClick: withModifiers(closeWindow, ["stop"])
|
|
3572
3537
|
}, null, 8, ["title", "label"]),
|
|
3573
|
-
createBaseVNode("div", _hoisted_1$
|
|
3574
|
-
!binaryData.value ? (openBlock(), createElementBlock("div", _hoisted_2$b, toDisplayString(_ctx.$locale.baseText("binaryDataDisplay.noDataFoundToDisplay")), 1)) : (openBlock(), createBlock(_sfc_main$
|
|
3538
|
+
createBaseVNode("div", _hoisted_1$g, [
|
|
3539
|
+
!binaryData.value ? (openBlock(), createElementBlock("div", _hoisted_2$b, toDisplayString(_ctx.$locale.baseText("binaryDataDisplay.noDataFoundToDisplay")), 1)) : (openBlock(), createBlock(_sfc_main$C, {
|
|
3575
3540
|
key: 1,
|
|
3576
3541
|
"binary-data": binaryData.value
|
|
3577
3542
|
}, null, 8, ["binary-data"]))
|
|
@@ -3580,9 +3545,9 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
|
|
|
3580
3545
|
};
|
|
3581
3546
|
}
|
|
3582
3547
|
});
|
|
3583
|
-
const _hoisted_1$
|
|
3548
|
+
const _hoisted_1$f = { class: "node-error-view" };
|
|
3584
3549
|
const _hoisted_2$a = { class: "node-error-view__header" };
|
|
3585
|
-
const _hoisted_3$
|
|
3550
|
+
const _hoisted_3$7 = {
|
|
3586
3551
|
class: "node-error-view__header-message",
|
|
3587
3552
|
"data-test-id": "node-error-message"
|
|
3588
3553
|
};
|
|
@@ -3688,7 +3653,7 @@ const _hoisted_58 = {
|
|
|
3688
3653
|
};
|
|
3689
3654
|
const _hoisted_59 = { class: "node-error-view__details-label" };
|
|
3690
3655
|
const _hoisted_60 = { class: "node-error-view__details-value" };
|
|
3691
|
-
const _sfc_main$
|
|
3656
|
+
const _sfc_main$A = /* @__PURE__ */ defineComponent({
|
|
3692
3657
|
__name: "NodeErrorView",
|
|
3693
3658
|
props: {
|
|
3694
3659
|
error: {}
|
|
@@ -3954,9 +3919,9 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
|
|
|
3954
3919
|
const _component_n8n_icon_button = resolveComponent("n8n-icon-button");
|
|
3955
3920
|
const _component_n8n_tooltip = resolveComponent("n8n-tooltip");
|
|
3956
3921
|
const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
|
|
3957
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
3922
|
+
return openBlock(), createElementBlock("div", _hoisted_1$f, [
|
|
3958
3923
|
createBaseVNode("div", _hoisted_2$a, [
|
|
3959
|
-
createBaseVNode("div", _hoisted_3$
|
|
3924
|
+
createBaseVNode("div", _hoisted_3$7, [
|
|
3960
3925
|
createBaseVNode("div", null, toDisplayString(getErrorMessage()), 1)
|
|
3961
3926
|
]),
|
|
3962
3927
|
_ctx.error.description || ((_a = _ctx.error.context) == null ? void 0 : _a.descriptionKey) ? (openBlock(), createElementBlock("div", {
|
|
@@ -4125,10 +4090,10 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
|
|
|
4125
4090
|
};
|
|
4126
4091
|
}
|
|
4127
4092
|
});
|
|
4128
|
-
const _hoisted_1$
|
|
4093
|
+
const _hoisted_1$e = { key: 0 };
|
|
4129
4094
|
const _hoisted_2$9 = { key: 1 };
|
|
4130
|
-
const _hoisted_3$
|
|
4131
|
-
const _sfc_main$
|
|
4095
|
+
const _hoisted_3$6 = { key: 2 };
|
|
4096
|
+
const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
4132
4097
|
__name: "RunDataPinButton",
|
|
4133
4098
|
props: {
|
|
4134
4099
|
tooltipContentsVisibility: {},
|
|
@@ -4154,7 +4119,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
|
4154
4119
|
visible: visible2.value
|
|
4155
4120
|
}, {
|
|
4156
4121
|
content: withCtx(() => [
|
|
4157
|
-
props.tooltipContentsVisibility.binaryDataTooltipContent ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
4122
|
+
props.tooltipContentsVisibility.binaryDataTooltipContent ? (openBlock(), createElementBlock("div", _hoisted_1$e, toDisplayString(unref(locale).baseText("ndv.pinData.pin.binary")), 1)) : props.tooltipContentsVisibility.pinDataDiscoveryTooltipContent ? (openBlock(), createElementBlock("div", _hoisted_2$9, toDisplayString(unref(locale).baseText("node.discovery.pinData.ndv")), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$6, [
|
|
4158
4123
|
createBaseVNode("strong", null, toDisplayString(unref(locale).baseText("ndv.pinData.pin.title")), 1),
|
|
4159
4124
|
createVNode(_component_n8n_text, {
|
|
4160
4125
|
size: "small",
|
|
@@ -4193,29 +4158,29 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
|
4193
4158
|
}
|
|
4194
4159
|
});
|
|
4195
4160
|
const pinDataButton = "_pinDataButton_9p8um_1";
|
|
4196
|
-
const style0$
|
|
4161
|
+
const style0$m = {
|
|
4197
4162
|
pinDataButton
|
|
4198
4163
|
};
|
|
4199
|
-
const cssModules$
|
|
4200
|
-
"$style": style0$
|
|
4164
|
+
const cssModules$o = {
|
|
4165
|
+
"$style": style0$m
|
|
4201
4166
|
};
|
|
4202
|
-
const RunDataPinButton = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
4167
|
+
const RunDataPinButton = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__cssModules", cssModules$o]]);
|
|
4203
4168
|
const RunDataTable = defineAsyncComponent(
|
|
4204
|
-
async () => await __vitePreload(() => import("./RunDataTable-
|
|
4169
|
+
async () => await __vitePreload(() => import("./RunDataTable-ChEosD0Y.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,35,36,37,38,39,40,41,42,43,44,45,46,47]) : void 0)
|
|
4205
4170
|
);
|
|
4206
|
-
const RunDataJson = defineAsyncComponent(async () => await __vitePreload(() => import("./RunDataJson-
|
|
4171
|
+
const RunDataJson = defineAsyncComponent(async () => await __vitePreload(() => import("./RunDataJson-D3tbV5-Q.js"), true ? __vite__mapDeps([48,5,6,7,4,1,8,9,10,11,36,3,2,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,38,39,40,41,42,43,44,45,46,49]) : void 0));
|
|
4207
4172
|
const RunDataSchema = defineAsyncComponent(
|
|
4208
|
-
async () => await __vitePreload(() => import("./RunDataSchema-
|
|
4173
|
+
async () => await __vitePreload(() => import("./RunDataSchema-Bf4JKHHb.js"), true ? __vite__mapDeps([50,1,8,3,2,4,5,6,7,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,35,36,37,38,39,40,41,42,43,44,45,46,51]) : void 0)
|
|
4209
4174
|
);
|
|
4210
4175
|
const RunDataHtml = defineAsyncComponent(async () => await __vitePreload(() => Promise.resolve().then(() => RunDataHtml$2), true ? void 0 : void 0));
|
|
4211
4176
|
const RunDataSearch = defineAsyncComponent(
|
|
4212
|
-
async () => await __vitePreload(() => import("./RunDataSearch-
|
|
4177
|
+
async () => await __vitePreload(() => import("./RunDataSearch-Cp1pkU7O.js"), true ? __vite__mapDeps([52,1,3,2,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,53]) : void 0)
|
|
4213
4178
|
);
|
|
4214
|
-
const _sfc_main$
|
|
4179
|
+
const _sfc_main$y = defineComponent({
|
|
4215
4180
|
name: "RunData",
|
|
4216
4181
|
components: {
|
|
4217
|
-
BinaryDataDisplay: _sfc_main$
|
|
4218
|
-
NodeErrorView: _sfc_main$
|
|
4182
|
+
BinaryDataDisplay: _sfc_main$B,
|
|
4183
|
+
NodeErrorView: _sfc_main$A,
|
|
4219
4184
|
JsonEditor,
|
|
4220
4185
|
RunDataTable,
|
|
4221
4186
|
RunDataJson,
|
|
@@ -5199,7 +5164,7 @@ const editModeActions = "_editModeActions_1ozut_261";
|
|
|
5199
5164
|
const stretchVertically = "_stretchVertically_1ozut_268";
|
|
5200
5165
|
const uiBlocker = "_uiBlocker_1ozut_272";
|
|
5201
5166
|
const hintCallout = "_hintCallout_1ozut_277";
|
|
5202
|
-
const style0$
|
|
5167
|
+
const style0$l = {
|
|
5203
5168
|
infoIcon,
|
|
5204
5169
|
center,
|
|
5205
5170
|
container: container$1,
|
|
@@ -5237,13 +5202,13 @@ const style0$j = {
|
|
|
5237
5202
|
uiBlocker,
|
|
5238
5203
|
hintCallout
|
|
5239
5204
|
};
|
|
5240
|
-
const _withScopeId$4 = (n) => (pushScopeId("data-v-
|
|
5241
|
-
const _hoisted_1$
|
|
5205
|
+
const _withScopeId$4 = (n) => (pushScopeId("data-v-09e06d98"), n = n(), popScopeId(), n);
|
|
5206
|
+
const _hoisted_1$d = {
|
|
5242
5207
|
key: 0,
|
|
5243
5208
|
class: "ml-4xs"
|
|
5244
5209
|
};
|
|
5245
5210
|
const _hoisted_2$8 = { key: 0 };
|
|
5246
|
-
const _hoisted_3$
|
|
5211
|
+
const _hoisted_3$5 = ["innerHTML"];
|
|
5247
5212
|
const _hoisted_4$3 = ["data-test-id"];
|
|
5248
5213
|
const _hoisted_5$4 = { key: 0 };
|
|
5249
5214
|
const _hoisted_6$3 = { key: 1 };
|
|
@@ -5251,7 +5216,7 @@ const _hoisted_7$2 = { key: 2 };
|
|
|
5251
5216
|
const _hoisted_8$2 = { key: 3 };
|
|
5252
5217
|
const _hoisted_9$2 = { key: 4 };
|
|
5253
5218
|
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5254
|
-
var _a, _b, _c, _d, _e;
|
|
5219
|
+
var _a, _b, _c, _d, _e, _f;
|
|
5255
5220
|
const _component_n8n_link = resolveComponent("n8n-link");
|
|
5256
5221
|
const _component_n8n_callout = resolveComponent("n8n-callout");
|
|
5257
5222
|
const _component_BinaryDataDisplay = resolveComponent("BinaryDataDisplay");
|
|
@@ -5303,7 +5268,7 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5303
5268
|
]),
|
|
5304
5269
|
default: withCtx(() => [
|
|
5305
5270
|
createTextVNode(toDisplayString(_ctx.$locale.baseText("runData.pindata.thisDataIsPinned")) + " ", 1),
|
|
5306
|
-
!_ctx.isReadOnlyRoute && !_ctx.readOnlyEnv ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
5271
|
+
!_ctx.isReadOnlyRoute && !_ctx.readOnlyEnv ? (openBlock(), createElementBlock("span", _hoisted_1$d, [
|
|
5307
5272
|
createVNode(_component_n8n_link, {
|
|
5308
5273
|
theme: "secondary",
|
|
5309
5274
|
size: "small",
|
|
@@ -5587,12 +5552,12 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5587
5552
|
error: _ctx.subworkflowExecutionError,
|
|
5588
5553
|
class: normalizeClass(_ctx.$style.errorDisplay)
|
|
5589
5554
|
}, null, 8, ["error", "class"])
|
|
5590
|
-
], 2)) : !_ctx.hasNodeRun ? (openBlock(), createElementBlock("div", {
|
|
5555
|
+
], 2)) : !_ctx.hasNodeRun && !(_ctx.isInputSchemaView && ((_e = _ctx.node) == null ? void 0 : _e.disabled)) ? (openBlock(), createElementBlock("div", {
|
|
5591
5556
|
key: 3,
|
|
5592
5557
|
class: normalizeClass(_ctx.$style.center)
|
|
5593
5558
|
}, [
|
|
5594
5559
|
renderSlot(_ctx.$slots, "node-not-run", {}, void 0, true)
|
|
5595
|
-
], 2)) : _ctx.paneType === "input" && ((
|
|
5560
|
+
], 2)) : _ctx.paneType === "input" && !_ctx.isInputSchemaView && ((_f = _ctx.node) == null ? void 0 : _f.disabled) ? (openBlock(), createElementBlock("div", {
|
|
5596
5561
|
key: 4,
|
|
5597
5562
|
class: normalizeClass(_ctx.$style.center)
|
|
5598
5563
|
}, [
|
|
@@ -5705,7 +5670,7 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5705
5670
|
innerHTML: _ctx.$locale.baseText("ndv.output.tooMuchData.message", {
|
|
5706
5671
|
interpolate: { size: _ctx.dataSizeInMB }
|
|
5707
5672
|
})
|
|
5708
|
-
}, null, 8, _hoisted_3$
|
|
5673
|
+
}, null, 8, _hoisted_3$5)
|
|
5709
5674
|
]),
|
|
5710
5675
|
_: 1
|
|
5711
5676
|
}),
|
|
@@ -6016,11 +5981,11 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
6016
5981
|
}, null, 8, ["show", "class"])
|
|
6017
5982
|
], 34);
|
|
6018
5983
|
}
|
|
6019
|
-
const cssModules$
|
|
6020
|
-
"$style": style0$
|
|
5984
|
+
const cssModules$n = {
|
|
5985
|
+
"$style": style0$l
|
|
6021
5986
|
};
|
|
6022
|
-
const RunData = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6023
|
-
const _sfc_main$
|
|
5987
|
+
const RunData = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$7], ["__cssModules", cssModules$n], ["__scopeId", "data-v-09e06d98"]]);
|
|
5988
|
+
const _sfc_main$x = defineComponent({
|
|
6024
5989
|
props: {
|
|
6025
5990
|
taskData: {},
|
|
6026
5991
|
// ITaskData
|
|
@@ -6047,9 +6012,9 @@ const _sfc_main$u = defineComponent({
|
|
|
6047
6012
|
}
|
|
6048
6013
|
}
|
|
6049
6014
|
});
|
|
6050
|
-
const _hoisted_1$
|
|
6015
|
+
const _hoisted_1$c = ["innerHTML"];
|
|
6051
6016
|
const _hoisted_2$7 = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
|
|
6052
|
-
const _hoisted_3$
|
|
6017
|
+
const _hoisted_3$4 = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
|
|
6053
6018
|
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
6054
6019
|
const _component_n8n_info_tip = resolveComponent("n8n-info-tip");
|
|
6055
6020
|
const _component_n8n_text = resolveComponent("n8n-text");
|
|
@@ -6065,7 +6030,7 @@ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
6065
6030
|
innerHTML: _ctx.$locale.baseText(
|
|
6066
6031
|
_ctx.hasPinData ? "ndv.output.staleDataWarning.pinData" : "ndv.output.staleDataWarning.regular"
|
|
6067
6032
|
)
|
|
6068
|
-
}, null, 8, _hoisted_1$
|
|
6033
|
+
}, null, 8, _hoisted_1$c)
|
|
6069
6034
|
]),
|
|
6070
6035
|
_: 1
|
|
6071
6036
|
})) : _ctx.runMetadata ? (openBlock(), createBlock(_component_n8n_info_tip, {
|
|
@@ -6097,7 +6062,7 @@ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
6097
6062
|
_: 1
|
|
6098
6063
|
}),
|
|
6099
6064
|
createTextVNode(" " + toDisplayString(_ctx.runMetadata.startTime), 1),
|
|
6100
|
-
_hoisted_3$
|
|
6065
|
+
_hoisted_3$4,
|
|
6101
6066
|
createVNode(_component_n8n_text, {
|
|
6102
6067
|
bold: true,
|
|
6103
6068
|
size: "small"
|
|
@@ -6113,9 +6078,9 @@ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
6113
6078
|
_: 1
|
|
6114
6079
|
}, 8, ["theme", "data-test-id"])) : createCommentVNode("", true);
|
|
6115
6080
|
}
|
|
6116
|
-
const RunInfo = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6117
|
-
const _hoisted_1$
|
|
6118
|
-
const _sfc_main$
|
|
6081
|
+
const RunInfo = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$6]]);
|
|
6082
|
+
const _hoisted_1$b = /* @__PURE__ */ createBaseVNode("br", null, null, -1);
|
|
6083
|
+
const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
6119
6084
|
__name: "OutputPanel",
|
|
6120
6085
|
props: {
|
|
6121
6086
|
workflow: {},
|
|
@@ -6365,7 +6330,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
6365
6330
|
key: 0,
|
|
6366
6331
|
onClick: insertTestData
|
|
6367
6332
|
}, [
|
|
6368
|
-
_hoisted_1$
|
|
6333
|
+
_hoisted_1$b,
|
|
6369
6334
|
createTextVNode(" " + toDisplayString(_ctx.$locale.baseText("generic.or")) + " ", 1),
|
|
6370
6335
|
createVNode(_component_n8n_text, {
|
|
6371
6336
|
tag: "a",
|
|
@@ -6454,19 +6419,19 @@ const titleSection$1 = "_titleSection_f1tu5_11";
|
|
|
6454
6419
|
const title$2 = "_title_f1tu5_11";
|
|
6455
6420
|
const noOutputData$1 = "_noOutputData_f1tu5_27";
|
|
6456
6421
|
const recoveredOutputData$1 = "_recoveredOutputData_f1tu5_37";
|
|
6457
|
-
const style0$
|
|
6422
|
+
const style0$k = {
|
|
6458
6423
|
outputTypeSelect,
|
|
6459
6424
|
titleSection: titleSection$1,
|
|
6460
6425
|
title: title$2,
|
|
6461
6426
|
noOutputData: noOutputData$1,
|
|
6462
6427
|
recoveredOutputData: recoveredOutputData$1
|
|
6463
6428
|
};
|
|
6464
|
-
const cssModules$
|
|
6465
|
-
"$style": style0$
|
|
6429
|
+
const cssModules$m = {
|
|
6430
|
+
"$style": style0$k
|
|
6466
6431
|
};
|
|
6467
|
-
const OutputPanel = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6468
|
-
const _hoisted_1$
|
|
6469
|
-
const _sfc_main$
|
|
6432
|
+
const OutputPanel = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__cssModules", cssModules$m]]);
|
|
6433
|
+
const _hoisted_1$a = { key: 0 };
|
|
6434
|
+
const _sfc_main$v = /* @__PURE__ */ defineComponent({
|
|
6470
6435
|
__name: "InputNodeSelect",
|
|
6471
6436
|
props: {
|
|
6472
6437
|
nodes: {},
|
|
@@ -6564,7 +6529,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
|
|
|
6564
6529
|
prefix: withCtx(() => {
|
|
6565
6530
|
var _a;
|
|
6566
6531
|
return [
|
|
6567
|
-
createVNode(_sfc_main$
|
|
6532
|
+
createVNode(_sfc_main$O, {
|
|
6568
6533
|
disabled: (_a = selectedInputNode.value) == null ? void 0 : _a.disabled,
|
|
6569
6534
|
"node-type": selectedInputNodeType.value,
|
|
6570
6535
|
size: 14,
|
|
@@ -6582,7 +6547,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
|
|
|
6582
6547
|
"data-test-id": "ndv-input-option"
|
|
6583
6548
|
}, {
|
|
6584
6549
|
default: withCtx(() => [
|
|
6585
|
-
createVNode(_sfc_main$
|
|
6550
|
+
createVNode(_sfc_main$O, {
|
|
6586
6551
|
disabled: node2.disabled,
|
|
6587
6552
|
"node-type": type,
|
|
6588
6553
|
size: 14,
|
|
@@ -6593,7 +6558,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
|
|
|
6593
6558
|
class: normalizeClass(_ctx.$style.title)
|
|
6594
6559
|
}, [
|
|
6595
6560
|
createTextVNode(toDisplayString(title2(node2.name)) + " ", 1),
|
|
6596
|
-
node2.disabled ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
6561
|
+
node2.disabled ? (openBlock(), createElementBlock("span", _hoisted_1$a, "(" + toDisplayString(unref(i18n2).baseText("node.disabled")) + ")", 1)) : createCommentVNode("", true)
|
|
6597
6562
|
], 2),
|
|
6598
6563
|
createBaseVNode("span", {
|
|
6599
6564
|
class: normalizeClass(_ctx.$style.subtitle)
|
|
@@ -6614,7 +6579,7 @@ const icon = "_icon_68vpa_18";
|
|
|
6614
6579
|
const title$1 = "_title_68vpa_22";
|
|
6615
6580
|
const disabled$1 = "_disabled_68vpa_31";
|
|
6616
6581
|
const subtitle = "_subtitle_68vpa_35";
|
|
6617
|
-
const style0$
|
|
6582
|
+
const style0$j = {
|
|
6618
6583
|
select,
|
|
6619
6584
|
node: node$1,
|
|
6620
6585
|
icon,
|
|
@@ -6622,12 +6587,12 @@ const style0$h = {
|
|
|
6622
6587
|
disabled: disabled$1,
|
|
6623
6588
|
subtitle
|
|
6624
6589
|
};
|
|
6625
|
-
const cssModules$
|
|
6626
|
-
"$style": style0$
|
|
6590
|
+
const cssModules$l = {
|
|
6591
|
+
"$style": style0$j
|
|
6627
6592
|
};
|
|
6628
|
-
const InputNodeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6629
|
-
const _sfc_main$
|
|
6630
|
-
const _hoisted_1$
|
|
6593
|
+
const InputNodeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__cssModules", cssModules$l]]);
|
|
6594
|
+
const _sfc_main$u = {};
|
|
6595
|
+
const _hoisted_1$9 = {
|
|
6631
6596
|
width: "112",
|
|
6632
6597
|
height: "80",
|
|
6633
6598
|
viewBox: "0 0 112 80",
|
|
@@ -6640,10 +6605,10 @@ const _hoisted_5$3 = [
|
|
|
6640
6605
|
_hoisted_2$6
|
|
6641
6606
|
];
|
|
6642
6607
|
function _sfc_render$5(_ctx, _cache) {
|
|
6643
|
-
return openBlock(), createElementBlock("svg", _hoisted_1$
|
|
6608
|
+
return openBlock(), createElementBlock("svg", _hoisted_1$9, _hoisted_5$3);
|
|
6644
6609
|
}
|
|
6645
|
-
const WireMeUp = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6646
|
-
const _sfc_main$
|
|
6610
|
+
const WireMeUp = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$5]]);
|
|
6611
|
+
const _sfc_main$t = defineComponent({
|
|
6647
6612
|
name: "InputPanel",
|
|
6648
6613
|
components: { RunData, NodeExecuteButton, WireMeUp, InputNodeSelect },
|
|
6649
6614
|
props: {
|
|
@@ -6921,7 +6886,7 @@ const noOutputData = "_noOutputData_17wvq_18";
|
|
|
6921
6886
|
const recoveredOutputData = "_recoveredOutputData_17wvq_28";
|
|
6922
6887
|
const notConnected = "_notConnected_17wvq_37";
|
|
6923
6888
|
const title = "_title_17wvq_5";
|
|
6924
|
-
const style0$
|
|
6889
|
+
const style0$i = {
|
|
6925
6890
|
mappedNode,
|
|
6926
6891
|
titleSection,
|
|
6927
6892
|
inputModeTab,
|
|
@@ -6930,7 +6895,7 @@ const style0$g = {
|
|
|
6930
6895
|
notConnected,
|
|
6931
6896
|
title
|
|
6932
6897
|
};
|
|
6933
|
-
const _hoisted_1$
|
|
6898
|
+
const _hoisted_1$8 = ["innerHTML"];
|
|
6934
6899
|
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
6935
6900
|
const _component_n8n_radio_buttons = resolveComponent("n8n-radio-buttons");
|
|
6936
6901
|
const _component_InputNodeSelect = resolveComponent("InputNodeSelect");
|
|
@@ -7015,7 +6980,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7015
6980
|
innerHTML: _ctx.$locale.baseText("dataMapping.dragFromPreviousHint", {
|
|
7016
6981
|
interpolate: { name: _ctx.focusedMappableInput }
|
|
7017
6982
|
})
|
|
7018
|
-
}, null, 8, _hoisted_1$
|
|
6983
|
+
}, null, 8, _hoisted_1$8)
|
|
7019
6984
|
]),
|
|
7020
6985
|
default: withCtx(() => [
|
|
7021
6986
|
createVNode(_component_NodeExecuteButton, {
|
|
@@ -7134,16 +7099,16 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7134
7099
|
} : void 0
|
|
7135
7100
|
]), 1032, ["node", "nodes", "workflow", "run-index", "linked-runs", "can-link-runs", "too-much-data-title", "no-data-in-branch-message", "is-executing", "executing-message", "push-ref", "override-outputs", "mapping-enabled", "distance-from-active", "is-production-execution-preview", "is-pane-active", "onActivatePane", "onLinkRun", "onUnlinkRun", "onRunChange"]);
|
|
7136
7101
|
}
|
|
7137
|
-
const cssModules$
|
|
7138
|
-
"$style": style0$
|
|
7102
|
+
const cssModules$k = {
|
|
7103
|
+
"$style": style0$i
|
|
7139
7104
|
};
|
|
7140
|
-
const InputPanel = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
7141
|
-
const _sfc_main$
|
|
7105
|
+
const InputPanel = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$4], ["__cssModules", cssModules$k]]);
|
|
7106
|
+
const _sfc_main$s = defineComponent({
|
|
7142
7107
|
name: "TriggerPanel",
|
|
7143
7108
|
components: {
|
|
7144
7109
|
NodeExecuteButton,
|
|
7145
7110
|
CopyInput,
|
|
7146
|
-
NodeIcon: _sfc_main$
|
|
7111
|
+
NodeIcon: _sfc_main$O
|
|
7147
7112
|
},
|
|
7148
7113
|
props: {
|
|
7149
7114
|
nodeName: {
|
|
@@ -7445,7 +7410,7 @@ const header = "_header_1evnm_18";
|
|
|
7445
7410
|
const action = "_action_1evnm_25";
|
|
7446
7411
|
const shake$1 = "_shake_1evnm_29";
|
|
7447
7412
|
const accordion = "_accordion_1evnm_50";
|
|
7448
|
-
const style0$
|
|
7413
|
+
const style0$h = {
|
|
7449
7414
|
container,
|
|
7450
7415
|
header,
|
|
7451
7416
|
action,
|
|
@@ -7453,9 +7418,9 @@ const style0$f = {
|
|
|
7453
7418
|
accordion
|
|
7454
7419
|
};
|
|
7455
7420
|
const _withScopeId$3 = (n) => (pushScopeId("data-v-36b80c39"), n = n(), popScopeId(), n);
|
|
7456
|
-
const _hoisted_1$
|
|
7421
|
+
const _hoisted_1$7 = { key: "empty" };
|
|
7457
7422
|
const _hoisted_2$5 = { key: "listening" };
|
|
7458
|
-
const _hoisted_3$
|
|
7423
|
+
const _hoisted_3$3 = { key: 0 };
|
|
7459
7424
|
const _hoisted_4$2 = { key: 1 };
|
|
7460
7425
|
const _hoisted_5$2 = { key: 0 };
|
|
7461
7426
|
const _hoisted_6$2 = { key: "default" };
|
|
@@ -7484,7 +7449,7 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7484
7449
|
mode: "out-in"
|
|
7485
7450
|
}, {
|
|
7486
7451
|
default: withCtx(() => [
|
|
7487
|
-
_ctx.hasIssues || _ctx.hideContent ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
7452
|
+
_ctx.hasIssues || _ctx.hideContent ? (openBlock(), createElementBlock("div", _hoisted_1$7)) : _ctx.isListeningForEvents ? (openBlock(), createElementBlock("div", _hoisted_2$5, [
|
|
7488
7453
|
createVNode(_component_n8n_pulse, null, {
|
|
7489
7454
|
default: withCtx(() => [
|
|
7490
7455
|
createVNode(_component_NodeIcon, {
|
|
@@ -7494,7 +7459,7 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7494
7459
|
]),
|
|
7495
7460
|
_: 1
|
|
7496
7461
|
}),
|
|
7497
|
-
_ctx.isWebhookNode ? (openBlock(), createElementBlock("div", _hoisted_3$
|
|
7462
|
+
_ctx.isWebhookNode ? (openBlock(), createElementBlock("div", _hoisted_3$3, [
|
|
7498
7463
|
createVNode(_component_n8n_text, {
|
|
7499
7464
|
tag: "div",
|
|
7500
7465
|
size: "large",
|
|
@@ -7650,11 +7615,11 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7650
7615
|
})
|
|
7651
7616
|
], 2);
|
|
7652
7617
|
}
|
|
7653
|
-
const cssModules$
|
|
7654
|
-
"$style": style0$
|
|
7618
|
+
const cssModules$j = {
|
|
7619
|
+
"$style": style0$h
|
|
7655
7620
|
};
|
|
7656
|
-
const TriggerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
7657
|
-
const _sfc_main$
|
|
7621
|
+
const TriggerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render$3], ["__cssModules", cssModules$j], ["__scopeId", "data-v-36b80c39"]]);
|
|
7622
|
+
const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
7658
7623
|
__name: "NodeDetailsView",
|
|
7659
7624
|
props: {
|
|
7660
7625
|
workflowObject: {},
|
|
@@ -8325,15 +8290,15 @@ const style1 = {
|
|
|
8325
8290
|
backToCanvas,
|
|
8326
8291
|
featureRequest
|
|
8327
8292
|
};
|
|
8328
|
-
const cssModules$
|
|
8293
|
+
const cssModules$i = {
|
|
8329
8294
|
"$style": style1
|
|
8330
8295
|
};
|
|
8331
|
-
const NodeDetailsView = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
8296
|
+
const NodeDetailsView = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__cssModules", cssModules$i]]);
|
|
8332
8297
|
const NodeDetailsView$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
8333
8298
|
__proto__: null,
|
|
8334
8299
|
default: NodeDetailsView
|
|
8335
8300
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
8336
|
-
const _sfc_main$
|
|
8301
|
+
const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
8337
8302
|
__name: "ContextMenu",
|
|
8338
8303
|
emits: ["action"],
|
|
8339
8304
|
setup(__props, { emit: __emit }) {
|
|
@@ -8399,14 +8364,14 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
|
8399
8364
|
});
|
|
8400
8365
|
const contextMenu = "_contextMenu_1t4kq_1";
|
|
8401
8366
|
const activator = "_activator_1t4kq_5";
|
|
8402
|
-
const style0$
|
|
8367
|
+
const style0$g = {
|
|
8403
8368
|
contextMenu,
|
|
8404
8369
|
activator
|
|
8405
8370
|
};
|
|
8406
|
-
const cssModules$
|
|
8407
|
-
"$style": style0$
|
|
8371
|
+
const cssModules$h = {
|
|
8372
|
+
"$style": style0$g
|
|
8408
8373
|
};
|
|
8409
|
-
const ContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
8374
|
+
const ContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__cssModules", cssModules$h]]);
|
|
8410
8375
|
function useNodeBase({
|
|
8411
8376
|
name,
|
|
8412
8377
|
instance,
|
|
@@ -8897,12 +8862,12 @@ function useNodeBase({
|
|
|
8897
8862
|
outputs: outputs2
|
|
8898
8863
|
};
|
|
8899
8864
|
}
|
|
8900
|
-
const _sfc_main$
|
|
8865
|
+
const _sfc_main$p = defineComponent({
|
|
8901
8866
|
name: "Node",
|
|
8902
8867
|
components: {
|
|
8903
8868
|
TitledList,
|
|
8904
8869
|
FontAwesomeIcon,
|
|
8905
|
-
NodeIcon: _sfc_main$
|
|
8870
|
+
NodeIcon: _sfc_main$O
|
|
8906
8871
|
},
|
|
8907
8872
|
props: {
|
|
8908
8873
|
isProductionExecutionPreview: {
|
|
@@ -9479,9 +9444,9 @@ const _sfc_main$m = defineComponent({
|
|
|
9479
9444
|
}
|
|
9480
9445
|
});
|
|
9481
9446
|
const _withScopeId$2 = (n) => (pushScopeId("data-v-45f1741d"), n = n(), popScopeId(), n);
|
|
9482
|
-
const _hoisted_1$
|
|
9447
|
+
const _hoisted_1$6 = ["id", "data-name", "data-node-type"];
|
|
9483
9448
|
const _hoisted_2$4 = { class: "select-background" };
|
|
9484
|
-
const _hoisted_3$
|
|
9449
|
+
const _hoisted_3$2 = {
|
|
9485
9450
|
key: 0,
|
|
9486
9451
|
class: "trigger-icon"
|
|
9487
9452
|
};
|
|
@@ -9560,7 +9525,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9560
9525
|
style: normalizeStyle(_ctx.nodeStyle),
|
|
9561
9526
|
onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.onClick && _ctx.onClick(...args), ["left"]))
|
|
9562
9527
|
}, [
|
|
9563
|
-
_ctx.isTriggerNode ? (openBlock(), createElementBlock("i", _hoisted_3$
|
|
9528
|
+
_ctx.isTriggerNode ? (openBlock(), createElementBlock("i", _hoisted_3$2, [
|
|
9564
9529
|
createVNode(_component_n8n_tooltip, { placement: "bottom" }, {
|
|
9565
9530
|
content: withCtx(() => [
|
|
9566
9531
|
createBaseVNode("span", {
|
|
@@ -9741,10 +9706,10 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9741
9706
|
], 544)), [
|
|
9742
9707
|
[vShow, !_ctx.hideActions]
|
|
9743
9708
|
]) : createCommentVNode("", true)
|
|
9744
|
-
], 46, _hoisted_1$
|
|
9709
|
+
], 46, _hoisted_1$6)) : createCommentVNode("", true);
|
|
9745
9710
|
}
|
|
9746
|
-
const Node = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9747
|
-
const _sfc_main$
|
|
9711
|
+
const Node$1 = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$2], ["__scopeId", "data-v-45f1741d"]]);
|
|
9712
|
+
const _sfc_main$o = defineComponent({
|
|
9748
9713
|
name: "Sticky",
|
|
9749
9714
|
props: {
|
|
9750
9715
|
nodeViewScale: {
|
|
@@ -10011,16 +9976,16 @@ const _sfc_main$l = defineComponent({
|
|
|
10011
9976
|
}
|
|
10012
9977
|
}
|
|
10013
9978
|
});
|
|
10014
|
-
const _withScopeId$1 = (n) => (pushScopeId("data-v-
|
|
10015
|
-
const _hoisted_1$
|
|
9979
|
+
const _withScopeId$1 = (n) => (pushScopeId("data-v-679f99cc"), n = n(), popScopeId(), n);
|
|
9980
|
+
const _hoisted_1$5 = ["id", "data-name"];
|
|
10016
9981
|
const _hoisted_2$3 = { class: "select-sticky-background" };
|
|
10017
|
-
const _hoisted_3 = ["title"];
|
|
9982
|
+
const _hoisted_3$1 = ["title"];
|
|
10018
9983
|
const _hoisted_4 = ["title"];
|
|
10019
9984
|
const _hoisted_5 = { class: "content" };
|
|
10020
9985
|
const _hoisted_6 = ["onClick"];
|
|
10021
9986
|
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10022
9987
|
var _a, _b;
|
|
10023
|
-
const
|
|
9988
|
+
const _component_N8nResizeableSticky = resolveComponent("N8nResizeableSticky");
|
|
10024
9989
|
const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
|
|
10025
9990
|
const _component_n8n_popover = resolveComponent("n8n-popover");
|
|
10026
9991
|
const _directive_touch = resolveDirective("touch");
|
|
@@ -10049,7 +10014,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10049
10014
|
onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.mouseLeftClick && _ctx.mouseLeftClick(...args), ["left"])),
|
|
10050
10015
|
onContextmenu: _cache[1] || (_cache[1] = (...args) => _ctx.onContextMenu && _ctx.onContextMenu(...args))
|
|
10051
10016
|
}, [
|
|
10052
|
-
_ctx.node ? (openBlock(), createBlock(
|
|
10017
|
+
_ctx.node ? (openBlock(), createBlock(_component_N8nResizeableSticky, {
|
|
10053
10018
|
key: 0,
|
|
10054
10019
|
id: _ctx.node.id,
|
|
10055
10020
|
"model-value": _ctx.node.parameters.content,
|
|
@@ -10081,7 +10046,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10081
10046
|
title: _ctx.$locale.baseText("node.delete")
|
|
10082
10047
|
}, [
|
|
10083
10048
|
createVNode(_component_font_awesome_icon, { icon: "trash" })
|
|
10084
|
-
], 8, _hoisted_3)), [
|
|
10049
|
+
], 8, _hoisted_3$1)), [
|
|
10085
10050
|
[_directive_touch, _ctx.deleteNode, "tap"]
|
|
10086
10051
|
]),
|
|
10087
10052
|
createVNode(_component_n8n_popover, {
|
|
@@ -10128,9 +10093,9 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10128
10093
|
[vShow, _ctx.showActions]
|
|
10129
10094
|
])
|
|
10130
10095
|
], 6)
|
|
10131
|
-
], 12, _hoisted_1$
|
|
10096
|
+
], 12, _hoisted_1$5);
|
|
10132
10097
|
}
|
|
10133
|
-
const Sticky = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
10098
|
+
const Sticky = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$1], ["__scopeId", "data-v-679f99cc"]]);
|
|
10134
10099
|
const SEQUENTIAL_BONUS = 60;
|
|
10135
10100
|
const SEPARATOR_BONUS = 30;
|
|
10136
10101
|
const CAMEL_BONUS = 30;
|
|
@@ -10960,10 +10925,19 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
|
|
|
10960
10925
|
return stack.items ? extendItemsWithUUID(stack.items) : [];
|
|
10961
10926
|
}
|
|
10962
10927
|
if (stack.search && searchBaseItems.value) {
|
|
10963
|
-
|
|
10928
|
+
let searchBase = searchBaseItems.value;
|
|
10964
10929
|
const canvasHasAINodes = useCanvasStore().aiNodes.length > 0;
|
|
10965
|
-
|
|
10966
|
-
|
|
10930
|
+
if (searchBaseItems.value.length === 0) {
|
|
10931
|
+
searchBase = flattenCreateElements(stack.baselineItems ?? []);
|
|
10932
|
+
}
|
|
10933
|
+
if (
|
|
10934
|
+
// Filter-out AI sub-nodes if canvas has no AI nodes and the root view is not AI
|
|
10935
|
+
!(isAiRootView(stack) || canvasHasAINodes) || // or if the source is a plus endpoint or a node connection drop
|
|
10936
|
+
["plus_endpoint", "node_connection_drop"].includes(nodeCreatorStore.openSource)
|
|
10937
|
+
) {
|
|
10938
|
+
searchBase = filterOutAiNodes(searchBase);
|
|
10939
|
+
}
|
|
10940
|
+
const searchResults = extendItemsWithUUID(searchNodes(stack.search || "", searchBase));
|
|
10967
10941
|
const groupedNodes = groupIfAiNodes(searchResults, false) ?? searchResults;
|
|
10968
10942
|
stack.activeIndex = groupedNodes.some((node2) => node2.type === "section") ? 1 : 0;
|
|
10969
10943
|
return groupedNodes;
|
|
@@ -11031,11 +11005,24 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
|
|
|
11031
11005
|
function isAiRootView(stack) {
|
|
11032
11006
|
return stack.rootView === AI_NODE_CREATOR_VIEW;
|
|
11033
11007
|
}
|
|
11008
|
+
function filterAiRootNodes(items) {
|
|
11009
|
+
return items.filter((node2) => {
|
|
11010
|
+
var _a, _b;
|
|
11011
|
+
if (node2.type !== "node")
|
|
11012
|
+
return false;
|
|
11013
|
+
return (_b = (_a = node2.properties.codex) == null ? void 0 : _a.subcategories) == null ? void 0 : _b[AI_SUBCATEGORY].includes(
|
|
11014
|
+
AI_CATEGORY_ROOT_NODES
|
|
11015
|
+
);
|
|
11016
|
+
});
|
|
11017
|
+
}
|
|
11034
11018
|
function groupIfAiNodes(items, sortAlphabetically = true) {
|
|
11035
11019
|
const aiNodes = items.filter((node2) => isAINode(node2));
|
|
11036
|
-
|
|
11020
|
+
const canvasHasAINodes = useCanvasStore().aiNodes.length > 0;
|
|
11021
|
+
if (aiNodes.length > 0 && (canvasHasAINodes || isAiRootView(getLastActiveStack()))) {
|
|
11037
11022
|
const sectionsMap = /* @__PURE__ */ new Map();
|
|
11038
|
-
aiNodes
|
|
11023
|
+
const aiRootNodes = filterAiRootNodes(aiNodes);
|
|
11024
|
+
const aiSubNodes = difference(aiNodes, aiRootNodes);
|
|
11025
|
+
aiSubNodes.forEach((node2) => {
|
|
11039
11026
|
var _a, _b, _c, _d, _e, _f;
|
|
11040
11027
|
const section = (_c = (_b = (_a = node2.properties.codex) == null ? void 0 : _a.subcategories) == null ? void 0 : _b[AI_SUBCATEGORY]) == null ? void 0 : _c[0];
|
|
11041
11028
|
if (section) {
|
|
@@ -11051,26 +11038,12 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
|
|
|
11051
11038
|
}
|
|
11052
11039
|
});
|
|
11053
11040
|
const nonAiNodes = difference(items, aiNodes);
|
|
11054
|
-
const nonAiTriggerNodes = nonAiNodes.filter(
|
|
11055
|
-
(item) => item.type === "node" && useNodeTypesStore().isTriggerNode(item.properties.name)
|
|
11056
|
-
);
|
|
11057
|
-
const nonAiRegularNodes = difference(nonAiNodes, nonAiTriggerNodes);
|
|
11058
|
-
if (nonAiNodes.length > 0) {
|
|
11059
|
-
let sectionKey = "";
|
|
11060
|
-
if (nonAiRegularNodes.length && nonAiTriggerNodes.length) {
|
|
11061
|
-
sectionKey = i18n2.baseText("nodeCreator.actionsCategory.regularAndTriggers");
|
|
11062
|
-
} else {
|
|
11063
|
-
sectionKey = nonAiRegularNodes.length ? i18n2.baseText("nodeCreator.actionsCategory.regularNodes") : i18n2.baseText("nodeCreator.actionsCategory.triggerNodes");
|
|
11064
|
-
}
|
|
11065
|
-
const nodesKeys = nonAiNodes.map((node2) => node2.key);
|
|
11066
|
-
sectionsMap.set(sectionKey, {
|
|
11067
|
-
key: sectionKey,
|
|
11068
|
-
title: sectionKey,
|
|
11069
|
-
items: [...nodesKeys]
|
|
11070
|
-
});
|
|
11071
|
-
}
|
|
11072
11041
|
const sections = Array.from(sectionsMap.values());
|
|
11073
|
-
return
|
|
11042
|
+
return [
|
|
11043
|
+
...nonAiNodes,
|
|
11044
|
+
...aiRootNodes,
|
|
11045
|
+
...groupItemsInSections(aiSubNodes, sections, sortAlphabetically)
|
|
11046
|
+
];
|
|
11074
11047
|
}
|
|
11075
11048
|
return items;
|
|
11076
11049
|
}
|
|
@@ -11227,23 +11200,41 @@ function mapLegacyConnectionsToCanvasConnections(legacyConnections, nodes) {
|
|
|
11227
11200
|
const mappedConnections = [];
|
|
11228
11201
|
Object.keys(legacyConnections).forEach((fromNodeName) => {
|
|
11229
11202
|
var _a;
|
|
11230
|
-
const fromId = (_a = nodes.find((node2) => node2.name === fromNodeName)) == null ? void 0 : _a.id;
|
|
11231
|
-
const fromConnectionTypes = Object.keys(
|
|
11203
|
+
const fromId = ((_a = nodes.find((node2) => node2.name === fromNodeName)) == null ? void 0 : _a.id) ?? "";
|
|
11204
|
+
const fromConnectionTypes = Object.keys(
|
|
11205
|
+
legacyConnections[fromNodeName]
|
|
11206
|
+
);
|
|
11232
11207
|
fromConnectionTypes.forEach((fromConnectionType) => {
|
|
11233
11208
|
const fromPorts = legacyConnections[fromNodeName][fromConnectionType];
|
|
11234
11209
|
fromPorts.forEach((toPorts, fromIndex) => {
|
|
11235
11210
|
toPorts.forEach((toPort) => {
|
|
11236
11211
|
var _a2;
|
|
11237
|
-
const toId = (_a2 = nodes.find((node2) => node2.name === toPort.node)) == null ? void 0 : _a2.id;
|
|
11212
|
+
const toId = ((_a2 = nodes.find((node2) => node2.name === toPort.node)) == null ? void 0 : _a2.id) ?? "";
|
|
11238
11213
|
const toConnectionType = toPort.type;
|
|
11239
11214
|
const toIndex = toPort.index;
|
|
11215
|
+
const sourceHandle = createCanvasConnectionHandleString({
|
|
11216
|
+
mode: CanvasConnectionMode.Output,
|
|
11217
|
+
type: fromConnectionType,
|
|
11218
|
+
index: fromIndex
|
|
11219
|
+
});
|
|
11220
|
+
const targetHandle = createCanvasConnectionHandleString({
|
|
11221
|
+
mode: CanvasConnectionMode.Input,
|
|
11222
|
+
type: toConnectionType,
|
|
11223
|
+
index: toIndex
|
|
11224
|
+
});
|
|
11225
|
+
const connectionId = createCanvasConnectionId({
|
|
11226
|
+
source: fromId,
|
|
11227
|
+
sourceHandle,
|
|
11228
|
+
target: toId,
|
|
11229
|
+
targetHandle
|
|
11230
|
+
});
|
|
11240
11231
|
if (fromId && toId) {
|
|
11241
11232
|
mappedConnections.push({
|
|
11242
|
-
id:
|
|
11233
|
+
id: connectionId,
|
|
11243
11234
|
source: fromId,
|
|
11244
11235
|
target: toId,
|
|
11245
|
-
sourceHandle
|
|
11246
|
-
targetHandle
|
|
11236
|
+
sourceHandle,
|
|
11237
|
+
targetHandle,
|
|
11247
11238
|
data: {
|
|
11248
11239
|
fromNodeName,
|
|
11249
11240
|
source: {
|
|
@@ -11277,6 +11268,14 @@ function parseCanvasConnectionHandleString(handle2) {
|
|
|
11277
11268
|
index: resolvedIndex
|
|
11278
11269
|
};
|
|
11279
11270
|
}
|
|
11271
|
+
function getVueFlowConnectorLengths(connection) {
|
|
11272
|
+
const connectionId = createCanvasConnectionId(connection);
|
|
11273
|
+
const edgeRef = document.getElementById(connectionId);
|
|
11274
|
+
if (!edgeRef) {
|
|
11275
|
+
return [PUSH_NODES_OFFSET, PUSH_NODES_OFFSET];
|
|
11276
|
+
}
|
|
11277
|
+
return [edgeRef.clientWidth, edgeRef.clientHeight];
|
|
11278
|
+
}
|
|
11280
11279
|
function createCanvasConnectionHandleString({
|
|
11281
11280
|
mode,
|
|
11282
11281
|
type = NodeConnectionType.Main,
|
|
@@ -11284,6 +11283,9 @@ function createCanvasConnectionHandleString({
|
|
|
11284
11283
|
}) {
|
|
11285
11284
|
return `${mode}/${type}/${index}`;
|
|
11286
11285
|
}
|
|
11286
|
+
function createCanvasConnectionId(connection) {
|
|
11287
|
+
return `[${connection.source}/${connection.sourceHandle}][${connection.target}/${connection.targetHandle}]`;
|
|
11288
|
+
}
|
|
11287
11289
|
function mapCanvasConnectionToLegacyConnection(sourceNode, targetNode, connection) {
|
|
11288
11290
|
const sourceNodeName = (sourceNode == null ? void 0 : sourceNode.name) ?? "";
|
|
11289
11291
|
const { type: sourceType, index: sourceIndex } = parseCanvasConnectionHandleString(
|
|
@@ -11382,15 +11384,15 @@ const useNodeCreatorStore = defineStore(STORES.NODE_CREATOR, () => {
|
|
|
11382
11384
|
});
|
|
11383
11385
|
} else if (connectionType2 && nodeData) {
|
|
11384
11386
|
openNodeCreatorForConnectingNode({
|
|
11385
|
-
|
|
11386
|
-
|
|
11387
|
-
|
|
11388
|
-
|
|
11389
|
-
|
|
11390
|
-
|
|
11391
|
-
|
|
11392
|
-
|
|
11393
|
-
|
|
11387
|
+
connection: {
|
|
11388
|
+
source: nodeData.id,
|
|
11389
|
+
sourceHandle: createCanvasConnectionHandleString({
|
|
11390
|
+
mode: "inputs",
|
|
11391
|
+
type: connectionType2,
|
|
11392
|
+
index: 0
|
|
11393
|
+
})
|
|
11394
|
+
},
|
|
11395
|
+
eventSource: NODE_CREATOR_OPEN_SOURCES.NOTICE_ERROR_MESSAGE
|
|
11394
11396
|
});
|
|
11395
11397
|
}
|
|
11396
11398
|
});
|
|
@@ -11447,28 +11449,44 @@ const useNodeCreatorStore = defineStore(STORES.NODE_CREATOR, () => {
|
|
|
11447
11449
|
workflow_id: workflowId
|
|
11448
11450
|
});
|
|
11449
11451
|
}
|
|
11450
|
-
function openNodeCreatorForConnectingNode(
|
|
11451
|
-
|
|
11452
|
-
|
|
11453
|
-
|
|
11452
|
+
function openNodeCreatorForConnectingNode({
|
|
11453
|
+
connection,
|
|
11454
|
+
eventSource,
|
|
11455
|
+
nodeCreatorView
|
|
11456
|
+
}) {
|
|
11457
|
+
const sourceNode = workflowsStore.getNodeById(connection.source);
|
|
11454
11458
|
if (!sourceNode) {
|
|
11455
11459
|
return;
|
|
11456
11460
|
}
|
|
11461
|
+
const { type, index, mode } = parseCanvasConnectionHandleString(connection.sourceHandle);
|
|
11457
11462
|
uiStore.lastSelectedNode = sourceNode.name;
|
|
11458
|
-
uiStore.lastSelectedNodeEndpointUuid =
|
|
11459
|
-
uiStore.lastSelectedNodeOutputIndex =
|
|
11463
|
+
uiStore.lastSelectedNodeEndpointUuid = connection.sourceHandle ?? null;
|
|
11464
|
+
uiStore.lastSelectedNodeOutputIndex = index;
|
|
11465
|
+
if (isVueFlowConnection(connection)) {
|
|
11466
|
+
uiStore.lastSelectedNodeConnection = connection;
|
|
11467
|
+
}
|
|
11460
11468
|
openNodeCreator({
|
|
11461
|
-
source:
|
|
11469
|
+
source: eventSource,
|
|
11462
11470
|
createNodeActive: true,
|
|
11463
|
-
nodeCreatorView
|
|
11471
|
+
nodeCreatorView
|
|
11464
11472
|
});
|
|
11465
|
-
const isOutput =
|
|
11473
|
+
const isOutput = mode === CanvasConnectionMode.Output;
|
|
11466
11474
|
const isScopedConnection = type !== NodeConnectionType.Main && nodeConnectionTypes.includes(type);
|
|
11467
11475
|
if (isScopedConnection) {
|
|
11468
11476
|
useViewStacks().gotoCompatibleConnectionView(type, isOutput, getNodeCreatorFilter(sourceNode.name, type)).catch(() => {
|
|
11469
11477
|
});
|
|
11470
11478
|
}
|
|
11471
11479
|
}
|
|
11480
|
+
function openNodeCreatorForTriggerNodes(source) {
|
|
11481
|
+
ndvStore.activeNodeName = null;
|
|
11482
|
+
setSelectedView(TRIGGER_NODE_CREATOR_VIEW);
|
|
11483
|
+
setShowScrim(true);
|
|
11484
|
+
openNodeCreator({
|
|
11485
|
+
source,
|
|
11486
|
+
createNodeActive: true,
|
|
11487
|
+
nodeCreatorView: TRIGGER_NODE_CREATOR_VIEW
|
|
11488
|
+
});
|
|
11489
|
+
}
|
|
11472
11490
|
function getNodeCreatorFilter(nodeName, outputType) {
|
|
11473
11491
|
let filter;
|
|
11474
11492
|
const workflow = workflowsStore.getCurrentWorkflow();
|
|
@@ -11504,11 +11522,12 @@ const useNodeCreatorStore = defineStore(STORES.NODE_CREATOR, () => {
|
|
|
11504
11522
|
openNodeCreator,
|
|
11505
11523
|
openSelectiveNodeCreator,
|
|
11506
11524
|
openNodeCreatorForConnectingNode,
|
|
11525
|
+
openNodeCreatorForTriggerNodes,
|
|
11507
11526
|
allNodeCreatorNodes
|
|
11508
11527
|
};
|
|
11509
11528
|
});
|
|
11510
|
-
const _hoisted_1$
|
|
11511
|
-
const _sfc_main$
|
|
11529
|
+
const _hoisted_1$4 = ["textContent"];
|
|
11530
|
+
const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
11512
11531
|
__name: "CanvasAddButton",
|
|
11513
11532
|
props: {
|
|
11514
11533
|
showTooltip: { type: Boolean },
|
|
@@ -11557,23 +11576,23 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
11557
11576
|
createBaseVNode("p", {
|
|
11558
11577
|
class: normalizeClass(_ctx.$style.label),
|
|
11559
11578
|
textContent: toDisplayString(_ctx.$locale.baseText("nodeView.canvasAddButton.addFirstStep"))
|
|
11560
|
-
}, null, 10, _hoisted_1$
|
|
11579
|
+
}, null, 10, _hoisted_1$4)
|
|
11561
11580
|
], 6);
|
|
11562
11581
|
};
|
|
11563
11582
|
}
|
|
11564
11583
|
});
|
|
11565
11584
|
const canvasAddButton = "_canvasAddButton_1easi_1";
|
|
11566
|
-
const button = "_button_1easi_13";
|
|
11567
|
-
const label$
|
|
11568
|
-
const style0$
|
|
11585
|
+
const button$1 = "_button_1easi_13";
|
|
11586
|
+
const label$5 = "_label_1easi_34";
|
|
11587
|
+
const style0$f = {
|
|
11569
11588
|
canvasAddButton,
|
|
11570
|
-
button,
|
|
11571
|
-
label: label$
|
|
11589
|
+
button: button$1,
|
|
11590
|
+
label: label$5
|
|
11572
11591
|
};
|
|
11573
|
-
const cssModules$
|
|
11574
|
-
"$style": style0$
|
|
11592
|
+
const cssModules$g = {
|
|
11593
|
+
"$style": style0$f
|
|
11575
11594
|
};
|
|
11576
|
-
const CanvasAddButton = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
11595
|
+
const CanvasAddButton = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__cssModules", cssModules$g]]);
|
|
11577
11596
|
function useCanvasPanning(elementRef, options = {}) {
|
|
11578
11597
|
const uiStore = useUIStore();
|
|
11579
11598
|
const moveLastPosition = ref([0, 0]);
|
|
@@ -11637,19 +11656,19 @@ function useCanvasPanning(elementRef, options = {}) {
|
|
|
11637
11656
|
};
|
|
11638
11657
|
}
|
|
11639
11658
|
const NodeCreation = defineAsyncComponent(
|
|
11640
|
-
async () => await __vitePreload(() => import("./NodeCreation-
|
|
11659
|
+
async () => await __vitePreload(() => import("./NodeCreation-DDxu1Y6l.js").then((n) => n.N), true ? __vite__mapDeps([54,5,6,7,4,1,8,9,10,11,3,2,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,55]) : void 0)
|
|
11641
11660
|
);
|
|
11642
11661
|
const CanvasControls = defineAsyncComponent(
|
|
11643
|
-
async () => await __vitePreload(() => import("./CanvasControls-
|
|
11662
|
+
async () => await __vitePreload(() => import("./CanvasControls-BEPEvUZz.js"), true ? __vite__mapDeps([56,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,57]) : void 0)
|
|
11644
11663
|
);
|
|
11645
11664
|
const SetupWorkflowCredentialsButton = defineAsyncComponent(
|
|
11646
|
-
async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-
|
|
11665
|
+
async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-Cl1OTBlm.js"), true ? __vite__mapDeps([58,1,3,2,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]) : void 0)
|
|
11647
11666
|
);
|
|
11648
|
-
const _sfc_main$
|
|
11667
|
+
const _sfc_main$m = defineComponent({
|
|
11649
11668
|
name: "NodeView",
|
|
11650
11669
|
components: {
|
|
11651
11670
|
NodeDetailsView,
|
|
11652
|
-
Node,
|
|
11671
|
+
Node: Node$1,
|
|
11653
11672
|
Sticky,
|
|
11654
11673
|
CanvasAddButton,
|
|
11655
11674
|
KeyboardShortcutTooltip,
|
|
@@ -13487,7 +13506,7 @@ const _sfc_main$j = defineComponent({
|
|
|
13487
13506
|
}
|
|
13488
13507
|
this.$telemetry.trackNodesPanel("nodeView.addNodeButton", trackProperties);
|
|
13489
13508
|
}
|
|
13490
|
-
if (trackHistory) {
|
|
13509
|
+
if (trackHistory && !isAutoAdd) {
|
|
13491
13510
|
this.deselectAllNodes();
|
|
13492
13511
|
setTimeout(() => {
|
|
13493
13512
|
this.nodeSelectedByName(
|
|
@@ -15115,8 +15134,8 @@ const style2 = {
|
|
|
15115
15134
|
shake,
|
|
15116
15135
|
setupCredentialsButtonWrapper
|
|
15117
15136
|
};
|
|
15118
|
-
const _withScopeId = (n) => (pushScopeId("data-v-
|
|
15119
|
-
const _hoisted_1$
|
|
15137
|
+
const _withScopeId = (n) => (pushScopeId("data-v-6169c2fe"), n = n(), popScopeId(), n);
|
|
15138
|
+
const _hoisted_1$3 = ["textContent"];
|
|
15120
15139
|
const _hoisted_2$2 = {
|
|
15121
15140
|
key: 0,
|
|
15122
15141
|
class: "workflow-execute-wrapper"
|
|
@@ -15204,7 +15223,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
15204
15223
|
"custom-tooltip": withCtx(() => [
|
|
15205
15224
|
createBaseVNode("span", {
|
|
15206
15225
|
textContent: toDisplayString(_ctx.$locale.baseText("nodeView.canvasAddButton.addATriggerNodeBeforeExecuting"))
|
|
15207
|
-
}, null, 8, _hoisted_1$
|
|
15226
|
+
}, null, 8, _hoisted_1$3)
|
|
15208
15227
|
]),
|
|
15209
15228
|
_: 2
|
|
15210
15229
|
}, 1032, ["name", "is-read-only", "instance", "is-active", "hide-actions", "is-production-execution-preview", "workflow", "disable-pointer-events", "hide-node-issues", "onDeselectAllNodes", "onDeselectNode", "onNodeSelected", "onRunWorkflow", "onMoved", "onRun"]);
|
|
@@ -15344,15 +15363,16 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
15344
15363
|
], 32)
|
|
15345
15364
|
], 2);
|
|
15346
15365
|
}
|
|
15347
|
-
const cssModules$
|
|
15366
|
+
const cssModules$f = {
|
|
15348
15367
|
"$style": style2
|
|
15349
15368
|
};
|
|
15350
|
-
const NodeViewV1 = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15369
|
+
const NodeViewV1 = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render], ["__cssModules", cssModules$f], ["__scopeId", "data-v-6169c2fe"]]);
|
|
15351
15370
|
function useCanvasNode() {
|
|
15352
15371
|
const node2 = inject(CanvasNodeKey);
|
|
15353
15372
|
const data = computed(
|
|
15354
15373
|
() => (node2 == null ? void 0 : node2.data.value) ?? {
|
|
15355
15374
|
id: "",
|
|
15375
|
+
name: "",
|
|
15356
15376
|
type: "",
|
|
15357
15377
|
typeVersion: 1,
|
|
15358
15378
|
disabled: false,
|
|
@@ -15366,12 +15386,14 @@ function useCanvasNode() {
|
|
|
15366
15386
|
},
|
|
15367
15387
|
runData: { count: 0, visible: false },
|
|
15368
15388
|
render: {
|
|
15369
|
-
type:
|
|
15389
|
+
type: CanvasNodeRenderType.Default,
|
|
15370
15390
|
options: {}
|
|
15371
15391
|
}
|
|
15372
15392
|
}
|
|
15373
15393
|
);
|
|
15394
|
+
const id = computed(() => (node2 == null ? void 0 : node2.id.value) ?? "");
|
|
15374
15395
|
const label2 = computed(() => (node2 == null ? void 0 : node2.label.value) ?? "");
|
|
15396
|
+
const name = computed(() => data.value.name);
|
|
15375
15397
|
const inputs = computed(() => data.value.inputs);
|
|
15376
15398
|
const outputs2 = computed(() => data.value.outputs);
|
|
15377
15399
|
const connections2 = computed(() => data.value.connections);
|
|
@@ -15386,9 +15408,11 @@ function useCanvasNode() {
|
|
|
15386
15408
|
const executionRunning = computed(() => data.value.execution.running);
|
|
15387
15409
|
const runDataCount = computed(() => data.value.runData.count);
|
|
15388
15410
|
const hasRunData = computed(() => data.value.runData.visible);
|
|
15389
|
-
const
|
|
15411
|
+
const render = computed(() => data.value.render);
|
|
15390
15412
|
return {
|
|
15391
15413
|
node: node2,
|
|
15414
|
+
id,
|
|
15415
|
+
name,
|
|
15392
15416
|
label: label2,
|
|
15393
15417
|
inputs,
|
|
15394
15418
|
outputs: outputs2,
|
|
@@ -15404,19 +15428,25 @@ function useCanvasNode() {
|
|
|
15404
15428
|
executionStatus,
|
|
15405
15429
|
executionWaiting,
|
|
15406
15430
|
executionRunning,
|
|
15407
|
-
|
|
15431
|
+
render
|
|
15408
15432
|
};
|
|
15409
15433
|
}
|
|
15410
15434
|
const workflowRunning = false;
|
|
15411
15435
|
const nodeDisabledTitle = "Test";
|
|
15412
|
-
const _sfc_main$
|
|
15436
|
+
const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
15413
15437
|
__name: "CanvasNodeToolbar",
|
|
15414
15438
|
emits: ["delete", "toggle", "run"],
|
|
15415
15439
|
setup(__props, { emit: __emit }) {
|
|
15416
15440
|
const emit = __emit;
|
|
15417
15441
|
const $style = useCssModule();
|
|
15418
15442
|
const i18n2 = useI18n();
|
|
15419
|
-
const {
|
|
15443
|
+
const { render } = useCanvasNode();
|
|
15444
|
+
const isExecuteNodeVisible = computed(() => {
|
|
15445
|
+
return render.value.type === CanvasNodeRenderType.Default && "configuration" in render.value.options && !render.value.options.configuration;
|
|
15446
|
+
});
|
|
15447
|
+
const isDisableNodeVisible = computed(() => {
|
|
15448
|
+
return render.value.type === CanvasNodeRenderType.Default;
|
|
15449
|
+
});
|
|
15420
15450
|
function executeNode() {
|
|
15421
15451
|
emit("run");
|
|
15422
15452
|
}
|
|
@@ -15436,7 +15466,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
15436
15466
|
createBaseVNode("div", {
|
|
15437
15467
|
class: normalizeClass(unref($style).canvasNodeToolbarItems)
|
|
15438
15468
|
}, [
|
|
15439
|
-
|
|
15469
|
+
isExecuteNodeVisible.value ? (openBlock(), createBlock(_component_N8nIconButton, {
|
|
15440
15470
|
key: 0,
|
|
15441
15471
|
"data-test-id": "execute-node-button",
|
|
15442
15472
|
type: "tertiary",
|
|
@@ -15447,7 +15477,8 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
15447
15477
|
title: unref(i18n2).baseText("node.testStep"),
|
|
15448
15478
|
onClick: executeNode
|
|
15449
15479
|
}, null, 8, ["title"])) : createCommentVNode("", true),
|
|
15450
|
-
|
|
15480
|
+
isDisableNodeVisible.value ? (openBlock(), createBlock(_component_N8nIconButton, {
|
|
15481
|
+
key: 1,
|
|
15451
15482
|
"data-test-id": "disable-node-button",
|
|
15452
15483
|
type: "tertiary",
|
|
15453
15484
|
text: "",
|
|
@@ -15455,7 +15486,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
15455
15486
|
icon: "power-off",
|
|
15456
15487
|
title: nodeDisabledTitle,
|
|
15457
15488
|
onClick: onToggleNode
|
|
15458
|
-
}),
|
|
15489
|
+
})) : createCommentVNode("", true),
|
|
15459
15490
|
createVNode(_component_N8nIconButton, {
|
|
15460
15491
|
"data-test-id": "delete-node-button",
|
|
15461
15492
|
type: "tertiary",
|
|
@@ -15480,14 +15511,14 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
15480
15511
|
});
|
|
15481
15512
|
const canvasNodeToolbar$1 = "_canvasNodeToolbar_1ljrn_1";
|
|
15482
15513
|
const canvasNodeToolbarItems = "_canvasNodeToolbarItems_1ljrn_5";
|
|
15483
|
-
const style0$
|
|
15514
|
+
const style0$e = {
|
|
15484
15515
|
canvasNodeToolbar: canvasNodeToolbar$1,
|
|
15485
15516
|
canvasNodeToolbarItems
|
|
15486
15517
|
};
|
|
15487
|
-
const cssModules$
|
|
15488
|
-
"$style": style0$
|
|
15518
|
+
const cssModules$e = {
|
|
15519
|
+
"$style": style0$e
|
|
15489
15520
|
};
|
|
15490
|
-
const CanvasNodeToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15521
|
+
const CanvasNodeToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__cssModules", cssModules$e]]);
|
|
15491
15522
|
function useNodeConnections({
|
|
15492
15523
|
inputs,
|
|
15493
15524
|
outputs: outputs2,
|
|
@@ -15514,6 +15545,18 @@ function useNodeConnections({
|
|
|
15514
15545
|
const mainOutputConnections = computed(
|
|
15515
15546
|
() => unref(connections2).output[NodeConnectionType.Main] ?? []
|
|
15516
15547
|
);
|
|
15548
|
+
function isValidConnection(connection) {
|
|
15549
|
+
const { type: sourceType, mode: sourceMode } = parseCanvasConnectionHandleString(
|
|
15550
|
+
connection.sourceHandle
|
|
15551
|
+
);
|
|
15552
|
+
const { type: targetType, mode: targetMode } = parseCanvasConnectionHandleString(
|
|
15553
|
+
connection.targetHandle
|
|
15554
|
+
);
|
|
15555
|
+
const isSameNode = connection.source === connection.target;
|
|
15556
|
+
const isSameMode = sourceMode === targetMode;
|
|
15557
|
+
const isSameType = sourceType === targetType;
|
|
15558
|
+
return !isSameNode && !isSameMode && isSameType;
|
|
15559
|
+
}
|
|
15517
15560
|
return {
|
|
15518
15561
|
mainInputs,
|
|
15519
15562
|
nonMainInputs,
|
|
@@ -15521,10 +15564,11 @@ function useNodeConnections({
|
|
|
15521
15564
|
mainInputConnections,
|
|
15522
15565
|
mainOutputs,
|
|
15523
15566
|
nonMainOutputs,
|
|
15524
|
-
mainOutputConnections
|
|
15567
|
+
mainOutputConnections,
|
|
15568
|
+
isValidConnection
|
|
15525
15569
|
};
|
|
15526
15570
|
}
|
|
15527
|
-
const _sfc_main$
|
|
15571
|
+
const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
15528
15572
|
__name: "CanvasNodeDisabledStrikeThrough",
|
|
15529
15573
|
setup(__props) {
|
|
15530
15574
|
const $style = useCssModule();
|
|
@@ -15558,17 +15602,17 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
15558
15602
|
});
|
|
15559
15603
|
const disabledStrikeThrough = "_disabledStrikeThrough_8cj0z_1";
|
|
15560
15604
|
const success$1 = "_success_8cj0z_10";
|
|
15561
|
-
const style0$
|
|
15605
|
+
const style0$d = {
|
|
15562
15606
|
disabledStrikeThrough,
|
|
15563
15607
|
success: success$1
|
|
15564
15608
|
};
|
|
15565
|
-
const cssModules$
|
|
15566
|
-
"$style": style0$
|
|
15609
|
+
const cssModules$d = {
|
|
15610
|
+
"$style": style0$d
|
|
15567
15611
|
};
|
|
15568
|
-
const CanvasNodeDisabledStrikeThrough = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15569
|
-
const _hoisted_1$
|
|
15612
|
+
const CanvasNodeDisabledStrikeThrough = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__cssModules", cssModules$d]]);
|
|
15613
|
+
const _hoisted_1$2 = ["textContent"];
|
|
15570
15614
|
const _hoisted_2$1 = { key: 3 };
|
|
15571
|
-
const _sfc_main$
|
|
15615
|
+
const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
15572
15616
|
__name: "CanvasNodeStatusIcons",
|
|
15573
15617
|
setup(__props) {
|
|
15574
15618
|
const nodeHelpers = useNodeHelpers();
|
|
@@ -15615,7 +15659,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
15615
15659
|
content: withCtx(() => [
|
|
15616
15660
|
createBaseVNode("div", {
|
|
15617
15661
|
textContent: toDisplayString(unref(executionWaiting))
|
|
15618
|
-
}, null, 8, _hoisted_1$
|
|
15662
|
+
}, null, 8, _hoisted_1$2)
|
|
15619
15663
|
]),
|
|
15620
15664
|
default: withCtx(() => [
|
|
15621
15665
|
createVNode(_component_FontAwesomeIcon, { icon: "clock" })
|
|
@@ -15661,7 +15705,7 @@ const pinnedData = "_pinnedData_zk3it_12";
|
|
|
15661
15705
|
const running$1 = "_running_zk3it_16";
|
|
15662
15706
|
const issues = "_issues_zk3it_20";
|
|
15663
15707
|
const count = "_count_zk3it_25";
|
|
15664
|
-
const style0$
|
|
15708
|
+
const style0$c = {
|
|
15665
15709
|
status,
|
|
15666
15710
|
runData,
|
|
15667
15711
|
pinnedData,
|
|
@@ -15669,13 +15713,14 @@ const style0$a = {
|
|
|
15669
15713
|
issues,
|
|
15670
15714
|
count
|
|
15671
15715
|
};
|
|
15672
|
-
const cssModules$
|
|
15673
|
-
"$style": style0$
|
|
15716
|
+
const cssModules$c = {
|
|
15717
|
+
"$style": style0$c
|
|
15674
15718
|
};
|
|
15675
|
-
const CanvasNodeStatusIcons = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15676
|
-
const _hoisted_1 = ["data-test-id"];
|
|
15677
|
-
const _hoisted_2 =
|
|
15678
|
-
const
|
|
15719
|
+
const CanvasNodeStatusIcons = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__cssModules", cssModules$c]]);
|
|
15720
|
+
const _hoisted_1$1 = ["data-test-id"];
|
|
15721
|
+
const _hoisted_2 = ["innerHTML"];
|
|
15722
|
+
const _hoisted_3 = { key: 0 };
|
|
15723
|
+
const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
15679
15724
|
__name: "CanvasNodeDefault",
|
|
15680
15725
|
setup(__props) {
|
|
15681
15726
|
const $style = useCssModule();
|
|
@@ -15691,13 +15736,14 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
15691
15736
|
executionRunning,
|
|
15692
15737
|
hasRunData,
|
|
15693
15738
|
hasIssues: hasIssues2,
|
|
15694
|
-
|
|
15739
|
+
render
|
|
15695
15740
|
} = useCanvasNode();
|
|
15696
15741
|
const { mainOutputs, nonMainInputs, requiredNonMainInputs } = useNodeConnections({
|
|
15697
15742
|
inputs,
|
|
15698
15743
|
outputs: outputs2,
|
|
15699
15744
|
connections: connections2
|
|
15700
15745
|
});
|
|
15746
|
+
const renderOptions = computed(() => render.value.options);
|
|
15701
15747
|
const classes = computed(() => {
|
|
15702
15748
|
return {
|
|
15703
15749
|
[$style.node]: true,
|
|
@@ -15738,56 +15784,223 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
15738
15784
|
return `canvas-${type}-node`;
|
|
15739
15785
|
});
|
|
15740
15786
|
return (_ctx, _cache) => {
|
|
15787
|
+
const _component_FontAwesomeIcon = resolveComponent("FontAwesomeIcon");
|
|
15741
15788
|
return openBlock(), createElementBlock("div", {
|
|
15742
15789
|
class: normalizeClass(classes.value),
|
|
15743
15790
|
style: normalizeStyle(styles.value),
|
|
15744
15791
|
"data-test-id": dataTestId.value
|
|
15745
15792
|
}, [
|
|
15746
15793
|
renderSlot(_ctx.$slots, "default"),
|
|
15794
|
+
renderOptions.value.trigger ? (openBlock(), createBlock(unref(N8nTooltip), {
|
|
15795
|
+
key: 0,
|
|
15796
|
+
placement: "bottom"
|
|
15797
|
+
}, {
|
|
15798
|
+
content: withCtx(() => [
|
|
15799
|
+
createBaseVNode("span", {
|
|
15800
|
+
innerHTML: _ctx.$locale.baseText("node.thisIsATriggerNode")
|
|
15801
|
+
}, null, 8, _hoisted_2)
|
|
15802
|
+
]),
|
|
15803
|
+
default: withCtx(() => [
|
|
15804
|
+
createBaseVNode("div", {
|
|
15805
|
+
class: normalizeClass(unref($style).triggerIcon)
|
|
15806
|
+
}, [
|
|
15807
|
+
createVNode(_component_FontAwesomeIcon, {
|
|
15808
|
+
icon: "bolt",
|
|
15809
|
+
size: "lg"
|
|
15810
|
+
})
|
|
15811
|
+
], 2)
|
|
15812
|
+
]),
|
|
15813
|
+
_: 1
|
|
15814
|
+
})) : createCommentVNode("", true),
|
|
15747
15815
|
createVNode(CanvasNodeStatusIcons, {
|
|
15748
15816
|
class: normalizeClass(unref($style).statusIcons)
|
|
15749
15817
|
}, null, 8, ["class"]),
|
|
15750
|
-
unref(isDisabled) ? (openBlock(), createBlock(CanvasNodeDisabledStrikeThrough, { key:
|
|
15818
|
+
unref(isDisabled) ? (openBlock(), createBlock(CanvasNodeDisabledStrikeThrough, { key: 1 })) : createCommentVNode("", true),
|
|
15751
15819
|
unref(label2) ? (openBlock(), createElementBlock("div", {
|
|
15752
|
-
key:
|
|
15820
|
+
key: 2,
|
|
15753
15821
|
class: normalizeClass(unref($style).label)
|
|
15754
15822
|
}, [
|
|
15755
15823
|
createTextVNode(toDisplayString(unref(label2)) + " ", 1),
|
|
15756
|
-
unref(isDisabled) ? (openBlock(), createElementBlock("div",
|
|
15824
|
+
unref(isDisabled) ? (openBlock(), createElementBlock("div", _hoisted_3, "(" + toDisplayString(unref(i18n2).baseText("node.disabled")) + ")", 1)) : createCommentVNode("", true)
|
|
15757
15825
|
], 2)) : createCommentVNode("", true)
|
|
15758
|
-
], 14, _hoisted_1);
|
|
15826
|
+
], 14, _hoisted_1$1);
|
|
15759
15827
|
};
|
|
15760
15828
|
}
|
|
15761
15829
|
});
|
|
15762
|
-
const node = "
|
|
15763
|
-
const
|
|
15764
|
-
const
|
|
15765
|
-
const
|
|
15766
|
-
const
|
|
15767
|
-
const
|
|
15768
|
-
const
|
|
15769
|
-
const
|
|
15770
|
-
const
|
|
15771
|
-
const
|
|
15772
|
-
const
|
|
15773
|
-
const
|
|
15830
|
+
const node = "_node_tn88s_1";
|
|
15831
|
+
const trigger = "_trigger_tn88s_26";
|
|
15832
|
+
const configuration = "_configuration_tn88s_29";
|
|
15833
|
+
const statusIcons = "_statusIcons_tn88s_36";
|
|
15834
|
+
const configurable = "_configurable_tn88s_39";
|
|
15835
|
+
const label$4 = "_label_tn88s_46";
|
|
15836
|
+
const selected = "_selected_tn88s_54";
|
|
15837
|
+
const success = "_success_tn88s_57";
|
|
15838
|
+
const error = "_error_tn88s_60";
|
|
15839
|
+
const pinned = "_pinned_tn88s_63";
|
|
15840
|
+
const disabled = "_disabled_tn88s_66";
|
|
15841
|
+
const running = "_running_tn88s_69";
|
|
15842
|
+
const triggerIcon = "_triggerIcon_tn88s_90";
|
|
15843
|
+
const style0$b = {
|
|
15774
15844
|
node,
|
|
15845
|
+
trigger,
|
|
15775
15846
|
configuration,
|
|
15776
15847
|
statusIcons,
|
|
15777
15848
|
configurable,
|
|
15778
|
-
label: label$
|
|
15849
|
+
label: label$4,
|
|
15779
15850
|
selected,
|
|
15780
15851
|
success,
|
|
15781
15852
|
error,
|
|
15782
15853
|
pinned,
|
|
15783
15854
|
disabled,
|
|
15784
|
-
running
|
|
15855
|
+
running,
|
|
15856
|
+
triggerIcon
|
|
15857
|
+
};
|
|
15858
|
+
const cssModules$b = {
|
|
15859
|
+
"$style": style0$b
|
|
15860
|
+
};
|
|
15861
|
+
const CanvasNodeDefault = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__cssModules", cssModules$b]]);
|
|
15862
|
+
const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
15863
|
+
__name: "CanvasNodeStickyNote",
|
|
15864
|
+
emits: ["update", "move", "dblclick"],
|
|
15865
|
+
setup(__props, { emit: __emit }) {
|
|
15866
|
+
const emit = __emit;
|
|
15867
|
+
const { id, render } = useCanvasNode();
|
|
15868
|
+
const renderOptions = computed(() => render.value.options);
|
|
15869
|
+
function onResize(event) {
|
|
15870
|
+
emit("move", {
|
|
15871
|
+
x: event.params.x,
|
|
15872
|
+
y: event.params.y
|
|
15873
|
+
});
|
|
15874
|
+
emit("update", {
|
|
15875
|
+
...event.params.width ? { width: event.params.width } : {},
|
|
15876
|
+
...event.params.height ? { height: event.params.height } : {}
|
|
15877
|
+
});
|
|
15878
|
+
}
|
|
15879
|
+
const isActive = ref(false);
|
|
15880
|
+
function onInputChange(value) {
|
|
15881
|
+
emit("update", {
|
|
15882
|
+
content: value
|
|
15883
|
+
});
|
|
15884
|
+
}
|
|
15885
|
+
function onEdit(edit) {
|
|
15886
|
+
isActive.value = edit;
|
|
15887
|
+
}
|
|
15888
|
+
function onDoubleClick(event) {
|
|
15889
|
+
emit("dblclick", event);
|
|
15890
|
+
}
|
|
15891
|
+
return (_ctx, _cache) => {
|
|
15892
|
+
const _component_N8nSticky = resolveComponent("N8nSticky");
|
|
15893
|
+
return openBlock(), createElementBlock(Fragment, null, [
|
|
15894
|
+
createVNode(unref(_sfc_main$Q), {
|
|
15895
|
+
"min-height": 80,
|
|
15896
|
+
"min-width": 150,
|
|
15897
|
+
height: renderOptions.value.height,
|
|
15898
|
+
width: renderOptions.value.width,
|
|
15899
|
+
onResize
|
|
15900
|
+
}, null, 8, ["height", "width"]),
|
|
15901
|
+
createVNode(_component_N8nSticky, {
|
|
15902
|
+
id: unref(id),
|
|
15903
|
+
"data-test-id": "canvas-sticky-note-node",
|
|
15904
|
+
height: renderOptions.value.height,
|
|
15905
|
+
width: renderOptions.value.width,
|
|
15906
|
+
class: normalizeClass(_ctx.$style.sticky),
|
|
15907
|
+
"model-value": renderOptions.value.content,
|
|
15908
|
+
background: renderOptions.value.color,
|
|
15909
|
+
"edit-mode": isActive.value,
|
|
15910
|
+
onEdit,
|
|
15911
|
+
onDblclick: onDoubleClick,
|
|
15912
|
+
"onUpdate:modelValue": onInputChange
|
|
15913
|
+
}, null, 8, ["id", "height", "width", "class", "model-value", "background", "edit-mode"])
|
|
15914
|
+
], 64);
|
|
15915
|
+
};
|
|
15916
|
+
}
|
|
15917
|
+
});
|
|
15918
|
+
const sticky = "_sticky_1bbax_1";
|
|
15919
|
+
const style0$a = {
|
|
15920
|
+
sticky
|
|
15921
|
+
};
|
|
15922
|
+
const cssModules$a = {
|
|
15923
|
+
"$style": style0$a
|
|
15924
|
+
};
|
|
15925
|
+
const CanvasNodeStickyNote = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__cssModules", cssModules$a]]);
|
|
15926
|
+
const _hoisted_1 = ["textContent"];
|
|
15927
|
+
const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
15928
|
+
__name: "CanvasNodeAddNodes",
|
|
15929
|
+
setup(__props) {
|
|
15930
|
+
const nodeCreatorStore = useNodeCreatorStore();
|
|
15931
|
+
const isTooltipVisible = ref(false);
|
|
15932
|
+
onMounted(() => {
|
|
15933
|
+
nodeViewEventBus.on("runWorkflowButton:mouseenter", onShowTooltip);
|
|
15934
|
+
nodeViewEventBus.on("runWorkflowButton:mouseleave", onHideTooltip);
|
|
15935
|
+
});
|
|
15936
|
+
onBeforeUnmount(() => {
|
|
15937
|
+
nodeViewEventBus.off("runWorkflowButton:mouseenter", onShowTooltip);
|
|
15938
|
+
nodeViewEventBus.off("runWorkflowButton:mouseleave", onHideTooltip);
|
|
15939
|
+
});
|
|
15940
|
+
function onShowTooltip() {
|
|
15941
|
+
isTooltipVisible.value = true;
|
|
15942
|
+
}
|
|
15943
|
+
function onHideTooltip() {
|
|
15944
|
+
isTooltipVisible.value = false;
|
|
15945
|
+
}
|
|
15946
|
+
function onClick() {
|
|
15947
|
+
nodeCreatorStore.openNodeCreatorForTriggerNodes(
|
|
15948
|
+
NODE_CREATOR_OPEN_SOURCES.TRIGGER_PLACEHOLDER_BUTTON
|
|
15949
|
+
);
|
|
15950
|
+
}
|
|
15951
|
+
return (_ctx, _cache) => {
|
|
15952
|
+
const _component_FontAwesomeIcon = resolveComponent("FontAwesomeIcon");
|
|
15953
|
+
const _component_N8nTooltip = resolveComponent("N8nTooltip");
|
|
15954
|
+
return openBlock(), createElementBlock("div", {
|
|
15955
|
+
ref: "container",
|
|
15956
|
+
class: normalizeClass(_ctx.$style.addNodes),
|
|
15957
|
+
"data-test-id": "canvas-add-button"
|
|
15958
|
+
}, [
|
|
15959
|
+
createVNode(_component_N8nTooltip, {
|
|
15960
|
+
placement: "top",
|
|
15961
|
+
visible: isTooltipVisible.value,
|
|
15962
|
+
disabled: unref(nodeCreatorStore).showScrim,
|
|
15963
|
+
"popper-class": _ctx.$style.tooltip,
|
|
15964
|
+
"show-after": 700
|
|
15965
|
+
}, {
|
|
15966
|
+
content: withCtx(() => [
|
|
15967
|
+
createTextVNode(toDisplayString(_ctx.$locale.baseText("nodeView.canvasAddButton.addATriggerNodeBeforeExecuting")), 1)
|
|
15968
|
+
]),
|
|
15969
|
+
default: withCtx(() => [
|
|
15970
|
+
createBaseVNode("button", {
|
|
15971
|
+
class: normalizeClass(_ctx.$style.button),
|
|
15972
|
+
"data-test-id": "canvas-plus-button",
|
|
15973
|
+
onClick
|
|
15974
|
+
}, [
|
|
15975
|
+
createVNode(_component_FontAwesomeIcon, {
|
|
15976
|
+
icon: "plus",
|
|
15977
|
+
size: "lg"
|
|
15978
|
+
})
|
|
15979
|
+
], 2)
|
|
15980
|
+
]),
|
|
15981
|
+
_: 1
|
|
15982
|
+
}, 8, ["visible", "disabled", "popper-class"]),
|
|
15983
|
+
createBaseVNode("p", {
|
|
15984
|
+
class: normalizeClass(_ctx.$style.label),
|
|
15985
|
+
textContent: toDisplayString(_ctx.$locale.baseText("nodeView.canvasAddButton.addFirstStep"))
|
|
15986
|
+
}, null, 10, _hoisted_1)
|
|
15987
|
+
], 2);
|
|
15988
|
+
};
|
|
15989
|
+
}
|
|
15990
|
+
});
|
|
15991
|
+
const addNodes = "_addNodes_13pm7_1";
|
|
15992
|
+
const button = "_button_13pm7_9";
|
|
15993
|
+
const label$3 = "_label_13pm7_30";
|
|
15994
|
+
const style0$9 = {
|
|
15995
|
+
addNodes,
|
|
15996
|
+
button,
|
|
15997
|
+
label: label$3
|
|
15785
15998
|
};
|
|
15786
15999
|
const cssModules$9 = {
|
|
15787
16000
|
"$style": style0$9
|
|
15788
16001
|
};
|
|
15789
|
-
const
|
|
15790
|
-
const _sfc_main$
|
|
16002
|
+
const CanvasNodeAddNodes = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__cssModules", cssModules$9]]);
|
|
16003
|
+
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
15791
16004
|
__name: "CanvasNodeRenderer",
|
|
15792
16005
|
setup(__props) {
|
|
15793
16006
|
const node2 = inject(CanvasNodeKey);
|
|
@@ -15795,6 +16008,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
15795
16008
|
const Render = () => {
|
|
15796
16009
|
let Component;
|
|
15797
16010
|
switch (node2 == null ? void 0 : node2.data.value.render.type) {
|
|
16011
|
+
case CanvasNodeRenderType.StickyNote:
|
|
16012
|
+
Component = CanvasNodeStickyNote;
|
|
16013
|
+
break;
|
|
16014
|
+
case CanvasNodeRenderType.AddNodes:
|
|
16015
|
+
Component = CanvasNodeAddNodes;
|
|
16016
|
+
break;
|
|
15798
16017
|
default:
|
|
15799
16018
|
Component = CanvasNodeDefault;
|
|
15800
16019
|
}
|
|
@@ -15805,7 +16024,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
15805
16024
|
};
|
|
15806
16025
|
}
|
|
15807
16026
|
});
|
|
15808
|
-
const _sfc_main$
|
|
16027
|
+
const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
15809
16028
|
__name: "CanvasHandleMainInput",
|
|
15810
16029
|
setup(__props) {
|
|
15811
16030
|
const handle2 = inject(CanvasNodeHandleKey);
|
|
@@ -15831,8 +16050,8 @@ const style0$8 = {
|
|
|
15831
16050
|
const cssModules$8 = {
|
|
15832
16051
|
"$style": style0$8
|
|
15833
16052
|
};
|
|
15834
|
-
const CanvasHandleMainInput = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15835
|
-
const _sfc_main$
|
|
16053
|
+
const CanvasHandleMainInput = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__cssModules", cssModules$8]]);
|
|
16054
|
+
const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
15836
16055
|
__name: "CanvasHandleMainOutput",
|
|
15837
16056
|
setup(__props) {
|
|
15838
16057
|
const handle2 = inject(CanvasNodeHandleKey);
|
|
@@ -15865,8 +16084,8 @@ const style0$7 = {
|
|
|
15865
16084
|
const cssModules$7 = {
|
|
15866
16085
|
"$style": style0$7
|
|
15867
16086
|
};
|
|
15868
|
-
const CanvasHandleMainOutput = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15869
|
-
const _sfc_main$
|
|
16087
|
+
const CanvasHandleMainOutput = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__cssModules", cssModules$7]]);
|
|
16088
|
+
const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
15870
16089
|
__name: "CanvasHandleNonMain",
|
|
15871
16090
|
setup(__props) {
|
|
15872
16091
|
const handle2 = inject(CanvasNodeHandleKey);
|
|
@@ -15897,8 +16116,8 @@ const style0$6 = {
|
|
|
15897
16116
|
const cssModules$6 = {
|
|
15898
16117
|
"$style": style0$6
|
|
15899
16118
|
};
|
|
15900
|
-
const CanvasHandleNonMain = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15901
|
-
const _sfc_main$
|
|
16119
|
+
const CanvasHandleNonMain = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__cssModules", cssModules$6]]);
|
|
16120
|
+
const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
15902
16121
|
__name: "HandleRenderer",
|
|
15903
16122
|
props: {
|
|
15904
16123
|
mode: {},
|
|
@@ -15906,7 +16125,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
15906
16125
|
type: {},
|
|
15907
16126
|
index: {},
|
|
15908
16127
|
position: {},
|
|
15909
|
-
offset: {}
|
|
16128
|
+
offset: {},
|
|
16129
|
+
isValidConnection: { type: Function }
|
|
15910
16130
|
},
|
|
15911
16131
|
setup(__props) {
|
|
15912
16132
|
const props = __props;
|
|
@@ -15943,13 +16163,14 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
15943
16163
|
position: _ctx.position,
|
|
15944
16164
|
style: normalizeStyle(_ctx.offset),
|
|
15945
16165
|
"connectable-start": isConnectableStart.value,
|
|
15946
|
-
"connectable-end": isConnectableEnd.value
|
|
16166
|
+
"connectable-end": isConnectableEnd.value,
|
|
16167
|
+
"is-valid-connection": _ctx.isValidConnection
|
|
15947
16168
|
}, {
|
|
15948
16169
|
default: withCtx(() => [
|
|
15949
16170
|
createVNode(Render, { label: label2.value }, null, 8, ["label"])
|
|
15950
16171
|
]),
|
|
15951
16172
|
_: 1
|
|
15952
|
-
}, 8, ["id", "class", "type", "position", "style", "connectable-start", "connectable-end"]);
|
|
16173
|
+
}, 8, ["id", "class", "type", "position", "style", "connectable-start", "connectable-end", "is-valid-connection"]);
|
|
15953
16174
|
};
|
|
15954
16175
|
}
|
|
15955
16176
|
});
|
|
@@ -15960,8 +16181,8 @@ const style0$5 = {
|
|
|
15960
16181
|
const cssModules$5 = {
|
|
15961
16182
|
"$style": style0$5
|
|
15962
16183
|
};
|
|
15963
|
-
const HandleRenderer = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15964
|
-
const _sfc_main$
|
|
16184
|
+
const HandleRenderer = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__cssModules", cssModules$5]]);
|
|
16185
|
+
const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
15965
16186
|
__name: "CanvasNode",
|
|
15966
16187
|
props: {
|
|
15967
16188
|
id: {},
|
|
@@ -15984,7 +16205,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
15984
16205
|
data: {},
|
|
15985
16206
|
events: {}
|
|
15986
16207
|
},
|
|
15987
|
-
emits: ["delete", "run", "select", "toggle", "activate"],
|
|
16208
|
+
emits: ["delete", "run", "select", "toggle", "activate", "update", "move"],
|
|
15988
16209
|
setup(__props, { emit: __emit }) {
|
|
15989
16210
|
const emit = __emit;
|
|
15990
16211
|
const props = __props;
|
|
@@ -15992,7 +16213,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
15992
16213
|
const inputs = computed(() => props.data.inputs);
|
|
15993
16214
|
const outputs2 = computed(() => props.data.outputs);
|
|
15994
16215
|
const connections2 = computed(() => props.data.connections);
|
|
15995
|
-
const { mainInputs, nonMainInputs, mainOutputs, nonMainOutputs } = useNodeConnections({
|
|
16216
|
+
const { mainInputs, nonMainInputs, mainOutputs, nonMainOutputs, isValidConnection } = useNodeConnections({
|
|
15996
16217
|
inputs,
|
|
15997
16218
|
outputs: outputs2,
|
|
15998
16219
|
connections: connections2
|
|
@@ -16001,12 +16222,6 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
16001
16222
|
const nodeType = computed(() => {
|
|
16002
16223
|
return nodeTypesStore.getNodeType(props.data.type, props.data.typeVersion);
|
|
16003
16224
|
});
|
|
16004
|
-
watch(
|
|
16005
|
-
() => props.selected,
|
|
16006
|
-
(selected22) => {
|
|
16007
|
-
emit("select", props.id, selected22);
|
|
16008
|
-
}
|
|
16009
|
-
);
|
|
16010
16225
|
const inputsWithPosition = computed(() => {
|
|
16011
16226
|
return [
|
|
16012
16227
|
...mainInputs.value.map(mapEndpointWithPosition(Position.Left, "top")),
|
|
@@ -16019,6 +16234,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
16019
16234
|
...nonMainOutputs.value.map(mapEndpointWithPosition(Position.Top, "left"))
|
|
16020
16235
|
];
|
|
16021
16236
|
});
|
|
16237
|
+
const nodeIconSize = computed(
|
|
16238
|
+
() => "configuration" in data.value.render.options && data.value.render.options.configuration ? 30 : 40
|
|
16239
|
+
);
|
|
16022
16240
|
const mapEndpointWithPosition = (position2, offsetAxis) => (endpoint, index, endpoints) => {
|
|
16023
16241
|
return {
|
|
16024
16242
|
...endpoint,
|
|
@@ -16028,17 +16246,6 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
16028
16246
|
}
|
|
16029
16247
|
};
|
|
16030
16248
|
};
|
|
16031
|
-
const id = toRef(props, "id");
|
|
16032
|
-
const data = toRef(props, "data");
|
|
16033
|
-
const label2 = toRef(props, "label");
|
|
16034
|
-
const selected2 = toRef(props, "selected");
|
|
16035
|
-
provide(CanvasNodeKey, {
|
|
16036
|
-
id,
|
|
16037
|
-
data,
|
|
16038
|
-
label: label2,
|
|
16039
|
-
selected: selected2,
|
|
16040
|
-
nodeType
|
|
16041
|
-
});
|
|
16042
16249
|
function onDelete() {
|
|
16043
16250
|
emit("delete", props.id);
|
|
16044
16251
|
}
|
|
@@ -16051,6 +16258,29 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
16051
16258
|
function onActivate() {
|
|
16052
16259
|
emit("activate", props.id);
|
|
16053
16260
|
}
|
|
16261
|
+
function onUpdate(parameters) {
|
|
16262
|
+
emit("update", props.id, parameters);
|
|
16263
|
+
}
|
|
16264
|
+
function onMove(position2) {
|
|
16265
|
+
emit("move", props.id, position2);
|
|
16266
|
+
}
|
|
16267
|
+
const id = toRef(props, "id");
|
|
16268
|
+
const data = toRef(props, "data");
|
|
16269
|
+
const label2 = toRef(props, "label");
|
|
16270
|
+
const selected2 = toRef(props, "selected");
|
|
16271
|
+
provide(CanvasNodeKey, {
|
|
16272
|
+
id,
|
|
16273
|
+
data,
|
|
16274
|
+
label: label2,
|
|
16275
|
+
selected: selected2,
|
|
16276
|
+
nodeType
|
|
16277
|
+
});
|
|
16278
|
+
watch(
|
|
16279
|
+
() => props.selected,
|
|
16280
|
+
(selected22) => {
|
|
16281
|
+
emit("select", props.id, selected22);
|
|
16282
|
+
}
|
|
16283
|
+
);
|
|
16054
16284
|
return (_ctx, _cache) => {
|
|
16055
16285
|
return openBlock(), createElementBlock("div", {
|
|
16056
16286
|
class: normalizeClass(_ctx.$style.canvasNode),
|
|
@@ -16065,8 +16295,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
16065
16295
|
label: source.label,
|
|
16066
16296
|
index: source.index,
|
|
16067
16297
|
position: source.position,
|
|
16068
|
-
offset: source.offset
|
|
16069
|
-
|
|
16298
|
+
offset: source.offset,
|
|
16299
|
+
"is-valid-connection": unref(isValidConnection)
|
|
16300
|
+
}, null, 8, ["type", "label", "index", "position", "offset", "is-valid-connection"]);
|
|
16070
16301
|
}), 128)),
|
|
16071
16302
|
(openBlock(true), createElementBlock(Fragment, null, renderList(inputsWithPosition.value, (target2) => {
|
|
16072
16303
|
return openBlock(), createBlock(HandleRenderer, {
|
|
@@ -16077,8 +16308,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
16077
16308
|
label: target2.label,
|
|
16078
16309
|
index: target2.index,
|
|
16079
16310
|
position: target2.position,
|
|
16080
|
-
offset: target2.offset
|
|
16081
|
-
|
|
16311
|
+
offset: target2.offset,
|
|
16312
|
+
"is-valid-connection": unref(isValidConnection)
|
|
16313
|
+
}, null, 8, ["type", "label", "index", "position", "offset", "is-valid-connection"]);
|
|
16082
16314
|
}), 128)),
|
|
16083
16315
|
nodeType.value ? (openBlock(), createBlock(CanvasNodeToolbar, {
|
|
16084
16316
|
key: 0,
|
|
@@ -16088,20 +16320,22 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
16088
16320
|
onToggle: onDisabledToggle,
|
|
16089
16321
|
onRun
|
|
16090
16322
|
}, null, 8, ["class"])) : createCommentVNode("", true),
|
|
16091
|
-
|
|
16092
|
-
|
|
16093
|
-
|
|
16323
|
+
createVNode(_sfc_main$f, {
|
|
16324
|
+
onDblclick: onActivate,
|
|
16325
|
+
onMove,
|
|
16326
|
+
onUpdate
|
|
16094
16327
|
}, {
|
|
16095
16328
|
default: withCtx(() => [
|
|
16096
|
-
|
|
16329
|
+
nodeType.value ? (openBlock(), createBlock(_sfc_main$O, {
|
|
16330
|
+
key: 0,
|
|
16097
16331
|
"node-type": nodeType.value,
|
|
16098
|
-
size:
|
|
16332
|
+
size: nodeIconSize.value,
|
|
16099
16333
|
shrink: false,
|
|
16100
16334
|
disabled: isDisabled.value
|
|
16101
|
-
}, null, 8, ["node-type", "disabled"])
|
|
16335
|
+
}, null, 8, ["node-type", "size", "disabled"])) : createCommentVNode("", true)
|
|
16102
16336
|
]),
|
|
16103
16337
|
_: 1
|
|
16104
|
-
})
|
|
16338
|
+
})
|
|
16105
16339
|
], 2);
|
|
16106
16340
|
};
|
|
16107
16341
|
}
|
|
@@ -16115,17 +16349,25 @@ const style0$4 = {
|
|
|
16115
16349
|
const cssModules$4 = {
|
|
16116
16350
|
"$style": style0$4
|
|
16117
16351
|
};
|
|
16118
|
-
const
|
|
16119
|
-
const _sfc_main$
|
|
16352
|
+
const Node = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$4]]);
|
|
16353
|
+
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
16120
16354
|
__name: "CanvasEdgeToolbar",
|
|
16121
|
-
|
|
16355
|
+
props: {
|
|
16356
|
+
type: {}
|
|
16357
|
+
},
|
|
16358
|
+
emits: ["add", "delete"],
|
|
16122
16359
|
setup(__props, { emit: __emit }) {
|
|
16123
16360
|
const emit = __emit;
|
|
16361
|
+
const props = __props;
|
|
16124
16362
|
const $style = useCssModule();
|
|
16125
16363
|
const i18n2 = useI18n();
|
|
16126
16364
|
const classes = computed(() => ({
|
|
16127
16365
|
[$style.canvasEdgeToolbar]: true
|
|
16128
16366
|
}));
|
|
16367
|
+
const isAddButtonVisible = computed(() => props.type === NodeConnectionType.Main);
|
|
16368
|
+
function onAdd() {
|
|
16369
|
+
emit("add");
|
|
16370
|
+
}
|
|
16129
16371
|
function onDelete() {
|
|
16130
16372
|
emit("delete");
|
|
16131
16373
|
}
|
|
@@ -16135,6 +16377,15 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
16135
16377
|
class: normalizeClass(classes.value),
|
|
16136
16378
|
"data-test-id": "canvas-edge-toolbar"
|
|
16137
16379
|
}, [
|
|
16380
|
+
isAddButtonVisible.value ? (openBlock(), createBlock(_component_N8nIconButton, {
|
|
16381
|
+
key: 0,
|
|
16382
|
+
"data-test-id": "add-connection-button",
|
|
16383
|
+
type: "tertiary",
|
|
16384
|
+
size: "small",
|
|
16385
|
+
icon: "plus",
|
|
16386
|
+
title: unref(i18n2).baseText("node.add"),
|
|
16387
|
+
onClick: onAdd
|
|
16388
|
+
}, null, 8, ["title"])) : createCommentVNode("", true),
|
|
16138
16389
|
createVNode(_component_N8nIconButton, {
|
|
16139
16390
|
"data-test-id": "delete-connection-button",
|
|
16140
16391
|
type: "tertiary",
|
|
@@ -16147,15 +16398,15 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
16147
16398
|
};
|
|
16148
16399
|
}
|
|
16149
16400
|
});
|
|
16150
|
-
const canvasEdgeToolbar = "
|
|
16401
|
+
const canvasEdgeToolbar = "_canvasEdgeToolbar_gool4_1";
|
|
16151
16402
|
const style0$3 = {
|
|
16152
16403
|
canvasEdgeToolbar
|
|
16153
16404
|
};
|
|
16154
16405
|
const cssModules$3 = {
|
|
16155
16406
|
"$style": style0$3
|
|
16156
16407
|
};
|
|
16157
|
-
const CanvasEdgeToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16158
|
-
const _sfc_main$
|
|
16408
|
+
const CanvasEdgeToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__cssModules", cssModules$3]]);
|
|
16409
|
+
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
16159
16410
|
__name: "CanvasEdge",
|
|
16160
16411
|
props: {
|
|
16161
16412
|
id: {},
|
|
@@ -16190,11 +16441,14 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
16190
16441
|
targetY: {},
|
|
16191
16442
|
hovered: { type: Boolean }
|
|
16192
16443
|
},
|
|
16193
|
-
emits: ["delete"],
|
|
16444
|
+
emits: ["add", "delete"],
|
|
16194
16445
|
setup(__props, { emit: __emit }) {
|
|
16195
16446
|
const emit = __emit;
|
|
16196
16447
|
const props = __props;
|
|
16197
16448
|
const $style = useCssModule();
|
|
16449
|
+
const connectionType2 = computed(
|
|
16450
|
+
() => isValidNodeConnectionType(props.data.source.type) ? props.data.source.type : NodeConnectionType.Main
|
|
16451
|
+
);
|
|
16198
16452
|
const isFocused = computed(() => props.selected || props.hovered);
|
|
16199
16453
|
const status2 = computed(() => props.data.status);
|
|
16200
16454
|
const statusColor = computed(() => {
|
|
@@ -16253,6 +16507,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
16253
16507
|
sourceHandle: props.sourceHandleId,
|
|
16254
16508
|
targetHandle: props.targetHandleId
|
|
16255
16509
|
}));
|
|
16510
|
+
function onAdd() {
|
|
16511
|
+
emit("add", connection.value);
|
|
16512
|
+
}
|
|
16256
16513
|
function onDelete() {
|
|
16257
16514
|
emit("delete", connection.value);
|
|
16258
16515
|
}
|
|
@@ -16273,10 +16530,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
16273
16530
|
createVNode(unref(_sfc_main$3$1), null, {
|
|
16274
16531
|
default: withCtx(() => [
|
|
16275
16532
|
createVNode(CanvasEdgeToolbar, {
|
|
16533
|
+
type: connectionType2.value,
|
|
16276
16534
|
class: normalizeClass(edgeToolbarClasses.value),
|
|
16277
16535
|
style: normalizeStyle(edgeToolbarStyle.value),
|
|
16536
|
+
onAdd,
|
|
16278
16537
|
onDelete
|
|
16279
|
-
}, null, 8, ["class", "style"])
|
|
16538
|
+
}, null, 8, ["type", "class", "style"])
|
|
16280
16539
|
]),
|
|
16281
16540
|
_: 1
|
|
16282
16541
|
})
|
|
@@ -16295,35 +16554,32 @@ const style0$2 = {
|
|
|
16295
16554
|
const cssModules$2 = {
|
|
16296
16555
|
"$style": style0$2
|
|
16297
16556
|
};
|
|
16298
|
-
const
|
|
16299
|
-
const _sfc_main$
|
|
16557
|
+
const Edge = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__cssModules", cssModules$2]]);
|
|
16558
|
+
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
16300
16559
|
__name: "Canvas",
|
|
16301
16560
|
props: {
|
|
16302
16561
|
id: { default: "canvas" },
|
|
16303
|
-
|
|
16562
|
+
nodes: { default: () => [] },
|
|
16304
16563
|
connections: { default: () => [] },
|
|
16305
|
-
controlsPosition: { default: PanelPosition.BottomLeft }
|
|
16564
|
+
controlsPosition: { default: PanelPosition.BottomLeft },
|
|
16565
|
+
eventBus: { default: () => createEventBus() }
|
|
16306
16566
|
},
|
|
16307
|
-
emits: ["update:modelValue", "update:node:position", "update:node:active", "update:node:enabled", "update:node:selected", "run:node", "delete:node", "delete:connection", "create:connection:start", "create:connection", "create:connection:end", "create:connection:cancelled", "click:pane"],
|
|
16567
|
+
emits: ["update:modelValue", "update:node:position", "update:node:active", "update:node:enabled", "update:node:selected", "update:node:parameters", "run:node", "delete:node", "delete:connection", "create:connection:start", "create:connection", "create:connection:end", "create:connection:cancelled", "click:connection:add", "click:pane"],
|
|
16308
16568
|
setup(__props, { emit: __emit }) {
|
|
16309
16569
|
const $style = useCssModule();
|
|
16310
16570
|
const emit = __emit;
|
|
16311
16571
|
const props = __props;
|
|
16312
|
-
const { getSelectedEdges, getSelectedNodes, viewportRef, project } = useVueFlow({
|
|
16572
|
+
const { getSelectedEdges, getSelectedNodes, viewportRef, fitView, project } = useVueFlow({
|
|
16313
16573
|
id: props.id
|
|
16314
16574
|
});
|
|
16315
|
-
const hoveredEdges = ref({});
|
|
16316
|
-
onMounted(() => {
|
|
16317
|
-
document.addEventListener("keydown", onKeyDown);
|
|
16318
|
-
});
|
|
16319
|
-
onUnmounted(() => {
|
|
16320
|
-
document.removeEventListener("keydown", onKeyDown);
|
|
16321
|
-
});
|
|
16322
16575
|
function onNodeDragStop(e) {
|
|
16323
16576
|
e.nodes.forEach((node2) => {
|
|
16324
|
-
|
|
16577
|
+
onUpdateNodePosition(node2.id, node2.position);
|
|
16325
16578
|
});
|
|
16326
16579
|
}
|
|
16580
|
+
function onUpdateNodePosition(id, position2) {
|
|
16581
|
+
emit("update:node:position", id, position2);
|
|
16582
|
+
}
|
|
16327
16583
|
function onSelectionDragStop(e) {
|
|
16328
16584
|
onNodeDragStop(e);
|
|
16329
16585
|
}
|
|
@@ -16341,6 +16597,9 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
16341
16597
|
function onDeleteNode(id) {
|
|
16342
16598
|
emit("delete:node", id);
|
|
16343
16599
|
}
|
|
16600
|
+
function onUpdateNodeParameters(id, parameters) {
|
|
16601
|
+
emit("update:node:parameters", id, parameters);
|
|
16602
|
+
}
|
|
16344
16603
|
const connectionCreated = ref(false);
|
|
16345
16604
|
const connectionEventData = ref();
|
|
16346
16605
|
const isConnection = (data) => !!data && connectionCreated.value;
|
|
@@ -16365,6 +16624,16 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
16365
16624
|
function onDeleteConnection(connection) {
|
|
16366
16625
|
emit("delete:connection", connection);
|
|
16367
16626
|
}
|
|
16627
|
+
function onClickConnectionAdd(connection) {
|
|
16628
|
+
emit("click:connection:add", connection);
|
|
16629
|
+
}
|
|
16630
|
+
const hoveredEdges = ref({});
|
|
16631
|
+
function onMouseEnterEdge(event) {
|
|
16632
|
+
hoveredEdges.value[event.edge.id] = true;
|
|
16633
|
+
}
|
|
16634
|
+
function onMouseLeaveEdge(event) {
|
|
16635
|
+
hoveredEdges.value[event.edge.id] = false;
|
|
16636
|
+
}
|
|
16368
16637
|
function onRunNode(id) {
|
|
16369
16638
|
emit("run:node", id);
|
|
16370
16639
|
}
|
|
@@ -16374,12 +16643,6 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
16374
16643
|
getSelectedNodes.value.forEach(({ id }) => onDeleteNode(id));
|
|
16375
16644
|
}
|
|
16376
16645
|
}
|
|
16377
|
-
function onMouseEnterEdge(event) {
|
|
16378
|
-
hoveredEdges.value[event.edge.id] = true;
|
|
16379
|
-
}
|
|
16380
|
-
function onMouseLeaveEdge(event) {
|
|
16381
|
-
hoveredEdges.value[event.edge.id] = false;
|
|
16382
|
-
}
|
|
16383
16646
|
function onClickPane(event) {
|
|
16384
16647
|
var _a;
|
|
16385
16648
|
const bounds = ((_a = viewportRef.value) == null ? void 0 : _a.getBoundingClientRect()) ?? { left: 0, top: 0 };
|
|
@@ -16389,10 +16652,21 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
16389
16652
|
});
|
|
16390
16653
|
emit("click:pane", position2);
|
|
16391
16654
|
}
|
|
16655
|
+
async function onFitView() {
|
|
16656
|
+
await fitView();
|
|
16657
|
+
}
|
|
16658
|
+
onMounted(() => {
|
|
16659
|
+
document.addEventListener("keydown", onKeyDown);
|
|
16660
|
+
props.eventBus.on("fitView", onFitView);
|
|
16661
|
+
});
|
|
16662
|
+
onUnmounted(() => {
|
|
16663
|
+
props.eventBus.off("fitView", onFitView);
|
|
16664
|
+
document.removeEventListener("keydown", onKeyDown);
|
|
16665
|
+
});
|
|
16392
16666
|
return (_ctx, _cache) => {
|
|
16393
16667
|
return openBlock(), createBlock(unref(_sfc_main$1$1), {
|
|
16394
16668
|
id: _ctx.id,
|
|
16395
|
-
nodes: _ctx.
|
|
16669
|
+
nodes: _ctx.nodes,
|
|
16396
16670
|
edges: _ctx.connections,
|
|
16397
16671
|
"apply-changes": false,
|
|
16398
16672
|
"fit-view-on-init": "",
|
|
@@ -16412,31 +16686,34 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
16412
16686
|
onPaneClick: onClickPane
|
|
16413
16687
|
}, {
|
|
16414
16688
|
"node-canvas-node": withCtx((canvasNodeProps) => [
|
|
16415
|
-
createVNode(
|
|
16689
|
+
createVNode(Node, mergeProps(canvasNodeProps, {
|
|
16416
16690
|
onDelete: onDeleteNode,
|
|
16417
16691
|
onRun: onRunNode,
|
|
16418
16692
|
onSelect: onSelectNode,
|
|
16419
16693
|
onToggle: onToggleNodeEnabled,
|
|
16420
|
-
onActivate: onSetNodeActive
|
|
16694
|
+
onActivate: onSetNodeActive,
|
|
16695
|
+
onUpdate: onUpdateNodeParameters,
|
|
16696
|
+
onMove: onUpdateNodePosition
|
|
16421
16697
|
}), null, 16)
|
|
16422
16698
|
]),
|
|
16423
16699
|
"edge-canvas-edge": withCtx((canvasEdgeProps) => [
|
|
16424
|
-
createVNode(
|
|
16700
|
+
createVNode(Edge, mergeProps(canvasEdgeProps, {
|
|
16425
16701
|
hovered: hoveredEdges.value[canvasEdgeProps.id],
|
|
16702
|
+
onAdd: onClickConnectionAdd,
|
|
16426
16703
|
onDelete: onDeleteConnection
|
|
16427
16704
|
}), null, 16, ["hovered"])
|
|
16428
16705
|
]),
|
|
16429
16706
|
default: withCtx(() => [
|
|
16430
|
-
createVNode(unref(_sfc_main$
|
|
16707
|
+
createVNode(unref(_sfc_main$R), {
|
|
16431
16708
|
"data-test-id": "canvas-background",
|
|
16432
16709
|
"pattern-color": "#aaa",
|
|
16433
16710
|
gap: 16
|
|
16434
16711
|
}),
|
|
16435
|
-
createVNode(unref(_sfc_main$
|
|
16712
|
+
createVNode(unref(_sfc_main$S), {
|
|
16436
16713
|
"data-test-id": "canvas-minimap",
|
|
16437
16714
|
pannable: ""
|
|
16438
16715
|
}),
|
|
16439
|
-
createVNode(unref(_sfc_main$
|
|
16716
|
+
createVNode(unref(_sfc_main$T), {
|
|
16440
16717
|
"data-test-id": "canvas-controls",
|
|
16441
16718
|
class: normalizeClass(unref($style).canvasControls),
|
|
16442
16719
|
position: _ctx.controlsPosition
|
|
@@ -16448,27 +16725,57 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
16448
16725
|
}
|
|
16449
16726
|
});
|
|
16450
16727
|
function useCanvasMapping({
|
|
16451
|
-
|
|
16728
|
+
nodes,
|
|
16729
|
+
connections: connections2,
|
|
16452
16730
|
workflowObject
|
|
16453
16731
|
}) {
|
|
16454
16732
|
const i18n2 = useI18n();
|
|
16455
16733
|
const workflowsStore = useWorkflowsStore();
|
|
16456
16734
|
const nodeTypesStore = useNodeTypesStore();
|
|
16457
|
-
|
|
16458
|
-
|
|
16459
|
-
|
|
16460
|
-
|
|
16461
|
-
|
|
16462
|
-
|
|
16463
|
-
|
|
16464
|
-
|
|
16465
|
-
|
|
16466
|
-
|
|
16735
|
+
function createStickyNoteRenderType(node2) {
|
|
16736
|
+
return {
|
|
16737
|
+
type: CanvasNodeRenderType.StickyNote,
|
|
16738
|
+
options: {
|
|
16739
|
+
width: node2.parameters.width,
|
|
16740
|
+
height: node2.parameters.height,
|
|
16741
|
+
color: node2.parameters.color,
|
|
16742
|
+
content: node2.parameters.content
|
|
16743
|
+
}
|
|
16744
|
+
};
|
|
16745
|
+
}
|
|
16746
|
+
function createAddNodesRenderType() {
|
|
16747
|
+
return {
|
|
16748
|
+
type: CanvasNodeRenderType.AddNodes,
|
|
16749
|
+
options: {}
|
|
16750
|
+
};
|
|
16751
|
+
}
|
|
16752
|
+
function createDefaultNodeRenderType(node2) {
|
|
16753
|
+
return {
|
|
16754
|
+
type: CanvasNodeRenderType.Default,
|
|
16755
|
+
options: {
|
|
16756
|
+
trigger: nodeTypesStore.isTriggerNode(node2.type),
|
|
16757
|
+
configuration: nodeTypesStore.isConfigNode(workflowObject.value, node2, node2.type),
|
|
16758
|
+
configurable: nodeTypesStore.isConfigurableNode(workflowObject.value, node2, node2.type)
|
|
16759
|
+
}
|
|
16760
|
+
};
|
|
16761
|
+
}
|
|
16762
|
+
const renderTypeByNodeId = computed(
|
|
16763
|
+
() => nodes.value.reduce((acc, node2) => {
|
|
16764
|
+
switch (node2.type) {
|
|
16765
|
+
case `${CanvasNodeRenderType.StickyNote}`:
|
|
16766
|
+
acc[node2.id] = createStickyNoteRenderType(node2);
|
|
16767
|
+
break;
|
|
16768
|
+
case `${CanvasNodeRenderType.AddNodes}`:
|
|
16769
|
+
acc[node2.id] = createAddNodesRenderType();
|
|
16770
|
+
break;
|
|
16771
|
+
default:
|
|
16772
|
+
acc[node2.id] = createDefaultNodeRenderType(node2);
|
|
16773
|
+
}
|
|
16467
16774
|
return acc;
|
|
16468
16775
|
}, {}) ?? {}
|
|
16469
16776
|
);
|
|
16470
16777
|
const nodeInputsById = computed(
|
|
16471
|
-
() =>
|
|
16778
|
+
() => nodes.value.reduce((acc, node2) => {
|
|
16472
16779
|
const nodeTypeDescription = nodeTypesStore.getNodeType(node2.type);
|
|
16473
16780
|
const workflowObjectNode = workflowObject.value.getNode(node2.name);
|
|
16474
16781
|
acc[node2.id] = workflowObjectNode && nodeTypeDescription ? mapLegacyEndpointsToCanvasConnectionPort(
|
|
@@ -16482,7 +16789,7 @@ function useCanvasMapping({
|
|
|
16482
16789
|
}, {})
|
|
16483
16790
|
);
|
|
16484
16791
|
const nodeOutputsById = computed(
|
|
16485
|
-
() =>
|
|
16792
|
+
() => nodes.value.reduce((acc, node2) => {
|
|
16486
16793
|
const nodeTypeDescription = nodeTypesStore.getNodeType(node2.type);
|
|
16487
16794
|
const workflowObjectNode = workflowObject.value.getNode(node2.name);
|
|
16488
16795
|
acc[node2.id] = workflowObjectNode && nodeTypeDescription ? mapLegacyEndpointsToCanvasConnectionPort(
|
|
@@ -16496,32 +16803,32 @@ function useCanvasMapping({
|
|
|
16496
16803
|
}, {})
|
|
16497
16804
|
);
|
|
16498
16805
|
const nodePinnedDataById = computed(
|
|
16499
|
-
() =>
|
|
16806
|
+
() => nodes.value.reduce((acc, node2) => {
|
|
16500
16807
|
acc[node2.id] = workflowsStore.pinDataByNodeName(node2.name);
|
|
16501
16808
|
return acc;
|
|
16502
16809
|
}, {})
|
|
16503
16810
|
);
|
|
16504
16811
|
const nodeExecutionRunningById = computed(
|
|
16505
|
-
() =>
|
|
16812
|
+
() => nodes.value.reduce((acc, node2) => {
|
|
16506
16813
|
acc[node2.id] = workflowsStore.isNodeExecuting(node2.name);
|
|
16507
16814
|
return acc;
|
|
16508
16815
|
}, {})
|
|
16509
16816
|
);
|
|
16510
16817
|
const nodeExecutionStatusById = computed(
|
|
16511
|
-
() =>
|
|
16818
|
+
() => nodes.value.reduce((acc, node2) => {
|
|
16512
16819
|
var _a, _b;
|
|
16513
16820
|
acc[node2.id] = ((_b = (_a = workflowsStore.getWorkflowRunData) == null ? void 0 : _a[node2.name]) == null ? void 0 : _b.filter(Boolean)[0].executionStatus) ?? "new";
|
|
16514
16821
|
return acc;
|
|
16515
16822
|
}, {})
|
|
16516
16823
|
);
|
|
16517
16824
|
const nodeExecutionRunDataById = computed(
|
|
16518
|
-
() =>
|
|
16825
|
+
() => nodes.value.reduce((acc, node2) => {
|
|
16519
16826
|
acc[node2.id] = workflowsStore.getWorkflowResultDataByNodeName(node2.name);
|
|
16520
16827
|
return acc;
|
|
16521
16828
|
}, {})
|
|
16522
16829
|
);
|
|
16523
16830
|
const nodeIssuesById = computed(
|
|
16524
|
-
() =>
|
|
16831
|
+
() => nodes.value.reduce((acc, node2) => {
|
|
16525
16832
|
var _a;
|
|
16526
16833
|
const issues2 = [];
|
|
16527
16834
|
const nodeExecutionRunData = (_a = workflowsStore.getWorkflowRunData) == null ? void 0 : _a[node2.name];
|
|
@@ -16542,7 +16849,7 @@ function useCanvasMapping({
|
|
|
16542
16849
|
}, {})
|
|
16543
16850
|
);
|
|
16544
16851
|
const nodeHasIssuesById = computed(
|
|
16545
|
-
() =>
|
|
16852
|
+
() => nodes.value.reduce((acc, node2) => {
|
|
16546
16853
|
if (["crashed", "error"].includes(nodeExecutionStatusById.value[node2.id])) {
|
|
16547
16854
|
acc[node2.id] = true;
|
|
16548
16855
|
} else if (nodePinnedDataById.value[node2.id]) {
|
|
@@ -16554,7 +16861,7 @@ function useCanvasMapping({
|
|
|
16554
16861
|
}, {})
|
|
16555
16862
|
);
|
|
16556
16863
|
const nodeExecutionWaitingById = computed(
|
|
16557
|
-
() =>
|
|
16864
|
+
() => nodes.value.reduce((acc, node2) => {
|
|
16558
16865
|
var _a, _b, _c, _d;
|
|
16559
16866
|
const isExecutionSummary = (execution) => "waitTill" in execution;
|
|
16560
16867
|
const workflowExecution = workflowsStore.getWorkflowExecution;
|
|
@@ -16578,13 +16885,26 @@ function useCanvasMapping({
|
|
|
16578
16885
|
return acc;
|
|
16579
16886
|
}, {})
|
|
16580
16887
|
);
|
|
16581
|
-
const
|
|
16582
|
-
|
|
16888
|
+
const additionalNodePropertiesById = computed(() => {
|
|
16889
|
+
return nodes.value.reduce((acc, node2) => {
|
|
16890
|
+
if (node2.type === STICKY_NODE_TYPE) {
|
|
16891
|
+
acc[node2.id] = {
|
|
16892
|
+
style: {
|
|
16893
|
+
zIndex: -1
|
|
16894
|
+
}
|
|
16895
|
+
};
|
|
16896
|
+
}
|
|
16897
|
+
return acc;
|
|
16898
|
+
}, {});
|
|
16899
|
+
});
|
|
16900
|
+
const mappedNodes = computed(() => [
|
|
16901
|
+
...nodes.value.map((node2) => {
|
|
16583
16902
|
var _a, _b;
|
|
16584
16903
|
const inputConnections = workflowObject.value.connectionsByDestinationNode[node2.name] ?? {};
|
|
16585
16904
|
const outputConnections = workflowObject.value.connectionsBySourceNode[node2.name] ?? {};
|
|
16586
16905
|
const data = {
|
|
16587
16906
|
id: node2.id,
|
|
16907
|
+
name: node2.name,
|
|
16588
16908
|
type: node2.type,
|
|
16589
16909
|
typeVersion: node2.typeVersion,
|
|
16590
16910
|
disabled: !!node2.disabled,
|
|
@@ -16611,42 +16931,39 @@ function useCanvasMapping({
|
|
|
16611
16931
|
count: ((_b = nodeExecutionRunDataById.value[node2.id]) == null ? void 0 : _b.length) ?? 0,
|
|
16612
16932
|
visible: !!nodeExecutionRunDataById.value[node2.id]
|
|
16613
16933
|
},
|
|
16614
|
-
render:
|
|
16934
|
+
render: renderTypeByNodeId.value[node2.id] ?? { type: "default", options: {} }
|
|
16615
16935
|
};
|
|
16616
16936
|
return {
|
|
16617
16937
|
id: node2.id,
|
|
16618
16938
|
label: node2.name,
|
|
16619
16939
|
type: "canvas-node",
|
|
16620
16940
|
position: { x: node2.position[0], y: node2.position[1] },
|
|
16621
|
-
data
|
|
16941
|
+
data,
|
|
16942
|
+
...additionalNodePropertiesById.value[node2.id]
|
|
16622
16943
|
};
|
|
16623
16944
|
})
|
|
16624
16945
|
]);
|
|
16625
|
-
const
|
|
16626
|
-
|
|
16627
|
-
|
|
16628
|
-
|
|
16946
|
+
const mappedConnections = computed(() => {
|
|
16947
|
+
return mapLegacyConnectionsToCanvasConnections(connections2.value ?? [], nodes.value ?? []).map(
|
|
16948
|
+
(connection) => {
|
|
16949
|
+
const type = getConnectionType(connection);
|
|
16950
|
+
const label2 = getConnectionLabel(connection);
|
|
16951
|
+
const data = getConnectionData(connection);
|
|
16952
|
+
return {
|
|
16953
|
+
...connection,
|
|
16954
|
+
data,
|
|
16955
|
+
type,
|
|
16956
|
+
label: label2,
|
|
16957
|
+
animated: data.status === "running"
|
|
16958
|
+
};
|
|
16959
|
+
}
|
|
16629
16960
|
);
|
|
16630
|
-
return mappedConnections.map((connection) => {
|
|
16631
|
-
const type = getConnectionType(connection);
|
|
16632
|
-
const label2 = getConnectionLabel(connection);
|
|
16633
|
-
const data = getConnectionData(connection);
|
|
16634
|
-
return {
|
|
16635
|
-
...connection,
|
|
16636
|
-
data,
|
|
16637
|
-
type,
|
|
16638
|
-
label: label2,
|
|
16639
|
-
animated: data.status === "running"
|
|
16640
|
-
};
|
|
16641
|
-
});
|
|
16642
16961
|
});
|
|
16643
16962
|
function getConnectionData(connection) {
|
|
16644
|
-
const fromNode =
|
|
16645
|
-
|
|
16646
|
-
|
|
16647
|
-
|
|
16648
|
-
}
|
|
16649
|
-
);
|
|
16963
|
+
const fromNode = nodes.value.find((node2) => {
|
|
16964
|
+
var _a;
|
|
16965
|
+
return node2.name === ((_a = connection.data) == null ? void 0 : _a.fromNodeName);
|
|
16966
|
+
});
|
|
16650
16967
|
let status2;
|
|
16651
16968
|
if (fromNode) {
|
|
16652
16969
|
if (nodeExecutionRunningById.value[fromNode.id]) {
|
|
@@ -16669,12 +16986,10 @@ function useCanvasMapping({
|
|
|
16669
16986
|
}
|
|
16670
16987
|
function getConnectionLabel(connection) {
|
|
16671
16988
|
var _a, _b;
|
|
16672
|
-
const fromNode =
|
|
16673
|
-
|
|
16674
|
-
|
|
16675
|
-
|
|
16676
|
-
}
|
|
16677
|
-
);
|
|
16989
|
+
const fromNode = nodes.value.find((node2) => {
|
|
16990
|
+
var _a2;
|
|
16991
|
+
return node2.name === ((_a2 = connection.data) == null ? void 0 : _a2.fromNodeName);
|
|
16992
|
+
});
|
|
16678
16993
|
if (!fromNode) {
|
|
16679
16994
|
return "";
|
|
16680
16995
|
}
|
|
@@ -16694,26 +17009,36 @@ function useCanvasMapping({
|
|
|
16694
17009
|
return "";
|
|
16695
17010
|
}
|
|
16696
17011
|
return {
|
|
16697
|
-
connections:
|
|
16698
|
-
|
|
17012
|
+
connections: mappedConnections,
|
|
17013
|
+
nodes: mappedNodes
|
|
16699
17014
|
};
|
|
16700
17015
|
}
|
|
16701
|
-
const _sfc_main$
|
|
17016
|
+
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
16702
17017
|
...{
|
|
16703
17018
|
inheritAttrs: false
|
|
16704
17019
|
},
|
|
16705
17020
|
__name: "WorkflowCanvas",
|
|
16706
17021
|
props: {
|
|
16707
|
-
id: {},
|
|
17022
|
+
id: { default: "canvas" },
|
|
16708
17023
|
workflow: {},
|
|
16709
|
-
workflowObject: {}
|
|
17024
|
+
workflowObject: {},
|
|
17025
|
+
fallbackNodes: { default: () => [] },
|
|
17026
|
+
eventBus: {}
|
|
16710
17027
|
},
|
|
16711
17028
|
setup(__props) {
|
|
16712
17029
|
const props = __props;
|
|
16713
17030
|
const $style = useCssModule();
|
|
16714
17031
|
const workflow = toRef(props, "workflow");
|
|
16715
17032
|
const workflowObject = toRef(props, "workflowObject");
|
|
16716
|
-
const
|
|
17033
|
+
const nodes = computed(
|
|
17034
|
+
() => props.workflow.nodes.length > 0 ? props.workflow.nodes : props.fallbackNodes
|
|
17035
|
+
);
|
|
17036
|
+
const connections2 = computed(() => props.workflow.connections);
|
|
17037
|
+
const { nodes: mappedNodes, connections: mappedConnections } = useCanvasMapping({
|
|
17038
|
+
nodes,
|
|
17039
|
+
connections: connections2,
|
|
17040
|
+
workflowObject
|
|
17041
|
+
});
|
|
16717
17042
|
return (_ctx, _cache) => {
|
|
16718
17043
|
return openBlock(), createElementBlock("div", {
|
|
16719
17044
|
class: normalizeClass(unref($style).wrapper)
|
|
@@ -16721,11 +17046,12 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
16721
17046
|
createBaseVNode("div", {
|
|
16722
17047
|
class: normalizeClass(unref($style).canvas)
|
|
16723
17048
|
}, [
|
|
16724
|
-
workflow.value ? (openBlock(), createBlock(_sfc_main$
|
|
17049
|
+
workflow.value ? (openBlock(), createBlock(_sfc_main$7, mergeProps({
|
|
16725
17050
|
key: 0,
|
|
16726
|
-
|
|
16727
|
-
connections: unref(
|
|
16728
|
-
|
|
17051
|
+
nodes: unref(mappedNodes),
|
|
17052
|
+
connections: unref(mappedConnections),
|
|
17053
|
+
"event-bus": _ctx.eventBus
|
|
17054
|
+
}, _ctx.$attrs), null, 16, ["nodes", "connections", "event-bus"])) : createCommentVNode("", true)
|
|
16729
17055
|
], 2),
|
|
16730
17056
|
renderSlot(_ctx.$slots, "default")
|
|
16731
17057
|
], 2);
|
|
@@ -16741,14 +17067,15 @@ const style0$1 = {
|
|
|
16741
17067
|
const cssModules$1 = {
|
|
16742
17068
|
"$style": style0$1
|
|
16743
17069
|
};
|
|
16744
|
-
const WorkflowCanvas = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16745
|
-
const _sfc_main$
|
|
16746
|
-
__name: "
|
|
17070
|
+
const WorkflowCanvas = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__cssModules", cssModules$1]]);
|
|
17071
|
+
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
17072
|
+
__name: "CanvasRunWorkflowButton",
|
|
16747
17073
|
props: {
|
|
16748
17074
|
waitingForWebhook: { type: Boolean },
|
|
16749
|
-
executing: { type: Boolean }
|
|
17075
|
+
executing: { type: Boolean },
|
|
17076
|
+
disabled: { type: Boolean }
|
|
16750
17077
|
},
|
|
16751
|
-
emits: ["click"],
|
|
17078
|
+
emits: ["mouseenter", "mouseleave", "click"],
|
|
16752
17079
|
setup(__props) {
|
|
16753
17080
|
const props = __props;
|
|
16754
17081
|
const i18n2 = useI18n();
|
|
@@ -16771,12 +17098,15 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
16771
17098
|
createVNode(_component_N8nButton, {
|
|
16772
17099
|
loading: _ctx.executing,
|
|
16773
17100
|
label: label2.value,
|
|
17101
|
+
disabled: _ctx.disabled,
|
|
16774
17102
|
size: "large",
|
|
16775
17103
|
icon: "flask",
|
|
16776
17104
|
type: "primary",
|
|
16777
17105
|
"data-test-id": "execute-workflow-button",
|
|
16778
|
-
|
|
16779
|
-
|
|
17106
|
+
onMouseenter: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("mouseenter", $event)),
|
|
17107
|
+
onMouseleave: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("mouseleave", $event)),
|
|
17108
|
+
onClick: _cache[2] || (_cache[2] = withModifiers(($event) => _ctx.$emit("click", $event), ["stop"]))
|
|
17109
|
+
}, null, 8, ["loading", "label", "disabled"])
|
|
16780
17110
|
]),
|
|
16781
17111
|
_: 1
|
|
16782
17112
|
}, 8, ["label"]);
|
|
@@ -16900,6 +17230,19 @@ function useCanvasOperations({
|
|
|
16900
17230
|
function setNodeActiveByName(name) {
|
|
16901
17231
|
ndvStore.activeNodeName = name;
|
|
16902
17232
|
}
|
|
17233
|
+
function setNodeParameters(id, parameters) {
|
|
17234
|
+
const node2 = workflowsStore.getNodeById(id);
|
|
17235
|
+
if (!node2) {
|
|
17236
|
+
return;
|
|
17237
|
+
}
|
|
17238
|
+
workflowsStore.setNodeParameters(
|
|
17239
|
+
{
|
|
17240
|
+
name: node2.name,
|
|
17241
|
+
value: parameters
|
|
17242
|
+
},
|
|
17243
|
+
true
|
|
17244
|
+
);
|
|
17245
|
+
}
|
|
16903
17246
|
function setNodeSelected(id) {
|
|
16904
17247
|
if (!id) {
|
|
16905
17248
|
uiStore.lastSelectedNode = "";
|
|
@@ -16918,7 +17261,7 @@ function useCanvasOperations({
|
|
|
16918
17261
|
}
|
|
16919
17262
|
nodeHelpers.disableNodes([node2], trackHistory);
|
|
16920
17263
|
}
|
|
16921
|
-
async function
|
|
17264
|
+
async function addNodes2(nodes, {
|
|
16922
17265
|
dragAndDrop,
|
|
16923
17266
|
position: position2
|
|
16924
17267
|
} = {}) {
|
|
@@ -16976,6 +17319,7 @@ function useCanvasOperations({
|
|
|
16976
17319
|
workflowsStore.addNode(newNodeData);
|
|
16977
17320
|
nodeHelpers.matchCredentials(newNodeData);
|
|
16978
17321
|
const lastSelectedNode = uiStore.getLastSelectedNode;
|
|
17322
|
+
const lastSelectedNodeConnection = uiStore.lastSelectedNodeConnection;
|
|
16979
17323
|
const lastSelectedNodeOutputIndex = uiStore.lastSelectedNodeOutputIndex;
|
|
16980
17324
|
const lastSelectedNodeEndpointUuid = uiStore.lastSelectedNodeEndpointUuid;
|
|
16981
17325
|
historyStore.startRecordingUndo();
|
|
@@ -17011,11 +17355,35 @@ function useCanvasOperations({
|
|
|
17011
17355
|
} else {
|
|
17012
17356
|
createConnection({
|
|
17013
17357
|
source: lastSelectedNode.id,
|
|
17014
|
-
sourceHandle:
|
|
17358
|
+
sourceHandle: createCanvasConnectionHandleString({
|
|
17359
|
+
mode: CanvasConnectionMode.Output,
|
|
17360
|
+
type: NodeConnectionType.Main,
|
|
17361
|
+
index: outputIndex
|
|
17362
|
+
}),
|
|
17015
17363
|
target: newNodeData.id,
|
|
17016
|
-
targetHandle:
|
|
17364
|
+
targetHandle: createCanvasConnectionHandleString({
|
|
17365
|
+
mode: CanvasConnectionMode.Input,
|
|
17366
|
+
type: NodeConnectionType.Main,
|
|
17367
|
+
index: 0
|
|
17368
|
+
})
|
|
17017
17369
|
});
|
|
17018
17370
|
}
|
|
17371
|
+
if (lastSelectedNodeConnection) {
|
|
17372
|
+
deleteConnection(lastSelectedNodeConnection, { trackHistory: options.trackHistory });
|
|
17373
|
+
const targetNode = workflowsStore.getNodeById(lastSelectedNodeConnection.target);
|
|
17374
|
+
if (targetNode) {
|
|
17375
|
+
createConnection({
|
|
17376
|
+
source: newNodeData.id,
|
|
17377
|
+
sourceHandle: createCanvasConnectionHandleString({
|
|
17378
|
+
mode: CanvasConnectionMode.Input,
|
|
17379
|
+
type: NodeConnectionType.Main,
|
|
17380
|
+
index: 0
|
|
17381
|
+
}),
|
|
17382
|
+
target: lastSelectedNodeConnection.target,
|
|
17383
|
+
targetHandle: lastSelectedNodeConnection.targetHandle
|
|
17384
|
+
});
|
|
17385
|
+
}
|
|
17386
|
+
}
|
|
17019
17387
|
}
|
|
17020
17388
|
historyStore.stopRecordingUndo();
|
|
17021
17389
|
return newNodeData;
|
|
@@ -17044,7 +17412,7 @@ function useCanvasOperations({
|
|
|
17044
17412
|
const nodeType = nodeTypesStore.getNodeType(newNodeData.type, newNodeData.typeVersion);
|
|
17045
17413
|
const nodeParameters = getNodeParameters(
|
|
17046
17414
|
(nodeType == null ? void 0 : nodeType.properties) ?? [],
|
|
17047
|
-
{},
|
|
17415
|
+
node2.parameters ?? {},
|
|
17048
17416
|
true,
|
|
17049
17417
|
false,
|
|
17050
17418
|
newNodeData
|
|
@@ -17118,9 +17486,8 @@ function useCanvasOperations({
|
|
|
17118
17486
|
node2.position
|
|
17119
17487
|
);
|
|
17120
17488
|
} else if (lastSelectedNode) {
|
|
17121
|
-
|
|
17122
|
-
|
|
17123
|
-
const [diffX] = getConnectorLengths(lastSelectedConnection);
|
|
17489
|
+
if (uiStore.lastSelectedNodeConnection) {
|
|
17490
|
+
const [diffX] = getVueFlowConnectorLengths(uiStore.lastSelectedNodeConnection);
|
|
17124
17491
|
if (diffX <= MAX_X_TO_PUSH_DOWNSTREAM_NODES) {
|
|
17125
17492
|
pushDownstreamNodes(lastSelectedNode.name, PUSH_NODES_OFFSET, {
|
|
17126
17493
|
trackHistory: options.trackHistory
|
|
@@ -17135,7 +17502,7 @@ function useCanvasOperations({
|
|
|
17135
17502
|
canvasStore.newNodeInsertPosition = null;
|
|
17136
17503
|
} else {
|
|
17137
17504
|
let yOffset = 0;
|
|
17138
|
-
if (
|
|
17505
|
+
if (uiStore.lastSelectedNodeConnection) {
|
|
17139
17506
|
const sourceNodeType = nodeTypesStore.getNodeType(
|
|
17140
17507
|
lastSelectedNode.type,
|
|
17141
17508
|
lastSelectedNode.typeVersion
|
|
@@ -17156,8 +17523,10 @@ function useCanvasOperations({
|
|
|
17156
17523
|
(output) => output === NodeConnectionType.Main
|
|
17157
17524
|
);
|
|
17158
17525
|
if (sourceNodeOutputMainOutputs.length > 1) {
|
|
17526
|
+
const { index: sourceOutputIndex } = parseCanvasConnectionHandleString(
|
|
17527
|
+
uiStore.lastSelectedNodeConnection.sourceHandle
|
|
17528
|
+
);
|
|
17159
17529
|
const offset = offsets[sourceNodeOutputMainOutputs.length - 2];
|
|
17160
|
-
const sourceOutputIndex = lastSelectedConnection.__meta ? lastSelectedConnection.__meta.sourceOutputIndex : 0;
|
|
17161
17530
|
yOffset = offset[sourceOutputIndex];
|
|
17162
17531
|
}
|
|
17163
17532
|
}
|
|
@@ -17265,24 +17634,17 @@ function useCanvasOperations({
|
|
|
17265
17634
|
);
|
|
17266
17635
|
for (const nodeName of checkNodes) {
|
|
17267
17636
|
const node2 = workflowsStore.nodesByName[nodeName];
|
|
17268
|
-
const oldPosition = node2.position;
|
|
17269
17637
|
if (node2.position[0] < sourceNode.position[0]) {
|
|
17270
17638
|
continue;
|
|
17271
17639
|
}
|
|
17272
|
-
|
|
17273
|
-
|
|
17274
|
-
|
|
17275
|
-
|
|
17276
|
-
|
|
17277
|
-
|
|
17278
|
-
|
|
17279
|
-
|
|
17280
|
-
if (trackHistory && oldPosition[0] !== updateInformation.properties.position[0] || oldPosition[1] !== updateInformation.properties.position[1]) {
|
|
17281
|
-
historyStore.pushCommandToUndo(
|
|
17282
|
-
new MoveNodeCommand(nodeName, oldPosition, updateInformation.properties.position),
|
|
17283
|
-
trackHistory
|
|
17284
|
-
);
|
|
17285
|
-
}
|
|
17640
|
+
updateNodePosition(
|
|
17641
|
+
node2.id,
|
|
17642
|
+
{
|
|
17643
|
+
x: node2.position[0] + margin,
|
|
17644
|
+
y: node2.position[1]
|
|
17645
|
+
},
|
|
17646
|
+
{ trackHistory }
|
|
17647
|
+
);
|
|
17286
17648
|
}
|
|
17287
17649
|
}
|
|
17288
17650
|
async function loadNodeTypesProperties(nodeInfos) {
|
|
@@ -17367,9 +17729,13 @@ function useCanvasOperations({
|
|
|
17367
17729
|
}
|
|
17368
17730
|
function isConnectionAllowed(sourceNode, targetNode, connectionType2) {
|
|
17369
17731
|
var _a, _b;
|
|
17732
|
+
const blocklist = [STICKY_NODE_TYPE];
|
|
17370
17733
|
if (sourceNode.id === targetNode.id) {
|
|
17371
17734
|
return false;
|
|
17372
17735
|
}
|
|
17736
|
+
if (blocklist.includes(sourceNode.type) || blocklist.includes(targetNode.type)) {
|
|
17737
|
+
return false;
|
|
17738
|
+
}
|
|
17373
17739
|
const targetNodeType = nodeTypesStore.getNodeType(targetNode.type, targetNode.typeVersion);
|
|
17374
17740
|
if ((_a = targetNodeType == null ? void 0 : targetNodeType.inputs) == null ? void 0 : _a.length) {
|
|
17375
17741
|
const workflowNode = editableWorkflowObject.value.getNode(targetNode.name);
|
|
@@ -17421,11 +17787,12 @@ function useCanvasOperations({
|
|
|
17421
17787
|
editableWorkflowObject,
|
|
17422
17788
|
triggerNodes,
|
|
17423
17789
|
initializeNodeDataWithDefaultCredentials,
|
|
17424
|
-
addNodes,
|
|
17790
|
+
addNodes: addNodes2,
|
|
17425
17791
|
updateNodePosition,
|
|
17426
17792
|
setNodeActive,
|
|
17427
17793
|
setNodeActiveByName,
|
|
17428
17794
|
setNodeSelected,
|
|
17795
|
+
setNodeParameters,
|
|
17429
17796
|
toggleNodeDisabled,
|
|
17430
17797
|
renameNode,
|
|
17431
17798
|
revertRenameNode,
|
|
@@ -17438,7 +17805,7 @@ function useCanvasOperations({
|
|
|
17438
17805
|
isConnectionAllowed
|
|
17439
17806
|
};
|
|
17440
17807
|
}
|
|
17441
|
-
const _sfc_main$
|
|
17808
|
+
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
17442
17809
|
__name: "CanvasStopCurrentExecutionButton",
|
|
17443
17810
|
props: {
|
|
17444
17811
|
stopping: { type: Boolean }
|
|
@@ -17463,7 +17830,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
17463
17830
|
};
|
|
17464
17831
|
}
|
|
17465
17832
|
});
|
|
17466
|
-
const _sfc_main$
|
|
17833
|
+
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
17467
17834
|
__name: "CanvasStopWaitingForWebhookButton",
|
|
17468
17835
|
setup(__props) {
|
|
17469
17836
|
const i18n2 = useI18n();
|
|
@@ -17480,11 +17847,26 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
17480
17847
|
};
|
|
17481
17848
|
}
|
|
17482
17849
|
});
|
|
17850
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
17851
|
+
__name: "CanvasClearExecutionDataButton",
|
|
17852
|
+
setup(__props) {
|
|
17853
|
+
const i18n2 = useI18n();
|
|
17854
|
+
return (_ctx, _cache) => {
|
|
17855
|
+
const _component_n8n_icon_button = resolveComponent("n8n-icon-button");
|
|
17856
|
+
return openBlock(), createBlock(_component_n8n_icon_button, {
|
|
17857
|
+
title: unref(i18n2).baseText("nodeView.deletesTheCurrentExecutionData"),
|
|
17858
|
+
icon: "trash",
|
|
17859
|
+
size: "large",
|
|
17860
|
+
"data-test-id": "clear-execution-data-button"
|
|
17861
|
+
}, null, 8, ["title"]);
|
|
17862
|
+
};
|
|
17863
|
+
}
|
|
17864
|
+
});
|
|
17483
17865
|
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
17484
17866
|
__name: "NodeView.v2",
|
|
17485
17867
|
setup(__props) {
|
|
17486
17868
|
const NodeCreation2 = defineAsyncComponent(
|
|
17487
|
-
async () => await __vitePreload(() => import("./NodeCreation-
|
|
17869
|
+
async () => await __vitePreload(() => import("./NodeCreation-DDxu1Y6l.js").then((n) => n.N), true ? __vite__mapDeps([54,5,6,7,4,1,8,9,10,11,3,2,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,55]) : void 0)
|
|
17488
17870
|
);
|
|
17489
17871
|
const NodeDetailsView2 = defineAsyncComponent(
|
|
17490
17872
|
async () => await __vitePreload(() => Promise.resolve().then(() => NodeDetailsView$1), true ? void 0 : void 0)
|
|
@@ -17521,6 +17903,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17521
17903
|
const tagsStore = useTagsStore();
|
|
17522
17904
|
const pushConnectionStore = usePushConnectionStore();
|
|
17523
17905
|
const ndvStore = useNDVStore();
|
|
17906
|
+
const templatesStore = useTemplatesStore();
|
|
17907
|
+
const canvasEventBus = createEventBus();
|
|
17524
17908
|
const lastClickPosition = ref([450, 450]);
|
|
17525
17909
|
const { runWorkflow, stopCurrentExecution, stopWaitingForWebhook } = useRunWorkflow({ router });
|
|
17526
17910
|
const {
|
|
@@ -17530,9 +17914,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17530
17914
|
setNodeActive,
|
|
17531
17915
|
setNodeSelected,
|
|
17532
17916
|
toggleNodeDisabled,
|
|
17917
|
+
setNodeParameters,
|
|
17533
17918
|
deleteNode,
|
|
17534
17919
|
revertDeleteNode,
|
|
17535
|
-
addNodes,
|
|
17920
|
+
addNodes: addNodes2,
|
|
17536
17921
|
createConnection,
|
|
17537
17922
|
deleteConnection,
|
|
17538
17923
|
revertDeleteConnection,
|
|
@@ -17560,6 +17945,21 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17560
17945
|
const isReadOnlyEnvironment = computed(() => {
|
|
17561
17946
|
return sourceControlStore.preferences.branchReadOnly;
|
|
17562
17947
|
});
|
|
17948
|
+
const isCanvasReadOnly = computed(() => {
|
|
17949
|
+
return isLoading.value || isDemoRoute.value || isReadOnlyEnvironment.value;
|
|
17950
|
+
});
|
|
17951
|
+
const fallbackNodes = computed(
|
|
17952
|
+
() => isCanvasReadOnly.value ? [] : [
|
|
17953
|
+
{
|
|
17954
|
+
id: CanvasNodeRenderType.AddNodes,
|
|
17955
|
+
name: CanvasNodeRenderType.AddNodes,
|
|
17956
|
+
type: CanvasNodeRenderType.AddNodes,
|
|
17957
|
+
typeVersion: 1,
|
|
17958
|
+
position: [0, 0],
|
|
17959
|
+
parameters: {}
|
|
17960
|
+
}
|
|
17961
|
+
]
|
|
17962
|
+
);
|
|
17563
17963
|
async function initializeData() {
|
|
17564
17964
|
isLoading.value = true;
|
|
17565
17965
|
canvasStore.startLoading();
|
|
@@ -17613,6 +18013,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17613
18013
|
if (isBlankRedirect.value) {
|
|
17614
18014
|
isBlankRedirect.value = false;
|
|
17615
18015
|
} else if (route.name === VIEWS.TEMPLATE_IMPORT) {
|
|
18016
|
+
const templateId = route.params.id;
|
|
18017
|
+
await openWorkflowTemplate(templateId.toString());
|
|
17616
18018
|
} else {
|
|
17617
18019
|
historyStore.reset();
|
|
17618
18020
|
if (!workflowId.value || isNewWorkflowRoute.value) {
|
|
@@ -17638,6 +18040,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17638
18040
|
nodeHelpers.updateNodesCredentialsIssues();
|
|
17639
18041
|
nodeHelpers.updateNodesParameterIssues();
|
|
17640
18042
|
await loadCredentials();
|
|
18043
|
+
canvasEventBus.emit("fitView");
|
|
17641
18044
|
uiStore.nodeViewInitialized = true;
|
|
17642
18045
|
toast.showNotificationForViews([VIEWS.WORKFLOW, VIEWS.NEW_WORKFLOW]);
|
|
17643
18046
|
}
|
|
@@ -17658,7 +18061,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17658
18061
|
}
|
|
17659
18062
|
const manualTriggerNode = canvasStore.getAutoAddManualTriggerNode();
|
|
17660
18063
|
if (manualTriggerNode) {
|
|
17661
|
-
await
|
|
18064
|
+
await addNodes2([manualTriggerNode]);
|
|
17662
18065
|
uiStore.lastSelectedNode = manualTriggerNode.name;
|
|
17663
18066
|
}
|
|
17664
18067
|
}
|
|
@@ -17681,7 +18084,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17681
18084
|
const selectedExecution = executionsStore.activeExecution;
|
|
17682
18085
|
resetWorkspace();
|
|
17683
18086
|
await workflowHelpers.initState(data);
|
|
17684
|
-
await
|
|
18087
|
+
await addNodes2(data.nodes);
|
|
17685
18088
|
workflowsStore.setConnections(data.connections);
|
|
17686
18089
|
if (data.sharedWithProjects) {
|
|
17687
18090
|
workflowsEEStore.setWorkflowSharedWith({
|
|
@@ -17728,6 +18131,68 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17728
18131
|
workflowsStore.workflow.homeProject = homeProject;
|
|
17729
18132
|
workflowsStore.workflow.scopes = scopes;
|
|
17730
18133
|
}
|
|
18134
|
+
async function openWorkflowTemplate(templateId) {
|
|
18135
|
+
resetWorkspace();
|
|
18136
|
+
canvasStore.startLoading();
|
|
18137
|
+
canvasStore.setLoadingText(i18n2.baseText("nodeView.loadingTemplate"));
|
|
18138
|
+
workflowsStore.currentWorkflowExecutions = [];
|
|
18139
|
+
executionsStore.activeExecution = null;
|
|
18140
|
+
let data;
|
|
18141
|
+
try {
|
|
18142
|
+
void externalHooks.run("template.requested", { templateId });
|
|
18143
|
+
data = await templatesStore.getFixedWorkflowTemplate(templateId);
|
|
18144
|
+
if (!data) {
|
|
18145
|
+
throw new Error(
|
|
18146
|
+
i18n2.baseText("nodeView.workflowTemplateWithIdCouldNotBeFound", {
|
|
18147
|
+
interpolate: { templateId }
|
|
18148
|
+
})
|
|
18149
|
+
);
|
|
18150
|
+
}
|
|
18151
|
+
} catch (error2) {
|
|
18152
|
+
toast.showError(error2, i18n2.baseText("nodeView.couldntImportWorkflow"));
|
|
18153
|
+
await router.replace({ name: VIEWS.NEW_WORKFLOW });
|
|
18154
|
+
return;
|
|
18155
|
+
}
|
|
18156
|
+
trackOpenWorkflowTemplate(templateId);
|
|
18157
|
+
isBlankRedirect.value = true;
|
|
18158
|
+
await router.replace({ name: VIEWS.NEW_WORKFLOW, query: { templateId } });
|
|
18159
|
+
const convertedNodes = data.workflow.nodes.map(workflowsStore.convertTemplateNodeToNodeUi);
|
|
18160
|
+
workflowsStore.setConnections(data.workflow.connections);
|
|
18161
|
+
await addNodes2(convertedNodes);
|
|
18162
|
+
await workflowsStore.getNewWorkflowData(data.name, projectsStore.currentProjectId);
|
|
18163
|
+
workflowsStore.addToWorkflowMetadata({ templateId });
|
|
18164
|
+
uiStore.stateIsDirty = true;
|
|
18165
|
+
canvasEventBus.emit("fitView");
|
|
18166
|
+
canvasStore.stopLoading();
|
|
18167
|
+
void externalHooks.run("template.open", {
|
|
18168
|
+
templateId,
|
|
18169
|
+
templateName: data.name,
|
|
18170
|
+
workflow: data.workflow
|
|
18171
|
+
});
|
|
18172
|
+
}
|
|
18173
|
+
function trackOpenWorkflowTemplate(templateId) {
|
|
18174
|
+
telemetry.track(
|
|
18175
|
+
"User inserted workflow template",
|
|
18176
|
+
{
|
|
18177
|
+
source: "workflow",
|
|
18178
|
+
template_id: tryToParseNumber(templateId),
|
|
18179
|
+
wf_template_repo_session_id: templatesStore.previousSessionId
|
|
18180
|
+
},
|
|
18181
|
+
{
|
|
18182
|
+
withPostHog: true
|
|
18183
|
+
}
|
|
18184
|
+
);
|
|
18185
|
+
}
|
|
18186
|
+
const triggerNodes = computed(() => {
|
|
18187
|
+
return editableWorkflow.value.nodes.filter(
|
|
18188
|
+
(node2) => node2.type === START_NODE_TYPE || nodeTypesStore.isTriggerNode(node2.type)
|
|
18189
|
+
);
|
|
18190
|
+
});
|
|
18191
|
+
const containsTriggerNodes = computed(() => triggerNodes.value.length > 0);
|
|
18192
|
+
const allTriggerNodesDisabled = computed(() => {
|
|
18193
|
+
const disabledTriggerNodes = triggerNodes.value.filter((node2) => node2.disabled);
|
|
18194
|
+
return disabledTriggerNodes.length === triggerNodes.value.length;
|
|
18195
|
+
});
|
|
17731
18196
|
function onUpdateNodePosition(id, position2) {
|
|
17732
18197
|
updateNodePosition(id, position2, { trackHistory: true });
|
|
17733
18198
|
}
|
|
@@ -17760,6 +18225,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17760
18225
|
}) {
|
|
17761
18226
|
await revertRenameNode(currentName, newName);
|
|
17762
18227
|
}
|
|
18228
|
+
function onUpdateNodeParameters(id, parameters) {
|
|
18229
|
+
setNodeParameters(id, parameters);
|
|
18230
|
+
}
|
|
17763
18231
|
async function loadCredentials() {
|
|
17764
18232
|
var _a, _b, _c;
|
|
17765
18233
|
let options;
|
|
@@ -17781,14 +18249,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17781
18249
|
createConnection(connection);
|
|
17782
18250
|
}
|
|
17783
18251
|
function onCreateConnectionCancelled(event) {
|
|
17784
|
-
const { type, index } = parseCanvasConnectionHandleString(event.handleId);
|
|
17785
18252
|
setTimeout(() => {
|
|
17786
18253
|
nodeCreatorStore.openNodeCreatorForConnectingNode({
|
|
17787
|
-
|
|
17788
|
-
|
|
17789
|
-
|
|
17790
|
-
|
|
17791
|
-
|
|
18254
|
+
connection: {
|
|
18255
|
+
source: event.nodeId,
|
|
18256
|
+
sourceHandle: event.handleId
|
|
18257
|
+
},
|
|
18258
|
+
eventSource: NODE_CREATOR_OPEN_SOURCES.NODE_CONNECTION_DROP
|
|
17792
18259
|
});
|
|
17793
18260
|
});
|
|
17794
18261
|
}
|
|
@@ -17804,10 +18271,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17804
18271
|
if (!checkIfEditingIsAllowed()) {
|
|
17805
18272
|
return;
|
|
17806
18273
|
}
|
|
17807
|
-
await
|
|
18274
|
+
await addNodes2(nodes, { dragAndDrop, position: position2 });
|
|
17808
18275
|
await addConnections(connections2, {
|
|
17809
18276
|
offsetIndex: editableWorkflow.value.nodes.length - nodes.length
|
|
17810
18277
|
});
|
|
18278
|
+
uiStore.lastSelectedNodeConnection = null;
|
|
17811
18279
|
}
|
|
17812
18280
|
async function onSwitchActiveNode(nodeName) {
|
|
17813
18281
|
setNodeActiveByName(nodeName);
|
|
@@ -17818,15 +18286,31 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17818
18286
|
function onOpenNodeCreator(options) {
|
|
17819
18287
|
nodeCreatorStore.openNodeCreator(options);
|
|
17820
18288
|
}
|
|
18289
|
+
function onClickConnectionAdd(connection) {
|
|
18290
|
+
nodeCreatorStore.openNodeCreatorForConnectingNode({
|
|
18291
|
+
connection,
|
|
18292
|
+
eventSource: NODE_CREATOR_OPEN_SOURCES.NODE_CONNECTION_ACTION
|
|
18293
|
+
});
|
|
18294
|
+
}
|
|
17821
18295
|
const isStoppingExecution = ref(false);
|
|
17822
18296
|
const isWorkflowRunning = computed(() => uiStore.isActionActive.workflowRunning);
|
|
17823
18297
|
const isExecutionWaitingForWebhook = computed(() => workflowsStore.executionWaitingForWebhook);
|
|
18298
|
+
const isExecutionDisabled = computed(() => {
|
|
18299
|
+
if (containsChatTriggerNodes.value && isOnlyChatTriggerNodeActive.value && !chatTriggerNodePinnedData.value) {
|
|
18300
|
+
return true;
|
|
18301
|
+
}
|
|
18302
|
+
return !containsTriggerNodes.value || allTriggerNodesDisabled.value;
|
|
18303
|
+
});
|
|
17824
18304
|
const isStopExecutionButtonVisible = computed(
|
|
17825
18305
|
() => isWorkflowRunning.value && !isExecutionWaitingForWebhook.value
|
|
17826
18306
|
);
|
|
17827
18307
|
const isStopWaitingForWebhookButtonVisible = computed(
|
|
17828
18308
|
() => isWorkflowRunning.value && isExecutionWaitingForWebhook.value
|
|
17829
18309
|
);
|
|
18310
|
+
const isClearExecutionButtonVisible = computed(
|
|
18311
|
+
() => !isReadOnlyRoute.value && !isReadOnlyEnvironment.value && !isWorkflowRunning.value && !allTriggerNodesDisabled.value && workflowExecutionData.value
|
|
18312
|
+
);
|
|
18313
|
+
const workflowExecutionData = computed(() => workflowsStore.workflowExecutionData);
|
|
17830
18314
|
async function onRunWorkflow() {
|
|
17831
18315
|
trackRunWorkflow();
|
|
17832
18316
|
await runWorkflow({});
|
|
@@ -17874,6 +18358,32 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
17874
18358
|
async function onStopWaitingForWebhook() {
|
|
17875
18359
|
await stopWaitingForWebhook();
|
|
17876
18360
|
}
|
|
18361
|
+
async function onClearExecutionData() {
|
|
18362
|
+
workflowsStore.workflowExecutionData = null;
|
|
18363
|
+
nodeHelpers.updateNodesExecutionIssues();
|
|
18364
|
+
}
|
|
18365
|
+
function onRunWorkflowButtonMouseEnter() {
|
|
18366
|
+
nodeViewEventBus.emit("runWorkflowButton:mouseenter");
|
|
18367
|
+
}
|
|
18368
|
+
function onRunWorkflowButtonMouseLeave() {
|
|
18369
|
+
nodeViewEventBus.emit("runWorkflowButton:mouseleave");
|
|
18370
|
+
}
|
|
18371
|
+
const chatTriggerNode = computed(() => {
|
|
18372
|
+
return editableWorkflow.value.nodes.find((node2) => node2.type === CHAT_TRIGGER_NODE_TYPE);
|
|
18373
|
+
});
|
|
18374
|
+
const containsChatTriggerNodes = computed(() => {
|
|
18375
|
+
return !isExecutionWaitingForWebhook.value && !!editableWorkflow.value.nodes.find(
|
|
18376
|
+
(node2) => [MANUAL_CHAT_TRIGGER_NODE_TYPE, CHAT_TRIGGER_NODE_TYPE].includes(node2.type) && node2.disabled !== true
|
|
18377
|
+
);
|
|
18378
|
+
});
|
|
18379
|
+
const isOnlyChatTriggerNodeActive = computed(() => {
|
|
18380
|
+
return triggerNodes.value.every((node2) => node2.disabled || node2.type === CHAT_TRIGGER_NODE_TYPE);
|
|
18381
|
+
});
|
|
18382
|
+
const chatTriggerNodePinnedData = computed(() => {
|
|
18383
|
+
if (!chatTriggerNode.value)
|
|
18384
|
+
return null;
|
|
18385
|
+
return workflowsStore.pinDataByNodeName(chatTriggerNode.value.name);
|
|
18386
|
+
});
|
|
17877
18387
|
function addKeyboardEventBindings() {
|
|
17878
18388
|
}
|
|
17879
18389
|
function removeKeyboardEventBindings() {
|
|
@@ -18095,34 +18605,45 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
18095
18605
|
key: 0,
|
|
18096
18606
|
workflow: unref(editableWorkflow),
|
|
18097
18607
|
"workflow-object": unref(editableWorkflowObject),
|
|
18608
|
+
"fallback-nodes": fallbackNodes.value,
|
|
18609
|
+
"event-bus": unref(canvasEventBus),
|
|
18098
18610
|
"onUpdate:node:position": onUpdateNodePosition,
|
|
18099
18611
|
"onUpdate:node:active": onSetNodeActive,
|
|
18100
18612
|
"onUpdate:node:selected": onSetNodeSelected,
|
|
18101
18613
|
"onUpdate:node:enabled": onToggleNodeDisabled,
|
|
18614
|
+
"onUpdate:node:parameters": onUpdateNodeParameters,
|
|
18102
18615
|
"onRun:node": onRunWorkflowToNode,
|
|
18103
18616
|
"onDelete:node": onDeleteNode,
|
|
18104
18617
|
"onCreate:connection": onCreateConnection,
|
|
18105
18618
|
"onCreate:connection:cancelled": onCreateConnectionCancelled,
|
|
18106
18619
|
"onDelete:connection": onDeleteConnection,
|
|
18620
|
+
"onClick:connection:add": onClickConnectionAdd,
|
|
18107
18621
|
"onClick:pane": onClickPane
|
|
18108
18622
|
}, {
|
|
18109
18623
|
default: withCtx(() => [
|
|
18110
18624
|
createBaseVNode("div", {
|
|
18111
18625
|
class: normalizeClass(unref($style).executionButtons)
|
|
18112
18626
|
}, [
|
|
18113
|
-
createVNode(_sfc_main$
|
|
18627
|
+
createVNode(_sfc_main$5, {
|
|
18114
18628
|
"waiting-for-webhook": isExecutionWaitingForWebhook.value,
|
|
18629
|
+
disabled: isExecutionDisabled.value,
|
|
18115
18630
|
executing: isWorkflowRunning.value,
|
|
18631
|
+
onMouseenter: onRunWorkflowButtonMouseEnter,
|
|
18632
|
+
onMouseleave: onRunWorkflowButtonMouseLeave,
|
|
18116
18633
|
onClick: onRunWorkflow
|
|
18117
|
-
}, null, 8, ["waiting-for-webhook", "executing"]),
|
|
18118
|
-
isStopExecutionButtonVisible.value ? (openBlock(), createBlock(_sfc_main$
|
|
18634
|
+
}, null, 8, ["waiting-for-webhook", "disabled", "executing"]),
|
|
18635
|
+
isStopExecutionButtonVisible.value ? (openBlock(), createBlock(_sfc_main$4, {
|
|
18119
18636
|
key: 0,
|
|
18120
18637
|
stopping: isStoppingExecution.value,
|
|
18121
18638
|
onClick: onStopExecution
|
|
18122
18639
|
}, null, 8, ["stopping"])) : createCommentVNode("", true),
|
|
18123
|
-
isStopWaitingForWebhookButtonVisible.value ? (openBlock(), createBlock(_sfc_main$
|
|
18640
|
+
isStopWaitingForWebhookButtonVisible.value ? (openBlock(), createBlock(_sfc_main$3, {
|
|
18124
18641
|
key: 1,
|
|
18125
18642
|
onClick: onStopWaitingForWebhook
|
|
18643
|
+
})) : createCommentVNode("", true),
|
|
18644
|
+
isClearExecutionButtonVisible.value ? (openBlock(), createBlock(_sfc_main$2, {
|
|
18645
|
+
key: 2,
|
|
18646
|
+
onClick: onClearExecutionData
|
|
18126
18647
|
})) : createCommentVNode("", true)
|
|
18127
18648
|
], 2),
|
|
18128
18649
|
(openBlock(), createBlock(Suspense, null, {
|
|
@@ -18154,7 +18675,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
18154
18675
|
}))
|
|
18155
18676
|
]),
|
|
18156
18677
|
_: 1
|
|
18157
|
-
}, 8, ["workflow", "workflow-object"])) : createCommentVNode("", true);
|
|
18678
|
+
}, 8, ["workflow", "workflow-object", "fallback-nodes", "event-bus"])) : createCommentVNode("", true);
|
|
18158
18679
|
};
|
|
18159
18680
|
}
|
|
18160
18681
|
});
|