n8n-editor-ui 1.102.1 → 1.103.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.
Files changed (115) hide show
  1. package/dist/assets/{ActionDropdown-DetvHLId.js → ActionDropdown-oe2q-18e.js} +1 -1
  2. package/dist/assets/{AnimatedSpinner-lwwhfXuL.js → AnimatedSpinner-DNQK2Lvb.js} +1 -1
  3. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DlzKPHS6.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CTPMm7Da.js} +1 -1
  4. package/dist/assets/{AuthView-BmqsofpQ.js → AuthView-BLYDBurX.js} +2 -2
  5. package/dist/assets/{ChangePasswordView-CEt62_Gv.js → ChangePasswordView-D_oe3bys.js} +3 -3
  6. package/dist/assets/CollectionParameter-DMWMZwmI.js +4 -0
  7. package/dist/assets/{CredentialsView-Bs2oX53O.js → CredentialsView-yjXzQeha.js} +8 -8
  8. package/dist/assets/{DemoFooter-18cq3Mkx.js → DemoFooter-CLoho_f5.js} +8 -8
  9. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-D3Qc6hK_.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-Dtt1q_gN.js} +1 -1
  10. package/dist/assets/{EntityNotFound-CoNGRWzZ.js → EntityNotFound-DKLj80gn.js} +1 -1
  11. package/dist/assets/{EntityUnAuthorised-S2HP1uhI.js → EntityUnAuthorised-BUd46dmn.js} +1 -1
  12. package/dist/assets/{ErrorView-ZWxrafSr.js → ErrorView-DOjK08aR.js} +1 -1
  13. package/dist/assets/{EvaluationsRootView-KNlw9RSA.js → EvaluationsRootView-Cms0XlYE.js} +1 -1
  14. package/dist/assets/{EvaluationsView-Bhe1hdR_.js → EvaluationsView-X9pjkssi.js} +3 -3
  15. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-C9Aay_8V.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-CQDOSq4d.js} +3 -6
  16. package/dist/assets/{ExecutionsView-yA3EAMaK.js → ExecutionsView-NLnln1YQ.js} +9 -9
  17. package/dist/assets/{FileSaver.min-cXi1Jtg0.js → FileSaver.min-BoHgd5iv.js} +1 -1
  18. package/dist/assets/{FixedCollectionParameter-DwYO2YZG.js → FixedCollectionParameter-BfKt_vOb.js} +1 -1
  19. package/dist/assets/{ForgotMyPasswordView-JoaR_ImM.js → ForgotMyPasswordView-OP-Zoaqi.js} +3 -3
  20. package/dist/assets/{InfoAccordion-CUj8VOSA.js → InfoAccordion-KgxR9XUm.js} +1 -1
  21. package/dist/assets/{InsightsChartAverageRuntime-fBD9kuRy.js → InsightsChartAverageRuntime-COSI3_o5.js} +4 -4
  22. package/dist/assets/{InsightsChartFailed-D0eryqz1.js → InsightsChartFailed-zPbPiVrK.js} +4 -4
  23. package/dist/assets/{InsightsChartFailureRate-DAKtR-Yn.js → InsightsChartFailureRate-BijFuiun.js} +4 -4
  24. package/dist/assets/{InsightsChartTimeSaved-D2bBxw3K.js → InsightsChartTimeSaved-QPkPrxuo.js} +4 -4
  25. package/dist/assets/{InsightsChartTotal-tNs5G6Pv.js → InsightsChartTotal-CAIfpPOZ.js} +4 -4
  26. package/dist/assets/{InsightsDashboard-DcqsEyj1.js → InsightsDashboard-D8_DXUIT.js} +10 -10
  27. package/dist/assets/{InsightsPaywall-CAnTbdTD.js → InsightsPaywall-BlFkYC7C.js} +1 -1
  28. package/dist/assets/{InsightsSummary-BLEU9OjR.js → InsightsSummary-DT-p4HNY.js} +1 -1
  29. package/dist/assets/{InsightsTableWorkflows-DXzDy1iG.js → InsightsTableWorkflows-CN4YWTtH.js} +6 -7
  30. package/dist/assets/{InsightsTableWorkflows-DJhX6bQW.css → InsightsTableWorkflows-RGpSnp7n.css} +3 -3
  31. package/dist/assets/{Logo-t6uGCxmL.js → Logo-BhBstNGh.js} +1 -1
  32. package/dist/assets/{LogsPanel-rZ53LX8m.js → LogsPanel-Ceg5ubnO.js} +14 -8
  33. package/dist/assets/{MainHeader-CjAV8RvB.js → MainHeader-4a5SCN9a.js} +12 -19
  34. package/dist/assets/{MainSidebar-CDvpxXC4.js → MainSidebar-PaqIlcl_.js} +4 -10
  35. package/dist/assets/{N8nDataTableServer-DntSk1nT.js → N8nDataTableServer-OWjVTbuy.js} +21 -11
  36. package/dist/assets/{NodeCreation-32nlvQSy.css → NodeCreation-CxN6JIS_.css} +9 -1
  37. package/dist/assets/{NodeCreation-CxSDDbsd.js → NodeCreation-vn1s6ViE.js} +43 -21
  38. package/dist/assets/{NodeCreator-CQTk-sCA.js → NodeCreator-8yXN9-3-.js} +2 -9
  39. package/dist/assets/{NodeDetailsView-CZg_bwey.js → NodeDetailsView-Bfqrvndc.js} +15 -15
  40. package/dist/assets/{NodeDetailsViewV2-DAJDWuEM.js → NodeDetailsViewV2-DvXkio7Z.js} +15 -15
  41. package/dist/assets/{NodeView-uEKgrAcq.js → NodeView-4YXAVrWh.js} +458 -164
  42. package/dist/assets/{NodeView-jttxVc0D.css → NodeView-hst6fesm.css} +69 -80
  43. package/dist/assets/{ProjectHeader-DC8uDFpX.js → ProjectHeader-BXo_XGDO.js} +2 -2
  44. package/dist/assets/{ProjectSettings-CdIf3mP3.js → ProjectSettings-Z5Kp6E53.js} +3 -3
  45. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DmQp9kQG.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DK8Mp74c.js} +1 -1
  46. package/dist/assets/{ResourcesListLayout-CsGmLUMK.js → ResourcesListLayout-DoL3gqUA.js} +3 -3
  47. package/dist/assets/{RunData-BDJozDMW.js → RunData-B9jGswDT.js} +83 -70
  48. package/dist/assets/{RunData-DuKNwYqe.css → RunData-D0dKnadD.css} +61 -62
  49. package/dist/assets/{RunDataJson-DawmUXFp.js → RunDataJson-CI2PEX1Z.js} +9 -9
  50. package/dist/assets/{RunDataJsonActions-DvZoNlqt.js → RunDataJsonActions-CdUL1gL3.js} +1 -1
  51. package/dist/assets/RunDataParsedAiContent-B6Ss5mvl.js +298 -0
  52. package/dist/assets/{RunDataSearch-uXQTShC8.js → RunDataSearch-DKaXYju2.js} +1 -1
  53. package/dist/assets/{RunDataTable-DWoOHela.js → RunDataTable-BQ3rdzoF.js} +50 -41
  54. package/dist/assets/{RunDataTable-CTBtmQIs.css → RunDataTable-n918b-Qv.css} +55 -55
  55. package/dist/assets/{SamlOnboarding-BjMkmYHT.js → SamlOnboarding-C_au26AK.js} +3 -3
  56. package/dist/assets/{SettingsApiView-DgFGFewu.js → SettingsApiView-aoaIK5C5.js} +1 -1
  57. package/dist/assets/{SettingsCommunityNodesView-C1eNL5To.js → SettingsCommunityNodesView-Bii1jYzp.js} +3 -3
  58. package/dist/assets/{SettingsExternalSecrets-Cl0Dak-3.js → SettingsExternalSecrets-DzoOLUAJ.js} +1 -1
  59. package/dist/assets/{SettingsLdapView-Dan7Jnwy.js → SettingsLdapView-CkLOtGjj.js} +1 -1
  60. package/dist/assets/{SettingsLogStreamingView-B4oVbBK9.js → SettingsLogStreamingView-CKBVxNwk.js} +1 -1
  61. package/dist/assets/{SettingsPersonalView-DbIE7aa3.js → SettingsPersonalView-gOoSkTpX.js} +1 -1
  62. package/dist/assets/{SettingsSourceControl-Cr8_Eg0R.js → SettingsSourceControl-C6XS-Myv.js} +1 -1
  63. package/dist/assets/{SettingsSso-BrpvaYn3.js → SettingsSso-CobNvKat.js} +1 -1
  64. package/dist/assets/{SettingsUsageAndPlan-BiYIIpxj.js → SettingsUsageAndPlan-3r39YZW1.js} +1 -1
  65. package/dist/assets/{SettingsUsersView-BuZbf1jq.css → SettingsUsersView-B81cHl3f.css} +9 -6
  66. package/dist/assets/{SettingsUsersView-BLp5n523.js → SettingsUsersView-DrrH1dLq.js} +12 -10
  67. package/dist/assets/{SettingsView-DHETYQsi.js → SettingsView-D_wEAbZb.js} +1 -1
  68. package/dist/assets/{SetupView-B9IJDdK3.js → SetupView-CU1QrNSu.js} +3 -3
  69. package/dist/assets/{SetupWorkflowCredentialsButton-De_46BW9.js → SetupWorkflowCredentialsButton-Do2E5w2d.js} +1 -1
  70. package/dist/assets/{SetupWorkflowFromTemplateView-B9LnyePi.js → SetupWorkflowFromTemplateView-cuwHIvkB.js} +3 -3
  71. package/dist/assets/{SigninView-BjnpHjgM.js → SigninView-DA11h2Kr.js} +3 -3
  72. package/dist/assets/{SignoutView-Bf33UWpi.js → SignoutView-VJrMh5w7.js} +1 -1
  73. package/dist/assets/{SignupView-B6Utr0BG.js → SignupView-BNTIWYSE.js} +3 -3
  74. package/dist/assets/{TableBase-DPqBDUNa.js → TableBase-B5rreQVh.js} +1 -1
  75. package/dist/assets/{Tags-ki_fin7z.js → Tags-SJm7l2s6.js} +1 -1
  76. package/dist/assets/{TemplateDetails-b-rTlfmS.js → TemplateDetails-B6-Nkya8.js} +2 -2
  77. package/dist/assets/{TemplateList-go47S5P8.js → TemplateList-C4Dqsvfp.js} +1 -1
  78. package/dist/assets/{TemplatesCollectionView-PM8SkYKM.js → TemplatesCollectionView-BMGZ939P.js} +6 -6
  79. package/dist/assets/{TemplatesSearchView-Dv3OFfOH.js → TemplatesSearchView-CIo8eprI.js} +3 -3
  80. package/dist/assets/{TemplatesView-C53oSOei.js → TemplatesView-MshXkM2_.js} +1 -1
  81. package/dist/assets/{TemplatesWorkflowView-yGTh1vx0.js → TemplatesWorkflowView-LWBGoJBO.js} +6 -6
  82. package/dist/assets/{TriggerPanel-BtxQKEba.js → TriggerPanel-C-0JCegt.js} +4 -112
  83. package/dist/assets/{VariablesView-D6Sqss5R.js → VariablesView-omKbxNoc.js} +5 -5
  84. package/dist/assets/{WorkerView-CCm-0r6W.js → WorkerView-DPnCbr1B.js} +5 -5
  85. package/dist/assets/{WorkflowActivator-taKR3qi9.js → WorkflowActivator-Hn_uDFPH.js} +2 -2
  86. package/dist/assets/{WorkflowExecutionsInfoAccordion-B-jxSeA2.js → WorkflowExecutionsInfoAccordion-DWSeluMM.js} +2 -2
  87. package/dist/assets/{WorkflowExecutionsLandingPage-T7Kv-LQw.js → WorkflowExecutionsLandingPage-BMcxBJEl.js} +3 -3
  88. package/dist/assets/{WorkflowExecutionsPreview-mvdjkWAp.js → WorkflowExecutionsPreview-Csq6C8Vh.js} +9 -7
  89. package/dist/assets/{WorkflowExecutionsView-CbWwQbZd.js → WorkflowExecutionsView-6L7iZJq1.js} +8 -8
  90. package/dist/assets/{WorkflowHistory-DukG3zvH.js → WorkflowHistory-B0t-0Z77.js} +3 -3
  91. package/dist/assets/{WorkflowOnboardingView-F_3OkKLr.js → WorkflowOnboardingView-DuI2I9MQ.js} +1 -1
  92. package/dist/assets/{WorkflowPreview-BSyfEcul.js → WorkflowPreview-D4kwrMFk.js} +3 -1
  93. package/dist/assets/{WorkflowsView-D7G3OiP4.js → WorkflowsView-WU-IKn4K.js} +52 -10
  94. package/dist/assets/{chartjs.utils-tOuNugD6.js → chartjs.utils-Bc5bGj66.js} +2 -2
  95. package/dist/assets/{en-CcKAtA8V.js → en-FjyeYndD.js} +7 -0
  96. package/dist/assets/{global-link-actions-ApLuKzR7.js → global-link-actions-BZz1vmQq.js} +1 -1
  97. package/dist/assets/{import-curl-C97T8B2Z.js → import-curl-jc1UtwMR.js} +1 -1
  98. package/dist/assets/{index-COleXxZf.css → index-C6LoGNAx.css} +84 -217
  99. package/dist/assets/{index-Bc_EAhEX.js → index-CAU8Zeff.js} +2979 -2765
  100. package/dist/assets/{index-xisjkmTV.js → index-Cohi4onR.js} +1 -1
  101. package/dist/assets/{pickBy-hjwypYbp.js → pickBy-Bmcb35Dl.js} +1 -1
  102. package/dist/assets/{templateActions-C6lKmTTP.js → templateActions-Bsj8nngl.js} +1 -1
  103. package/dist/assets/{useBeforeUnload-BB6o3uNC.js → useBeforeUnload-aOI6YxZR.js} +1 -1
  104. package/dist/assets/{useExecutionDebugging-B_nePSQI.js → useExecutionDebugging-dVW9cpg5.js} +1 -1
  105. package/dist/assets/{useExecutionHelpers-D2zXfbFy.js → useExecutionHelpers-BIfEl-h7.js} +1 -1
  106. package/dist/assets/{useImportCurlCommand-DY5nDfnn.js → useImportCurlCommand-B4EFH3RG.js} +2 -2
  107. package/dist/assets/{useKeybindings-CWoF0-wG.js → useKeybindings-0d48UFTt.js} +72 -2
  108. package/dist/assets/{useProjectPages-C1iuN501.js → useProjectPages-4b50pSat.js} +1 -1
  109. package/dist/assets/{usePushConnection-BzHRKmnQ.js → usePushConnection-CKW8UPyl.js} +2 -2
  110. package/dist/assets/{useWorkflowActivate-BtgQtLYi.js → useWorkflowActivate-C39vU0rW.js} +1 -1
  111. package/dist/index.html +2 -2
  112. package/eslint.config.mjs +1 -1
  113. package/package.json +1 -1
  114. package/dist/assets/CollectionParameter-BHZreCj9.js +0 -4
  115. package/dist/assets/RunDataParsedAiContent-CqrmaGMC.js +0 -148
