n8n-editor-ui 1.102.2 → 1.104.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{ActionDropdown-CiegfqhB.js → ActionDropdown-Ct6XJ0cl.js} +1 -1
- package/dist/assets/{AnimatedSpinner-DZ7wHd_W.js → AnimatedSpinner-CIyQ3zKd.js} +1 -1
- package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BQoi5khn.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-xv6FYiyR.js} +1 -1
- package/dist/assets/{AuthView-K2y2JXyp.js → AuthView-dJdngoqx.js} +2 -2
- package/dist/assets/{ChangePasswordView-D_EsQtLD.js → ChangePasswordView-C74U84q5.js} +3 -3
- package/dist/assets/CollectionParameter-DCn5Jtcj.js +4 -0
- package/dist/assets/ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-CkASni2S.js +44 -0
- package/dist/assets/{CredentialsView-DvE9GnD7.js → CredentialsView-jouDB3H1.js} +8 -8
- package/dist/assets/{DemoFooter-kRP32xy4.js → DemoFooter-CHlbEpB-.js} +9 -8
- package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-B6KKFEL7.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-CbDihlsO.js} +1 -1
- package/dist/assets/{EntityNotFound-q_5k8QTh.js → EntityNotFound-Dtqj9thX.js} +1 -1
- package/dist/assets/{EntityUnAuthorised-DrFh2EVh.js → EntityUnAuthorised-BBsbc6du.js} +1 -1
- package/dist/assets/{ErrorView-CdyA4lBI.js → ErrorView-BN4Jm32q.js} +1 -1
- package/dist/assets/{EvaluationsRootView-DBi9hUxa.js → EvaluationsRootView-B70WfmnQ.js} +5 -3
- package/dist/assets/{EvaluationsView-6l_Invxt.css → EvaluationsView-BTyYfInB.css} +6 -6
- package/dist/assets/{EvaluationsView-VbCSsM2z.js → EvaluationsView-DQd7op3j.js} +53 -40
- package/dist/assets/{ExecutionsTime-DkME6I3E.css → ExecutionsTime-Bo7IOE5K.css} +6 -6
- package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-v5SEEKlZ.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-C_2brmCr.js} +16 -16
- package/dist/assets/{ExecutionsView-sSmNa_LK.js → ExecutionsView-CKPZTnZV.js} +21 -18
- package/dist/assets/{FileSaver.min-BemkeU_7.js → FileSaver.min-BvxTURBB.js} +1 -1
- package/dist/assets/{FixedCollectionParameter-yzvCzSx6.js → FixedCollectionParameter-CA-CigeR.js} +1 -1
- package/dist/assets/{ForgotMyPasswordView-BKvBLqbr.js → ForgotMyPasswordView-YyVmo-nw.js} +3 -3
- package/dist/assets/{InfoAccordion--ZQQuSPX.js → InfoAccordion-BNmUe2V9.js} +1 -1
- package/dist/assets/{InsightsChartAverageRuntime-DGOGXDwW.js → InsightsChartAverageRuntime-C9sCNhzD.js} +5 -4
- package/dist/assets/{InsightsChartFailed-1vg5XpxV.js → InsightsChartFailed-DWA6YbZj.js} +5 -4
- package/dist/assets/{InsightsChartFailureRate-7nJvVi9O.js → InsightsChartFailureRate-CfknGtrr.js} +5 -4
- package/dist/assets/{InsightsChartTimeSaved-DKn1pZ2q.js → InsightsChartTimeSaved-DtLO9DJx.js} +5 -4
- package/dist/assets/{InsightsChartTotal-ByrPtNMJ.js → InsightsChartTotal-yX_QJ-44.js} +5 -4
- package/dist/assets/{InsightsDashboard-BwLnzxKC.js → InsightsDashboard-BlYvn96O.js} +19 -19
- package/dist/assets/{InsightsDashboard-CXbI-Jyg.css → InsightsDashboard-C27Avzrv.css} +2 -2
- package/dist/assets/{InsightsPaywall-8Xzv5tgi.js → InsightsPaywall-BCfIY_xn.js} +3 -3
- package/dist/assets/{InsightsSummary-CVMZ0AIR.js → InsightsSummary-OiO7efWD.js} +9 -4
- package/dist/assets/{InsightsTableWorkflows-DJhX6bQW.css → InsightsTableWorkflows-BTHSCwX8.css} +27 -3
- package/dist/assets/{InsightsTableWorkflows-KGsV_wLS.js → InsightsTableWorkflows-pTl3m7wx.js} +80 -27
- package/dist/assets/{Logo-DFdhGUpH.js → Logo-8g4P9vyv.js} +1 -1
- package/dist/assets/{LogsPanel-Bvy4ANV7.css → LogsPanel-D0xdq4fV.css} +21 -21
- package/dist/assets/{LogsPanel-DDzEUcu_.js → LogsPanel-so01MtIR.js} +23 -12
- package/dist/assets/{MainHeader-IUjqKc1i.js → MainHeader-CcUlKfHC.js} +20 -26
- package/dist/assets/{MainHeader-DYYEm7nF.css → MainHeader-qSHM1Rvp.css} +12 -12
- package/dist/assets/{MainSidebar-CaLHZgDB.css → MainSidebar-D74VZmM5.css} +7 -8
- package/dist/assets/{MainSidebar-BV-JzM27.js → MainSidebar-DOGhP_oY.js} +26 -25
- package/dist/assets/{N8nDataTableServer-Dq5Mwh9d.js → N8nDataTableServer-9HerjyzX.js} +39 -19
- package/dist/assets/{NodeCreation-DCV9QVeh.js → NodeCreation-CVbCKnet.js} +45 -21
- package/dist/assets/{NodeCreation-32nlvQSy.css → NodeCreation-CxN6JIS_.css} +9 -1
- package/dist/assets/{NodeCreator-C8jv1gta.js → NodeCreator-BOosPF8_.js} +114 -204
- package/dist/assets/{NodeCreator-DWE25utr.css → NodeCreator-CkvY2niF.css} +0 -128
- package/dist/assets/{NodeDetailsView-D7qedYA0.js → NodeDetailsView-KFidngJi.js} +21 -16
- package/dist/assets/{NodeDetailsViewV2-BAkPjDo5.js → NodeDetailsViewV2-BL4KKqW-.js} +21 -16
- package/dist/assets/{NodeView-DKlyR0_C.js → NodeView-BzC6ELga.js} +2271 -686
- package/dist/assets/{NodeView-BbQy7Are.css → NodeView-G2qfXaOy.css} +766 -95
- package/dist/assets/{ProjectHeader-Co0EPo6y.js → ProjectHeader-B9-GdGvC.js} +2 -2
- package/dist/assets/{ProjectSettings-CUwuhSyu.js → ProjectSettings-CE4_geFa.js} +7 -5
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DDVpVAyT.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-Bb8zUJvi.js} +1 -1
- package/dist/assets/{ResourcesListLayout-0KbQy3_m.js → ResourcesListLayout-ClTEnqVS.js} +3 -3
- package/dist/assets/{RunDataJson-T-LRvnsQ.js → RunDataJson-fXQKTIFD.js} +8 -9
- package/dist/assets/{RunDataJsonActions-C5tGgl2w.js → RunDataJsonActions-CMP1sUPZ.js} +1 -1
- package/dist/assets/RunDataParsedAiContent-CHK6Y4ET.js +298 -0
- package/dist/assets/{RunDataSearch-CsykTpQU.js → RunDataSearch-CAZGWZzz.js} +1 -1
- package/dist/assets/{RunDataTable-DS-hDrAF.js → RunDataTable-CeqmA-n3.js} +65 -56
- package/dist/assets/{RunDataTable-CTBtmQIs.css → RunDataTable-n918b-Qv.css} +55 -55
- package/dist/assets/{SamlOnboarding-Dr42BiUa.js → SamlOnboarding-BrdzPMSK.js} +3 -3
- package/dist/assets/{SettingsApiView-0TAqOns3.js → SettingsApiView-Cj2YYKAl.js} +5 -4
- package/dist/assets/{SettingsCommunityNodesView-BO5mZg81.js → SettingsCommunityNodesView-ChB--kZD.js} +4 -3
- package/dist/assets/{SettingsExternalSecrets-BmpYfnUN.js → SettingsExternalSecrets-BjghCvkE.js} +5 -3
- package/dist/assets/{SettingsLdapView-AdcIL_WB.js → SettingsLdapView-DIB1-nTk.js} +1 -1
- package/dist/assets/{SettingsLogStreamingView-DHAPBv4i.js → SettingsLogStreamingView-BOOGkcwK.js} +1 -1
- package/dist/assets/{SettingsPersonalView-D-sKTNF5.js → SettingsPersonalView-DaNZTNUy.js} +1 -1
- package/dist/assets/{SettingsSourceControl-D_jgIQPN.js → SettingsSourceControl-B5fQRT0V.js} +10 -8
- package/dist/assets/{SettingsSso-DpxORkrt.js → SettingsSso-CWX-T13W.js} +1 -1
- package/dist/assets/{SettingsUsageAndPlan-DWu4RW1N.js → SettingsUsageAndPlan-Cnnf9k6X.js} +15 -10
- package/dist/assets/{SettingsUsageAndPlan-D6TiPwUx.css → SettingsUsageAndPlan-ZZQpCmyQ.css} +3 -3
- package/dist/assets/{SettingsUsersView-r6-ZO8CO.js → SettingsUsersView-BLDi4lpv.js} +107 -44
- package/dist/assets/{SettingsUsersView-BuZbf1jq.css → SettingsUsersView-RQTdLxyb.css} +13 -6
- package/dist/assets/{SettingsView-DoZ4920P.js → SettingsView-Dtc8MEv6.js} +1 -1
- package/dist/assets/{SetupView-Ca70rhsh.js → SetupView-C4C-2Idz.js} +3 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-ujybntOa.js → SetupWorkflowCredentialsButton-Pzrxag-k.js} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-KE6NTkHC.js → SetupWorkflowFromTemplateView-CRsZDYct.js} +3 -3
- package/dist/assets/{SigninView-_rmKLSpx.js → SigninView-COyoSAUi.js} +3 -3
- package/dist/assets/{SignoutView-DYPGyBsZ.js → SignoutView-B0t9kc5s.js} +1 -1
- package/dist/assets/{SignupView-BDSpYIB0.js → SignupView-BN8MCOnb.js} +3 -3
- package/dist/assets/{TableBase-Bz6zRvAL.js → TableBase-BmhIwPwZ.js} +1 -1
- package/dist/assets/{Tags-Doq3WsWA.js → Tags-DeTgaVsD.js} +1 -1
- package/dist/assets/{TemplateDetails-BzDS-0Fd.js → TemplateDetails-Bh-WSvQ-.js} +2 -2
- package/dist/assets/{TemplateList-D_XBHKQu.js → TemplateList-DxvJMjPE.js} +1 -1
- package/dist/assets/{TemplatesCollectionView-BvnC5QZ9.js → TemplatesCollectionView-BhilAS_8.js} +6 -6
- package/dist/assets/{TemplatesSearchView-CCsnhiD3.js → TemplatesSearchView-CWxnTQ8Z.js} +3 -3
- package/dist/assets/{TemplatesView-DbW9D41Q.js → TemplatesView-Co-FQLhr.js} +1 -1
- package/dist/assets/{TemplatesWorkflowView-CVFtBBcd.js → TemplatesWorkflowView-DAWgsT0T.js} +6 -6
- package/dist/assets/{TriggerPanel-DRpKKKun.css → TriggerPanel-DJv04feX.css} +1 -354
- package/dist/assets/{TriggerPanel-CP3_UsCW.js → TriggerPanel-JaXhe1VW.js} +133 -1089
- package/dist/assets/{VariablesView-DIZkSQZ3.js → VariablesView-JnfEn1f-.js} +5 -5
- package/dist/assets/VueMarkdown-DDKnTMgT.js +1570 -0
- package/dist/assets/{WorkerView-DgXLi4d9.js → WorkerView-DZG4C_Qp.js} +6 -5
- package/dist/assets/{WorkflowActivator-f0lJXePV.js → WorkflowActivator-C8hP37n7.js} +2 -2
- package/dist/assets/{WorkflowExecutionsInfoAccordion-BFSae6PE.js → WorkflowExecutionsInfoAccordion-DCNvkxhh.js} +2 -2
- package/dist/assets/{WorkflowExecutionsLandingPage-Bb104kSO.js → WorkflowExecutionsLandingPage-DVp6SoPy.js} +3 -3
- package/dist/assets/{WorkflowExecutionsPreview-Do5Rp-8m.js → WorkflowExecutionsPreview-CKYWZWv1.js} +9 -7
- package/dist/assets/{WorkflowExecutionsView-BSv7OYhx.js → WorkflowExecutionsView-BIkweP3p.js} +8 -8
- package/dist/assets/{WorkflowHistory-CsEfwZK8.js → WorkflowHistory-C0LrWJW0.js} +6 -6
- package/dist/assets/{WorkflowOnboardingView-BOvx7CPi.js → WorkflowOnboardingView-CWMUgnLK.js} +1 -1
- package/dist/assets/{WorkflowPreview-BQ_GLS2J.js → WorkflowPreview-DmYMBSH3.js} +3 -1
- package/dist/assets/{WorkflowsView-DYxrTukw.js → WorkflowsView-jEphnf90.js} +125 -17
- package/dist/assets/aiTemplatesStarterCollection.store-oECEA5nR.js +794 -0
- package/dist/assets/{chartjs.utils-D8ESC4_p.js → chartjs.utils-CP28DnUQ.js} +2 -2
- package/dist/assets/{en-C2EOIYih.js → en-BX7CKkqE.js} +27 -6
- package/dist/assets/{global-link-actions-BIVeUMGo.js → global-link-actions-BjpAG7gt.js} +1 -1
- package/dist/assets/{import-curl-CjhdjoGU.js → import-curl-BD22LJ4z.js} +1 -1
- package/dist/assets/{index-COleXxZf.css → index-BWpYwmXd.css} +541 -1074
- package/dist/assets/{index-DAODXvFs.js → index-CjbtyS1n.js} +1 -1
- package/dist/assets/{index-B3p3789J.js → index-Cm5yBbby.js} +21381 -15752
- package/dist/assets/{pickBy-CaeaG_7P.js → pickBy-DA-1tKxT.js} +1 -1
- package/dist/assets/{templateActions-Ct4VGqHx.js → templateActions-D9IAsJ2m.js} +1 -1
- package/dist/assets/{typescript.worker-CUj0Nj-S.js → typescript.worker-KwUz68Jx.js} +2499 -157
- package/dist/assets/{useBeforeUnload-Yj83KQFp.js → useBeforeUnload-BR-V9Uaz.js} +1 -1
- package/dist/assets/{useExecutionDebugging-wUQ9K2sh.js → useExecutionDebugging-C8zR-uFJ.js} +1 -1
- package/dist/assets/{useExecutionHelpers-i07QEXws.js → useExecutionHelpers-DQcWcZ8o.js} +1 -1
- package/dist/assets/{useImportCurlCommand-Bs8VOC2z.js → useImportCurlCommand-B3-fEq8S.js} +9 -9
- package/dist/assets/{RunData-DuKNwYqe.css → useKeybindings-2A271Jke.css} +193 -62
- package/dist/assets/{RunData-CctCvWsu.js → useKeybindings-DetzdpXy.js} +288 -1696
- package/dist/assets/{useProjectPages-DHCwu3nX.js → useProjectPages-qXIMd_UF.js} +1 -1
- package/dist/assets/{usePushConnection-Iyy-883l.js → usePushConnection-Duvg6z8O.js} +10 -2
- package/dist/assets/{useWorkflowActivate-DpHXxGAq.js → useWorkflowActivate-BE4Ckf9k.js} +1 -1
- package/dist/index.html +3 -7
- package/eslint.config.mjs +1 -1
- package/index.html +1 -5
- package/package.json +1 -1
- package/vite.config.mts +23 -3
- package/dist/assets/CollectionParameter-DvyRKBx0.js +0 -4
- package/dist/assets/RunDataParsedAiContent-BILLIvVH.js +0 -148
- package/dist/assets/useKeybindings-BUK7Ngh6.css +0 -133
- package/dist/assets/useKeybindings-ul7syjnB.js +0 -118
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-
|
|
2
|
-
import { _ as _export_sfc$1, h as createElementBlock, g as openBlock, j as createBaseVNode, d as defineComponent,
|
|
3
|
-
import { N as
|
|
4
|
-
import { N as
|
|
5
|
-
import { i as importCurlEventBus } from "./import-curl-
|
|
6
|
-
import { g as globalLinkActionsEventBus } from "./global-link-actions-
|
|
7
|
-
import { u as useExecutionDebugging } from "./useExecutionDebugging-
|
|
8
|
-
import { u as useBeforeUnload } from "./useBeforeUnload-
|
|
9
|
-
|
|
10
|
-
const
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-CVbCKnet.js","assets/index-Cm5yBbby.js","assets/index-BWpYwmXd.css","assets/NodeCreation-CxN6JIS_.css","assets/NodeDetailsView-KFidngJi.js","assets/TriggerPanel-JaXhe1VW.js","assets/useKeybindings-DetzdpXy.js","assets/FileSaver.min-BvxTURBB.js","assets/useExecutionHelpers-DQcWcZ8o.js","assets/useKeybindings-2A271Jke.css","assets/RunDataParsedAiContent-CHK6Y4ET.js","assets/VueMarkdown-DDKnTMgT.js","assets/RunDataParsedAiContent-wfIiKsq7.css","assets/ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-CkASni2S.js","assets/InfoAccordion-BNmUe2V9.js","assets/InfoAccordion-dxudNqVC.css","assets/TriggerPanel-DJv04feX.css","assets/useWorkflowActivate-BE4Ckf9k.js","assets/ActionDropdown-Ct6XJ0cl.js","assets/ActionDropdown-BmC0wfMx.css","assets/import-curl-BD22LJ4z.js","assets/global-link-actions-BjpAG7gt.js","assets/useExecutionDebugging-C8zR-uFJ.js","assets/useBeforeUnload-BR-V9Uaz.js","assets/aiTemplatesStarterCollection.store-oECEA5nR.js","assets/NodeDetailsView-CaTI-1QQ.css","assets/NodeDetailsViewV2-BL4KKqW-.js","assets/NodeDetailsViewV2-BxNx4ZUM.css","assets/SetupWorkflowCredentialsButton-Pzrxag-k.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import { _ as _export_sfc$1, h as createElementBlock, g as openBlock, j as createBaseVNode, d as defineComponent, cn as PanelPosition, co as useVueFlow, bT as toRef, e as createBlock, w as withCtx, J as renderSlot, f as createCommentVNode, F as Fragment, i as createVNode, bY as resolveDynamicComponent, l as unref, cp as _sfc_main$X, x as computed, a0 as _sfc_main$Y, c as useI18n, c7 as KeyboardShortcutTooltip, n as normalizeClass, q as N8nButton, $ as N8nTooltip, bp as NodeConnectionTypes, cq as getBezierPath, cr as getSmoothStepPath, cs as Position, bU as inject, ct as CanvasKey, ac as useCssModule, cu as parseCanvasConnectionHandleString, r as ref, o as onMounted, y as renderList, cv as _sfc_main$d$1, P as normalizeStyle, T as useUIStore, bH as useNodeTypesStore, a5 as useWorkflowsStore, af as useSourceControlStore, an as getResourcePermissions, cw as isNodeWithWorkflowSelector, cx as getSubworkflowId, cy as isPresent, ab as watch, cz as getMousePosition, aR as STICKY_NODE_TYPE, bA as usePinnedData, cA as NOT_DUPLICATABLE_NODE_TYPES, cB as isExecutable, cC as Teleport, c9 as useStyles, bK as getDefaultExportFromCjs, cD as DEFAULT_NODE_SIZE, cE as CanvasNodeRenderType, cF as GRID_SIZE, cb as useThrottleFn, cG as getRectOfNodes, b$ as onUnmounted, cH as onKeyDown, cI as onKeyUp, cJ as useSlots, c1 as useAttrs, cK as getBoundsofRects, cL as watchEffect, t as toDisplayString, cM as getConnectedEdges, bW as normalizeProps, D as mergeProps, bF as provide, aL as h, bg as createSlots, cN as isValidNodeConnectionType, cO as _sfc_main$3$1, cP as CanvasNodeKey, cQ as CanvasConnectionMode, cR as mergeModels, cS as useModel, I as onBeforeUnmount, cT as _sfc_main$Z, N as N8nIcon, bC as useNodeHelpers, cU as TitledList, k as createTextVNode, cV as CanvasNodeDirtiness, aN as useNDVStore, cW as N8nSelect, cX as _sfc_main$_, bQ as _sfc_main$$, cY as truncate, cZ as createStaticVNode, c_ as usePostHog, bI as START_NODE_TYPE, c$ as MANUAL_TRIGGER_NODE_TYPE, d0 as CRON_NODE_TYPE, d1 as INTERVAL_NODE_TYPE, d2 as getNodeInputs, d3 as getNodeOutputs, d4 as uniqBy, c5 as waitingNodeTooltip, d5 as NDV_UI_OVERHAUL_EXPERIMENT, c4 as resolveDirective, p as N8nText, aT as withDirectives, d6 as _sfc_main$10, a1 as I18nT, bP as withModifiers, H as N8nRadioButtons, az as useTelemetry, as as useTemplateRef, d7 as useElementSize, at as InlineRename, b as useRouter, d8 as useCommunityNodesStore, a2 as N8nLink, V as VIEWS, d9 as captureException, da as N8nNotice, db as i18n, dc as toValue, dd as isCommunityPackageName, de as NPM_PACKAGE_DOCS_BASE_URL, df as BUILTIN_NODES_DOCS_URL, dg as COMMUNITY_NODES_INSTALLATION_DOCS_URL, u as useUsersStore, dh as N8nTabs, be as useExternalHooks, c2 as useClipboard, al as useWorkflowHelpers, a as useToast, di as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, dj as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, dk as MCP_TRIGGER_NODE_TYPE, dl as FORM_TRIGGER_NODE_TYPE, by as CHAT_TRIGGER_NODE_TYPE, O as resolveComponent, bf as onClickOutside, dm as toRef$1, dn as tryOnScopeDispose, dp as toValue$1, dq as isIOS, dr as noop$2, ds as isObject, dt as isClient, S as useDebounce, v as useSettingsStore, du as useCredentialsStore, ag as useProjectsStore, dv as OPEN_AI_API_CREDENTIAL_TYPE, dw as N8nCallout, dx as useHistoryStore, dy as useNodeSettingsParameters, dz as useResizeObserver, ar as ProjectTypes, dA as BASE_NODE_SURVEY_URL, cm as ndvEventBus, dB as CUSTOM_NODES_DOCS_URL, aU as vShow, dC as _sfc_main$11, dD as NodeCredentials, br as get$3, dE as getNodeParameters, dF as deepCopy, dG as nameIsParameter, dH as RenameNodeCommand, bG as useCanvasOperations, Q as createEventBus, cl as useActiveElement, dI as useEnvironmentsStore, dJ as watchOnce, dK as Transition$1, dL as ExpressionLocalResolveContextSymbol, dM as calculateNodeSize, dN as NodeId, dO as useGetPointerPosition, dP as clamp, dQ as N8nSticky, dR as useNodeCreatorStore, bc as useTemplatesStore, dS as isExtraTemplateLinksExperimentEnabled, aA as nodeViewEventBus, bk as trackTemplatesClick, bl as TemplateClickSource, dT as NODE_CREATOR_OPEN_SOURCES, dU as useBuilderStore, ak as useWorkflowSaving, aZ as withKeys, dV as N8nInput, dW as CanvasNodeHandleKey, dX as _sfc_main$f$1, bB as useLogsStore, bD as useRunWorkflow, dY as insertSpacersBetweenEndpoints, dZ as createCanvasConnectionHandleString, d_ as CONFIGURATION_NODE_OFFSET, d$ as isEqual, e0 as useDeviceSupport, e1 as isOutsideSelected, K as nextTick, e2 as _sfc_main$1$4, e3 as MarkerType, e4 as Suspense, bX as guardReactiveProps, e5 as updateViewportToContainNodes, e6 as useNodeDirtiness, e7 as CUSTOM_API_CALL_KEY, e8 as mapLegacyEndpointsToCanvasConnectionPort, e9 as getTriggerNodeServiceName, ea as sanitizeHtml, eb as WAIT_NODE_TYPE, ec as SEND_AND_WAIT_OPERATION, ed as FORM_NODE_TYPE, ee as WAIT_INDEFINITELY, ef as checkOverlap, eg as SIMULATE_NODE_TYPE, eh as SIMULATE_TRIGGER_NODE_TYPE, ei as mapLegacyConnectionsToCanvasConnections, ej as getNodeIconSource, ek as refThrottled, el as useFocusPanelStore, em as HTML_NODE_TYPE, en as isValueExpression, eo as isResourceLocatorValue, ep as AI_TRANSFORM_NODE_TYPE, eq as useResolvedExpression, er as InfoTip, es as __unplugin_components_2$3, et as __unplugin_components_3$1, eu as __unplugin_components_4, ev as __unplugin_components_5, ew as __unplugin_components_6, ex as __unplugin_components_7, ey as __unplugin_components_8, ez as __unplugin_components_9, c8 as N8nResizeWrapper, eA as getParameterTypeOption, eB as htmlEditorEventBus, eC as parseFromExpression, eD as isValidParameterOption, eE as formatAsExpression, eF as hasFocusOnInput, eG as isFocusableEl, bo as isChatNode, eH as truncateBeforeLast, eI as reactive, a6 as useRoute, aj as useDocumentTitle, eJ as useExternalSecretsStore, ad as useRootStore, aO as useExecutionsStore, ae as useCanvasStore, ai as useNpsSurveyStore, R as useTagsStore, a4 as usePushConnectionStore, ah as useFoldersStore, eK as useAgentRequestStore, eL as useWorkflowExtraction, eM as FOCUS_PANEL_EXPERIMENT, a7 as PLACEHOLDER_EMPTY_WORKFLOW_ID, eN as NEW_WORKFLOW_ID, eO as getNodeViewTab, G as MAIN_HEADER_TABS, eP as VALID_WORKFLOW_IMPORT_URL_REGEX, aB as useMessage, aC as MODAL_CONFIRM, eQ as jsonParse, bx as MANUAL_CHAT_TRIGGER_NODE_TYPE, eR as EVALUATION_TRIGGER_NODE_TYPE, eS as getBounds, eT as onBeforeRouteLeave, aS as onBeforeMount, aD as WORKFLOW_SETTINGS_MODAL_KEY, eU as onActivated, eV as onDeactivated, eW as defineAsyncComponent, aJ as __vitePreload, aq as EnterpriseEditionFeature, eX as EVALUATION_NODE_TYPE, eY as getEasyAiWorkflowJson, eZ as getRagStarterWorkflowJson, e_ as tryToParseNumber, b2 as sourceControlEventBus, e$ as getNodesWithNormalizedPosition, f0 as needsAgentInput, f1 as FROM_AI_PARAMETERS_MODAL_KEY, f2 as historyBus, f3 as DRAG_EVENT_DATA_KEY } from "./index-Cm5yBbby.js";
|
|
3
|
+
import { u as useExperimentalNdvStore, R as RunData, N as N8nBlockUi, a as useKeybindings, c as canvasEventBus } from "./useKeybindings-DetzdpXy.js";
|
|
4
|
+
import { N as N8nActionDropdown } from "./ActionDropdown-Ct6XJ0cl.js";
|
|
5
|
+
import { i as importCurlEventBus } from "./import-curl-BD22LJ4z.js";
|
|
6
|
+
import { g as globalLinkActionsEventBus } from "./global-link-actions-BjpAG7gt.js";
|
|
7
|
+
import { u as useExecutionDebugging } from "./useExecutionDebugging-C8zR-uFJ.js";
|
|
8
|
+
import { u as useBeforeUnload } from "./useBeforeUnload-BR-V9Uaz.js";
|
|
9
|
+
import { u as useAITemplatesStarterCollectionStore } from "./aiTemplatesStarterCollection.store-oECEA5nR.js";
|
|
10
|
+
const _sfc_main$W = {};
|
|
11
|
+
const _hoisted_1$i = {
|
|
11
12
|
xmlns: "http://www.w3.org/2000/svg",
|
|
12
13
|
viewBox: "0 0 16 16"
|
|
13
14
|
};
|
|
14
|
-
function _sfc_render$
|
|
15
|
-
return openBlock(), createElementBlock("svg", _hoisted_1$
|
|
15
|
+
function _sfc_render$2(_ctx, _cache) {
|
|
16
|
+
return openBlock(), createElementBlock("svg", _hoisted_1$i, _cache[0] || (_cache[0] = [
|
|
16
17
|
createBaseVNode("path", {
|
|
17
18
|
fill: "currentColor",
|
|
18
19
|
d: "M1.6.13c-.18-.17-.47-.18-.62 0L.56.57.14.98c-.2.15-.18.44 0 .62l3.63 3.6c.1.1.1.27 0 .37-.2.2-.53.52-.93.94-.56.57-.12 1.62.22 2.11.05.07.12.1.2.1.05-.01.1-.04.15-.08l5.23-5.22c.1-.1.1-.26-.02-.34-.5-.34-1.55-.78-2.12-.22-.42.4-.75.73-.94.93-.1.1-.27.1-.37 0L1.6.13ZM9.5 3.9c.07-.09.2-.1.3-.04l6.07 3.44c.15.08.18.29.05.4l-1.21 1.22a.26.26 0 0 1-.26.07l-2.18-.64a.26.26 0 0 0-.32.33l.76 2.02c.04.1.01.2-.06.27L7.7 15.92a.26.26 0 0 1-.41-.05L3.83 9.8a.26.26 0 0 1 .04-.3l5.62-5.6Z"
|
|
19
20
|
}, null, -1)
|
|
20
21
|
]));
|
|
21
22
|
}
|
|
22
|
-
const TidyUpIcon = /* @__PURE__ */ _export_sfc$1(_sfc_main$
|
|
23
|
+
const TidyUpIcon = /* @__PURE__ */ _export_sfc$1(_sfc_main$W, [["render", _sfc_render$2]]);
|
|
23
24
|
const _sfc_main$1$3 = {
|
|
24
25
|
name: "ControlButton",
|
|
25
26
|
compatConfig: { MODE: 3 }
|
|
@@ -32,12 +33,12 @@ const _export_sfc = (sfc, props) => {
|
|
|
32
33
|
return target2;
|
|
33
34
|
};
|
|
34
35
|
const _hoisted_1$5$1 = { class: "vue-flow__controls-button" };
|
|
35
|
-
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
36
|
+
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
36
37
|
return openBlock(), createElementBlock("button", _hoisted_1$5$1, [
|
|
37
38
|
renderSlot(_ctx.$slots, "default")
|
|
38
39
|
]);
|
|
39
40
|
}
|
|
40
|
-
const ControlButton = /* @__PURE__ */ _export_sfc(_sfc_main$1$3, [["render", _sfc_render]]);
|
|
41
|
+
const ControlButton = /* @__PURE__ */ _export_sfc(_sfc_main$1$3, [["render", _sfc_render$1]]);
|
|
41
42
|
const _hoisted_1$4$1 = {
|
|
42
43
|
xmlns: "http://www.w3.org/2000/svg",
|
|
43
44
|
viewBox: "0 0 32 32"
|
|
@@ -86,7 +87,7 @@ function render$1(_ctx, _cache) {
|
|
|
86
87
|
return openBlock(), createElementBlock("svg", _hoisted_1$1$2, _hoisted_3$1$1);
|
|
87
88
|
}
|
|
88
89
|
const Lock = { render: render$1 };
|
|
89
|
-
const _hoisted_1$
|
|
90
|
+
const _hoisted_1$h = {
|
|
90
91
|
xmlns: "http://www.w3.org/2000/svg",
|
|
91
92
|
viewBox: "0 0 25 32"
|
|
92
93
|
};
|
|
@@ -95,14 +96,14 @@ const _hoisted_3$7 = [
|
|
|
95
96
|
_hoisted_2$b
|
|
96
97
|
];
|
|
97
98
|
function render(_ctx, _cache) {
|
|
98
|
-
return openBlock(), createElementBlock("svg", _hoisted_1$
|
|
99
|
+
return openBlock(), createElementBlock("svg", _hoisted_1$h, _hoisted_3$7);
|
|
99
100
|
}
|
|
100
101
|
const Unlock = { render };
|
|
101
102
|
const __default__$4 = {
|
|
102
103
|
name: "Controls",
|
|
103
104
|
compatConfig: { MODE: 3 }
|
|
104
105
|
};
|
|
105
|
-
const _sfc_main$
|
|
106
|
+
const _sfc_main$V = /* @__PURE__ */ defineComponent({
|
|
106
107
|
...__default__$4,
|
|
107
108
|
props: {
|
|
108
109
|
showZoom: { type: Boolean, default: true },
|
|
@@ -145,7 +146,7 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
|
|
|
145
146
|
emit("interactionChange", !isInteractive.value);
|
|
146
147
|
}
|
|
147
148
|
return (_ctx, _cache) => {
|
|
148
|
-
return openBlock(), createBlock(unref(_sfc_main$
|
|
149
|
+
return openBlock(), createBlock(unref(_sfc_main$X), {
|
|
149
150
|
class: "vue-flow__controls",
|
|
150
151
|
position: _ctx.position
|
|
151
152
|
}, {
|
|
@@ -218,7 +219,7 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
|
|
|
218
219
|
};
|
|
219
220
|
}
|
|
220
221
|
});
|
|
221
|
-
const _sfc_main$
|
|
222
|
+
const _sfc_main$U = /* @__PURE__ */ defineComponent({
|
|
222
223
|
__name: "CanvasControlButtons",
|
|
223
224
|
props: {
|
|
224
225
|
zoom: { default: 1 },
|
|
@@ -228,7 +229,8 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
228
229
|
setup(__props, { emit: __emit }) {
|
|
229
230
|
const props = __props;
|
|
230
231
|
const emit = __emit;
|
|
231
|
-
const
|
|
232
|
+
const i18n2 = useI18n();
|
|
233
|
+
const experimentalNdvStore = useExperimentalNdvStore();
|
|
232
234
|
const isResetZoomVisible = computed(() => props.zoom !== 1);
|
|
233
235
|
function onResetZoom() {
|
|
234
236
|
emit("reset-zoom");
|
|
@@ -246,15 +248,16 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
246
248
|
emit("tidy-up");
|
|
247
249
|
}
|
|
248
250
|
return (_ctx, _cache) => {
|
|
249
|
-
const _component_N8nIconButton = _sfc_main$
|
|
251
|
+
const _component_N8nIconButton = _sfc_main$Y;
|
|
250
252
|
const _component_N8nButton = N8nButton;
|
|
251
|
-
|
|
253
|
+
const _component_N8nTooltip = N8nTooltip;
|
|
254
|
+
return openBlock(), createBlock(unref(_sfc_main$V), {
|
|
252
255
|
"show-zoom": false,
|
|
253
256
|
"show-fit-view": false
|
|
254
257
|
}, {
|
|
255
258
|
default: withCtx(() => [
|
|
256
259
|
createVNode(KeyboardShortcutTooltip, {
|
|
257
|
-
label: unref(
|
|
260
|
+
label: unref(i18n2).baseText("nodeView.zoomToFit"),
|
|
258
261
|
shortcut: { keys: ["1"] }
|
|
259
262
|
}, {
|
|
260
263
|
default: withCtx(() => [
|
|
@@ -269,7 +272,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
269
272
|
_: 1
|
|
270
273
|
}, 8, ["label"]),
|
|
271
274
|
createVNode(KeyboardShortcutTooltip, {
|
|
272
|
-
label: unref(
|
|
275
|
+
label: unref(i18n2).baseText("nodeView.zoomIn"),
|
|
273
276
|
shortcut: { keys: ["+"] }
|
|
274
277
|
}, {
|
|
275
278
|
default: withCtx(() => [
|
|
@@ -284,7 +287,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
284
287
|
_: 1
|
|
285
288
|
}, 8, ["label"]),
|
|
286
289
|
createVNode(KeyboardShortcutTooltip, {
|
|
287
|
-
label: unref(
|
|
290
|
+
label: unref(i18n2).baseText("nodeView.zoomOut"),
|
|
288
291
|
shortcut: { keys: ["-"] }
|
|
289
292
|
}, {
|
|
290
293
|
default: withCtx(() => [
|
|
@@ -300,7 +303,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
300
303
|
}, 8, ["label"]),
|
|
301
304
|
isResetZoomVisible.value ? (openBlock(), createBlock(KeyboardShortcutTooltip, {
|
|
302
305
|
key: 0,
|
|
303
|
-
label: unref(
|
|
306
|
+
label: unref(i18n2).baseText("nodeView.resetZoom"),
|
|
304
307
|
shortcut: { keys: ["0"] }
|
|
305
308
|
}, {
|
|
306
309
|
default: withCtx(() => [
|
|
@@ -316,7 +319,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
316
319
|
}, 8, ["label"])) : createCommentVNode("", true),
|
|
317
320
|
!_ctx.readOnly ? (openBlock(), createBlock(KeyboardShortcutTooltip, {
|
|
318
321
|
key: 1,
|
|
319
|
-
label: unref(
|
|
322
|
+
label: unref(i18n2).baseText("nodeView.tidyUp"),
|
|
320
323
|
shortcut: { shiftKey: true, altKey: true, keys: ["T"] }
|
|
321
324
|
}, {
|
|
322
325
|
default: withCtx(() => [
|
|
@@ -335,7 +338,37 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
335
338
|
}, 8, ["class"])
|
|
336
339
|
]),
|
|
337
340
|
_: 1
|
|
338
|
-
}, 8, ["label"])) : createCommentVNode("", true)
|
|
341
|
+
}, 8, ["label"])) : createCommentVNode("", true),
|
|
342
|
+
unref(experimentalNdvStore).isActive(props.zoom) ? (openBlock(), createBlock(_component_N8nTooltip, {
|
|
343
|
+
key: 2,
|
|
344
|
+
placement: "top",
|
|
345
|
+
content: unref(i18n2).baseText("nodeView.expandAllNodes")
|
|
346
|
+
}, {
|
|
347
|
+
default: withCtx(() => [
|
|
348
|
+
createVNode(_component_N8nIconButton, {
|
|
349
|
+
type: "tertiary",
|
|
350
|
+
size: "large",
|
|
351
|
+
icon: "maximize-2",
|
|
352
|
+
onClick: unref(experimentalNdvStore).expandAllNodes
|
|
353
|
+
}, null, 8, ["onClick"])
|
|
354
|
+
]),
|
|
355
|
+
_: 1
|
|
356
|
+
}, 8, ["content"])) : createCommentVNode("", true),
|
|
357
|
+
unref(experimentalNdvStore).isActive(props.zoom) ? (openBlock(), createBlock(_component_N8nTooltip, {
|
|
358
|
+
key: 3,
|
|
359
|
+
placement: "top",
|
|
360
|
+
content: unref(i18n2).baseText("nodeView.collapseAllNodes")
|
|
361
|
+
}, {
|
|
362
|
+
default: withCtx(() => [
|
|
363
|
+
createVNode(_component_N8nIconButton, {
|
|
364
|
+
type: "tertiary",
|
|
365
|
+
size: "large",
|
|
366
|
+
icon: "minimize-2",
|
|
367
|
+
onClick: unref(experimentalNdvStore).collapseAllNodes
|
|
368
|
+
}, null, 8, ["onClick"])
|
|
369
|
+
]),
|
|
370
|
+
_: 1
|
|
371
|
+
}, 8, ["content"])) : createCommentVNode("", true)
|
|
339
372
|
]),
|
|
340
373
|
_: 1
|
|
341
374
|
});
|
|
@@ -343,13 +376,13 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
343
376
|
}
|
|
344
377
|
});
|
|
345
378
|
const iconButton = "_iconButton_fx9xi_123";
|
|
346
|
-
const style0$
|
|
379
|
+
const style0$D = {
|
|
347
380
|
iconButton
|
|
348
381
|
};
|
|
349
|
-
const cssModules$
|
|
350
|
-
"$style": style0$
|
|
382
|
+
const cssModules$D = {
|
|
383
|
+
"$style": style0$D
|
|
351
384
|
};
|
|
352
|
-
const __unplugin_components_1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$
|
|
385
|
+
const __unplugin_components_1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$U, [["__cssModules", cssModules$D]]);
|
|
353
386
|
const EDGE_PADDING_BOTTOM = 130;
|
|
354
387
|
const EDGE_PADDING_X = 40;
|
|
355
388
|
const EDGE_BORDER_RADIUS = 16;
|
|
@@ -406,7 +439,7 @@ function injectStrict(key, fallback) {
|
|
|
406
439
|
function useCanvas() {
|
|
407
440
|
return injectStrict(CanvasKey);
|
|
408
441
|
}
|
|
409
|
-
const _sfc_main$
|
|
442
|
+
const _sfc_main$T = /* @__PURE__ */ defineComponent({
|
|
410
443
|
__name: "CanvasConnectionLine",
|
|
411
444
|
props: {
|
|
412
445
|
sourceX: {},
|
|
@@ -473,14 +506,14 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
|
|
|
473
506
|
});
|
|
474
507
|
const edge$1 = "_edge_cbk94_123";
|
|
475
508
|
const visible = "_visible_cbk94_129";
|
|
476
|
-
const style0$
|
|
509
|
+
const style0$C = {
|
|
477
510
|
edge: edge$1,
|
|
478
511
|
visible
|
|
479
512
|
};
|
|
480
|
-
const cssModules$
|
|
481
|
-
"$style": style0$
|
|
513
|
+
const cssModules$C = {
|
|
514
|
+
"$style": style0$C
|
|
482
515
|
};
|
|
483
|
-
const __unplugin_components_0$4 = /* @__PURE__ */ _export_sfc$1(_sfc_main$
|
|
516
|
+
const __unplugin_components_0$4 = /* @__PURE__ */ _export_sfc$1(_sfc_main$T, [["__cssModules", cssModules$C]]);
|
|
484
517
|
const position = ref([0, 0]);
|
|
485
518
|
const isOpen = ref(false);
|
|
486
519
|
const target = ref();
|
|
@@ -493,7 +526,7 @@ const useContextMenu = (onAction = () => {
|
|
|
493
526
|
const nodeTypesStore = useNodeTypesStore();
|
|
494
527
|
const workflowsStore = useWorkflowsStore();
|
|
495
528
|
const sourceControlStore = useSourceControlStore();
|
|
496
|
-
const
|
|
529
|
+
const i18n2 = useI18n();
|
|
497
530
|
const workflowPermissions = computed(
|
|
498
531
|
() => getResourcePermissions(workflowsStore.workflow.scopes).workflow
|
|
499
532
|
);
|
|
@@ -558,20 +591,20 @@ const useContextMenu = (onAction = () => {
|
|
|
558
591
|
const i18nOptions = {
|
|
559
592
|
adjustToNumber: nodes.length,
|
|
560
593
|
interpolate: {
|
|
561
|
-
subject: onlyStickies ?
|
|
594
|
+
subject: onlyStickies ? i18n2.baseText("contextMenu.sticky", { adjustToNumber: nodes.length }) : i18n2.baseText("contextMenu.node", { adjustToNumber: nodes.length })
|
|
562
595
|
}
|
|
563
596
|
};
|
|
564
597
|
const selectionActions = [
|
|
565
598
|
{
|
|
566
599
|
id: "select_all",
|
|
567
600
|
divided: true,
|
|
568
|
-
label:
|
|
601
|
+
label: i18n2.baseText("contextMenu.selectAll"),
|
|
569
602
|
shortcut: { metaKey: true, keys: ["A"] },
|
|
570
603
|
disabled: nodes.length === workflowsStore.allNodes.length
|
|
571
604
|
},
|
|
572
605
|
{
|
|
573
606
|
id: "deselect_all",
|
|
574
|
-
label:
|
|
607
|
+
label: i18n2.baseText("contextMenu.deselectAll"),
|
|
575
608
|
disabled: nodes.length === 0
|
|
576
609
|
}
|
|
577
610
|
];
|
|
@@ -579,7 +612,7 @@ const useContextMenu = (onAction = () => {
|
|
|
579
612
|
{
|
|
580
613
|
id: "extract_sub_workflow",
|
|
581
614
|
divided: true,
|
|
582
|
-
label:
|
|
615
|
+
label: i18n2.baseText("contextMenu.extract", { adjustToNumber: nodes.length }),
|
|
583
616
|
shortcut: { altKey: true, keys: ["X"] },
|
|
584
617
|
disabled: isReadOnly.value
|
|
585
618
|
}
|
|
@@ -588,7 +621,7 @@ const useContextMenu = (onAction = () => {
|
|
|
588
621
|
{
|
|
589
622
|
id: "tidy_up",
|
|
590
623
|
divided: true,
|
|
591
|
-
label:
|
|
624
|
+
label: i18n2.baseText(
|
|
592
625
|
nodes.length < 2 ? "contextMenu.tidyUpWorkflow" : "contextMenu.tidyUpSelection"
|
|
593
626
|
),
|
|
594
627
|
shortcut: { shiftKey: true, altKey: true, keys: ["T"] }
|
|
@@ -599,13 +632,13 @@ const useContextMenu = (onAction = () => {
|
|
|
599
632
|
{
|
|
600
633
|
id: "add_node",
|
|
601
634
|
shortcut: { keys: ["Tab"] },
|
|
602
|
-
label:
|
|
635
|
+
label: i18n2.baseText("contextMenu.addNode"),
|
|
603
636
|
disabled: isReadOnly.value
|
|
604
637
|
},
|
|
605
638
|
{
|
|
606
639
|
id: "add_sticky",
|
|
607
640
|
shortcut: { shiftKey: true, keys: ["s"] },
|
|
608
|
-
label:
|
|
641
|
+
label: i18n2.baseText("contextMenu.addSticky"),
|
|
609
642
|
disabled: isReadOnly.value
|
|
610
643
|
},
|
|
611
644
|
...layoutActions,
|
|
@@ -615,24 +648,24 @@ const useContextMenu = (onAction = () => {
|
|
|
615
648
|
const menuActions = [
|
|
616
649
|
!onlyStickies && {
|
|
617
650
|
id: "toggle_activation",
|
|
618
|
-
label: nodes.every((node2) => node2.disabled) ?
|
|
651
|
+
label: nodes.every((node2) => node2.disabled) ? i18n2.baseText("contextMenu.activate", i18nOptions) : i18n2.baseText("contextMenu.deactivate", i18nOptions),
|
|
619
652
|
shortcut: { keys: ["D"] },
|
|
620
653
|
disabled: isReadOnly.value
|
|
621
654
|
},
|
|
622
655
|
!onlyStickies && {
|
|
623
656
|
id: "toggle_pin",
|
|
624
|
-
label: nodes.every((node2) => hasPinData(node2)) ?
|
|
657
|
+
label: nodes.every((node2) => hasPinData(node2)) ? i18n2.baseText("contextMenu.unpin", i18nOptions) : i18n2.baseText("contextMenu.pin", i18nOptions),
|
|
625
658
|
shortcut: { keys: ["p"] },
|
|
626
659
|
disabled: isReadOnly.value || !nodes.every((n) => usePinnedData(n).canPinNode(true))
|
|
627
660
|
},
|
|
628
661
|
{
|
|
629
662
|
id: "copy",
|
|
630
|
-
label:
|
|
663
|
+
label: i18n2.baseText("contextMenu.copy", i18nOptions),
|
|
631
664
|
shortcut: { metaKey: true, keys: ["C"] }
|
|
632
665
|
},
|
|
633
666
|
{
|
|
634
667
|
id: "duplicate",
|
|
635
|
-
label:
|
|
668
|
+
label: i18n2.baseText("contextMenu.duplicate", i18nOptions),
|
|
636
669
|
shortcut: { metaKey: true, keys: ["D"] },
|
|
637
670
|
disabled: isReadOnly.value || !nodes.every(canDuplicateNode)
|
|
638
671
|
},
|
|
@@ -642,7 +675,7 @@ const useContextMenu = (onAction = () => {
|
|
|
642
675
|
{
|
|
643
676
|
id: "delete",
|
|
644
677
|
divided: true,
|
|
645
|
-
label:
|
|
678
|
+
label: i18n2.baseText("contextMenu.delete", i18nOptions),
|
|
646
679
|
shortcut: { keys: ["Del"] },
|
|
647
680
|
disabled: isReadOnly.value
|
|
648
681
|
}
|
|
@@ -651,29 +684,29 @@ const useContextMenu = (onAction = () => {
|
|
|
651
684
|
const singleNodeActions = onlyStickies ? [
|
|
652
685
|
{
|
|
653
686
|
id: "open",
|
|
654
|
-
label:
|
|
687
|
+
label: i18n2.baseText("contextMenu.editSticky"),
|
|
655
688
|
shortcut: { keys: ["↵"] },
|
|
656
689
|
disabled: isReadOnly.value
|
|
657
690
|
},
|
|
658
691
|
{
|
|
659
692
|
id: "change_color",
|
|
660
|
-
label:
|
|
693
|
+
label: i18n2.baseText("contextMenu.changeColor"),
|
|
661
694
|
disabled: isReadOnly.value
|
|
662
695
|
}
|
|
663
696
|
] : [
|
|
664
697
|
{
|
|
665
698
|
id: "open",
|
|
666
|
-
label:
|
|
699
|
+
label: i18n2.baseText("contextMenu.open"),
|
|
667
700
|
shortcut: { keys: ["↵"] }
|
|
668
701
|
},
|
|
669
702
|
{
|
|
670
703
|
id: "execute",
|
|
671
|
-
label:
|
|
704
|
+
label: i18n2.baseText("contextMenu.test"),
|
|
672
705
|
disabled: isReadOnly.value || !isExecutable$1(nodes[0])
|
|
673
706
|
},
|
|
674
707
|
{
|
|
675
708
|
id: "rename",
|
|
676
|
-
label:
|
|
709
|
+
label: i18n2.baseText("contextMenu.rename"),
|
|
677
710
|
shortcut: { keys: ["Space"] },
|
|
678
711
|
disabled: isReadOnly.value
|
|
679
712
|
}
|
|
@@ -681,7 +714,7 @@ const useContextMenu = (onAction = () => {
|
|
|
681
714
|
if (isNodeWithWorkflowSelector(nodes[0])) {
|
|
682
715
|
singleNodeActions.push({
|
|
683
716
|
id: "open_sub_workflow",
|
|
684
|
-
label:
|
|
717
|
+
label: i18n2.baseText("contextMenu.openSubworkflow"),
|
|
685
718
|
shortcut: { shiftKey: true, metaKey: true, keys: ["O"] },
|
|
686
719
|
disabled: !canOpenSubworkflow.value
|
|
687
720
|
});
|
|
@@ -711,7 +744,7 @@ const useContextMenu = (onAction = () => {
|
|
|
711
744
|
_dispatchAction
|
|
712
745
|
};
|
|
713
746
|
};
|
|
714
|
-
const _sfc_main$
|
|
747
|
+
const _sfc_main$S = /* @__PURE__ */ defineComponent({
|
|
715
748
|
__name: "ContextMenu",
|
|
716
749
|
emits: ["action"],
|
|
717
750
|
setup(__props, { emit: __emit }) {
|
|
@@ -779,14 +812,14 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
|
|
|
779
812
|
});
|
|
780
813
|
const contextMenu = "_contextMenu_12fz3_123";
|
|
781
814
|
const activator = "_activator_12fz3_127";
|
|
782
|
-
const style0$
|
|
815
|
+
const style0$B = {
|
|
783
816
|
contextMenu,
|
|
784
817
|
activator
|
|
785
818
|
};
|
|
786
|
-
const cssModules$
|
|
787
|
-
"$style": style0$
|
|
819
|
+
const cssModules$B = {
|
|
820
|
+
"$style": style0$B
|
|
788
821
|
};
|
|
789
|
-
const ContextMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$
|
|
822
|
+
const ContextMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$S, [["__cssModules", cssModules$B]]);
|
|
790
823
|
var graph;
|
|
791
824
|
var hasRequiredGraph;
|
|
792
825
|
function requireGraph() {
|
|
@@ -4871,11 +4904,11 @@ function selection_select$1(select2) {
|
|
|
4871
4904
|
function array$1(x) {
|
|
4872
4905
|
return x == null ? [] : Array.isArray(x) ? x : Array.from(x);
|
|
4873
4906
|
}
|
|
4874
|
-
function empty$
|
|
4907
|
+
function empty$2() {
|
|
4875
4908
|
return [];
|
|
4876
4909
|
}
|
|
4877
4910
|
function selectorAll$1(selector2) {
|
|
4878
|
-
return selector2 == null ? empty$
|
|
4911
|
+
return selector2 == null ? empty$2 : function() {
|
|
4879
4912
|
return this.querySelectorAll(selector2);
|
|
4880
4913
|
};
|
|
4881
4914
|
}
|
|
@@ -5513,7 +5546,7 @@ Selection$1.prototype = selection.prototype = {
|
|
|
5513
5546
|
dispatch: selection_dispatch$1,
|
|
5514
5547
|
[Symbol.iterator]: selection_iterator$1
|
|
5515
5548
|
};
|
|
5516
|
-
function select$
|
|
5549
|
+
function select$2(selector2) {
|
|
5517
5550
|
return typeof selector2 === "string" ? new Selection$1([[document.querySelector(selector2)]], [document.documentElement]) : new Selection$1([[selector2]], root$1);
|
|
5518
5551
|
}
|
|
5519
5552
|
function sourceEvent$1(event) {
|
|
@@ -5545,7 +5578,7 @@ function noevent$1(event) {
|
|
|
5545
5578
|
event.stopImmediatePropagation();
|
|
5546
5579
|
}
|
|
5547
5580
|
function dragDisable(view) {
|
|
5548
|
-
var root2 = view.document.documentElement, selection2 = select$
|
|
5581
|
+
var root2 = view.document.documentElement, selection2 = select$2(view).on("dragstart.drag", noevent$1, nonpassivecapture$1);
|
|
5549
5582
|
if ("onselectstart" in root2) {
|
|
5550
5583
|
selection2.on("selectstart.drag", noevent$1, nonpassivecapture$1);
|
|
5551
5584
|
} else {
|
|
@@ -5554,7 +5587,7 @@ function dragDisable(view) {
|
|
|
5554
5587
|
}
|
|
5555
5588
|
}
|
|
5556
5589
|
function yesdrag$1(view, noclick) {
|
|
5557
|
-
var root2 = view.document.documentElement, selection2 = select$
|
|
5590
|
+
var root2 = view.document.documentElement, selection2 = select$2(view).on("dragstart.drag", null);
|
|
5558
5591
|
if (noclick) {
|
|
5559
5592
|
selection2.on("click.drag", noevent$1, nonpassivecapture$1);
|
|
5560
5593
|
setTimeout(function() {
|
|
@@ -7054,7 +7087,7 @@ function zoom() {
|
|
|
7054
7087
|
return this;
|
|
7055
7088
|
},
|
|
7056
7089
|
emit: function(type) {
|
|
7057
|
-
var d = select$
|
|
7090
|
+
var d = select$2(this.that).datum();
|
|
7058
7091
|
listeners.call(
|
|
7059
7092
|
type,
|
|
7060
7093
|
this.that,
|
|
@@ -7092,7 +7125,7 @@ function zoom() {
|
|
|
7092
7125
|
}
|
|
7093
7126
|
function mousedowned(event, ...args) {
|
|
7094
7127
|
if (touchending || !filter2.apply(this, arguments)) return;
|
|
7095
|
-
var currentTarget = event.currentTarget, g = gesture(this, args, true).event(event), v = select$
|
|
7128
|
+
var currentTarget = event.currentTarget, g = gesture(this, args, true).event(event), v = select$2(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true), p = pointer$1(event, currentTarget), x0 = event.clientX, y0 = event.clientY;
|
|
7096
7129
|
dragDisable(event.view);
|
|
7097
7130
|
nopropagation$1(event);
|
|
7098
7131
|
g.mouse = [p, this.__zoom.invert(p)];
|
|
@@ -7117,8 +7150,8 @@ function zoom() {
|
|
|
7117
7150
|
if (!filter2.apply(this, arguments)) return;
|
|
7118
7151
|
var t0 = this.__zoom, p0 = pointer$1(event.changedTouches ? event.changedTouches[0] : event, this), p1 = t0.invert(p0), k1 = t0.k * (event.shiftKey ? 0.5 : 2), t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);
|
|
7119
7152
|
noevent$2(event);
|
|
7120
|
-
if (duration > 0) select$
|
|
7121
|
-
else select$
|
|
7153
|
+
if (duration > 0) select$2(this).transition().duration(duration).call(schedule2, t1, p0, event);
|
|
7154
|
+
else select$2(this).call(zoom2.transform, t1, p0, event);
|
|
7122
7155
|
}
|
|
7123
7156
|
function touchstarted(event, ...args) {
|
|
7124
7157
|
if (!filter2.apply(this, arguments)) return;
|
|
@@ -7178,7 +7211,7 @@ function zoom() {
|
|
|
7178
7211
|
if (g.taps === 2) {
|
|
7179
7212
|
t = pointer$1(t, this);
|
|
7180
7213
|
if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {
|
|
7181
|
-
var p = select$
|
|
7214
|
+
var p = select$2(this).on("dblclick.zoom");
|
|
7182
7215
|
if (p) p.apply(this, arguments);
|
|
7183
7216
|
}
|
|
7184
7217
|
}
|
|
@@ -7294,14 +7327,14 @@ const _sfc_main$1$2 = /* @__PURE__ */ defineComponent({
|
|
|
7294
7327
|
};
|
|
7295
7328
|
}
|
|
7296
7329
|
});
|
|
7297
|
-
const _hoisted_1$
|
|
7330
|
+
const _hoisted_1$g = ["width", "height", "viewBox", "aria-labelledby"];
|
|
7298
7331
|
const _hoisted_2$a = ["id"];
|
|
7299
7332
|
const _hoisted_3$6 = ["d", "fill", "stroke", "stroke-width"];
|
|
7300
7333
|
const __default__$3 = {
|
|
7301
7334
|
name: "MiniMap",
|
|
7302
7335
|
compatConfig: { MODE: 3 }
|
|
7303
7336
|
};
|
|
7304
|
-
const _sfc_main$
|
|
7337
|
+
const _sfc_main$R = /* @__PURE__ */ defineComponent({
|
|
7305
7338
|
...__default__$3,
|
|
7306
7339
|
props: {
|
|
7307
7340
|
nodeColor: { type: [String, Function], default: "#e2e2e2" },
|
|
@@ -7397,7 +7430,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
|
7397
7430
|
watchEffect(
|
|
7398
7431
|
(onCleanup) => {
|
|
7399
7432
|
if (el.value) {
|
|
7400
|
-
const selection2 = select$
|
|
7433
|
+
const selection2 = select$2(el.value);
|
|
7401
7434
|
const zoomHandler = (event) => {
|
|
7402
7435
|
if (event.sourceEvent.type !== "wheel" || !d3Selection.value || !d3Zoom.value) {
|
|
7403
7436
|
return;
|
|
@@ -7464,7 +7497,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
|
7464
7497
|
emit("nodeMouseleave", param);
|
|
7465
7498
|
}
|
|
7466
7499
|
return (_ctx, _cache) => {
|
|
7467
|
-
return openBlock(), createBlock(unref(_sfc_main$
|
|
7500
|
+
return openBlock(), createBlock(unref(_sfc_main$X), {
|
|
7468
7501
|
position: _ctx.position,
|
|
7469
7502
|
class: normalizeClass(["vue-flow__minimap", { pannable: _ctx.pannable, zoomable: _ctx.zoomable }])
|
|
7470
7503
|
}, {
|
|
@@ -7515,16 +7548,16 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
|
7515
7548
|
"stroke-width": _ctx.maskStrokeWidth,
|
|
7516
7549
|
"fill-rule": "evenodd"
|
|
7517
7550
|
}, null, 8, _hoisted_3$6)
|
|
7518
|
-
], 8, _hoisted_1$
|
|
7551
|
+
], 8, _hoisted_1$g))
|
|
7519
7552
|
]),
|
|
7520
7553
|
_: 1
|
|
7521
7554
|
}, 8, ["position", "class"]);
|
|
7522
7555
|
};
|
|
7523
7556
|
}
|
|
7524
7557
|
});
|
|
7525
|
-
const _hoisted_1$
|
|
7558
|
+
const _hoisted_1$f = ["id", "x", "y", "width", "height", "patternTransform"];
|
|
7526
7559
|
const _hoisted_2$9 = ["d", "stroke-width"];
|
|
7527
|
-
const _sfc_main$
|
|
7560
|
+
const _sfc_main$Q = /* @__PURE__ */ defineComponent({
|
|
7528
7561
|
__name: "CanvasBackgroundStripedPattern",
|
|
7529
7562
|
props: {
|
|
7530
7563
|
id: {},
|
|
@@ -7550,11 +7583,11 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
|
|
|
7550
7583
|
d: `M0 ${scaledGap.value / 2} H${scaledGap.value}`,
|
|
7551
7584
|
"stroke-width": scaledGap.value / 2
|
|
7552
7585
|
}, null, 8, _hoisted_2$9)
|
|
7553
|
-
], 8, _hoisted_1$
|
|
7586
|
+
], 8, _hoisted_1$f);
|
|
7554
7587
|
};
|
|
7555
7588
|
}
|
|
7556
7589
|
});
|
|
7557
|
-
const CanvasBackgroundStripedPattern = /* @__PURE__ */ _export_sfc$1(_sfc_main$
|
|
7590
|
+
const CanvasBackgroundStripedPattern = /* @__PURE__ */ _export_sfc$1(_sfc_main$Q, [["__scopeId", "data-v-efb5a8d2"]]);
|
|
7558
7591
|
var BackgroundVariant = /* @__PURE__ */ ((BackgroundVariant2) => {
|
|
7559
7592
|
BackgroundVariant2["Lines"] = "lines";
|
|
7560
7593
|
BackgroundVariant2["Dots"] = "dots";
|
|
@@ -7578,7 +7611,7 @@ const DefaultBgColors = {
|
|
|
7578
7611
|
[BackgroundVariant.Dots]: "#81818a",
|
|
7579
7612
|
[BackgroundVariant.Lines]: "#eee"
|
|
7580
7613
|
};
|
|
7581
|
-
const _hoisted_1$
|
|
7614
|
+
const _hoisted_1$e = ["id", "x", "y", "width", "height", "patternTransform"];
|
|
7582
7615
|
const _hoisted_2$8 = {
|
|
7583
7616
|
key: 2,
|
|
7584
7617
|
height: "100",
|
|
@@ -7590,7 +7623,7 @@ const __default__$2 = {
|
|
|
7590
7623
|
name: "Background",
|
|
7591
7624
|
compatConfig: { MODE: 3 }
|
|
7592
7625
|
};
|
|
7593
|
-
const _sfc_main$
|
|
7626
|
+
const _sfc_main$P = /* @__PURE__ */ defineComponent({
|
|
7594
7627
|
...__default__$2,
|
|
7595
7628
|
props: {
|
|
7596
7629
|
id: {},
|
|
@@ -7661,7 +7694,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
|
|
|
7661
7694
|
}, null, 8, _hoisted_3$5)
|
|
7662
7695
|
])) : createCommentVNode("", true)
|
|
7663
7696
|
])
|
|
7664
|
-
], 8, _hoisted_1$
|
|
7697
|
+
], 8, _hoisted_1$e)
|
|
7665
7698
|
]),
|
|
7666
7699
|
createBaseVNode("rect", {
|
|
7667
7700
|
x: _ctx.x,
|
|
@@ -7675,7 +7708,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
|
|
|
7675
7708
|
};
|
|
7676
7709
|
}
|
|
7677
7710
|
});
|
|
7678
|
-
const _sfc_main$
|
|
7711
|
+
const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
7679
7712
|
__name: "CanvasBackground",
|
|
7680
7713
|
props: {
|
|
7681
7714
|
striped: { type: Boolean },
|
|
@@ -7683,7 +7716,7 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
|
|
|
7683
7716
|
},
|
|
7684
7717
|
setup(__props) {
|
|
7685
7718
|
return (_ctx, _cache) => {
|
|
7686
|
-
return openBlock(), createBlock(unref(_sfc_main$
|
|
7719
|
+
return openBlock(), createBlock(unref(_sfc_main$P), {
|
|
7687
7720
|
"data-test-id": "canvas-background",
|
|
7688
7721
|
"pattern-color": "#aaa",
|
|
7689
7722
|
gap: unref(GRID_SIZE)
|
|
@@ -7705,8 +7738,8 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
|
|
|
7705
7738
|
};
|
|
7706
7739
|
}
|
|
7707
7740
|
});
|
|
7708
|
-
const _hoisted_1$
|
|
7709
|
-
const _sfc_main$
|
|
7741
|
+
const _hoisted_1$d = ["id"];
|
|
7742
|
+
const _sfc_main$N = /* @__PURE__ */ defineComponent({
|
|
7710
7743
|
__name: "CanvasArrowHeadMarker",
|
|
7711
7744
|
props: {
|
|
7712
7745
|
id: {}
|
|
@@ -7733,13 +7766,13 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
|
|
|
7733
7766
|
stroke: "context-stroke",
|
|
7734
7767
|
fill: "context-stroke"
|
|
7735
7768
|
}, null, -1)
|
|
7736
|
-
]), 8, _hoisted_1$
|
|
7769
|
+
]), 8, _hoisted_1$d)
|
|
7737
7770
|
])
|
|
7738
7771
|
]);
|
|
7739
7772
|
};
|
|
7740
7773
|
}
|
|
7741
7774
|
});
|
|
7742
|
-
const _sfc_main$
|
|
7775
|
+
const _sfc_main$M = /* @__PURE__ */ defineComponent({
|
|
7743
7776
|
__name: "CanvasEdgeToolbar",
|
|
7744
7777
|
props: {
|
|
7745
7778
|
type: {}
|
|
@@ -7749,7 +7782,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
7749
7782
|
const emit = __emit;
|
|
7750
7783
|
const props = __props;
|
|
7751
7784
|
const $style = useCssModule();
|
|
7752
|
-
const
|
|
7785
|
+
const i18n2 = useI18n();
|
|
7753
7786
|
const classes = computed(() => ({
|
|
7754
7787
|
[$style.canvasEdgeToolbar]: true
|
|
7755
7788
|
}));
|
|
@@ -7761,7 +7794,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
7761
7794
|
emit("delete");
|
|
7762
7795
|
}
|
|
7763
7796
|
return (_ctx, _cache) => {
|
|
7764
|
-
const _component_N8nIconButton = _sfc_main$
|
|
7797
|
+
const _component_N8nIconButton = _sfc_main$Y;
|
|
7765
7798
|
return openBlock(), createElementBlock("div", {
|
|
7766
7799
|
class: normalizeClass(classes.value),
|
|
7767
7800
|
"data-test-id": "canvas-edge-toolbar"
|
|
@@ -7774,7 +7807,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
7774
7807
|
size: "small",
|
|
7775
7808
|
"icon-size": "medium",
|
|
7776
7809
|
icon: "plus",
|
|
7777
|
-
title: unref(
|
|
7810
|
+
title: unref(i18n2).baseText("node.add"),
|
|
7778
7811
|
onClick: onAdd2
|
|
7779
7812
|
}, null, 8, ["title"])) : createCommentVNode("", true),
|
|
7780
7813
|
createVNode(_component_N8nIconButton, {
|
|
@@ -7784,7 +7817,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
7784
7817
|
size: "small",
|
|
7785
7818
|
"icon-size": "medium",
|
|
7786
7819
|
icon: "trash-2",
|
|
7787
|
-
title: unref(
|
|
7820
|
+
title: unref(i18n2).baseText("node.delete"),
|
|
7788
7821
|
onClick: onDelete
|
|
7789
7822
|
}, null, 8, ["title"])
|
|
7790
7823
|
], 2);
|
|
@@ -7792,17 +7825,17 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
7792
7825
|
}
|
|
7793
7826
|
});
|
|
7794
7827
|
const canvasEdgeToolbar = "_canvasEdgeToolbar_uogmx_123";
|
|
7795
|
-
const style0$
|
|
7828
|
+
const style0$A = {
|
|
7796
7829
|
canvasEdgeToolbar
|
|
7797
7830
|
};
|
|
7798
|
-
const cssModules$
|
|
7799
|
-
"$style": style0$
|
|
7831
|
+
const cssModules$A = {
|
|
7832
|
+
"$style": style0$A
|
|
7800
7833
|
};
|
|
7801
|
-
const CanvasEdgeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$
|
|
7802
|
-
const _hoisted_1$
|
|
7834
|
+
const CanvasEdgeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$M, [["__cssModules", cssModules$A]]);
|
|
7835
|
+
const _hoisted_1$c = ["data-source-node-name", "data-target-node-name"];
|
|
7803
7836
|
const _hoisted_2$7 = ["data-source-node-name", "data-target-node-name", "data-edge-status"];
|
|
7804
7837
|
const delayedHoveredTimeout = 600;
|
|
7805
|
-
const _sfc_main$
|
|
7838
|
+
const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
7806
7839
|
__name: "CanvasEdge",
|
|
7807
7840
|
props: {
|
|
7808
7841
|
id: {},
|
|
@@ -7948,7 +7981,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
|
|
|
7948
7981
|
"interaction-width": 40
|
|
7949
7982
|
}, null, 8, ["id", "class", "style", "path", "marker-end"]);
|
|
7950
7983
|
}), 128))
|
|
7951
|
-
], 8, _hoisted_1$
|
|
7984
|
+
], 8, _hoisted_1$c),
|
|
7952
7985
|
createVNode(unref(_sfc_main$3$1), null, {
|
|
7953
7986
|
default: withCtx(() => [
|
|
7954
7987
|
createBaseVNode("div", {
|
|
@@ -7982,15 +8015,15 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
|
|
|
7982
8015
|
const edge = "_edge_fyzmo_123";
|
|
7983
8016
|
const edgeLabelWrapper = "_edgeLabelWrapper_fyzmo_127";
|
|
7984
8017
|
const edgeLabel = "_edgeLabel_fyzmo_127";
|
|
7985
|
-
const style0$
|
|
8018
|
+
const style0$z = {
|
|
7986
8019
|
edge,
|
|
7987
8020
|
edgeLabelWrapper,
|
|
7988
8021
|
edgeLabel
|
|
7989
8022
|
};
|
|
7990
|
-
const cssModules$
|
|
7991
|
-
"$style": style0$
|
|
8023
|
+
const cssModules$z = {
|
|
8024
|
+
"$style": style0$z
|
|
7992
8025
|
};
|
|
7993
|
-
const Edge = /* @__PURE__ */ _export_sfc$1(_sfc_main$
|
|
8026
|
+
const Edge = /* @__PURE__ */ _export_sfc$1(_sfc_main$L, [["__cssModules", cssModules$z]]);
|
|
7994
8027
|
function useCanvasNode() {
|
|
7995
8028
|
const node2 = inject(CanvasNodeKey);
|
|
7996
8029
|
const data = computed(
|
|
@@ -8066,9 +8099,9 @@ function useCanvasNode() {
|
|
|
8066
8099
|
eventBus
|
|
8067
8100
|
};
|
|
8068
8101
|
}
|
|
8069
|
-
const _hoisted_1$
|
|
8102
|
+
const _hoisted_1$b = ["title"];
|
|
8070
8103
|
const _hoisted_2$6 = ["onClick"];
|
|
8071
|
-
const _sfc_main$
|
|
8104
|
+
const _sfc_main$K = /* @__PURE__ */ defineComponent({
|
|
8072
8105
|
__name: "CanvasNodeStickyColorSelector",
|
|
8073
8106
|
props: {
|
|
8074
8107
|
"visible": { type: Boolean },
|
|
@@ -8077,7 +8110,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
|
|
|
8077
8110
|
emits: /* @__PURE__ */ mergeModels(["update"], ["update:visible"]),
|
|
8078
8111
|
setup(__props, { emit: __emit }) {
|
|
8079
8112
|
const emit = __emit;
|
|
8080
|
-
const
|
|
8113
|
+
const i18n2 = useI18n();
|
|
8081
8114
|
const { render: render2, eventBus } = useCanvasNode();
|
|
8082
8115
|
const renderOptions = computed(() => render2.value.options);
|
|
8083
8116
|
const autoHideTimeout = ref(null);
|
|
@@ -8112,7 +8145,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
|
|
|
8112
8145
|
});
|
|
8113
8146
|
return (_ctx, _cache) => {
|
|
8114
8147
|
const _component_N8nIcon = N8nIcon;
|
|
8115
|
-
const _component_N8nPopover = _sfc_main$
|
|
8148
|
+
const _component_N8nPopover = _sfc_main$Z;
|
|
8116
8149
|
return openBlock(), createBlock(_component_N8nPopover, {
|
|
8117
8150
|
visible: isPopoverVisible.value,
|
|
8118
8151
|
"onUpdate:visible": _cache[0] || (_cache[0] = ($event) => isPopoverVisible.value = $event),
|
|
@@ -8129,10 +8162,10 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
|
|
|
8129
8162
|
createBaseVNode("div", {
|
|
8130
8163
|
class: normalizeClass(_ctx.$style.option),
|
|
8131
8164
|
"data-test-id": "change-sticky-color",
|
|
8132
|
-
title: unref(
|
|
8165
|
+
title: unref(i18n2).baseText("node.changeColor")
|
|
8133
8166
|
}, [
|
|
8134
8167
|
createVNode(_component_N8nIcon, { icon: "palette" })
|
|
8135
|
-
], 10, _hoisted_1$
|
|
8168
|
+
], 10, _hoisted_1$b)
|
|
8136
8169
|
]),
|
|
8137
8170
|
default: withCtx(() => [
|
|
8138
8171
|
createBaseVNode("div", {
|
|
@@ -8162,7 +8195,7 @@ const content$1 = "_content_3lp7u_129";
|
|
|
8162
8195
|
const color = "_color_3lp7u_136";
|
|
8163
8196
|
const selected$2 = "_selected_3lp7u_148";
|
|
8164
8197
|
const option = "_option_3lp7u_173";
|
|
8165
|
-
const style0$
|
|
8198
|
+
const style0$y = {
|
|
8166
8199
|
popover,
|
|
8167
8200
|
content: content$1,
|
|
8168
8201
|
color,
|
|
@@ -8176,11 +8209,11 @@ const style0$u = {
|
|
|
8176
8209
|
"sticky-color-7": "_sticky-color-7_3lp7u_169",
|
|
8177
8210
|
option
|
|
8178
8211
|
};
|
|
8179
|
-
const cssModules$
|
|
8180
|
-
"$style": style0$
|
|
8212
|
+
const cssModules$y = {
|
|
8213
|
+
"$style": style0$y
|
|
8181
8214
|
};
|
|
8182
|
-
const __unplugin_components_2$
|
|
8183
|
-
const _sfc_main$
|
|
8215
|
+
const __unplugin_components_2$2 = /* @__PURE__ */ _export_sfc$1(_sfc_main$K, [["__cssModules", cssModules$y]]);
|
|
8216
|
+
const _sfc_main$J = /* @__PURE__ */ defineComponent({
|
|
8184
8217
|
__name: "CanvasNodeToolbar",
|
|
8185
8218
|
props: {
|
|
8186
8219
|
readOnly: { type: Boolean }
|
|
@@ -8190,15 +8223,16 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
8190
8223
|
const emit = __emit;
|
|
8191
8224
|
const props = __props;
|
|
8192
8225
|
const $style = useCssModule();
|
|
8193
|
-
const
|
|
8226
|
+
const i18n2 = useI18n();
|
|
8194
8227
|
const { isExecuting } = useCanvas();
|
|
8195
8228
|
const { isDisabled, render: render2, name } = useCanvasNode();
|
|
8196
8229
|
const workflowsStore = useWorkflowsStore();
|
|
8197
8230
|
const nodeTypesStore = useNodeTypesStore();
|
|
8198
|
-
const
|
|
8231
|
+
const experimentalNdvStore = useExperimentalNdvStore();
|
|
8232
|
+
const node2 = computed(() => name.value ? workflowsStore.getNodeByName(name.value) : null);
|
|
8199
8233
|
const isToolNode = computed(() => !!node2.value && nodeTypesStore.isToolNode(node2.value.type));
|
|
8200
8234
|
const nodeDisabledTitle = computed(() => {
|
|
8201
|
-
return isDisabled.value ?
|
|
8235
|
+
return isDisabled.value ? i18n2.baseText("node.enable") : i18n2.baseText("node.disable");
|
|
8202
8236
|
});
|
|
8203
8237
|
const isStickyColorSelectorOpen = ref(false);
|
|
8204
8238
|
const isHovered = ref(false);
|
|
@@ -8214,6 +8248,9 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
8214
8248
|
return !props.readOnly && render2.value.type === CanvasNodeRenderType.Default;
|
|
8215
8249
|
});
|
|
8216
8250
|
const isDeleteNodeVisible = computed(() => !props.readOnly);
|
|
8251
|
+
const isFocusNodeVisible = computed(
|
|
8252
|
+
() => experimentalNdvStore.isEnabled && node2.value !== null && experimentalNdvStore.collapsedNodes[node2.value.id] !== false
|
|
8253
|
+
);
|
|
8217
8254
|
const isStickyNoteChangeColorVisible = computed(
|
|
8218
8255
|
() => !props.readOnly && render2.value.type === CanvasNodeRenderType.StickyNote
|
|
8219
8256
|
);
|
|
@@ -8240,10 +8277,15 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
8240
8277
|
function onMouseLeave() {
|
|
8241
8278
|
isHovered.value = false;
|
|
8242
8279
|
}
|
|
8280
|
+
function onFocusNode() {
|
|
8281
|
+
if (node2.value) {
|
|
8282
|
+
experimentalNdvStore.focusNode(node2.value.id);
|
|
8283
|
+
}
|
|
8284
|
+
}
|
|
8243
8285
|
return (_ctx, _cache) => {
|
|
8244
|
-
const _component_N8nIconButton = _sfc_main$
|
|
8286
|
+
const _component_N8nIconButton = _sfc_main$Y;
|
|
8245
8287
|
const _component_N8nTooltip = N8nTooltip;
|
|
8246
|
-
const _component_CanvasNodeStickyColorSelector = __unplugin_components_2$
|
|
8288
|
+
const _component_CanvasNodeStickyColorSelector = __unplugin_components_2$2;
|
|
8247
8289
|
return openBlock(), createElementBlock("div", {
|
|
8248
8290
|
"data-test-id": "canvas-node-toolbar",
|
|
8249
8291
|
class: normalizeClass(classes.value),
|
|
@@ -8253,28 +8295,28 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
8253
8295
|
createBaseVNode("div", {
|
|
8254
8296
|
class: normalizeClass(unref($style).canvasNodeToolbarItems)
|
|
8255
8297
|
}, [
|
|
8256
|
-
|
|
8298
|
+
isExecuteNodeVisible.value ? (openBlock(), createBlock(_component_N8nTooltip, {
|
|
8299
|
+
key: 0,
|
|
8257
8300
|
placement: "top",
|
|
8258
8301
|
disabled: !unref(isDisabled),
|
|
8259
|
-
content: unref(
|
|
8302
|
+
content: unref(i18n2).baseText("ndv.execute.deactivated")
|
|
8260
8303
|
}, {
|
|
8261
8304
|
default: withCtx(() => [
|
|
8262
|
-
|
|
8263
|
-
key: 0,
|
|
8305
|
+
createVNode(_component_N8nIconButton, {
|
|
8264
8306
|
"data-test-id": "execute-node-button",
|
|
8265
8307
|
type: "tertiary",
|
|
8266
8308
|
text: "",
|
|
8267
8309
|
size: "small",
|
|
8268
8310
|
icon: "play",
|
|
8269
8311
|
disabled: unref(isExecuting) || unref(isDisabled),
|
|
8270
|
-
title: unref(
|
|
8312
|
+
title: unref(i18n2).baseText("node.testStep"),
|
|
8271
8313
|
onClick: executeNode
|
|
8272
|
-
}, null, 8, ["disabled", "title"])
|
|
8314
|
+
}, null, 8, ["disabled", "title"])
|
|
8273
8315
|
]),
|
|
8274
8316
|
_: 1
|
|
8275
|
-
}, 8, ["disabled", "content"]),
|
|
8317
|
+
}, 8, ["disabled", "content"])) : createCommentVNode("", true),
|
|
8276
8318
|
isDisableNodeVisible.value ? (openBlock(), createBlock(_component_N8nIconButton, {
|
|
8277
|
-
key:
|
|
8319
|
+
key: 1,
|
|
8278
8320
|
"data-test-id": "disable-node-button",
|
|
8279
8321
|
type: "tertiary",
|
|
8280
8322
|
text: "",
|
|
@@ -8284,17 +8326,25 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
8284
8326
|
onClick: onToggleNode
|
|
8285
8327
|
}, null, 8, ["title"])) : createCommentVNode("", true),
|
|
8286
8328
|
isDeleteNodeVisible.value ? (openBlock(), createBlock(_component_N8nIconButton, {
|
|
8287
|
-
key:
|
|
8329
|
+
key: 2,
|
|
8288
8330
|
"data-test-id": "delete-node-button",
|
|
8289
8331
|
type: "tertiary",
|
|
8290
8332
|
size: "small",
|
|
8291
8333
|
text: "",
|
|
8292
8334
|
icon: "trash-2",
|
|
8293
|
-
title: unref(
|
|
8335
|
+
title: unref(i18n2).baseText("node.delete"),
|
|
8294
8336
|
onClick: onDeleteNode
|
|
8295
8337
|
}, null, 8, ["title"])) : createCommentVNode("", true),
|
|
8338
|
+
isFocusNodeVisible.value ? (openBlock(), createBlock(_component_N8nIconButton, {
|
|
8339
|
+
key: 3,
|
|
8340
|
+
type: "tertiary",
|
|
8341
|
+
size: "small",
|
|
8342
|
+
text: "",
|
|
8343
|
+
icon: "crosshair",
|
|
8344
|
+
onClick: onFocusNode
|
|
8345
|
+
})) : createCommentVNode("", true),
|
|
8296
8346
|
isStickyNoteChangeColorVisible.value ? (openBlock(), createBlock(_component_CanvasNodeStickyColorSelector, {
|
|
8297
|
-
key:
|
|
8347
|
+
key: 4,
|
|
8298
8348
|
visible: isStickyColorSelectorOpen.value,
|
|
8299
8349
|
"onUpdate:visible": _cache[0] || (_cache[0] = ($event) => isStickyColorSelectorOpen.value = $event),
|
|
8300
8350
|
onUpdate: onChangeStickyColor
|
|
@@ -8315,24 +8365,24 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
8315
8365
|
const canvasNodeToolbar$1 = "_canvasNodeToolbar_104hp_123";
|
|
8316
8366
|
const canvasNodeToolbarItems = "_canvasNodeToolbarItems_104hp_130";
|
|
8317
8367
|
const forceVisible = "_forceVisible_104hp_141";
|
|
8318
|
-
const style0$
|
|
8368
|
+
const style0$x = {
|
|
8319
8369
|
canvasNodeToolbar: canvasNodeToolbar$1,
|
|
8320
8370
|
canvasNodeToolbarItems,
|
|
8321
8371
|
forceVisible
|
|
8322
8372
|
};
|
|
8323
|
-
const cssModules$
|
|
8324
|
-
"$style": style0$
|
|
8373
|
+
const cssModules$x = {
|
|
8374
|
+
"$style": style0$x
|
|
8325
8375
|
};
|
|
8326
|
-
const CanvasNodeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$
|
|
8327
|
-
const _hoisted_1$
|
|
8376
|
+
const CanvasNodeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$J, [["__cssModules", cssModules$x]]);
|
|
8377
|
+
const _hoisted_1$a = { key: 1 };
|
|
8328
8378
|
const _hoisted_2$5 = ["textContent"];
|
|
8329
8379
|
const _hoisted_3$4 = { key: 2 };
|
|
8330
8380
|
const _hoisted_4$3 = { key: 5 };
|
|
8331
|
-
const _sfc_main$
|
|
8381
|
+
const _sfc_main$I = /* @__PURE__ */ defineComponent({
|
|
8332
8382
|
__name: "CanvasNodeStatusIcons",
|
|
8333
8383
|
setup(__props) {
|
|
8334
8384
|
const nodeHelpers = useNodeHelpers();
|
|
8335
|
-
const
|
|
8385
|
+
const i18n2 = useI18n();
|
|
8336
8386
|
const {
|
|
8337
8387
|
hasPinnedData,
|
|
8338
8388
|
issues: issues2,
|
|
@@ -8368,7 +8418,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
8368
8418
|
}, {
|
|
8369
8419
|
content: withCtx(() => [
|
|
8370
8420
|
createVNode(TitledList, {
|
|
8371
|
-
title: `${unref(
|
|
8421
|
+
title: `${unref(i18n2).baseText("node.issues")}:`,
|
|
8372
8422
|
items: unref(issues2)
|
|
8373
8423
|
}, null, 8, ["title", "items"])
|
|
8374
8424
|
]),
|
|
@@ -8377,7 +8427,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
8377
8427
|
]),
|
|
8378
8428
|
_: 1
|
|
8379
8429
|
})
|
|
8380
|
-
], 2)) : unref(executionWaiting) || unref(executionStatus) === "waiting" ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
8430
|
+
], 2)) : unref(executionWaiting) || unref(executionStatus) === "waiting" ? (openBlock(), createElementBlock("div", _hoisted_1$a, [
|
|
8381
8431
|
createBaseVNode("div", {
|
|
8382
8432
|
class: normalizeClass([_ctx.$style.status, _ctx.$style.waiting])
|
|
8383
8433
|
}, [
|
|
@@ -8422,7 +8472,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
8422
8472
|
placement: "bottom"
|
|
8423
8473
|
}, {
|
|
8424
8474
|
content: withCtx(() => [
|
|
8425
|
-
createTextVNode(toDisplayString(unref(
|
|
8475
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText(
|
|
8426
8476
|
dirtiness.value === unref(CanvasNodeDirtiness).PARAMETERS_UPDATED ? "node.dirty" : "node.subjectToChange"
|
|
8427
8477
|
)), 1)
|
|
8428
8478
|
]),
|
|
@@ -8455,16 +8505,16 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
8455
8505
|
}
|
|
8456
8506
|
});
|
|
8457
8507
|
const status = "_status_93vv6_123";
|
|
8458
|
-
const runData = "_runData_93vv6_130";
|
|
8508
|
+
const runData$1 = "_runData_93vv6_130";
|
|
8459
8509
|
const waiting$1 = "_waiting_93vv6_134";
|
|
8460
8510
|
const pinnedData = "_pinnedData_93vv6_138";
|
|
8461
8511
|
const running$1 = "_running_93vv6_142";
|
|
8462
8512
|
const issues = "_issues_93vv6_165";
|
|
8463
8513
|
const count = "_count_93vv6_170";
|
|
8464
8514
|
const warning$2 = "_warning_93vv6_174";
|
|
8465
|
-
const style0$
|
|
8515
|
+
const style0$w = {
|
|
8466
8516
|
status,
|
|
8467
|
-
runData,
|
|
8517
|
+
runData: runData$1,
|
|
8468
8518
|
waiting: waiting$1,
|
|
8469
8519
|
pinnedData,
|
|
8470
8520
|
running: running$1,
|
|
@@ -8473,11 +8523,11 @@ const style0$s = {
|
|
|
8473
8523
|
count,
|
|
8474
8524
|
warning: warning$2
|
|
8475
8525
|
};
|
|
8476
|
-
const cssModules$
|
|
8477
|
-
"$style": style0$
|
|
8526
|
+
const cssModules$w = {
|
|
8527
|
+
"$style": style0$w
|
|
8478
8528
|
};
|
|
8479
|
-
const __unplugin_components_3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$
|
|
8480
|
-
const _sfc_main$
|
|
8529
|
+
const __unplugin_components_3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$I, [["__cssModules", cssModules$w]]);
|
|
8530
|
+
const _sfc_main$H = /* @__PURE__ */ defineComponent({
|
|
8481
8531
|
__name: "CanvasNodeDisabledStrikeThrough",
|
|
8482
8532
|
setup(__props) {
|
|
8483
8533
|
const $style = useCssModule();
|
|
@@ -8499,16 +8549,16 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
8499
8549
|
const disabledStrikeThrough = "_disabledStrikeThrough_nl2g7_123";
|
|
8500
8550
|
const success$2 = "_success_nl2g7_132";
|
|
8501
8551
|
const warning$1 = "_warning_nl2g7_136";
|
|
8502
|
-
const style0$
|
|
8552
|
+
const style0$v = {
|
|
8503
8553
|
disabledStrikeThrough,
|
|
8504
8554
|
success: success$2,
|
|
8505
8555
|
warning: warning$1
|
|
8506
8556
|
};
|
|
8507
|
-
const cssModules$
|
|
8508
|
-
"$style": style0$
|
|
8557
|
+
const cssModules$v = {
|
|
8558
|
+
"$style": style0$v
|
|
8509
8559
|
};
|
|
8510
|
-
const __unplugin_components_2 = /* @__PURE__ */ _export_sfc$1(_sfc_main$
|
|
8511
|
-
const _sfc_main$
|
|
8560
|
+
const __unplugin_components_2$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$H, [["__cssModules", cssModules$v]]);
|
|
8561
|
+
const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
8512
8562
|
__name: "CanvasNodeTooltip",
|
|
8513
8563
|
props: {
|
|
8514
8564
|
visible: { type: Boolean }
|
|
@@ -8547,14 +8597,14 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
|
|
|
8547
8597
|
});
|
|
8548
8598
|
const tooltipTrigger = "_tooltipTrigger_dauyi_123";
|
|
8549
8599
|
const popper = "_popper_dauyi_131";
|
|
8550
|
-
const style0$
|
|
8600
|
+
const style0$u = {
|
|
8551
8601
|
tooltipTrigger,
|
|
8552
8602
|
popper
|
|
8553
8603
|
};
|
|
8554
|
-
const cssModules$
|
|
8555
|
-
"$style": style0$
|
|
8604
|
+
const cssModules$u = {
|
|
8605
|
+
"$style": style0$u
|
|
8556
8606
|
};
|
|
8557
|
-
const __unplugin_components_0$3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$
|
|
8607
|
+
const __unplugin_components_0$3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$G, [["__cssModules", cssModules$u]]);
|
|
8558
8608
|
function useNodeConnections({
|
|
8559
8609
|
inputs: inputs2,
|
|
8560
8610
|
outputs,
|
|
@@ -8603,122 +8653,1126 @@ function useNodeConnections({
|
|
|
8603
8653
|
isValidConnection
|
|
8604
8654
|
};
|
|
8605
8655
|
}
|
|
8606
|
-
const
|
|
8607
|
-
|
|
8656
|
+
const _hoisted_1$9 = { key: 0 };
|
|
8657
|
+
const _sfc_main$F = /* @__PURE__ */ defineComponent({
|
|
8658
|
+
__name: "InputNodeSelect",
|
|
8608
8659
|
props: {
|
|
8609
|
-
|
|
8610
|
-
|
|
8611
|
-
|
|
8660
|
+
nodes: {},
|
|
8661
|
+
workflow: {},
|
|
8662
|
+
modelValue: {}
|
|
8612
8663
|
},
|
|
8613
8664
|
emits: ["update:model-value"],
|
|
8614
8665
|
setup(__props, { emit: __emit }) {
|
|
8666
|
+
const props = __props;
|
|
8615
8667
|
const emit = __emit;
|
|
8616
|
-
|
|
8617
|
-
|
|
8618
|
-
|
|
8668
|
+
const i18n2 = useI18n();
|
|
8669
|
+
const workflowsStore = useWorkflowsStore();
|
|
8670
|
+
const nodeTypesStore = useNodeTypesStore();
|
|
8671
|
+
const ndvStore = useNDVStore();
|
|
8672
|
+
const selectedInputNode = computed(() => workflowsStore.getNodeByName(props.modelValue ?? ""));
|
|
8673
|
+
const selectedInputNodeType = computed(() => {
|
|
8674
|
+
const node2 = selectedInputNode.value;
|
|
8675
|
+
if (!node2) return null;
|
|
8676
|
+
return nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
|
|
8677
|
+
});
|
|
8678
|
+
const inputNodes = computed(
|
|
8679
|
+
() => props.nodes?.map((node2) => {
|
|
8680
|
+
const fullNode = workflowsStore.getNodeByName(node2.name);
|
|
8681
|
+
if (!fullNode) return null;
|
|
8682
|
+
return {
|
|
8683
|
+
node: fullNode,
|
|
8684
|
+
type: nodeTypesStore.getNodeType(fullNode.type, fullNode.typeVersion),
|
|
8685
|
+
depth: node2.depth
|
|
8686
|
+
};
|
|
8687
|
+
}).filter(isPresent) ?? []
|
|
8688
|
+
);
|
|
8689
|
+
const activeNode = computed(() => ndvStore.activeNode);
|
|
8690
|
+
const activeNodeType = computed(() => {
|
|
8691
|
+
const node2 = activeNode.value;
|
|
8692
|
+
if (!node2) return null;
|
|
8693
|
+
return nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
|
|
8694
|
+
});
|
|
8695
|
+
const isMultiInputNode = computed(() => {
|
|
8696
|
+
const nodeType = activeNodeType.value;
|
|
8697
|
+
return nodeType !== null && nodeType.inputs.length > 1;
|
|
8698
|
+
});
|
|
8699
|
+
const connectedTo = (nodeName) => {
|
|
8700
|
+
const connections2 = ndvStore.ndvNodeInputNumber[nodeName];
|
|
8701
|
+
if (!connections2) return "";
|
|
8702
|
+
if (connections2.length === 1) {
|
|
8703
|
+
return `Input ${ndvStore.ndvNodeInputNumber[nodeName]}`;
|
|
8619
8704
|
}
|
|
8705
|
+
return `Inputs ${ndvStore.ndvNodeInputNumber[nodeName].join(", ")}`;
|
|
8706
|
+
};
|
|
8707
|
+
function getMultipleNodesText(nodeName) {
|
|
8708
|
+
if (!nodeName || !isMultiInputNode.value || !activeNode.value || !activeNodeType.value?.inputNames)
|
|
8709
|
+
return "";
|
|
8710
|
+
const activeNodeConnections = props.workflow.connectionsByDestinationNode[activeNode.value.name].main || [];
|
|
8711
|
+
const connectedInputIndexes = activeNodeConnections.reduce((acc, node2, index) => {
|
|
8712
|
+
if (node2?.[0] && node2[0].node === nodeName) return [...acc, index];
|
|
8713
|
+
return acc;
|
|
8714
|
+
}, []);
|
|
8715
|
+
const connectedInputs = connectedInputIndexes.map(
|
|
8716
|
+
(inputIndex) => activeNodeType.value?.inputNames?.[inputIndex]
|
|
8717
|
+
);
|
|
8718
|
+
if (connectedInputs.length === 0) return "";
|
|
8719
|
+
return `(${connectedInputs.join(" & ")})`;
|
|
8720
|
+
}
|
|
8721
|
+
function title2(nodeName, length = 30) {
|
|
8722
|
+
return truncate(nodeName, length);
|
|
8723
|
+
}
|
|
8724
|
+
function subtitle2(nodeName, depth) {
|
|
8725
|
+
const multipleNodesText = getMultipleNodesText(nodeName);
|
|
8726
|
+
if (multipleNodesText) return multipleNodesText;
|
|
8727
|
+
return i18n2.baseText("ndv.input.nodeDistance", { adjustToNumber: depth });
|
|
8728
|
+
}
|
|
8729
|
+
function onInputNodeChange(value) {
|
|
8730
|
+
emit("update:model-value", value);
|
|
8620
8731
|
}
|
|
8621
|
-
const wrapperRef = useTemplateRef("wrapperRef");
|
|
8622
|
-
const { width } = useElementSize(wrapperRef);
|
|
8623
8732
|
return (_ctx, _cache) => {
|
|
8624
|
-
|
|
8625
|
-
|
|
8626
|
-
|
|
8733
|
+
const _component_n8n_option = _sfc_main$_;
|
|
8734
|
+
const _component_n8n_select = N8nSelect;
|
|
8735
|
+
return openBlock(), createBlock(_component_n8n_select, {
|
|
8736
|
+
"model-value": _ctx.modelValue,
|
|
8737
|
+
"no-data-text": unref(i18n2).baseText("ndv.input.noNodesFound"),
|
|
8738
|
+
placeholder: unref(i18n2).baseText("ndv.input.parentNodes"),
|
|
8739
|
+
class: normalizeClass(_ctx.$style.select),
|
|
8740
|
+
teleported: "",
|
|
8741
|
+
size: "small",
|
|
8742
|
+
filterable: "",
|
|
8743
|
+
"data-test-id": "ndv-input-select",
|
|
8744
|
+
"onUpdate:modelValue": onInputNodeChange
|
|
8745
|
+
}, {
|
|
8746
|
+
prefix: withCtx(() => [
|
|
8747
|
+
createVNode(_sfc_main$$, {
|
|
8748
|
+
disabled: selectedInputNode.value?.disabled,
|
|
8749
|
+
"node-type": selectedInputNodeType.value,
|
|
8750
|
+
size: 14,
|
|
8751
|
+
shrink: false
|
|
8752
|
+
}, null, 8, ["disabled", "node-type"])
|
|
8753
|
+
]),
|
|
8754
|
+
default: withCtx(() => [
|
|
8755
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(inputNodes.value, ({ node: node2, type, depth }) => {
|
|
8756
|
+
return openBlock(), createBlock(_component_n8n_option, {
|
|
8757
|
+
key: node2.name,
|
|
8758
|
+
value: node2.name,
|
|
8759
|
+
class: normalizeClass([_ctx.$style.node, { [_ctx.$style.disabled]: node2.disabled }]),
|
|
8760
|
+
label: `${title2(node2.name)} ${getMultipleNodesText(node2.name)}`,
|
|
8761
|
+
"data-test-id": "ndv-input-option"
|
|
8762
|
+
}, {
|
|
8763
|
+
default: withCtx(() => [
|
|
8764
|
+
createVNode(_sfc_main$$, {
|
|
8765
|
+
disabled: node2.disabled,
|
|
8766
|
+
"node-type": type,
|
|
8767
|
+
size: 14,
|
|
8768
|
+
shrink: false,
|
|
8769
|
+
class: normalizeClass(_ctx.$style.icon)
|
|
8770
|
+
}, null, 8, ["disabled", "node-type", "class"]),
|
|
8771
|
+
createBaseVNode("span", {
|
|
8772
|
+
class: normalizeClass(_ctx.$style.title)
|
|
8773
|
+
}, [
|
|
8774
|
+
createTextVNode(toDisplayString(title2(node2.name)) + " ", 1),
|
|
8775
|
+
node2.disabled ? (openBlock(), createElementBlock("span", _hoisted_1$9, "(" + toDisplayString(unref(i18n2).baseText("node.disabled")) + ")", 1)) : createCommentVNode("", true)
|
|
8776
|
+
], 2),
|
|
8777
|
+
createBaseVNode("span", {
|
|
8778
|
+
class: normalizeClass(_ctx.$style.subtitle)
|
|
8779
|
+
}, toDisplayString(connectedTo(node2.name) ? connectedTo(node2.name) : subtitle2(node2.name, depth)), 3)
|
|
8780
|
+
]),
|
|
8781
|
+
_: 2
|
|
8782
|
+
}, 1032, ["value", "class", "label"]);
|
|
8783
|
+
}), 128))
|
|
8784
|
+
]),
|
|
8785
|
+
_: 1
|
|
8786
|
+
}, 8, ["model-value", "no-data-text", "placeholder", "class"]);
|
|
8787
|
+
};
|
|
8788
|
+
}
|
|
8789
|
+
});
|
|
8790
|
+
const select$1 = "_select_wv0ev_123";
|
|
8791
|
+
const node$1 = "_node_wv0ev_132";
|
|
8792
|
+
const icon$1 = "_icon_wv0ev_140";
|
|
8793
|
+
const title$2 = "_title_wv0ev_144";
|
|
8794
|
+
const disabled$2 = "_disabled_wv0ev_153";
|
|
8795
|
+
const subtitle$1 = "_subtitle_wv0ev_157";
|
|
8796
|
+
const style0$t = {
|
|
8797
|
+
select: select$1,
|
|
8798
|
+
node: node$1,
|
|
8799
|
+
icon: icon$1,
|
|
8800
|
+
title: title$2,
|
|
8801
|
+
disabled: disabled$2,
|
|
8802
|
+
subtitle: subtitle$1
|
|
8803
|
+
};
|
|
8804
|
+
const cssModules$t = {
|
|
8805
|
+
"$style": style0$t
|
|
8806
|
+
};
|
|
8807
|
+
const InputNodeSelect = /* @__PURE__ */ _export_sfc$1(_sfc_main$F, [["__cssModules", cssModules$t]]);
|
|
8808
|
+
const _sfc_main$E = /* @__PURE__ */ defineComponent({
|
|
8809
|
+
__name: "NDVEmptyState",
|
|
8810
|
+
props: {
|
|
8811
|
+
title: {}
|
|
8812
|
+
},
|
|
8813
|
+
setup(__props) {
|
|
8814
|
+
return (_ctx, _cache) => {
|
|
8815
|
+
return openBlock(), createElementBlock("article", {
|
|
8816
|
+
class: normalizeClass(_ctx.$style.empty)
|
|
8627
8817
|
}, [
|
|
8628
|
-
|
|
8629
|
-
|
|
8630
|
-
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
"show-tooltip": true,
|
|
8635
|
-
"tooltip-position": "left"
|
|
8636
|
-
}, null, 8, ["node-type"])
|
|
8637
|
-
], 2),
|
|
8638
|
-
createBaseVNode("div", {
|
|
8639
|
-
ref_key: "wrapperRef",
|
|
8640
|
-
ref: wrapperRef,
|
|
8641
|
-
class: normalizeClass(_ctx.$style.textWrapper)
|
|
8818
|
+
renderSlot(_ctx.$slots, "icon"),
|
|
8819
|
+
createBaseVNode("h1", {
|
|
8820
|
+
class: normalizeClass(_ctx.$style.title)
|
|
8821
|
+
}, toDisplayString(_ctx.title), 3),
|
|
8822
|
+
createBaseVNode("p", {
|
|
8823
|
+
class: normalizeClass(_ctx.$style.description)
|
|
8642
8824
|
}, [
|
|
8643
|
-
|
|
8644
|
-
"max-width": unref(width),
|
|
8645
|
-
"model-value": _ctx.modelValue,
|
|
8646
|
-
"read-only": _ctx.readOnly,
|
|
8647
|
-
"onUpdate:modelValue": onRename
|
|
8648
|
-
}, null, 8, ["max-width", "model-value", "read-only"])
|
|
8825
|
+
renderSlot(_ctx.$slots, "description")
|
|
8649
8826
|
], 2)
|
|
8650
8827
|
], 2);
|
|
8651
8828
|
};
|
|
8652
8829
|
}
|
|
8653
8830
|
});
|
|
8654
|
-
const
|
|
8655
|
-
const
|
|
8656
|
-
const
|
|
8657
|
-
const style0$
|
|
8658
|
-
|
|
8659
|
-
|
|
8660
|
-
|
|
8831
|
+
const empty$1 = "_empty_1x72k_2";
|
|
8832
|
+
const title$1 = "_title_1x72k_13";
|
|
8833
|
+
const description$1 = "_description_1x72k_20";
|
|
8834
|
+
const style0$s = {
|
|
8835
|
+
empty: empty$1,
|
|
8836
|
+
title: title$1,
|
|
8837
|
+
description: description$1
|
|
8661
8838
|
};
|
|
8662
|
-
const cssModules$
|
|
8663
|
-
"$style": style0$
|
|
8839
|
+
const cssModules$s = {
|
|
8840
|
+
"$style": style0$s
|
|
8664
8841
|
};
|
|
8665
|
-
const
|
|
8666
|
-
const
|
|
8667
|
-
|
|
8668
|
-
|
|
8669
|
-
|
|
8670
|
-
|
|
8671
|
-
|
|
8672
|
-
|
|
8673
|
-
|
|
8674
|
-
}
|
|
8675
|
-
return false;
|
|
8676
|
-
});
|
|
8677
|
-
const docsUrl = computed(() => {
|
|
8678
|
-
const nodeType = toValue(nodeTypeRef);
|
|
8679
|
-
if (!nodeType) {
|
|
8680
|
-
return "";
|
|
8681
|
-
}
|
|
8682
|
-
if (nodeType.documentationUrl?.startsWith("http")) {
|
|
8683
|
-
return nodeType.documentationUrl;
|
|
8684
|
-
}
|
|
8685
|
-
const utmParams = new URLSearchParams({
|
|
8686
|
-
utm_source: "n8n_app",
|
|
8687
|
-
utm_medium: "node_settings_modal-credential_link",
|
|
8688
|
-
utm_campaign: nodeType.name
|
|
8689
|
-
});
|
|
8690
|
-
const primaryDocUrl = nodeType.codex?.resources?.primaryDocumentation?.[0]?.url;
|
|
8691
|
-
if (primaryDocUrl) {
|
|
8692
|
-
return `${primaryDocUrl}?${utmParams.toString()}`;
|
|
8693
|
-
}
|
|
8694
|
-
if (isCommunityNode.value) {
|
|
8695
|
-
return `${NPM_PACKAGE_DOCS_BASE_URL}${packageName.value}`;
|
|
8696
|
-
}
|
|
8697
|
-
return `${BUILTIN_NODES_DOCS_URL}?${utmParams.toString()}`;
|
|
8698
|
-
});
|
|
8699
|
-
return { docsUrl };
|
|
8842
|
+
const __unplugin_components_2 = /* @__PURE__ */ _export_sfc$1(_sfc_main$E, [["__cssModules", cssModules$s]]);
|
|
8843
|
+
const _sfc_main$D = {};
|
|
8844
|
+
const _hoisted_1$8 = {
|
|
8845
|
+
width: "112",
|
|
8846
|
+
height: "80",
|
|
8847
|
+
viewBox: "0 0 112 80",
|
|
8848
|
+
fill: "none",
|
|
8849
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
8850
|
+
"xmlns:xlink": "http://www.w3.org/1999/xlink"
|
|
8700
8851
|
};
|
|
8701
|
-
|
|
8702
|
-
|
|
8852
|
+
function _sfc_render(_ctx, _cache) {
|
|
8853
|
+
return openBlock(), createElementBlock("svg", _hoisted_1$8, _cache[0] || (_cache[0] = [
|
|
8854
|
+
createStaticVNode('<mask id="mask0_489_46042" style="mask-type:alpha;" maskUnits="userSpaceOnUse" x="0" y="0" width="112" height="80"><rect width="112" height="80" fill="url(#paint0_linear_489_46042)"></rect></mask><g mask="url(#mask0_489_46042)"><rect x="-0.5" width="112" height="80" fill="url(#pattern0)" fill-opacity="0.6"></rect></g><defs><pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1"><use xlink:href="#image0_489_46042" transform="scale(0.00357143 0.005)"></use></pattern><linearGradient id="paint0_linear_489_46042" x1="90.5" y1="40.4494" x2="112.5" y2="40.4494" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient><image id="image0_489_46042" width="280" height="200" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAADICAYAAAAzx/4XAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABhdSURBVHgB7d0JcFTVngbw/72d4IYa0Ie4IK2llgpodNwtB9AaxVILF7ZxynkgWupojaRwASXQGEBqEAI8LXfBpZQS9IFabjMFkXFfijCKyqjQqIiKShCUpdP3vvPdpXP7pjtk6dPdSX+/qlPpJX07UfrL/yz3XEOIPJNiswaZkbKBtkiluC0qRB1gCJW86ntmjzYM81YvWIhyhgFTwlCxGJGyBcJKhTQxhUrSpJraKSpcVgjDhTQqEyo5U+6prbVExmV6TnWT6ixbnuxmSZ262xCLVTUIUTsxYEoMKpdM4aKCZV5ZUmIMFMoljsGUkMk1c9RArjE39HBchcuYadVVdUKUYwyYEjEhVhstj8gqdbMi8HA8kpTBqmqJC5EGHOQtEeVlMkXSw6WB4UK6cQymBKB6UYMso4OPWYZMrWG4kGasYEpAmWGHB3Xj0ydVzRUizRgwJcAwjaFpD9gyVYjygAHTxTndo9Bium2WLBWiPGDAdHFlkWT4/KK6uVzrQnnCgOniDNuIBu/blr1aiPKEAdPF2Xba1DQeYfVCecOAISJtGDBEpA0Dhoi0YcAQkTYMGCLShgFDRNowYIhIGwYMEWnDgCEibRgwRKQNA4aItGHAEJE2DBgi0oYBQ0TaMGCISBsGDBFpw4AhIm0YMESkDQOGiLRhwBCRNgwYItKGAUNE2jBgiEgbBgwRacOAISJtGDBEpA0Dhoi0YcAQkTYMGCLShgFDRNowYIhIGwYMEWnDgCEibRgwRKQNA4aItGHAEJE2DBgi0oYBQ0TaMGCISBsGDBFpw4AhIm0YMESkDQOGiLRhwBCRNgwYItKGAUNE2jBgiEgbBgwRacOAISJtGDBEpA0Dhoi0YcAQkTYMGCLShgFDRNowYIhIGwYMEWnDgCEibRgwRKQNA4aItGHAEJE2DBgi0oYBQ0TaMGCISBsGDBFpw4AhIm0YMESkDQOGiLRhwBCRNgwYItKGAUNE2hhCXc7ll19eUVZWNto0zYFGJDLIamys8J+LRMrilpWst217WSKRqFu6dGlciDRhwHQho0aNilqWVavC4/I2vGyhCpqpDBrSISLUJYwcOfJWFS6vq5vHS9tURiKRcf3795c1a9a8JUQ5xAqmk0N3qLy8/O/q5iDpIMMwlu7evXuMqmYahCgHOMjbyalwWSE5CBdA18o7HlFOsIvUiY0YMaJWfWnLeEtr9FbdpQrVXXpDiDqIXaROavjw4aPVlwWiiapmBi9ZsqROiDqAXaTOa4popMZjtIUXlQ4GTCfkVS9R0SvqvQ9RuzFgOqe/Sn7k632oi+IYTCfjTUtvkTxJJBI9OG1N7cUKppMpKyurlDzK9/tR18KA6Xzy+oG3LCsqRO3EgOl8KiSPTNOMClE7MWCISJsyIUcsVlvRGJEVhm3Nq5k8fqEUr3wPuHKAl9qNFYwnFqtqMND9MMwF1TW16yfXzLl1Qqw2KkXGtu245Fe9ELUTAybAaPprHbXFmFsekfXV02oX3BX7r6KZSUkmk3WSR42NjQwYajcGTIBl2aubPWjL6EikfJWqalZU3zN7tBSYtyalTvJAVUt1XANDHcExmDTofmRdezhIdZ8GqaCZYog9d3fSWDYzVhWXwnhScrRFQ0sMw3hSiDqAFUyAZUi8Fd9W8O5TIpFYqr7ERa/44sWLFwpRBzBggiJm28YbCtR9QrfFsqwq0WuqEHUQz0UKwFR1MiIdOc8nns/u01VXXTXXNM1bJcdUeM174YUXxglRBzFgQlQ1goDp+GpZQxYmGxPzZsTu0DYL4534iC0uc9lNq1ddo1OEKAfYRQoYpyoYI1djG6r7ZEbKF+CYogm6Smo8ZjA265YcwHFwPCHKkZKrYPCB31cSUTEjlaYtUSNi9rVtqTTcqiUqOWKLzCtLql5XrCov07zDhg2LqYBo9y53akq6asmSJXOFKIe6ZMDEYvdGG6W80jKNioiYJ6vfUs38qDBxA0T7yYJqNqpq+qSqvH9YceG1xsZGBE1bNorihddIm04ZMMEqJILAMFWI2E5wYCwiKoUTV0E2Zlp1VZ0UEIImmUwOUjeHRiKRSnU76j9nlpU1WI2NdapieUuF0UIupCOdijZgUIXslkhFhq5MVPRWIQ3tOb4KlnrVJboiVrjFdxlNmjo7ZphmqutkW9bUaVPGx4QoDwq6ktfvyhimEVV/W/uiKyNuFVKRVC110SbEoJ2zNGywMZ1sSL2dtLdahlFvGtKgwqEe4aCmqqNqqnp9Ww6Y7/EWos5Ca8Bk6cpExa1CoipEdJVQ6Ko0uCFibbAMM94tIvWSkPieQgAho6aqpbUKNd5C1Bl0OGCaDaiaUpHelSlv+mZbcimuWr1t2RvUoGbcNiSOKkQ91pCDSiIuex7LccZbVLjUhR5vT2bm9r8MUZHYY8CgCqmQnRVZujKpKiTVnclTV0b0QlBFsz2ZZbzFCH0N3w4dIo3Riu/Z0+NERScVMM5Je1nWhiRlb21dGcGHWQWHWLJahVVDa7syOjlVkZn5Nw6Nt4S/yQg0LGJECJ+n2nGqdVPtO9XeUW2lagnZw4+R4bYdeE8GDRW9VMCURcoX2PhA5HhA1WvNujLFNtsSZBjetg12+mfYErtq+uTx86QpQFIvkab/ZOgTnqlajWpniBssQY2qrVJtumornMOK9BQ3jE5XrY9q3VXbodo61d5U7TPVtgeO4QcNQ4aKWipgsNmS+qvdnnNaAl2ZtAHVhmIOkZbYKmCM9HCJJ3bvGjtz2sT/FffDv7e4/+3wTegl7lJtt3f/JHHD5VzVjH333Ve6deuGZfjYHU62b99eZts2gmS+ajHVvlZtjGqjVNsnw4+DkxkfVW2OapuF1Qx1IoExmBY3W1LPFV9XRhcracUjpulUMKq8WP3Lr1uGPzx/Gk6CPFu1gaqdrNrB4lYjP6n2iWr/p9pG1W5X7Z9UM4499li59NJL5ZRTTnFC5ssvv5Tly5fL+++/L7t370alMkO1TaqdYqr36969uxx44IG42Bm2xpStW7fK77//fqAKpPHiVkYIpR+897Wl5WBh6FDBNQWMaSJAFhZgQLXYGNbO5AZzn4gkLWv+199+O23xgr/tpR7/V9VuUK1fhtdcLW43BhXOaart07NnT5kzZ44MGTLECQxABTN06FAZM2aM1NfXI817oyFcEEbnn3++DBgwwAmZbdu2yTvvvCNvvPGGbN68WRVU9s3ijt9sFbdqOki1fcUNEoTfL9I0rhOsbogKJhUw06qrcEZuTs7K7exmzpy49a7qe8feWzPxKXErh39TrVq1ngiLCjWv1qNHD+ybggpDGhoasMtcf/X8ieJ9sC+88EI599xzU+ECuH3MMcfIyJEjETCpxw8++GCpqqqSa665RtCl8g0fPlzuuusuWbRoEaoZHOhKcSumY8Ttgh0pbjWD6ul/xJ39+i3wq7CKoYLinrzpUlPNM9xwwQAtQuM/VeuJILjgggucdvTRRzsVyTfffCPLli2T9957D1VHauD3zDPPdLpFYfvtt5+cdtppTpD8+eefzmP9+vWTgQMHpoULoAq69tpr5e2333a6S8r54obLaaHDXqTaNar9TbUnVPtVguGC8SSDBQ3lHwOmueA0MwZdMRN01D777COnnnqq1NTUON2ZIHRr7rzzTidkfAcddJBEIpHmB1cfdARV37595YsvvnAeQ0X0l7/8JeMPc8IJJ8ghhxwin3/+ObZU6KUe6uUfPxqNyo4dO2TdunXGzp07D1UP/4dq34hbiWJ2Cq8x8J4MGSoEbjjVJLhQLhgwGNB1xkVQuYTDBc444ww5++yz5YADDkg9tv/++zthkgnCChUQIITQ3cLxM8FxjjrqKCkvb1oRjdCZMWOGzJs3zxnnufrqq3ENaTyFMZ1LxR2ANv3fif0kKhRWMOnCC+XQMMDrjJ+EuzC+vfbay+n2YEB2zZo1zmP+1HQme++9t1OV+LdRwQTHasJQ7SBg1MyTc//mm2+W66+/3jk+xoHw3GuvvSabNm3CQfp4zRmLsdWkO+sWKhRWMJkFF9JhdsYZL9m4cWPWF5x++ulOpeGHSksBg0BCFwdQoWTrHvmOOOKIVAWDMBoxYkTq2KhcevXq5by3Zz9xK5iI83uoAEL3yKlibNYylF8MmHTh6sWfoXEGWT/99NPUwGwYxkMwJY1qA10m3M80BgPoEmGGqbKy0hkMRmsJxn4wOIxQwXuEAwlhhuDx74obMs7vkFRjMIwVKhR2kVzBpf7BbhICZr1qW5LJZA/MGK1du9ZZOBeGLs5ll13mTEPj9mGHHeaPizSDQBg8eLAzZoNqpn///tISjPvMmjVLNmzYIIMGDWr2PN4Hx/Eg1RAyTsBgkDdVubCzRHnGgMkcLH4Fg9vbxK1iBm7evNlZhZspYODII4902h7fUH3QES4ImdbA2M+wYcOcGSNUMpkEwsw/uT01yEtUKKXeRco0c4SG2ZgrVLtRtb+KNxGDBXXvvvsuVtZKvmEMBqGUrdsVkgpIO5k0/HMK2FWifCvlCiZT5YJp6RGqjVXtEO++3+Vwzg/CepS6ujpnlW2RMkKNqGBYwTRVLvuLe8byveIurouKGzKYkUktcME09EsvveSvrC16lhAVTqlWMMHqxe9O3CbuuT7OdMzxxx/vnAmNLsknn3wiK1eudNah7Nq1ywmZVatWZRxwLQScsrBz507/LjIFJz2ygqGCK+Uukj8Iiq/YcW6keOFyww03yN133+2sUcHgKaqV5557TqZOnepMU3/77bfO1gvFEjDougWmzxEuu4WoCJRiwGSaLbpANWdxyVlnnSUPPfRQ2gswuDp27Fhn1ezEiROdr63xww8/yPr16+Wcc85ptugOA8aYkcIpAlg3Ex68xZQ0zrg++eSTpU+fPi0O7qKCCXTZEC47hKgIlOoYTDBk8MnFMlhnqewll1yS8QVYeYvl+Y8++qjMnDnTmTZuCVb94gzp8847T6qrq9OeQxg888wzcvHFF8tNN90kL7/8ctrzv/zyi0yYMEGuvPJKufHGG+Wrr75q8b3QbcNrPOgrdY4BIurySrmCQbj660XKvcdSS/gzwXPXXXedtAbGabBXjG3bznYLQVjP8v333zu3f/vtN6fLFYSw2LJli1Mpff3119hms8X3QsD8+uuv/l30lRAwzsw0l2pTIZXav7/wJUX8CuYP8SZc8IHvTBBgCKA//vjDuStuBfO7EBWBUvwDF5xd8cdgUttNrlu3TjqTRCIh8Xg8dVfczaawCTnX1VHBlXIFHewqob/iBAy6NnYnOusYAYOBZA+ql58leOUBNQvGVXdUKFxo58In1Pmrj5W6GP/o8IEDs0aYRtYFa3NwlrcH/SR/TwlWMFRwpV7B+PChxEhrI3bzf/7556WjsGudHzLZtnjoKExPYzr7448/9h/CANL/S9OpR9gvk0FDBVPKARP84KHEeEu89SNPPPFEh09oxJYNfsDoqmAwsPvqq6/6U9T42dHVQ1Cmn9+In4NbNVABlGLAhK/57DcsRomrlvzoo4/kvvvuS21RWawwIP3444/7dzG4i8vMImgwI8YTqKngSi1ggpdd9ZvlNVwxEbvxO4tO8MFdunRpq1ft5hsGonH6gjfrhSTEJWhxWYNguLCLRAVV6l0kS9JD5lVxr87oLFybPXu2rFixQnINXSd/gygERXtCDCdfPvvss/5d9JH+W7Ufpel3SS20S80gsZtEeVaqXaRgwwCJ5X3FwMsDqq3CN+JcICzz/+CDDySXcF6Rv8UlBmrb2hVbvXq1cyVIbxNyTK9jqTACxgo1VjBUUKVawQS7R37I+A19DlwhcR0++NiWAdce+uyzzySXgicvtqWCQWU1efJk5+cS9+fHz/uCuDNIflimmmFGbFYuVCilXMH4H0L/Q9no3cbXD1Wbr9pm7LPyyiuvSG1tbcFX+SKIHnzwQXn99df9hzCw+4i4ewYHQ5KDvFQUSn0Mxg+a4IcTAYM+CwZfZqm2BetYsDYGlcN3333XqoMfeuihqbUwuMJAEK4qgEuXADb0Dp9giX1ounfv7rwWx8HF2QAXV3vssceCXaoHxb3o/W7v5/ZD0g9PB8dfqFBatYN0F5TppMdwQ/g0iLv0/sxEIlGOcEFFc+KJJ2a91KsPwYFrUGNnPGy5cPjhh6eewxoZvB7PY9OqK664wgkVHwIFe9DgciWjRo2Sk046yTkDe/z48c64kKdO3IDBVQ8QLAlJr8KcKmbg4Iv+WQXVoFTA2PZbK+verBOiPCjVHe0QHn6I+GMwqOYS3vP+SZAIl9dU66Vme67fsmVL+YIFC+Tnn3+W6dOnOxdZywZVysiRI51qI3ypEYy/IHjuuOOO8DWNUq+96KKLnMua4Htx//777xesz/HOk8Ks0Qxxt2VISnq4sItERaPUr4sUnk0KngDp38bWB4vFvUb1v2/durUcm36j4sBMznHHHZf14AiOcHgEZbvWNaDK8a9XjbGXxYsXC05j8Dyh2iZp6hZlC5emlbxEBVDKAROsYvzxiuAVHYMnIP+k2jOq7VIVxLXbt2/f++mnn3bOMbrttttkwIABohO23sSWDN5sE6qVl6SpagmHS7ARFVSpn02daU1MIktDyDyl2gMqZLbhPKCnnnpKbr/9dmeLh/ZAcNxyyy3Su3dv6devnzz88MPBKiUF2zFg1zoPRpl/C/1smWaQRNhFogLjpWObPoTBv/jB7pIEvqK7hDUn+LTfotoBb775pnOdJAziBi5Av0c//vijzJ8/Xx544AHn/k8//SRTpkxxFt5hn97gda2xQXjghMmNkh4o4XDh+AsVDW7Zmnm62p+V8S8BEqwWMLD6d9UeVu1nDLouX77cuYxJa2FbTgQTAsZ7b6e7g5BZtGiRfPjhh2lnYKN6CWyCtUOyj70EqxeigmPAuIJdinDQBMPGb9jg5RPVPseLsGQfVUZrYYOoWbNmOVPP4p5cWe8dy8a1r1ER4Zh+qIQueWJK5vEWW9g1oiLDLlKTTFPXRuh5/3vQsO2ds7k2LkPiX4wNMLUcvg4SwgLbW2ItDS7g5p16gLDCiU4LVTtBtR5qILcPVuuiizRkyBBnvQwqG7zWg+s3ZQsXdo2oqDBg0vkBgg+tXymINL9YW3DTcKfL88gjj8iLL77oBAMWygXHUABjK9iKEwHj7aGLY8dVW6baN+IO3PZW7SpVDVXgTO4lS5Y44zp4XWBXvL7e+zJYqOgxYJoLhox4t4NB4y/CA2clNFb34vrVbYBuF1IG+898JE1ncmO7CKzK+xd1zB5r167N1IXtJu51nFi9UNFjwGQWDhlfsILBtDVOisSJRPuGno9I8038cUzMPmHnf8wEYd+ZleKGjR8MOJtyobhbX1aqdqB3LASQf0lY7PD9hzBYqBNgwGQXDBm/e+QP/vrXUkIFgg98T0m/UmQ3aQqi4DQ4ggELXbBvrn/1xeDMD74f4YNFfW94x8WxEt7rMO6zSTKfDsCQoaLDgGlZeLVveJUvQgZBgS5LRJoCxsxwnEzbRPiDyb5gFwxVzEbJvAgwKaxgqBNgwLROOBwQMqb31YcP/Z4CxsrS/IDwqx5T0isgW9L3rOGCOuoUGDB7FuyCBM9bagw8jsf8cMk2/tJSwPiCYzzB2apM+9bwrGkqegyY1guGCzQGHiuTpqom05VagwETDppgQISnws0Mr/cXAPK8Iyp6DJjWC6/2Dd72181ASwETrmQyVR/h7SLCxwhu88kxGCpqDJjWCa/ytaR5WIR3xAu/Pjzj01LA7Cmk2DWiToEB03Z+mJiB28GAEckcMMHbVuhxO/S6TCHlf1+msGLQUFFiwLSeX8X4ty1pHiit2TouU7cmU8BI6Lad5StR0WLAtE0wCMKDs209RkvPtTY8GDJU1Bgw7WNnuW+04TVEXR4DJrcYIkQB3HCKiLRhwBCRNgwYItKGAUNE2jBgiEgbBgwRacOAISJtGDBdnGFI2gWbjIjZV4jyhAHTxdmGHU9/QKJClCcMmC6uLBmpDz1UOS5W2/qLaBN1AAOmi4vFquLiXuDNV7GfaY0WojxgwJQA27KeDN43DXOoEOUBA6YElNnmwtBDg6rvmT1OiDRjwJQAdJNssdOqGDHMKRNitVEh0ogBUyLKkkZMfQlOWVeUR2QFQ4Z0YsCUCGew15CpoYejCJlJNbWDhEiDtmz1SF2ACpOY+p8+pdkThixMNMrUme6sE1FOMGBK0KSaOXMNMW7N8vRSNe20LGkl62fE7qgXog5gwJSorJUMUQ4xYEoYxl7UP4AF6mZUiDRgwJBU31M7Wv1LQDUTFaIcYsBQSmx6bWVjo3W5mOZAww2bqBB1wD8AobUpv0xPqN8AAAAASUVORK5CYII="></image></defs>', 3)
|
|
8855
|
+
]));
|
|
8856
|
+
}
|
|
8857
|
+
const WireMeUp = /* @__PURE__ */ _export_sfc$1(_sfc_main$D, [["render", _sfc_render]]);
|
|
8858
|
+
const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
8859
|
+
__name: "InputPanel",
|
|
8703
8860
|
props: {
|
|
8704
|
-
|
|
8705
|
-
|
|
8706
|
-
pushRef: {
|
|
8707
|
-
|
|
8861
|
+
runIndex: {},
|
|
8862
|
+
workflow: {},
|
|
8863
|
+
pushRef: {},
|
|
8864
|
+
activeNodeName: {},
|
|
8865
|
+
currentNodeName: { default: "" },
|
|
8866
|
+
canLinkRuns: { type: Boolean, default: false },
|
|
8867
|
+
linkedRuns: { type: Boolean },
|
|
8868
|
+
readOnly: { type: Boolean, default: false },
|
|
8869
|
+
isProductionExecutionPreview: { type: Boolean, default: false },
|
|
8870
|
+
isPaneActive: { type: Boolean, default: false },
|
|
8871
|
+
displayMode: {},
|
|
8872
|
+
compact: { type: Boolean },
|
|
8873
|
+
disableDisplayModeSelection: { type: Boolean },
|
|
8874
|
+
focusedMappableInput: {},
|
|
8875
|
+
isMappingOnboarded: { type: Boolean }
|
|
8708
8876
|
},
|
|
8709
|
-
emits: ["
|
|
8877
|
+
emits: ["itemHover", "tableMounted", "linkRun", "unlinkRun", "runChange", "search", "changeInputNode", "execute", "activatePane", "displayModeChange"],
|
|
8710
8878
|
setup(__props, { emit: __emit }) {
|
|
8711
8879
|
const props = __props;
|
|
8712
8880
|
const emit = __emit;
|
|
8713
|
-
const
|
|
8714
|
-
const ndvStore = useNDVStore();
|
|
8715
|
-
const workflowsStore = useWorkflowsStore();
|
|
8716
|
-
const i18n = useI18n();
|
|
8881
|
+
const i18n2 = useI18n();
|
|
8717
8882
|
const telemetry = useTelemetry();
|
|
8718
|
-
const
|
|
8719
|
-
const
|
|
8720
|
-
const
|
|
8721
|
-
|
|
8883
|
+
const showDraggableHintWithDelay = ref(false);
|
|
8884
|
+
const draggableHintShown = ref(false);
|
|
8885
|
+
const mappedNode2 = ref(null);
|
|
8886
|
+
const collapsingColumnName = ref(null);
|
|
8887
|
+
const inputModes = [
|
|
8888
|
+
{ value: "mapping", label: i18n2.baseText("ndv.input.mapping") },
|
|
8889
|
+
{ value: "debugging", label: i18n2.baseText("ndv.input.fromAI") }
|
|
8890
|
+
];
|
|
8891
|
+
const nodeTypesStore = useNodeTypesStore();
|
|
8892
|
+
const workflowsStore = useWorkflowsStore();
|
|
8893
|
+
const posthogStore = usePostHog();
|
|
8894
|
+
const activeNode = computed(() => workflowsStore.getNodeByName(props.activeNodeName));
|
|
8895
|
+
const rootNode = computed(() => {
|
|
8896
|
+
if (!activeNode.value) return null;
|
|
8897
|
+
return props.workflow.getChildNodes(activeNode.value.name, "ALL").at(0) ?? null;
|
|
8898
|
+
});
|
|
8899
|
+
const hasRootNodeRun = computed(() => {
|
|
8900
|
+
return !!(rootNode.value && workflowsStore.getWorkflowExecution?.data?.resultData.runData[rootNode.value]);
|
|
8901
|
+
});
|
|
8902
|
+
const inputMode = ref(
|
|
8903
|
+
// Show debugging mode by default only when the node has already run
|
|
8904
|
+
activeNode.value && workflowsStore.getWorkflowExecution?.data?.resultData.runData[activeNode.value.name] ? "debugging" : "mapping"
|
|
8905
|
+
);
|
|
8906
|
+
const isMappingMode = computed(() => isActiveNodeConfig.value && inputMode.value === "mapping");
|
|
8907
|
+
const showDraggableHint = computed(() => {
|
|
8908
|
+
const toIgnore = [START_NODE_TYPE, MANUAL_TRIGGER_NODE_TYPE, CRON_NODE_TYPE, INTERVAL_NODE_TYPE];
|
|
8909
|
+
if (!currentNode.value || toIgnore.includes(currentNode.value.type)) {
|
|
8910
|
+
return false;
|
|
8911
|
+
}
|
|
8912
|
+
return !!props.focusedMappableInput && !props.isMappingOnboarded;
|
|
8913
|
+
});
|
|
8914
|
+
const isActiveNodeConfig = computed(() => {
|
|
8915
|
+
let inputs2 = activeNodeType.value?.inputs ?? [];
|
|
8916
|
+
let outputs = activeNodeType.value?.outputs ?? [];
|
|
8917
|
+
if (props.workflow && activeNode.value) {
|
|
8918
|
+
const node2 = props.workflow.getNode(activeNode.value.name);
|
|
8919
|
+
if (node2 && activeNodeType.value) {
|
|
8920
|
+
inputs2 = getNodeInputs(props.workflow, node2, activeNodeType.value);
|
|
8921
|
+
outputs = getNodeOutputs(props.workflow, node2, activeNodeType.value);
|
|
8922
|
+
}
|
|
8923
|
+
}
|
|
8924
|
+
if (!Array.isArray(inputs2)) {
|
|
8925
|
+
inputs2 = [];
|
|
8926
|
+
}
|
|
8927
|
+
if (!Array.isArray(outputs)) {
|
|
8928
|
+
outputs = [];
|
|
8929
|
+
}
|
|
8930
|
+
return inputs2.length === 0 || inputs2.every((input) => filterOutConnectionType(input, NodeConnectionTypes.Main)) && outputs.find((output) => filterOutConnectionType(output, NodeConnectionTypes.Main));
|
|
8931
|
+
});
|
|
8932
|
+
const isMappingEnabled = computed(() => {
|
|
8933
|
+
if (props.readOnly) return false;
|
|
8934
|
+
if (isActiveNodeConfig.value) return isMappingMode.value && mappedNode2.value !== null;
|
|
8935
|
+
return true;
|
|
8936
|
+
});
|
|
8937
|
+
const isExecutingPrevious = computed(() => {
|
|
8938
|
+
if (!workflowsStore.isWorkflowRunning) {
|
|
8939
|
+
return false;
|
|
8940
|
+
}
|
|
8941
|
+
const triggeredNode = workflowsStore.executedNode;
|
|
8942
|
+
const executingNode = workflowsStore.executingNode;
|
|
8943
|
+
if (activeNode.value && triggeredNode === activeNode.value.name && workflowsStore.isNodeExecuting(props.currentNodeName)) {
|
|
8944
|
+
return true;
|
|
8945
|
+
}
|
|
8946
|
+
if (executingNode.length || triggeredNode) {
|
|
8947
|
+
return !!parentNodes.value.find(
|
|
8948
|
+
(node2) => workflowsStore.isNodeExecuting(node2.name) || node2.name === triggeredNode
|
|
8949
|
+
);
|
|
8950
|
+
}
|
|
8951
|
+
return false;
|
|
8952
|
+
});
|
|
8953
|
+
const rootNodesParents = computed(() => {
|
|
8954
|
+
if (!rootNode.value) return [];
|
|
8955
|
+
return props.workflow.getParentNodesByDepth(rootNode.value);
|
|
8956
|
+
});
|
|
8957
|
+
const currentNode = computed(() => {
|
|
8958
|
+
if (isActiveNodeConfig.value) {
|
|
8959
|
+
if (mappedNode2.value) {
|
|
8960
|
+
return workflowsStore.getNodeByName(mappedNode2.value);
|
|
8961
|
+
}
|
|
8962
|
+
return activeNode.value;
|
|
8963
|
+
}
|
|
8964
|
+
return workflowsStore.getNodeByName(props.currentNodeName ?? "");
|
|
8965
|
+
});
|
|
8966
|
+
const connectedCurrentNodeOutputs = computed(() => {
|
|
8967
|
+
const search = parentNodes.value.find(({ name }) => name === props.currentNodeName);
|
|
8968
|
+
return search?.indicies;
|
|
8969
|
+
});
|
|
8970
|
+
const parentNodes = computed(() => {
|
|
8971
|
+
if (!activeNode.value) {
|
|
8972
|
+
return [];
|
|
8973
|
+
}
|
|
8974
|
+
const parents = props.workflow.getParentNodesByDepth(activeNode.value.name).filter((parent) => parent.name !== activeNode.value?.name);
|
|
8975
|
+
return uniqBy(parents, (parent) => parent.name);
|
|
8976
|
+
});
|
|
8977
|
+
const currentNodeDepth = computed(() => {
|
|
8978
|
+
const node2 = parentNodes.value.find(
|
|
8979
|
+
(parent) => currentNode.value && parent.name === currentNode.value.name
|
|
8980
|
+
);
|
|
8981
|
+
return node2?.depth ?? -1;
|
|
8982
|
+
});
|
|
8983
|
+
const activeNodeType = computed(() => {
|
|
8984
|
+
if (!activeNode.value) return null;
|
|
8985
|
+
return nodeTypesStore.getNodeType(activeNode.value.type, activeNode.value.typeVersion);
|
|
8986
|
+
});
|
|
8987
|
+
const waitingMessage = computed(() => {
|
|
8988
|
+
const parentNode = parentNodes.value[0];
|
|
8989
|
+
return parentNode && waitingNodeTooltip(workflowsStore.getNodeByName(parentNode.name));
|
|
8990
|
+
});
|
|
8991
|
+
const isNDVV2 = computed(
|
|
8992
|
+
() => posthogStore.isVariantEnabled(
|
|
8993
|
+
NDV_UI_OVERHAUL_EXPERIMENT.name,
|
|
8994
|
+
NDV_UI_OVERHAUL_EXPERIMENT.variant
|
|
8995
|
+
)
|
|
8996
|
+
);
|
|
8997
|
+
watch(
|
|
8998
|
+
inputMode,
|
|
8999
|
+
(mode) => {
|
|
9000
|
+
onRunIndexChange(-1);
|
|
9001
|
+
if (mode === "mapping") {
|
|
9002
|
+
onUnlinkRun();
|
|
9003
|
+
mappedNode2.value = rootNodesParents.value[0]?.name ?? null;
|
|
9004
|
+
} else {
|
|
9005
|
+
mappedNode2.value = null;
|
|
9006
|
+
}
|
|
9007
|
+
},
|
|
9008
|
+
{ immediate: true }
|
|
9009
|
+
);
|
|
9010
|
+
watch(showDraggableHint, (curr, prev) => {
|
|
9011
|
+
if (curr && !prev) {
|
|
9012
|
+
setTimeout(() => {
|
|
9013
|
+
if (draggableHintShown.value) {
|
|
9014
|
+
return;
|
|
9015
|
+
}
|
|
9016
|
+
showDraggableHintWithDelay.value = showDraggableHint.value;
|
|
9017
|
+
if (showDraggableHintWithDelay.value) {
|
|
9018
|
+
draggableHintShown.value = true;
|
|
9019
|
+
telemetry.track("User viewed data mapping tooltip", {
|
|
9020
|
+
type: "unexecuted input pane"
|
|
9021
|
+
});
|
|
9022
|
+
}
|
|
9023
|
+
}, 1e3);
|
|
9024
|
+
} else if (!curr) {
|
|
9025
|
+
showDraggableHintWithDelay.value = false;
|
|
9026
|
+
}
|
|
9027
|
+
});
|
|
9028
|
+
function filterOutConnectionType(item, type) {
|
|
9029
|
+
if (!item) return false;
|
|
9030
|
+
return typeof item === "string" ? item !== type : item.type !== type;
|
|
9031
|
+
}
|
|
9032
|
+
function onInputModeChange(val) {
|
|
9033
|
+
inputMode.value = val;
|
|
9034
|
+
}
|
|
9035
|
+
function onMappedNodeSelected(val) {
|
|
9036
|
+
mappedNode2.value = val;
|
|
9037
|
+
onRunIndexChange(0);
|
|
9038
|
+
onUnlinkRun();
|
|
9039
|
+
}
|
|
9040
|
+
function onNodeExecute() {
|
|
9041
|
+
emit("execute");
|
|
9042
|
+
if (activeNode.value) {
|
|
9043
|
+
telemetry.track("User clicked ndv button", {
|
|
9044
|
+
node_type: activeNode.value.type,
|
|
9045
|
+
workflow_id: workflowsStore.workflowId,
|
|
9046
|
+
push_ref: props.pushRef,
|
|
9047
|
+
pane: "input",
|
|
9048
|
+
type: "executePrevious"
|
|
9049
|
+
});
|
|
9050
|
+
}
|
|
9051
|
+
}
|
|
9052
|
+
function onRunIndexChange(run) {
|
|
9053
|
+
emit("runChange", run);
|
|
9054
|
+
}
|
|
9055
|
+
function onLinkRun() {
|
|
9056
|
+
emit("linkRun");
|
|
9057
|
+
}
|
|
9058
|
+
function onUnlinkRun() {
|
|
9059
|
+
emit("unlinkRun");
|
|
9060
|
+
}
|
|
9061
|
+
function onSearch(search) {
|
|
9062
|
+
emit("search", search);
|
|
9063
|
+
}
|
|
9064
|
+
function onItemHover(item) {
|
|
9065
|
+
emit("itemHover", item);
|
|
9066
|
+
}
|
|
9067
|
+
function onTableMounted(event) {
|
|
9068
|
+
emit("tableMounted", event);
|
|
9069
|
+
}
|
|
9070
|
+
function onInputNodeChange(value) {
|
|
9071
|
+
const index = parentNodes.value.findIndex((node2) => node2.name === value) + 1;
|
|
9072
|
+
emit("changeInputNode", value, index);
|
|
9073
|
+
}
|
|
9074
|
+
function onConnectionHelpClick() {
|
|
9075
|
+
if (activeNode.value) {
|
|
9076
|
+
telemetry.track("User clicked ndv link", {
|
|
9077
|
+
node_type: activeNode.value.type,
|
|
9078
|
+
workflow_id: workflowsStore.workflowId,
|
|
9079
|
+
push_ref: props.pushRef,
|
|
9080
|
+
pane: "input",
|
|
9081
|
+
type: "not-connected-help"
|
|
9082
|
+
});
|
|
9083
|
+
}
|
|
9084
|
+
}
|
|
9085
|
+
function activatePane() {
|
|
9086
|
+
emit("activatePane");
|
|
9087
|
+
}
|
|
9088
|
+
function handleChangeCollapsingColumn(columnName) {
|
|
9089
|
+
collapsingColumnName.value = columnName;
|
|
9090
|
+
}
|
|
9091
|
+
return (_ctx, _cache) => {
|
|
9092
|
+
const _directive_n8n_html = resolveDirective("n8n-html");
|
|
9093
|
+
return openBlock(), createBlock(RunData, {
|
|
9094
|
+
class: normalizeClass(_ctx.$style.runData),
|
|
9095
|
+
node: currentNode.value,
|
|
9096
|
+
nodes: isMappingMode.value ? rootNodesParents.value : parentNodes.value,
|
|
9097
|
+
workflow: _ctx.workflow,
|
|
9098
|
+
"run-index": isMappingMode.value ? 0 : _ctx.runIndex,
|
|
9099
|
+
"linked-runs": _ctx.linkedRuns,
|
|
9100
|
+
"can-link-runs": !mappedNode2.value && _ctx.canLinkRuns,
|
|
9101
|
+
"too-much-data-title": unref(i18n2).baseText("ndv.input.tooMuchData.title"),
|
|
9102
|
+
"no-data-in-branch-message": unref(i18n2).baseText("ndv.input.noOutputDataInBranch"),
|
|
9103
|
+
"is-executing": isExecutingPrevious.value,
|
|
9104
|
+
"executing-message": unref(i18n2).baseText("ndv.input.executingPrevious"),
|
|
9105
|
+
"push-ref": _ctx.pushRef,
|
|
9106
|
+
"override-outputs": connectedCurrentNodeOutputs.value,
|
|
9107
|
+
"mapping-enabled": isMappingEnabled.value,
|
|
9108
|
+
"distance-from-active": currentNodeDepth.value,
|
|
9109
|
+
"is-production-execution-preview": _ctx.isProductionExecutionPreview,
|
|
9110
|
+
"is-pane-active": _ctx.isPaneActive,
|
|
9111
|
+
"display-mode": _ctx.displayMode,
|
|
9112
|
+
"pane-type": "input",
|
|
9113
|
+
"data-test-id": "ndv-input-panel",
|
|
9114
|
+
"disable-ai-content": true,
|
|
9115
|
+
"collapsing-table-column-name": collapsingColumnName.value,
|
|
9116
|
+
compact: _ctx.compact,
|
|
9117
|
+
"disable-display-mode-selection": _ctx.disableDisplayModeSelection,
|
|
9118
|
+
onActivatePane: activatePane,
|
|
9119
|
+
onItemHover,
|
|
9120
|
+
onLinkRun,
|
|
9121
|
+
onUnlinkRun,
|
|
9122
|
+
onRunChange: onRunIndexChange,
|
|
9123
|
+
onTableMounted,
|
|
9124
|
+
onSearch,
|
|
9125
|
+
onDisplayModeChange: _cache[2] || (_cache[2] = ($event) => emit("displayModeChange", $event)),
|
|
9126
|
+
onCollapsingTableColumnChanged: handleChangeCollapsingColumn
|
|
9127
|
+
}, createSlots({
|
|
9128
|
+
header: withCtx(() => [
|
|
9129
|
+
createBaseVNode("div", {
|
|
9130
|
+
class: normalizeClass([_ctx.$style.titleSection, { [_ctx.$style.titleSectionV2]: isNDVV2.value }])
|
|
9131
|
+
}, [
|
|
9132
|
+
createVNode(unref(N8nText), {
|
|
9133
|
+
bold: true,
|
|
9134
|
+
color: "text-light",
|
|
9135
|
+
size: _ctx.compact ? "small" : "medium",
|
|
9136
|
+
class: normalizeClass([_ctx.$style.title, { [_ctx.$style.titleV2]: isNDVV2.value }])
|
|
9137
|
+
}, {
|
|
9138
|
+
default: withCtx(() => [
|
|
9139
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("ndv.input")), 1)
|
|
9140
|
+
]),
|
|
9141
|
+
_: 1
|
|
9142
|
+
}, 8, ["size", "class"]),
|
|
9143
|
+
isActiveNodeConfig.value && !_ctx.readOnly ? (openBlock(), createBlock(unref(N8nRadioButtons), {
|
|
9144
|
+
key: 0,
|
|
9145
|
+
"data-test-id": "input-panel-mode",
|
|
9146
|
+
options: inputModes,
|
|
9147
|
+
"model-value": inputMode.value,
|
|
9148
|
+
"onUpdate:modelValue": onInputModeChange
|
|
9149
|
+
}, null, 8, ["model-value"])) : createCommentVNode("", true)
|
|
9150
|
+
], 2)
|
|
9151
|
+
]),
|
|
9152
|
+
"input-select": withCtx(() => [
|
|
9153
|
+
parentNodes.value.length && _ctx.currentNodeName ? (openBlock(), createBlock(InputNodeSelect, {
|
|
9154
|
+
key: 0,
|
|
9155
|
+
"model-value": _ctx.currentNodeName,
|
|
9156
|
+
workflow: _ctx.workflow,
|
|
9157
|
+
nodes: parentNodes.value,
|
|
9158
|
+
"onUpdate:modelValue": onInputNodeChange
|
|
9159
|
+
}, null, 8, ["model-value", "workflow", "nodes"])) : createCommentVNode("", true)
|
|
9160
|
+
]),
|
|
9161
|
+
"node-not-run": withCtx(() => [
|
|
9162
|
+
isActiveNodeConfig.value && rootNode.value || parentNodes.value.length ? (openBlock(), createElementBlock("div", {
|
|
9163
|
+
key: 0,
|
|
9164
|
+
class: normalizeClass(_ctx.$style.noOutputData)
|
|
9165
|
+
}, [
|
|
9166
|
+
isNDVV2.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
9167
|
+
isMappingEnabled.value || hasRootNodeRun.value ? (openBlock(), createBlock(__unplugin_components_2, {
|
|
9168
|
+
key: 0,
|
|
9169
|
+
title: unref(i18n2).baseText("ndv.input.noOutputData.v2.title")
|
|
9170
|
+
}, {
|
|
9171
|
+
icon: withCtx(() => [
|
|
9172
|
+
createVNode(unref(N8nIcon), {
|
|
9173
|
+
icon: "arrow-right-to-line",
|
|
9174
|
+
size: "xlarge"
|
|
9175
|
+
})
|
|
9176
|
+
]),
|
|
9177
|
+
description: withCtx(() => [
|
|
9178
|
+
createVNode(unref(I18nT), {
|
|
9179
|
+
tag: "span",
|
|
9180
|
+
keypath: "ndv.input.noOutputData.v2.description",
|
|
9181
|
+
scope: "global"
|
|
9182
|
+
}, {
|
|
9183
|
+
link: withCtx(() => [
|
|
9184
|
+
createVNode(_sfc_main$10, {
|
|
9185
|
+
"hide-icon": "",
|
|
9186
|
+
transparent: "",
|
|
9187
|
+
type: "secondary",
|
|
9188
|
+
"node-name": (isActiveNodeConfig.value ? rootNode.value : activeNode.value?.name) ?? "",
|
|
9189
|
+
label: unref(i18n2).baseText("ndv.input.noOutputData.v2.action"),
|
|
9190
|
+
tooltip: unref(i18n2).baseText("ndv.input.noOutputData.v2.tooltip"),
|
|
9191
|
+
"tooltip-placement": "bottom",
|
|
9192
|
+
"telemetry-source": "inputs",
|
|
9193
|
+
"data-test-id": "execute-previous-node",
|
|
9194
|
+
onExecute: onNodeExecute
|
|
9195
|
+
}, null, 8, ["node-name", "label", "tooltip"]),
|
|
9196
|
+
_cache[4] || (_cache[4] = createBaseVNode("br", null, null, -1))
|
|
9197
|
+
]),
|
|
9198
|
+
_: 1
|
|
9199
|
+
})
|
|
9200
|
+
]),
|
|
9201
|
+
_: 1
|
|
9202
|
+
}, 8, ["title"])) : (openBlock(), createBlock(__unplugin_components_2, {
|
|
9203
|
+
key: 1,
|
|
9204
|
+
title: unref(i18n2).baseText("ndv.input.rootNodeHasNotRun.title")
|
|
9205
|
+
}, {
|
|
9206
|
+
icon: withCtx(() => _cache[5] || (_cache[5] = [
|
|
9207
|
+
createBaseVNode("svg", {
|
|
9208
|
+
width: "16px",
|
|
9209
|
+
viewBox: "0 0 16 14",
|
|
9210
|
+
fill: "none",
|
|
9211
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
9212
|
+
}, [
|
|
9213
|
+
createBaseVNode("path", {
|
|
9214
|
+
d: "M11 2C10.4375 2 10 1.5625 10 1C10 0.46875 10.4375 0 11 0H13C14.6562 0 16 1.34375 16 3V11C16 12.6562 14.6562 14 13 14H11C10.4375 14 10 13.5625 10 13C10 12.4688 10.4375 12 11 12H13C13.5312 12 14 11.5625 14 11V3C14 2.46875 13.5312 2 13 2H11ZM10.6875 7.71875L6.6875 11.7188C6.3125 12.125 5.65625 12.125 5.28125 11.7188C4.875 11.3438 4.875 10.6875 5.28125 10.3125L7.5625 8H1C0.4375 8 0 7.5625 0 7C0 6.46875 0.4375 6 1 6H7.5625L5.28125 3.71875C4.875 3.34375 4.875 2.6875 5.28125 2.3125C5.65625 1.90625 6.3125 1.90625 6.6875 2.3125L10.6875 6.3125C11.0938 6.6875 11.0938 7.34375 10.6875 7.71875Z",
|
|
9215
|
+
fill: "currentColor"
|
|
9216
|
+
})
|
|
9217
|
+
], -1)
|
|
9218
|
+
])),
|
|
9219
|
+
description: withCtx(() => [
|
|
9220
|
+
createVNode(unref(I18nT), {
|
|
9221
|
+
tag: "span",
|
|
9222
|
+
keypath: "ndv.input.rootNodeHasNotRun.description",
|
|
9223
|
+
scope: "global"
|
|
9224
|
+
}, {
|
|
9225
|
+
link: withCtx(() => [
|
|
9226
|
+
createBaseVNode("a", {
|
|
9227
|
+
href: "#",
|
|
9228
|
+
"data-test-id": "switch-to-mapping-mode-link",
|
|
9229
|
+
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => onInputModeChange("mapping"), ["prevent"]))
|
|
9230
|
+
}, toDisplayString(unref(i18n2).baseText("ndv.input.rootNodeHasNotRun.description.link")), 1)
|
|
9231
|
+
]),
|
|
9232
|
+
_: 1
|
|
9233
|
+
})
|
|
9234
|
+
]),
|
|
9235
|
+
_: 1
|
|
9236
|
+
}, 8, ["title"]))
|
|
9237
|
+
], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
9238
|
+
isMappingEnabled.value || hasRootNodeRun.value ? (openBlock(), createBlock(unref(N8nText), {
|
|
9239
|
+
key: 0,
|
|
9240
|
+
tag: "div",
|
|
9241
|
+
bold: true,
|
|
9242
|
+
color: "text-dark",
|
|
9243
|
+
size: "large"
|
|
9244
|
+
}, {
|
|
9245
|
+
default: withCtx(() => [
|
|
9246
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("ndv.input.noOutputData.title")), 1)
|
|
9247
|
+
]),
|
|
9248
|
+
_: 1
|
|
9249
|
+
})) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
9250
|
+
createVNode(unref(N8nText), {
|
|
9251
|
+
tag: "div",
|
|
9252
|
+
bold: true,
|
|
9253
|
+
color: "text-dark",
|
|
9254
|
+
size: "large"
|
|
9255
|
+
}, {
|
|
9256
|
+
default: withCtx(() => [
|
|
9257
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("ndv.input.rootNodeHasNotRun.title")), 1)
|
|
9258
|
+
]),
|
|
9259
|
+
_: 1
|
|
9260
|
+
}),
|
|
9261
|
+
createVNode(unref(N8nText), {
|
|
9262
|
+
tag: "div",
|
|
9263
|
+
color: "text-dark",
|
|
9264
|
+
size: "medium"
|
|
9265
|
+
}, {
|
|
9266
|
+
default: withCtx(() => [
|
|
9267
|
+
createVNode(unref(I18nT), {
|
|
9268
|
+
tag: "span",
|
|
9269
|
+
keypath: "ndv.input.rootNodeHasNotRun.description",
|
|
9270
|
+
scope: "global"
|
|
9271
|
+
}, {
|
|
9272
|
+
link: withCtx(() => [
|
|
9273
|
+
createBaseVNode("a", {
|
|
9274
|
+
href: "#",
|
|
9275
|
+
"data-test-id": "switch-to-mapping-mode-link",
|
|
9276
|
+
onClick: _cache[1] || (_cache[1] = withModifiers(($event) => onInputModeChange("mapping"), ["prevent"]))
|
|
9277
|
+
}, toDisplayString(unref(i18n2).baseText("ndv.input.rootNodeHasNotRun.description.link")), 1)
|
|
9278
|
+
]),
|
|
9279
|
+
_: 1
|
|
9280
|
+
})
|
|
9281
|
+
]),
|
|
9282
|
+
_: 1
|
|
9283
|
+
})
|
|
9284
|
+
], 64)),
|
|
9285
|
+
!_ctx.readOnly ? (openBlock(), createBlock(unref(N8nTooltip), {
|
|
9286
|
+
key: 2,
|
|
9287
|
+
visible: showDraggableHint.value && showDraggableHintWithDelay.value
|
|
9288
|
+
}, {
|
|
9289
|
+
content: withCtx(() => [
|
|
9290
|
+
withDirectives(createBaseVNode("div", null, null, 512), [
|
|
9291
|
+
[
|
|
9292
|
+
_directive_n8n_html,
|
|
9293
|
+
unref(i18n2).baseText("dataMapping.dragFromPreviousHint", {
|
|
9294
|
+
interpolate: { name: _ctx.focusedMappableInput }
|
|
9295
|
+
})
|
|
9296
|
+
]
|
|
9297
|
+
])
|
|
9298
|
+
]),
|
|
9299
|
+
default: withCtx(() => [
|
|
9300
|
+
createVNode(_sfc_main$10, {
|
|
9301
|
+
type: "secondary",
|
|
9302
|
+
"hide-icon": "",
|
|
9303
|
+
transparent: true,
|
|
9304
|
+
"node-name": (isActiveNodeConfig.value ? rootNode.value : activeNode.value?.name) ?? "",
|
|
9305
|
+
label: unref(i18n2).baseText("ndv.input.noOutputData.executePrevious"),
|
|
9306
|
+
class: "mt-m",
|
|
9307
|
+
"telemetry-source": "inputs",
|
|
9308
|
+
"data-test-id": "execute-previous-node",
|
|
9309
|
+
onExecute: onNodeExecute
|
|
9310
|
+
}, null, 8, ["node-name", "label"])
|
|
9311
|
+
]),
|
|
9312
|
+
_: 1
|
|
9313
|
+
}, 8, ["visible"])) : createCommentVNode("", true),
|
|
9314
|
+
!_ctx.readOnly ? (openBlock(), createBlock(unref(N8nText), {
|
|
9315
|
+
key: 3,
|
|
9316
|
+
tag: "div",
|
|
9317
|
+
size: "small"
|
|
9318
|
+
}, {
|
|
9319
|
+
default: withCtx(() => [
|
|
9320
|
+
createVNode(unref(I18nT), {
|
|
9321
|
+
keypath: "ndv.input.noOutputData.hint",
|
|
9322
|
+
scope: "global"
|
|
9323
|
+
}, {
|
|
9324
|
+
info: withCtx(() => [
|
|
9325
|
+
createVNode(unref(N8nTooltip), { placement: "bottom" }, {
|
|
9326
|
+
content: withCtx(() => [
|
|
9327
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("ndv.input.noOutputData.hint.tooltip")), 1)
|
|
9328
|
+
]),
|
|
9329
|
+
default: withCtx(() => [
|
|
9330
|
+
createVNode(unref(N8nIcon), { icon: "circle-help" })
|
|
9331
|
+
]),
|
|
9332
|
+
_: 1
|
|
9333
|
+
})
|
|
9334
|
+
]),
|
|
9335
|
+
_: 1
|
|
9336
|
+
})
|
|
9337
|
+
]),
|
|
9338
|
+
_: 1
|
|
9339
|
+
})) : createCommentVNode("", true)
|
|
9340
|
+
], 64))
|
|
9341
|
+
], 2)) : (openBlock(), createElementBlock("div", {
|
|
9342
|
+
key: 1,
|
|
9343
|
+
class: normalizeClass(_ctx.$style.notConnected)
|
|
9344
|
+
}, [
|
|
9345
|
+
isNDVV2.value ? (openBlock(), createBlock(__unplugin_components_2, {
|
|
9346
|
+
key: 0,
|
|
9347
|
+
title: unref(i18n2).baseText("ndv.input.notConnected.v2.title")
|
|
9348
|
+
}, {
|
|
9349
|
+
icon: withCtx(() => [
|
|
9350
|
+
createVNode(WireMeUp)
|
|
9351
|
+
]),
|
|
9352
|
+
description: withCtx(() => [
|
|
9353
|
+
createVNode(unref(I18nT), {
|
|
9354
|
+
tag: "span",
|
|
9355
|
+
keypath: "ndv.input.notConnected.v2.description",
|
|
9356
|
+
scope: "global"
|
|
9357
|
+
}, {
|
|
9358
|
+
link: withCtx(() => [
|
|
9359
|
+
createBaseVNode("a", {
|
|
9360
|
+
href: "https://docs.n8n.io/workflows/connections/",
|
|
9361
|
+
target: "_blank",
|
|
9362
|
+
onClick: onConnectionHelpClick
|
|
9363
|
+
}, toDisplayString(unref(i18n2).baseText("ndv.input.notConnected.learnMore")), 1)
|
|
9364
|
+
]),
|
|
9365
|
+
_: 1
|
|
9366
|
+
})
|
|
9367
|
+
]),
|
|
9368
|
+
_: 1
|
|
9369
|
+
}, 8, ["title"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
9370
|
+
createBaseVNode("div", null, [
|
|
9371
|
+
createVNode(WireMeUp)
|
|
9372
|
+
]),
|
|
9373
|
+
createVNode(unref(N8nText), {
|
|
9374
|
+
tag: "div",
|
|
9375
|
+
bold: true,
|
|
9376
|
+
color: "text-dark",
|
|
9377
|
+
size: "large"
|
|
9378
|
+
}, {
|
|
9379
|
+
default: withCtx(() => [
|
|
9380
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("ndv.input.notConnected.title")), 1)
|
|
9381
|
+
]),
|
|
9382
|
+
_: 1
|
|
9383
|
+
}),
|
|
9384
|
+
createVNode(unref(N8nText), { tag: "div" }, {
|
|
9385
|
+
default: withCtx(() => [
|
|
9386
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("ndv.input.notConnected.message")) + " ", 1),
|
|
9387
|
+
createBaseVNode("a", {
|
|
9388
|
+
href: "https://docs.n8n.io/workflows/connections/",
|
|
9389
|
+
target: "_blank",
|
|
9390
|
+
onClick: onConnectionHelpClick
|
|
9391
|
+
}, toDisplayString(unref(i18n2).baseText("ndv.input.notConnected.learnMore")), 1)
|
|
9392
|
+
]),
|
|
9393
|
+
_: 1
|
|
9394
|
+
})
|
|
9395
|
+
], 64))
|
|
9396
|
+
], 2))
|
|
9397
|
+
]),
|
|
9398
|
+
"node-waiting": withCtx(() => [
|
|
9399
|
+
createVNode(unref(N8nText), {
|
|
9400
|
+
bold: true,
|
|
9401
|
+
color: "text-dark",
|
|
9402
|
+
size: "large"
|
|
9403
|
+
}, {
|
|
9404
|
+
default: withCtx(() => [
|
|
9405
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("ndv.output.waitNodeWaiting.title")), 1)
|
|
9406
|
+
]),
|
|
9407
|
+
_: 1
|
|
9408
|
+
}),
|
|
9409
|
+
withDirectives(createVNode(unref(N8nText), null, null, 512), [
|
|
9410
|
+
[_directive_n8n_html, waitingMessage.value]
|
|
9411
|
+
])
|
|
9412
|
+
]),
|
|
9413
|
+
"no-output-data": withCtx(() => [
|
|
9414
|
+
createVNode(unref(N8nText), {
|
|
9415
|
+
tag: "div",
|
|
9416
|
+
bold: true,
|
|
9417
|
+
color: "text-dark",
|
|
9418
|
+
size: "large"
|
|
9419
|
+
}, {
|
|
9420
|
+
default: withCtx(() => [
|
|
9421
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("ndv.input.noOutputData")), 1)
|
|
9422
|
+
]),
|
|
9423
|
+
_: 1
|
|
9424
|
+
})
|
|
9425
|
+
]),
|
|
9426
|
+
"recovered-artificial-output-data": withCtx(() => [
|
|
9427
|
+
createBaseVNode("div", {
|
|
9428
|
+
class: normalizeClass(_ctx.$style.recoveredOutputData)
|
|
9429
|
+
}, [
|
|
9430
|
+
createVNode(unref(N8nText), {
|
|
9431
|
+
tag: "div",
|
|
9432
|
+
bold: true,
|
|
9433
|
+
color: "text-dark",
|
|
9434
|
+
size: "large"
|
|
9435
|
+
}, {
|
|
9436
|
+
default: withCtx(() => [
|
|
9437
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("executionDetails.executionFailed.recoveredNodeTitle")), 1)
|
|
9438
|
+
]),
|
|
9439
|
+
_: 1
|
|
9440
|
+
}),
|
|
9441
|
+
createVNode(unref(N8nText), null, {
|
|
9442
|
+
default: withCtx(() => [
|
|
9443
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("executionDetails.executionFailed.recoveredNodeMessage")), 1)
|
|
9444
|
+
]),
|
|
9445
|
+
_: 1
|
|
9446
|
+
})
|
|
9447
|
+
], 2)
|
|
9448
|
+
]),
|
|
9449
|
+
_: 2
|
|
9450
|
+
}, [
|
|
9451
|
+
isMappingMode.value ? {
|
|
9452
|
+
name: "before-data",
|
|
9453
|
+
fn: withCtx(() => [
|
|
9454
|
+
(openBlock(), createBlock(resolveDynamicComponent("style"), null, {
|
|
9455
|
+
default: withCtx(() => _cache[3] || (_cache[3] = [
|
|
9456
|
+
createTextVNode("button.linkRun { display: none }")
|
|
9457
|
+
])),
|
|
9458
|
+
_: 1
|
|
9459
|
+
})),
|
|
9460
|
+
createBaseVNode("div", {
|
|
9461
|
+
class: normalizeClass(_ctx.$style.mappedNode)
|
|
9462
|
+
}, [
|
|
9463
|
+
createVNode(InputNodeSelect, {
|
|
9464
|
+
"model-value": mappedNode2.value,
|
|
9465
|
+
workflow: _ctx.workflow,
|
|
9466
|
+
nodes: rootNodesParents.value,
|
|
9467
|
+
"onUpdate:modelValue": onMappedNodeSelected
|
|
9468
|
+
}, null, 8, ["model-value", "workflow", "nodes"])
|
|
9469
|
+
], 2)
|
|
9470
|
+
]),
|
|
9471
|
+
key: "0"
|
|
9472
|
+
} : void 0
|
|
9473
|
+
]), 1032, ["class", "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", "display-mode", "collapsing-table-column-name", "compact", "disable-display-mode-selection"]);
|
|
9474
|
+
};
|
|
9475
|
+
}
|
|
9476
|
+
});
|
|
9477
|
+
const runData = "_runData_1mq3a_123";
|
|
9478
|
+
const mappedNode = "_mappedNode_1mq3a_127";
|
|
9479
|
+
const titleSection = "_titleSection_1mq3a_131";
|
|
9480
|
+
const titleSectionV2 = "_titleSectionV2_1mq3a_140";
|
|
9481
|
+
const inputModeTab = "_inputModeTab_1mq3a_144";
|
|
9482
|
+
const noOutputData = "_noOutputData_1mq3a_148";
|
|
9483
|
+
const recoveredOutputData = "_recoveredOutputData_1mq3a_155";
|
|
9484
|
+
const notConnected = "_notConnected_1mq3a_164";
|
|
9485
|
+
const title = "_title_1mq3a_131";
|
|
9486
|
+
const titleV2 = "_titleV2_1mq3a_179";
|
|
9487
|
+
const style0$r = {
|
|
9488
|
+
runData,
|
|
9489
|
+
mappedNode,
|
|
9490
|
+
titleSection,
|
|
9491
|
+
titleSectionV2,
|
|
9492
|
+
inputModeTab,
|
|
9493
|
+
noOutputData,
|
|
9494
|
+
recoveredOutputData,
|
|
9495
|
+
notConnected,
|
|
9496
|
+
title,
|
|
9497
|
+
titleV2
|
|
9498
|
+
};
|
|
9499
|
+
const cssModules$r = {
|
|
9500
|
+
"$style": style0$r
|
|
9501
|
+
};
|
|
9502
|
+
const InputPanel = /* @__PURE__ */ _export_sfc$1(_sfc_main$C, [["__cssModules", cssModules$r]]);
|
|
9503
|
+
const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
9504
|
+
__name: "NodeTitle",
|
|
9505
|
+
props: {
|
|
9506
|
+
modelValue: { default: "" },
|
|
9507
|
+
nodeType: { default: void 0 },
|
|
9508
|
+
readOnly: { type: Boolean, default: false }
|
|
9509
|
+
},
|
|
9510
|
+
emits: ["update:model-value"],
|
|
9511
|
+
setup(__props, { emit: __emit }) {
|
|
9512
|
+
const emit = __emit;
|
|
9513
|
+
function onRename(value) {
|
|
9514
|
+
if (value.trim() !== "") {
|
|
9515
|
+
emit("update:model-value", value.trim());
|
|
9516
|
+
}
|
|
9517
|
+
}
|
|
9518
|
+
const wrapperRef = useTemplateRef("wrapperRef");
|
|
9519
|
+
const { width } = useElementSize(wrapperRef);
|
|
9520
|
+
return (_ctx, _cache) => {
|
|
9521
|
+
return openBlock(), createElementBlock("span", {
|
|
9522
|
+
class: normalizeClass(_ctx.$style.container),
|
|
9523
|
+
"data-test-id": "node-title-container"
|
|
9524
|
+
}, [
|
|
9525
|
+
createBaseVNode("span", {
|
|
9526
|
+
class: normalizeClass(_ctx.$style.iconWrapper)
|
|
9527
|
+
}, [
|
|
9528
|
+
createVNode(_sfc_main$$, {
|
|
9529
|
+
"node-type": _ctx.nodeType,
|
|
9530
|
+
size: 18,
|
|
9531
|
+
"show-tooltip": true,
|
|
9532
|
+
"tooltip-position": "left"
|
|
9533
|
+
}, null, 8, ["node-type"])
|
|
9534
|
+
], 2),
|
|
9535
|
+
createBaseVNode("div", {
|
|
9536
|
+
ref_key: "wrapperRef",
|
|
9537
|
+
ref: wrapperRef,
|
|
9538
|
+
class: normalizeClass(_ctx.$style.textWrapper)
|
|
9539
|
+
}, [
|
|
9540
|
+
createVNode(unref(InlineRename), {
|
|
9541
|
+
"max-width": unref(width),
|
|
9542
|
+
"model-value": _ctx.modelValue,
|
|
9543
|
+
"read-only": _ctx.readOnly,
|
|
9544
|
+
"onUpdate:modelValue": onRename
|
|
9545
|
+
}, null, 8, ["max-width", "model-value", "read-only"])
|
|
9546
|
+
], 2)
|
|
9547
|
+
], 2);
|
|
9548
|
+
};
|
|
9549
|
+
}
|
|
9550
|
+
});
|
|
9551
|
+
const container$5 = "_container_178ym_123";
|
|
9552
|
+
const textWrapper = "_textWrapper_178ym_132";
|
|
9553
|
+
const iconWrapper$1 = "_iconWrapper_178ym_137";
|
|
9554
|
+
const style0$q = {
|
|
9555
|
+
container: container$5,
|
|
9556
|
+
textWrapper,
|
|
9557
|
+
iconWrapper: iconWrapper$1
|
|
9558
|
+
};
|
|
9559
|
+
const cssModules$q = {
|
|
9560
|
+
"$style": style0$q
|
|
9561
|
+
};
|
|
9562
|
+
const NodeTitle = /* @__PURE__ */ _export_sfc$1(_sfc_main$B, [["__cssModules", cssModules$q]]);
|
|
9563
|
+
const _sfc_main$A = /* @__PURE__ */ defineComponent({
|
|
9564
|
+
__name: "CommunityNodeFooter",
|
|
9565
|
+
props: {
|
|
9566
|
+
packageName: {},
|
|
9567
|
+
showManage: { type: Boolean }
|
|
9568
|
+
},
|
|
9569
|
+
setup(__props) {
|
|
9570
|
+
const props = __props;
|
|
9571
|
+
const router = useRouter();
|
|
9572
|
+
const bugsUrl = ref(`https://registry.npmjs.org/${props.packageName}`);
|
|
9573
|
+
const installedPackage = ref(void 0);
|
|
9574
|
+
async function openSettingsPage() {
|
|
9575
|
+
await router.push({ name: VIEWS.COMMUNITY_NODES });
|
|
9576
|
+
}
|
|
9577
|
+
async function openIssuesPage() {
|
|
9578
|
+
if (bugsUrl.value) {
|
|
9579
|
+
window.open(bugsUrl.value, "_blank");
|
|
9580
|
+
}
|
|
9581
|
+
}
|
|
9582
|
+
async function getBugsUrl(packageName) {
|
|
9583
|
+
const url = `https://registry.npmjs.org/${packageName}`;
|
|
9584
|
+
try {
|
|
9585
|
+
const response = await fetch(url);
|
|
9586
|
+
if (!response.ok) {
|
|
9587
|
+
throw new Error("Could not get metadata for package");
|
|
9588
|
+
}
|
|
9589
|
+
const data = await response.json();
|
|
9590
|
+
if (data.bugs?.url) {
|
|
9591
|
+
bugsUrl.value = data.bugs.url;
|
|
9592
|
+
}
|
|
9593
|
+
} catch (error2) {
|
|
9594
|
+
captureException(error2);
|
|
9595
|
+
}
|
|
9596
|
+
}
|
|
9597
|
+
onMounted(async () => {
|
|
9598
|
+
if (props.packageName) {
|
|
9599
|
+
await getBugsUrl(props.packageName);
|
|
9600
|
+
installedPackage.value = await useCommunityNodesStore().getInstalledPackage(props.packageName);
|
|
9601
|
+
}
|
|
9602
|
+
});
|
|
9603
|
+
return (_ctx, _cache) => {
|
|
9604
|
+
return openBlock(), createElementBlock("div", null, [
|
|
9605
|
+
createBaseVNode("div", {
|
|
9606
|
+
class: normalizeClass(_ctx.$style.separator)
|
|
9607
|
+
}, null, 2),
|
|
9608
|
+
createBaseVNode("div", {
|
|
9609
|
+
class: normalizeClass(_ctx.$style.container)
|
|
9610
|
+
}, [
|
|
9611
|
+
installedPackage.value ? (openBlock(), createBlock(unref(N8nText), {
|
|
9612
|
+
key: 0,
|
|
9613
|
+
size: "small",
|
|
9614
|
+
color: "text-light",
|
|
9615
|
+
style: { "margin-right": "auto" }
|
|
9616
|
+
}, {
|
|
9617
|
+
default: withCtx(() => [
|
|
9618
|
+
createTextVNode(" Package version " + toDisplayString(installedPackage.value.installedVersion) + " (" + toDisplayString(installedPackage.value.updateAvailable ? "Legacy" : "Latest") + ") ", 1)
|
|
9619
|
+
]),
|
|
9620
|
+
_: 1
|
|
9621
|
+
})) : createCommentVNode("", true),
|
|
9622
|
+
props.showManage ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
9623
|
+
createVNode(unref(N8nLink), {
|
|
9624
|
+
theme: "text",
|
|
9625
|
+
onClick: openSettingsPage
|
|
9626
|
+
}, {
|
|
9627
|
+
default: withCtx(() => [
|
|
9628
|
+
createVNode(unref(N8nText), {
|
|
9629
|
+
size: "small",
|
|
9630
|
+
color: "primary",
|
|
9631
|
+
bold: ""
|
|
9632
|
+
}, {
|
|
9633
|
+
default: withCtx(() => _cache[0] || (_cache[0] = [
|
|
9634
|
+
createTextVNode(" Manage ")
|
|
9635
|
+
])),
|
|
9636
|
+
_: 1
|
|
9637
|
+
})
|
|
9638
|
+
]),
|
|
9639
|
+
_: 1
|
|
9640
|
+
}),
|
|
9641
|
+
createVNode(unref(N8nText), {
|
|
9642
|
+
size: "small",
|
|
9643
|
+
style: { "color": "var(--color-foreground-base)" },
|
|
9644
|
+
bold: ""
|
|
9645
|
+
}, {
|
|
9646
|
+
default: withCtx(() => _cache[1] || (_cache[1] = [
|
|
9647
|
+
createTextVNode("|")
|
|
9648
|
+
])),
|
|
9649
|
+
_: 1
|
|
9650
|
+
})
|
|
9651
|
+
], 64)) : createCommentVNode("", true),
|
|
9652
|
+
createVNode(unref(N8nLink), {
|
|
9653
|
+
theme: "text",
|
|
9654
|
+
onClick: openIssuesPage
|
|
9655
|
+
}, {
|
|
9656
|
+
default: withCtx(() => [
|
|
9657
|
+
createVNode(unref(N8nText), {
|
|
9658
|
+
size: "small",
|
|
9659
|
+
color: "primary",
|
|
9660
|
+
bold: ""
|
|
9661
|
+
}, {
|
|
9662
|
+
default: withCtx(() => _cache[2] || (_cache[2] = [
|
|
9663
|
+
createTextVNode(" Report issue ")
|
|
9664
|
+
])),
|
|
9665
|
+
_: 1
|
|
9666
|
+
})
|
|
9667
|
+
]),
|
|
9668
|
+
_: 1
|
|
9669
|
+
})
|
|
9670
|
+
], 2)
|
|
9671
|
+
]);
|
|
9672
|
+
};
|
|
9673
|
+
}
|
|
9674
|
+
});
|
|
9675
|
+
const container$4 = "_container_1lo1n_123";
|
|
9676
|
+
const separator = "_separator_1lo1n_131";
|
|
9677
|
+
const style0$p = {
|
|
9678
|
+
container: container$4,
|
|
9679
|
+
separator
|
|
9680
|
+
};
|
|
9681
|
+
const cssModules$p = {
|
|
9682
|
+
"$style": style0$p
|
|
9683
|
+
};
|
|
9684
|
+
const CommunityNodeFooter = /* @__PURE__ */ _export_sfc$1(_sfc_main$A, [["__cssModules", cssModules$p]]);
|
|
9685
|
+
const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
9686
|
+
__name: "CommunityNodeUpdateInfo",
|
|
9687
|
+
setup(__props) {
|
|
9688
|
+
const noticeStyles = computed(() => {
|
|
9689
|
+
const isDark = useUIStore().appliedTheme === "dark";
|
|
9690
|
+
if (isDark) {
|
|
9691
|
+
return {
|
|
9692
|
+
borderColor: "var(--color-callout-secondary-border)",
|
|
9693
|
+
backgroundColor: "var(--color-callout-secondary-background)",
|
|
9694
|
+
color: "var(--color-callout-secondary-font)"
|
|
9695
|
+
};
|
|
9696
|
+
}
|
|
9697
|
+
return {
|
|
9698
|
+
borderColor: "var(--color-secondary)",
|
|
9699
|
+
backgroundColor: "var(--color-secondary-tint-3)"
|
|
9700
|
+
};
|
|
9701
|
+
});
|
|
9702
|
+
return (_ctx, _cache) => {
|
|
9703
|
+
return openBlock(), createBlock(unref(N8nNotice), {
|
|
9704
|
+
theme: "info",
|
|
9705
|
+
style: normalizeStyle({
|
|
9706
|
+
marginTop: "0",
|
|
9707
|
+
...noticeStyles.value
|
|
9708
|
+
})
|
|
9709
|
+
}, {
|
|
9710
|
+
default: withCtx(() => [
|
|
9711
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("communityNodeUpdateInfo.available")), 1)
|
|
9712
|
+
]),
|
|
9713
|
+
_: 1
|
|
9714
|
+
}, 8, ["style"]);
|
|
9715
|
+
};
|
|
9716
|
+
}
|
|
9717
|
+
});
|
|
9718
|
+
const useNodeDocsUrl = ({
|
|
9719
|
+
nodeType: nodeTypeRef
|
|
9720
|
+
}) => {
|
|
9721
|
+
const packageName = computed(() => toValue(nodeTypeRef)?.name.split(".")[0] ?? "");
|
|
9722
|
+
const isCommunityNode = computed(() => {
|
|
9723
|
+
const nodeType = toValue(nodeTypeRef);
|
|
9724
|
+
if (nodeType) {
|
|
9725
|
+
return isCommunityPackageName(nodeType.name);
|
|
9726
|
+
}
|
|
9727
|
+
return false;
|
|
9728
|
+
});
|
|
9729
|
+
const docsUrl = computed(() => {
|
|
9730
|
+
const nodeType = toValue(nodeTypeRef);
|
|
9731
|
+
if (!nodeType) {
|
|
9732
|
+
return "";
|
|
9733
|
+
}
|
|
9734
|
+
if (nodeType.documentationUrl?.startsWith("http")) {
|
|
9735
|
+
return nodeType.documentationUrl;
|
|
9736
|
+
}
|
|
9737
|
+
const utmParams = new URLSearchParams({
|
|
9738
|
+
utm_source: "n8n_app",
|
|
9739
|
+
utm_medium: "node_settings_modal-credential_link",
|
|
9740
|
+
utm_campaign: nodeType.name
|
|
9741
|
+
});
|
|
9742
|
+
const primaryDocUrl = nodeType.codex?.resources?.primaryDocumentation?.[0]?.url;
|
|
9743
|
+
if (primaryDocUrl) {
|
|
9744
|
+
return `${primaryDocUrl}?${utmParams.toString()}`;
|
|
9745
|
+
}
|
|
9746
|
+
if (isCommunityNode.value) {
|
|
9747
|
+
return `${NPM_PACKAGE_DOCS_BASE_URL}${packageName.value}`;
|
|
9748
|
+
}
|
|
9749
|
+
return `${BUILTIN_NODES_DOCS_URL}?${utmParams.toString()}`;
|
|
9750
|
+
});
|
|
9751
|
+
return { docsUrl };
|
|
9752
|
+
};
|
|
9753
|
+
const _sfc_main$y = /* @__PURE__ */ defineComponent({
|
|
9754
|
+
__name: "NodeSettingsTabs",
|
|
9755
|
+
props: {
|
|
9756
|
+
modelValue: { default: "params" },
|
|
9757
|
+
nodeType: { default: void 0 },
|
|
9758
|
+
pushRef: { default: "" },
|
|
9759
|
+
hideDocs: { type: Boolean }
|
|
9760
|
+
},
|
|
9761
|
+
emits: ["update:model-value"],
|
|
9762
|
+
setup(__props, { emit: __emit }) {
|
|
9763
|
+
const props = __props;
|
|
9764
|
+
const emit = __emit;
|
|
9765
|
+
const externalHooks = useExternalHooks();
|
|
9766
|
+
const ndvStore = useNDVStore();
|
|
9767
|
+
const workflowsStore = useWorkflowsStore();
|
|
9768
|
+
const i18n2 = useI18n();
|
|
9769
|
+
const telemetry = useTelemetry();
|
|
9770
|
+
const { docsUrl } = useNodeDocsUrl({ nodeType: () => props.nodeType });
|
|
9771
|
+
const communityNodesStore = useCommunityNodesStore();
|
|
9772
|
+
const activeNode = computed(() => ndvStore.activeNode);
|
|
9773
|
+
const installedPackage = ref(void 0);
|
|
9774
|
+
const isCommunityNode = computed(() => {
|
|
9775
|
+
const nodeType = props.nodeType;
|
|
8722
9776
|
if (nodeType) {
|
|
8723
9777
|
return isCommunityPackageName(nodeType.name);
|
|
8724
9778
|
}
|
|
@@ -8734,12 +9788,13 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
|
|
|
8734
9788
|
const options = computed(() => {
|
|
8735
9789
|
const options2 = [
|
|
8736
9790
|
{
|
|
8737
|
-
label:
|
|
9791
|
+
label: i18n2.baseText("nodeSettings.parameters"),
|
|
8738
9792
|
value: "params"
|
|
8739
9793
|
},
|
|
8740
9794
|
{
|
|
8741
|
-
label:
|
|
8742
|
-
value: "settings"
|
|
9795
|
+
label: i18n2.baseText("nodeSettings.settings"),
|
|
9796
|
+
value: "settings",
|
|
9797
|
+
notification: installedPackage.value?.updateAvailable ? true : void 0
|
|
8743
9798
|
}
|
|
8744
9799
|
];
|
|
8745
9800
|
if (isCommunityNode.value) {
|
|
@@ -8747,7 +9802,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
|
|
|
8747
9802
|
icon: "box",
|
|
8748
9803
|
value: "communityNode",
|
|
8749
9804
|
align: "right",
|
|
8750
|
-
tooltip:
|
|
9805
|
+
tooltip: i18n2.baseText("generic.communityNode.tooltip", {
|
|
8751
9806
|
interpolate: {
|
|
8752
9807
|
docUrl: COMMUNITY_NODES_INSTALLATION_DOCS_URL,
|
|
8753
9808
|
packageName: packageName.value
|
|
@@ -8757,7 +9812,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
|
|
|
8757
9812
|
}
|
|
8758
9813
|
if (documentationUrl.value) {
|
|
8759
9814
|
options2.push({
|
|
8760
|
-
label:
|
|
9815
|
+
label: i18n2.baseText("nodeSettings.docs"),
|
|
8761
9816
|
value: "docs",
|
|
8762
9817
|
href: documentationUrl.value,
|
|
8763
9818
|
align: "right"
|
|
@@ -8794,6 +9849,11 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
|
|
|
8794
9849
|
telemetry.track("user clicked cnr docs link", { source: "node details view" });
|
|
8795
9850
|
}
|
|
8796
9851
|
}
|
|
9852
|
+
onMounted(async () => {
|
|
9853
|
+
if (isCommunityNode.value && useUsersStore().isInstanceOwner) {
|
|
9854
|
+
installedPackage.value = await communityNodesStore.getInstalledPackage(packageName.value);
|
|
9855
|
+
}
|
|
9856
|
+
});
|
|
8797
9857
|
return (_ctx, _cache) => {
|
|
8798
9858
|
return openBlock(), createBlock(unref(N8nTabs), {
|
|
8799
9859
|
options: options.value,
|
|
@@ -8842,7 +9902,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
|
|
|
8842
9902
|
const clipboard = useClipboard();
|
|
8843
9903
|
const workflowHelpers = useWorkflowHelpers();
|
|
8844
9904
|
const toast = useToast();
|
|
8845
|
-
const
|
|
9905
|
+
const i18n2 = useI18n();
|
|
8846
9906
|
const telemetry = useTelemetry();
|
|
8847
9907
|
const isMinimized = ref(
|
|
8848
9908
|
props.nodeTypeDescription && !OPEN_URL_PANEL_TRIGGER_NODE_TYPES.includes(props.nodeTypeDescription.name)
|
|
@@ -8879,46 +9939,46 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
|
|
|
8879
9939
|
switch (nodeType) {
|
|
8880
9940
|
case CHAT_TRIGGER_NODE_TYPE:
|
|
8881
9941
|
return {
|
|
8882
|
-
toggleTitle:
|
|
8883
|
-
clickToDisplay:
|
|
8884
|
-
clickToHide:
|
|
8885
|
-
clickToCopy:
|
|
8886
|
-
testUrl:
|
|
8887
|
-
productionUrl:
|
|
8888
|
-
copyTitle:
|
|
8889
|
-
copyMessage:
|
|
9942
|
+
toggleTitle: i18n2.baseText("nodeWebhooks.webhookUrls.chatTrigger"),
|
|
9943
|
+
clickToDisplay: i18n2.baseText("nodeWebhooks.clickToDisplayWebhookUrls.formTrigger"),
|
|
9944
|
+
clickToHide: i18n2.baseText("nodeWebhooks.clickToHideWebhookUrls.chatTrigger"),
|
|
9945
|
+
clickToCopy: i18n2.baseText("nodeWebhooks.clickToCopyWebhookUrls.chatTrigger"),
|
|
9946
|
+
testUrl: i18n2.baseText("nodeWebhooks.testUrl"),
|
|
9947
|
+
productionUrl: i18n2.baseText("nodeWebhooks.productionUrl"),
|
|
9948
|
+
copyTitle: i18n2.baseText("nodeWebhooks.showMessage.title.chatTrigger"),
|
|
9949
|
+
copyMessage: i18n2.baseText("nodeWebhooks.showMessage.message.chatTrigger")
|
|
8890
9950
|
};
|
|
8891
9951
|
case FORM_TRIGGER_NODE_TYPE:
|
|
8892
9952
|
return {
|
|
8893
|
-
toggleTitle:
|
|
8894
|
-
clickToDisplay:
|
|
8895
|
-
clickToHide:
|
|
8896
|
-
clickToCopy:
|
|
8897
|
-
testUrl:
|
|
8898
|
-
productionUrl:
|
|
8899
|
-
copyTitle:
|
|
8900
|
-
copyMessage:
|
|
9953
|
+
toggleTitle: i18n2.baseText("nodeWebhooks.webhookUrls.formTrigger"),
|
|
9954
|
+
clickToDisplay: i18n2.baseText("nodeWebhooks.clickToDisplayWebhookUrls.formTrigger"),
|
|
9955
|
+
clickToHide: i18n2.baseText("nodeWebhooks.clickToHideWebhookUrls.formTrigger"),
|
|
9956
|
+
clickToCopy: i18n2.baseText("nodeWebhooks.clickToCopyWebhookUrls.formTrigger"),
|
|
9957
|
+
testUrl: i18n2.baseText("nodeWebhooks.testUrl"),
|
|
9958
|
+
productionUrl: i18n2.baseText("nodeWebhooks.productionUrl"),
|
|
9959
|
+
copyTitle: i18n2.baseText("nodeWebhooks.showMessage.title.formTrigger"),
|
|
9960
|
+
copyMessage: i18n2.baseText("nodeWebhooks.showMessage.message.formTrigger")
|
|
8901
9961
|
};
|
|
8902
9962
|
case MCP_TRIGGER_NODE_TYPE:
|
|
8903
9963
|
return {
|
|
8904
|
-
toggleTitle:
|
|
8905
|
-
clickToDisplay:
|
|
8906
|
-
clickToHide:
|
|
8907
|
-
clickToCopy:
|
|
8908
|
-
testUrl:
|
|
8909
|
-
productionUrl:
|
|
8910
|
-
copyTitle:
|
|
9964
|
+
toggleTitle: i18n2.baseText("nodeWebhooks.webhookUrls.mcpTrigger"),
|
|
9965
|
+
clickToDisplay: i18n2.baseText("nodeWebhooks.clickToDisplayWebhookUrls.mcpTrigger"),
|
|
9966
|
+
clickToHide: i18n2.baseText("nodeWebhooks.clickToHideWebhookUrls.mcpTrigger"),
|
|
9967
|
+
clickToCopy: i18n2.baseText("nodeWebhooks.clickToCopyWebhookUrls.mcpTrigger"),
|
|
9968
|
+
testUrl: i18n2.baseText("nodeWebhooks.testUrl"),
|
|
9969
|
+
productionUrl: i18n2.baseText("nodeWebhooks.productionUrl"),
|
|
9970
|
+
copyTitle: i18n2.baseText("nodeWebhooks.showMessage.title.mcpTrigger"),
|
|
8911
9971
|
copyMessage: void 0
|
|
8912
9972
|
};
|
|
8913
9973
|
default:
|
|
8914
9974
|
return {
|
|
8915
|
-
toggleTitle:
|
|
8916
|
-
clickToDisplay:
|
|
8917
|
-
clickToHide:
|
|
8918
|
-
clickToCopy:
|
|
8919
|
-
testUrl:
|
|
8920
|
-
productionUrl:
|
|
8921
|
-
copyTitle:
|
|
9975
|
+
toggleTitle: i18n2.baseText("nodeWebhooks.webhookUrls"),
|
|
9976
|
+
clickToDisplay: i18n2.baseText("nodeWebhooks.clickToDisplayWebhookUrls"),
|
|
9977
|
+
clickToHide: i18n2.baseText("nodeWebhooks.clickToHideWebhookUrls"),
|
|
9978
|
+
clickToCopy: i18n2.baseText("nodeWebhooks.clickToCopyWebhookUrls"),
|
|
9979
|
+
testUrl: i18n2.baseText("nodeWebhooks.testUrl"),
|
|
9980
|
+
productionUrl: i18n2.baseText("nodeWebhooks.productionUrl"),
|
|
9981
|
+
copyTitle: i18n2.baseText("nodeWebhooks.showMessage.title"),
|
|
8922
9982
|
copyMessage: void 0
|
|
8923
9983
|
};
|
|
8924
9984
|
}
|
|
@@ -9246,7 +10306,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
|
9246
10306
|
const workflowsStore = useWorkflowsStore();
|
|
9247
10307
|
const nodeTypesStore = useNodeTypesStore();
|
|
9248
10308
|
const nodeHelpers = useNodeHelpers();
|
|
9249
|
-
const
|
|
10309
|
+
const i18n2 = useI18n();
|
|
9250
10310
|
const { debounce } = useDebounce();
|
|
9251
10311
|
const emit = __emit;
|
|
9252
10312
|
const possibleConnections = ref([]);
|
|
@@ -9395,7 +10455,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
|
9395
10455
|
showNodeInputsIssues
|
|
9396
10456
|
});
|
|
9397
10457
|
return (_ctx, _cache) => {
|
|
9398
|
-
const _component_n8n_icon_button = _sfc_main$
|
|
10458
|
+
const _component_n8n_icon_button = _sfc_main$Y;
|
|
9399
10459
|
const _component_n8n_tooltip = N8nTooltip;
|
|
9400
10460
|
return possibleConnections.value.length ? (openBlock(), createElementBlock("div", {
|
|
9401
10461
|
key: 0,
|
|
@@ -9453,7 +10513,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
|
9453
10513
|
createTextVNode(" Add " + toDisplayString(connection.displayName) + " ", 1),
|
|
9454
10514
|
hasInputIssues(getConnectionContext(connection, index)) ? (openBlock(), createBlock(TitledList, {
|
|
9455
10515
|
key: 0,
|
|
9456
|
-
title: `${unref(
|
|
10516
|
+
title: `${unref(i18n2).baseText("node.issues")}:`,
|
|
9457
10517
|
items: nodeInputIssues.value[connection.type]
|
|
9458
10518
|
}, null, 8, ["title", "items"])) : createCommentVNode("", true)
|
|
9459
10519
|
]),
|
|
@@ -9495,7 +10555,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
|
9495
10555
|
createTextVNode(toDisplayString(node2.node.name) + " ", 1),
|
|
9496
10556
|
node2.issues ? (openBlock(), createBlock(TitledList, {
|
|
9497
10557
|
key: 0,
|
|
9498
|
-
title: `${unref(
|
|
10558
|
+
title: `${unref(i18n2).baseText("node.issues")}:`,
|
|
9499
10559
|
items: node2.issues
|
|
9500
10560
|
}, null, 8, ["title", "items"])) : createCommentVNode("", true)
|
|
9501
10561
|
]),
|
|
@@ -9504,7 +10564,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
|
9504
10564
|
class: normalizeClass(_ctx.$style.connectedNode),
|
|
9505
10565
|
onClick: ($event) => onNodeClick(node2.node.name, getConnectionContext(connection, index))
|
|
9506
10566
|
}, [
|
|
9507
|
-
createVNode(_sfc_main
|
|
10567
|
+
createVNode(_sfc_main$$, {
|
|
9508
10568
|
"node-type": node2.nodeType,
|
|
9509
10569
|
"node-name": node2.node.name,
|
|
9510
10570
|
"tooltip-position": "top",
|
|
@@ -9589,7 +10649,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
|
|
|
9589
10649
|
class: normalizeClass(_ctx.$style.tabs),
|
|
9590
10650
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("tab-changed", $event))
|
|
9591
10651
|
}, null, 8, ["model-value", "node-type", "push-ref", "class"])) : createCommentVNode("", true),
|
|
9592
|
-
!_ctx.hideExecute ? (openBlock(), createBlock(_sfc_main$
|
|
10652
|
+
!_ctx.hideExecute ? (openBlock(), createBlock(_sfc_main$10, {
|
|
9593
10653
|
key: 1,
|
|
9594
10654
|
"data-test-id": "node-execute-button",
|
|
9595
10655
|
"node-name": _ctx.nodeName,
|
|
@@ -9606,10 +10666,10 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
|
|
|
9606
10666
|
};
|
|
9607
10667
|
}
|
|
9608
10668
|
});
|
|
9609
|
-
const header$
|
|
10669
|
+
const header$1 = "_header_1mro3_123";
|
|
9610
10670
|
const tabs = "_tabs_1mro3_135";
|
|
9611
10671
|
const style0$n = {
|
|
9612
|
-
header: header$
|
|
10672
|
+
header: header$1,
|
|
9613
10673
|
tabs
|
|
9614
10674
|
};
|
|
9615
10675
|
const cssModules$n = {
|
|
@@ -9636,7 +10696,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
9636
10696
|
const ndvStore = useNDVStore();
|
|
9637
10697
|
const projectsStore = useProjectsStore();
|
|
9638
10698
|
const telemetry = useTelemetry();
|
|
9639
|
-
const
|
|
10699
|
+
const i18n2 = useI18n();
|
|
9640
10700
|
const toast = useToast();
|
|
9641
10701
|
const userHasOpenAiCredentialAlready = computed(
|
|
9642
10702
|
() => !!credentialsStore.allCredentials.filter(
|
|
@@ -9664,8 +10724,8 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
9664
10724
|
} catch (e) {
|
|
9665
10725
|
toast.showError(
|
|
9666
10726
|
e,
|
|
9667
|
-
|
|
9668
|
-
|
|
10727
|
+
i18n2.baseText("freeAi.credits.showError.claim.title"),
|
|
10728
|
+
i18n2.baseText("freeAi.credits.showError.claim.message")
|
|
9669
10729
|
);
|
|
9670
10730
|
} finally {
|
|
9671
10731
|
claimingCredits.value = false;
|
|
@@ -9685,13 +10745,13 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
9685
10745
|
createVNode(_component_n8n_button, {
|
|
9686
10746
|
type: "tertiary",
|
|
9687
10747
|
size: "small",
|
|
9688
|
-
label: unref(
|
|
10748
|
+
label: unref(i18n2).baseText("freeAi.credits.callout.claim.button.label"),
|
|
9689
10749
|
loading: claimingCredits.value,
|
|
9690
10750
|
onClick: onClaimCreditsClicked
|
|
9691
10751
|
}, null, 8, ["label", "loading"])
|
|
9692
10752
|
]),
|
|
9693
10753
|
default: withCtx(() => [
|
|
9694
|
-
createTextVNode(toDisplayString(unref(
|
|
10754
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("freeAi.credits.callout.claim.title", {
|
|
9695
10755
|
interpolate: { credits: unref(settingsStore).aiCreditsQuota }
|
|
9696
10756
|
})) + " ", 1)
|
|
9697
10757
|
]),
|
|
@@ -9704,7 +10764,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
9704
10764
|
default: withCtx(() => [
|
|
9705
10765
|
createVNode(_component_n8n_text, { size: "small" }, {
|
|
9706
10766
|
default: withCtx(() => [
|
|
9707
|
-
createTextVNode(toDisplayString(unref(
|
|
10767
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("freeAi.credits.callout.success.title.part1", {
|
|
9708
10768
|
interpolate: { credits: unref(settingsStore).aiCreditsQuota }
|
|
9709
10769
|
})), 1)
|
|
9710
10770
|
]),
|
|
@@ -9716,7 +10776,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
9716
10776
|
bold: true
|
|
9717
10777
|
}, {
|
|
9718
10778
|
default: withCtx(() => [
|
|
9719
|
-
createTextVNode(toDisplayString(unref(
|
|
10779
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("freeAi.credits.callout.success.title.part2")), 1)
|
|
9720
10780
|
]),
|
|
9721
10781
|
_: 1
|
|
9722
10782
|
})
|
|
@@ -9772,6 +10832,18 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
9772
10832
|
const props = __props;
|
|
9773
10833
|
const emit = __emit;
|
|
9774
10834
|
const slots = useSlots();
|
|
10835
|
+
const nodeValues = ref({
|
|
10836
|
+
color: "#ff0000",
|
|
10837
|
+
alwaysOutputData: false,
|
|
10838
|
+
executeOnce: false,
|
|
10839
|
+
notesInFlow: false,
|
|
10840
|
+
onError: "stopWorkflow",
|
|
10841
|
+
retryOnFail: false,
|
|
10842
|
+
maxTries: 3,
|
|
10843
|
+
waitBetweenTries: 1e3,
|
|
10844
|
+
notes: "",
|
|
10845
|
+
parameters: {}
|
|
10846
|
+
});
|
|
9775
10847
|
const nodeTypesStore = useNodeTypesStore();
|
|
9776
10848
|
const ndvStore = useNDVStore();
|
|
9777
10849
|
const workflowsStore = useWorkflowsStore();
|
|
@@ -9781,9 +10853,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
9781
10853
|
const telemetry = useTelemetry();
|
|
9782
10854
|
const nodeHelpers = useNodeHelpers();
|
|
9783
10855
|
const externalHooks = useExternalHooks();
|
|
9784
|
-
const
|
|
10856
|
+
const i18n2 = useI18n();
|
|
9785
10857
|
const nodeSettingsParameters = useNodeSettingsParameters();
|
|
9786
|
-
const nodeValues = nodeSettingsParameters.nodeValues;
|
|
9787
10858
|
const nodeParameterWrapper = useTemplateRef("nodeParameterWrapper");
|
|
9788
10859
|
const shouldShowStaticScrollbar = ref(false);
|
|
9789
10860
|
if (props.isEmbeddedInCanvas) {
|
|
@@ -9797,6 +10868,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
9797
10868
|
const hiddenIssuesInputs = ref([]);
|
|
9798
10869
|
const nodeSettings = ref([]);
|
|
9799
10870
|
const subConnections = ref(null);
|
|
10871
|
+
const installedPackage = ref(void 0);
|
|
9800
10872
|
const currentWorkflowInstance = computed(() => workflowsStore.getCurrentWorkflow());
|
|
9801
10873
|
const currentWorkflow = computed(
|
|
9802
10874
|
() => workflowsStore.getWorkflowById(currentWorkflowInstance.value.id)
|
|
@@ -9827,7 +10899,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
9827
10899
|
);
|
|
9828
10900
|
const executeButtonTooltip = computed(() => {
|
|
9829
10901
|
if (node2.value && isLatestNodeVersion.value && props.inputSize > 1 && !nodeHelpers.isSingleExecution(node2.value.type, node2.value.parameters)) {
|
|
9830
|
-
return
|
|
10902
|
+
return i18n2.baseText("nodeSettings.executeButtonTooltip.times", {
|
|
9831
10903
|
interpolate: { inputSize: props.inputSize }
|
|
9832
10904
|
});
|
|
9833
10905
|
}
|
|
@@ -9835,12 +10907,12 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
9835
10907
|
});
|
|
9836
10908
|
const nodeVersionTag = computed(() => {
|
|
9837
10909
|
if (!nodeType.value || nodeType.value.hidden) {
|
|
9838
|
-
return
|
|
10910
|
+
return i18n2.baseText("nodeSettings.deprecated");
|
|
9839
10911
|
}
|
|
9840
10912
|
if (isLatestNodeVersion.value) {
|
|
9841
|
-
return
|
|
10913
|
+
return i18n2.baseText("nodeSettings.latest");
|
|
9842
10914
|
}
|
|
9843
|
-
return
|
|
10915
|
+
return i18n2.baseText("nodeSettings.latestVersion", {
|
|
9844
10916
|
interpolate: { version: latestVersion.value.toString() }
|
|
9845
10917
|
});
|
|
9846
10918
|
});
|
|
@@ -9863,6 +10935,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
9863
10935
|
);
|
|
9864
10936
|
const outputPanelEditMode = computed(() => ndvStore.outputPanelEditMode);
|
|
9865
10937
|
const isCommunityNode = computed(() => !!node2.value && isCommunityPackageName(node2.value.type));
|
|
10938
|
+
const packageName = computed(() => node2.value?.type.split(".")[0] ?? "");
|
|
9866
10939
|
const usedCredentials = computed(
|
|
9867
10940
|
() => Object.values(workflowsStore.usedCredentials).filter(
|
|
9868
10941
|
(credential) => Object.values(node2.value?.credentials || []).find(
|
|
@@ -9956,7 +11029,11 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
9956
11029
|
);
|
|
9957
11030
|
for (const key of Object.keys(nodeParameters)) {
|
|
9958
11031
|
if (nodeParameters?.[key] !== null && nodeParameters?.[key] !== void 0) {
|
|
9959
|
-
nodeSettingsParameters.setValue(
|
|
11032
|
+
nodeSettingsParameters.setValue(
|
|
11033
|
+
nodeValues,
|
|
11034
|
+
`parameters.${key}`,
|
|
11035
|
+
nodeParameters[key]
|
|
11036
|
+
);
|
|
9960
11037
|
}
|
|
9961
11038
|
}
|
|
9962
11039
|
if (nodeParameters) {
|
|
@@ -9969,7 +11046,13 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
9969
11046
|
nodeHelpers.updateNodeCredentialIssuesByName(_node.name);
|
|
9970
11047
|
}
|
|
9971
11048
|
} else if (nameIsParameter(parameterData)) {
|
|
9972
|
-
nodeSettingsParameters.updateNodeParameter(
|
|
11049
|
+
nodeSettingsParameters.updateNodeParameter(
|
|
11050
|
+
nodeValues,
|
|
11051
|
+
parameterData,
|
|
11052
|
+
newValue,
|
|
11053
|
+
_node,
|
|
11054
|
+
isToolNode.value
|
|
11055
|
+
);
|
|
9973
11056
|
} else {
|
|
9974
11057
|
nodeValues.value = {
|
|
9975
11058
|
...nodeValues.value,
|
|
@@ -10012,31 +11095,34 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10012
11095
|
nodeSettings.value.push(
|
|
10013
11096
|
...[
|
|
10014
11097
|
{
|
|
10015
|
-
displayName:
|
|
11098
|
+
displayName: i18n2.baseText("nodeSettings.alwaysOutputData.displayName"),
|
|
10016
11099
|
name: "alwaysOutputData",
|
|
10017
11100
|
type: "boolean",
|
|
10018
11101
|
default: false,
|
|
10019
11102
|
noDataExpression: true,
|
|
10020
|
-
description:
|
|
11103
|
+
description: i18n2.baseText("nodeSettings.alwaysOutputData.description"),
|
|
11104
|
+
isNodeSetting: true
|
|
10021
11105
|
},
|
|
10022
11106
|
{
|
|
10023
|
-
displayName:
|
|
11107
|
+
displayName: i18n2.baseText("nodeSettings.executeOnce.displayName"),
|
|
10024
11108
|
name: "executeOnce",
|
|
10025
11109
|
type: "boolean",
|
|
10026
11110
|
default: false,
|
|
10027
11111
|
noDataExpression: true,
|
|
10028
|
-
description:
|
|
11112
|
+
description: i18n2.baseText("nodeSettings.executeOnce.description"),
|
|
11113
|
+
isNodeSetting: true
|
|
10029
11114
|
},
|
|
10030
11115
|
{
|
|
10031
|
-
displayName:
|
|
11116
|
+
displayName: i18n2.baseText("nodeSettings.retryOnFail.displayName"),
|
|
10032
11117
|
name: "retryOnFail",
|
|
10033
11118
|
type: "boolean",
|
|
10034
11119
|
default: false,
|
|
10035
11120
|
noDataExpression: true,
|
|
10036
|
-
description:
|
|
11121
|
+
description: i18n2.baseText("nodeSettings.retryOnFail.description"),
|
|
11122
|
+
isNodeSetting: true
|
|
10037
11123
|
},
|
|
10038
11124
|
{
|
|
10039
|
-
displayName:
|
|
11125
|
+
displayName: i18n2.baseText("nodeSettings.maxTries.displayName"),
|
|
10040
11126
|
name: "maxTries",
|
|
10041
11127
|
type: "number",
|
|
10042
11128
|
typeOptions: {
|
|
@@ -10050,10 +11136,11 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10050
11136
|
}
|
|
10051
11137
|
},
|
|
10052
11138
|
noDataExpression: true,
|
|
10053
|
-
description:
|
|
11139
|
+
description: i18n2.baseText("nodeSettings.maxTries.description"),
|
|
11140
|
+
isNodeSetting: true
|
|
10054
11141
|
},
|
|
10055
11142
|
{
|
|
10056
|
-
displayName:
|
|
11143
|
+
displayName: i18n2.baseText("nodeSettings.waitBetweenTries.displayName"),
|
|
10057
11144
|
name: "waitBetweenTries",
|
|
10058
11145
|
type: "number",
|
|
10059
11146
|
typeOptions: {
|
|
@@ -10067,36 +11154,38 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10067
11154
|
}
|
|
10068
11155
|
},
|
|
10069
11156
|
noDataExpression: true,
|
|
10070
|
-
description:
|
|
11157
|
+
description: i18n2.baseText("nodeSettings.waitBetweenTries.description"),
|
|
11158
|
+
isNodeSetting: true
|
|
10071
11159
|
},
|
|
10072
11160
|
{
|
|
10073
|
-
displayName:
|
|
11161
|
+
displayName: i18n2.baseText("nodeSettings.onError.displayName"),
|
|
10074
11162
|
name: "onError",
|
|
10075
11163
|
type: "options",
|
|
10076
11164
|
options: [
|
|
10077
11165
|
{
|
|
10078
|
-
name:
|
|
11166
|
+
name: i18n2.baseText("nodeSettings.onError.options.stopWorkflow.displayName"),
|
|
10079
11167
|
value: "stopWorkflow",
|
|
10080
|
-
description:
|
|
11168
|
+
description: i18n2.baseText("nodeSettings.onError.options.stopWorkflow.description")
|
|
10081
11169
|
},
|
|
10082
11170
|
{
|
|
10083
|
-
name:
|
|
11171
|
+
name: i18n2.baseText("nodeSettings.onError.options.continueRegularOutput.displayName"),
|
|
10084
11172
|
value: "continueRegularOutput",
|
|
10085
|
-
description:
|
|
11173
|
+
description: i18n2.baseText(
|
|
10086
11174
|
"nodeSettings.onError.options.continueRegularOutput.description"
|
|
10087
11175
|
)
|
|
10088
11176
|
},
|
|
10089
11177
|
{
|
|
10090
|
-
name:
|
|
11178
|
+
name: i18n2.baseText("nodeSettings.onError.options.continueErrorOutput.displayName"),
|
|
10091
11179
|
value: "continueErrorOutput",
|
|
10092
|
-
description:
|
|
11180
|
+
description: i18n2.baseText(
|
|
10093
11181
|
"nodeSettings.onError.options.continueErrorOutput.description"
|
|
10094
11182
|
)
|
|
10095
11183
|
}
|
|
10096
11184
|
],
|
|
10097
11185
|
default: "stopWorkflow",
|
|
10098
|
-
description:
|
|
10099
|
-
noDataExpression: true
|
|
11186
|
+
description: i18n2.baseText("nodeSettings.onError.description"),
|
|
11187
|
+
noDataExpression: true,
|
|
11188
|
+
isNodeSetting: true
|
|
10100
11189
|
}
|
|
10101
11190
|
]
|
|
10102
11191
|
);
|
|
@@ -10104,7 +11193,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10104
11193
|
nodeSettings.value.push(
|
|
10105
11194
|
...[
|
|
10106
11195
|
{
|
|
10107
|
-
displayName:
|
|
11196
|
+
displayName: i18n2.baseText("nodeSettings.notes.displayName"),
|
|
10108
11197
|
name: "notes",
|
|
10109
11198
|
type: "string",
|
|
10110
11199
|
typeOptions: {
|
|
@@ -10112,15 +11201,17 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10112
11201
|
},
|
|
10113
11202
|
default: "",
|
|
10114
11203
|
noDataExpression: true,
|
|
10115
|
-
description:
|
|
11204
|
+
description: i18n2.baseText("nodeSettings.notes.description"),
|
|
11205
|
+
isNodeSetting: true
|
|
10116
11206
|
},
|
|
10117
11207
|
{
|
|
10118
|
-
displayName:
|
|
11208
|
+
displayName: i18n2.baseText("nodeSettings.notesInFlow.displayName"),
|
|
10119
11209
|
name: "notesInFlow",
|
|
10120
11210
|
type: "boolean",
|
|
10121
11211
|
default: false,
|
|
10122
11212
|
noDataExpression: true,
|
|
10123
|
-
description:
|
|
11213
|
+
description: i18n2.baseText("nodeSettings.notesInFlow.description"),
|
|
11214
|
+
isNodeSetting: true
|
|
10124
11215
|
}
|
|
10125
11216
|
]
|
|
10126
11217
|
);
|
|
@@ -10287,7 +11378,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10287
11378
|
watch(node2, () => {
|
|
10288
11379
|
setNodeValues();
|
|
10289
11380
|
});
|
|
10290
|
-
onMounted(() => {
|
|
11381
|
+
onMounted(async () => {
|
|
10291
11382
|
populateHiddenIssuesSet();
|
|
10292
11383
|
populateSettings();
|
|
10293
11384
|
setNodeValues();
|
|
@@ -10297,6 +11388,9 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10297
11388
|
}
|
|
10298
11389
|
importCurlEventBus.on("setHttpNodeParameters", setHttpNodeParameters);
|
|
10299
11390
|
ndvEventBus.on("updateParameterValue", valueChanged);
|
|
11391
|
+
if (isCommunityNode.value && useUsersStore().isInstanceOwner) {
|
|
11392
|
+
installedPackage.value = await useCommunityNodesStore().getInstalledPackage(packageName.value);
|
|
11393
|
+
}
|
|
10300
11394
|
});
|
|
10301
11395
|
onBeforeUnmount(() => {
|
|
10302
11396
|
props.eventBus?.off("openSettings", openSettings);
|
|
@@ -10318,11 +11412,12 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10318
11412
|
const _component_NodeTitle = NodeTitle;
|
|
10319
11413
|
const _component_n8n_icon = N8nIcon;
|
|
10320
11414
|
const _component_n8n_text = N8nText;
|
|
10321
|
-
const _component_i18n_t = resolveComponent("i18n-t");
|
|
10322
11415
|
const _component_n8n_link = N8nLink;
|
|
10323
11416
|
const _component_n8n_notice = N8nNotice;
|
|
11417
|
+
const _component_CommunityNodeUpdateInfo = _sfc_main$z;
|
|
10324
11418
|
const _component_N8nIcon = N8nIcon;
|
|
10325
11419
|
const _component_n8n_block_ui = N8nBlockUi;
|
|
11420
|
+
const _component_CommunityNodeFooter = CommunityNodeFooter;
|
|
10326
11421
|
return openBlock(), createElementBlock("div", {
|
|
10327
11422
|
class: normalizeClass({
|
|
10328
11423
|
"node-settings": true,
|
|
@@ -10346,7 +11441,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10346
11441
|
"onUpdate:modelValue": nameChanged
|
|
10347
11442
|
}, null, 8, ["model-value", "node-type", "read-only"])) : createCommentVNode("", true),
|
|
10348
11443
|
isExecutable2.value || slots.actions ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
10349
|
-
isExecutable2.value && !_ctx.blockUI && node2.value && nodeValid.value ? (openBlock(), createBlock(_sfc_main$
|
|
11444
|
+
isExecutable2.value && !_ctx.blockUI && node2.value && nodeValid.value ? (openBlock(), createBlock(_sfc_main$10, {
|
|
10350
11445
|
key: 0,
|
|
10351
11446
|
"data-test-id": "node-execute-button",
|
|
10352
11447
|
"node-name": node2.value.name,
|
|
@@ -10396,7 +11491,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10396
11491
|
bold: ""
|
|
10397
11492
|
}, {
|
|
10398
11493
|
default: withCtx(() => [
|
|
10399
|
-
createTextVNode(toDisplayString(unref(
|
|
11494
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("nodeSettings.communityNodeUnknown.title")), 1)
|
|
10400
11495
|
]),
|
|
10401
11496
|
_: 1
|
|
10402
11497
|
})
|
|
@@ -10406,9 +11501,10 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10406
11501
|
class: normalizeClass(_ctx.$style.descriptionContainer)
|
|
10407
11502
|
}, [
|
|
10408
11503
|
createBaseVNode("div", _hoisted_4, [
|
|
10409
|
-
createVNode(
|
|
11504
|
+
createVNode(unref(I18nT), {
|
|
10410
11505
|
keypath: "nodeSettings.communityNodeUnknown.description",
|
|
10411
11506
|
tag: "span",
|
|
11507
|
+
scope: "global",
|
|
10412
11508
|
onClick: onMissingNodeTextClick
|
|
10413
11509
|
}, {
|
|
10414
11510
|
action: withCtx(() => [
|
|
@@ -10425,20 +11521,21 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10425
11521
|
onClick: onMissingNodeLearnMoreLinkClick
|
|
10426
11522
|
}, {
|
|
10427
11523
|
default: withCtx(() => [
|
|
10428
|
-
createTextVNode(toDisplayString(unref(
|
|
11524
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("nodeSettings.communityNodeUnknown.installLink.text")), 1)
|
|
10429
11525
|
]),
|
|
10430
11526
|
_: 1
|
|
10431
11527
|
}, 8, ["to"])
|
|
10432
|
-
], 2)) : (openBlock(), createBlock(
|
|
11528
|
+
], 2)) : (openBlock(), createBlock(unref(I18nT), {
|
|
10433
11529
|
key: 1,
|
|
10434
11530
|
keypath: "nodeSettings.nodeTypeUnknown.description",
|
|
10435
|
-
tag: "span"
|
|
11531
|
+
tag: "span",
|
|
11532
|
+
scope: "global"
|
|
10436
11533
|
}, {
|
|
10437
11534
|
action: withCtx(() => [
|
|
10438
11535
|
createBaseVNode("a", {
|
|
10439
11536
|
href: unref(CUSTOM_NODES_DOCS_URL),
|
|
10440
11537
|
target: "_blank",
|
|
10441
|
-
textContent: toDisplayString(unref(
|
|
11538
|
+
textContent: toDisplayString(unref(i18n2).baseText("nodeSettings.nodeTypeUnknown.description.customNode"))
|
|
10442
11539
|
}, null, 8, _hoisted_6)
|
|
10443
11540
|
]),
|
|
10444
11541
|
_: 1
|
|
@@ -10459,7 +11556,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10459
11556
|
}, [
|
|
10460
11557
|
hasForeignCredential.value && !isHomeProjectTeam.value ? (openBlock(), createBlock(_component_n8n_notice, {
|
|
10461
11558
|
key: 0,
|
|
10462
|
-
content: unref(
|
|
11559
|
+
content: unref(i18n2).baseText("nodeSettings.hasForeignCredential", {
|
|
10463
11560
|
interpolate: { owner: credentialOwnerName.value }
|
|
10464
11561
|
})
|
|
10465
11562
|
}, null, 8, ["content"])) : createCommentVNode("", true),
|
|
@@ -10469,11 +11566,11 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10469
11566
|
node: node2.value,
|
|
10470
11567
|
"node-type-description": nodeType.value
|
|
10471
11568
|
}, null, 8, ["node", "node-type-description"]),
|
|
10472
|
-
nodeValuesInitialized.value ? (openBlock(), createBlock(_sfc_main$
|
|
11569
|
+
nodeValuesInitialized.value ? (openBlock(), createBlock(_sfc_main$11, {
|
|
10473
11570
|
key: 0,
|
|
10474
11571
|
parameters: parametersNoneSetting.value,
|
|
10475
11572
|
"hide-delete": true,
|
|
10476
|
-
"node-values":
|
|
11573
|
+
"node-values": nodeValues.value,
|
|
10477
11574
|
"is-read-only": isReadOnly.value,
|
|
10478
11575
|
"hidden-issues-inputs": hiddenIssuesInputs.value,
|
|
10479
11576
|
path: "parameters",
|
|
@@ -10499,14 +11596,14 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10499
11596
|
showNoParametersNotice.value ? (openBlock(), createElementBlock("div", _hoisted_7, [
|
|
10500
11597
|
createVNode(_component_n8n_text, null, {
|
|
10501
11598
|
default: withCtx(() => [
|
|
10502
|
-
createTextVNode(toDisplayString(unref(
|
|
11599
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("nodeSettings.thisNodeDoesNotHaveAnyParameters")), 1)
|
|
10503
11600
|
]),
|
|
10504
11601
|
_: 1
|
|
10505
11602
|
})
|
|
10506
11603
|
])) : createCommentVNode("", true),
|
|
10507
|
-
unref(nodeHelpers).isCustomApiCallSelected(
|
|
11604
|
+
unref(nodeHelpers).isCustomApiCallSelected(nodeValues.value) ? (openBlock(), createElementBlock("div", _hoisted_8, [
|
|
10508
11605
|
createVNode(_component_n8n_notice, {
|
|
10509
|
-
content: unref(
|
|
11606
|
+
content: unref(i18n2).baseText("nodeSettings.useTheHttpRequestNode", {
|
|
10510
11607
|
interpolate: { nodeTypeDisplayName: nodeType.value?.displayName ?? "" }
|
|
10511
11608
|
})
|
|
10512
11609
|
}, null, 8, ["content"])
|
|
@@ -10515,9 +11612,13 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10515
11612
|
[vShow, openPanel.value === "params"]
|
|
10516
11613
|
]),
|
|
10517
11614
|
withDirectives(createBaseVNode("div", null, [
|
|
10518
|
-
|
|
11615
|
+
isCommunityNode.value && installedPackage.value?.updateAvailable ? (openBlock(), createBlock(_component_CommunityNodeUpdateInfo, {
|
|
11616
|
+
key: 0,
|
|
11617
|
+
"data-test-id": "update-available"
|
|
11618
|
+
})) : createCommentVNode("", true),
|
|
11619
|
+
createVNode(_sfc_main$11, {
|
|
10519
11620
|
parameters: parametersSetting.value,
|
|
10520
|
-
"node-values":
|
|
11621
|
+
"node-values": nodeValues.value,
|
|
10521
11622
|
"is-read-only": isReadOnly.value,
|
|
10522
11623
|
"hide-delete": true,
|
|
10523
11624
|
"hidden-issues-inputs": hiddenIssuesInputs.value,
|
|
@@ -10525,10 +11626,10 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10525
11626
|
onValueChanged: valueChanged,
|
|
10526
11627
|
onParameterBlur
|
|
10527
11628
|
}, null, 8, ["parameters", "node-values", "is-read-only", "hidden-issues-inputs"]),
|
|
10528
|
-
createVNode(_sfc_main$
|
|
11629
|
+
createVNode(_sfc_main$11, {
|
|
10529
11630
|
parameters: nodeSettings.value,
|
|
10530
11631
|
"hide-delete": true,
|
|
10531
|
-
"node-values":
|
|
11632
|
+
"node-values": nodeValues.value,
|
|
10532
11633
|
"is-read-only": isReadOnly.value,
|
|
10533
11634
|
"hidden-issues-inputs": hiddenIssuesInputs.value,
|
|
10534
11635
|
path: "",
|
|
@@ -10536,7 +11637,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10536
11637
|
onParameterBlur
|
|
10537
11638
|
}, null, 8, ["parameters", "node-values", "is-read-only", "hidden-issues-inputs"]),
|
|
10538
11639
|
createBaseVNode("div", _hoisted_9, [
|
|
10539
|
-
createTextVNode(toDisplayString(unref(
|
|
11640
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("nodeSettings.nodeVersion", {
|
|
10540
11641
|
interpolate: {
|
|
10541
11642
|
node: nodeType.value?.displayName,
|
|
10542
11643
|
version: (node2.value.typeVersion ?? latestVersion.value).toString()
|
|
@@ -10556,7 +11657,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10556
11657
|
onClick: onFeatureRequestClick
|
|
10557
11658
|
}, [
|
|
10558
11659
|
createVNode(_component_N8nIcon, { icon: "lightbulb" }),
|
|
10559
|
-
createTextVNode(" " + toDisplayString(unref(
|
|
11660
|
+
createTextVNode(" " + toDisplayString(unref(i18n2).baseText("ndv.featureRequest")), 1)
|
|
10560
11661
|
])
|
|
10561
11662
|
], 2)) : createCommentVNode("", true)
|
|
10562
11663
|
], 34)) : createCommentVNode("", true),
|
|
@@ -10568,17 +11669,22 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
10568
11669
|
onSwitchSelectedNode,
|
|
10569
11670
|
onOpenConnectionNodeCreator
|
|
10570
11671
|
}, null, 8, ["root-node"])) : createCommentVNode("", true),
|
|
10571
|
-
createVNode(_component_n8n_block_ui, { show: _ctx.blockUI }, null, 8, ["show"])
|
|
11672
|
+
createVNode(_component_n8n_block_ui, { show: _ctx.blockUI }, null, 8, ["show"]),
|
|
11673
|
+
openPanel.value === "settings" && isCommunityNode.value ? (openBlock(), createBlock(_component_CommunityNodeFooter, {
|
|
11674
|
+
key: 5,
|
|
11675
|
+
"package-name": packageName.value,
|
|
11676
|
+
"show-manage": unref(useUsersStore)().isInstanceOwner
|
|
11677
|
+
}, null, 8, ["package-name", "show-manage"])) : createCommentVNode("", true)
|
|
10572
11678
|
], 34);
|
|
10573
11679
|
};
|
|
10574
11680
|
}
|
|
10575
11681
|
});
|
|
10576
|
-
const header
|
|
11682
|
+
const header = "_header_1vh2c_123";
|
|
10577
11683
|
const warningIcon = "_warningIcon_1vh2c_127";
|
|
10578
11684
|
const descriptionContainer = "_descriptionContainer_1vh2c_132";
|
|
10579
11685
|
const featureRequest = "_featureRequest_1vh2c_137";
|
|
10580
11686
|
const style0$m = {
|
|
10581
|
-
header
|
|
11687
|
+
header,
|
|
10582
11688
|
warningIcon,
|
|
10583
11689
|
descriptionContainer,
|
|
10584
11690
|
featureRequest
|
|
@@ -10586,12 +11692,13 @@ const style0$m = {
|
|
|
10586
11692
|
const cssModules$m = {
|
|
10587
11693
|
"$style": style0$m
|
|
10588
11694
|
};
|
|
10589
|
-
const NodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__cssModules", cssModules$m], ["__scopeId", "data-v-
|
|
11695
|
+
const NodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__cssModules", cssModules$m], ["__scopeId", "data-v-b0fee41c"]]);
|
|
10590
11696
|
const _sfc_main$s = /* @__PURE__ */ defineComponent({
|
|
10591
11697
|
__name: "ExperimentalCanvasNodeSettings",
|
|
10592
11698
|
props: {
|
|
10593
11699
|
nodeId: {},
|
|
10594
|
-
noWheel: { type: Boolean }
|
|
11700
|
+
noWheel: { type: Boolean },
|
|
11701
|
+
isReadOnly: { type: Boolean }
|
|
10595
11702
|
},
|
|
10596
11703
|
setup(__props) {
|
|
10597
11704
|
const settingsEventBus = createEventBus();
|
|
@@ -10610,69 +11717,31 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
|
|
|
10610
11717
|
"active-node": activeNode.value,
|
|
10611
11718
|
"push-ref": "",
|
|
10612
11719
|
"foreign-credentials": [],
|
|
10613
|
-
"read-only":
|
|
11720
|
+
"read-only": _ctx.isReadOnly,
|
|
10614
11721
|
"block-u-i": false,
|
|
10615
11722
|
executable: false,
|
|
10616
11723
|
"input-size": 0,
|
|
10617
11724
|
"is-embedded-in-canvas": "",
|
|
10618
11725
|
"no-wheel": _ctx.noWheel,
|
|
10619
11726
|
onValueChanged: handleValueChanged
|
|
10620
|
-
}, {
|
|
10621
|
-
actions: withCtx(() => [
|
|
10622
|
-
renderSlot(_ctx.$slots, "actions")
|
|
10623
|
-
]),
|
|
10624
|
-
_: 3
|
|
10625
|
-
}, 8, ["event-bus", "active-node", "no-wheel"]);
|
|
10626
|
-
};
|
|
10627
|
-
}
|
|
10628
|
-
});
|
|
10629
|
-
const useExperimentalNdvStore = defineStore("experimentalNdv", () => {
|
|
10630
|
-
const workflowStore = useWorkflowsStore();
|
|
10631
|
-
const settingsStore = useSettingsStore();
|
|
10632
|
-
const isEnabled = computed(
|
|
10633
|
-
() => !Number.isNaN(settingsStore.experimental__minZoomNodeSettingsInCanvas) && settingsStore.experimental__minZoomNodeSettingsInCanvas > 0
|
|
10634
|
-
);
|
|
10635
|
-
const maxCanvasZoom = computed(
|
|
10636
|
-
() => isEnabled.value ? settingsStore.experimental__minZoomNodeSettingsInCanvas : 4
|
|
10637
|
-
);
|
|
10638
|
-
const collapsedNodes = shallowRef({});
|
|
10639
|
-
function setNodeExpanded(nodeId, isExpanded) {
|
|
10640
|
-
collapsedNodes.value = {
|
|
10641
|
-
...collapsedNodes.value,
|
|
10642
|
-
[nodeId]: isExpanded ?? !collapsedNodes.value[nodeId]
|
|
10643
|
-
};
|
|
10644
|
-
}
|
|
10645
|
-
function collapseAllNodes() {
|
|
10646
|
-
collapsedNodes.value = workflowStore.allNodes.reduce(
|
|
10647
|
-
(acc, node2) => {
|
|
10648
|
-
acc[node2.id] = true;
|
|
10649
|
-
return acc;
|
|
10650
|
-
},
|
|
10651
|
-
{}
|
|
10652
|
-
);
|
|
10653
|
-
}
|
|
10654
|
-
function expandAllNodes() {
|
|
10655
|
-
collapsedNodes.value = {};
|
|
10656
|
-
}
|
|
10657
|
-
function isActive(canvasZoom) {
|
|
10658
|
-
return isEnabled.value && canvasZoom === maxCanvasZoom.value;
|
|
11727
|
+
}, {
|
|
11728
|
+
actions: withCtx(() => [
|
|
11729
|
+
renderSlot(_ctx.$slots, "actions")
|
|
11730
|
+
]),
|
|
11731
|
+
_: 3
|
|
11732
|
+
}, 8, ["event-bus", "active-node", "read-only", "no-wheel"]);
|
|
11733
|
+
};
|
|
10659
11734
|
}
|
|
10660
|
-
return {
|
|
10661
|
-
isEnabled,
|
|
10662
|
-
maxCanvasZoom,
|
|
10663
|
-
collapsedNodes: computed(() => collapsedNodes.value),
|
|
10664
|
-
isActive,
|
|
10665
|
-
setNodeExpanded,
|
|
10666
|
-
expandAllNodes,
|
|
10667
|
-
collapseAllNodes
|
|
10668
|
-
};
|
|
10669
11735
|
});
|
|
10670
11736
|
const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
10671
11737
|
__name: "ExperimentalEmbeddedNodeDetails",
|
|
10672
11738
|
props: {
|
|
10673
|
-
nodeId: {}
|
|
11739
|
+
nodeId: {},
|
|
11740
|
+
isReadOnly: { type: Boolean },
|
|
11741
|
+
isConfigurable: { type: Boolean }
|
|
10674
11742
|
},
|
|
10675
11743
|
setup(__props) {
|
|
11744
|
+
const ndvStore = useNDVStore();
|
|
10676
11745
|
const experimentalNdvStore = useExperimentalNdvStore();
|
|
10677
11746
|
const isExpanded = computed(() => !experimentalNdvStore.collapsedNodes[__props.nodeId]);
|
|
10678
11747
|
const nodeTypesStore = useNodeTypesStore();
|
|
@@ -10684,7 +11753,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
|
10684
11753
|
}
|
|
10685
11754
|
return null;
|
|
10686
11755
|
});
|
|
10687
|
-
const vf = useVueFlow(
|
|
11756
|
+
const vf = useVueFlow();
|
|
10688
11757
|
const isMoving = ref(false);
|
|
10689
11758
|
const moveStartListener = vf.onMoveStart(() => {
|
|
10690
11759
|
isMoving.value = true;
|
|
@@ -10708,28 +11777,84 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
|
10708
11777
|
)
|
|
10709
11778
|
);
|
|
10710
11779
|
const isOnceVisible = ref(isVisible.value);
|
|
10711
|
-
|
|
10712
|
-
|
|
11780
|
+
const shouldShowInputPanel = ref(false);
|
|
11781
|
+
const containerRef = useTemplateRef("container");
|
|
11782
|
+
const inputPanelContainerRef = useTemplateRef("inputPanelContainer");
|
|
11783
|
+
const activeElement = useActiveElement();
|
|
11784
|
+
const expressionResolveCtx = computed(() => {
|
|
11785
|
+
if (!node2.value) {
|
|
11786
|
+
return void 0;
|
|
11787
|
+
}
|
|
11788
|
+
const runIndex = 0;
|
|
11789
|
+
const execution = workflowsStore.workflowExecutionData;
|
|
11790
|
+
const nodeName = node2.value.name;
|
|
11791
|
+
function findInputNode() {
|
|
11792
|
+
const taskData = (execution?.data?.resultData.runData[nodeName] ?? [])[runIndex];
|
|
11793
|
+
const source = taskData?.source[0];
|
|
11794
|
+
if (source) {
|
|
11795
|
+
return {
|
|
11796
|
+
name: source.previousNode,
|
|
11797
|
+
branchIndex: source.previousNodeOutput ?? 0,
|
|
11798
|
+
runIndex: source.previousNodeRun ?? 0
|
|
11799
|
+
};
|
|
11800
|
+
}
|
|
11801
|
+
const inputs2 = workflow.value.getParentNodesByDepth(nodeName, 1);
|
|
11802
|
+
if (inputs2.length > 0) {
|
|
11803
|
+
return {
|
|
11804
|
+
name: inputs2[0].name,
|
|
11805
|
+
branchIndex: inputs2[0].indicies[0] ?? 0,
|
|
11806
|
+
runIndex: 0
|
|
11807
|
+
};
|
|
11808
|
+
}
|
|
11809
|
+
return void 0;
|
|
11810
|
+
}
|
|
11811
|
+
return {
|
|
11812
|
+
localResolve: true,
|
|
11813
|
+
envVars: useEnvironmentsStore().variablesAsObject,
|
|
11814
|
+
workflow: workflow.value,
|
|
11815
|
+
execution,
|
|
11816
|
+
nodeName,
|
|
11817
|
+
additionalKeys: {},
|
|
11818
|
+
inputNode: findInputNode()
|
|
11819
|
+
};
|
|
10713
11820
|
});
|
|
11821
|
+
const workflow = computed(() => workflowsStore.getCurrentWorkflow());
|
|
10714
11822
|
function handleToggleExpand() {
|
|
10715
11823
|
experimentalNdvStore.setNodeExpanded(__props.nodeId);
|
|
10716
11824
|
}
|
|
11825
|
+
provide(ExpressionLocalResolveContextSymbol, expressionResolveCtx);
|
|
11826
|
+
watchOnce(isVisible, (visible2) => {
|
|
11827
|
+
isOnceVisible.value = isOnceVisible.value || visible2;
|
|
11828
|
+
});
|
|
11829
|
+
watch([activeElement, vf.getSelectedNodes], ([active, selected2]) => {
|
|
11830
|
+
if (active && containerRef.value?.contains(active)) {
|
|
11831
|
+
shouldShowInputPanel.value = !!active.closest("[data-test-id=inline-expression-editor-input]") || !!inputPanelContainerRef.value?.contains(active);
|
|
11832
|
+
}
|
|
11833
|
+
if (selected2.every((sel) => sel.id !== node2.value?.id)) {
|
|
11834
|
+
shouldShowInputPanel.value = false;
|
|
11835
|
+
}
|
|
11836
|
+
});
|
|
10717
11837
|
return (_ctx, _cache) => {
|
|
11838
|
+
const _component_N8nText = N8nText;
|
|
10718
11839
|
return openBlock(), createElementBlock("div", {
|
|
10719
11840
|
ref: "container",
|
|
10720
11841
|
class: normalizeClass([_ctx.$style.component, isExpanded.value ? _ctx.$style.expanded : _ctx.$style.collapsed]),
|
|
10721
|
-
style: normalizeStyle({
|
|
11842
|
+
style: normalizeStyle({
|
|
11843
|
+
"--zoom": `${1 / unref(experimentalNdvStore).maxCanvasZoom}`,
|
|
11844
|
+
"--node-width-scaler": _ctx.isConfigurable ? 1 : 1.5
|
|
11845
|
+
})
|
|
10722
11846
|
}, [
|
|
10723
11847
|
isOnceVisible.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
10724
11848
|
isExpanded.value ? (openBlock(), createBlock(_sfc_main$s, {
|
|
10725
11849
|
key: 0,
|
|
11850
|
+
tabindex: "-1",
|
|
10726
11851
|
"node-id": _ctx.nodeId,
|
|
10727
11852
|
class: normalizeClass(_ctx.$style.settingsView),
|
|
10728
|
-
"no-wheel": !isMoving.value
|
|
10729
|
-
|
|
11853
|
+
"no-wheel": !isMoving.value,
|
|
11854
|
+
"is-read-only": _ctx.isReadOnly
|
|
10730
11855
|
}, {
|
|
10731
11856
|
actions: withCtx(() => [
|
|
10732
|
-
createVNode(unref(_sfc_main$
|
|
11857
|
+
createVNode(unref(_sfc_main$Y), {
|
|
10733
11858
|
icon: "minimize-2",
|
|
10734
11859
|
type: "secondary",
|
|
10735
11860
|
text: "",
|
|
@@ -10740,7 +11865,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
|
10740
11865
|
})
|
|
10741
11866
|
]),
|
|
10742
11867
|
_: 1
|
|
10743
|
-
}, 8, ["node-id", "class", "no-wheel"])) : (openBlock(), createElementBlock("div", {
|
|
11868
|
+
}, 8, ["node-id", "class", "no-wheel", "is-read-only"])) : (openBlock(), createElementBlock("div", {
|
|
10744
11869
|
key: 1,
|
|
10745
11870
|
role: "button ",
|
|
10746
11871
|
class: normalizeClass(_ctx.$style.collapsedContent),
|
|
@@ -10757,35 +11882,81 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
|
10757
11882
|
icon: "maximize-2",
|
|
10758
11883
|
size: "large"
|
|
10759
11884
|
})
|
|
10760
|
-
], 2))
|
|
11885
|
+
], 2)),
|
|
11886
|
+
createVNode(Transition$1, { name: "input" }, {
|
|
11887
|
+
default: withCtx(() => [
|
|
11888
|
+
shouldShowInputPanel.value && node2.value ? (openBlock(), createElementBlock("div", {
|
|
11889
|
+
key: 0,
|
|
11890
|
+
ref: "inputPanelContainer",
|
|
11891
|
+
class: normalizeClass(_ctx.$style.inputPanelContainer),
|
|
11892
|
+
tabindex: -1
|
|
11893
|
+
}, [
|
|
11894
|
+
createVNode(InputPanel, {
|
|
11895
|
+
class: normalizeClass(_ctx.$style.inputPanel),
|
|
11896
|
+
workflow: workflow.value,
|
|
11897
|
+
"run-index": 0,
|
|
11898
|
+
compact: "",
|
|
11899
|
+
"push-ref": "",
|
|
11900
|
+
"display-mode": "schema",
|
|
11901
|
+
"disable-display-mode-selection": "",
|
|
11902
|
+
"active-node-name": node2.value.name,
|
|
11903
|
+
"current-node-name": expressionResolveCtx.value?.inputNode?.name,
|
|
11904
|
+
"is-mapping-onboarded": unref(ndvStore).isMappingOnboarded,
|
|
11905
|
+
"focused-mappable-input": unref(ndvStore).focusedMappableInput
|
|
11906
|
+
}, {
|
|
11907
|
+
header: withCtx(() => [
|
|
11908
|
+
createVNode(_component_N8nText, {
|
|
11909
|
+
class: normalizeClass(_ctx.$style.inputPanelTitle),
|
|
11910
|
+
bold: true,
|
|
11911
|
+
color: "text-light",
|
|
11912
|
+
size: "small"
|
|
11913
|
+
}, {
|
|
11914
|
+
default: withCtx(() => _cache[0] || (_cache[0] = [
|
|
11915
|
+
createTextVNode(" Input ")
|
|
11916
|
+
])),
|
|
11917
|
+
_: 1
|
|
11918
|
+
}, 8, ["class"])
|
|
11919
|
+
]),
|
|
11920
|
+
_: 1
|
|
11921
|
+
}, 8, ["class", "workflow", "active-node-name", "current-node-name", "is-mapping-onboarded", "focused-mappable-input"])
|
|
11922
|
+
], 2)) : createCommentVNode("", true)
|
|
11923
|
+
]),
|
|
11924
|
+
_: 1
|
|
11925
|
+
})
|
|
10761
11926
|
], 64)) : createCommentVNode("", true)
|
|
10762
11927
|
], 6);
|
|
10763
11928
|
};
|
|
10764
11929
|
}
|
|
10765
11930
|
});
|
|
10766
|
-
const component$2 = "
|
|
10767
|
-
const expanded = "
|
|
10768
|
-
const collapsed = "
|
|
10769
|
-
const collapsedContent = "
|
|
10770
|
-
const settingsView = "
|
|
11931
|
+
const component$2 = "_component_1fv8q_123";
|
|
11932
|
+
const expanded = "_expanded_1fv8q_131";
|
|
11933
|
+
const collapsed = "_collapsed_1fv8q_137";
|
|
11934
|
+
const collapsedContent = "_collapsedContent_1fv8q_149";
|
|
11935
|
+
const settingsView = "_settingsView_1fv8q_150";
|
|
11936
|
+
const inputPanelContainer = "_inputPanelContainer_1fv8q_179";
|
|
11937
|
+
const inputPanel = "_inputPanel_1fv8q_179";
|
|
11938
|
+
const inputPanelTitle = "_inputPanelTitle_1fv8q_201";
|
|
10771
11939
|
const style0$l = {
|
|
10772
11940
|
component: component$2,
|
|
10773
11941
|
expanded,
|
|
10774
11942
|
collapsed,
|
|
10775
11943
|
collapsedContent,
|
|
10776
|
-
settingsView
|
|
11944
|
+
settingsView,
|
|
11945
|
+
inputPanelContainer,
|
|
11946
|
+
inputPanel,
|
|
11947
|
+
inputPanelTitle
|
|
10777
11948
|
};
|
|
10778
11949
|
const cssModules$l = {
|
|
10779
11950
|
"$style": style0$l
|
|
10780
11951
|
};
|
|
10781
|
-
const ExperimentalInPlaceNodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$r, [["__cssModules", cssModules$l]]);
|
|
11952
|
+
const ExperimentalInPlaceNodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$r, [["__cssModules", cssModules$l], ["__scopeId", "data-v-7a0aa493"]]);
|
|
10782
11953
|
const _hoisted_1$3 = ["data-test-id"];
|
|
10783
11954
|
const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
10784
11955
|
__name: "CanvasNodeDefault",
|
|
10785
11956
|
emits: ["open:contextmenu", "activate"],
|
|
10786
11957
|
setup(__props, { emit: __emit }) {
|
|
10787
11958
|
const $style = useCssModule();
|
|
10788
|
-
const
|
|
11959
|
+
const i18n2 = useI18n();
|
|
10789
11960
|
const emit = __emit;
|
|
10790
11961
|
const { initialized, viewport } = useCanvas();
|
|
10791
11962
|
const {
|
|
@@ -10796,6 +11967,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
10796
11967
|
outputs,
|
|
10797
11968
|
connections: connections2,
|
|
10798
11969
|
isDisabled,
|
|
11970
|
+
isReadOnly,
|
|
10799
11971
|
isSelected,
|
|
10800
11972
|
hasPinnedData,
|
|
10801
11973
|
executionStatus,
|
|
@@ -10881,15 +12053,17 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
10881
12053
|
}
|
|
10882
12054
|
return (_ctx, _cache) => {
|
|
10883
12055
|
const _component_CanvasNodeTooltip = __unplugin_components_0$3;
|
|
10884
|
-
const _component_NodeIcon = _sfc_main
|
|
10885
|
-
const _component_CanvasNodeDisabledStrikeThrough = __unplugin_components_2;
|
|
12056
|
+
const _component_NodeIcon = _sfc_main$$;
|
|
12057
|
+
const _component_CanvasNodeDisabledStrikeThrough = __unplugin_components_2$1;
|
|
10886
12058
|
const _component_CanvasNodeStatusIcons = __unplugin_components_3;
|
|
10887
12059
|
return unref(experimentalNdvStore).isActive(unref(viewport).zoom) ? (openBlock(), createBlock(ExperimentalInPlaceNodeSettings, {
|
|
10888
12060
|
key: 0,
|
|
10889
12061
|
"node-id": unref(id2),
|
|
10890
12062
|
class: normalizeClass(classes.value),
|
|
10891
|
-
style: normalizeStyle(styles.value)
|
|
10892
|
-
|
|
12063
|
+
style: normalizeStyle(styles.value),
|
|
12064
|
+
"is-read-only": unref(isReadOnly),
|
|
12065
|
+
"is-configurable": renderOptions.value.configurable ?? false
|
|
12066
|
+
}, null, 8, ["node-id", "class", "style", "is-read-only", "is-configurable"])) : (openBlock(), createElementBlock("div", {
|
|
10893
12067
|
key: 1,
|
|
10894
12068
|
class: normalizeClass(classes.value),
|
|
10895
12069
|
style: normalizeStyle(styles.value),
|
|
@@ -10919,7 +12093,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
10919
12093
|
unref(isDisabled) ? (openBlock(), createElementBlock("div", {
|
|
10920
12094
|
key: 1,
|
|
10921
12095
|
class: normalizeClass(unref($style).disabledLabel)
|
|
10922
|
-
}, " (" + toDisplayString(unref(
|
|
12096
|
+
}, " (" + toDisplayString(unref(i18n2).baseText("node.disabled")) + ") ", 3)) : createCommentVNode("", true),
|
|
10923
12097
|
unref(subtitle2) ? (openBlock(), createElementBlock("div", {
|
|
10924
12098
|
key: 2,
|
|
10925
12099
|
class: normalizeClass(unref($style).subtitle)
|
|
@@ -12465,7 +13639,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
|
12465
13639
|
__name: "CanvasNodeAddNodes",
|
|
12466
13640
|
setup(__props) {
|
|
12467
13641
|
const nodeCreatorStore = useNodeCreatorStore();
|
|
12468
|
-
const
|
|
13642
|
+
const i18n2 = useI18n();
|
|
12469
13643
|
const settingsStore = useSettingsStore();
|
|
12470
13644
|
const templatesStore = useTemplatesStore();
|
|
12471
13645
|
const isTooltipVisible = ref(false);
|
|
@@ -12519,7 +13693,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
|
12519
13693
|
"show-after": 700
|
|
12520
13694
|
}, {
|
|
12521
13695
|
content: withCtx(() => [
|
|
12522
|
-
createTextVNode(toDisplayString(unref(
|
|
13696
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("nodeView.canvasAddButton.addATriggerNodeBeforeExecuting")), 1)
|
|
12523
13697
|
]),
|
|
12524
13698
|
default: withCtx(() => [
|
|
12525
13699
|
createBaseVNode("button", {
|
|
@@ -12539,7 +13713,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
|
12539
13713
|
createBaseVNode("p", {
|
|
12540
13714
|
class: normalizeClass(_ctx.$style.label)
|
|
12541
13715
|
}, [
|
|
12542
|
-
createTextVNode(toDisplayString(unref(
|
|
13716
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("nodeView.canvasAddButton.addFirstStep")) + " ", 1),
|
|
12543
13717
|
templatesLinkEnabled.value ? (openBlock(), createBlock(_component_N8nLink, {
|
|
12544
13718
|
key: 0,
|
|
12545
13719
|
to: templateRepository.value.to,
|
|
@@ -12550,7 +13724,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
|
12550
13724
|
onClick: _cache[0] || (_cache[0] = ($event) => unref(trackTemplatesClick)(unref(TemplateClickSource).emptyWorkflowLink))
|
|
12551
13725
|
}, {
|
|
12552
13726
|
default: withCtx(() => [
|
|
12553
|
-
createTextVNode(toDisplayString(unref(
|
|
13727
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("nodeView.templateLink")), 1)
|
|
12554
13728
|
]),
|
|
12555
13729
|
_: 1
|
|
12556
13730
|
}, 8, ["to", "target"])) : createCommentVNode("", true)
|
|
@@ -12576,17 +13750,24 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
12576
13750
|
emits: ["delete"],
|
|
12577
13751
|
setup(__props, { emit: __emit }) {
|
|
12578
13752
|
const emit = __emit;
|
|
12579
|
-
const
|
|
13753
|
+
const i18n2 = useI18n();
|
|
13754
|
+
const router = useRouter();
|
|
12580
13755
|
const { id: id2 } = useCanvasNode();
|
|
12581
13756
|
const builderStore = useBuilderStore();
|
|
13757
|
+
const workflowsStore = useWorkflowsStore();
|
|
13758
|
+
const workflowSaver = useWorkflowSaving({ router });
|
|
12582
13759
|
const isPromptVisible = ref(true);
|
|
12583
13760
|
const isFocused = ref(false);
|
|
12584
13761
|
const prompt = ref("");
|
|
12585
13762
|
const hasContent = computed(() => prompt.value.trim().length > 0);
|
|
12586
13763
|
async function onSubmit() {
|
|
12587
|
-
|
|
13764
|
+
const isNewWorkflow = workflowsStore.isNewWorkflow;
|
|
13765
|
+
if (isNewWorkflow) {
|
|
13766
|
+
await workflowSaver.saveCurrentWorkflow();
|
|
13767
|
+
}
|
|
13768
|
+
await builderStore.openChat();
|
|
12588
13769
|
emit("delete", id2.value);
|
|
12589
|
-
|
|
13770
|
+
builderStore.sendChatMessage({ text: prompt.value, source: "canvas" });
|
|
12590
13771
|
isPromptVisible.value = false;
|
|
12591
13772
|
}
|
|
12592
13773
|
return (_ctx, _cache) => {
|
|
@@ -12610,7 +13791,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
12610
13791
|
class: normalizeClass(_ctx.$style.form_textarea),
|
|
12611
13792
|
type: "textarea",
|
|
12612
13793
|
disabled: unref(builderStore).streaming,
|
|
12613
|
-
placeholder: unref(
|
|
13794
|
+
placeholder: unref(i18n2).baseText("aiAssistant.builder.placeholder"),
|
|
12614
13795
|
"read-only": false,
|
|
12615
13796
|
rows: 15,
|
|
12616
13797
|
onFocus: _cache[1] || (_cache[1] = ($event) => isFocused.value = true),
|
|
@@ -12626,7 +13807,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
12626
13807
|
onKeydown: withKeys(onSubmit, ["enter"])
|
|
12627
13808
|
}, {
|
|
12628
13809
|
default: withCtx(() => [
|
|
12629
|
-
createTextVNode(toDisplayString(unref(
|
|
13810
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("aiAssistant.builder.buildWorkflow")), 1)
|
|
12630
13811
|
]),
|
|
12631
13812
|
_: 1
|
|
12632
13813
|
}, 8, ["disabled"])
|
|
@@ -12904,13 +14085,13 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
12904
14085
|
};
|
|
12905
14086
|
}
|
|
12906
14087
|
});
|
|
12907
|
-
const wrapper$
|
|
14088
|
+
const wrapper$3 = "_wrapper_hyidj_123";
|
|
12908
14089
|
const secondary = "_secondary_hyidj_126";
|
|
12909
14090
|
const line = "_line_hyidj_126";
|
|
12910
14091
|
const plus$1 = "_plus_hyidj_129";
|
|
12911
14092
|
const success = "_success_hyidj_135";
|
|
12912
14093
|
const style0$e = {
|
|
12913
|
-
wrapper: wrapper$
|
|
14094
|
+
wrapper: wrapper$3,
|
|
12914
14095
|
secondary,
|
|
12915
14096
|
line,
|
|
12916
14097
|
plus: plus$1,
|
|
@@ -12948,7 +14129,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
12948
14129
|
setup(__props, { emit: __emit }) {
|
|
12949
14130
|
const emit = __emit;
|
|
12950
14131
|
const $style = useCssModule();
|
|
12951
|
-
const
|
|
14132
|
+
const i18n2 = useI18n();
|
|
12952
14133
|
const { render: render2 } = useCanvasNode();
|
|
12953
14134
|
const { label: label2, isConnected, isConnecting, isReadOnly, isRequired, runData: runData2 } = useCanvasNodeHandle();
|
|
12954
14135
|
const classes = computed(() => ({
|
|
@@ -12961,7 +14142,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
12961
14142
|
const renderOptions = computed(() => render2.value.options);
|
|
12962
14143
|
const runDataTotal = computed(() => runData2.value?.total ?? 0);
|
|
12963
14144
|
const runDataLabel2 = computed(
|
|
12964
|
-
() => !isConnected.value && runData2.value && runData2.value.total > 0 ?
|
|
14145
|
+
() => !isConnected.value && runData2.value && runData2.value.total > 0 ? i18n2.baseText("ndv.output.items", {
|
|
12965
14146
|
adjustToNumber: runData2.value.total,
|
|
12966
14147
|
interpolate: { count: String(runData2.value.total) }
|
|
12967
14148
|
}) : ""
|
|
@@ -13329,7 +14510,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
13329
14510
|
[style.hovered]: !!__props.hovered
|
|
13330
14511
|
}));
|
|
13331
14512
|
const router = useRouter();
|
|
13332
|
-
const
|
|
14513
|
+
const i18n2 = useI18n();
|
|
13333
14514
|
const workflowsStore = useWorkflowsStore();
|
|
13334
14515
|
const logsStore = useLogsStore();
|
|
13335
14516
|
const { runEntireWorkflow } = useRunWorkflow({ router });
|
|
@@ -13368,11 +14549,11 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
13368
14549
|
size: "large",
|
|
13369
14550
|
disabled: isExecuting.value,
|
|
13370
14551
|
"data-test-id": testId.value,
|
|
13371
|
-
label: unref(
|
|
14552
|
+
label: unref(i18n2).baseText("chat.hide"),
|
|
13372
14553
|
onClickCapture: _cache[0] || (_cache[0] = ($event) => unref(logsStore).toggleOpen(false))
|
|
13373
14554
|
}, null, 8, ["disabled", "data-test-id", "label"])) : (openBlock(), createBlock(KeyboardShortcutTooltip, {
|
|
13374
14555
|
key: 1,
|
|
13375
|
-
label: unref(
|
|
14556
|
+
label: unref(i18n2).baseText("chat.open"),
|
|
13376
14557
|
shortcut: { keys: ["c"] }
|
|
13377
14558
|
}, {
|
|
13378
14559
|
default: withCtx(() => [
|
|
@@ -13382,7 +14563,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
13382
14563
|
size: "large",
|
|
13383
14564
|
disabled: isExecuting.value,
|
|
13384
14565
|
"data-test-id": testId.value,
|
|
13385
|
-
label: unref(
|
|
14566
|
+
label: unref(i18n2).baseText("chat.open"),
|
|
13386
14567
|
onClickCapture: _cache[1] || (_cache[1] = ($event) => unref(startChat)("node"))
|
|
13387
14568
|
}, null, 8, ["disabled", "data-test-id", "label"])
|
|
13388
14569
|
]),
|
|
@@ -13395,7 +14576,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
13395
14576
|
size: "large",
|
|
13396
14577
|
disabled: isExecuting.value,
|
|
13397
14578
|
"data-test-id": testId.value,
|
|
13398
|
-
label: unref(
|
|
14579
|
+
label: unref(i18n2).baseText("nodeView.runButtonText.executeWorkflow"),
|
|
13399
14580
|
onClickCapture: handleClickExecute
|
|
13400
14581
|
}, null, 8, ["disabled", "data-test-id", "label"]))
|
|
13401
14582
|
], 64)) : createCommentVNode("", true)
|
|
@@ -13453,7 +14634,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
13453
14634
|
const style = useCssModule();
|
|
13454
14635
|
const props = __props;
|
|
13455
14636
|
const contextMenu2 = useContextMenu();
|
|
13456
|
-
const { connectingHandle } = useCanvas();
|
|
14637
|
+
const { connectingHandle, viewport } = useCanvas();
|
|
14638
|
+
const experimentalNdvStore = useExperimentalNdvStore();
|
|
13457
14639
|
const nodeClasses = ref([]);
|
|
13458
14640
|
const inputs2 = computed(() => props.data.inputs);
|
|
13459
14641
|
const outputs = computed(() => props.data.outputs);
|
|
@@ -13471,6 +14653,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
13471
14653
|
connections: connections2
|
|
13472
14654
|
});
|
|
13473
14655
|
const isDisabled = computed(() => props.data.disabled);
|
|
14656
|
+
const isExperimentalEmbeddedNdvShown = computed(
|
|
14657
|
+
() => experimentalNdvStore.isActive(viewport.value.zoom)
|
|
14658
|
+
);
|
|
13474
14659
|
const classes = computed(() => ({
|
|
13475
14660
|
[style.canvasNode]: true,
|
|
13476
14661
|
[style.showToolbar]: showToolbar2.value,
|
|
@@ -13519,7 +14704,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
13519
14704
|
const handleType = mode === CanvasConnectionMode.Input ? "target" : "source";
|
|
13520
14705
|
const connectionsCount = connections2.value[mode][endpoint.type]?.[endpoint.index]?.length ?? 0;
|
|
13521
14706
|
const isConnecting = connectingHandle.value?.nodeId === props.id && connectingHandle.value?.handleType === handleType && connectingHandle.value?.handleId === handleId;
|
|
13522
|
-
const offsetValue = position2 === Position.Bottom ? `${GRID_SIZE * 2 * (1 + index * 2) + CONFIGURATION_NODE_OFFSET}px` : `${100 / (endpoints.length + 1) * (index + 1)}%`;
|
|
14707
|
+
const offsetValue = position2 === Position.Bottom ? `${GRID_SIZE * 2 * (1 + index * 2) + CONFIGURATION_NODE_OFFSET}px` : isExperimentalEmbeddedNdvShown.value && endpoints.length === 1 ? `${(1 + index) * (GRID_SIZE * 2)}px` : `${100 / (endpoints.length + 1) * (index + 1)}%`;
|
|
13523
14708
|
return {
|
|
13524
14709
|
...endpoint,
|
|
13525
14710
|
handleId,
|
|
@@ -14209,6 +15394,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
14209
15394
|
}
|
|
14210
15395
|
}
|
|
14211
15396
|
async function onTidyUp(payload) {
|
|
15397
|
+
if (payload.nodeIdsFilter && payload.nodeIdsFilter.length > 0) {
|
|
15398
|
+
clearSelectedNodes();
|
|
15399
|
+
addSelectedNodes(payload.nodeIdsFilter.map(findNode).filter(isPresent));
|
|
15400
|
+
}
|
|
14212
15401
|
const applyOnSelection = selectedNodes.value.length > 1;
|
|
14213
15402
|
const target2 = applyOnSelection ? "selection" : "all";
|
|
14214
15403
|
const result = layout(target2);
|
|
@@ -14376,14 +15565,14 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
14376
15565
|
createVNode(_component_CanvasConnectionLine, normalizeProps(guardReactiveProps(connectionLineProps)), null, 16)
|
|
14377
15566
|
]),
|
|
14378
15567
|
default: withCtx(() => [
|
|
14379
|
-
createVNode(_sfc_main$
|
|
14380
|
-
createVNode(_sfc_main$
|
|
15568
|
+
createVNode(_sfc_main$N, { id: arrowHeadMarkerId.value }, null, 8, ["id"]),
|
|
15569
|
+
createVNode(_sfc_main$O, {
|
|
14381
15570
|
viewport: unref(viewport),
|
|
14382
15571
|
striped: _ctx.readOnly
|
|
14383
15572
|
}, null, 8, ["viewport", "striped"]),
|
|
14384
15573
|
createVNode(Transition$1, { name: "minimap" }, {
|
|
14385
15574
|
default: withCtx(() => [
|
|
14386
|
-
withDirectives(createVNode(unref(_sfc_main$
|
|
15575
|
+
withDirectives(createVNode(unref(_sfc_main$R), {
|
|
14387
15576
|
"data-test-id": "canvas-minimap",
|
|
14388
15577
|
"aria-label": "n8n Minimap",
|
|
14389
15578
|
height: 120,
|
|
@@ -14435,13 +15624,13 @@ const style0$5 = {
|
|
|
14435
15624
|
const cssModules$5 = {
|
|
14436
15625
|
"$style": style0$5
|
|
14437
15626
|
};
|
|
14438
|
-
const Canvas = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__cssModules", cssModules$5], ["__scopeId", "data-v-
|
|
15627
|
+
const Canvas = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__cssModules", cssModules$5], ["__scopeId", "data-v-5ad26715"]]);
|
|
14439
15628
|
function useCanvasMapping({
|
|
14440
15629
|
nodes,
|
|
14441
15630
|
connections: connections2,
|
|
14442
15631
|
workflowObject
|
|
14443
15632
|
}) {
|
|
14444
|
-
const
|
|
15633
|
+
const i18n2 = useI18n();
|
|
14445
15634
|
const workflowsStore = useWorkflowsStore();
|
|
14446
15635
|
const nodeTypesStore = useNodeTypesStore();
|
|
14447
15636
|
const nodeHelpers = useNodeHelpers();
|
|
@@ -14627,11 +15816,11 @@ function useCanvasMapping({
|
|
|
14627
15816
|
return acc;
|
|
14628
15817
|
}
|
|
14629
15818
|
if ("eventTriggerDescription" in nodeTypeDescription) {
|
|
14630
|
-
const nodeName =
|
|
15819
|
+
const nodeName = i18n2.shortNodeType(nodeTypeDescription.name);
|
|
14631
15820
|
const { eventTriggerDescription } = nodeTypeDescription;
|
|
14632
|
-
acc[node2.id] =
|
|
15821
|
+
acc[node2.id] = i18n2.nodeText(nodeTypeDescription.name).eventTriggerDescription(nodeName, eventTriggerDescription ?? "");
|
|
14633
15822
|
} else {
|
|
14634
|
-
acc[node2.id] =
|
|
15823
|
+
acc[node2.id] = i18n2.baseText("node.waitingForYouToCreateAnEventIn", {
|
|
14635
15824
|
interpolate: {
|
|
14636
15825
|
nodeType: nodeTypeDescription ? getTriggerNodeServiceName(nodeTypeDescription) : ""
|
|
14637
15826
|
}
|
|
@@ -14733,24 +15922,24 @@ function useCanvasMapping({
|
|
|
14733
15922
|
if (workflowExecution && lastNodeExecuted && isExecutionSummary(workflowExecution)) {
|
|
14734
15923
|
if (node2.name === workflowExecution.data?.resultData?.lastNodeExecuted && workflowExecution?.waitTill && !workflowExecution?.finished) {
|
|
14735
15924
|
if (node2 && node2.type === WAIT_NODE_TYPE && ["webhook", "form"].includes(node2.parameters.resume)) {
|
|
14736
|
-
acc[node2.id] = node2.parameters.resume === "webhook" ?
|
|
15925
|
+
acc[node2.id] = node2.parameters.resume === "webhook" ? i18n2.baseText("node.theNodeIsWaitingWebhookCall") : i18n2.baseText("node.theNodeIsWaitingFormCall");
|
|
14737
15926
|
return acc;
|
|
14738
15927
|
}
|
|
14739
15928
|
if (node2?.parameters.operation === SEND_AND_WAIT_OPERATION) {
|
|
14740
|
-
acc[node2.id] =
|
|
15929
|
+
acc[node2.id] = i18n2.baseText("node.theNodeIsWaitingUserInput");
|
|
14741
15930
|
return acc;
|
|
14742
15931
|
}
|
|
14743
15932
|
if (node2?.type === FORM_NODE_TYPE) {
|
|
14744
|
-
acc[node2.id] =
|
|
15933
|
+
acc[node2.id] = i18n2.baseText("node.theNodeIsWaitingFormCall");
|
|
14745
15934
|
return acc;
|
|
14746
15935
|
}
|
|
14747
15936
|
const waitDate = new Date(workflowExecution.waitTill);
|
|
14748
15937
|
if (waitDate.getTime() === WAIT_INDEFINITELY.getTime()) {
|
|
14749
|
-
acc[node2.id] =
|
|
15938
|
+
acc[node2.id] = i18n2.baseText(
|
|
14750
15939
|
"node.theNodeIsWaitingIndefinitelyForAnIncomingWebhookCall"
|
|
14751
15940
|
);
|
|
14752
15941
|
}
|
|
14753
|
-
acc[node2.id] =
|
|
15942
|
+
acc[node2.id] = i18n2.baseText("node.nodeIsWaitingTill", {
|
|
14754
15943
|
interpolate: {
|
|
14755
15944
|
date: waitDate.toLocaleDateString(),
|
|
14756
15945
|
time: waitDate.toLocaleTimeString()
|
|
@@ -14929,14 +16118,14 @@ function useCanvasMapping({
|
|
|
14929
16118
|
}
|
|
14930
16119
|
if (nodePinnedDataById.value[fromNode.id]) {
|
|
14931
16120
|
const pinnedDataCount = nodePinnedDataById.value[fromNode.id]?.length ?? 0;
|
|
14932
|
-
return pinnedDataCount > 0 ?
|
|
16121
|
+
return pinnedDataCount > 0 ? i18n2.baseText("ndv.output.items", {
|
|
14933
16122
|
adjustToNumber: pinnedDataCount,
|
|
14934
16123
|
interpolate: { count: String(pinnedDataCount) }
|
|
14935
16124
|
}) : "";
|
|
14936
16125
|
} else if (nodeExecutionRunDataById.value[fromNode.id]) {
|
|
14937
16126
|
const { type, index } = parseCanvasConnectionHandleString(connection.sourceHandle);
|
|
14938
16127
|
const runDataTotal = nodeExecutionRunDataOutputMapById.value[fromNode.id]?.[type]?.[index]?.total ?? 0;
|
|
14939
|
-
return runDataTotal > 0 ?
|
|
16128
|
+
return runDataTotal > 0 ? i18n2.baseText("ndv.output.items", {
|
|
14940
16129
|
adjustToNumber: runDataTotal,
|
|
14941
16130
|
interpolate: { count: String(runDataTotal) }
|
|
14942
16131
|
}) : "";
|
|
@@ -14979,7 +16168,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
14979
16168
|
{ immediate: true }
|
|
14980
16169
|
);
|
|
14981
16170
|
return (_ctx, _cache) => {
|
|
14982
|
-
const _component_N8nIconButton = _sfc_main$
|
|
16171
|
+
const _component_N8nIconButton = _sfc_main$Y;
|
|
14983
16172
|
return openBlock(), createElementBlock("div", {
|
|
14984
16173
|
class: normalizeClass([_ctx.$style.component, content2.value === void 0 ? _ctx.$style.closed : ""])
|
|
14985
16174
|
}, [
|
|
@@ -15089,225 +16278,591 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
15089
16278
|
};
|
|
15090
16279
|
}
|
|
15091
16280
|
});
|
|
15092
|
-
const wrapper$
|
|
16281
|
+
const wrapper$2 = "_wrapper_jyurh_123";
|
|
15093
16282
|
const canvas = "_canvas_jyurh_131";
|
|
15094
16283
|
const style0$3 = {
|
|
15095
|
-
wrapper: wrapper$
|
|
16284
|
+
wrapper: wrapper$2,
|
|
15096
16285
|
canvas
|
|
15097
16286
|
};
|
|
15098
16287
|
const cssModules$3 = {
|
|
15099
16288
|
"$style": style0$3
|
|
15100
16289
|
};
|
|
15101
16290
|
const WorkflowCanvas = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["__cssModules", cssModules$3]]);
|
|
16291
|
+
function useExecutionData({ node: node2 }) {
|
|
16292
|
+
const workflowsStore = useWorkflowsStore();
|
|
16293
|
+
const workflowExecution = computed(() => {
|
|
16294
|
+
return workflowsStore.getWorkflowExecution;
|
|
16295
|
+
});
|
|
16296
|
+
const workflowRunData = computed(() => {
|
|
16297
|
+
if (workflowExecution.value === null) {
|
|
16298
|
+
return null;
|
|
16299
|
+
}
|
|
16300
|
+
const executionData = workflowExecution.value.data;
|
|
16301
|
+
if (!executionData?.resultData?.runData) {
|
|
16302
|
+
return null;
|
|
16303
|
+
}
|
|
16304
|
+
return executionData.resultData.runData;
|
|
16305
|
+
});
|
|
16306
|
+
const hasNodeRun = computed(() => {
|
|
16307
|
+
if (workflowsStore.subWorkflowExecutionError) return true;
|
|
16308
|
+
return Boolean(
|
|
16309
|
+
node2.value && workflowRunData.value && Object.prototype.hasOwnProperty.bind(workflowRunData.value)(node2.value.name)
|
|
16310
|
+
);
|
|
16311
|
+
});
|
|
16312
|
+
return {
|
|
16313
|
+
workflowExecution,
|
|
16314
|
+
workflowRunData,
|
|
16315
|
+
hasNodeRun
|
|
16316
|
+
};
|
|
16317
|
+
}
|
|
15102
16318
|
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
15103
16319
|
...{ name: "FocusPanel" },
|
|
15104
16320
|
__name: "FocusPanel",
|
|
15105
16321
|
props: {
|
|
15106
|
-
|
|
16322
|
+
isCanvasReadOnly: { type: Boolean }
|
|
15107
16323
|
},
|
|
15108
|
-
|
|
16324
|
+
emits: ["focus", "saveKeyboardShortcut"],
|
|
16325
|
+
setup(__props, { emit: __emit }) {
|
|
15109
16326
|
const props = __props;
|
|
16327
|
+
const emit = __emit;
|
|
16328
|
+
const inputField = ref();
|
|
15110
16329
|
const locale = useI18n();
|
|
15111
16330
|
const nodeHelpers = useNodeHelpers();
|
|
15112
16331
|
const focusPanelStore = useFocusPanelStore();
|
|
16332
|
+
const workflowsStore = useWorkflowsStore();
|
|
15113
16333
|
const nodeTypesStore = useNodeTypesStore();
|
|
15114
16334
|
const nodeSettingsParameters = useNodeSettingsParameters();
|
|
16335
|
+
const environmentsStore = useEnvironmentsStore();
|
|
16336
|
+
const deviceSupport = useDeviceSupport();
|
|
16337
|
+
const { debounce } = useDebounce();
|
|
16338
|
+
const styles = useStyles();
|
|
15115
16339
|
const focusedNodeParameter = computed(() => focusPanelStore.focusedNodeParameters[0]);
|
|
15116
16340
|
const resolvedParameter = computed(
|
|
15117
16341
|
() => focusedNodeParameter.value && focusPanelStore.isRichParameter(focusedNodeParameter.value) ? focusedNodeParameter.value : void 0
|
|
15118
16342
|
);
|
|
15119
16343
|
const focusPanelActive = computed(() => focusPanelStore.focusPanelActive);
|
|
16344
|
+
const focusPanelHidden = computed(() => focusPanelStore.focusPanelHidden);
|
|
16345
|
+
const focusPanelWidth = computed(() => focusPanelStore.focusPanelWidth);
|
|
16346
|
+
const isDisabled = computed(() => {
|
|
16347
|
+
if (!resolvedParameter.value) return false;
|
|
16348
|
+
return !!resolvedParameter.value.parameter.disabledOptions && nodeSettingsParameters.shouldDisplayNodeParameter(
|
|
16349
|
+
resolvedParameter.value.node.parameters,
|
|
16350
|
+
resolvedParameter.value.node,
|
|
16351
|
+
resolvedParameter.value.parameter,
|
|
16352
|
+
resolvedParameter.value.parameterPath.split(".").slice(1, -1).join("."),
|
|
16353
|
+
"disabledOptions"
|
|
16354
|
+
);
|
|
16355
|
+
});
|
|
16356
|
+
const isDisplayed = computed(() => {
|
|
16357
|
+
if (!resolvedParameter.value) return true;
|
|
16358
|
+
return nodeSettingsParameters.shouldDisplayNodeParameter(
|
|
16359
|
+
resolvedParameter.value.node.parameters,
|
|
16360
|
+
resolvedParameter.value.node,
|
|
16361
|
+
resolvedParameter.value.parameter,
|
|
16362
|
+
resolvedParameter.value.parameterPath.split(".").slice(1, -1).join("."),
|
|
16363
|
+
"displayOptions"
|
|
16364
|
+
);
|
|
16365
|
+
});
|
|
15120
16366
|
const isExecutable2 = computed(() => {
|
|
15121
16367
|
if (!resolvedParameter.value) return false;
|
|
16368
|
+
if (!isDisplayed.value) return false;
|
|
15122
16369
|
const foreignCredentials = nodeHelpers.getForeignCredentialsIfSharingEnabled(
|
|
15123
16370
|
resolvedParameter.value.node.credentials
|
|
15124
16371
|
);
|
|
15125
16372
|
return nodeHelpers.isNodeExecutable(
|
|
15126
16373
|
resolvedParameter.value.node,
|
|
15127
|
-
props.
|
|
16374
|
+
!props.isCanvasReadOnly,
|
|
15128
16375
|
foreignCredentials
|
|
15129
16376
|
);
|
|
15130
16377
|
});
|
|
16378
|
+
const node2 = computed(() => resolvedParameter.value?.node);
|
|
16379
|
+
const { hasNodeRun } = useExecutionData({ node: node2 });
|
|
16380
|
+
function getTypeOption(optionName) {
|
|
16381
|
+
return resolvedParameter.value ? getParameterTypeOption(resolvedParameter.value.parameter, optionName) : void 0;
|
|
16382
|
+
}
|
|
16383
|
+
const codeEditorMode = computed(() => {
|
|
16384
|
+
return resolvedParameter.value?.node.parameters.mode;
|
|
16385
|
+
});
|
|
16386
|
+
const editorType = computed(() => {
|
|
16387
|
+
return getTypeOption("editor") ?? void 0;
|
|
16388
|
+
});
|
|
16389
|
+
const editorLanguage = computed(() => {
|
|
16390
|
+
if (editorType.value === "json" || resolvedParameter.value?.parameter.type === "json")
|
|
16391
|
+
return "json";
|
|
16392
|
+
return getTypeOption("editorLanguage") ?? "javaScript";
|
|
16393
|
+
});
|
|
16394
|
+
const editorRows = computed(() => getTypeOption("rows"));
|
|
15131
16395
|
const isToolNode = computed(
|
|
15132
16396
|
() => resolvedParameter.value ? nodeTypesStore.isToolNode(resolvedParameter.value?.node.type) : false
|
|
15133
16397
|
);
|
|
16398
|
+
const isHtmlNode = computed(
|
|
16399
|
+
() => !!resolvedParameter.value && resolvedParameter.value.node.type === HTML_NODE_TYPE
|
|
16400
|
+
);
|
|
15134
16401
|
const expressionModeEnabled = computed(
|
|
15135
16402
|
() => resolvedParameter.value && isValueExpression(resolvedParameter.value.parameter, resolvedParameter.value.value)
|
|
15136
16403
|
);
|
|
15137
|
-
|
|
15138
|
-
|
|
16404
|
+
const expression = computed(() => {
|
|
16405
|
+
if (!expressionModeEnabled.value) return "";
|
|
16406
|
+
return isResourceLocatorValue(resolvedParameter.value) ? resolvedParameter.value.value : resolvedParameter.value;
|
|
16407
|
+
});
|
|
16408
|
+
const shouldCaptureForPosthog = computed(
|
|
16409
|
+
() => resolvedParameter.value?.node.type === AI_TRANSFORM_NODE_TYPE
|
|
16410
|
+
);
|
|
16411
|
+
const isReadOnly = computed(() => props.isCanvasReadOnly || isDisabled.value);
|
|
16412
|
+
const resolvedAdditionalExpressionData = computed(() => {
|
|
16413
|
+
return {
|
|
16414
|
+
$vars: environmentsStore.variablesAsObject
|
|
16415
|
+
};
|
|
16416
|
+
});
|
|
16417
|
+
const targetNodeParameterContext = computed(() => {
|
|
16418
|
+
if (!resolvedParameter.value) return void 0;
|
|
16419
|
+
return {
|
|
16420
|
+
nodeName: resolvedParameter.value.node.name,
|
|
16421
|
+
parameterPath: resolvedParameter.value.parameterPath
|
|
16422
|
+
};
|
|
16423
|
+
});
|
|
16424
|
+
const isNodeExecuting = computed(() => workflowsStore.isNodeExecuting(node2.value?.name ?? ""));
|
|
16425
|
+
const { resolvedExpression } = useResolvedExpression({
|
|
16426
|
+
expression,
|
|
16427
|
+
additionalData: resolvedAdditionalExpressionData,
|
|
16428
|
+
stringifyObject: resolvedParameter.value && resolvedParameter.value.parameter.type !== "multiOptions"
|
|
16429
|
+
});
|
|
15139
16430
|
function valueChanged(value) {
|
|
15140
16431
|
if (resolvedParameter.value === void 0) {
|
|
15141
16432
|
return;
|
|
15142
16433
|
}
|
|
15143
16434
|
nodeSettingsParameters.updateNodeParameter(
|
|
16435
|
+
toRef(resolvedParameter.value.node.parameters),
|
|
15144
16436
|
{ value, name: resolvedParameter.value.parameterPath },
|
|
15145
16437
|
value,
|
|
15146
16438
|
resolvedParameter.value.node,
|
|
15147
16439
|
isToolNode.value
|
|
15148
16440
|
);
|
|
15149
16441
|
}
|
|
16442
|
+
async function setFocus() {
|
|
16443
|
+
await nextTick();
|
|
16444
|
+
if (inputField.value) {
|
|
16445
|
+
if (hasFocusOnInput(inputField.value)) {
|
|
16446
|
+
inputField.value.focusOnInput();
|
|
16447
|
+
} else if (isFocusableEl(inputField.value)) {
|
|
16448
|
+
inputField.value.focus();
|
|
16449
|
+
}
|
|
16450
|
+
}
|
|
16451
|
+
emit("focus");
|
|
16452
|
+
}
|
|
16453
|
+
function optionSelected(command) {
|
|
16454
|
+
if (!resolvedParameter.value) return;
|
|
16455
|
+
switch (command) {
|
|
16456
|
+
case "resetValue": {
|
|
16457
|
+
if (typeof resolvedParameter.value.parameter.default === "string") {
|
|
16458
|
+
valueChanged(resolvedParameter.value.parameter.default);
|
|
16459
|
+
}
|
|
16460
|
+
void setFocus();
|
|
16461
|
+
break;
|
|
16462
|
+
}
|
|
16463
|
+
case "addExpression": {
|
|
16464
|
+
const newValue = formatAsExpression(
|
|
16465
|
+
resolvedParameter.value.value,
|
|
16466
|
+
resolvedParameter.value.parameter.type
|
|
16467
|
+
);
|
|
16468
|
+
valueChanged(typeof newValue === "string" ? newValue : newValue.value);
|
|
16469
|
+
void setFocus();
|
|
16470
|
+
break;
|
|
16471
|
+
}
|
|
16472
|
+
case "removeExpression": {
|
|
16473
|
+
const newValue = parseFromExpression(
|
|
16474
|
+
resolvedParameter.value.value,
|
|
16475
|
+
resolvedExpression.value,
|
|
16476
|
+
resolvedParameter.value.parameter.type,
|
|
16477
|
+
resolvedParameter.value.parameter.default,
|
|
16478
|
+
(resolvedParameter.value.parameter.options ?? []).filter(isValidParameterOption)
|
|
16479
|
+
);
|
|
16480
|
+
if (typeof newValue === "string") {
|
|
16481
|
+
valueChanged(newValue);
|
|
16482
|
+
} else if (newValue && typeof newValue.value === "string") {
|
|
16483
|
+
valueChanged(newValue.value);
|
|
16484
|
+
}
|
|
16485
|
+
void setFocus();
|
|
16486
|
+
break;
|
|
16487
|
+
}
|
|
16488
|
+
case "formatHtml":
|
|
16489
|
+
htmlEditorEventBus.emit("format-html");
|
|
16490
|
+
break;
|
|
16491
|
+
}
|
|
16492
|
+
}
|
|
16493
|
+
const valueChangedDebounced = debounce(valueChanged, { debounceTime: 0 });
|
|
16494
|
+
function focusWithDelay() {
|
|
16495
|
+
setTimeout(() => {
|
|
16496
|
+
void setFocus();
|
|
16497
|
+
}, 50);
|
|
16498
|
+
}
|
|
16499
|
+
function handleKeydown(event) {
|
|
16500
|
+
if (event.key === "s" && deviceSupport.isCtrlKeyPressed(event)) {
|
|
16501
|
+
event.stopPropagation();
|
|
16502
|
+
event.preventDefault();
|
|
16503
|
+
if (isReadOnly.value) return;
|
|
16504
|
+
emit("saveKeyboardShortcut", event);
|
|
16505
|
+
}
|
|
16506
|
+
}
|
|
16507
|
+
const registerKeyboardListener = () => {
|
|
16508
|
+
document.addEventListener("keydown", handleKeydown, true);
|
|
16509
|
+
};
|
|
16510
|
+
const unregisterKeyboardListener = () => {
|
|
16511
|
+
document.removeEventListener("keydown", handleKeydown, true);
|
|
16512
|
+
};
|
|
16513
|
+
watch(
|
|
16514
|
+
[() => focusPanelStore.lastFocusTimestamp, () => expressionModeEnabled.value],
|
|
16515
|
+
() => focusWithDelay()
|
|
16516
|
+
);
|
|
16517
|
+
watch(
|
|
16518
|
+
() => focusPanelStore.focusPanelActive,
|
|
16519
|
+
(newValue) => {
|
|
16520
|
+
if (newValue) {
|
|
16521
|
+
registerKeyboardListener();
|
|
16522
|
+
} else {
|
|
16523
|
+
unregisterKeyboardListener();
|
|
16524
|
+
}
|
|
16525
|
+
},
|
|
16526
|
+
{ immediate: true }
|
|
16527
|
+
);
|
|
16528
|
+
function onResize(event) {
|
|
16529
|
+
focusPanelStore.updateWidth(event.width);
|
|
16530
|
+
}
|
|
16531
|
+
const onResizeThrottle = useThrottleFn(onResize, 10);
|
|
15150
16532
|
return (_ctx, _cache) => {
|
|
15151
|
-
const
|
|
15152
|
-
const
|
|
15153
|
-
const _component_ParameterOptions = __unplugin_components_2$
|
|
16533
|
+
const _component_NodeExecuteButton = _sfc_main$10;
|
|
16534
|
+
const _component_N8nIcon = N8nIcon;
|
|
16535
|
+
const _component_ParameterOptions = __unplugin_components_2$3;
|
|
15154
16536
|
const _component_ExpressionEditorModalInput = __unplugin_components_3$1;
|
|
15155
|
-
|
|
16537
|
+
const _component_CodeNodeEditor = __unplugin_components_4;
|
|
16538
|
+
const _component_HtmlEditor = __unplugin_components_5;
|
|
16539
|
+
const _component_CssEditor = __unplugin_components_6;
|
|
16540
|
+
const _component_SqlEditor = __unplugin_components_7;
|
|
16541
|
+
const _component_JsEditor = __unplugin_components_8;
|
|
16542
|
+
const _component_JsonEditor = __unplugin_components_9;
|
|
16543
|
+
const _component_N8nRadioButtons = N8nRadioButtons;
|
|
16544
|
+
return focusPanelActive.value ? withDirectives((openBlock(), createElementBlock("div", {
|
|
15156
16545
|
key: 0,
|
|
15157
|
-
class: normalizeClass(_ctx.$style.
|
|
15158
|
-
onKeydown: _cache[
|
|
16546
|
+
class: normalizeClass(_ctx.$style.wrapper),
|
|
16547
|
+
onKeydown: _cache[1] || (_cache[1] = withModifiers(() => {
|
|
15159
16548
|
}, ["stop"]))
|
|
15160
16549
|
}, [
|
|
15161
|
-
|
|
15162
|
-
|
|
15163
|
-
|
|
15164
|
-
|
|
15165
|
-
|
|
15166
|
-
|
|
15167
|
-
},
|
|
15168
|
-
|
|
15169
|
-
|
|
15170
|
-
|
|
15171
|
-
_: 1
|
|
15172
|
-
}),
|
|
15173
|
-
createBaseVNode("div", {
|
|
15174
|
-
class: normalizeClass(_ctx.$style.closeButton),
|
|
15175
|
-
onClick: _cache[0] || (_cache[0] = //@ts-ignore
|
|
15176
|
-
(...args) => unref(focusPanelStore).closeFocusPanel && unref(focusPanelStore).closeFocusPanel(...args))
|
|
15177
|
-
}, [
|
|
15178
|
-
createVNode(_component_n8n_icon, {
|
|
15179
|
-
icon: "arrow-right",
|
|
15180
|
-
color: "text-base"
|
|
15181
|
-
})
|
|
15182
|
-
], 2)
|
|
15183
|
-
], 2),
|
|
15184
|
-
resolvedParameter.value ? (openBlock(), createElementBlock("div", {
|
|
15185
|
-
key: 0,
|
|
15186
|
-
class: normalizeClass(_ctx.$style.content)
|
|
15187
|
-
}, [
|
|
15188
|
-
createBaseVNode("div", {
|
|
15189
|
-
class: normalizeClass(_ctx.$style.tabHeader)
|
|
15190
|
-
}, [
|
|
15191
|
-
createBaseVNode("div", {
|
|
15192
|
-
class: normalizeClass(_ctx.$style.tabHeaderText)
|
|
15193
|
-
}, [
|
|
15194
|
-
createVNode(unref(N8nText), {
|
|
15195
|
-
color: "text-dark",
|
|
15196
|
-
size: "small"
|
|
15197
|
-
}, {
|
|
15198
|
-
default: withCtx(() => [
|
|
15199
|
-
createTextVNode(toDisplayString(resolvedParameter.value.parameter.displayName), 1)
|
|
15200
|
-
]),
|
|
15201
|
-
_: 1
|
|
15202
|
-
}),
|
|
15203
|
-
createVNode(unref(N8nText), {
|
|
15204
|
-
color: "text-base",
|
|
15205
|
-
size: "xsmall"
|
|
15206
|
-
}, {
|
|
15207
|
-
default: withCtx(() => [
|
|
15208
|
-
createTextVNode(toDisplayString(resolvedParameter.value.node.name), 1)
|
|
15209
|
-
]),
|
|
15210
|
-
_: 1
|
|
15211
|
-
})
|
|
15212
|
-
], 2),
|
|
15213
|
-
createVNode(_component_NodeExecuteButton, {
|
|
15214
|
-
"data-test-id": "node-execute-button",
|
|
15215
|
-
"node-name": resolvedParameter.value.node.name,
|
|
15216
|
-
tooltip: `Execute ${resolvedParameter.value.node.name}`,
|
|
15217
|
-
disabled: !isExecutable2.value,
|
|
15218
|
-
size: "small",
|
|
15219
|
-
icon: "play",
|
|
15220
|
-
square: true,
|
|
15221
|
-
"hide-label": true,
|
|
15222
|
-
"telemetry-source": "focus"
|
|
15223
|
-
}, null, 8, ["node-name", "tooltip", "disabled"])
|
|
15224
|
-
], 2),
|
|
15225
|
-
createBaseVNode("div", {
|
|
15226
|
-
class: normalizeClass(_ctx.$style.parameterDetailsWrapper)
|
|
15227
|
-
}, [
|
|
16550
|
+
createVNode(unref(N8nResizeWrapper), {
|
|
16551
|
+
width: focusPanelWidth.value,
|
|
16552
|
+
"supported-directions": ["left"],
|
|
16553
|
+
"min-width": 300,
|
|
16554
|
+
"max-width": 1e3,
|
|
16555
|
+
"grid-size": 8,
|
|
16556
|
+
style: normalizeStyle({ width: `${focusPanelWidth.value}px`, zIndex: unref(styles).APP_Z_INDEXES.FOCUS_PANEL }),
|
|
16557
|
+
onResize: unref(onResizeThrottle)
|
|
16558
|
+
}, {
|
|
16559
|
+
default: withCtx(() => [
|
|
15228
16560
|
createBaseVNode("div", {
|
|
15229
|
-
class: normalizeClass(_ctx.$style.
|
|
15230
|
-
}, [
|
|
15231
|
-
_cache[4] || (_cache[4] = createBaseVNode("div", null, null, -1)),
|
|
15232
|
-
createVNode(_component_ParameterOptions, {
|
|
15233
|
-
parameter: resolvedParameter.value.parameter,
|
|
15234
|
-
value: resolvedParameter.value.value,
|
|
15235
|
-
"is-read-only": false,
|
|
15236
|
-
"onUpdate:modelValue": optionSelected
|
|
15237
|
-
}, null, 8, ["parameter", "value"])
|
|
15238
|
-
], 2),
|
|
15239
|
-
typeof resolvedParameter.value.value === "string" ? (openBlock(), createElementBlock("div", {
|
|
15240
|
-
key: 0,
|
|
15241
|
-
class: normalizeClass(_ctx.$style.editorContainer)
|
|
16561
|
+
class: normalizeClass(_ctx.$style.container)
|
|
15242
16562
|
}, [
|
|
15243
|
-
|
|
16563
|
+
resolvedParameter.value ? (openBlock(), createElementBlock("div", {
|
|
15244
16564
|
key: 0,
|
|
15245
|
-
|
|
15246
|
-
|
|
15247
|
-
"
|
|
15248
|
-
|
|
15249
|
-
|
|
15250
|
-
|
|
15251
|
-
|
|
15252
|
-
|
|
15253
|
-
|
|
15254
|
-
|
|
15255
|
-
|
|
16565
|
+
class: normalizeClass(_ctx.$style.content)
|
|
16566
|
+
}, [
|
|
16567
|
+
createBaseVNode("div", {
|
|
16568
|
+
class: normalizeClass(_ctx.$style.tabHeader)
|
|
16569
|
+
}, [
|
|
16570
|
+
createBaseVNode("div", {
|
|
16571
|
+
class: normalizeClass(_ctx.$style.tabHeaderText)
|
|
16572
|
+
}, [
|
|
16573
|
+
createVNode(unref(N8nText), {
|
|
16574
|
+
color: "text-dark",
|
|
16575
|
+
size: "small"
|
|
16576
|
+
}, {
|
|
16577
|
+
default: withCtx(() => [
|
|
16578
|
+
createTextVNode(toDisplayString(resolvedParameter.value.parameter.displayName), 1)
|
|
16579
|
+
]),
|
|
16580
|
+
_: 1
|
|
16581
|
+
}),
|
|
16582
|
+
createVNode(unref(N8nText), {
|
|
16583
|
+
color: "text-base",
|
|
16584
|
+
size: "xsmall"
|
|
16585
|
+
}, {
|
|
16586
|
+
default: withCtx(() => [
|
|
16587
|
+
createTextVNode(toDisplayString(resolvedParameter.value.node.name), 1)
|
|
16588
|
+
]),
|
|
16589
|
+
_: 1
|
|
16590
|
+
})
|
|
16591
|
+
], 2),
|
|
16592
|
+
createBaseVNode("div", {
|
|
16593
|
+
class: normalizeClass(_ctx.$style.buttonWrapper)
|
|
16594
|
+
}, [
|
|
16595
|
+
createVNode(_component_NodeExecuteButton, {
|
|
16596
|
+
"data-test-id": "node-execute-button",
|
|
16597
|
+
"node-name": resolvedParameter.value.node.name,
|
|
16598
|
+
tooltip: `Execute ${resolvedParameter.value.node.name}`,
|
|
16599
|
+
disabled: !isExecutable2.value,
|
|
16600
|
+
size: "small",
|
|
16601
|
+
icon: "play",
|
|
16602
|
+
square: true,
|
|
16603
|
+
"hide-label": true,
|
|
16604
|
+
"telemetry-source": "focus"
|
|
16605
|
+
}, null, 8, ["node-name", "tooltip", "disabled"]),
|
|
16606
|
+
createVNode(_component_N8nIcon, {
|
|
16607
|
+
class: normalizeClass(_ctx.$style.closeButton),
|
|
16608
|
+
icon: "x",
|
|
16609
|
+
color: "text-base",
|
|
16610
|
+
size: "xlarge",
|
|
16611
|
+
onClick: unref(focusPanelStore).closeFocusPanel
|
|
16612
|
+
}, null, 8, ["class", "onClick"])
|
|
16613
|
+
], 2)
|
|
16614
|
+
], 2),
|
|
16615
|
+
createBaseVNode("div", {
|
|
16616
|
+
class: normalizeClass(_ctx.$style.parameterDetailsWrapper)
|
|
16617
|
+
}, [
|
|
16618
|
+
createBaseVNode("div", {
|
|
16619
|
+
class: normalizeClass(_ctx.$style.parameterOptionsWrapper)
|
|
16620
|
+
}, [
|
|
16621
|
+
createBaseVNode("div", {
|
|
16622
|
+
class: normalizeClass(_ctx.$style.noExecutionDataTip)
|
|
16623
|
+
}, [
|
|
16624
|
+
!unref(hasNodeRun) && !isNodeExecuting.value ? (openBlock(), createBlock(unref(InfoTip), {
|
|
16625
|
+
key: 0,
|
|
16626
|
+
class: normalizeClass(_ctx.$style.delayedShow),
|
|
16627
|
+
bold: true
|
|
16628
|
+
}, {
|
|
16629
|
+
default: withCtx(() => [
|
|
16630
|
+
createTextVNode(toDisplayString(unref(locale).baseText("nodeView.focusPanel.noExecutionData")), 1)
|
|
16631
|
+
]),
|
|
16632
|
+
_: 1
|
|
16633
|
+
}, 8, ["class"])) : createCommentVNode("", true)
|
|
16634
|
+
], 2),
|
|
16635
|
+
isDisplayed.value ? (openBlock(), createBlock(_component_ParameterOptions, {
|
|
16636
|
+
key: 0,
|
|
16637
|
+
parameter: resolvedParameter.value.parameter,
|
|
16638
|
+
value: resolvedParameter.value.value,
|
|
16639
|
+
"is-read-only": isReadOnly.value,
|
|
16640
|
+
"onUpdate:modelValue": optionSelected
|
|
16641
|
+
}, null, 8, ["parameter", "value", "is-read-only"])) : createCommentVNode("", true)
|
|
16642
|
+
], 2),
|
|
16643
|
+
typeof resolvedParameter.value.value === "string" ? (openBlock(), createElementBlock("div", {
|
|
16644
|
+
key: 0,
|
|
16645
|
+
class: normalizeClass(_ctx.$style.editorContainer)
|
|
16646
|
+
}, [
|
|
16647
|
+
!isDisplayed.value ? (openBlock(), createElementBlock("div", {
|
|
16648
|
+
key: 0,
|
|
16649
|
+
class: normalizeClass([_ctx.$style.content, _ctx.$style.emptyContent])
|
|
16650
|
+
}, [
|
|
16651
|
+
createBaseVNode("div", {
|
|
16652
|
+
class: normalizeClass(_ctx.$style.emptyText)
|
|
16653
|
+
}, [
|
|
16654
|
+
createVNode(unref(N8nText), { color: "text-base" }, {
|
|
16655
|
+
default: withCtx(() => [
|
|
16656
|
+
createTextVNode(toDisplayString(unref(locale).baseText("nodeView.focusPanel.missingParameter")), 1)
|
|
16657
|
+
]),
|
|
16658
|
+
_: 1
|
|
16659
|
+
})
|
|
16660
|
+
], 2)
|
|
16661
|
+
], 2)) : expressionModeEnabled.value ? (openBlock(), createBlock(_component_ExpressionEditorModalInput, {
|
|
16662
|
+
key: 1,
|
|
16663
|
+
ref_key: "inputField",
|
|
16664
|
+
ref: inputField,
|
|
16665
|
+
"model-value": resolvedParameter.value.value,
|
|
16666
|
+
class: normalizeClass(_ctx.$style.editor),
|
|
16667
|
+
"is-read-only": isReadOnly.value,
|
|
16668
|
+
path: resolvedParameter.value.parameterPath,
|
|
16669
|
+
"data-test-id": "expression-modal-input",
|
|
16670
|
+
"target-node-parameter-context": targetNodeParameterContext.value,
|
|
16671
|
+
onChange: _cache[0] || (_cache[0] = ($event) => unref(valueChangedDebounced)($event.value))
|
|
16672
|
+
}, null, 8, ["model-value", "class", "is-read-only", "path", "target-node-parameter-context"])) : ["json", "string"].includes(resolvedParameter.value.parameter.type) ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
|
|
16673
|
+
editorType.value === "codeNodeEditor" ? (openBlock(), createBlock(_component_CodeNodeEditor, {
|
|
16674
|
+
key: 0,
|
|
16675
|
+
id: resolvedParameter.value.parameterPath,
|
|
16676
|
+
ref_key: "inputField",
|
|
16677
|
+
ref: inputField,
|
|
16678
|
+
class: normalizeClass(_ctx.$style.heightFull),
|
|
16679
|
+
mode: codeEditorMode.value,
|
|
16680
|
+
"model-value": resolvedParameter.value.value,
|
|
16681
|
+
"default-value": resolvedParameter.value.parameter.default,
|
|
16682
|
+
language: editorLanguage.value,
|
|
16683
|
+
"is-read-only": isReadOnly.value,
|
|
16684
|
+
"target-node-parameter-context": targetNodeParameterContext.value,
|
|
16685
|
+
"fill-parent": "",
|
|
16686
|
+
"disable-ask-ai": true,
|
|
16687
|
+
"onUpdate:modelValue": unref(valueChangedDebounced)
|
|
16688
|
+
}, null, 8, ["id", "class", "mode", "model-value", "default-value", "language", "is-read-only", "target-node-parameter-context", "onUpdate:modelValue"])) : editorType.value === "htmlEditor" ? (openBlock(), createBlock(_component_HtmlEditor, {
|
|
16689
|
+
key: 1,
|
|
16690
|
+
ref_key: "inputField",
|
|
16691
|
+
ref: inputField,
|
|
16692
|
+
"model-value": resolvedParameter.value.value,
|
|
16693
|
+
"is-read-only": isReadOnly.value,
|
|
16694
|
+
rows: editorRows.value,
|
|
16695
|
+
"disable-expression-coloring": !isHtmlNode.value,
|
|
16696
|
+
"disable-expression-completions": !isHtmlNode.value,
|
|
16697
|
+
fullscreen: "",
|
|
16698
|
+
"onUpdate:modelValue": unref(valueChangedDebounced)
|
|
16699
|
+
}, null, 8, ["model-value", "is-read-only", "rows", "disable-expression-coloring", "disable-expression-completions", "onUpdate:modelValue"])) : editorType.value === "cssEditor" ? (openBlock(), createBlock(_component_CssEditor, {
|
|
16700
|
+
key: 2,
|
|
16701
|
+
ref_key: "inputField",
|
|
16702
|
+
ref: inputField,
|
|
16703
|
+
"model-value": resolvedParameter.value.value,
|
|
16704
|
+
"is-read-only": isReadOnly.value,
|
|
16705
|
+
rows: editorRows.value,
|
|
16706
|
+
fullscreen: "",
|
|
16707
|
+
"onUpdate:modelValue": unref(valueChangedDebounced)
|
|
16708
|
+
}, null, 8, ["model-value", "is-read-only", "rows", "onUpdate:modelValue"])) : editorType.value === "sqlEditor" ? (openBlock(), createBlock(_component_SqlEditor, {
|
|
16709
|
+
key: 3,
|
|
16710
|
+
ref_key: "inputField",
|
|
16711
|
+
ref: inputField,
|
|
16712
|
+
"model-value": resolvedParameter.value.value,
|
|
16713
|
+
dialect: getTypeOption("sqlDialect"),
|
|
16714
|
+
"is-read-only": isReadOnly.value,
|
|
16715
|
+
rows: editorRows.value,
|
|
16716
|
+
fullscreen: "",
|
|
16717
|
+
"onUpdate:modelValue": unref(valueChangedDebounced)
|
|
16718
|
+
}, null, 8, ["model-value", "dialect", "is-read-only", "rows", "onUpdate:modelValue"])) : editorType.value === "jsEditor" ? (openBlock(), createBlock(_component_JsEditor, {
|
|
16719
|
+
key: 4,
|
|
16720
|
+
ref_key: "inputField",
|
|
16721
|
+
ref: inputField,
|
|
16722
|
+
"model-value": resolvedParameter.value.value,
|
|
16723
|
+
"is-read-only": isReadOnly.value,
|
|
16724
|
+
rows: editorRows.value,
|
|
16725
|
+
"posthog-capture": shouldCaptureForPosthog.value,
|
|
16726
|
+
"fill-parent": "",
|
|
16727
|
+
"onUpdate:modelValue": unref(valueChangedDebounced)
|
|
16728
|
+
}, null, 8, ["model-value", "is-read-only", "rows", "posthog-capture", "onUpdate:modelValue"])) : resolvedParameter.value.parameter.type === "json" ? (openBlock(), createBlock(_component_JsonEditor, {
|
|
16729
|
+
key: 5,
|
|
16730
|
+
ref_key: "inputField",
|
|
16731
|
+
ref: inputField,
|
|
16732
|
+
"model-value": resolvedParameter.value.value,
|
|
16733
|
+
"is-read-only": isReadOnly.value,
|
|
16734
|
+
rows: editorRows.value,
|
|
16735
|
+
fullscreen: "",
|
|
16736
|
+
"fill-parent": "",
|
|
16737
|
+
"onUpdate:modelValue": unref(valueChangedDebounced)
|
|
16738
|
+
}, null, 8, ["model-value", "is-read-only", "rows", "onUpdate:modelValue"])) : (openBlock(), createBlock(unref(N8nInput), {
|
|
16739
|
+
key: 6,
|
|
16740
|
+
ref_key: "inputField",
|
|
16741
|
+
ref: inputField,
|
|
16742
|
+
"model-value": resolvedParameter.value.value,
|
|
16743
|
+
class: normalizeClass(_ctx.$style.editor),
|
|
16744
|
+
readonly: isReadOnly.value,
|
|
16745
|
+
type: "textarea",
|
|
16746
|
+
resize: "none",
|
|
16747
|
+
"onUpdate:modelValue": unref(valueChangedDebounced)
|
|
16748
|
+
}, null, 8, ["model-value", "class", "readonly", "onUpdate:modelValue"]))
|
|
16749
|
+
], 64)) : createCommentVNode("", true)
|
|
16750
|
+
], 2)) : createCommentVNode("", true)
|
|
16751
|
+
], 2)
|
|
16752
|
+
], 2)) : (openBlock(), createElementBlock("div", {
|
|
15256
16753
|
key: 1,
|
|
15257
|
-
|
|
15258
|
-
|
|
15259
|
-
|
|
15260
|
-
|
|
15261
|
-
|
|
15262
|
-
|
|
15263
|
-
|
|
15264
|
-
|
|
15265
|
-
|
|
15266
|
-
|
|
15267
|
-
|
|
15268
|
-
|
|
15269
|
-
|
|
15270
|
-
|
|
15271
|
-
|
|
15272
|
-
|
|
15273
|
-
|
|
15274
|
-
|
|
15275
|
-
|
|
15276
|
-
|
|
15277
|
-
|
|
15278
|
-
|
|
15279
|
-
|
|
15280
|
-
|
|
16754
|
+
class: normalizeClass([_ctx.$style.content, _ctx.$style.emptyContent])
|
|
16755
|
+
}, [
|
|
16756
|
+
createBaseVNode("div", {
|
|
16757
|
+
class: normalizeClass(_ctx.$style.emptyText)
|
|
16758
|
+
}, [
|
|
16759
|
+
createBaseVNode("div", {
|
|
16760
|
+
class: normalizeClass(_ctx.$style.focusParameterWrapper)
|
|
16761
|
+
}, [
|
|
16762
|
+
createBaseVNode("div", {
|
|
16763
|
+
class: normalizeClass(_ctx.$style.iconWrapper)
|
|
16764
|
+
}, [
|
|
16765
|
+
createVNode(_component_N8nIcon, {
|
|
16766
|
+
class: normalizeClass(_ctx.$style.forceHover),
|
|
16767
|
+
icon: "panel-right",
|
|
16768
|
+
size: "medium"
|
|
16769
|
+
}, null, 8, ["class"]),
|
|
16770
|
+
createVNode(_component_N8nIcon, {
|
|
16771
|
+
class: normalizeClass(_ctx.$style.pointerIcon),
|
|
16772
|
+
icon: "mouse-pointer",
|
|
16773
|
+
color: "text-dark",
|
|
16774
|
+
size: "large"
|
|
16775
|
+
}, null, 8, ["class"])
|
|
16776
|
+
], 2),
|
|
16777
|
+
createVNode(_component_N8nIcon, {
|
|
16778
|
+
icon: "ellipsis-vertical",
|
|
16779
|
+
size: "small",
|
|
16780
|
+
color: "text-base"
|
|
16781
|
+
}),
|
|
16782
|
+
createVNode(_component_N8nRadioButtons, {
|
|
16783
|
+
size: "small",
|
|
16784
|
+
"model-value": "expression",
|
|
16785
|
+
disabled: true,
|
|
16786
|
+
options: [
|
|
16787
|
+
{ label: unref(locale).baseText("parameterInput.fixed"), value: "fixed" },
|
|
16788
|
+
{ label: unref(locale).baseText("parameterInput.expression"), value: "expression" }
|
|
16789
|
+
]
|
|
16790
|
+
}, null, 8, ["options"])
|
|
16791
|
+
], 2),
|
|
16792
|
+
createVNode(unref(N8nText), {
|
|
16793
|
+
color: "text-base",
|
|
16794
|
+
size: "medium",
|
|
16795
|
+
bold: true
|
|
16796
|
+
}, {
|
|
16797
|
+
default: withCtx(() => [
|
|
16798
|
+
createTextVNode(toDisplayString(unref(locale).baseText("nodeView.focusPanel.noParameters.title")), 1)
|
|
16799
|
+
]),
|
|
16800
|
+
_: 1
|
|
16801
|
+
}),
|
|
16802
|
+
createVNode(unref(N8nText), {
|
|
16803
|
+
color: "text-base",
|
|
16804
|
+
size: "small"
|
|
16805
|
+
}, {
|
|
16806
|
+
default: withCtx(() => [
|
|
16807
|
+
createTextVNode(toDisplayString(unref(locale).baseText("nodeView.focusPanel.noParameters.subtitle")), 1)
|
|
16808
|
+
]),
|
|
16809
|
+
_: 1
|
|
16810
|
+
})
|
|
16811
|
+
], 2)
|
|
16812
|
+
], 2))
|
|
16813
|
+
], 2)
|
|
16814
|
+
]),
|
|
16815
|
+
_: 1
|
|
16816
|
+
}, 8, ["width", "style", "onResize"])
|
|
16817
|
+
], 34)), [
|
|
16818
|
+
[vShow, !focusPanelHidden.value]
|
|
16819
|
+
]) : createCommentVNode("", true);
|
|
15281
16820
|
};
|
|
15282
16821
|
}
|
|
15283
16822
|
});
|
|
15284
|
-
const
|
|
15285
|
-
const
|
|
15286
|
-
const
|
|
15287
|
-
const
|
|
15288
|
-
const
|
|
15289
|
-
const
|
|
15290
|
-
const
|
|
15291
|
-
const
|
|
15292
|
-
const
|
|
15293
|
-
const
|
|
15294
|
-
const
|
|
15295
|
-
const
|
|
15296
|
-
const
|
|
16823
|
+
const wrapper$1 = "_wrapper_1ebmp_123";
|
|
16824
|
+
const container = "_container_1ebmp_132";
|
|
16825
|
+
const content = "_content_1ebmp_138";
|
|
16826
|
+
const emptyContent = "_emptyContent_1ebmp_144";
|
|
16827
|
+
const emptyText = "_emptyText_1ebmp_149";
|
|
16828
|
+
const focusParameterWrapper = "_focusParameterWrapper_1ebmp_155";
|
|
16829
|
+
const iconWrapper = "_iconWrapper_1ebmp_162";
|
|
16830
|
+
const pointerIcon = "_pointerIcon_1ebmp_166";
|
|
16831
|
+
const tabHeader = "_tabHeader_1ebmp_176";
|
|
16832
|
+
const tabHeaderText = "_tabHeaderText_1ebmp_183";
|
|
16833
|
+
const buttonWrapper = "_buttonWrapper_1ebmp_188";
|
|
16834
|
+
const parameterDetailsWrapper = "_parameterDetailsWrapper_1ebmp_193";
|
|
16835
|
+
const parameterOptionsWrapper = "_parameterOptionsWrapper_1ebmp_200";
|
|
16836
|
+
const noExecutionDataTip = "_noExecutionDataTip_1ebmp_204";
|
|
16837
|
+
const editorContainer = "_editorContainer_1ebmp_207";
|
|
16838
|
+
const editor = "_editor_1ebmp_207";
|
|
16839
|
+
const delayedShow = "_delayedShow_1ebmp_222";
|
|
16840
|
+
const triggerShow = "_triggerShow_1ebmp_1";
|
|
16841
|
+
const closeButton = "_closeButton_1ebmp_233";
|
|
16842
|
+
const heightFull = "_heightFull_1ebmp_237";
|
|
16843
|
+
const forceHover = "_forceHover_1ebmp_241";
|
|
15297
16844
|
const style0$2 = {
|
|
16845
|
+
wrapper: wrapper$1,
|
|
15298
16846
|
container,
|
|
15299
|
-
closeButton,
|
|
15300
|
-
header,
|
|
15301
16847
|
content,
|
|
15302
16848
|
emptyContent,
|
|
15303
16849
|
emptyText,
|
|
16850
|
+
focusParameterWrapper,
|
|
16851
|
+
iconWrapper,
|
|
16852
|
+
pointerIcon,
|
|
15304
16853
|
tabHeader,
|
|
15305
16854
|
tabHeaderText,
|
|
15306
16855
|
buttonWrapper,
|
|
15307
16856
|
parameterDetailsWrapper,
|
|
15308
16857
|
parameterOptionsWrapper,
|
|
16858
|
+
noExecutionDataTip,
|
|
15309
16859
|
editorContainer,
|
|
15310
|
-
editor
|
|
16860
|
+
editor,
|
|
16861
|
+
delayedShow,
|
|
16862
|
+
triggerShow,
|
|
16863
|
+
closeButton,
|
|
16864
|
+
heightFull,
|
|
16865
|
+
forceHover
|
|
15311
16866
|
};
|
|
15312
16867
|
const cssModules$2 = {
|
|
15313
16868
|
"$style": style0$2
|
|
@@ -15327,18 +16882,18 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
15327
16882
|
setup(__props, { emit: __emit }) {
|
|
15328
16883
|
const emit = __emit;
|
|
15329
16884
|
const props = __props;
|
|
15330
|
-
const
|
|
16885
|
+
const i18n2 = useI18n();
|
|
15331
16886
|
const selectableTriggerNodes = computed(
|
|
15332
16887
|
() => props.triggerNodes.filter((node2) => !node2.disabled && !isChatNode(node2))
|
|
15333
16888
|
);
|
|
15334
16889
|
const label2 = computed(() => {
|
|
15335
16890
|
if (!props.executing) {
|
|
15336
|
-
return
|
|
16891
|
+
return i18n2.baseText("nodeView.runButtonText.executeWorkflow");
|
|
15337
16892
|
}
|
|
15338
16893
|
if (props.waitingForWebhook) {
|
|
15339
|
-
return
|
|
16894
|
+
return i18n2.baseText("nodeView.runButtonText.waitingForTriggerEvent");
|
|
15340
16895
|
}
|
|
15341
|
-
return
|
|
16896
|
+
return i18n2.baseText("nodeView.runButtonText.executingWorkflow");
|
|
15342
16897
|
});
|
|
15343
16898
|
const actions2 = computed(
|
|
15344
16899
|
() => props.triggerNodes.filter((node2) => !isChatNode(node2)).toSorted((a, b) => {
|
|
@@ -15363,8 +16918,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
15363
16918
|
return props.getNodeType(node2.type, node2.typeVersion);
|
|
15364
16919
|
}
|
|
15365
16920
|
return (_ctx, _cache) => {
|
|
15366
|
-
const
|
|
15367
|
-
const _component_NodeIcon = _sfc_main$U;
|
|
16921
|
+
const _component_NodeIcon = _sfc_main$$;
|
|
15368
16922
|
return openBlock(), createElementBlock("div", {
|
|
15369
16923
|
class: normalizeClass([_ctx.$style.component, isSplitButton.value ? _ctx.$style.split : ""])
|
|
15370
16924
|
}, [
|
|
@@ -15397,7 +16951,10 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
15397
16951
|
bold: false
|
|
15398
16952
|
}, {
|
|
15399
16953
|
default: withCtx(() => [
|
|
15400
|
-
createVNode(
|
|
16954
|
+
createVNode(unref(I18nT), {
|
|
16955
|
+
keypath: "nodeView.runButtonText.from",
|
|
16956
|
+
scope: "global"
|
|
16957
|
+
}, {
|
|
15401
16958
|
nodeName: withCtx(() => [
|
|
15402
16959
|
createVNode(unref(N8nText), {
|
|
15403
16960
|
bold: "",
|
|
@@ -15453,7 +17010,10 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
15453
17010
|
"node-type": getNodeTypeByName(item.id)
|
|
15454
17011
|
}, null, 8, ["class", "node-type"]),
|
|
15455
17012
|
createBaseVNode("span", null, [
|
|
15456
|
-
createVNode(
|
|
17013
|
+
createVNode(unref(I18nT), {
|
|
17014
|
+
keypath: "nodeView.runButtonText.from",
|
|
17015
|
+
scope: "global"
|
|
17016
|
+
}, {
|
|
15457
17017
|
nodeName: withCtx(() => [
|
|
15458
17018
|
createVNode(unref(N8nText), {
|
|
15459
17019
|
bold: "",
|
|
@@ -15571,18 +17131,18 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
15571
17131
|
},
|
|
15572
17132
|
setup(__props) {
|
|
15573
17133
|
const props = __props;
|
|
15574
|
-
const
|
|
15575
|
-
const
|
|
15576
|
-
() => props.stopping ?
|
|
17134
|
+
const i18n2 = useI18n();
|
|
17135
|
+
const title2 = computed(
|
|
17136
|
+
() => props.stopping ? i18n2.baseText("nodeView.stoppingCurrentExecution") : i18n2.baseText("nodeView.stopCurrentExecution")
|
|
15577
17137
|
);
|
|
15578
17138
|
return (_ctx, _cache) => {
|
|
15579
|
-
const _component_N8nIconButton = _sfc_main$
|
|
17139
|
+
const _component_N8nIconButton = _sfc_main$Y;
|
|
15580
17140
|
return openBlock(), createBlock(_component_N8nIconButton, {
|
|
15581
17141
|
icon: "square",
|
|
15582
17142
|
size: "large",
|
|
15583
17143
|
class: "stop-execution",
|
|
15584
17144
|
type: "secondary",
|
|
15585
|
-
title:
|
|
17145
|
+
title: title2.value,
|
|
15586
17146
|
loading: _ctx.stopping,
|
|
15587
17147
|
"data-test-id": "stop-execution-button"
|
|
15588
17148
|
}, null, 8, ["title", "loading"]);
|
|
@@ -15592,14 +17152,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
15592
17152
|
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
15593
17153
|
__name: "CanvasStopWaitingForWebhookButton",
|
|
15594
17154
|
setup(__props) {
|
|
15595
|
-
const
|
|
17155
|
+
const i18n2 = useI18n();
|
|
15596
17156
|
return (_ctx, _cache) => {
|
|
15597
|
-
const _component_N8nIconButton = _sfc_main$
|
|
17157
|
+
const _component_N8nIconButton = _sfc_main$Y;
|
|
15598
17158
|
return openBlock(), createBlock(_component_N8nIconButton, {
|
|
15599
17159
|
class: "stop-execution",
|
|
15600
17160
|
icon: "square",
|
|
15601
17161
|
size: "large",
|
|
15602
|
-
title: unref(
|
|
17162
|
+
title: unref(i18n2).baseText("nodeView.stopWaitingForWebhookCall"),
|
|
15603
17163
|
type: "secondary",
|
|
15604
17164
|
"data-test-id": "stop-execution-waiting-for-webhook-button"
|
|
15605
17165
|
}, null, 8, ["title"]);
|
|
@@ -15651,21 +17211,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15651
17211
|
__name: "NodeView",
|
|
15652
17212
|
setup(__props) {
|
|
15653
17213
|
const LazyNodeCreation = defineAsyncComponent(
|
|
15654
|
-
async () => await __vitePreload(() => import("./NodeCreation-
|
|
17214
|
+
async () => await __vitePreload(() => import("./NodeCreation-CVbCKnet.js").then((n) => n.N), true ? __vite__mapDeps([0,1,2,3]) : void 0)
|
|
15655
17215
|
);
|
|
15656
17216
|
const LazyNodeDetailsView = defineAsyncComponent(
|
|
15657
|
-
async () => await __vitePreload(() => import("./NodeDetailsView-
|
|
17217
|
+
async () => await __vitePreload(() => import("./NodeDetailsView-KFidngJi.js"), true ? __vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]) : void 0)
|
|
15658
17218
|
);
|
|
15659
17219
|
const LazyNodeDetailsViewV2 = defineAsyncComponent(
|
|
15660
|
-
async () => await __vitePreload(() => import("./NodeDetailsViewV2-
|
|
17220
|
+
async () => await __vitePreload(() => import("./NodeDetailsViewV2-BL4KKqW-.js"), true ? __vite__mapDeps([26,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27]) : void 0)
|
|
15661
17221
|
);
|
|
15662
17222
|
const LazySetupWorkflowCredentialsButton = defineAsyncComponent(
|
|
15663
|
-
async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-
|
|
17223
|
+
async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-Pzrxag-k.js"), true ? __vite__mapDeps([28,1,2]) : void 0)
|
|
15664
17224
|
);
|
|
15665
17225
|
const $style = useCssModule();
|
|
15666
17226
|
const router = useRouter();
|
|
15667
17227
|
const route = useRoute();
|
|
15668
|
-
const
|
|
17228
|
+
const i18n2 = useI18n();
|
|
15669
17229
|
const telemetry = useTelemetry();
|
|
15670
17230
|
const externalHooks = useExternalHooks();
|
|
15671
17231
|
const toast = useToast();
|
|
@@ -15700,6 +17260,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15700
17260
|
const posthogStore = usePostHog();
|
|
15701
17261
|
const agentRequestStore = useAgentRequestStore();
|
|
15702
17262
|
const logsStore = useLogsStore();
|
|
17263
|
+
const aiTemplatesStarterCollectionStore = useAITemplatesStarterCollectionStore();
|
|
15703
17264
|
const { addBeforeUnloadEventBindings, removeBeforeUnloadEventBindings } = useBeforeUnload({
|
|
15704
17265
|
route
|
|
15705
17266
|
});
|
|
@@ -15813,8 +17374,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15813
17374
|
} catch (error2) {
|
|
15814
17375
|
toast.showError(
|
|
15815
17376
|
error2,
|
|
15816
|
-
|
|
15817
|
-
|
|
17377
|
+
i18n2.baseText("nodeView.showError.mounted1.title"),
|
|
17378
|
+
i18n2.baseText("nodeView.showError.mounted1.message") + ":"
|
|
15818
17379
|
);
|
|
15819
17380
|
return;
|
|
15820
17381
|
}
|
|
@@ -15859,8 +17420,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15859
17420
|
break;
|
|
15860
17421
|
default:
|
|
15861
17422
|
toast.showError(
|
|
15862
|
-
new Error(
|
|
15863
|
-
|
|
17423
|
+
new Error(i18n2.baseText("nodeView.couldntLoadWorkflow.invalidWorkflowObject")),
|
|
17424
|
+
i18n2.baseText("nodeView.couldntImportWorkflow")
|
|
15864
17425
|
);
|
|
15865
17426
|
await router.replace({ name: VIEWS.NEW_WORKFLOW });
|
|
15866
17427
|
}
|
|
@@ -15935,6 +17496,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15935
17496
|
if (workflowData.meta?.onboardingId) {
|
|
15936
17497
|
trackOpenWorkflowFromOnboardingTemplate();
|
|
15937
17498
|
}
|
|
17499
|
+
if (workflowData.meta?.templateId?.startsWith("035_template_onboarding")) {
|
|
17500
|
+
aiTemplatesStarterCollectionStore.trackUserOpenedWorkflow(
|
|
17501
|
+
workflowData.meta.templateId.split("-").pop() ?? ""
|
|
17502
|
+
);
|
|
17503
|
+
}
|
|
15938
17504
|
await projectsStore.setProjectNavActiveIdByWorkflowHomeProject(workflowData.homeProject);
|
|
15939
17505
|
} catch (error2) {
|
|
15940
17506
|
if (error2.httpStatusCode === 404) {
|
|
@@ -15949,7 +17515,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15949
17515
|
params: { entityType: "workflow" }
|
|
15950
17516
|
});
|
|
15951
17517
|
}
|
|
15952
|
-
toast.showError(error2,
|
|
17518
|
+
toast.showError(error2, i18n2.baseText("openWorkflow.workflowNotFoundError"));
|
|
15953
17519
|
void router.push({
|
|
15954
17520
|
name: VIEWS.NEW_WORKFLOW
|
|
15955
17521
|
});
|
|
@@ -15984,15 +17550,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15984
17550
|
async function openTemplateFromWorkflowJSON(workflow) {
|
|
15985
17551
|
if (!workflow.nodes || !workflow.connections) {
|
|
15986
17552
|
toast.showError(
|
|
15987
|
-
new Error(
|
|
15988
|
-
|
|
17553
|
+
new Error(i18n2.baseText("nodeView.couldntLoadWorkflow.invalidWorkflowObject")),
|
|
17554
|
+
i18n2.baseText("nodeView.couldntImportWorkflow")
|
|
15989
17555
|
);
|
|
15990
17556
|
await router.replace({ name: VIEWS.NEW_WORKFLOW });
|
|
15991
17557
|
return;
|
|
15992
17558
|
}
|
|
15993
17559
|
resetWorkspace();
|
|
15994
17560
|
canvasStore.startLoading();
|
|
15995
|
-
canvasStore.setLoadingText(
|
|
17561
|
+
canvasStore.setLoadingText(i18n2.baseText("nodeView.loadingTemplate"));
|
|
15996
17562
|
workflowsStore.currentWorkflowExecutions = [];
|
|
15997
17563
|
executionsStore.activeExecution = null;
|
|
15998
17564
|
isBlankRedirect.value = true;
|
|
@@ -16010,7 +17576,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16010
17576
|
async function openWorkflowTemplate(templateId) {
|
|
16011
17577
|
resetWorkspace();
|
|
16012
17578
|
canvasStore.startLoading();
|
|
16013
|
-
canvasStore.setLoadingText(
|
|
17579
|
+
canvasStore.setLoadingText(i18n2.baseText("nodeView.loadingTemplate"));
|
|
16014
17580
|
workflowsStore.currentWorkflowExecutions = [];
|
|
16015
17581
|
executionsStore.activeExecution = null;
|
|
16016
17582
|
let data;
|
|
@@ -16019,13 +17585,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16019
17585
|
data = await templatesStore.getFixedWorkflowTemplate(templateId);
|
|
16020
17586
|
if (!data) {
|
|
16021
17587
|
throw new Error(
|
|
16022
|
-
|
|
17588
|
+
i18n2.baseText("nodeView.workflowTemplateWithIdCouldNotBeFound", {
|
|
16023
17589
|
interpolate: { templateId }
|
|
16024
17590
|
})
|
|
16025
17591
|
);
|
|
16026
17592
|
}
|
|
16027
17593
|
} catch (error2) {
|
|
16028
|
-
toast.showError(error2,
|
|
17594
|
+
toast.showError(error2, i18n2.baseText("nodeView.couldntImportWorkflow"));
|
|
16029
17595
|
await router.replace({ name: VIEWS.NEW_WORKFLOW });
|
|
16030
17596
|
return;
|
|
16031
17597
|
}
|
|
@@ -16128,7 +17694,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16128
17694
|
}
|
|
16129
17695
|
async function onCopyNodes(ids) {
|
|
16130
17696
|
await copyNodes(ids);
|
|
16131
|
-
toast.showMessage({ title:
|
|
17697
|
+
toast.showMessage({ title: i18n2.baseText("generic.copiedToClipboard"), type: "success" });
|
|
16132
17698
|
}
|
|
16133
17699
|
async function onClipboardPaste(plainTextData) {
|
|
16134
17700
|
if (getNodeViewTab(route) !== MAIN_HEADER_TABS.WORKFLOW || !keyBindingsEnabled.value || !checkIfEditingIsAllowed()) {
|
|
@@ -16137,16 +17703,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16137
17703
|
let workflowData = null;
|
|
16138
17704
|
if (plainTextData.match(VALID_WORKFLOW_IMPORT_URL_REGEX)) {
|
|
16139
17705
|
const importConfirm = await message.confirm(
|
|
16140
|
-
|
|
17706
|
+
i18n2.baseText("nodeView.confirmMessage.onClipboardPasteEvent.message", {
|
|
16141
17707
|
interpolate: { plainTextData }
|
|
16142
17708
|
}),
|
|
16143
|
-
|
|
17709
|
+
i18n2.baseText("nodeView.confirmMessage.onClipboardPasteEvent.headline"),
|
|
16144
17710
|
{
|
|
16145
17711
|
type: "warning",
|
|
16146
|
-
confirmButtonText:
|
|
17712
|
+
confirmButtonText: i18n2.baseText(
|
|
16147
17713
|
"nodeView.confirmMessage.onClipboardPasteEvent.confirmButtonText"
|
|
16148
17714
|
),
|
|
16149
|
-
cancelButtonText:
|
|
17715
|
+
cancelButtonText: i18n2.baseText(
|
|
16150
17716
|
"nodeView.confirmMessage.onClipboardPasteEvent.cancelButtonText"
|
|
16151
17717
|
)
|
|
16152
17718
|
}
|
|
@@ -16212,7 +17778,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16212
17778
|
async function onSaveFromWithinNDV() {
|
|
16213
17779
|
if (ndvStore.activeNodeName) {
|
|
16214
17780
|
toast.showMessage({
|
|
16215
|
-
title:
|
|
17781
|
+
title: i18n2.baseText("generic.workflowSaved"),
|
|
16216
17782
|
type: "success"
|
|
16217
17783
|
});
|
|
16218
17784
|
}
|
|
@@ -16234,17 +17800,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16234
17800
|
if (!keyBindingsEnabled.value || document.querySelector(".rename-prompt")) return;
|
|
16235
17801
|
try {
|
|
16236
17802
|
const promptResponsePromise = message.prompt(
|
|
16237
|
-
|
|
16238
|
-
|
|
17803
|
+
i18n2.baseText("nodeView.prompt.newName") + ":",
|
|
17804
|
+
i18n2.baseText("nodeView.prompt.renameNode") + `: ${currentName}`,
|
|
16239
17805
|
{
|
|
16240
17806
|
customClass: "rename-prompt",
|
|
16241
|
-
confirmButtonText:
|
|
16242
|
-
cancelButtonText:
|
|
16243
|
-
inputErrorMessage:
|
|
17807
|
+
confirmButtonText: i18n2.baseText("nodeView.prompt.rename"),
|
|
17808
|
+
cancelButtonText: i18n2.baseText("nodeView.prompt.cancel"),
|
|
17809
|
+
inputErrorMessage: i18n2.baseText("nodeView.prompt.invalidName"),
|
|
16244
17810
|
inputValue: currentName,
|
|
16245
17811
|
inputValidator: (value) => {
|
|
16246
17812
|
if (!value.trim()) {
|
|
16247
|
-
return
|
|
17813
|
+
return i18n2.baseText("nodeView.prompt.invalidName");
|
|
16248
17814
|
}
|
|
16249
17815
|
return true;
|
|
16250
17816
|
}
|
|
@@ -16284,6 +17850,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16284
17850
|
revalidateNodeOutputConnections(id2);
|
|
16285
17851
|
}
|
|
16286
17852
|
function onClickNodeAdd(source, sourceHandle) {
|
|
17853
|
+
if (isFocusPanelFeatureEnabled.value && focusPanelStore.focusPanelActive) {
|
|
17854
|
+
focusPanelStore.hideFocusPanel();
|
|
17855
|
+
}
|
|
16287
17856
|
nodeCreatorStore.openNodeCreatorForConnectingNode({
|
|
16288
17857
|
connection: {
|
|
16289
17858
|
source,
|
|
@@ -16354,13 +17923,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16354
17923
|
async function onImportWorkflowDataEvent(data) {
|
|
16355
17924
|
const workflowData = data.data;
|
|
16356
17925
|
await importWorkflowData(workflowData, "file", {
|
|
16357
|
-
viewport: viewportBoundaries.value
|
|
17926
|
+
viewport: viewportBoundaries.value,
|
|
17927
|
+
regenerateIds: data.regenerateIds === true || data.regenerateIds === void 0
|
|
16358
17928
|
});
|
|
16359
17929
|
fitView();
|
|
16360
17930
|
selectNodes(workflowData.nodes?.map((node2) => node2.id) ?? []);
|
|
16361
17931
|
if (data.tidyUp) {
|
|
17932
|
+
const nodesIdsToTidyUp = data.nodesIdsToTidyUp;
|
|
16362
17933
|
setTimeout(() => {
|
|
16363
|
-
canvasEventBus.emit("tidyUp", {
|
|
17934
|
+
canvasEventBus.emit("tidyUp", {
|
|
17935
|
+
source: "import-workflow-data",
|
|
17936
|
+
nodeIdsFilter: nodesIdsToTidyUp
|
|
17937
|
+
});
|
|
16364
17938
|
}, 0);
|
|
16365
17939
|
}
|
|
16366
17940
|
}
|
|
@@ -16435,27 +18009,30 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16435
18009
|
async function onRevertAddNode({ node: node2 }) {
|
|
16436
18010
|
await revertAddNode(node2.name);
|
|
16437
18011
|
}
|
|
16438
|
-
|
|
18012
|
+
function onSwitchActiveNode(nodeName) {
|
|
16439
18013
|
const node2 = workflowsStore.getNodeByName(nodeName);
|
|
16440
18014
|
if (!node2) return;
|
|
16441
18015
|
setNodeActiveByName(nodeName);
|
|
16442
18016
|
selectNodes([node2.id]);
|
|
16443
18017
|
}
|
|
16444
|
-
|
|
18018
|
+
function onOpenSelectiveNodeCreator(node2, connectionType2, connectionIndex = 0) {
|
|
16445
18019
|
nodeCreatorStore.openSelectiveNodeCreator({ node: node2, connectionType: connectionType2, connectionIndex });
|
|
16446
18020
|
}
|
|
16447
|
-
function onOpenNodeCreatorForTriggerNodes(source) {
|
|
16448
|
-
nodeCreatorStore.openNodeCreatorForTriggerNodes(source);
|
|
16449
|
-
}
|
|
16450
|
-
function onOpenNodeCreatorFromCanvas(source) {
|
|
16451
|
-
onToggleNodeCreator({ createNodeActive: true, source });
|
|
16452
|
-
}
|
|
16453
18021
|
function onToggleNodeCreator(options) {
|
|
16454
18022
|
nodeCreatorStore.setNodeCreatorState(options);
|
|
18023
|
+
if (isFocusPanelFeatureEnabled.value && focusPanelStore.focusPanelActive) {
|
|
18024
|
+
focusPanelStore.hideFocusPanel(options.createNodeActive);
|
|
18025
|
+
}
|
|
16455
18026
|
if (!options.createNodeActive && !options.hasAddedNodes) {
|
|
16456
18027
|
uiStore.resetLastInteractedWith();
|
|
16457
18028
|
}
|
|
16458
18029
|
}
|
|
18030
|
+
function onOpenNodeCreatorFromCanvas(source) {
|
|
18031
|
+
onToggleNodeCreator({ createNodeActive: true, source });
|
|
18032
|
+
}
|
|
18033
|
+
function onOpenNodeCreatorForTriggerNodes(source) {
|
|
18034
|
+
nodeCreatorStore.openNodeCreatorForTriggerNodes(source);
|
|
18035
|
+
}
|
|
16459
18036
|
function onToggleFocusPanel() {
|
|
16460
18037
|
if (!isFocusPanelFeatureEnabled.value) {
|
|
16461
18038
|
return;
|
|
@@ -16465,6 +18042,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16465
18042
|
function closeNodeCreator() {
|
|
16466
18043
|
if (nodeCreatorStore.isCreateNodeActive) {
|
|
16467
18044
|
nodeCreatorStore.isCreateNodeActive = false;
|
|
18045
|
+
if (isFocusPanelFeatureEnabled.value && focusPanelStore.focusPanelActive) {
|
|
18046
|
+
focusPanelStore.hideFocusPanel(false);
|
|
18047
|
+
}
|
|
16468
18048
|
}
|
|
16469
18049
|
}
|
|
16470
18050
|
function onCreateSticky() {
|
|
@@ -16527,11 +18107,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16527
18107
|
telemetry.track("User clicked execute node button", telemetryPayload);
|
|
16528
18108
|
void externalHooks.run("nodeView.onRunNode", telemetryPayload);
|
|
16529
18109
|
}
|
|
16530
|
-
async function onOpenExecution(executionId) {
|
|
18110
|
+
async function onOpenExecution(executionId, nodeId) {
|
|
16531
18111
|
canvasStore.startLoading();
|
|
16532
18112
|
resetWorkspace();
|
|
16533
18113
|
await initializeData();
|
|
16534
|
-
const data = await openExecution(executionId);
|
|
18114
|
+
const data = await openExecution(executionId, nodeId);
|
|
16535
18115
|
if (!data) {
|
|
16536
18116
|
return;
|
|
16537
18117
|
}
|
|
@@ -16570,7 +18150,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16570
18150
|
console.error(`Execution ${data.id} error:`);
|
|
16571
18151
|
console.error(data.data.resultData.error.stack);
|
|
16572
18152
|
toast.showMessage({
|
|
16573
|
-
title:
|
|
18153
|
+
title: i18n2.baseText("nodeView.showError.workflowError"),
|
|
16574
18154
|
message: data.data.resultData.error.message,
|
|
16575
18155
|
type: "error",
|
|
16576
18156
|
duration: 0
|
|
@@ -16581,7 +18161,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16581
18161
|
function onExecutionOpenedWithWaitTill(data) {
|
|
16582
18162
|
if (data.waitTill) {
|
|
16583
18163
|
toast.showMessage({
|
|
16584
|
-
title:
|
|
18164
|
+
title: i18n2.baseText("nodeView.thisExecutionHasntFinishedYet"),
|
|
16585
18165
|
message: h(_sfc_main$2),
|
|
16586
18166
|
type: "warning",
|
|
16587
18167
|
duration: 0
|
|
@@ -16706,17 +18286,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16706
18286
|
window.top.postMessage(
|
|
16707
18287
|
JSON.stringify({
|
|
16708
18288
|
command: "error",
|
|
16709
|
-
message:
|
|
18289
|
+
message: i18n2.baseText("openWorkflow.workflowImportError")
|
|
16710
18290
|
}),
|
|
16711
18291
|
"*"
|
|
16712
18292
|
);
|
|
16713
18293
|
}
|
|
16714
|
-
toast.showError(e,
|
|
18294
|
+
toast.showError(e, i18n2.baseText("openWorkflow.workflowImportError"));
|
|
16715
18295
|
}
|
|
16716
18296
|
} else if (json2 && json2.command === "openExecution") {
|
|
16717
18297
|
try {
|
|
16718
18298
|
isProductionExecutionPreview.value = json2.executionMode !== "manual" && json2.executionMode !== "evaluation";
|
|
16719
|
-
await onOpenExecution(json2.executionId);
|
|
18299
|
+
await onOpenExecution(json2.executionId, json2.nodeId);
|
|
16720
18300
|
canOpenNDV.value = json2.canOpenNDV ?? true;
|
|
16721
18301
|
hideNodeIssues.value = json2.hideNodeIssues ?? false;
|
|
16722
18302
|
isExecutionPreview.value = true;
|
|
@@ -16725,13 +18305,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16725
18305
|
window.top.postMessage(
|
|
16726
18306
|
JSON.stringify({
|
|
16727
18307
|
command: "error",
|
|
16728
|
-
message:
|
|
18308
|
+
message: i18n2.baseText("nodeView.showError.openExecution.title")
|
|
16729
18309
|
}),
|
|
16730
18310
|
"*"
|
|
16731
18311
|
);
|
|
16732
18312
|
}
|
|
16733
18313
|
toast.showMessage({
|
|
16734
|
-
title:
|
|
18314
|
+
title: i18n2.baseText("nodeView.showError.openExecution.title"),
|
|
16735
18315
|
message: e.message,
|
|
16736
18316
|
type: "error"
|
|
16737
18317
|
});
|
|
@@ -16754,10 +18334,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16754
18334
|
if (isReadOnlyRoute.value || isReadOnlyEnvironment.value) {
|
|
16755
18335
|
const messageContext = isReadOnlyRoute.value ? "executions" : "workflows";
|
|
16756
18336
|
readOnlyNotification.value = toast.showMessage({
|
|
16757
|
-
title:
|
|
18337
|
+
title: i18n2.baseText(
|
|
16758
18338
|
isReadOnlyEnvironment.value ? `readOnlyEnv.showMessage.${messageContext}.title` : "readOnly.showMessage.executions.title"
|
|
16759
18339
|
),
|
|
16760
|
-
message:
|
|
18340
|
+
message: i18n2.baseText(
|
|
16761
18341
|
isReadOnlyEnvironment.value ? `readOnlyEnv.showMessage.${messageContext}.message` : "readOnly.showMessage.executions.message"
|
|
16762
18342
|
),
|
|
16763
18343
|
type: "info"
|
|
@@ -16870,8 +18450,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16870
18450
|
setNodeActive(nodeUi.id);
|
|
16871
18451
|
} else {
|
|
16872
18452
|
toast.showToast({
|
|
16873
|
-
title:
|
|
16874
|
-
message:
|
|
18453
|
+
title: i18n2.baseText("nodeView.showMessage.ndvUrl.missingNodes.title"),
|
|
18454
|
+
message: i18n2.baseText("nodeView.showMessage.ndvUrl.missingNodes.content"),
|
|
16875
18455
|
type: "warning"
|
|
16876
18456
|
});
|
|
16877
18457
|
void router.replace({
|
|
@@ -17106,18 +18686,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
17106
18686
|
isLogsPanelOpen.value ? (openBlock(), createBlock(_sfc_main$1, {
|
|
17107
18687
|
key: 0,
|
|
17108
18688
|
type: "tertiary",
|
|
17109
|
-
label: unref(
|
|
18689
|
+
label: unref(i18n2).baseText("chat.hide"),
|
|
17110
18690
|
class: normalizeClass(unref($style).chatButton),
|
|
17111
18691
|
onClick: _cache[1] || (_cache[1] = ($event) => unref(logsStore).toggleOpen(false))
|
|
17112
18692
|
}, null, 8, ["label", "class"])) : (openBlock(), createBlock(KeyboardShortcutTooltip, {
|
|
17113
18693
|
key: 1,
|
|
17114
|
-
label: unref(
|
|
18694
|
+
label: unref(i18n2).baseText("chat.open"),
|
|
17115
18695
|
shortcut: { keys: ["c"] }
|
|
17116
18696
|
}, {
|
|
17117
18697
|
default: withCtx(() => [
|
|
17118
18698
|
createVNode(_sfc_main$1, {
|
|
17119
18699
|
type: isRunWorkflowButtonVisible.value ? "secondary" : "primary",
|
|
17120
|
-
label: unref(
|
|
18700
|
+
label: unref(i18n2).baseText("chat.open"),
|
|
17121
18701
|
class: normalizeClass(unref($style).chatButton),
|
|
17122
18702
|
onClick: onOpenChat
|
|
17123
18703
|
}, null, 8, ["type", "label", "class"])
|
|
@@ -17142,7 +18722,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
17142
18722
|
class: normalizeClass(unref($style).readOnlyEnvironmentNotification)
|
|
17143
18723
|
}, {
|
|
17144
18724
|
default: withCtx(() => [
|
|
17145
|
-
createTextVNode(toDisplayString(unref(
|
|
18725
|
+
createTextVNode(toDisplayString(unref(i18n2).baseText("readOnlyEnv.cantEditOrRun")), 1)
|
|
17146
18726
|
]),
|
|
17147
18727
|
_: 1
|
|
17148
18728
|
}, 8, ["class"])) : createCommentVNode("", true),
|
|
@@ -17196,8 +18776,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
17196
18776
|
}, 8, ["id", "workflow", "workflow-object", "fallback-nodes", "show-fallback-nodes", "event-bus", "read-only", "executing", "key-bindings", "onUpdate:logs:inputOpen", "onUpdate:logs:outputOpen", "onUpdate:hasRangeSelection"])) : createCommentVNode("", true),
|
|
17197
18777
|
isFocusPanelFeatureEnabled.value ? (openBlock(), createBlock(FocusPanel, {
|
|
17198
18778
|
key: 1,
|
|
17199
|
-
|
|
17200
|
-
|
|
18779
|
+
"is-canvas-read-only": isCanvasReadOnly.value,
|
|
18780
|
+
onSaveKeyboardShortcut: onSaveWorkflow
|
|
18781
|
+
}, null, 8, ["is-canvas-read-only"])) : createCommentVNode("", true)
|
|
17201
18782
|
], 2);
|
|
17202
18783
|
};
|
|
17203
18784
|
}
|
|
@@ -17223,8 +18804,12 @@ const NodeView$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
|
|
|
17223
18804
|
default: NodeView
|
|
17224
18805
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
17225
18806
|
export {
|
|
18807
|
+
CommunityNodeFooter as C,
|
|
18808
|
+
InputPanel as I,
|
|
17226
18809
|
NodeSettings as N,
|
|
18810
|
+
__unplugin_components_2 as _,
|
|
17227
18811
|
useNodeDocsUrl as a,
|
|
17228
|
-
|
|
17229
|
-
|
|
18812
|
+
_sfc_main$z as b,
|
|
18813
|
+
NodeView$1 as c,
|
|
18814
|
+
useExecutionData as u
|
|
17230
18815
|
};
|