n8n-editor-ui 1.109.0 → 1.110.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 (130) hide show
  1. package/dist/assets/{AddDataStoreModal-DQSrUeGv.js → AddDataStoreModal-B9V0kmK3.js} +2 -2
  2. package/dist/assets/{AnimatedSpinner-DG0OJkY1.js → AnimatedSpinner-DsluWUrA.js} +1 -1
  3. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DL7yrAdr.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CRU6PTDq.js} +1 -1
  4. package/dist/assets/{AuthView-BjsoW1-5.js → AuthView-D6CVGqjD.js} +2 -2
  5. package/dist/assets/{ChangePasswordView-wL-Pegb8.js → ChangePasswordView-YYerxuPJ.js} +3 -3
  6. package/dist/assets/CollectionParameter--M3ItR7D.js +4 -0
  7. package/dist/assets/{ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-Y9jgPwUm.js → ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-upvzJHw_.js} +1 -1
  8. package/dist/assets/{CredentialsView-Cp-dKa-6.js → CredentialsView-DOTUEbkP.js} +9 -8
  9. package/dist/assets/{DataStoreActions.vue_vue_type_script_setup_true_lang-jUSBJd47.js → DataStoreActions.vue_vue_type_script_setup_true_lang-BsbILsds.js} +2 -2
  10. package/dist/assets/{DataStoreDetailsView-D9YNa5HC.js → DataStoreDetailsView-B_TSNGAN.js} +1574 -227
  11. package/dist/assets/{DataStoreDetailsView-BxDmY87S.css → DataStoreDetailsView-DSpK3R_L.css} +294 -71
  12. package/dist/assets/{DataStoreView-Bs-qcZ8z.js → DataStoreView-BvrQf26p.js} +26 -39
  13. package/dist/assets/{DataStoreView-bZrewhaR.css → DataStoreView-D0R0E_jH.css} +9 -10
  14. package/dist/assets/{DemoFooter-DPTKA9IL.js → DemoFooter-Bw8iTzqE.js} +6 -6
  15. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-DiIUOGo1.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-GKs7cbkR.js} +1 -1
  16. package/dist/assets/{EntityNotFound-7GWizCKV.js → EntityNotFound-CXLwU46X.js} +1 -1
  17. package/dist/assets/{EntityUnAuthorised-BGNR4Y6R.js → EntityUnAuthorised-D_OocRok.js} +1 -1
  18. package/dist/assets/{ErrorView-Dbc4jM8G.js → ErrorView-Ddve61SR.js} +1 -1
  19. package/dist/assets/{EvaluationsRootView-bKi3SFkK.js → EvaluationsRootView-CwnpaTOj.js} +1 -1
  20. package/dist/assets/{EvaluationsView-URJMmngS.js → EvaluationsView-qyuUuYXa.js} +3 -3
  21. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-C8GA5YsR.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-BUewTSGd.js} +2 -2
  22. package/dist/assets/{ExecutionsView-C32NF_Mi.js → ExecutionsView-DJrYHBv3.js} +19 -37
  23. package/dist/assets/{ExecutionsView-BHBePl1_.css → ExecutionsView-DpVZbkhT.css} +5 -22
  24. package/dist/assets/{FixedCollectionParameter-C32o7Xw1.js → FixedCollectionParameter-DwEogsZk.js} +1 -1
  25. package/dist/assets/{ForgotMyPasswordView-BIGcjM0k.js → ForgotMyPasswordView-DI84hvl-.js} +3 -3
  26. package/dist/assets/{InfoAccordion-DVdDpADr.js → InfoAccordion-BE3HeAda.js} +1 -1
  27. package/dist/assets/{InsightsChartAverageRuntime-CjOAk50Z.js → InsightsChartAverageRuntime-BtvhyT4O.js} +4 -4
  28. package/dist/assets/{InsightsChartFailed-DCQYezXm.js → InsightsChartFailed-dkCtU8dv.js} +4 -4
  29. package/dist/assets/{InsightsChartFailureRate-L674yUIQ.js → InsightsChartFailureRate-WuP5IVli.js} +4 -4
  30. package/dist/assets/{InsightsChartTimeSaved-B6a4bv2j.js → InsightsChartTimeSaved-fJ4sJVOO.js} +4 -4
  31. package/dist/assets/{InsightsChartTotal-BGmz_E44.js → InsightsChartTotal-iySL1IzO.js} +4 -4
  32. package/dist/assets/{InsightsDashboard-CbtPLqME.js → InsightsDashboard-CWQypWnL.js} +10 -10
  33. package/dist/assets/{InsightsPaywall-iTfZzLCq.js → InsightsPaywall-xxlsNh03.js} +1 -1
  34. package/dist/assets/{InsightsSummary-D0XZxoWu.js → InsightsSummary-B9ja1nMH.js} +1 -1
  35. package/dist/assets/{InsightsTableWorkflows-DYL5sIeL.js → InsightsTableWorkflows-C6FAPyPO.js} +4 -4
  36. package/dist/assets/{Logo-BF6xE_TK.js → Logo-D7CE2pbe.js} +1 -1
  37. package/dist/assets/{LogsPanel-DhSbCRI8.js → LogsPanel-BiYKXufL.js} +32 -20
  38. package/dist/assets/{MainHeader-C992btCf.js → MainHeader-CglQ1iop.js} +19 -14
  39. package/dist/assets/{MainHeader-BofAi8wS.css → MainHeader-pDg5KXTB.css} +16 -16
  40. package/dist/assets/{MainSidebar-CfBkhJuz.js → MainSidebar-CwXyHnb4.js} +25 -14
  41. package/dist/assets/{MainSidebar-D74VZmM5.css → MainSidebar-a73tcV9E.css} +2 -2
  42. package/dist/assets/{NodeCreation-CxN6JIS_.css → NodeCreation-C4gQlPqI.css} +6 -3
  43. package/dist/assets/{NodeCreation-C4-JrWkw.js → NodeCreation-o_K0NT5J.js} +21 -12
  44. package/dist/assets/NodeCreator-COTYfPaK.css +1637 -0
  45. package/dist/assets/{NodeCreator-BHFu5J3H.js → NodeCreator-b-LnZdSN.js} +28 -1227
  46. package/dist/assets/{NodeDetailsView-DucQbxES.js → NodeDetailsView-DUVQMLye.js} +18 -16
  47. package/dist/assets/{NodeDetailsViewV2-By7jano3.js → NodeDetailsViewV2-BQ8TJyUD.js} +19 -16
  48. package/dist/assets/{NodeView-CiaJbQtZ.css → NodeView-BRa11kAq.css} +177 -50
  49. package/dist/assets/{NodeView-Bi4OfDJp.js → NodeView-DbmrvKR2.js} +270 -147
  50. package/dist/assets/PageViewLayout-CJlzbuVj.css +141 -0
  51. package/dist/assets/PageViewLayout-DZqdTTmk.js +27 -0
  52. package/dist/assets/PrebuiltAgentTemplatesView-COxu7Iih.css +166 -0
  53. package/dist/assets/PrebuiltAgentTemplatesView-WwV7YqEW.js +196 -0
  54. package/dist/assets/{ProjectBreadcrumb-l5PnV6Jp.js → ProjectBreadcrumb-BI6swolU.js} +1 -1
  55. package/dist/assets/{ProjectHeader-D1veUs2f.js → ProjectHeader-CnsOY_oX.js} +39 -5
  56. package/dist/assets/{ProjectSettings-CiMu32JB.js → ProjectSettings-EJHNdA8h.js} +10 -10
  57. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-Cl5RoRJK.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-CLOnjTDY.js} +1 -1
  58. package/dist/assets/{ResourcesListLayout-C1JgyGhX.css → ResourcesListLayout-B5eMf4SI.css} +27 -164
  59. package/dist/assets/{ResourcesListLayout-V2ovJZd-.js → ResourcesListLayout-DhiDqjXw.js} +25 -45
  60. package/dist/assets/{RunDataJson--o61ywP4.js → RunDataJson-B2NTI_mB.js} +5 -3
  61. package/dist/assets/{RunDataJsonActions-BuTnnCdp.js → RunDataJsonActions-DXk7AkuZ.js} +1 -1
  62. package/dist/assets/{RunDataParsedAiContent-Dv43fJJj.js → RunDataParsedAiContent-DO8FIZ0n.js} +2 -2
  63. package/dist/assets/{RunDataSearch-DhhRomuh.js → RunDataSearch-B3I1BHmn.js} +1 -1
  64. package/dist/assets/{RunDataTable-BRNjCbjf.js → RunDataTable-B1jJSa32.js} +34 -32
  65. package/dist/assets/{RunDataTable-n918b-Qv.css → RunDataTable-BZzteeuj.css} +54 -53
  66. package/dist/assets/{SamlOnboarding-ChVfS2ix.js → SamlOnboarding-DNKahChr.js} +3 -3
  67. package/dist/assets/SelectedItemsInfo-CfUb0ZrI.css +139 -0
  68. package/dist/assets/SelectedItemsInfo-Dc4Okb_S.js +60 -0
  69. package/dist/assets/{SettingsApiView-EJcHWxis.js → SettingsApiView-B1JK9R6f.js} +1 -1
  70. package/dist/assets/{SettingsCommunityNodesView-BCGKGJGl.js → SettingsCommunityNodesView-PgfaI_WI.js} +4 -4
  71. package/dist/assets/{SettingsExternalSecrets-DQ6GuwI_.js → SettingsExternalSecrets-BZ3lZITS.js} +1 -1
  72. package/dist/assets/{SettingsLdapView-YMEEL5g4.js → SettingsLdapView-MUSj3Las.js} +1 -1
  73. package/dist/assets/{SettingsLogStreamingView-CMRM9qEX.js → SettingsLogStreamingView-g4sm9ihp.js} +1 -1
  74. package/dist/assets/{SettingsPersonalView-CQ3j6jFh.js → SettingsPersonalView-DZscNVF5.js} +1 -1
  75. package/dist/assets/{SettingsSourceControl-W3xQHBQs.js → SettingsSourceControl-CaCqYmDO.js} +1 -1
  76. package/dist/assets/{SettingsSso-B-RJISS8.js → SettingsSso-BoLpDt6z.js} +1 -1
  77. package/dist/assets/{SettingsUsageAndPlan-BI4z3ArV.js → SettingsUsageAndPlan-B1ibE1jm.js} +1 -1
  78. package/dist/assets/{SettingsUsersView-FdTxfP_9.js → SettingsUsersView-Be7pqBLD.js} +1 -1
  79. package/dist/assets/{SettingsView-enVRJi4X.js → SettingsView-DIw6ydDb.js} +1 -1
  80. package/dist/assets/{SetupView-DhQVRFto.js → SetupView-BCV1wNp0.js} +3 -3
  81. package/dist/assets/{SetupWorkflowCredentialsButton-o-0v9TC0.js → SetupWorkflowCredentialsButton-DxydQJ6C.js} +1 -1
  82. package/dist/assets/{SetupWorkflowFromTemplateView-t24Wf8j0.js → SetupWorkflowFromTemplateView-B0B3GOOf.js} +3 -3
  83. package/dist/assets/{SigninView-CqnnxcHH.js → SigninView-DOGcmqE3.js} +26 -9
  84. package/dist/assets/{SignoutView-BYkRErR0.js → SignoutView-B9IoLPOG.js} +1 -1
  85. package/dist/assets/{SignupView-CZ5xz8Ej.js → SignupView-DC6gW-aS.js} +3 -3
  86. package/dist/assets/{TableBase-DZ3KHAaq.js → TableBase-rH4yk1ew.js} +1 -1
  87. package/dist/assets/{Tag-BZXOdJeY.js → Tag-C0MYaZ1N.js} +1 -1
  88. package/dist/assets/{Tags-BGrNA-zc.js → Tags-DbHWxo-G.js} +2 -2
  89. package/dist/assets/{TemplateDetails-CGeXTU0J.js → TemplateDetails-Bizetmsp.js} +2 -2
  90. package/dist/assets/{TemplateList-BUJPQKR1.js → TemplateList-nvQBix9z.js} +1 -1
  91. package/dist/assets/{TemplatesCollectionView-CDz25qgN.js → TemplatesCollectionView-B9sB1kty.js} +7 -7
  92. package/dist/assets/{TemplatesSearchView-l-Ueq6ha.js → TemplatesSearchView-AXAdkVMZ.js} +3 -3
  93. package/dist/assets/{TemplatesView-CbzVhmOD.js → TemplatesView-CumdCs93.js} +1 -1
  94. package/dist/assets/{TemplatesWorkflowView-D2fR5qLE.js → TemplatesWorkflowView-C-gTBSHB.js} +7 -7
  95. package/dist/assets/{TriggerPanel-BNb8Fkp3.js → TriggerPanel-BMnQXPE0.js} +7 -7
  96. package/dist/assets/{TriggerPanel-BFPMKijE.css → TriggerPanel-DiD8pi0I.css} +4 -4
  97. package/dist/assets/{VariablesView-ZO4oTir0.js → VariablesView-CSyZZSGu.js} +6 -5
  98. package/dist/assets/{WorkerView-DjYjCGEz.js → WorkerView-y1gN4jjY.js} +6 -6
  99. package/dist/assets/{WorkflowActivator-CFrLXTxM.js → WorkflowActivator-34Rs65ZA.js} +3 -3
  100. package/dist/assets/{WorkflowExecutionsInfoAccordion-C8Tc4Mno.js → WorkflowExecutionsInfoAccordion-Td0WBvMx.js} +2 -2
  101. package/dist/assets/{WorkflowExecutionsLandingPage-BiuuJ3ll.js → WorkflowExecutionsLandingPage-Bro6PvBk.js} +3 -3
  102. package/dist/assets/{WorkflowExecutionsPreview-CYoDxL8E.js → WorkflowExecutionsPreview-Px9mMJbR.js} +4 -4
  103. package/dist/assets/{WorkflowExecutionsView-C78loZuv.js → WorkflowExecutionsView-Bo7yagw5.js} +7 -7
  104. package/dist/assets/{WorkflowHistory-CqoFF8_8.js → WorkflowHistory-D5nOy2uN.js} +2 -2
  105. package/dist/assets/{WorkflowOnboardingView-dpvpoau1.js → WorkflowOnboardingView-CapOEI4L.js} +1 -1
  106. package/dist/assets/{WorkflowPreview-83_iB67I.js → WorkflowPreview-Dd49ncZV.js} +1 -1
  107. package/dist/assets/{WorkflowsView-Bhr5Vfcw.js → WorkflowsView-CnOu7hid.js} +113 -30
  108. package/dist/assets/{canvas-Kg89rGSt.js → canvas-JvPOqEjf.js} +1 -1
  109. package/dist/assets/{chartjs.utils-6nSeP00a.js → chartjs.utils-U9Db2woJ.js} +2 -2
  110. package/dist/assets/{core-BiQ8TPaF.js → core-BKMZD8Mn.js} +1 -1
  111. package/dist/assets/{dataStore.store-Bru4R38e.js → dataStore.store-CN-ElCfI.js} +49 -29
  112. package/dist/assets/{en-CZDXhi4W.js → en-DhcqXAmr.js} +25 -8
  113. package/dist/assets/{global-link-actions-BfwrTt1h.js → global-link-actions-DDCy0nlC.js} +1 -1
  114. package/dist/assets/{index-CZxO9Y7t.js → index-BrzJ49KI.js} +1 -1
  115. package/dist/assets/{index-Am8RmnT4.css → index-DXNU_2Fk.css} +3613 -1439
  116. package/dist/assets/{index-V25MIkzH.js → index-De29TdKc.js} +16550 -14429
  117. package/dist/assets/{pickBy-CInoejW7.js → pickBy-BmxGkcfr.js} +1 -1
  118. package/dist/assets/{readyToRunWorkflows.store-D8qADh9A.js → readyToRunWorkflows.store-BGvURDML.js} +1 -1
  119. package/dist/assets/{templateActions-CytValxU.js → templateActions-AROReKhy.js} +1 -1
  120. package/dist/assets/{useBeforeUnload-yQFY1z_s.js → useBeforeUnload-Bl2noypd.js} +1 -1
  121. package/dist/assets/{useExecutionDebugging-DiCw9NpL.js → useExecutionDebugging-BFA_6rY-.js} +12 -8
  122. package/dist/assets/{useImportCurlCommand-UhCp_Hxn.js → useImportCurlCommand-Dj7YTg7e.js} +1 -1
  123. package/dist/assets/{useProjectPages-DNuz01tw.js → useProjectPages-B_FiANIN.js} +1 -1
  124. package/dist/assets/{usePushConnection-BOddel3U.js → usePushConnection-BmGujaBx.js} +8 -3
  125. package/dist/assets/{useWorkflowActivate-DKZ9PzgK.js → useWorkflowActivate-BNP9vQIn.js} +1 -1
  126. package/dist/index.html +2 -2
  127. package/eslint.config.mjs +1 -0
  128. package/package.json +1 -1
  129. package/dist/assets/CollectionParameter-CGRCLW5F.js +0 -4
  130. package/dist/assets/NodeCreator-vQ-Sfr_5.css +0 -3568