@@ -1,18 +1,18 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-CxSDDbsd.js","assets/index-Bc_EAhEX.js","assets/index-COleXxZf.css","assets/NodeCreation-32nlvQSy.css","assets/NodeDetailsView-CZg_bwey.js","assets/TriggerPanel-BtxQKEba.js","assets/RunData-BDJozDMW.js","assets/FileSaver.min-cXi1Jtg0.js","assets/useKeybindings-CWoF0-wG.js","assets/useKeybindings-BUK7Ngh6.css","assets/useExecutionHelpers-D2zXfbFy.js","assets/RunData-DuKNwYqe.css","assets/RunDataParsedAiContent-CqrmaGMC.js","assets/RunDataParsedAiContent-wfIiKsq7.css","assets/InfoAccordion-CUj8VOSA.js","assets/InfoAccordion-dxudNqVC.css","assets/TriggerPanel-DRpKKKun.css","assets/useWorkflowActivate-BtgQtLYi.js","assets/ActionDropdown-DetvHLId.js","assets/ActionDropdown-BmC0wfMx.css","assets/import-curl-C97T8B2Z.js","assets/global-link-actions-ApLuKzR7.js","assets/useExecutionDebugging-B_nePSQI.js","assets/useBeforeUnload-BB6o3uNC.js","assets/NodeDetailsView-CaTI-1QQ.css","assets/NodeDetailsViewV2-DAJDWuEM.js","assets/NodeDetailsViewV2-BxNx4ZUM.css","assets/SetupWorkflowCredentialsButton-De_46BW9.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$R, x as computed, a0 as _sfc_main$S, c as useI18n, c7 as KeyboardShortcutTooltip, n as normalizeClass, q as N8nButton, bo as NodeConnectionTypes, cq as getBezierPath, cr as getSmoothStepPath, cs as Position, bU as inject, ct as CanvasKey, ab 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, bG as useNodeTypesStore, a4 as useWorkflowsStore, ae as useSourceControlStore, am as getResourcePermissions, cw as isNodeWithWorkflowSelector, cx as getSubworkflowId, cy as isPresent, aa as watch, cz as getMousePosition, aS as STICKY_NODE_TYPE, bz as usePinnedData, cA as NOT_DUPLICATABLE_NODE_TYPES, cB as isExecutable, cC as Teleport, c9 as useStyles, bJ 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, bE as provide, aK as h, bh 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$T, N as N8nIcon, $ as N8nTooltip, bB as useNodeHelpers, cU as TitledList, k as createTextVNode, cV as CanvasNodeDirtiness, ar as useTemplateRef, cW as useElementSize, bP as _sfc_main$U, as as InlineRename, cX as toValue, cY as isCommunityPackageName, cZ as NPM_PACKAGE_DOCS_BASE_URL, c_ as BUILTIN_NODES_DOCS_URL, aM as useNDVStore, c$ as COMMUNITY_NODES_INSTALLATION_DOCS_URL, d0 as N8nTabs, bf as useExternalHooks, ay as useTelemetry, c2 as useClipboard, ak as useWorkflowHelpers, a as useToast, d1 as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, d2 as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, d3 as MCP_TRIGGER_NODE_TYPE, d4 as FORM_TRIGGER_NODE_TYPE, bx as CHAT_TRIGGER_NODE_TYPE, O as resolveComponent, H as N8nRadioButtons, bg as onClickOutside, d5 as toRef$1, d6 as tryOnScopeDispose, d7 as toValue$1, d8 as isIOS, d9 as noop$2, da as isObject, db as isClient, S as useDebounce, dc as getNodeInputs, dd as _sfc_main$V, v as useSettingsStore, de as useCredentialsStore, u as useUsersStore, af as useProjectsStore, df as OPEN_AI_API_CREDENTIAL_TYPE, dg as N8nCallout, p as N8nText, dh as useHistoryStore, aO as usePostHog, di as useNodeSettingsParameters, dj as useResizeObserver, aq as ProjectTypes, dk as NDV_UI_OVERHAUL_EXPERIMENT, dl as BASE_NODE_SURVEY_URL, cm as ndvEventBus, bO as withModifiers, a1 as N8nLink, dm as CUSTOM_NODES_DOCS_URL, aU as withDirectives, dn as N8nNotice, aV as vShow, dp as _sfc_main$W, dq as NodeCredentials, bq as get$3, dr as getNodeParameters, ds as deepCopy, dt as nameIsParameter, du as RenameNodeCommand, bF as useCanvasOperations, Q as createEventBus, a2 as defineStore, cd as shallowRef, dv as watchOnce, dw as calculateNodeSize, dx as NodeId, dy as useGetPointerPosition, dz as clamp, dA as N8nSticky, dB as useNodeCreatorStore, az as nodeViewEventBus, dC as NODE_CREATOR_OPEN_SOURCES, dD as useBuilderStore, a_ as withKeys, dE as N8nInput, dF as CanvasNodeHandleKey, dG as Transition$1, dH as _sfc_main$f$1, b as useRouter, bA as useLogsStore, bC as useRunWorkflow, dI as insertSpacersBetweenEndpoints, dJ as createCanvasConnectionHandleString, dK as CONFIGURATION_NODE_OFFSET, dL as isEqual, dM as useDeviceSupport, dN as isOutsideSelected, K as nextTick, dO as _sfc_main$1$4, dP as MarkerType, dQ as Suspense, bX as guardReactiveProps, dR as updateViewportToContainNodes, dS as useNodeDirtiness, dT as CUSTOM_API_CALL_KEY, dU as mapLegacyEndpointsToCanvasConnectionPort, dV as getNodeOutputs, dW as getTriggerNodeServiceName, dX as sanitizeHtml, dY as WAIT_NODE_TYPE, dZ as SEND_AND_WAIT_OPERATION, d_ as FORM_NODE_TYPE, d$ as WAIT_INDEFINITELY, e0 as checkOverlap, e1 as SIMULATE_NODE_TYPE, e2 as SIMULATE_TRIGGER_NODE_TYPE, e3 as mapLegacyConnectionsToCanvasConnections, e4 as getNodeIconSource, e5 as refThrottled, e6 as useFocusPanelStore, e7 as isValueExpression, e8 as __unplugin_components_2$2, e9 as __unplugin_components_3$1, bn as isChatNode, ea as truncateBeforeLast, eb as reactive, a5 as useRoute, ai as useDocumentTitle, aj as useWorkflowSaving, ec as useEnvironmentsStore, ed as useExternalSecretsStore, ac as useRootStore, aN as useExecutionsStore, ad as useCanvasStore, ah as useNpsSurveyStore, R as useTagsStore, a3 as usePushConnectionStore, bd as useTemplatesStore, ag as useFoldersStore, ee as useAgentRequestStore, ef as useWorkflowExtraction, eg as FOCUS_PANEL_EXPERIMENT, a6 as PLACEHOLDER_EMPTY_WORKFLOW_ID, eh as NEW_WORKFLOW_ID, V as VIEWS, bH as START_NODE_TYPE, ei as getNodeViewTab, G as MAIN_HEADER_TABS, ej as VALID_WORKFLOW_IMPORT_URL_REGEX, aA as useMessage, aB as MODAL_CONFIRM, ek as jsonParse, bw as MANUAL_CHAT_TRIGGER_NODE_TYPE, el as EVALUATION_TRIGGER_NODE_TYPE, em as getBounds, en as onBeforeRouteLeave, aT as onBeforeMount, aC as WORKFLOW_SETTINGS_MODAL_KEY, eo as onActivated, ep as onDeactivated, eq as defineAsyncComponent, aI as __vitePreload, ap as EnterpriseEditionFeature, er as EVALUATION_NODE_TYPE, es as getEasyAiWorkflowJson, et as getRagStarterWorkflowJson, eu as tryToParseNumber, b3 as sourceControlEventBus, ev as getNodesWithNormalizedPosition, ew as needsAgentInput, ex as FROM_AI_PARAMETERS_MODAL_KEY, ey as historyBus, ez as DRAG_EVENT_DATA_KEY } from "./index-Bc_EAhEX.js";
3
- import { N as N8nActionDropdown } from "./ActionDropdown-DetvHLId.js";
4
- import { N as N8nBlockUi, u as useKeybindings, c as canvasEventBus } from "./useKeybindings-CWoF0-wG.js";
5
- import { i as importCurlEventBus } from "./import-curl-C97T8B2Z.js";
6
- import { g as globalLinkActionsEventBus } from "./global-link-actions-ApLuKzR7.js";
7
- import { u as useExecutionDebugging } from "./useExecutionDebugging-B_nePSQI.js";
8
- import { u as useBeforeUnload } from "./useBeforeUnload-BB6o3uNC.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-vn1s6ViE.js","assets/index-CAU8Zeff.js","assets/index-C6LoGNAx.css","assets/NodeCreation-CxN6JIS_.css","assets/NodeDetailsView-Bfqrvndc.js","assets/TriggerPanel-C-0JCegt.js","assets/RunData-B9jGswDT.js","assets/FileSaver.min-BoHgd5iv.js","assets/useKeybindings-0d48UFTt.js","assets/useKeybindings-BUK7Ngh6.css","assets/useExecutionHelpers-BIfEl-h7.js","assets/RunData-D0dKnadD.css","assets/RunDataParsedAiContent-B6Ss5mvl.js","assets/RunDataParsedAiContent-wfIiKsq7.css","assets/InfoAccordion-KgxR9XUm.js","assets/InfoAccordion-dxudNqVC.css","assets/TriggerPanel-DRpKKKun.css","assets/useWorkflowActivate-C39vU0rW.js","assets/ActionDropdown-oe2q-18e.js","assets/ActionDropdown-BmC0wfMx.css","assets/import-curl-jc1UtwMR.js","assets/global-link-actions-BZz1vmQq.js","assets/useExecutionDebugging-dVW9cpg5.js","assets/useBeforeUnload-aOI6YxZR.js","assets/NodeDetailsView-CaTI-1QQ.css","assets/NodeDetailsViewV2-DvXkio7Z.js","assets/NodeDetailsViewV2-BxNx4ZUM.css","assets/SetupWorkflowCredentialsButton-Do2E5w2d.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$R, x as computed, a0 as _sfc_main$S, c as useI18n, c7 as KeyboardShortcutTooltip, n as normalizeClass, q as N8nButton, $ as N8nTooltip, bo as NodeConnectionTypes, cq as getBezierPath, cr as getSmoothStepPath, cs as Position, bU as inject, ct as CanvasKey, ab 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, bG as useNodeTypesStore, a4 as useWorkflowsStore, ae as useSourceControlStore, am as getResourcePermissions, cw as isNodeWithWorkflowSelector, cx as getSubworkflowId, cy as isPresent, aa as watch, cz as getMousePosition, aQ as STICKY_NODE_TYPE, bz as usePinnedData, cA as NOT_DUPLICATABLE_NODE_TYPES, cB as isExecutable, cC as Teleport, c9 as useStyles, bJ 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, bE as provide, aK as h, bf 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$T, N as N8nIcon, bB as useNodeHelpers, cU as TitledList, k as createTextVNode, cV as CanvasNodeDirtiness, ar as useTemplateRef, cW as useElementSize, bP as _sfc_main$U, as as InlineRename, cX as toValue, cY as isCommunityPackageName, cZ as NPM_PACKAGE_DOCS_BASE_URL, c_ as BUILTIN_NODES_DOCS_URL, aM as useNDVStore, c$ as COMMUNITY_NODES_INSTALLATION_DOCS_URL, d0 as N8nTabs, bd as useExternalHooks, ay as useTelemetry, c2 as useClipboard, ak as useWorkflowHelpers, a as useToast, d1 as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, d2 as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, d3 as MCP_TRIGGER_NODE_TYPE, d4 as FORM_TRIGGER_NODE_TYPE, bx as CHAT_TRIGGER_NODE_TYPE, O as resolveComponent, H as N8nRadioButtons, be as onClickOutside, d5 as toRef$1, d6 as tryOnScopeDispose, d7 as toValue$1, d8 as isIOS, d9 as noop$2, da as isObject, db as isClient, S as useDebounce, dc as getNodeInputs, dd as _sfc_main$V, v as useSettingsStore, de as useCredentialsStore, u as useUsersStore, af as useProjectsStore, df as OPEN_AI_API_CREDENTIAL_TYPE, dg as N8nCallout, p as N8nText, dh as useHistoryStore, di as usePostHog, dj as useNodeSettingsParameters, dk as useResizeObserver, aq as ProjectTypes, dl as NDV_UI_OVERHAUL_EXPERIMENT, dm as BASE_NODE_SURVEY_URL, cm as ndvEventBus, bO as withModifiers, a1 as N8nLink, dn as CUSTOM_NODES_DOCS_URL, aS as withDirectives, dp as N8nNotice, aT as vShow, dq as _sfc_main$W, dr as NodeCredentials, bq as get$3, ds as getNodeParameters, dt as deepCopy, du as nameIsParameter, dv as RenameNodeCommand, bF as useCanvasOperations, Q as createEventBus, dw as useEnvironmentsStore, dx as ExpressionLocalResolveContextSymbol, dy as watchOnce, dz as calculateNodeSize, dA as NodeId, dB as useGetPointerPosition, dC as clamp, dD as N8nSticky, dE as useNodeCreatorStore, bb as useTemplatesStore, V as VIEWS, dF as isExtraTemplateLinksExperimentEnabled, az as nodeViewEventBus, bj as trackTemplatesClick, bk as TemplateClickSource, dG as NODE_CREATOR_OPEN_SOURCES, dH as useBuilderStore, aY as withKeys, dI as N8nInput, dJ as CanvasNodeHandleKey, dK as Transition$1, dL as _sfc_main$f$1, b as useRouter, bA as useLogsStore, bC as useRunWorkflow, dM as insertSpacersBetweenEndpoints, dN as createCanvasConnectionHandleString, dO as CONFIGURATION_NODE_OFFSET, dP as isEqual, dQ as useDeviceSupport, dR as isOutsideSelected, K as nextTick, dS as _sfc_main$1$4, dT as MarkerType, dU as Suspense, bX as guardReactiveProps, dV as updateViewportToContainNodes, dW as useNodeDirtiness, dX as CUSTOM_API_CALL_KEY, dY as mapLegacyEndpointsToCanvasConnectionPort, dZ as getNodeOutputs, d_ as getTriggerNodeServiceName, d$ as sanitizeHtml, e0 as WAIT_NODE_TYPE, e1 as SEND_AND_WAIT_OPERATION, e2 as FORM_NODE_TYPE, e3 as WAIT_INDEFINITELY, e4 as checkOverlap, e5 as SIMULATE_NODE_TYPE, e6 as SIMULATE_TRIGGER_NODE_TYPE, e7 as mapLegacyConnectionsToCanvasConnections, e8 as getNodeIconSource, e9 as refThrottled, ea as useFocusPanelStore, eb as HTML_NODE_TYPE, ec as isValueExpression, ed as isResourceLocatorValue, ee as AI_TRANSFORM_NODE_TYPE, ef as useResolvedExpression, eg as __unplugin_components_2$2, eh as __unplugin_components_3$1, ei as __unplugin_components_4, ej as __unplugin_components_5, ek as __unplugin_components_6, el as __unplugin_components_7, em as __unplugin_components_8, en as __unplugin_components_9, eo as getParameterTypeOption, ep as htmlEditorEventBus, eq as parseFromExpression, er as isValidParameterOption, es as formatAsExpression, et as hasFocusOnInput, eu as isFocusableEl, bn as isChatNode, ev as truncateBeforeLast, ew as reactive, a5 as useRoute, ai as useDocumentTitle, aj as useWorkflowSaving, ex as useExternalSecretsStore, ac as useRootStore, aN as useExecutionsStore, ad as useCanvasStore, ah as useNpsSurveyStore, R as useTagsStore, a3 as usePushConnectionStore, ag as useFoldersStore, ey as useAgentRequestStore, ez as useWorkflowExtraction, eA as FOCUS_PANEL_EXPERIMENT, a6 as PLACEHOLDER_EMPTY_WORKFLOW_ID, eB as NEW_WORKFLOW_ID, bH as START_NODE_TYPE, eC as getNodeViewTab, G as MAIN_HEADER_TABS, eD as VALID_WORKFLOW_IMPORT_URL_REGEX, aA as useMessage, aB as MODAL_CONFIRM, eE as jsonParse, bw as MANUAL_CHAT_TRIGGER_NODE_TYPE, eF as EVALUATION_TRIGGER_NODE_TYPE, eG as getBounds, eH as onBeforeRouteLeave, aR as onBeforeMount, aC as WORKFLOW_SETTINGS_MODAL_KEY, eI as onActivated, eJ as onDeactivated, eK as defineAsyncComponent, aI as __vitePreload, ap as EnterpriseEditionFeature, eL as EVALUATION_NODE_TYPE, eM as getEasyAiWorkflowJson, eN as getRagStarterWorkflowJson, eO as tryToParseNumber, b1 as sourceControlEventBus, eP as getNodesWithNormalizedPosition, eQ as needsAgentInput, eR as FROM_AI_PARAMETERS_MODAL_KEY, eS as historyBus, eT as DRAG_EVENT_DATA_KEY } from "./index-CAU8Zeff.js";
3
+ import { u as useExperimentalNdvStore, N as N8nBlockUi, a as useKeybindings, c as canvasEventBus } from "./useKeybindings-0d48UFTt.js";
4
+ import { N as N8nActionDropdown } from "./ActionDropdown-oe2q-18e.js";
5
+ import { i as importCurlEventBus } from "./import-curl-jc1UtwMR.js";
6
+ import { g as globalLinkActionsEventBus } from "./global-link-actions-BZz1vmQq.js";
7
+ import { u as useExecutionDebugging } from "./useExecutionDebugging-dVW9cpg5.js";
8
+ import { u as useBeforeUnload } from "./useBeforeUnload-aOI6YxZR.js";
9
9
  const _sfc_main$Q = {};
10
- const _hoisted_1$h = {
10
+ const _hoisted_1$g = {
11
11
  xmlns: "http://www.w3.org/2000/svg",
12
12
  viewBox: "0 0 16 16"
13
13
  };
14
14
  function _sfc_render$1(_ctx, _cache) {
15
- return openBlock(), createElementBlock("svg", _hoisted_1$h, _cache[0] || (_cache[0] = [
15
+ return openBlock(), createElementBlock("svg", _hoisted_1$g, _cache[0] || (_cache[0] = [
16
16
  createBaseVNode("path", {
17
17
  fill: "currentColor",
18
18
  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"
@@ -86,7 +86,7 @@ function render$1(_ctx, _cache) {
86
86
  return openBlock(), createElementBlock("svg", _hoisted_1$1$2, _hoisted_3$1$1);
87
87
  }
88
88
  const Lock = { render: render$1 };
89
- const _hoisted_1$g = {
89
+ const _hoisted_1$f = {
90
90
  xmlns: "http://www.w3.org/2000/svg",
91
91
  viewBox: "0 0 25 32"
92
92
  };
@@ -95,7 +95,7 @@ const _hoisted_3$7 = [
95
95
  _hoisted_2$b
96
96
  ];
97
97
  function render(_ctx, _cache) {
98
- return openBlock(), createElementBlock("svg", _hoisted_1$g, _hoisted_3$7);
98
+ return openBlock(), createElementBlock("svg", _hoisted_1$f, _hoisted_3$7);
99
99
  }
100
100
  const Unlock = { render };
101
101
  const __default__$4 = {
@@ -229,6 +229,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
229
229
  const props = __props;
230
230
  const emit = __emit;
231
231
  const i18n = useI18n();
232
+ const experimentalNdvStore = useExperimentalNdvStore();
232
233
  const isResetZoomVisible = computed(() => props.zoom !== 1);
233
234
  function onResetZoom() {
234
235
  emit("reset-zoom");
@@ -248,6 +249,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
248
249
  return (_ctx, _cache) => {
249
250
  const _component_N8nIconButton = _sfc_main$S;
250
251
  const _component_N8nButton = N8nButton;
252
+ const _component_N8nTooltip = N8nTooltip;
251
253
  return openBlock(), createBlock(unref(_sfc_main$P), {
252
254
  "show-zoom": false,
253
255
  "show-fit-view": false
@@ -335,7 +337,37 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
335
337
  }, 8, ["class"])
336
338
  ]),
337
339
  _: 1
338
- }, 8, ["label"])) : createCommentVNode("", true)
340
+ }, 8, ["label"])) : createCommentVNode("", true),
341
+ unref(experimentalNdvStore).isActive(props.zoom) ? (openBlock(), createBlock(_component_N8nTooltip, {
342
+ key: 2,
343
+ placement: "top",
344
+ content: unref(i18n).baseText("nodeView.expandAllNodes")
345
+ }, {
346
+ default: withCtx(() => [
347
+ createVNode(_component_N8nIconButton, {
348
+ type: "tertiary",
349
+ size: "large",
350
+ icon: "maximize-2",
351
+ onClick: unref(experimentalNdvStore).expandAllNodes
352
+ }, null, 8, ["onClick"])
353
+ ]),
354
+ _: 1
355
+ }, 8, ["content"])) : createCommentVNode("", true),
356
+ unref(experimentalNdvStore).isActive(props.zoom) ? (openBlock(), createBlock(_component_N8nTooltip, {
357
+ key: 3,
358
+ placement: "top",
359
+ content: unref(i18n).baseText("nodeView.collapseAllNodes")
360
+ }, {
361
+ default: withCtx(() => [
362
+ createVNode(_component_N8nIconButton, {
363
+ type: "tertiary",
364
+ size: "large",
365
+ icon: "minimize-2",
366
+ onClick: unref(experimentalNdvStore).collapseAllNodes
367
+ }, null, 8, ["onClick"])
368
+ ]),
369
+ _: 1
370
+ }, 8, ["content"])) : createCommentVNode("", true)
339
371
  ]),
340
372
  _: 1
341
373
  });
@@ -7294,7 +7326,7 @@ const _sfc_main$1$2 = /* @__PURE__ */ defineComponent({
7294
7326
  };
7295
7327
  }
7296
7328
  });