@@ -1,80 +1,11 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-C4-JrWkw.js","assets/index-V25MIkzH.js","assets/index-Am8RmnT4.css","assets/NodeCreation-CxN6JIS_.css","assets/NodeDetailsView-DucQbxES.js","assets/TriggerPanel-BNb8Fkp3.js","assets/RunDataParsedAiContent-Dv43fJJj.js","assets/core-BiQ8TPaF.js","assets/RunDataParsedAiContent-wfIiKsq7.css","assets/ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-Y9jgPwUm.js","assets/InfoAccordion-DVdDpADr.js","assets/InfoAccordion-dxudNqVC.css","assets/TriggerPanel-BFPMKijE.css","assets/useWorkflowActivate-DKZ9PzgK.js","assets/global-link-actions-BfwrTt1h.js","assets/useExecutionDebugging-DiCw9NpL.js","assets/useBeforeUnload-yQFY1z_s.js","assets/canvas-Kg89rGSt.js","assets/readyToRunWorkflows.store-D8qADh9A.js","assets/NodeDetailsView-CjdovDgq.css","assets/NodeDetailsViewV2-By7jano3.js","assets/NodeDetailsViewV2-J_3cfdea.css","assets/SetupWorkflowCredentialsButton-o-0v9TC0.js"])))=>i.map(i=>d[i]);
2
- import { d as defineComponent, x as computed, r as ref, aY as useNDVStore, a7 as watch, h as createElementBlock, g as openBlock, n as normalizeClass, e as createBlock, f as createCommentVNode, l as unref, p as N8nText, w as withCtx, k as createTextVNode, t as toDisplayString, cv as _sfc_main$a, i as createVNode, aa as _sfc_main$b, _ as _export_sfc, aq as createEventBus, as as useCssModule, v as useSettingsStore, cw as useVueFlow, bZ as toRef, cx as useCanvasMapping, cy as refThrottled, j as createBaseVNode, X as renderSlot, cz as Canvas, K as mergeProps, a1 as useWorkflowsStore, bK as useNodeHelpers, cA as useFocusPanelStore, ad as useNodeTypesStore, cB as useNodeSettingsParameters, cC as useEnvironmentsStore, cD as useDeviceSupport, cE as HTML_NODE_TYPE, cF as isValueExpression, cG as isResourceLocatorValue, cH as AI_TRANSFORM_NODE_TYPE, cI as useResolvedExpression, cj as useThrottleFn, B as withModifiers, cJ as _sfc_main$c, N as N8nIcon, cK as InfoTip, c as useI18n, cL as __unplugin_components_2, cM as __unplugin_components_3, F as Fragment, cN as __unplugin_components_4, cO as __unplugin_components_5, cP as __unplugin_components_6, cQ as __unplugin_components_7, cR as __unplugin_components_8, cS as __unplugin_components_9, cT as N8nInput, O as N8nRadioButtons, ap as normalizeStyle, ch as useStyles, cg as N8nResizeWrapper, cU as getParameterTypeOption, cV as htmlEditorEventBus, cW as parseFromExpression, cX as isValidParameterOption, cY as formatAsExpression, al as useTelemetry, Y as nextTick, cZ as hasFocusOnInput, c_ as isFocusableEl, bA as isChatNode, c$ as truncateBeforeLast, q as N8nButton, ab as I18nT, cf as KeyboardShortcutTooltip, bW as NodeIcon, aM as N8nActionDropdown, d0 as reactive, o as onMounted, c6 as onUnmounted, d1 as _sfc_main$d, D as useI18n$1, b as useRouter, a2 as useRoute, a as useToast, ax as useDocumentTitle, az as useWorkflowHelpers, ay as useWorkflowSaving, Q as useUIStore, af as useSourceControlStore, d2 as useNodeCreatorStore, d3 as useCredentialsStore, d4 as useExternalSecretsStore, at as useRootStore, aZ as useExecutionsStore, cm as useCanvasStore, aw as useNpsSurveyStore, d5 as useHistoryStore, au as useProjectsStore, u as useUsersStore, ar as useTagsStore, a0 as usePushConnectionStore, bk as useTemplatesStore, d6 as useBuilderStore, av as useFoldersStore, d7 as usePostHog, d8 as useAgentRequestStore, bJ as useLogsStore, bL as useRunWorkflow, bO as useCanvasOperations, d9 as useWorkflowExtraction, c9 as useClipboard, bm as useKeybindings, bt as ABOUT_MODAL_KEY, a3 as PLACEHOLDER_EMPTY_WORKFLOW_ID, da as NEW_WORKFLOW_ID, V as VIEWS, db as NDV_UI_OVERHAUL_EXPERIMENT, bP as START_NODE_TYPE, dc as getNodeViewTab, L as MAIN_HEADER_TABS, dd as VALID_WORKFLOW_IMPORT_URL_REGEX, am as useMessage, an as MODAL_CONFIRM, de as jsonParse, aB as getResourcePermissions, bG as CHAT_TRIGGER_NODE_TYPE, bF as MANUAL_CHAT_TRIGGER_NODE_TYPE, df as EVALUATION_TRIGGER_NODE_TYPE, dg as getBounds, dh as onBeforeRouteLeave, b1 as onBeforeMount, ak as WORKFLOW_SETTINGS_MODAL_KEY, bo as useExternalHooks, di as onActivated, dj as onDeactivated, W as onBeforeUnmount, dk as Suspense, dl as defineAsyncComponent, z as N8nCallout, aU as __vitePreload, aE as EnterpriseEditionFeature, dm as NODE_CREATOR_OPEN_SOURCES, dn as EVALUATION_NODE_TYPE, dp as getSampleWorkflowByTemplateId, dq as tryToParseNumber, aO as nodeViewEventBus, bB as NodeConnectionTypes, dr as createCanvasConnectionHandleString, ds as isValidNodeConnectionType, dt as CanvasConnectionMode, du as sourceControlEventBus, dv as getNodesWithNormalizedPosition, aW as h, dw as CanvasNodeRenderType, b0 as STICKY_NODE_TYPE, dx as needsAgentInput, dy as FROM_AI_PARAMETERS_MODAL_KEY, dz as historyBus, dA as DRAG_EVENT_DATA_KEY } from "./index-V25MIkzH.js";
3
- import { g as globalLinkActionsEventBus } from "./global-link-actions-BfwrTt1h.js";
4
- import { u as useExecutionDebugging } from "./useExecutionDebugging-DiCw9NpL.js";
5
- import { u as useBeforeUnload } from "./useBeforeUnload-yQFY1z_s.js";
6
- import { c as canvasEventBus } from "./canvas-Kg89rGSt.js";
7
- import { u as useAITemplatesStarterCollectionStore, a as useReadyToRunWorkflowsStore } from "./readyToRunWorkflows.store-D8qADh9A.js";
8
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
9
- __name: "ExperimentalNodeDetailsDrawer",
10
- props: {
11
- selectedNodes: {}
12
- },
13
- setup(__props) {
14
- const content2 = computed(
15
- () => __props.selectedNodes.length > 1 ? `${__props.selectedNodes.length} nodes selected` : __props.selectedNodes.length > 0 ? __props.selectedNodes[0] : void 0
16
- );
17
- const lastContent = ref();
18
- const { setActiveNodeName } = useNDVStore();
19
- function handleOpenNdv() {
20
- if (typeof content2.value === "object" && content2.value.data) {
21
- setActiveNodeName(content2.value.data.name);
22
- }
23
- }
24
- watch(
25
- content2,
26
- (newContent) => {
27
- if (newContent !== void 0) {
28
- lastContent.value = newContent;
29
- }
30
- },
31
- { immediate: true }
32
- );
33
- return (_ctx, _cache) => {
34
- const _component_N8nIconButton = _sfc_main$b;
35
- return openBlock(), createElementBlock("div", {
36
- class: normalizeClass([_ctx.$style.component, content2.value === void 0 ? _ctx.$style.closed : ""])
37
- }, [
38
- typeof lastContent.value === "string" ? (openBlock(), createBlock(unref(N8nText), {
39
- key: 0,
40
- color: "text-base"
41
- }, {
42
- default: withCtx(() => [
43
- createTextVNode(toDisplayString(lastContent.value), 1)
44
- ]),
45
- _: 1
46
- })) : lastContent.value !== void 0 ? (openBlock(), createBlock(_sfc_main$a, {
47
- key: lastContent.value.id,
48
- "node-id": lastContent.value.id
49
- }, {
50
- actions: withCtx(() => [
51
- createVNode(_component_N8nIconButton, {
52
- icon: "maximize-2",
53
- type: "secondary",
54
- text: "",
55
- size: "mini",
56
- "icon-size": "large",
57
- "aria-label": "Expand",
58
- onClick: handleOpenNdv
59
- })
60
- ]),
61
- _: 1
62
- }, 8, ["node-id"])) : createCommentVNode("", true)
63
- ], 2);
64
- };
65
- }
66
- });
67
- const component$1 = "_component_wojby_123";
68
- const closed = "_closed_wojby_138";
69
- const style0$5 = {
70
- component: component$1,
71
- closed
72
- };
73
- const cssModules$5 = {
74
- "$style": style0$5
75
- };
76
- const ExperimentalNodeDetailsDrawer = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__cssModules", cssModules$5]]);
77
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-o_K0NT5J.js","assets/index-De29TdKc.js","assets/index-DXNU_2Fk.css","assets/NodeCreation-C4gQlPqI.css","assets/NodeDetailsView-DUVQMLye.js","assets/TriggerPanel-BMnQXPE0.js","assets/RunDataParsedAiContent-DO8FIZ0n.js","assets/core-BKMZD8Mn.js","assets/RunDataParsedAiContent-wfIiKsq7.css","assets/ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-upvzJHw_.js","assets/InfoAccordion-BE3HeAda.js","assets/InfoAccordion-dxudNqVC.css","assets/TriggerPanel-DiD8pi0I.css","assets/useWorkflowActivate-BNP9vQIn.js","assets/global-link-actions-DDCy0nlC.js","assets/useExecutionDebugging-BFA_6rY-.js","assets/useBeforeUnload-Bl2noypd.js","assets/canvas-JvPOqEjf.js","assets/readyToRunWorkflows.store-BGvURDML.js","assets/NodeDetailsView-CjdovDgq.css","assets/NodeDetailsViewV2-BQ8TJyUD.js","assets/NodeDetailsViewV2-J_3cfdea.css","assets/SetupWorkflowCredentialsButton-DxydQJ6C.js"])))=>i.map(i=>d[i]);
2
+ import { d as defineComponent, aq as createEventBus, as as useCssModule, cx as useVueFlow, b_ as toRef, x as computed, cy as useCanvasMapping, r as ref, cz as refThrottled, h as createElementBlock, g as openBlock, n as normalizeClass, l as unref, j as createBaseVNode, X as renderSlot, e as createBlock, f as createCommentVNode, cA as Canvas, K as mergeProps, _ as _export_sfc, a1 as useWorkflowsStore, cB as useExpressionResolveCtx, p as N8nText, w as withCtx, k as createTextVNode, t as toDisplayString, cC as _sfc_main$b, i as createVNode, aa as _sfc_main$c, bO as provide, cD as ExpressionLocalResolveContextSymbol, ad as useNodeTypesStore, bX as NodeIcon, F as Fragment, cE as _sfc_main$d, aG as useTemplateRef, bL as useNodeHelpers, cF as useFocusPanelStore, cG as useNodeSettingsParameters, cH as useEnvironmentsStore, cI as useExperimentalNdvStore, aY as useNDVStore, cJ as useDeviceSupport, cv as useActiveElement, cK as useTelemetryContext, cL as HTML_NODE_TYPE, cM as isValueExpression, cN as isResourceLocatorValue, cO as AI_TRANSFORM_NODE_TYPE, cP as useResolvedExpression, a7 as watch, cl as useThrottleFn, B as withModifiers, N as N8nIcon, cQ as InfoTip, c as useI18n, cR as __unplugin_components_2, cS as __unplugin_components_3, cT as __unplugin_components_4, cU as __unplugin_components_5, cV as __unplugin_components_6, cW as __unplugin_components_7, cX as __unplugin_components_8, cY as __unplugin_components_9, cZ as N8nInput, O as N8nRadioButtons, ap as normalizeStyle, ch as N8nResizeWrapper, c_ as getParameterTypeOption, c$ as htmlEditorEventBus, d0 as parseFromExpression, d1 as isValidParameterOption, d2 as formatAsExpression, al as useTelemetry, Y as nextTick, d3 as hasFocusOnInput, d4 as isFocusableEl, bB as isChatNode, d5 as truncateBeforeLast, q as N8nButton, ab as I18nT, cg as KeyboardShortcutTooltip, aM as N8nActionDropdown, d6 as reactive, o as onMounted, c7 as onUnmounted, d7 as _sfc_main$e, D as useI18n$1, b as useRouter, a2 as useRoute, a as useToast, ax as useDocumentTitle, az as useWorkflowHelpers, ay as useWorkflowSaving, Q as useUIStore, af as useSourceControlStore, d8 as useNodeCreatorStore, v as useSettingsStore, d9 as useCredentialsStore, da as useExternalSecretsStore, at as useRootStore, aZ as useExecutionsStore, co as useCanvasStore, aw as useNpsSurveyStore, db as useHistoryStore, au as useProjectsStore, u as useUsersStore, ar as useTagsStore, a0 as usePushConnectionStore, bk as useTemplatesStore, dc as useBuilderStore, av as useFoldersStore, dd as usePostHog, de as useAgentRequestStore, bK as useLogsStore, bM as useRunWorkflow, bP as useCanvasOperations, df as useWorkflowExtraction, ca as useClipboard, bn as useKeybindings, bu as ABOUT_MODAL_KEY, a3 as PLACEHOLDER_EMPTY_WORKFLOW_ID, dg as NEW_WORKFLOW_ID, V as VIEWS, dh as NDV_UI_OVERHAUL_EXPERIMENT, bQ as START_NODE_TYPE, di as getNodeViewTab, L as MAIN_HEADER_TABS, dj as VALID_WORKFLOW_IMPORT_URL_REGEX, am as useMessage, an as MODAL_CONFIRM, dk as jsonParse, aB as getResourcePermissions, bH as CHAT_TRIGGER_NODE_TYPE, bG as MANUAL_CHAT_TRIGGER_NODE_TYPE, dl as EVALUATION_TRIGGER_NODE_TYPE, dm as getBounds, dn as onBeforeRouteLeave, b1 as onBeforeMount, ak as WORKFLOW_SETTINGS_MODAL_KEY, bp as useExternalHooks, dp as onActivated, dq as onDeactivated, W as onBeforeUnmount, dr as Suspense, ds as defineAsyncComponent, z as N8nCallout, aU as __vitePreload, aE as EnterpriseEditionFeature, dt as NODE_CREATOR_OPEN_SOURCES, du as EVALUATION_NODE_TYPE, dv as getSampleWorkflowByTemplateId, dw as tryToParseNumber, aO as nodeViewEventBus, bC as NodeConnectionTypes, dx as createCanvasConnectionHandleString, dy as CanvasConnectionMode, dz as isValidNodeConnectionType, dA as sourceControlEventBus, dB as getNodesWithNormalizedPosition, aW as h, dC as CanvasNodeRenderType, dD as shouldIgnoreCanvasShortcut, b0 as STICKY_NODE_TYPE, dE as needsAgentInput, dF as FROM_AI_PARAMETERS_MODAL_KEY, dG as historyBus, dH as DRAG_EVENT_DATA_KEY } from "./index-De29TdKc.js";
3
+ import { g as globalLinkActionsEventBus } from "./global-link-actions-DDCy0nlC.js";
4
+ import { u as useExecutionDebugging } from "./useExecutionDebugging-BFA_6rY-.js";
5
+ import { u as useBeforeUnload } from "./useBeforeUnload-Bl2noypd.js";
6
+ import { c as canvasEventBus } from "./canvas-JvPOqEjf.js";
7
+ import { u as useAITemplatesStarterCollectionStore, a as useReadyToRunWorkflowsStore } from "./readyToRunWorkflows.store-BGvURDML.js";
8
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
78
9
  ...{
79
10
  inheritAttrs: false
80
11
  },
@@ -92,8 +23,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
92
23
  setup(__props) {
93
24
  const props = __props;
94
25
  const $style = useCssModule();
95
- const settingsStore = useSettingsStore();
96
- const { onNodesInitialized, getSelectedNodes } = useVueFlow(props.id);
26
+ const { onNodesInitialized } = useVueFlow(props.id);
97
27
  const workflow = toRef(props, "workflow");
98
28
  const workflowObject = toRef(props, "workflowObject");
99
29
  const nodes = computed(() => {
@@ -133,25 +63,21 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
133
63
  executing: _ctx.executing
134
64
  }, _ctx.$attrs), null, 16, ["id", "nodes", "connections", "event-bus", "read-only", "executing"])) : createCommentVNode("", true)
135
65
  ], 2),
136
- renderSlot(_ctx.$slots, "default"),
137
- unref(settingsStore).experimental__dockedNodeSettingsEnabled && !props.readOnly ? (openBlock(), createBlock(ExperimentalNodeDetailsDrawer, {
138
- key: 0,
139
- "selected-nodes": unref(getSelectedNodes)
140
- }, null, 8, ["selected-nodes"])) : createCommentVNode("", true)
66
+ renderSlot(_ctx.$slots, "default")
141
67
  ], 2);
142
68
  };