7297
- const _hoisted_1$f = ["width", "height", "viewBox", "aria-labelledby"];
7329
+ const _hoisted_1$e = ["width", "height", "viewBox", "aria-labelledby"];
7298
7330
  const _hoisted_2$a = ["id"];
7299
7331
  const _hoisted_3$6 = ["d", "fill", "stroke", "stroke-width"];
7300
7332
  const __default__$3 = {
@@ -7515,14 +7547,14 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
7515
7547
  "stroke-width": _ctx.maskStrokeWidth,
7516
7548
  "fill-rule": "evenodd"
7517
7549
  }, null, 8, _hoisted_3$6)
7518
- ], 8, _hoisted_1$f))
7550
+ ], 8, _hoisted_1$e))
7519
7551
  ]),
7520
7552
  _: 1
7521
7553
  }, 8, ["position", "class"]);
7522
7554
  };
7523
7555
  }
7524
7556
  });
7525
- const _hoisted_1$e = ["id", "x", "y", "width", "height", "patternTransform"];
7557
+ const _hoisted_1$d = ["id", "x", "y", "width", "height", "patternTransform"];
7526
7558
  const _hoisted_2$9 = ["d", "stroke-width"];
7527
7559
  const _sfc_main$K = /* @__PURE__ */ defineComponent({
7528
7560
  __name: "CanvasBackgroundStripedPattern",
@@ -7550,7 +7582,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
7550
7582
  d: `M0 ${scaledGap.value / 2} H${scaledGap.value}`,
7551
7583
  "stroke-width": scaledGap.value / 2
7552
7584
  }, null, 8, _hoisted_2$9)
7553
- ], 8, _hoisted_1$e);
7585
+ ], 8, _hoisted_1$d);
7554
7586
  };
7555
7587
  }
7556
7588
  });
@@ -7578,7 +7610,7 @@ const DefaultBgColors = {
7578
7610
  [BackgroundVariant.Dots]: "#81818a",
7579
7611
  [BackgroundVariant.Lines]: "#eee"
7580
7612
  };
7581
- const _hoisted_1$d = ["id", "x", "y", "width", "height", "patternTransform"];
7613
+ const _hoisted_1$c = ["id", "x", "y", "width", "height", "patternTransform"];
7582
7614
  const _hoisted_2$8 = {
7583
7615
  key: 2,
7584
7616
  height: "100",
@@ -7661,7 +7693,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
7661
7693
  }, null, 8, _hoisted_3$5)
7662
7694
  ])) : createCommentVNode("", true)
7663
7695
  ])
7664
- ], 8, _hoisted_1$d)
7696
+ ], 8, _hoisted_1$c)
7665
7697
  ]),
7666
7698
  createBaseVNode("rect", {
7667
7699
  x: _ctx.x,
@@ -7705,7 +7737,7 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
7705
7737
  };
7706
7738
  }
7707
7739
  });
7708
- const _hoisted_1$c = ["id"];
7740
+ const _hoisted_1$b = ["id"];
7709
7741
  const _sfc_main$H = /* @__PURE__ */ defineComponent({
7710
7742
  __name: "CanvasArrowHeadMarker",
7711
7743
  props: {
@@ -7733,7 +7765,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
7733
7765
  stroke: "context-stroke",
7734
7766
  fill: "context-stroke"
7735
7767
  }, null, -1)
7736
- ]), 8, _hoisted_1$c)
7768
+ ]), 8, _hoisted_1$b)
7737
7769
  ])
7738
7770
  ]);
7739
7771
  };
@@ -7799,7 +7831,7 @@ const cssModules$w = {
7799
7831
  "$style": style0$w
7800
7832
  };
7801
7833
  const CanvasEdgeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$G, [["__cssModules", cssModules$w]]);
7802
- const _hoisted_1$b = ["data-source-node-name", "data-target-node-name"];
7834
+ const _hoisted_1$a = ["data-source-node-name", "data-target-node-name"];
7803
7835
  const _hoisted_2$7 = ["data-source-node-name", "data-target-node-name", "data-edge-status"];
7804
7836
  const delayedHoveredTimeout = 600;
7805
7837
  const _sfc_main$F = /* @__PURE__ */ defineComponent({
@@ -7948,7 +7980,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
7948
7980
  "interaction-width": 40
7949
7981
  }, null, 8, ["id", "class", "style", "path", "marker-end"]);
7950
7982
  }), 128))
7951
- ], 8, _hoisted_1$b),
7983
+ ], 8, _hoisted_1$a),
7952
7984
  createVNode(unref(_sfc_main$3$1), null, {
7953
7985
  default: withCtx(() => [
7954
7986
  createBaseVNode("div", {
@@ -8066,7 +8098,7 @@ function useCanvasNode() {
8066
8098
  eventBus
8067
8099
  };
8068
8100
  }
8069
- const _hoisted_1$a = ["title"];
8101
+ const _hoisted_1$9 = ["title"];
8070
8102
  const _hoisted_2$6 = ["onClick"];
8071
8103
  const _sfc_main$E = /* @__PURE__ */ defineComponent({
8072
8104
  __name: "CanvasNodeStickyColorSelector",
@@ -8132,7 +8164,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
8132
8164
  title: unref(i18n).baseText("node.changeColor")
8133
8165
  }, [
8134
8166
  createVNode(_component_N8nIcon, { icon: "palette" })
8135
- ], 10, _hoisted_1$a)
8167
+ ], 10, _hoisted_1$9)
8136
8168
  ]),
8137
8169
  default: withCtx(() => [
8138
8170
  createBaseVNode("div", {
@@ -8195,7 +8227,8 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
8195
8227
  const { isDisabled, render: render2, name } = useCanvasNode();
8196
8228
  const workflowsStore = useWorkflowsStore();
8197
8229
  const nodeTypesStore = useNodeTypesStore();
8198
- const node2 = computed(() => !!name.value && workflowsStore.getNodeByName(name.value));
8230
+ const experimentalNdvStore = useExperimentalNdvStore();
8231
+ const node2 = computed(() => name.value ? workflowsStore.getNodeByName(name.value) : null);
8199
8232
  const isToolNode = computed(() => !!node2.value && nodeTypesStore.isToolNode(node2.value.type));
8200
8233
  const nodeDisabledTitle = computed(() => {
8201
8234
  return isDisabled.value ? i18n.baseText("node.enable") : i18n.baseText("node.disable");
@@ -8214,6 +8247,9 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
8214
8247
  return !props.readOnly && render2.value.type === CanvasNodeRenderType.Default;
8215
8248
  });
8216
8249
  const isDeleteNodeVisible = computed(() => !props.readOnly);
8250
+ const isFocusNodeVisible = computed(
8251
+ () => experimentalNdvStore.isEnabled && node2.value !== null && experimentalNdvStore.collapsedNodes[node2.value.id] !== false
8252
+ );
8217
8253
  const isStickyNoteChangeColorVisible = computed(
8218
8254
  () => !props.readOnly && render2.value.type === CanvasNodeRenderType.StickyNote
8219
8255
  );
@@ -8240,6 +8276,11 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
8240
8276
  function onMouseLeave() {
8241
8277
  isHovered.value = false;
8242
8278
  }
8279
+ function onFocusNode() {
8280
+ if (node2.value) {
8281
+ experimentalNdvStore.focusNode(node2.value.id);
8282
+ }
8283
+ }
8243
8284
  return (_ctx, _cache) => {
8244
8285
  const _component_N8nIconButton = _sfc_main$S;
8245
8286
  const _component_N8nTooltip = N8nTooltip;
@@ -8293,8 +8334,16 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
8293
8334
  title: unref(i18n).baseText("node.delete"),
8294
8335
  onClick: onDeleteNode
8295
8336
  }, null, 8, ["title"])) : createCommentVNode("", true),
8296
- isStickyNoteChangeColorVisible.value ? (openBlock(), createBlock(_component_CanvasNodeStickyColorSelector, {
8337
+ isFocusNodeVisible.value ? (openBlock(), createBlock(_component_N8nIconButton, {
8297
8338
  key: 2,
8339
+ type: "tertiary",
8340
+ size: "small",
8341
+ text: "",
8342
+ icon: "crosshair",
8343
+ onClick: onFocusNode
8344
+ })) : createCommentVNode("", true),
8345
+ isStickyNoteChangeColorVisible.value ? (openBlock(), createBlock(_component_CanvasNodeStickyColorSelector, {
8346
+ key: 3,
8298
8347
  visible: isStickyColorSelectorOpen.value,
8299
8348
  "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => isStickyColorSelectorOpen.value = $event),
8300
8349
  onUpdate: onChangeStickyColor
@@ -8324,7 +8373,7 @@ const cssModules$t = {
8324
8373
  "$style": style0$t
8325
8374
  };
8326
8375
  const CanvasNodeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$D, [["__cssModules", cssModules$t]]);
8327
- const _hoisted_1$9 = { key: 1 };
8376
+ const _hoisted_1$8 = { key: 1 };
8328
8377
  const _hoisted_2$5 = ["textContent"];
8329
8378
  const _hoisted_3$4 = { key: 2 };
8330
8379
  const _hoisted_4$3 = { key: 5 };
@@ -8377,7 +8426,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
8377
8426
  ]),
8378
8427
  _: 1
8379
8428
  })
8380
- ], 2)) : unref(executionWaiting) || unref(executionStatus) === "waiting" ? (openBlock(), createElementBlock("div", _hoisted_1$9, [
8429
+ ], 2)) : unref(executionWaiting) || unref(executionStatus) === "waiting" ? (openBlock(), createElementBlock("div", _hoisted_1$8, [
8381
8430
  createBaseVNode("div", {
8382
8431
  class: normalizeClass([_ctx.$style.status, _ctx.$style.waiting])
8383
8432
  }, [
@@ -8804,7 +8853,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
8804
8853
  };
8805
8854
  }
8806
8855
  });
8807
- const _hoisted_1$8 = {
8856
+ const _hoisted_1$7 = {
8808
8857
  key: 0,
8809
8858
  class: "webhooks"
8810
8859
  };
@@ -8979,7 +9028,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
8979
9028
  const _component_el_row = resolveComponent("el-row");
8980
9029
  const _component_n8n_tooltip = N8nTooltip;
8981
9030
  const _component_el_collapse_transition = resolveComponent("el-collapse-transition");
8982
- return webhooksNode.value.length && visibleWebhookUrls.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$8, [
9031
+ return webhooksNode.value.length && visibleWebhookUrls.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$7, [
8983
9032
  createBaseVNode("div", {
8984
9033
  class: normalizeClass(["clickable headline", { expanded: !isMinimized.value }]),
8985
9034
  title: isMinimized.value ? baseText.value.clickToDisplay : baseText.value.clickToHide,
@@ -9229,7 +9278,7 @@ function onScrollLock() {
9229
9278
  };
9230
9279
  }
9231
9280
  onScrollLock();
9232
- const _hoisted_1$7 = ["data-test-id"];
9281
+ const _hoisted_1$6 = ["data-test-id"];
9233
9282
  const _hoisted_2$3 = ["textContent"];
9234
9283
  const _hoisted_3$2 = ["onClick"];
9235
9284
  const _hoisted_4$1 = ["onClick"];
@@ -9523,7 +9572,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
9523
9572
  _: 2
9524
9573
  }, 1032, ["onTrigger"])
9525
9574
  ], 2)
9526
- ], 8, _hoisted_1$7);
9575
+ ], 8, _hoisted_1$6);
9527
9576
  }), 128))