143
69
  }
144
70
  });
145
71
  const wrapper$2 = "_wrapper_jyurh_123";
146
72
  const canvas = "_canvas_jyurh_131";
147
- const style0$4 = {
73
+ const style0$6 = {
148
74
  wrapper: wrapper$2,
149
75
  canvas
150
76
  };
151
- const cssModules$4 = {
152
- "$style": style0$4
77
+ const cssModules$6 = {
78
+ "$style": style0$6
153
79
  };
154
- const WorkflowCanvas = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__cssModules", cssModules$4]]);
80
+ const WorkflowCanvas = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$6]]);
155
81
  function useExecutionData({ node }) {
156
82
  const workflowsStore = useWorkflowsStore();
157
83
  const workflowExecution = computed(() => {
@@ -179,6 +105,154 @@ function useExecutionData({ node }) {
179
105
  hasNodeRun
180
106
  };
181
107
  }
108
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
109
+ __name: "ExperimentalNodeDetailsDrawer",
110
+ props: {
111
+ node: {},
112
+ nodes: {}
113
+ },
114
+ emits: ["openNdv"],
115
+ setup(__props, { emit: __emit }) {
116
+ const emit = __emit;
117
+ const expressionResolveCtx = useExpressionResolveCtx(computed(() => __props.node));
118
+ provide(ExpressionLocalResolveContextSymbol, expressionResolveCtx);
119
+ return (_ctx, _cache) => {
120
+ const _component_N8nIconButton = _sfc_main$c;
121
+ return openBlock(), createElementBlock("div", {
122
+ class: normalizeClass(_ctx.$style.component)
123
+ }, [
124
+ _ctx.nodes.length > 1 ? (openBlock(), createBlock(unref(N8nText), {
125
+ key: 0,
126
+ color: "text-base"
127
+ }, {
128
+ default: withCtx(() => [
129
+ createTextVNode(toDisplayString(_ctx.nodes.length) + " nodes selected ", 1)
130
+ ]),
131
+ _: 1
132
+ })) : _ctx.node ? (openBlock(), createBlock(_sfc_main$b, {
133
+ key: _ctx.node.id,
134
+ "node-id": _ctx.node.id
135
+ }, {
136
+ actions: withCtx(() => [
137
+ createVNode(_component_N8nIconButton, {
138
+ icon: "maximize-2",
139
+ type: "secondary",
140
+ text: "",
141
+ size: "mini",
142
+ "icon-size": "large",
143
+ "aria-label": "Expand",
144
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("openNdv"))
145
+ })
146
+ ]),
147
+ _: 1
148
+ }, 8, ["node-id"])) : createCommentVNode("", true)
149
+ ], 2);
150
+ };
151
+ }
152
+ });
153
+ const component$2 = "_component_1u8pj_123";
154
+ const style0$5 = {
155
+ component: component$2
156
+ };
157
+ const cssModules$5 = {
158
+ "$style": style0$5
159
+ };
160
+ const ExperimentalNodeDetailsDrawer = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__cssModules", cssModules$5]]);
161
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
162
+ __name: "ExperimentalFocusPanelHeader",
163
+ props: {
164
+ node: {},
165
+ parameter: {},
166
+ isExecutable: { type: Boolean }
167
+ },
168
+ emits: ["execute", "openNdv", "clearParameter"],
169
+ setup(__props, { emit: __emit }) {
170
+ const nodeTypesStore = useNodeTypesStore();
171
+ const nodeType = computed(() => nodeTypesStore.getNodeType(__props.node.type, __props.node.typeVersion));
172
+ const emit = __emit;
173
+ return (_ctx, _cache) => {
174
+ return openBlock(), createBlock(unref(N8nText), {
175
+ tag: "div",
176
+ size: "small",
177
+ bold: "",
178
+ class: normalizeClass(_ctx.$style.component)
179
+ }, {
180
+ default: withCtx(() => [
181
+ createVNode(NodeIcon, {
182
+ "node-type": nodeType.value,
183
+ size: 16
184
+ }, null, 8, ["node-type"]),
185
+ createBaseVNode("div", {
186
+ class: normalizeClass(_ctx.$style.breadcrumbs)
187
+ }, [
188
+ _ctx.parameter ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
189
+ createVNode(unref(N8nText), {
190
+ size: "small",
191
+ color: "text-base",
192
+ bold: ""
193
+ }, {
194
+ default: withCtx(() => [
195
+ createTextVNode(toDisplayString(_ctx.node.name), 1)
196
+ ]),
197
+ _: 1
198
+ }),
199
+ createVNode(unref(N8nText), {
200
+ size: "small",
201
+ color: "text-light"
202
+ }, {
203
+ default: withCtx(() => _cache[3] || (_cache[3] = [
204
+ createTextVNode("/")
205
+ ])),
206
+ _: 1
207
+ }),
208
+ createTextVNode(" " + toDisplayString(_ctx.parameter.displayName), 1)
209
+ ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
210
+ createTextVNode(toDisplayString(_ctx.node.name), 1)
211
+ ], 64))
212
+ ], 2),
213
+ _ctx.parameter ? (openBlock(), createBlock(unref(_sfc_main$c), {
214
+ key: 0,
215
+ icon: "x",
216
+ size: "small",
217
+ type: "tertiary",
218
+ text: "",
219
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("clearParameter"))
220
+ })) : (openBlock(), createBlock(unref(_sfc_main$c), {
221
+ key: 1,
222
+ icon: "maximize-2",
223
+ size: "small",
224
+ type: "tertiary",
225
+ text: "",
226
+ onClick: _cache[1] || (_cache[1] = ($event) => emit("openNdv"))
227
+ })),
228
+ _ctx.isExecutable ? (openBlock(), createBlock(_sfc_main$d, {
229
+ key: 2,
230
+ "data-test-id": "node-execute-button",
231
+ "node-name": _ctx.node.name,
232
+ tooltip: `Execute ${_ctx.node.name}`,
233
+ size: "small",
234
+ icon: "play",
235
+ square: true,
236
+ "hide-label": true,
237
+ "telemetry-source": "focus",
238
+ onExecute: _cache[2] || (_cache[2] = ($event) => emit("execute"))
239
+ }, null, 8, ["node-name", "tooltip"])) : createCommentVNode("", true)
240
+ ]),
241
+ _: 1
242
+ }, 8, ["class"]);
243
+ };
244
+ }
245
+ });
246
+ const component$1 = "_component_dktdl_123";
247
+ const breadcrumbs = "_breadcrumbs_dktdl_131";
248
+ const style0$4 = {
249
+ component: component$1,
250
+ breadcrumbs
251
+ };
252
+ const cssModules$4 = {
253
+ "$style": style0$4
254
+ };
255
+ const ExperimentalFocusPanelHeader = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__cssModules", cssModules$4]]);
182
256
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
183
257
  ...{ name: "FocusPanel" },
184
258
  __name: "FocusPanel",
@@ -190,6 +264,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
190
264
  const props = __props;
191
265
  const emit = __emit;
192
266
  const inputField = ref();
267
+ const wrapperRef = useTemplateRef("wrapper");
193
268
  const locale = useI18n();
194
269
  const nodeHelpers = useNodeHelpers();
195
270
  const focusPanelStore = useFocusPanelStore();
@@ -198,12 +273,13 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
198
273
  const telemetry = useTelemetry();
199
274
  const nodeSettingsParameters = useNodeSettingsParameters();
200
275
  const environmentsStore = useEnvironmentsStore();
276
+ const experimentalNdvStore = useExperimentalNdvStore();
277
+ const ndvStore = useNDVStore();
201
278
  const deviceSupport = useDeviceSupport();
202
- const styles = useStyles();
203
- const focusedNodeParameter = computed(() => focusPanelStore.focusedNodeParameters[0]);
204
- const resolvedParameter = computed(
205
- () => focusedNodeParameter.value && focusPanelStore.isRichParameter(focusedNodeParameter.value) ? focusedNodeParameter.value : void 0
206
- );
279
+ const vueFlow = useVueFlow(workflowsStore.workflowId);
280
+ const activeElement = useActiveElement();
281
+ useTelemetryContext({ view_shown: "focus_panel" });
282
+ const resolvedParameter = computed(() => focusPanelStore.resolvedParameter);
207
283
  const inputValue = ref("");