9528
9577
  ], 6)
9529
9578
  ], 2)) : createCommentVNode("", true);
@@ -9616,7 +9665,7 @@ const cssModules$n = {
9616
9665
  "$style": style0$n
9617
9666
  };
9618
9667
  const NodeSettingsHeader = /* @__PURE__ */ _export_sfc$1(_sfc_main$v, [["__cssModules", cssModules$n]]);
9619
- const _hoisted_1$6 = { class: "mt-xs" };
9668
+ const _hoisted_1$5 = { class: "mt-xs" };
9620
9669
  const LANGCHAIN_NODES_PREFIX = "@n8n/n8n-nodes-langchain.";
9621
9670
  const N8N_NODES_PREFIX = "@n8n/n8n-nodes.";
9622
9671
  const _sfc_main$u = /* @__PURE__ */ defineComponent({
@@ -9675,7 +9724,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
9675
9724
  const _component_n8n_button = N8nButton;
9676
9725
  const _component_n8n_callout = N8nCallout;
9677
9726
  const _component_n8n_text = N8nText;
9678
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
9727
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
9679
9728
  userCanClaimOpenAiCredits.value && !showSuccessCallout.value ? (openBlock(), createBlock(_component_n8n_callout, {
9680
9729
  key: 0,
9681
9730
  theme: "secondary",
@@ -9730,7 +9779,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
9730
9779
  function shouldShowParameter(item) {
9731
9780
  return item.name.match(/resource|authentication|operation/i) === null;
9732
9781
  }
9733
- const _hoisted_1$5 = { class: "header-side-menu" };
9782
+ const _hoisted_1$4 = { class: "header-side-menu" };
9734
9783
  const _hoisted_2$2 = {
9735
9784
  key: 2,
9736
9785
  class: "node-is-not-valid"
@@ -10017,7 +10066,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
10017
10066
  type: "boolean",
10018
10067
  default: false,
10019
10068
  noDataExpression: true,
10020
- description: i18n.baseText("nodeSettings.alwaysOutputData.description")
10069
+ description: i18n.baseText("nodeSettings.alwaysOutputData.description"),
10070
+ isNodeSetting: true
10021
10071
  },
10022
10072
  {
10023
10073
  displayName: i18n.baseText("nodeSettings.executeOnce.displayName"),
@@ -10025,7 +10075,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
10025
10075
  type: "boolean",
10026
10076
  default: false,
10027
10077
  noDataExpression: true,
10028
- description: i18n.baseText("nodeSettings.executeOnce.description")
10078
+ description: i18n.baseText("nodeSettings.executeOnce.description"),
10079
+ isNodeSetting: true
10029
10080
  },
10030
10081
  {
10031
10082
  displayName: i18n.baseText("nodeSettings.retryOnFail.displayName"),
@@ -10033,7 +10084,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
10033
10084
  type: "boolean",
10034
10085
  default: false,
10035
10086
  noDataExpression: true,
10036
- description: i18n.baseText("nodeSettings.retryOnFail.description")
10087
+ description: i18n.baseText("nodeSettings.retryOnFail.description"),
10088
+ isNodeSetting: true
10037
10089
  },
10038
10090
  {
10039
10091
  displayName: i18n.baseText("nodeSettings.maxTries.displayName"),
@@ -10050,7 +10102,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
10050
10102
  }
10051
10103
  },
10052
10104
  noDataExpression: true,
10053
- description: i18n.baseText("nodeSettings.maxTries.description")
10105
+ description: i18n.baseText("nodeSettings.maxTries.description"),
10106
+ isNodeSetting: true
10054
10107
  },
10055
10108
  {
10056
10109
  displayName: i18n.baseText("nodeSettings.waitBetweenTries.displayName"),
@@ -10067,7 +10120,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
10067
10120
  }
10068
10121
  },
10069
10122
  noDataExpression: true,
10070
- description: i18n.baseText("nodeSettings.waitBetweenTries.description")
10123
+ description: i18n.baseText("nodeSettings.waitBetweenTries.description"),
10124
+ isNodeSetting: true
10071
10125
  },
10072
10126
  {
10073
10127
  displayName: i18n.baseText("nodeSettings.onError.displayName"),
@@ -10096,7 +10150,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
10096
10150
  ],
10097
10151
  default: "stopWorkflow",
10098
10152
  description: i18n.baseText("nodeSettings.onError.description"),
10099
- noDataExpression: true
10153
+ noDataExpression: true,
10154
+ isNodeSetting: true
10100
10155
  }
10101
10156
  ]
10102
10157
  );
@@ -10112,7 +10167,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
10112
10167
  },
10113
10168
  default: "",
10114
10169
  noDataExpression: true,
10115
- description: i18n.baseText("nodeSettings.notes.description")
10170
+ description: i18n.baseText("nodeSettings.notes.description"),
10171
+ isNodeSetting: true
10116
10172
  },
10117
10173
  {
10118
10174
  displayName: i18n.baseText("nodeSettings.notesInFlow.displayName"),
@@ -10120,7 +10176,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
10120
10176
  type: "boolean",
10121
10177
  default: false,
10122
10178
  noDataExpression: true,
10123
- description: i18n.baseText("nodeSettings.notesInFlow.description")
10179
+ description: i18n.baseText("nodeSettings.notesInFlow.description"),
10180
+ isNodeSetting: true
10124
10181
  }
10125
10182
  ]
10126
10183
  );
@@ -10336,7 +10393,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
10336
10393
  key: 0,
10337
10394
  class: normalizeClass(_ctx.$style.header)
10338
10395
  }, [
10339
- createBaseVNode("div", _hoisted_1$5, [
10396
+ createBaseVNode("div", _hoisted_1$4, [
10340
10397
  node2.value ? (openBlock(), createBlock(_component_NodeTitle, {
10341
10398
  key: 0,
10342
10399
  class: "node-name",
@@ -10586,12 +10643,13 @@ const style0$m = {
10586
10643
  const cssModules$m = {
10587
10644
  "$style": style0$m
10588
10645
  };
10589
- const NodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__cssModules", cssModules$m], ["__scopeId", "data-v-c8d3cd57"]]);
10646
+ const NodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__cssModules", cssModules$m], ["__scopeId", "data-v-529b0cab"]]);
10590
10647
  const _sfc_main$s = /* @__PURE__ */ defineComponent({
10591
10648
  __name: "ExperimentalCanvasNodeSettings",
10592
10649
  props: {
10593
10650
  nodeId: {},
10594
- noWheel: { type: Boolean }
10651
+ noWheel: { type: Boolean },
10652
+ isReadOnly: { type: Boolean }
10595
10653
  },
10596
10654
  setup(__props) {
10597
10655
  const settingsEventBus = createEventBus();
@@ -10610,7 +10668,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
10610
10668
  "active-node": activeNode.value,
10611
10669
  "push-ref": "",
10612
10670
  "foreign-credentials": [],
10613
- "read-only": false,
10671
+ "read-only": _ctx.isReadOnly,
10614
10672
  "block-u-i": false,
10615
10673
  executable: false,
10616
10674
  "input-size": 0,
@@ -10622,55 +10680,16 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
10622
10680
  renderSlot(_ctx.$slots, "actions")
10623
10681
  ]),
10624
10682
  _: 3
10625
- }, 8, ["event-bus", "active-node", "no-wheel"]);
10683
+ }, 8, ["event-bus", "active-node", "read-only", "no-wheel"]);
10626
10684
  };
10627
10685
  }
10628
10686
  });
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;
10659
- }
10660
- return {
10661
- isEnabled,
10662
- maxCanvasZoom,
10663
- collapsedNodes: computed(() => collapsedNodes.value),
10664
- isActive,
10665
- setNodeExpanded,
10666
- expandAllNodes,
10667
- collapseAllNodes
10668
- };
10669
- });
10670
10687
  const _sfc_main$r = /* @__PURE__ */ defineComponent({
10671
10688
  __name: "ExperimentalEmbeddedNodeDetails",
10672
10689
  props: {
10673
- nodeId: {}
10690
+ nodeId: {},
10691
+ isReadOnly: { type: Boolean },
10692
+ isConfigurable: { type: Boolean }
10674
10693
  },
10675
10694
  setup(__props) {
10676
10695
  const experimentalNdvStore = useExperimentalNdvStore();
@@ -10684,7 +10703,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10684
10703
  }
10685
10704
  return null;
10686
10705
  });
10687
- const vf = useVueFlow(workflowsStore.workflowId);
10706
+ const vf = useVueFlow();
10688
10707
  const isMoving = ref(false);
10689
10708
  const moveStartListener = vf.onMoveStart(() => {
10690
10709
  isMoving.value = true;
@@ -10708,6 +10727,47 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10708
10727
  )
10709
10728
  );
10710
10729
  const isOnceVisible = ref(isVisible.value);