208
284
  const focusPanelActive = computed(() => focusPanelStore.focusPanelActive);
209
285
  const focusPanelWidth = computed(() => focusPanelStore.focusPanelWidth);
@@ -227,19 +303,22 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
227
303
  "displayOptions"
228
304
  );
229
305
  });
306
+ const node = computed(() => {
307
+ if (!experimentalNdvStore.isNdvInFocusPanelEnabled || resolvedParameter.value) {
308
+ return resolvedParameter.value?.node;
309
+ }
310
+ const selected = vueFlow.getSelectedNodes.value[0]?.id;
311
+ return selected ? workflowsStore.allNodes.find((n) => n.id === selected) : void 0;
312
+ });
313
+ const multipleNodesSelected = computed(() => vueFlow.getSelectedNodes.value.length > 1);
230
314
  const isExecutable = computed(() => {
231
- if (!resolvedParameter.value) return false;
315
+ if (!node.value) return false;
232
316
  if (!isDisplayed.value) return false;
233
317
  const foreignCredentials = nodeHelpers.getForeignCredentialsIfSharingEnabled(
234
- resolvedParameter.value.node.credentials
235
- );
236
- return nodeHelpers.isNodeExecutable(
237
- resolvedParameter.value.node,
238
- !props.isCanvasReadOnly,
239
- foreignCredentials
318
+ node.value.credentials
240
319
  );
320
+ return nodeHelpers.isNodeExecutable(node.value, !props.isCanvasReadOnly, foreignCredentials);
241
321
  });
242
- const node = computed(() => resolvedParameter.value?.node);
243
322
  const { workflowRunData } = useExecutionData({ node });
244
323
  const hasNodeRun = computed(() => {
245
324
  if (!node.value) return true;
@@ -362,6 +441,14 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
362
441
  }
363
442
  }