10730
+ provide(
10731
+ ExpressionLocalResolveContextSymbol,
10732
+ computed(() => {
10733
+ if (!node2.value) {
10734
+ return void 0;
10735
+ }
10736
+ const workflow = workflowsStore.getCurrentWorkflow();
10737
+ const runIndex = 0;
10738
+ const execution = workflowsStore.workflowExecutionData;
10739
+ const nodeName = node2.value.name;
10740
+ function findInputNode() {
10741
+ const taskData = (execution?.data?.resultData.runData[nodeName] ?? [])[runIndex];
10742
+ const source = taskData?.source[0];
10743
+ if (source) {
10744
+ return {
10745
+ name: source.previousNode,
10746
+ branchIndex: source.previousNodeOutput ?? 0,
10747
+ runIndex: source.previousNodeRun ?? 0
10748
+ };
10749
+ }
10750
+ const inputs2 = workflow.getParentNodesByDepth(nodeName, 1);
10751
+ if (inputs2.length > 0) {
10752
+ return {
10753
+ name: inputs2[0].name,
10754
+ branchIndex: inputs2[0].indicies[0] ?? 0,
10755
+ runIndex: 0
10756
+ };
10757
+ }
10758
+ return void 0;
10759
+ }
10760
+ return {
10761
+ localResolve: true,
10762
+ envVars: useEnvironmentsStore().variablesAsObject,
10763
+ workflow,
10764
+ execution,
10765
+ nodeName,
10766
+ additionalKeys: {},
10767
+ inputNode: findInputNode()
10768
+ };
10769
+ })
10770
+ );
10711
10771
  watchOnce(isVisible, (visible2) => {
10712
10772
  isOnceVisible.value = isOnceVisible.value || visible2;
10713
10773
  });
@@ -10718,15 +10778,18 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10718
10778
  return openBlock(), createElementBlock("div", {
10719
10779
  ref: "container",
10720
10780
  class: normalizeClass([_ctx.$style.component, isExpanded.value ? _ctx.$style.expanded : _ctx.$style.collapsed]),
10721
- style: normalizeStyle({ "--zoom": `${1 / unref(experimentalNdvStore).maxCanvasZoom}` })
10781
+ style: normalizeStyle({
10782
+ "--zoom": `${1 / unref(experimentalNdvStore).maxCanvasZoom}`,
10783
+ "--node-width-scaler": _ctx.isConfigurable ? 1 : 1.5
10784
+ })
10722
10785
  }, [
10723
10786
  isOnceVisible.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
10724
10787
  isExpanded.value ? (openBlock(), createBlock(_sfc_main$s, {
10725
10788
  key: 0,
10726
10789
  "node-id": _ctx.nodeId,
10727
10790
  class: normalizeClass(_ctx.$style.settingsView),
10728
- "no-wheel": !isMoving.value
10729
- /* to not interrupt panning while allowing scroll of the settings pane, allow wheel event while panning */
10791
+ "no-wheel": !isMoving.value,
10792
+ "is-read-only": _ctx.isReadOnly
10730
10793
  }, {
10731
10794
  actions: withCtx(() => [
10732
10795
  createVNode(unref(_sfc_main$S), {
@@ -10740,7 +10803,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10740
10803
  })
10741
10804
  ]),
10742
10805
  _: 1
10743
- }, 8, ["node-id", "class", "no-wheel"])) : (openBlock(), createElementBlock("div", {
10806
+ }, 8, ["node-id", "class", "no-wheel", "is-read-only"])) : (openBlock(), createElementBlock("div", {
10744
10807
  key: 1,
10745
10808
  role: "button ",
10746
10809
  class: normalizeClass(_ctx.$style.collapsedContent),
@@ -10763,11 +10826,11 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10763
10826
  };
10764
10827
  }
10765
10828
  });
10766
- const component$2 = "_component_1kmdn_123";
10767
- const expanded = "_expanded_1kmdn_134";
10768
- const collapsed = "_collapsed_1kmdn_137";
10769
- const collapsedContent = "_collapsedContent_1kmdn_149";
10770
- const settingsView = "_settingsView_1kmdn_150";
10829
+ const component$2 = "_component_1o2au_123";
10830
+ const expanded = "_expanded_1o2au_132";
10831
+ const collapsed = "_collapsed_1o2au_136";
10832
+ const collapsedContent = "_collapsedContent_1o2au_147";
10833
+ const settingsView = "_settingsView_1o2au_148";
10771
10834
  const style0$l = {
10772
10835
  component: component$2,
10773
10836
  expanded,
@@ -10779,7 +10842,7 @@ const cssModules$l = {
10779
10842
  "$style": style0$l
10780
10843
  };
10781
10844
  const ExperimentalInPlaceNodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$r, [["__cssModules", cssModules$l]]);
10782
- const _hoisted_1$4 = ["data-test-id"];
10845
+ const _hoisted_1$3 = ["data-test-id"];
10783
10846
  const _sfc_main$q = /* @__PURE__ */ defineComponent({
10784
10847
  __name: "CanvasNodeDefault",
10785
10848
  emits: ["open:contextmenu", "activate"],
@@ -10796,6 +10859,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10796
10859
  outputs,
10797
10860
  connections: connections2,
10798
10861
  isDisabled,
10862
+ isReadOnly,
10799
10863
  isSelected,
10800
10864
  hasPinnedData,
10801
10865
  executionStatus,
@@ -10888,8 +10952,10 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10888
10952
  key: 0,
10889
10953
  "node-id": unref(id2),
10890
10954
  class: normalizeClass(classes.value),
10891
- style: normalizeStyle(styles.value)
10892
- }, null, 8, ["node-id", "class", "style"])) : (openBlock(), createElementBlock("div", {
10955
+ style: normalizeStyle(styles.value),
10956
+ "is-read-only": unref(isReadOnly),
10957
+ "is-configurable": renderOptions.value.configurable ?? false
10958
+ }, null, 8, ["node-id", "class", "style", "is-read-only", "is-configurable"])) : (openBlock(), createElementBlock("div", {
10893
10959
  key: 1,
10894
10960
  class: normalizeClass(classes.value),
10895
10961
  style: normalizeStyle(styles.value),
@@ -10929,7 +10995,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10929
10995
  key: 2,
10930
10996
  class: normalizeClass(unref($style).statusIcons)
10931
10997
  }, null, 8, ["class"])) : createCommentVNode("", true)
10932
- ], 46, _hoisted_1$4));
10998
+ ], 46, _hoisted_1$3));
10933
10999
  };
10934
11000
  }
10935
11001
  });
@@ -12461,13 +12527,28 @@ const cssModules$j = {
12461
12527
  "$style": style0$j
12462
12528
  };
12463
12529
  const CanvasNodeStickyNote = /* @__PURE__ */ _export_sfc$1(_sfc_main$o, [["__cssModules", cssModules$j]]);
12464
- const _hoisted_1$3 = ["textContent"];
12465
12530
  const _sfc_main$n = /* @__PURE__ */ defineComponent({
12466
12531
  __name: "CanvasNodeAddNodes",
12467
12532
  setup(__props) {
12468
12533
  const nodeCreatorStore = useNodeCreatorStore();
12469
12534
  const i18n = useI18n();
12535
+ const settingsStore = useSettingsStore();
12536
+ const templatesStore = useTemplatesStore();
12470
12537
  const isTooltipVisible = ref(false);
12538
+ const templateRepository = computed(() => {
12539
+ if (templatesStore.hasCustomTemplatesHost) {
12540
+ return {
12541
+ to: { name: VIEWS.TEMPLATES }
12542
+ };
12543
+ }
12544
+ return {
12545
+ to: templatesStore.websiteTemplateRepositoryURL,
12546
+ target: "_blank"
12547
+ };
12548
+ });
12549
+ const templatesLinkEnabled = computed(() => {
12550
+ return isExtraTemplateLinksExperimentEnabled() && settingsStore.isTemplatesEnabled;
12551
+ });
12471
12552
  onMounted(() => {
12472
12553
  nodeViewEventBus.on("runWorkflowButton:mouseenter", onShowTooltip);
12473
12554
  nodeViewEventBus.on("runWorkflowButton:mouseleave", onHideTooltip);
@@ -12490,6 +12571,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
12490
12571
  return (_ctx, _cache) => {
12491
12572
  const _component_N8nIcon = N8nIcon;
12492
12573
  const _component_N8nTooltip = N8nTooltip;
12574
+ const _component_N8nLink = N8nLink;
12493
12575
  return openBlock(), createElementBlock("div", {
12494
12576
  ref: "container",
12495
12577
  class: normalizeClass(_ctx.$style.addNodes),
@@ -12521,16 +12603,31 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
12521
12603
  _: 1
12522
12604
  }, 8, ["visible", "disabled", "popper-class"]),
12523
12605
  createBaseVNode("p", {
12524
- class: normalizeClass(_ctx.$style.label),
12525
- textContent: toDisplayString(unref(i18n).baseText("nodeView.canvasAddButton.addFirstStep"))
12526
- }, null, 10, _hoisted_1$3)
12606
+ class: normalizeClass(_ctx.$style.label)
12607
+ }, [
12608
+ createTextVNode(toDisplayString(unref(i18n).baseText("nodeView.canvasAddButton.addFirstStep")) + " ", 1),
12609
+ templatesLinkEnabled.value ? (openBlock(), createBlock(_component_N8nLink, {
12610
+ key: 0,
12611
+ to: templateRepository.value.to,
12612
+ target: templateRepository.value.target,
12613
+ underline: true,
12614
+ size: "small",
12615
+ "data-test-id": "canvas-template-link",
12616
+ onClick: _cache[0] || (_cache[0] = ($event) => unref(trackTemplatesClick)(unref(TemplateClickSource).emptyWorkflowLink))
12617
+ }, {
12618
+ default: withCtx(() => [
12619
+ createTextVNode(toDisplayString(unref(i18n).baseText("nodeView.templateLink")), 1)
12620
+ ]),
12621
+ _: 1
12622
+ }, 8, ["to", "target"])) : createCommentVNode("", true)
12623
+ ], 2)
12527
12624
  ], 2);
12528
12625
  };
12529
12626
  }
12530
12627
  });
12531
- const addNodes = "_addNodes_kytyq_123";
12532
- const button$1 = "_button_kytyq_131";
12533
- const label$4 = "_label_kytyq_145";
12628
+ const addNodes = "_addNodes_164y0_123";
12629
+ const button$1 = "_button_164y0_131";
12630
+ const label$4 = "_label_164y0_145";
12534
12631
  const style0$i = {
12535
12632
  addNodes,
12536
12633
  button: button$1,
@@ -13422,7 +13519,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
13422
13519
  const style = useCssModule();
13423
13520
  const props = __props;
13424
13521
  const contextMenu2 = useContextMenu();
13425
- const { connectingHandle } = useCanvas();
13522
+ const { connectingHandle, viewport } = useCanvas();
13523
+ const experimentalNdvStore = useExperimentalNdvStore();
13426
13524
  const nodeClasses = ref([]);
13427
13525
  const inputs2 = computed(() => props.data.inputs);
13428
13526
  const outputs = computed(() => props.data.outputs);
@@ -13440,6 +13538,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
13440
13538
  connections: connections2
13441
13539
  });
13442
13540
  const isDisabled = computed(() => props.data.disabled);