364
443
  function closeFocusPanel() {
444
+ if (experimentalNdvStore.isNdvInFocusPanelEnabled && resolvedParameter.value) {
445
+ focusPanelStore.unsetParameters();
446
+ telemetry.track("User removed focused param", {
447
+ source: "closeIcon",
448
+ parameters: focusPanelStore.focusedNodeParametersInTelemetryFormat
449
+ });
450
+ return;
451
+ }
365
452
  telemetry.track("User closed focus panel", {
366
453
  source: "closeIcon",
367
454
  parameters: focusPanelStore.focusedNodeParametersInTelemetryFormat
@@ -424,12 +511,31 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
424
511
  },
425
512
  { immediate: true }
426
513
  );
514
+ watch(activeElement, (active) => {
515
+ if (!node.value || !active || !wrapperRef.value?.contains(active)) {
516
+ return;
517
+ }
518
+ const path = active.closest(".parameter-input")?.getAttribute("data-parameter-path");
519
+ if (!path) {
520
+ return;
521
+ }
522
+ telemetry.track("User focused focus panel", {
523
+ node_id: node.value.id,
524
+ node_type: node.value.type,
525
+ parameter_path: path
526
+ });
527
+ });
427
528
  function onResize(event) {
428
529
  focusPanelStore.updateWidth(event.width);
429
530
  }
430
531
  const onResizeThrottle = useThrottleFn(onResize, 10);
532
+ function onOpenNdv() {
533
+ if (node.value) {
534
+ ndvStore.setActiveNodeName(node.value.name, "focus_panel");
535
+ }
536
+ }
431
537
  return (_ctx, _cache) => {
432
- const _component_NodeExecuteButton = _sfc_main$c;
538
+ const _component_NodeExecuteButton = _sfc_main$d;
433
539
  const _component_N8nIcon = N8nIcon;
434
540
  const _component_ParameterOptions = __unplugin_components_2;
435
541
  const _component_ExpressionEditorModalInput = __unplugin_components_3;
@@ -442,6 +548,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
442
548
  const _component_N8nRadioButtons = N8nRadioButtons;
443
549
  return focusPanelActive.value ? (openBlock(), createElementBlock("div", {
444
550
  key: 0,
551
+ ref: "wrapper",
445
552
  class: normalizeClass(_ctx.$style.wrapper),
446
553
  onKeydown: _cache[9] || (_cache[9] = withModifiers(() => {
447
554
  }, ["stop"]))
@@ -450,20 +557,30 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
450
557
  width: focusPanelWidth.value,
451
558
  "supported-directions": ["left"],
452
559
  "min-width": 300,
453
- "max-width": 1e3,
560
+ "max-width": unref(experimentalNdvStore).isNdvInFocusPanelEnabled ? void 0 : 1e3,
454
561
  "grid-size": 8,
455
- style: normalizeStyle({ width: `${focusPanelWidth.value}px`, zIndex: unref(styles).APP_Z_INDEXES.FOCUS_PANEL }),
562
+ style: normalizeStyle({ width: `${focusPanelWidth.value}px` }),
456
563
  onResize: unref(onResizeThrottle)
457
564
  }, {
458
565
  default: withCtx(() => [
459
566
  createBaseVNode("div", {
460
567
  class: normalizeClass(_ctx.$style.container)
461
568
  }, [
462
- resolvedParameter.value ? (openBlock(), createElementBlock("div", {
569
+ unref(experimentalNdvStore).isNdvInFocusPanelEnabled && node.value && !multipleNodesSelected.value ? (openBlock(), createBlock(ExperimentalFocusPanelHeader, {
463
570
  key: 0,
571
+ node: node.value,
572
+ parameter: resolvedParameter.value?.parameter,
573
+ "is-executable": isExecutable.value,
574
+ onExecute,
575
+ onOpenNdv,
576
+ onClearParameter: closeFocusPanel
577
+ }, null, 8, ["node", "parameter", "is-executable"])) : createCommentVNode("", true),
578
+ resolvedParameter.value ? (openBlock(), createElementBlock("div", {
579
+ key: 1,
464
580
  class: normalizeClass(_ctx.$style.content)
465
581
  }, [
466
- createBaseVNode("div", {
582
+ !unref(experimentalNdvStore).isNdvInFocusPanelEnabled ? (openBlock(), createElementBlock("div", {
583
+ key: 0,
467
584
  class: normalizeClass(_ctx.$style.tabHeader)
468
585
  }, [
469
586
  createBaseVNode("div", {
@@ -511,7 +628,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
511
628
  onClick: closeFocusPanel
512
629
  }, null, 8, ["class"])
513
630
  ], 2)
514
- ], 2),
631
+ ], 2)) : createCommentVNode("", true),
515
632
  createBaseVNode("div", {
516
633
  class: normalizeClass(_ctx.$style.parameterDetailsWrapper)
517
634
  }, [
@@ -674,8 +791,13 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
674
791
  ], 64)) : createCommentVNode("", true)
675
792
  ], 2)) : createCommentVNode("", true)
676
793
  ], 2)
677
- ], 2)) : (openBlock(), createElementBlock("div", {
678
- key: 1,
794
+ ], 2)) : node.value && unref(experimentalNdvStore).isNdvInFocusPanelEnabled ? (openBlock(), createBlock(ExperimentalNodeDetailsDrawer, {
795
+ key: 2,
796
+ node: node.value,
797
+ nodes: unref(vueFlow).getSelectedNodes.value,
798
+ onOpenNdv
799
+ }, null, 8, ["node", "nodes"])) : (openBlock(), createElementBlock("div", {
800
+ key: 3,
679
801
  class: normalizeClass([_ctx.$style.content, _ctx.$style.emptyContent])
680
802
  }, [
681
803
  createBaseVNode("div", {
@@ -738,32 +860,32 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
738
860
  ], 2)
739
861
  ]),
740
862
  _: 1
741
- }, 8, ["width", "style", "onResize"])
863
+ }, 8, ["width", "max-width", "style", "onResize"])
742
864
  ], 34)) : createCommentVNode("", true);
743
865
  };
744
866
  }
745
867
  });
746
- const wrapper$1 = "_wrapper_1ebmp_123";
747
- const container = "_container_1ebmp_132";
748
- const content = "_content_1ebmp_138";
749
- const emptyContent = "_emptyContent_1ebmp_144";
750
- const emptyText = "_emptyText_1ebmp_149";
751
- const focusParameterWrapper = "_focusParameterWrapper_1ebmp_155";
752
- const iconWrapper$1 = "_iconWrapper_1ebmp_162";
753
- const pointerIcon = "_pointerIcon_1ebmp_166";
754
- const tabHeader = "_tabHeader_1ebmp_176";
755
- const tabHeaderText = "_tabHeaderText_1ebmp_183";
756
- const buttonWrapper = "_buttonWrapper_1ebmp_188";
757
- const parameterDetailsWrapper = "_parameterDetailsWrapper_1ebmp_193";
758
- const parameterOptionsWrapper = "_parameterOptionsWrapper_1ebmp_200";
759
- const noExecutionDataTip = "_noExecutionDataTip_1ebmp_204";
760
- const editorContainer = "_editorContainer_1ebmp_207";
761
- const editor = "_editor_1ebmp_207";
762
- const delayedShow = "_delayedShow_1ebmp_222";
763
- const triggerShow = "_triggerShow_1ebmp_1";
764
- const closeButton = "_closeButton_1ebmp_233";
765
- const heightFull = "_heightFull_1ebmp_237";
766
- const forceHover = "_forceHover_1ebmp_241";
868
+ const wrapper$1 = "_wrapper_1yhze_123";
869
+ const container = "_container_1yhze_135";
870
+ const content = "_content_1yhze_141";
871
+ const emptyContent = "_emptyContent_1yhze_147";
872
+ const emptyText = "_emptyText_1yhze_152";
873
+ const focusParameterWrapper = "_focusParameterWrapper_1yhze_158";
874
+ const iconWrapper$1 = "_iconWrapper_1yhze_165";
875
+ const pointerIcon = "_pointerIcon_1yhze_169";
876
+ const tabHeader = "_tabHeader_1yhze_179";
877
+ const tabHeaderText = "_tabHeaderText_1yhze_186";
878
+ const buttonWrapper = "_buttonWrapper_1yhze_191";
879
+ const parameterDetailsWrapper = "_parameterDetailsWrapper_1yhze_196";
880
+ const parameterOptionsWrapper = "_parameterOptionsWrapper_1yhze_203";
881
+ const noExecutionDataTip = "_noExecutionDataTip_1yhze_207";
882
+ const editorContainer = "_editorContainer_1yhze_210";
883
+ const editor = "_editor_1yhze_210";
884
+ const delayedShow = "_delayedShow_1yhze_225";
885
+ const triggerShow = "_triggerShow_1yhze_1";
886
+ const closeButton = "_closeButton_1yhze_236";
887
+ const heightFull = "_heightFull_1yhze_240";
888
+ const forceHover = "_forceHover_1yhze_244";
767
889
  const style0$3 = {
768
890
  wrapper: wrapper$1,
769
891
  container,
@@ -1062,7 +1184,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1062
1184
  () => props.stopping ? i18n.baseText("nodeView.stoppingCurrentExecution") : i18n.baseText("nodeView.stopCurrentExecution")
1063
1185
  );