13541
+ const isExperimentalEmbeddedNdvShown = computed(
13542
+ () => experimentalNdvStore.isActive(viewport.value.zoom)
13543
+ );
13443
13544
  const classes = computed(() => ({
13444
13545
  [style.canvasNode]: true,
13445
13546
  [style.showToolbar]: showToolbar2.value,
@@ -13488,7 +13589,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
13488
13589
  const handleType = mode === CanvasConnectionMode.Input ? "target" : "source";
13489
13590
  const connectionsCount = connections2.value[mode][endpoint.type]?.[endpoint.index]?.length ?? 0;
13490
13591
  const isConnecting = connectingHandle.value?.nodeId === props.id && connectingHandle.value?.handleType === handleType && connectingHandle.value?.handleId === handleId;
13491
- const offsetValue = position2 === Position.Bottom ? `${GRID_SIZE * 2 * (1 + index * 2) + CONFIGURATION_NODE_OFFSET}px` : `${100 / (endpoints.length + 1) * (index + 1)}%`;
13592
+ 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)}%`;
13492
13593
  return {
13493
13594
  ...endpoint,
13494
13595
  handleId,
@@ -15072,39 +15173,106 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
15072
15173
  ...{ name: "FocusPanel" },
15073
15174
  __name: "FocusPanel",
15074
15175
  props: {
15075
- executable: { type: Boolean }
15176
+ isCanvasReadOnly: { type: Boolean }
15076
15177
  },
15077
- setup(__props) {
15178
+ emits: ["focus"],
15179
+ setup(__props, { emit: __emit }) {
15078
15180
  const props = __props;
15181
+ const emit = __emit;
15182
+ const inputField = ref();
15079
15183
  const locale = useI18n();
15080
15184
  const nodeHelpers = useNodeHelpers();
15081
15185
  const focusPanelStore = useFocusPanelStore();
15082
15186
  const nodeTypesStore = useNodeTypesStore();
15083
15187
  const nodeSettingsParameters = useNodeSettingsParameters();
15188
+ const environmentsStore = useEnvironmentsStore();
15189
+ const { debounce } = useDebounce();
15084
15190
  const focusedNodeParameter = computed(() => focusPanelStore.focusedNodeParameters[0]);
15085
15191
  const resolvedParameter = computed(
15086
15192
  () => focusedNodeParameter.value && focusPanelStore.isRichParameter(focusedNodeParameter.value) ? focusedNodeParameter.value : void 0
15087
15193
  );
15088
15194
  const focusPanelActive = computed(() => focusPanelStore.focusPanelActive);
15195
+ const isDisabled = computed(() => {
15196
+ if (!resolvedParameter.value) return false;
15197
+ return !!resolvedParameter.value.parameter.disabledOptions && nodeSettingsParameters.shouldDisplayNodeParameter(
15198
+ resolvedParameter.value.node.parameters,
15199
+ resolvedParameter.value.node,
15200
+ resolvedParameter.value.parameter,
15201
+ "",
15202
+ "disabledOptions"
15203
+ );
15204
+ });
15205
+ const isDisplayed = computed(() => {
15206
+ if (!resolvedParameter.value) return true;
15207
+ return nodeSettingsParameters.shouldDisplayNodeParameter(
15208
+ resolvedParameter.value.node.parameters,
15209
+ resolvedParameter.value.node,
15210
+ resolvedParameter.value.parameter,
15211
+ "",
15212
+ "displayOptions"
15213
+ );
15214
+ });
15089
15215
  const isExecutable2 = computed(() => {
15090
15216
  if (!resolvedParameter.value) return false;
15217
+ if (!isDisplayed.value) return false;
15091
15218
  const foreignCredentials = nodeHelpers.getForeignCredentialsIfSharingEnabled(
15092
15219
  resolvedParameter.value.node.credentials
15093
15220
  );
15094
15221
  return nodeHelpers.isNodeExecutable(
15095
15222
  resolvedParameter.value.node,
15096
- props.executable,
15223
+ !props.isCanvasReadOnly,
15097
15224
  foreignCredentials
15098
15225
  );
15099
15226
  });
15227
+ function getTypeOption(optionName) {
15228
+ return resolvedParameter.value ? getParameterTypeOption(resolvedParameter.value.parameter, optionName) : void 0;
15229
+ }
15230
+ const codeEditorMode = computed(() => {
15231
+ return resolvedParameter.value?.node.parameters.mode;
15232
+ });
15233
+ const editorType = computed(() => {
15234
+ return getTypeOption("editor") ?? void 0;
15235
+ });
15236
+ const editorLanguage = computed(() => {
15237
+ if (editorType.value === "json" || resolvedParameter.value?.parameter.type === "json")
15238
+ return "json";
15239
+ return getTypeOption("editorLanguage") ?? "javaScript";
15240
+ });
15241
+ const editorRows = computed(() => getTypeOption("rows"));
15100
15242
  const isToolNode = computed(
15101
15243
  () => resolvedParameter.value ? nodeTypesStore.isToolNode(resolvedParameter.value?.node.type) : false
15102
15244
  );
15245
+ const isHtmlNode = computed(
15246
+ () => !!resolvedParameter.value && resolvedParameter.value.node.type === HTML_NODE_TYPE
15247
+ );
15103
15248
  const expressionModeEnabled = computed(
15104
15249
  () => resolvedParameter.value && isValueExpression(resolvedParameter.value.parameter, resolvedParameter.value.value)
15105
15250
  );
15106
- function optionSelected() {
15107
- }
15251
+ const expression = computed(() => {
15252
+ if (!expressionModeEnabled.value) return "";
15253
+ return isResourceLocatorValue(resolvedParameter.value) ? resolvedParameter.value.value : resolvedParameter.value;
15254
+ });
15255
+ const shouldCaptureForPosthog = computed(
15256
+ () => resolvedParameter.value?.node.type === AI_TRANSFORM_NODE_TYPE
15257
+ );
15258
+ const isReadOnly = computed(() => props.isCanvasReadOnly || isDisabled.value);
15259
+ const resolvedAdditionalExpressionData = computed(() => {
15260
+ return {
15261
+ $vars: environmentsStore.variablesAsObject
15262
+ };
15263
+ });
15264
+ const targetNodeParameterContext = computed(() => {
15265
+ if (!resolvedParameter.value) return void 0;
15266
+ return {
15267
+ nodeName: resolvedParameter.value.node.name,
15268
+ parameterPath: resolvedParameter.value.parameterPath
15269
+ };
15270
+ });
15271
+ const { resolvedExpression } = useResolvedExpression({
15272
+ expression,
15273
+ additionalData: resolvedAdditionalExpressionData,
15274
+ stringifyObject: resolvedParameter.value && resolvedParameter.value.parameter.type !== "multiOptions"
15275
+ });
15108
15276
  function valueChanged(value) {
15109
15277
  if (resolvedParameter.value === void 0) {
15110
15278
  return;
@@ -15116,15 +15284,68 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
15116
15284
  isToolNode.value
15117
15285
  );
15118
15286
  }
15287
+ async function setFocus() {
15288
+ await nextTick();
15289
+ if (inputField.value) {
15290
+ if (hasFocusOnInput(inputField.value)) {
15291
+ inputField.value.focusOnInput();
15292
+ } else if (isFocusableEl(inputField.value)) {
15293
+ inputField.value.focus();
15294
+ }
15295
+ }
15296
+ emit("focus");
15297
+ }
15298
+ function optionSelected(command) {
15299
+ if (!resolvedParameter.value) return;
15300
+ switch (command) {
15301
+ case "resetValue":
15302
+ return typeof resolvedParameter.value.parameter.default === "string" && valueChanged(resolvedParameter.value.parameter.default);
15303
+ case "addExpression": {
15304
+ const newValue = formatAsExpression(
15305
+ resolvedParameter.value.value,
15306
+ resolvedParameter.value.parameter.type
15307
+ );
15308
+ valueChanged(typeof newValue === "string" ? newValue : newValue.value);
15309
+ void setFocus();
15310
+ break;
15311
+ }
15312
+ case "removeExpression": {
15313
+ const newValue = parseFromExpression(
15314
+ resolvedParameter.value.value,
15315
+ resolvedExpression.value,
15316
+ resolvedParameter.value.parameter.type,
15317
+ resolvedParameter.value.parameter.default,
15318
+ (resolvedParameter.value.parameter.options ?? []).filter(isValidParameterOption)
15319
+ );
15320
+ if (typeof newValue === "string") {
15321
+ valueChanged(newValue);
15322
+ } else if (newValue && typeof newValue.value === "string") {
15323
+ valueChanged(newValue.value);
15324
+ }
15325
+ void setFocus();
15326
+ break;
15327
+ }
15328
+ case "formatHtml":
15329
+ htmlEditorEventBus.emit("format-html");
15330
+ return;
15331
+ }
15332
+ }
15333
+ const valueChangedDebounced = debounce(valueChanged, { debounceTime: 0 });
15119
15334
  return (_ctx, _cache) => {
15120
15335
  const _component_n8n_icon = N8nIcon;
15121
15336
  const _component_NodeExecuteButton = _sfc_main$V;
15122
15337
  const _component_ParameterOptions = __unplugin_components_2$2;
15123
15338
  const _component_ExpressionEditorModalInput = __unplugin_components_3$1;
15339
+ const _component_CodeNodeEditor = __unplugin_components_4;
15340
+ const _component_HtmlEditor = __unplugin_components_5;
15341
+ const _component_CssEditor = __unplugin_components_6;
15342
+ const _component_SqlEditor = __unplugin_components_7;
15343
+ const _component_JsEditor = __unplugin_components_8;
15344
+ const _component_JsonEditor = __unplugin_components_9;
15124
15345
  return focusPanelActive.value ? (openBlock(), createElementBlock("div", {
15125
15346
  key: 0,
15126
15347
  class: normalizeClass(_ctx.$style.container),
15127
- onKeydown: _cache[3] || (_cache[3] = withModifiers(() => {
15348
+ onKeydown: _cache[2] || (_cache[2] = withModifiers(() => {
15128
15349
  }, ["stop"]))
15129
15350
  }, [
15130
15351
  createBaseVNode("div", {
@@ -15197,38 +15418,109 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
15197
15418
  createBaseVNode("div", {
15198
15419
  class: normalizeClass(_ctx.$style.parameterOptionsWrapper)
15199
15420
  }, [
15200
- _cache[4] || (_cache[4] = createBaseVNode("div", null, null, -1)),
15201
- createVNode(_component_ParameterOptions, {
15421
+ _cache[3] || (_cache[3] = createBaseVNode("div", null, null, -1)),
15422
+ isDisplayed.value ? (openBlock(), createBlock(_component_ParameterOptions, {
15423
+ key: 0,
15202
15424
  parameter: resolvedParameter.value.parameter,
15203
15425
  value: resolvedParameter.value.value,
15204
- "is-read-only": false,
15426
+ "is-read-only": isReadOnly.value,
15205
15427
  "onUpdate:modelValue": optionSelected
15206
- }, null, 8, ["parameter", "value"])
15428
+ }, null, 8, ["parameter", "value", "is-read-only"])) : createCommentVNode("", true)
15207
15429
  ], 2),
15208
15430
  typeof resolvedParameter.value.value === "string" ? (openBlock(), createElementBlock("div", {
15209
15431
  key: 0,
15210
15432
  class: normalizeClass(_ctx.$style.editorContainer)
15211
15433
  }, [
15212
- expressionModeEnabled.value ? (openBlock(), createBlock(_component_ExpressionEditorModalInput, {
15434
+ !isDisplayed.value ? (openBlock(), createElementBlock("div", {
15213
15435
  key: 0,
15436
+ class: normalizeClass([_ctx.$style.content, _ctx.$style.emptyContent])
15437
+ }, [
15438
+ createBaseVNode("div", {
15439
+ class: normalizeClass(_ctx.$style.emptyText)
15440
+ }, [
15441
+ createVNode(unref(N8nText), { color: "text-base" }, {
15442
+ default: withCtx(() => [
15443
+ createTextVNode(toDisplayString(unref(locale).baseText("nodeView.focusPanel.missingParameter")), 1)
15444
+ ]),
15445
+ _: 1
15446
+ })
15447
+ ], 2)
15448
+ ], 2)) : expressionModeEnabled.value ? (openBlock(), createBlock(_component_ExpressionEditorModalInput, {
15449
+ key: 1,
15450
+ ref_key: "inputField",
15451
+ ref: inputField,
15214
15452
  "model-value": resolvedParameter.value.value,
15215
15453
  class: normalizeClass(_ctx.$style.editor),
15216
- "is-read-only": false,
15454
+ "is-read-only": isReadOnly.value,
15217
15455
  path: resolvedParameter.value.parameterPath,
15218
15456
  "data-test-id": "expression-modal-input",
15219
- "target-node-parameter-context": {
15220
- nodeName: resolvedParameter.value.node.name,
15221
- parameterPath: resolvedParameter.value.parameterPath
15222
- },
15223
- onChange: _cache[1] || (_cache[1] = ($event) => valueChanged($event.value))
15224
- }, null, 8, ["model-value", "class", "path", "target-node-parameter-context"])) : (openBlock(), createBlock(unref(N8nInput), {
15225
- key: 1,
15226
- "model-value": resolvedParameter.value.value,
15227
- class: normalizeClass(_ctx.$style.editor),
15228
- type: "textarea",
15229
- resize: "none",
15230
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => valueChanged($event))
15231
- }, null, 8, ["model-value", "class"]))
15457
+ "target-node-parameter-context": targetNodeParameterContext.value,
15458
+ onChange: _cache[1] || (_cache[1] = ($event) => unref(valueChangedDebounced)($event.value))
15459
+ }, 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 }, [
15460
+ editorType.value === "codeNodeEditor" ? (openBlock(), createBlock(_component_CodeNodeEditor, {
15461
+ key: 0,
15462
+ id: resolvedParameter.value.parameterPath,
15463
+ mode: codeEditorMode.value,
15464
+ "model-value": resolvedParameter.value.value,
15465
+ "default-value": resolvedParameter.value.parameter.default,
15466
+ language: editorLanguage.value,
15467
+ "is-read-only": isReadOnly.value,
15468
+ "target-node-parameter-context": targetNodeParameterContext.value,
15469
+ "fill-parent": "",
15470
+ "disable-ask-ai": true,
15471
+ "onUpdate:modelValue": unref(valueChangedDebounced)
15472
+ }, null, 8, ["id", "mode", "model-value", "default-value", "language", "is-read-only", "target-node-parameter-context", "onUpdate:modelValue"])) : editorType.value === "htmlEditor" ? (openBlock(), createBlock(_component_HtmlEditor, {
15473
+ key: 1,
15474
+ "model-value": resolvedParameter.value.value,
15475
+ "is-read-only": isReadOnly.value,
15476
+ rows: editorRows.value,
15477
+ "disable-expression-coloring": !isHtmlNode.value,
15478
+ "disable-expression-completions": !isHtmlNode.value,
15479
+ fullscreen: "",
15480
+ "onUpdate:modelValue": unref(valueChangedDebounced)
15481
+ }, null, 8, ["model-value", "is-read-only", "rows", "disable-expression-coloring", "disable-expression-completions", "onUpdate:modelValue"])) : editorType.value === "cssEditor" ? (openBlock(), createBlock(_component_CssEditor, {
15482
+ key: 2,
15483
+ "model-value": resolvedParameter.value.value,
15484
+ "is-read-only": isReadOnly.value,
15485
+ rows: editorRows.value,
15486
+ fullscreen: "",
15487
+ "onUpdate:modelValue": unref(valueChangedDebounced)
15488
+ }, null, 8, ["model-value", "is-read-only", "rows", "onUpdate:modelValue"])) : editorType.value === "sqlEditor" ? (openBlock(), createBlock(_component_SqlEditor, {
15489
+ key: 3,
15490
+ "model-value": resolvedParameter.value.value,
15491
+ dialect: getTypeOption("sqlDialect"),
15492
+ "is-read-only": isReadOnly.value,
15493
+ rows: editorRows.value,
15494
+ fullscreen: "",
15495
+ "onUpdate:modelValue": unref(valueChangedDebounced)
15496
+ }, null, 8, ["model-value", "dialect", "is-read-only", "rows", "onUpdate:modelValue"])) : editorType.value === "jsEditor" ? (openBlock(), createBlock(_component_JsEditor, {
15497
+ key: 4,
15498
+ "model-value": resolvedParameter.value.value,
15499
+ "is-read-only": isReadOnly.value,
15500
+ rows: editorRows.value,
15501
+ "posthog-capture": shouldCaptureForPosthog.value,
15502
+ "fill-parent": "",
15503
+ "onUpdate:modelValue": unref(valueChangedDebounced)
15504
+ }, null, 8, ["model-value", "is-read-only", "rows", "posthog-capture", "onUpdate:modelValue"])) : resolvedParameter.value.parameter.type === "json" ? (openBlock(), createBlock(_component_JsonEditor, {
15505
+ key: 5,
15506
+ "model-value": resolvedParameter.value.value,
15507
+ "is-read-only": isReadOnly.value,
15508
+ rows: editorRows.value,
15509
+ fullscreen: "",
15510
+ "fill-parent": "",
15511
+ "onUpdate:modelValue": unref(valueChangedDebounced)
15512
+ }, null, 8, ["model-value", "is-read-only", "rows", "onUpdate:modelValue"])) : (openBlock(), createBlock(unref(N8nInput), {
15513
+ key: 6,
15514
+ ref_key: "inputField",
15515
+ ref: inputField,
15516
+ "model-value": resolvedParameter.value.value,
15517
+ class: normalizeClass(_ctx.$style.editor),
15518
+ readonly: isReadOnly.value,
15519
+ type: "textarea",
15520
+ resize: "none",
15521
+ "onUpdate:modelValue": unref(valueChangedDebounced)
15522
+ }, null, 8, ["model-value", "class", "readonly", "onUpdate:modelValue"]))
15523
+ ], 64)) : createCommentVNode("", true)
15232
15524
  ], 2)) : createCommentVNode("", true)
15233
15525
  ], 2)
15234
15526
  ], 2)) : (openBlock(), createElementBlock("div", {
@@ -15250,19 +15542,19 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
15250
15542
  };
15251
15543
  }
15252
15544
  });
15253
- const container = "_container_1shes_123";
15254
- const closeButton = "_closeButton_1shes_132";
15255
- const header = "_header_1shes_136";
15256
- const content = "_content_1shes_144";
15257
- const emptyContent = "_emptyContent_1shes_150";
15258
- const emptyText = "_emptyText_1shes_155";
15259
- const tabHeader = "_tabHeader_1shes_158";
15260
- const tabHeaderText = "_tabHeaderText_1shes_165";
15261
- const buttonWrapper = "_buttonWrapper_1shes_170";
15262
- const parameterDetailsWrapper = "_parameterDetailsWrapper_1shes_175";
15263
- const parameterOptionsWrapper = "_parameterOptionsWrapper_1shes_182";
15264
- const editorContainer = "_editorContainer_1shes_186";
15265
- const editor = "_editor_1shes_186";
15545
+ const container = "_container_1gj6t_123";
15546
+ const closeButton = "_closeButton_1gj6t_132";
15547
+ const header = "_header_1gj6t_136";
15548
+ const content = "_content_1gj6t_144";
15549
+ const emptyContent = "_emptyContent_1gj6t_150";
15550
+ const emptyText = "_emptyText_1gj6t_155";
15551
+ const tabHeader = "_tabHeader_1gj6t_158";
15552
+ const tabHeaderText = "_tabHeaderText_1gj6t_165";
15553
+ const buttonWrapper = "_buttonWrapper_1gj6t_170";
15554
+ const parameterDetailsWrapper = "_parameterDetailsWrapper_1gj6t_175";
15555
+ const parameterOptionsWrapper = "_parameterOptionsWrapper_1gj6t_182";
15556
+ const editorContainer = "_editorContainer_1gj6t_186";
15557
+ const editor = "_editor_1gj6t_186";
15266
15558
  const style0$2 = {
15267
15559
  container,
15268
15560
  closeButton,
@@ -15620,16 +15912,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
15620
15912
  __name: "NodeView",
15621
15913
  setup(__props) {
15622
15914
  const LazyNodeCreation = defineAsyncComponent(
15623
- async () => await __vitePreload(() => import("./NodeCreation-CxSDDbsd.js").then((n) => n.N), true ? __vite__mapDeps([0,1,2,3]) : void 0)
15915
+ async () => await __vitePreload(() => import("./NodeCreation-vn1s6ViE.js").then((n) => n.N), true ? __vite__mapDeps([0,1,2,3]) : void 0)
15624
15916
  );
15625
15917
  const LazyNodeDetailsView = defineAsyncComponent(
15626
- async () => await __vitePreload(() => import("./NodeDetailsView-CZg_bwey.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]) : void 0)
15918
+ async () => await __vitePreload(() => import("./NodeDetailsView-Bfqrvndc.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]) : void 0)
15627
15919
  );
15628
15920
  const LazyNodeDetailsViewV2 = defineAsyncComponent(
15629
- async () => await __vitePreload(() => import("./NodeDetailsViewV2-DAJDWuEM.js"), true ? __vite__mapDeps([25,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,26]) : void 0)
15921
+ async () => await __vitePreload(() => import("./NodeDetailsViewV2-DvXkio7Z.js"), true ? __vite__mapDeps([25,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,26]) : void 0)
15630
15922
  );
15631
15923
  const LazySetupWorkflowCredentialsButton = defineAsyncComponent(
15632
- async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-De_46BW9.js"), true ? __vite__mapDeps([27,1,2]) : void 0)
15924
+ async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-Do2E5w2d.js"), true ? __vite__mapDeps([27,1,2]) : void 0)
15633
15925
  );
15634
15926
  const $style = useCssModule();
15635
15927
  const router = useRouter();
@@ -16421,6 +16713,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16421
16713
  }
16422
16714
  function onToggleNodeCreator(options) {
16423
16715
  nodeCreatorStore.setNodeCreatorState(options);
16716
+ if (options.createNodeActive) {
16717
+ focusPanelStore.closeFocusPanel();
16718
+ }
16424
16719
  if (!options.createNodeActive && !options.hasAddedNodes) {
16425
16720
  uiStore.resetLastInteractedWith();
16426
16721
  }
@@ -16496,11 +16791,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16496
16791
  telemetry.track("User clicked execute node button", telemetryPayload);
16497
16792
  void externalHooks.run("nodeView.onRunNode", telemetryPayload);
16498
16793
  }
16499
- async function onOpenExecution(executionId) {
16794
+ async function onOpenExecution(executionId, nodeId) {
16500
16795
  canvasStore.startLoading();
16501
16796
  resetWorkspace();
16502
16797
  await initializeData();
16503
- const data = await openExecution(executionId);
16798
+ const data = await openExecution(executionId, nodeId);
16504
16799
  if (!data) {
16505
16800
  return;
16506
16801
  }
@@ -16685,7 +16980,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16685
16980
  } else if (json2 && json2.command === "openExecution") {
16686
16981
  try {
16687
16982
  isProductionExecutionPreview.value = json2.executionMode !== "manual" && json2.executionMode !== "evaluation";
16688
- await onOpenExecution(json2.executionId);
16983
+ await onOpenExecution(json2.executionId, json2.nodeId);
16689
16984
  canOpenNDV.value = json2.canOpenNDV ?? true;
16690
16985
  hideNodeIssues.value = json2.hideNodeIssues ?? false;
16691
16986
  isExecutionPreview.value = true;
@@ -17165,8 +17460,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
17165
17460
  }, 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),
17166
17461
  isFocusPanelFeatureEnabled.value ? (openBlock(), createBlock(FocusPanel, {
17167
17462
  key: 1,
17168
- executable: !isCanvasReadOnly.value
17169
- }, null, 8, ["executable"])) : createCommentVNode("", true)
17463
+ "is-canvas-read-only": isCanvasReadOnly.value
17464
+ }, null, 8, ["is-canvas-read-only"])) : createCommentVNode("", true)
17170
17465
  ], 2);
17171
17466
  };
17172
17467
  }
@@ -17193,7 +17488,6 @@ const NodeView$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
17193
17488
  }, Symbol.toStringTag, { value: "Module" }));
17194
17489
  export {
17195
17490
  NodeSettings as N,
17196
- useNodeDocsUrl as a,
17197
- NodeView$1 as b,
17198
- useExperimentalNdvStore as u
17491
+ NodeView$1 as a,
17492
+ useNodeDocsUrl as u
17199
17493
  };