1064
1186
  return (_ctx, _cache) => {
1065
- const _component_N8nIconButton = _sfc_main$b;
1187
+ const _component_N8nIconButton = _sfc_main$c;
1066
1188
  return openBlock(), createBlock(_component_N8nIconButton, {
1067
1189
  icon: "square",
1068
1190
  size: "large",
@@ -1080,7 +1202,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1080
1202
  setup(__props) {
1081
1203
  const i18n = useI18n();
1082
1204
  return (_ctx, _cache) => {
1083
- const _component_N8nIconButton = _sfc_main$b;
1205
+ const _component_N8nIconButton = _sfc_main$c;
1084
1206
  return openBlock(), createBlock(_component_N8nIconButton, {
1085
1207
  class: "stop-execution",
1086
1208
  icon: "square",
@@ -1112,7 +1234,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1112
1234
  createBaseVNode("div", {
1113
1235
  class: normalizeClass(unref($style).iconWrapper)
1114
1236
  }, [
1115
- createVNode(_sfc_main$d, { theme: "blank" })
1237
+ createVNode(_sfc_main$e, { theme: "blank" })
1116
1238
  ], 2),
1117
1239
  createBaseVNode("span", {
1118
1240
  class: normalizeClass(unref($style).text)
@@ -1190,16 +1312,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1190
1312
  __name: "NodeView",
1191
1313
  setup(__props) {
1192
1314
  const LazyNodeCreation = defineAsyncComponent(
1193
- async () => await __vitePreload(() => import("./NodeCreation-C4-JrWkw.js"), true ? __vite__mapDeps([0,1,2,3]) : void 0)
1315
+ async () => await __vitePreload(() => import("./NodeCreation-o_K0NT5J.js"), true ? __vite__mapDeps([0,1,2,3]) : void 0)
1194
1316
  );
1195
1317
  const LazyNodeDetailsView = defineAsyncComponent(
1196
- async () => await __vitePreload(() => import("./NodeDetailsView-DucQbxES.js"), true ? __vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]) : void 0)
1318
+ async () => await __vitePreload(() => import("./NodeDetailsView-DUVQMLye.js"), true ? __vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]) : void 0)
1197
1319
  );
1198
1320
  const LazyNodeDetailsViewV2 = defineAsyncComponent(
1199
- async () => await __vitePreload(() => import("./NodeDetailsViewV2-By7jano3.js"), true ? __vite__mapDeps([20,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21]) : void 0)
1321
+ async () => await __vitePreload(() => import("./NodeDetailsViewV2-BQ8TJyUD.js"), true ? __vite__mapDeps([20,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21]) : void 0)
1200
1322
  );
1201
1323
  const LazySetupWorkflowCredentialsButton = defineAsyncComponent(
1202
- async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-o-0v9TC0.js"), true ? __vite__mapDeps([22,1,2]) : void 0)
1324
+ async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-DxydQJ6C.js"), true ? __vite__mapDeps([22,1,2]) : void 0)
1203
1325
  );
1204
1326
  const $style = useCssModule();
1205
1327
  const router = useRouter();
@@ -1667,7 +1789,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1667
1789
  return;
1668
1790
  }
1669
1791
  }
1670
- setNodeActive(id);
1792
+ setNodeActive(id, "canvas_default_view");
1671
1793
  }
1672
1794
  function onOpenSubWorkflow(id) {
1673
1795
  tryToOpenSubworkflowInNewTab(id);
@@ -1781,7 +1903,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1781
1903
  async function onOpenRenameNodeModal(id) {
1782
1904
  const currentName = workflowsStore.getNodeById(id)?.name ?? "";
1783
1905
  const activeElement = document.activeElement;
1784
- if (activeElement && activeElement.tagName === "INPUT") {
1906
+ if (activeElement && shouldIgnoreCanvasShortcut(activeElement)) {
1785
1907
  return;
1786
1908
  }
1787
1909
  if (!keyBindingsEnabled.value || document.querySelector(".rename-prompt")) return;
@@ -1996,7 +2118,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1996
2118
  function onSwitchActiveNode(nodeName) {
1997
2119
  const node = workflowsStore.getNodeByName(nodeName);
1998
2120
  if (!node) return;
1999
- setNodeActiveByName(nodeName);
2121
+ setNodeActiveByName(nodeName, "other");
2000
2122
  selectNodes([node.id]);
2001
2123
  }
2002
2124
  function onOpenSelectiveNodeCreator(node, connectionType, connectionIndex = 0) {
@@ -2390,7 +2512,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2390
2512
  registerCustomAction({
2391
2513
  key: "openNodeDetail",
2392
2514
  action: ({ node }) => {
2393
- setNodeActiveByName(node);
2515
+ setNodeActiveByName(node, "other");
2394
2516
  }
2395
2517
  });
2396
2518
  registerCustomAction({
@@ -2406,7 +2528,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2406
2528
  registerCustomAction({
2407
2529
  key: "showNodeCreator",
2408
2530
  action: () => {
2409
- ndvStore.activeNodeName = null;
2531
+ ndvStore.unsetActiveNodeName();
2410
2532
  void nextTick(() => {
2411
2533
  void onOpenNodeCreatorForTriggerNodes(NODE_CREATOR_OPEN_SOURCES.TAB);
2412
2534
  });
@@ -2427,7 +2549,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2427
2549
  function updateNodeRoute(nodeId) {
2428
2550
  const nodeUi = workflowsStore.findNodeByPartialId(nodeId);
2429
2551
  if (nodeUi) {
2430
- setNodeActive(nodeUi.id);
2552
+ setNodeActive(nodeUi.id, "other");
2431
2553
  } else {
2432
2554
  toast.showToast({
2433
2555
  title: i18n.baseText("nodeView.showMessage.ndvUrl.missingNodes.title"),
@@ -2473,13 +2595,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2473
2595
  parameters: {},
2474
2596
  draggable: false
2475
2597
  };
2476
- fallbackNodes.value = builderStore.isAIBuilderEnabled && builderStore.isAssistantEnabled ? [aiPromptItem] : [addNodesItem];
2598
+ fallbackNodes.value = builderStore.isAIBuilderEnabled && builderStore.isAssistantEnabled && builderStore.assistantMessages.length === 0 ? [aiPromptItem] : [addNodesItem];
2477
2599
  }
2478
2600
  );
2479
2601
  watch(
2480
2602
  () => route.params.nodeId,
2481
2603
  async (newId) => {
2482
- if (typeof newId !== "string" || newId === "") ndvStore.activeNodeName = null;
2604
+ if (typeof newId !== "string" || newId === "") ndvStore.unsetActiveNodeName();
2483
2605
  else {
2484
2606
  updateNodeRoute(newId);
2485
2607
  }
@@ -2719,9 +2841,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2719
2841
  key: 0,
2720
2842
  "create-node-active": unref(nodeCreatorStore).isCreateNodeActive,
2721
2843
  "node-view-scale": viewportTransform.value.zoom,
2844
+ "focus-panel-active": unref(focusPanelStore).focusPanelActive,
2722
2845
  onToggleNodeCreator,
2723
2846
  onAddNodes: onAddNodesAndConnections
2724
- }, null, 8, ["create-node-active", "node-view-scale"])) : createCommentVNode("", true)
2847
+ }, null, 8, ["create-node-active", "node-view-scale", "focus-panel-active"])) : createCommentVNode("", true)
2725
2848
  ]),
2726
2849
  _: 1
2727
2850
  })),