n8n-editor-ui 1.100.0 → 1.101.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 (134) hide show
  1. package/dist/assets/ActionDropdown-BmC0wfMx.css +172 -0
  2. package/dist/assets/ActionDropdown-BujIG0Jq.js +172 -0
  3. package/dist/assets/{AnimatedSpinner-CmnLqX1g.js → AnimatedSpinner-B5cpb6Fs.js} +3 -3
  4. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-LialmjU-.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BPigGQTI.js} +1 -1
  5. package/dist/assets/AuthView-BOTPYtpM.js +242 -0
  6. package/dist/assets/AuthView-DZB9HITQ.css +450 -0
  7. package/dist/assets/{ChangePasswordView-F2YljaHC.js → ChangePasswordView-DbeC55bz.js} +4 -4
  8. package/dist/assets/CollectionParameter-CExdr4jd.js +4 -0
  9. package/dist/assets/{CredentialsView-_HiqTMnI.js → CredentialsView-DUh5K-2r.js} +16 -15
  10. package/dist/assets/{DemoFooter-BWGzoS_I.js → DemoFooter-BXPfbNJE.js} +7 -6
  11. package/dist/assets/EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-CDDQIxv5.js +39 -0
  12. package/dist/assets/{EntityNotFound-Cy9wp8En.js → EntityNotFound-CBUuOOYw.js} +1 -1
  13. package/dist/assets/{EntityUnAuthorised-CqJIbUWK.js → EntityUnAuthorised-7xgN3ECo.js} +1 -1
  14. package/dist/assets/{ErrorView-Kpuz8zoT.js → ErrorView-BVfcsoOa.js} +4 -4
  15. package/dist/assets/{EvaluationsRootView-HfYQYHAD.js → EvaluationsRootView-BjrpKDj-.js} +2 -2
  16. package/dist/assets/{EvaluationsView-i9O4Pq6o.js → EvaluationsView-DdmFZCH-.js} +9 -9
  17. package/dist/assets/{ExecutionsTime-BDLkVZem.css → ExecutionsTime-kMSlccIr.css} +6 -6
  18. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-BHONBvt7.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-Ctx5Ybnr.js} +24 -19
  19. package/dist/assets/{ExecutionsView-BY23VFik.js → ExecutionsView-8BjGHy2I.js} +13 -12
  20. package/dist/assets/{ExecutionsView-ChOXAON3.css → ExecutionsView-DSsowKj4.css} +1 -1
  21. package/dist/assets/{FileSaver.min-CxOI-Vgx.js → FileSaver.min-C5wzcK59.js} +1 -1
  22. package/dist/assets/{FixedCollectionParameter-Dj0393fQ.js → FixedCollectionParameter-BrPQ5Vay.js} +1 -1
  23. package/dist/assets/{ForgotMyPasswordView-yMWlCT90.js → ForgotMyPasswordView-L0afefc1.js} +3 -3
  24. package/dist/assets/InfoAccordion-CEk3XG5b.js +146 -0
  25. package/dist/assets/InfoAccordion-dxudNqVC.css +168 -0
  26. package/dist/assets/{InsightsChartAverageRuntime-CAzHGVRl.js → InsightsChartAverageRuntime-BrwBWr_R.js} +4 -4
  27. package/dist/assets/{InsightsChartFailed-DQ9ntBQJ.js → InsightsChartFailed-ILKWvikG.js} +4 -4
  28. package/dist/assets/{InsightsChartFailureRate-DVZarv-u.js → InsightsChartFailureRate-D1AVYwU7.js} +4 -4
  29. package/dist/assets/{InsightsChartTimeSaved-CAhRkqgH.js → InsightsChartTimeSaved-D49Rwn6-.js} +4 -4
  30. package/dist/assets/{InsightsChartTotal-C60cS-Xa.js → InsightsChartTotal-Bs-pUgA3.js} +4 -4
  31. package/dist/assets/{InsightsDashboard-DM-I5QbW.js → InsightsDashboard-BIC4uZpW.js} +12 -12
  32. package/dist/assets/{InsightsPaywall-BLHoSCNL.js → InsightsPaywall-DmwFI-6e.js} +4 -4
  33. package/dist/assets/{InsightsSummary-JPw9kN4a.js → InsightsSummary-D9lEzWNT.js} +3 -3
  34. package/dist/assets/InsightsTableWorkflows-CC8t-sAL.js +3355 -0
  35. package/dist/assets/{Logo-C699HbA_.js → Logo-DNxOhbuV.js} +1 -1
  36. package/dist/assets/{LogsPanel-BWnaJuFj.js → LogsPanel-DvWnD7rJ.js} +21 -18
  37. package/dist/assets/{MainHeader-Ce0GAh6o.js → MainHeader-BVHIuVVT.js} +165 -22
  38. package/dist/assets/{MainHeader--6ITU977.css → MainHeader-DYYEm7nF.css} +202 -12
  39. package/dist/assets/{MainSidebar-CooH0xuY.js → MainSidebar-CEHr93uL.js} +305 -92
  40. package/dist/assets/{MainSidebar-DrjvHIqG.css → MainSidebar-DqrgzqvZ.css} +209 -48
  41. package/dist/assets/{NodeCreation-RKvezEeg.css → NodeCreation-32nlvQSy.css} +4 -24
  42. package/dist/assets/{NodeCreation-T5AfZVS1.js → NodeCreation-Bq5626Ha.js} +75 -81
  43. package/dist/assets/{NodeCreator-4g3-zQj6.js → NodeCreator-D7xT3ogw.js} +156 -42
  44. package/dist/assets/{NodeCreator-B1jJcOYT.css → NodeCreator-Dk0sNXFZ.css} +212 -0
  45. package/dist/assets/{NodeDetailsView-DWA1ZgwG.css → NodeDetailsView-BaIj2qAa.css} +241 -0
  46. package/dist/assets/{NodeDetailsView-BvClCeyF.js → NodeDetailsView-DB-5JPUD.js} +81 -56
  47. package/dist/assets/{NodeView-RurRbUaI.css → NodeView-DL8JxnMc.css} +516 -125
  48. package/dist/assets/{NodeView-DWCMsw1d.js → NodeView-DoR46iB5.js} +1393 -988
  49. package/dist/assets/{ProjectHeader-C7A20kgK.js → ProjectHeader-DSKKwiQ0.js} +14 -10
  50. package/dist/assets/{ProjectSettings-DVNR9FN4.js → ProjectSettings-C3sMIDHh.js} +366 -22
  51. package/dist/assets/{WorkflowActivator-C0R6Yly0.css → ProjectSettings-CCVXNK3G.css} +97 -43
  52. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-D-uuE-zX.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-cnANEo9o.js} +2 -2
  53. package/dist/assets/{ResourcesListLayout-D0WMvHN_.js → ResourcesListLayout-BVbjqFbc.js} +349 -24
  54. package/dist/assets/{ResourcesListLayout-D6zDTXm4.css → ResourcesListLayout-uBbUHbxU.css} +8 -8
  55. package/dist/assets/{RunData-C-tqFRZO.js → RunData-DG20AzLo.js} +16 -15
  56. package/dist/assets/{RunDataJson-pe7NZQoH.js → RunDataJson-7okRLIES.js} +7 -6
  57. package/dist/assets/{RunDataJsonActions-3CT6wqXW.js → RunDataJsonActions-Qkg8HmUd.js} +2 -2
  58. package/dist/assets/{RunDataParsedAiContent-CGCVmkuV.js → RunDataParsedAiContent-DRO1Bjsh.js} +5 -4
  59. package/dist/assets/{RunDataSearch-jkQ60p9j.js → RunDataSearch-D5eQUWvi.js} +3 -3
  60. package/dist/assets/{RunDataTable-BqU63PyF.js → RunDataTable-CJmmTtEp.js} +115 -4
  61. package/dist/assets/{RunDataTable-CUxj7dHx.css → RunDataTable-CykHIwNT.css} +129 -0
  62. package/dist/assets/{SamlOnboarding-tGJha_9t.js → SamlOnboarding-ClxYfm5z.js} +3 -3
  63. package/dist/assets/{SettingsApiView-DkeogFEJ.js → SettingsApiView-Ds7FYVrN.js} +13 -13
  64. package/dist/assets/{SettingsCommunityNodesView-DdKQ7Jg5.js → SettingsCommunityNodesView-QKvLs6gi.js} +13 -13
  65. package/dist/assets/{SettingsExternalSecrets-CIvPLpaR.js → SettingsExternalSecrets-DGRdvsMy.js} +9 -9
  66. package/dist/assets/{SettingsLdapView-u9uiXIG8.js → SettingsLdapView-C_LJwixk.js} +6 -6
  67. package/dist/assets/{SettingsLogStreamingView-CQDEQGxK.js → SettingsLogStreamingView-CaEJvgJ9.js} +9 -9
  68. package/dist/assets/{SettingsPersonalView-ta7XbuCV.js → SettingsPersonalView-DlwXaGDs.js} +13 -12
  69. package/dist/assets/{SettingsSourceControl-DxbBCbMO.js → SettingsSourceControl-B6eULOfX.js} +23 -12
  70. package/dist/assets/{AuthView-jgkkdJYL.css → SettingsSourceControl-BBxJXbFC.css} +82 -32
  71. package/dist/assets/{SettingsSso-Bp4pf_0a.js → SettingsSso-5zcg-J4E.js} +11 -11
  72. package/dist/assets/{SettingsUsageAndPlan-D680YlPQ.js → SettingsUsageAndPlan-CMBvYdjo.js} +10 -10
  73. package/dist/assets/{SettingsUsageAndPlan-Bc3LLaWe.css → SettingsUsageAndPlan-D6TiPwUx.css} +3 -3
  74. package/dist/assets/{SettingsUsersView-DP2nppP6.js → SettingsUsersView-BL3TAhT8.js} +13 -12
  75. package/dist/assets/{SettingsView-BUpTI--W.js → SettingsView-BuDKhqwZ.js} +4 -4
  76. package/dist/assets/{SetupView-Bocro878.js → SetupView-DSaQcQDF.js} +3 -3
  77. package/dist/assets/{SetupWorkflowCredentialsButton-DODNIDNV.js → SetupWorkflowCredentialsButton-BWISZAxq.js} +2 -2
  78. package/dist/assets/{SetupWorkflowFromTemplateView-BLzrIJTt.js → SetupWorkflowFromTemplateView-CfDWCwoA.js} +6 -6
  79. package/dist/assets/{SigninView-2_f1aXTx.js → SigninView-BpjyswHb.js} +17 -20
  80. package/dist/assets/{SignoutView-oMETilwl.js → SignoutView-f_CoUl4S.js} +1 -1
  81. package/dist/assets/{SignupView-CYMsjH_L.js → SignupView-q3f9g3P9.js} +3 -3
  82. package/dist/assets/{SettingsSourceControl-DxshapuD.css → TableBase-Bf42_9Yp.css} +52 -67
  83. package/dist/assets/TableBase-DruQl-SO.js +28 -0
  84. package/dist/assets/{ProjectSettings-8tvaQJye.css → Tags-B0bIUnzf.css} +48 -39
  85. package/dist/assets/Tags-DbmKHzWo.js +95 -0
  86. package/dist/assets/{TemplateDetails-CmL1Gj71.js → TemplateDetails-DP_5pkzG.js} +17 -9
  87. package/dist/assets/{TemplateList-DpqrSF2u.js → TemplateList-y8Aumcsb.js} +6 -6
  88. package/dist/assets/{TemplatesCollectionView-DVlz-_MJ.js → TemplatesCollectionView-VdQpHtxs.js} +13 -12
  89. package/dist/assets/{TemplatesSearchView-CcToWnkG.js → TemplatesSearchView-BUcYRVEK.js} +16 -12
  90. package/dist/assets/{TemplatesView-CXH6dh9Y.js → TemplatesView-4DUEEEtD.js} +1 -1
  91. package/dist/assets/{TemplatesWorkflowView-DL9rIrAK.js → TemplatesWorkflowView--zUXMB8f.js} +12 -11
  92. package/dist/assets/{VariablesView-CX3umLhX.js → VariablesView-DoWb0Vtv.js} +7 -6
  93. package/dist/assets/{VariablesView-2BSJPXRB.css → VariablesView-Kog_9PMT.css} +8 -5
  94. package/dist/assets/{WorkerView-C5XLf-D-.js → WorkerView-D56d7XJA.js} +18 -18
  95. package/dist/assets/WorkflowActivator-BJPsIkXE.css +836 -0
  96. package/dist/assets/{WorkflowActivator-Bzz5eOg4.js → WorkflowActivator-CQxaDCfA.js} +313 -19
  97. package/dist/assets/{WorkflowExecutionsInfoAccordion-UVslt3c0.js → WorkflowExecutionsInfoAccordion-D9p_ZqmA.js} +6 -5
  98. package/dist/assets/{WorkflowExecutionsLandingPage-C1xNEQ3_.js → WorkflowExecutionsLandingPage-CymYth6K.js} +6 -5
  99. package/dist/assets/{WorkflowExecutionsPreview--Vn3C-sa.js → WorkflowExecutionsPreview-DRvf3WQC.js} +18 -18
  100. package/dist/assets/{WorkflowExecutionsView-_l8AgWIb.css → WorkflowExecutionsView-C_xuUSa8.css} +2 -2
  101. package/dist/assets/{WorkflowExecutionsView-B_Pvn_mZ.js → WorkflowExecutionsView-DxiIaUKV.js} +18 -15
  102. package/dist/assets/{WorkflowHistory-CQLQcsG4.js → WorkflowHistory-DBPIq2u7.js} +14 -13
  103. package/dist/assets/{WorkflowOnboardingView-DJZD6lcQ.js → WorkflowOnboardingView-D4QKSetf.js} +1 -1
  104. package/dist/assets/{WorkflowPreview-CAv2jWEf.js → WorkflowPreview-D3YRZjYi.js} +3 -3
  105. package/dist/assets/{WorkflowsView-9oLDmGMf.js → WorkflowsView-DPADmBVd.js} +37 -32
  106. package/dist/assets/{chartjs.utils-D3bkyfMC.js → chartjs.utils-Cou_ISuU.js} +2 -2
  107. package/dist/assets/{en-BUHUsdZz.js → en-DzZibgm_.js} +15 -1
  108. package/dist/assets/{global-link-actions-CudV1inR.js → global-link-actions-olwfH36z.js} +1 -1
  109. package/dist/assets/{import-curl-Q2R3Aa93.js → import-curl-DD21H3kK.js} +1 -1
  110. package/dist/assets/{index-ZImlcrmd.js → index-7S5ADieN.js} +177205 -181453
  111. package/dist/assets/{index-CeLskvTy.css → index-BzamKJpD.css} +2688 -5455
  112. package/dist/assets/{index-Cjj5DRsU.js → index-uJOu4Uio.js} +1 -1
  113. package/dist/assets/{pickBy-C61vriIY.js → pickBy-DPxZbMic.js} +1 -1
  114. package/dist/assets/{polyfills-deFGRMT9.js → polyfills-B8p9DdqU.js} +388 -1
  115. package/dist/assets/{templateActions-DgE3PfYi.js → templateActions-DJJfyIhq.js} +1 -1
  116. package/dist/assets/{typescript.worker-DIrCbxuR.js → typescript.worker-CUj0Nj-S.js} +39 -39
  117. package/dist/assets/{useBeforeUnload-CX6OL9lX.js → useBeforeUnload-DveXGtGN.js} +1 -1
  118. package/dist/assets/{useExecutionDebugging-Bw29Xcz_.js → useExecutionDebugging-DM4nhx6D.js} +1 -1
  119. package/dist/assets/{useExecutionHelpers-DfJOrkT9.js → useExecutionHelpers-BfF56crp.js} +1 -1
  120. package/dist/assets/{useImportCurlCommand-BtBYH8AF.js → useImportCurlCommand-BAgQhwtE.js} +11 -11
  121. package/dist/assets/{ProjectCardBadge-t3v64i1e.css → useKeybindings-BUK7Ngh6.css} +10 -31
  122. package/dist/assets/{useKeybindings-Dl2fatxs.js → useKeybindings-CV0VsjNP.js} +35 -1
  123. package/dist/assets/{useProjectPages-wyiRSAYY.js → useProjectPages-DgMGWOaO.js} +1 -1
  124. package/dist/assets/{usePushConnection-DbNbVMYT.js → usePushConnection-D8SE-itT.js} +3 -2
  125. package/dist/assets/{useWorkflowActivate-CnaSqjqM.js → useWorkflowActivate-BKz3N1SO.js} +1 -1
  126. package/dist/index.html +3 -3
  127. package/eslint.config.mjs +58 -0
  128. package/package.json +2 -1
  129. package/postcss.config.cjs +6 -0
  130. package/vite.config.mts +4 -0
  131. package/dist/assets/AuthView-BBEIdfYQ.js +0 -130
  132. package/dist/assets/CollectionParameter-_4aFNEaG.js +0 -4
  133. package/dist/assets/InsightsTableWorkflows-Cs0bf9Y9.js +0 -176
  134. package/dist/assets/ProjectCardBadge-saH09Hgi.js +0 -237
@@ -1,11 +1,12 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-T5AfZVS1.js","assets/index-ZImlcrmd.js","assets/index-CeLskvTy.css","assets/NodeCreation-RKvezEeg.css","assets/NodeDetailsView-BvClCeyF.js","assets/RunData-C-tqFRZO.js","assets/FileSaver.min-CxOI-Vgx.js","assets/useExecutionHelpers-DfJOrkT9.js","assets/RunData-B5_okvCv.css","assets/RunDataParsedAiContent-CGCVmkuV.js","assets/RunDataParsedAiContent-9EEUzCKp.css","assets/useWorkflowActivate-CnaSqjqM.js","assets/useKeybindings-Dl2fatxs.js","assets/import-curl-Q2R3Aa93.js","assets/global-link-actions-CudV1inR.js","assets/useExecutionDebugging-Bw29Xcz_.js","assets/useBeforeUnload-CX6OL9lX.js","assets/NodeDetailsView-DWA1ZgwG.css","assets/SetupWorkflowCredentialsButton-DODNIDNV.js"])))=>i.map(i=>d[i]);
2
- import { _ as _export_sfc$1, i as createElementBlock, g as openBlock, k as createBaseVNode, d as defineComponent, cf as PanelPosition, cg as useVueFlow, bJ as toRef, e as createBlock, w as withCtx, A as renderSlot, f as createCommentVNode, F as Fragment, j as createVNode, bQ as resolveDynamicComponent, m as unref, ch as _sfc_main$O, x as computed, h as resolveComponent, c as useI18n, b$ as KeyboardShortcutTooltip, n as normalizeClass, bf as NodeConnectionTypes, ci as getBezierPath, cj as getSmoothStepPath, ck as Position, bM as inject, cl as CanvasKey, a0 as useCssModule, cm as parseCanvasConnectionHandleString, r as ref, o as onMounted, G as renderList, cn as _sfc_main$d$1, D as normalizeStyle, J as useUIStore, bw as useNodeTypesStore, T as useWorkflowsStore, a3 as useSourceControlStore, ab as getResourcePermissions, co as isNodeWithWorkflowSelector, cp as getSubworkflowId, cq as isPresent, $ as watch, cr as getMousePosition, aG as STICKY_NODE_TYPE, bp as usePinnedData, cs as NOT_DUPLICATABLE_NODE_TYPES, ct as isExecutable, cu as Teleport, c1 as useStyles, c2 as N8nActionDropdown, bz as getDefaultExportFromCjs, cv as NODE_SIZE, cw as CanvasNodeRenderType, cx as GRID_SIZE, c4 as useThrottleFn, cy as getRectOfNodes, bT as onUnmounted, cz as onKeyDown, cA as onKeyUp, cB as useSlots, cC as useAttrs, cD as getBoundsofRects, cE as watchEffect, t as toDisplayString, cF as getConnectedEdges, bO as normalizeProps, bK as mergeProps, bu as provide, ay as h, b1 as createSlots, cG as isValidNodeConnectionType, cH as _sfc_main$3$1, cI as CanvasConnectionMode, cJ as CanvasNodeKey, cK as mergeModels, cL as useModel, z as onBeforeUnmount, br as useNodeHelpers, cM as TitledList, aZ as N8nTooltip, l as createTextVNode, cN as CanvasNodeDirtiness, v as useSettingsStore, bv as useCanvasOperations, cO as refDebounced, ag as useTemplateRef, cP as useElementSize, bF as _sfc_main$P, ah as InlineRename, aA as useNDVStore, cQ as isCommunityPackageName, cR as NPM_PACKAGE_DOCS_BASE_URL, cS as BUILTIN_NODES_DOCS_URL, cT as COMMUNITY_NODES_INSTALLATION_DOCS_URL, aX as useExternalHooks, am as useTelemetry, bW as useClipboard, a9 as useWorkflowHelpers, a as useToast, cU as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, cV as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, cW as MCP_TRIGGER_NODE_TYPE, cX as FORM_TRIGGER_NODE_TYPE, bo as CHAT_TRIGGER_NODE_TYPE, aY as onClickOutside, cY as toRef$1, cZ as tryOnScopeDispose, c_ as toValue, c$ as isIOS, d0 as noop$2, d1 as isObject, d2 as isClient, I as useDebounce, d3 as getNodeInputs, d4 as SWITCH_NODE_TYPE, d5 as isEqual, d6 as captureException, aC as usePostHog, d7 as useCredentialsStore, u as useUsersStore, a4 as useProjectsStore, d8 as OPEN_AI_API_CREDENTIAL_TYPE, d9 as AI_CREDITS_EXPERIMENT, da as useHistoryStore, af as ProjectTypes, db as getConnectionTypes, ce as ndvEventBus, bE as withModifiers, dc as _sfc_main$Q, a$ as _sfc_main$R, dd as CUSTOM_NODES_DOCS_URL, aI as withDirectives, aJ as vShow, de as _sfc_main$S, df as NodeCredentials, dg as get$3, dh as getNodeParameters, di as deepCopy, dj as set$3, dk as unset, dl as getUpdatedToolDescription, dm as isDefaultNodeName, dn as makeNodeName, dp as RenameNodeCommand, dq as isINodePropertyCollectionList, dr as isINodePropertiesList, ds as isINodePropertyOptionsList, dt as displayParameter, E as createEventBus, du as calculateNodeSize, dv as useGetPointerPosition, dw as clamp, dx as NodeId, dy as useNodeCreatorStore, an as nodeViewEventBus, dz as NODE_CREATOR_OPEN_SOURCES, dA as useBuilderStore, bV as withKeys, dB as CanvasNodeHandleKey, dC as Transition$1, dD as _sfc_main$f$1, b as useRouter, bq as useLogsStore, bs as useRunWorkflow, q as N8nButton, dE as insertSpacersBetweenEndpoints, dF as createCanvasConnectionHandleString, dG as useDeviceSupport, dH as isOutsideSelected, B as nextTick, dI as _sfc_main$1$4, dJ as MarkerType, dK as Suspense, bP as guardReactiveProps, dL as updateViewportToContainNodes, dM as useNodeDirtiness, dN as CUSTOM_API_CALL_KEY, dO as mapLegacyEndpointsToCanvasConnectionPort, dP as getNodeOutputs, dQ as getTriggerNodeServiceName, dR as sanitizeHtml, dS as WAIT_NODE_TYPE, dT as SEND_AND_WAIT_OPERATION, dU as FORM_NODE_TYPE, dV as WAIT_INDEFINITELY, dW as checkOverlap, dX as SIMULATE_NODE_TYPE, dY as SIMULATE_TRIGGER_NODE_TYPE, dZ as mapLegacyConnectionsToCanvasConnections, d_ as getNodeIconSource, p as N8nText, d$ as refThrottled, be as isChatNode, e0 as truncateBeforeLast, e1 as reactive, U as useRoute, a7 as useDocumentTitle, a8 as useWorkflowSaving, e2 as useEnvironmentsStore, e3 as useExternalSecretsStore, a1 as useRootStore, aB as useExecutionsStore, a2 as useCanvasStore, a6 as useNpsSurveyStore, H as useTagsStore, S as usePushConnectionStore, aV as useTemplatesStore, a5 as useFoldersStore, e4 as useAgentRequestStore, e5 as useWorkflowExtraction, W as PLACEHOLDER_EMPTY_WORKFLOW_ID, e6 as NEW_WORKFLOW_ID, V as VIEWS, bx as START_NODE_TYPE, e7 as getNodeViewTab, y as MAIN_HEADER_TABS, e8 as VALID_WORKFLOW_IMPORT_URL_REGEX, ao as useMessage, ap as MODAL_CONFIRM, e9 as jsonParse, bn as MANUAL_CHAT_TRIGGER_NODE_TYPE, ea as EVALUATION_TRIGGER_NODE_TYPE, eb as getBounds, ec as onBeforeRouteLeave, aH as onBeforeMount, aq as WORKFLOW_SETTINGS_MODAL_KEY, ed as onActivated, ee as onDeactivated, ef as defineAsyncComponent, eg as N8nCallout, aw as __vitePreload, ae as EnterpriseEditionFeature, eh as EVALUATION_NODE_TYPE, ei as getEasyAiWorkflowJson, ej as getRagStarterWorkflowJson, ek as tryToParseNumber, aO as sourceControlEventBus, el as getNodesWithNormalizedPosition, em as historyBus, en as needsAgentInput, eo as FROM_AI_PARAMETERS_MODAL_KEY, ep as DRAG_EVENT_DATA_KEY } from "./index-ZImlcrmd.js";
3
- import { u as useKeybindings, c as canvasEventBus } from "./useKeybindings-Dl2fatxs.js";
4
- import { i as importCurlEventBus } from "./import-curl-Q2R3Aa93.js";
5
- import { g as globalLinkActionsEventBus } from "./global-link-actions-CudV1inR.js";
6
- import { u as useExecutionDebugging } from "./useExecutionDebugging-Bw29Xcz_.js";
7
- import { u as useBeforeUnload } from "./useBeforeUnload-CX6OL9lX.js";
8
- const _sfc_main$N = {};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-Bq5626Ha.js","assets/index-7S5ADieN.js","assets/index-BzamKJpD.css","assets/NodeCreation-32nlvQSy.css","assets/NodeDetailsView-DB-5JPUD.js","assets/RunData-DG20AzLo.js","assets/FileSaver.min-C5wzcK59.js","assets/useKeybindings-CV0VsjNP.js","assets/useKeybindings-BUK7Ngh6.css","assets/useExecutionHelpers-BfF56crp.js","assets/RunData-B5_okvCv.css","assets/RunDataParsedAiContent-DRO1Bjsh.js","assets/RunDataParsedAiContent-9EEUzCKp.css","assets/InfoAccordion-CEk3XG5b.js","assets/InfoAccordion-dxudNqVC.css","assets/useWorkflowActivate-BKz3N1SO.js","assets/ActionDropdown-BujIG0Jq.js","assets/ActionDropdown-BmC0wfMx.css","assets/import-curl-DD21H3kK.js","assets/global-link-actions-olwfH36z.js","assets/useExecutionDebugging-DM4nhx6D.js","assets/useBeforeUnload-DveXGtGN.js","assets/NodeDetailsView-BaIj2qAa.css","assets/SetupWorkflowCredentialsButton-BWISZAxq.js"])))=>i.map(i=>d[i]);
2
+ import { _ as _export_sfc$1, i as createElementBlock, g as openBlock, k as createBaseVNode, d as defineComponent, cs as PanelPosition, ct as useVueFlow, bZ as toRef, e as createBlock, w as withCtx, J as renderSlot, f as createCommentVNode, F as Fragment, j as createVNode, c2 as resolveDynamicComponent, m as unref, cu as _sfc_main$Q, x as computed, $ as _sfc_main$R, c as useI18n, cd as KeyboardShortcutTooltip, n as normalizeClass, q as N8nButton, bw as NodeConnectionTypes, cv as getBezierPath, cw as getSmoothStepPath, cx as Position, b_ as inject, cy as CanvasKey, aa as useCssModule, cz as parseCanvasConnectionHandleString, r as ref, o as onMounted, y as renderList, cA as _sfc_main$d$1, O as normalizeStyle, S as useUIStore, bN as useNodeTypesStore, a3 as useWorkflowsStore, ad as useSourceControlStore, al as getResourcePermissions, cB as isNodeWithWorkflowSelector, cC as getSubworkflowId, cD as isPresent, a9 as watch, cE as getMousePosition, aR as STICKY_NODE_TYPE, bG as usePinnedData, cF as NOT_DUPLICATABLE_NODE_TYPES, cG as isExecutable, cH as Teleport, cf as useStyles, bQ as getDefaultExportFromCjs, cI as NODE_SIZE, cJ as CanvasNodeRenderType, cK as GRID_SIZE, ch as useThrottleFn, cL as getRectOfNodes, c5 as onUnmounted, cM as onKeyDown, cN as onKeyUp, cO as useSlots, c7 as useAttrs, cP as getBoundsofRects, cQ as watchEffect, t as toDisplayString, cR as getConnectedEdges, c0 as normalizeProps, D as mergeProps, bL as provide, aJ as h, bh as createSlots, cS as isValidNodeConnectionType, cT as _sfc_main$3$1, cU as CanvasNodeKey, cV as CanvasConnectionMode, cW as mergeModels, cX as useModel, I as onBeforeUnmount, h as resolveComponent, cY as _sfc_main$S, Z as N8nTooltip, bI as useNodeHelpers, cZ as TitledList, l as createTextVNode, c_ as CanvasNodeDirtiness, aL as useNDVStore, c$ as isCommunityPackageName, d0 as NPM_PACKAGE_DOCS_BASE_URL, d1 as BUILTIN_NODES_DOCS_URL, d2 as COMMUNITY_NODES_INSTALLATION_DOCS_URL, d3 as N8nTabs, bf as useExternalHooks, ax as useTelemetry, aq as useTemplateRef, d4 as useElementSize, bW as _sfc_main$T, ar as InlineRename, c8 as useClipboard, aj as useWorkflowHelpers, a as useToast, d5 as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, d6 as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, d7 as MCP_TRIGGER_NODE_TYPE, d8 as FORM_TRIGGER_NODE_TYPE, bF as CHAT_TRIGGER_NODE_TYPE, H as N8nRadioButtons, bg as onClickOutside, d9 as toRef$1, da as tryOnScopeDispose, db as toValue, dc as isIOS, dd as noop$2, de as isObject, df as isClient, R as useDebounce, dg as getNodeInputs, v as useSettingsStore, aN as usePostHog, dh as useCredentialsStore, u as useUsersStore, ae as useProjectsStore, di as OPEN_AI_API_CREDENTIAL_TYPE, dj as AI_CREDITS_EXPERIMENT, dk as N8nCallout, p as N8nText, dl as get$3, dm as set$3, dn as unset, dp as SWITCH_NODE_TYPE, dq as isEqual, dr as captureException, ds as isINodePropertyCollectionList, dt as isINodePropertiesList, du as isINodePropertyOptionsList, dv as displayParameter, bM as useCanvasOperations, dw as getNodeParameters, dx as deepCopy, dy as getUpdatedToolDescription, dz as isDefaultNodeName, dA as makeNodeName, dB as useHistoryStore, dC as useResizeObserver, ap as ProjectTypes, dD as getConnectionTypes, cr as ndvEventBus, bV as withModifiers, dE as _sfc_main$U, a0 as N8nLink, dF as CUSTOM_NODES_DOCS_URL, aT as withDirectives, dG as N8nNotice, aU as vShow, dH as _sfc_main$V, dI as NodeCredentials, dJ as RenameNodeCommand, P as createEventBus, a1 as defineStore, dK as shallowRef, dL as watchOnce, aW as N8nIcon, dM as calculateNodeSize, dN as NodeId, dO as useGetPointerPosition, dP as clamp, dQ as N8nSticky, dR as useNodeCreatorStore, ay as nodeViewEventBus, dS as NODE_CREATOR_OPEN_SOURCES, dT as useBuilderStore, a_ as withKeys, dU as N8nInput, dV as CanvasNodeHandleKey, dW as Transition$1, dX as _sfc_main$f$1, b as useRouter, bH as useLogsStore, bJ as useRunWorkflow, dY as insertSpacersBetweenEndpoints, dZ as createCanvasConnectionHandleString, d_ as useDeviceSupport, d$ as isOutsideSelected, K as nextTick, e0 as _sfc_main$1$4, e1 as MarkerType, e2 as Suspense, c1 as guardReactiveProps, e3 as updateViewportToContainNodes, e4 as useNodeDirtiness, e5 as CUSTOM_API_CALL_KEY, e6 as mapLegacyEndpointsToCanvasConnectionPort, e7 as getNodeOutputs, e8 as getTriggerNodeServiceName, e9 as sanitizeHtml, ea as WAIT_NODE_TYPE, eb as SEND_AND_WAIT_OPERATION, ec as FORM_NODE_TYPE, ed as WAIT_INDEFINITELY, ee as checkOverlap, ef as SIMULATE_NODE_TYPE, eg as SIMULATE_TRIGGER_NODE_TYPE, eh as mapLegacyConnectionsToCanvasConnections, ei as getNodeIconSource, ej as refThrottled, ek as useFocusPanelStore, el as isValueExpression, em as __unplugin_components_3$1, en as __unplugin_components_4, bv as isChatNode, eo as truncateBeforeLast, ep as reactive, a4 as useRoute, ah as useDocumentTitle, ai as useWorkflowSaving, eq as useEnvironmentsStore, er as useExternalSecretsStore, ab as useRootStore, aM as useExecutionsStore, ac as useCanvasStore, ag as useNpsSurveyStore, Q as useTagsStore, a2 as usePushConnectionStore, bd as useTemplatesStore, af as useFoldersStore, es as useAgentRequestStore, et as useWorkflowExtraction, eu as FOCUS_PANEL_EXPERIMENT, a5 as PLACEHOLDER_EMPTY_WORKFLOW_ID, ev as NEW_WORKFLOW_ID, V as VIEWS, bO as START_NODE_TYPE, ew as getNodeViewTab, G as MAIN_HEADER_TABS, ex as VALID_WORKFLOW_IMPORT_URL_REGEX, az as useMessage, aA as MODAL_CONFIRM, ey as jsonParse, bE as MANUAL_CHAT_TRIGGER_NODE_TYPE, ez as EVALUATION_TRIGGER_NODE_TYPE, eA as getBounds, eB as onBeforeRouteLeave, aS as onBeforeMount, aB as WORKFLOW_SETTINGS_MODAL_KEY, eC as onActivated, eD as onDeactivated, eE as defineAsyncComponent, aH as __vitePreload, ao as EnterpriseEditionFeature, eF as EVALUATION_NODE_TYPE, eG as getEasyAiWorkflowJson, eH as getRagStarterWorkflowJson, eI as tryToParseNumber, b3 as sourceControlEventBus, eJ as getNodesWithNormalizedPosition, eK as needsAgentInput, eL as FROM_AI_PARAMETERS_MODAL_KEY, eM as historyBus, eN as DRAG_EVENT_DATA_KEY } from "./index-7S5ADieN.js";
3
+ import { N as N8nActionDropdown } from "./ActionDropdown-BujIG0Jq.js";
4
+ import { N as N8nBlockUi, u as useKeybindings, c as canvasEventBus } from "./useKeybindings-CV0VsjNP.js";
5
+ import { i as importCurlEventBus } from "./import-curl-DD21H3kK.js";
6
+ import { g as globalLinkActionsEventBus } from "./global-link-actions-olwfH36z.js";
7
+ import { u as useExecutionDebugging } from "./useExecutionDebugging-DM4nhx6D.js";
8
+ import { u as useBeforeUnload } from "./useBeforeUnload-DveXGtGN.js";
9
+ const _sfc_main$P = {};
9
10
  const _hoisted_1$h = {
10
11
  xmlns: "http://www.w3.org/2000/svg",
11
12
  viewBox: "0 0 16 16"
@@ -18,7 +19,7 @@ function _sfc_render$1(_ctx, _cache) {
18
19
  }, null, -1)
19
20
  ]));
20
21
  }
21
- const TidyUpIcon = /* @__PURE__ */ _export_sfc$1(_sfc_main$N, [["render", _sfc_render$1]]);
22
+ const TidyUpIcon = /* @__PURE__ */ _export_sfc$1(_sfc_main$P, [["render", _sfc_render$1]]);
22
23
  const _sfc_main$1$3 = {
23
24
  name: "ControlButton",
24
25
  compatConfig: { MODE: 3 }
@@ -101,7 +102,7 @@ const __default__$4 = {
101
102
  name: "Controls",
102
103
  compatConfig: { MODE: 3 }
103
104
  };
104
- const _sfc_main$M = /* @__PURE__ */ defineComponent({
105
+ const _sfc_main$O = /* @__PURE__ */ defineComponent({
105
106
  ...__default__$4,
106
107
  props: {
107
108
  showZoom: { type: Boolean, default: true },
@@ -144,7 +145,7 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
144
145
  emit("interactionChange", !isInteractive.value);
145
146
  }
146
147
  return (_ctx, _cache) => {
147
- return openBlock(), createBlock(unref(_sfc_main$O), {
148
+ return openBlock(), createBlock(unref(_sfc_main$Q), {
148
149
  class: "vue-flow__controls",
149
150
  position: _ctx.position
150
151
  }, {
@@ -217,7 +218,7 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
217
218
  };
218
219
  }
219
220
  });
220
- const _sfc_main$L = /* @__PURE__ */ defineComponent({
221
+ const _sfc_main$N = /* @__PURE__ */ defineComponent({
221
222
  __name: "CanvasControlButtons",
222
223
  props: {
223
224
  zoom: { default: 1 },
@@ -245,9 +246,9 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
245
246
  emit("tidy-up");
246
247
  }
247
248
  return (_ctx, _cache) => {
248
- const _component_N8nIconButton = resolveComponent("N8nIconButton");
249
- const _component_N8nButton = resolveComponent("N8nButton");
250
- return openBlock(), createBlock(unref(_sfc_main$M), {
249
+ const _component_N8nIconButton = _sfc_main$R;
250
+ const _component_N8nButton = N8nButton;
251
+ return openBlock(), createBlock(unref(_sfc_main$O), {
251
252
  "show-zoom": false,
252
253
  "show-fit-view": false
253
254
  }, {
@@ -342,13 +343,13 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
342
343
  }
343
344
  });
344
345
  const iconButton = "_iconButton_fx9xi_123";
345
- const style0$w = {
346
+ const style0$y = {
346
347
  iconButton
347
348
  };
348
- const cssModules$w = {
349
- "$style": style0$w
349
+ const cssModules$y = {
350
+ "$style": style0$y
350
351
  };
351
- const __unplugin_components_1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$L, [["__cssModules", cssModules$w]]);
352
+ const __unplugin_components_1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$N, [["__cssModules", cssModules$y]]);
352
353
  const EDGE_PADDING_BOTTOM = 130;
353
354
  const EDGE_PADDING_X = 40;
354
355
  const EDGE_BORDER_RADIUS = 16;
@@ -405,7 +406,7 @@ function injectStrict(key, fallback) {
405
406
  function useCanvas() {
406
407
  return injectStrict(CanvasKey);
407
408
  }
408
- const _sfc_main$K = /* @__PURE__ */ defineComponent({
409
+ const _sfc_main$M = /* @__PURE__ */ defineComponent({
409
410
  __name: "CanvasConnectionLine",
410
411
  props: {
411
412
  sourceX: {},
@@ -472,14 +473,14 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
472
473
  });
473
474
  const edge$1 = "_edge_cbk94_123";
474
475
  const visible = "_visible_cbk94_129";
475
- const style0$v = {
476
+ const style0$x = {
476
477
  edge: edge$1,
477
478
  visible
478
479
  };
479
- const cssModules$v = {
480
- "$style": style0$v
480
+ const cssModules$x = {
481
+ "$style": style0$x
481
482
  };
482
- const __unplugin_components_0$5 = /* @__PURE__ */ _export_sfc$1(_sfc_main$K, [["__cssModules", cssModules$v]]);
483
+ const __unplugin_components_0$4 = /* @__PURE__ */ _export_sfc$1(_sfc_main$M, [["__cssModules", cssModules$x]]);
483
484
  const position = ref([0, 0]);
484
485
  const isOpen = ref(false);
485
486
  const target = ref();
@@ -710,7 +711,7 @@ const useContextMenu = (onAction = () => {
710
711
  _dispatchAction
711
712
  };
712
713
  };
713
- const _sfc_main$J = /* @__PURE__ */ defineComponent({
714
+ const _sfc_main$L = /* @__PURE__ */ defineComponent({
714
715
  __name: "ContextMenu",
715
716
  emits: ["action"],
716
717
  setup(__props, { emit: __emit }) {
@@ -778,14 +779,14 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
778
779
  });
779
780
  const contextMenu = "_contextMenu_12fz3_123";
780
781
  const activator = "_activator_12fz3_127";
781
- const style0$u = {
782
+ const style0$w = {
782
783
  contextMenu,
783
784
  activator
784
785
  };
785
- const cssModules$u = {
786
- "$style": style0$u
786
+ const cssModules$w = {
787
+ "$style": style0$w
787
788
  };
788
- const ContextMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$J, [["__cssModules", cssModules$u]]);
789
+ const ContextMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$L, [["__cssModules", cssModules$w]]);
789
790
  var graph;
790
791
  var hasRequiredGraph;
791
792
  function requireGraph() {
@@ -7300,7 +7301,7 @@ const __default__$3 = {
7300
7301
  name: "MiniMap",
7301
7302
  compatConfig: { MODE: 3 }
7302
7303
  };
7303
- const _sfc_main$I = /* @__PURE__ */ defineComponent({
7304
+ const _sfc_main$K = /* @__PURE__ */ defineComponent({
7304
7305
  ...__default__$3,
7305
7306
  props: {
7306
7307
  nodeColor: { type: [String, Function], default: "#e2e2e2" },
@@ -7463,7 +7464,7 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
7463
7464
  emit("nodeMouseleave", param);
7464
7465
  }
7465
7466
  return (_ctx, _cache) => {
7466
- return openBlock(), createBlock(unref(_sfc_main$O), {
7467
+ return openBlock(), createBlock(unref(_sfc_main$Q), {
7467
7468
  position: _ctx.position,
7468
7469
  class: normalizeClass(["vue-flow__minimap", { pannable: _ctx.pannable, zoomable: _ctx.zoomable }])
7469
7470
  }, {
@@ -7523,7 +7524,7 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
7523
7524
  });
7524
7525
  const _hoisted_1$e = ["id", "x", "y", "width", "height", "patternTransform"];
7525
7526
  const _hoisted_2$9 = ["d", "stroke-width"];
7526
- const _sfc_main$H = /* @__PURE__ */ defineComponent({
7527
+ const _sfc_main$J = /* @__PURE__ */ defineComponent({
7527
7528
  __name: "CanvasBackgroundStripedPattern",
7528
7529
  props: {
7529
7530
  id: {},
@@ -7553,7 +7554,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
7553
7554
  };
7554
7555
  }
7555
7556
  });
7556
- const CanvasBackgroundStripedPattern = /* @__PURE__ */ _export_sfc$1(_sfc_main$H, [["__scopeId", "data-v-161512f5"]]);
7557
+ const CanvasBackgroundStripedPattern = /* @__PURE__ */ _export_sfc$1(_sfc_main$J, [["__scopeId", "data-v-161512f5"]]);
7557
7558
  var BackgroundVariant = /* @__PURE__ */ ((BackgroundVariant2) => {
7558
7559
  BackgroundVariant2["Lines"] = "lines";
7559
7560
  BackgroundVariant2["Dots"] = "dots";
@@ -7589,7 +7590,7 @@ const __default__$2 = {
7589
7590
  name: "Background",
7590
7591
  compatConfig: { MODE: 3 }
7591
7592
  };
7592
- const _sfc_main$G = /* @__PURE__ */ defineComponent({
7593
+ const _sfc_main$I = /* @__PURE__ */ defineComponent({
7593
7594
  ...__default__$2,
7594
7595
  props: {
7595
7596
  id: {},
@@ -7674,7 +7675,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7674
7675
  };
7675
7676
  }
7676
7677
  });
7677
- const _sfc_main$F = /* @__PURE__ */ defineComponent({
7678
+ const _sfc_main$H = /* @__PURE__ */ defineComponent({
7678
7679
  __name: "CanvasBackground",
7679
7680
  props: {
7680
7681
  striped: { type: Boolean },
@@ -7682,7 +7683,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
7682
7683
  },
7683
7684
  setup(__props) {
7684
7685
  return (_ctx, _cache) => {
7685
- return openBlock(), createBlock(unref(_sfc_main$G), {
7686
+ return openBlock(), createBlock(unref(_sfc_main$I), {
7686
7687
  "data-test-id": "canvas-background",
7687
7688
  "pattern-color": "#aaa",
7688
7689
  gap: unref(GRID_SIZE)
@@ -7705,7 +7706,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
7705
7706
  }
7706
7707
  });
7707
7708
  const _hoisted_1$c = ["id"];
7708
- const _sfc_main$E = /* @__PURE__ */ defineComponent({
7709
+ const _sfc_main$G = /* @__PURE__ */ defineComponent({
7709
7710
  __name: "CanvasArrowHeadMarker",
7710
7711
  props: {
7711
7712
  id: {}
@@ -7738,7 +7739,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7738
7739
  };
7739
7740
  }
7740
7741
  });
7741
- const _sfc_main$D = /* @__PURE__ */ defineComponent({
7742
+ const _sfc_main$F = /* @__PURE__ */ defineComponent({
7742
7743
  __name: "CanvasEdgeToolbar",
7743
7744
  props: {
7744
7745
  type: {}
@@ -7760,7 +7761,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
7760
7761
  emit("delete");
7761
7762
  }
7762
7763
  return (_ctx, _cache) => {
7763
- const _component_N8nIconButton = resolveComponent("N8nIconButton");
7764
+ const _component_N8nIconButton = _sfc_main$R;
7764
7765
  return openBlock(), createElementBlock("div", {
7765
7766
  class: normalizeClass(classes.value),
7766
7767
  "data-test-id": "canvas-edge-toolbar"
@@ -7789,17 +7790,17 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
7789
7790
  }
7790
7791
  });
7791
7792
  const canvasEdgeToolbar = "_canvasEdgeToolbar_uogmx_123";
7792
- const style0$t = {
7793
+ const style0$v = {
7793
7794
  canvasEdgeToolbar
7794
7795
  };
7795
- const cssModules$t = {
7796
- "$style": style0$t
7796
+ const cssModules$v = {
7797
+ "$style": style0$v
7797
7798
  };
7798
- const CanvasEdgeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$D, [["__cssModules", cssModules$t]]);
7799
+ const CanvasEdgeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$F, [["__cssModules", cssModules$v]]);
7799
7800
  const _hoisted_1$b = ["data-source-node-name", "data-target-node-name"];
7800
7801
  const _hoisted_2$7 = ["data-source-node-name", "data-target-node-name", "data-edge-status"];
7801
7802
  const delayedHoveredTimeout = 600;
7802
- const _sfc_main$C = /* @__PURE__ */ defineComponent({
7803
+ const _sfc_main$E = /* @__PURE__ */ defineComponent({
7803
7804
  __name: "CanvasEdge",
7804
7805
  props: {
7805
7806
  id: {},
@@ -7979,15 +7980,15 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
7979
7980
  const edge = "_edge_fyzmo_123";
7980
7981
  const edgeLabelWrapper = "_edgeLabelWrapper_fyzmo_127";
7981
7982
  const edgeLabel = "_edgeLabel_fyzmo_127";
7982
- const style0$s = {
7983
+ const style0$u = {
7983
7984
  edge,
7984
7985
  edgeLabelWrapper,
7985
7986
  edgeLabel
7986
7987
  };
7987
- const cssModules$s = {
7988
- "$style": style0$s
7988
+ const cssModules$u = {
7989
+ "$style": style0$u
7989
7990
  };
7990
- const Edge = /* @__PURE__ */ _export_sfc$1(_sfc_main$C, [["__cssModules", cssModules$s]]);
7991
+ const Edge = /* @__PURE__ */ _export_sfc$1(_sfc_main$E, [["__cssModules", cssModules$u]]);
7991
7992
  function useCanvasNode() {
7992
7993
  const node2 = inject(CanvasNodeKey);
7993
7994
  const data = computed(
@@ -8065,7 +8066,7 @@ function useCanvasNode() {
8065
8066
  }
8066
8067
  const _hoisted_1$a = ["title"];
8067
8068
  const _hoisted_2$6 = ["onClick"];
8068
- const _sfc_main$B = /* @__PURE__ */ defineComponent({
8069
+ const _sfc_main$D = /* @__PURE__ */ defineComponent({
8069
8070
  __name: "CanvasNodeStickyColorSelector",
8070
8071
  props: {
8071
8072
  "visible": { type: Boolean },
@@ -8109,7 +8110,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
8109
8110
  });
8110
8111
  return (_ctx, _cache) => {
8111
8112
  const _component_FontAwesomeIcon = resolveComponent("FontAwesomeIcon");
8112
- const _component_N8nPopover = resolveComponent("N8nPopover");
8113
+ const _component_N8nPopover = _sfc_main$S;
8113
8114
  return openBlock(), createBlock(_component_N8nPopover, {
8114
8115
  visible: isPopoverVisible.value,
8115
8116
  "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => isPopoverVisible.value = $event),
@@ -8155,13 +8156,13 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
8155
8156
  }
8156
8157
  });
8157
8158
  const popover = "_popover_3lp7u_123";
8158
- const content = "_content_3lp7u_129";
8159
+ const content$1 = "_content_3lp7u_129";
8159
8160
  const color = "_color_3lp7u_136";
8160
8161
  const selected$2 = "_selected_3lp7u_148";
8161
8162
  const option = "_option_3lp7u_173";
8162
- const style0$r = {
8163
+ const style0$t = {
8163
8164
  popover,
8164
- content,
8165
+ content: content$1,
8165
8166
  color,
8166
8167
  selected: selected$2,
8167
8168
  "sticky-color-1": "_sticky-color-1_3lp7u_151",
@@ -8173,11 +8174,11 @@ const style0$r = {
8173
8174
  "sticky-color-7": "_sticky-color-7_3lp7u_169",
8174
8175
  option
8175
8176
  };
8176
- const cssModules$r = {
8177
- "$style": style0$r
8177
+ const cssModules$t = {
8178
+ "$style": style0$t
8178
8179
  };
8179
- const __unplugin_components_0$4 = /* @__PURE__ */ _export_sfc$1(_sfc_main$B, [["__cssModules", cssModules$r]]);
8180
- const _sfc_main$A = /* @__PURE__ */ defineComponent({
8180
+ const __unplugin_components_2$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$D, [["__cssModules", cssModules$t]]);
8181
+ const _sfc_main$C = /* @__PURE__ */ defineComponent({
8181
8182
  __name: "CanvasNodeToolbar",
8182
8183
  props: {
8183
8184
  readOnly: { type: Boolean }
@@ -8238,9 +8239,9 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
8238
8239
  isHovered.value = false;
8239
8240
  }
8240
8241
  return (_ctx, _cache) => {
8241
- const _component_N8nIconButton = resolveComponent("N8nIconButton");
8242
- const _component_N8nTooltip = resolveComponent("N8nTooltip");
8243
- const _component_CanvasNodeStickyColorSelector = __unplugin_components_0$4;
8242
+ const _component_N8nIconButton = _sfc_main$R;
8243
+ const _component_N8nTooltip = N8nTooltip;
8244
+ const _component_CanvasNodeStickyColorSelector = __unplugin_components_2$1;
8244
8245
  return openBlock(), createElementBlock("div", {
8245
8246
  "data-test-id": "canvas-node-toolbar",
8246
8247
  class: normalizeClass(classes.value),
@@ -8312,20 +8313,20 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
8312
8313
  const canvasNodeToolbar$1 = "_canvasNodeToolbar_104hp_123";
8313
8314
  const canvasNodeToolbarItems = "_canvasNodeToolbarItems_104hp_130";
8314
8315
  const forceVisible = "_forceVisible_104hp_141";
8315
- const style0$q = {
8316
+ const style0$s = {
8316
8317
  canvasNodeToolbar: canvasNodeToolbar$1,
8317
8318
  canvasNodeToolbarItems,
8318
8319
  forceVisible
8319
8320
  };
8320
- const cssModules$q = {
8321
- "$style": style0$q
8321
+ const cssModules$s = {
8322
+ "$style": style0$s
8322
8323
  };
8323
- const CanvasNodeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$A, [["__cssModules", cssModules$q]]);
8324
+ const CanvasNodeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$C, [["__cssModules", cssModules$s]]);
8324
8325
  const _hoisted_1$9 = { key: 1 };
8325
8326
  const _hoisted_2$5 = ["textContent"];
8326
8327
  const _hoisted_3$4 = { key: 2 };
8327
8328
  const _hoisted_4$3 = { key: 5 };
8328
- const _sfc_main$z = /* @__PURE__ */ defineComponent({
8329
+ const _sfc_main$B = /* @__PURE__ */ defineComponent({
8329
8330
  __name: "CanvasNodeStatusIcons",
8330
8331
  setup(__props) {
8331
8332
  const nodeHelpers = useNodeHelpers();
@@ -8454,7 +8455,7 @@ const running$1 = "_running_93vv6_142";
8454
8455
  const issues = "_issues_93vv6_165";
8455
8456
  const count = "_count_93vv6_170";
8456
8457
  const warning$2 = "_warning_93vv6_174";
8457
- const style0$p = {
8458
+ const style0$r = {
8458
8459
  status,
8459
8460
  runData,
8460
8461
  waiting: waiting$1,
@@ -8465,11 +8466,11 @@ const style0$p = {
8465
8466
  count,
8466
8467
  warning: warning$2
8467
8468
  };
8468
- const cssModules$p = {
8469
- "$style": style0$p
8469
+ const cssModules$r = {
8470
+ "$style": style0$r
8470
8471
  };
8471
- const __unplugin_components_3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$z, [["__cssModules", cssModules$p]]);
8472
- const _sfc_main$y = /* @__PURE__ */ defineComponent({
8472
+ const __unplugin_components_3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$B, [["__cssModules", cssModules$r]]);
8473
+ const _sfc_main$A = /* @__PURE__ */ defineComponent({
8473
8474
  __name: "CanvasNodeDisabledStrikeThrough",
8474
8475
  setup(__props) {
8475
8476
  const $style = useCssModule();
@@ -8491,16 +8492,16 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
8491
8492
  const disabledStrikeThrough = "_disabledStrikeThrough_nl2g7_123";
8492
8493
  const success$2 = "_success_nl2g7_132";
8493
8494
  const warning$1 = "_warning_nl2g7_136";
8494
- const style0$o = {
8495
+ const style0$q = {
8495
8496
  disabledStrikeThrough,
8496
8497
  success: success$2,
8497
8498
  warning: warning$1
8498
8499
  };
8499
- const cssModules$o = {
8500
- "$style": style0$o
8500
+ const cssModules$q = {
8501
+ "$style": style0$q
8501
8502
  };
8502
- const __unplugin_components_2 = /* @__PURE__ */ _export_sfc$1(_sfc_main$y, [["__cssModules", cssModules$o]]);
8503
- const _sfc_main$x = /* @__PURE__ */ defineComponent({
8503
+ const __unplugin_components_2 = /* @__PURE__ */ _export_sfc$1(_sfc_main$A, [["__cssModules", cssModules$q]]);
8504
+ const _sfc_main$z = /* @__PURE__ */ defineComponent({
8504
8505
  __name: "CanvasNodeTooltip",
8505
8506
  props: {
8506
8507
  visible: { type: Boolean }
@@ -8515,7 +8516,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
8515
8516
  ]
8516
8517
  };
8517
8518
  return (_ctx, _cache) => {
8518
- const _component_N8nTooltip = resolveComponent("N8nTooltip");
8519
+ const _component_N8nTooltip = N8nTooltip;
8519
8520
  return openBlock(), createBlock(_component_N8nTooltip, {
8520
8521
  placement: "top",
8521
8522
  "show-after": 500,
@@ -8539,14 +8540,14 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
8539
8540
  });
8540
8541
  const tooltipTrigger = "_tooltipTrigger_dauyi_123";
8541
8542
  const popper = "_popper_dauyi_131";
8542
- const style0$n = {
8543
+ const style0$p = {
8543
8544
  tooltipTrigger,
8544
8545
  popper
8545
8546
  };
8546
- const cssModules$n = {
8547
- "$style": style0$n
8547
+ const cssModules$p = {
8548
+ "$style": style0$p
8548
8549
  };
8549
- const __unplugin_components_0$3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$x, [["__cssModules", cssModules$n]]);
8550
+ const __unplugin_components_0$3 = /* @__PURE__ */ _export_sfc$1(_sfc_main$z, [["__cssModules", cssModules$p]]);
8550
8551
  function useNodeConnections({
8551
8552
  inputs: inputs2,
8552
8553
  outputs,
@@ -8595,80 +8596,7 @@ function useNodeConnections({
8595
8596
  isValidConnection
8596
8597
  };
8597
8598
  }
8598
- function useNodeSettingsInCanvas() {
8599
- const settingsStore = useSettingsStore();
8600
- if (Number.isNaN(settingsStore.experimental__minZoomNodeSettingsInCanvas) || settingsStore.experimental__minZoomNodeSettingsInCanvas <= 0) {
8601
- return computed(() => void 0);
8602
- }
8603
- const { editableWorkflow } = useCanvasOperations();
8604
- const viewFlow = useVueFlow({ id: editableWorkflow.value.id });
8605
- const zoom2 = computed(() => viewFlow.viewport.value.zoom);
8606
- const debouncedZoom = refDebounced(zoom2, 100);
8607
- return computed(
8608
- () => debouncedZoom.value > settingsStore.experimental__minZoomNodeSettingsInCanvas ? debouncedZoom.value : void 0
8609
- );
8610
- }
8611
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
8612
- __name: "NodeTitle",
8613
- props: {
8614
- modelValue: { default: "" },
8615
- nodeType: { default: void 0 },
8616
- readOnly: { type: Boolean, default: false }
8617
- },
8618
- emits: ["update:model-value"],
8619
- setup(__props, { emit: __emit }) {
8620
- const emit = __emit;
8621
- function onRename(value) {
8622
- if (value.trim() !== "") {
8623
- emit("update:model-value", value.trim());
8624
- }
8625
- }
8626
- const wrapperRef = useTemplateRef("wrapperRef");
8627
- const { width } = useElementSize(wrapperRef);
8628
- return (_ctx, _cache) => {
8629
- return openBlock(), createElementBlock("span", {
8630
- class: normalizeClass(_ctx.$style.container),
8631
- "data-test-id": "node-title-container"
8632
- }, [
8633
- createBaseVNode("span", {
8634
- class: normalizeClass(_ctx.$style.iconWrapper)
8635
- }, [
8636
- createVNode(_sfc_main$P, {
8637
- "node-type": _ctx.nodeType,
8638
- size: 18,
8639
- "show-tooltip": true,
8640
- "tooltip-position": "left"
8641
- }, null, 8, ["node-type"])
8642
- ], 2),
8643
- createBaseVNode("div", {
8644
- ref_key: "wrapperRef",
8645
- ref: wrapperRef,
8646
- class: normalizeClass(_ctx.$style.textWrapper)
8647
- }, [
8648
- createVNode(unref(InlineRename), {
8649
- "max-width": unref(width),
8650
- "model-value": _ctx.modelValue,
8651
- "read-only": _ctx.readOnly,
8652
- "onUpdate:modelValue": onRename
8653
- }, null, 8, ["max-width", "model-value", "read-only"])
8654
- ], 2)
8655
- ], 2);
8656
- };
8657
- }
8658
- });
8659
- const container$3 = "_container_178ym_123";
8660
- const textWrapper = "_textWrapper_178ym_132";
8661
- const iconWrapper = "_iconWrapper_178ym_137";
8662
- const style0$m = {
8663
- container: container$3,
8664
- textWrapper,
8665
- iconWrapper
8666
- };
8667
- const cssModules$m = {
8668
- "$style": style0$m
8669
- };
8670
- const NodeTitle = /* @__PURE__ */ _export_sfc$1(_sfc_main$w, [["__cssModules", cssModules$m]]);
8671
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
8599
+ const _sfc_main$y = /* @__PURE__ */ defineComponent({
8672
8600
  __name: "NodeSettingsTabs",
8673
8601
  props: {
8674
8602
  modelValue: { default: "params" },
@@ -8779,7 +8707,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
8779
8707
  }
8780
8708
  }
8781
8709
  return (_ctx, _cache) => {
8782
- const _component_N8nTabs = resolveComponent("N8nTabs");
8710
+ const _component_N8nTabs = N8nTabs;
8783
8711
  return openBlock(), createBlock(_component_N8nTabs, {
8784
8712
  options: options.value,
8785
8713
  "model-value": _ctx.modelValue,
@@ -8789,6 +8717,66 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
8789
8717
  };
8790
8718
  }
8791
8719
  });
8720
+ const _sfc_main$x = /* @__PURE__ */ defineComponent({
8721
+ __name: "NodeTitle",
8722
+ props: {
8723
+ modelValue: { default: "" },
8724
+ nodeType: { default: void 0 },
8725
+ readOnly: { type: Boolean, default: false }
8726
+ },
8727
+ emits: ["update:model-value"],
8728
+ setup(__props, { emit: __emit }) {
8729
+ const emit = __emit;
8730
+ function onRename(value) {
8731
+ if (value.trim() !== "") {
8732
+ emit("update:model-value", value.trim());
8733
+ }
8734
+ }
8735
+ const wrapperRef = useTemplateRef("wrapperRef");
8736
+ const { width } = useElementSize(wrapperRef);
8737
+ return (_ctx, _cache) => {
8738
+ return openBlock(), createElementBlock("span", {
8739
+ class: normalizeClass(_ctx.$style.container),
8740
+ "data-test-id": "node-title-container"
8741
+ }, [
8742
+ createBaseVNode("span", {
8743
+ class: normalizeClass(_ctx.$style.iconWrapper)
8744
+ }, [
8745
+ createVNode(_sfc_main$T, {
8746
+ "node-type": _ctx.nodeType,
8747
+ size: 18,
8748
+ "show-tooltip": true,
8749
+ "tooltip-position": "left"
8750
+ }, null, 8, ["node-type"])
8751
+ ], 2),
8752
+ createBaseVNode("div", {
8753
+ ref_key: "wrapperRef",
8754
+ ref: wrapperRef,
8755
+ class: normalizeClass(_ctx.$style.textWrapper)
8756
+ }, [
8757
+ createVNode(unref(InlineRename), {
8758
+ "max-width": unref(width),
8759
+ "model-value": _ctx.modelValue,
8760
+ "read-only": _ctx.readOnly,
8761
+ "onUpdate:modelValue": onRename
8762
+ }, null, 8, ["max-width", "model-value", "read-only"])
8763
+ ], 2)
8764
+ ], 2);
8765
+ };
8766
+ }
8767
+ });
8768
+ const container$4 = "_container_178ym_123";
8769
+ const textWrapper = "_textWrapper_178ym_132";
8770
+ const iconWrapper = "_iconWrapper_178ym_137";
8771
+ const style0$o = {
8772
+ container: container$4,
8773
+ textWrapper,
8774
+ iconWrapper
8775
+ };
8776
+ const cssModules$o = {
8777
+ "$style": style0$o
8778
+ };
8779
+ const NodeTitle = /* @__PURE__ */ _export_sfc$1(_sfc_main$x, [["__cssModules", cssModules$o]]);
8792
8780
  const _hoisted_1$8 = {
8793
8781
  key: 0,
8794
8782
  class: "webhooks"
@@ -8810,13 +8798,13 @@ const _hoisted_6$2 = { class: "http-field" };
8810
8798
  const _hoisted_7$1 = { class: "http-method" };
8811
8799
  const _hoisted_8$1 = { class: "url-field" };
8812
8800
  const _hoisted_9$1 = ["onClick"];
8813
- const _hoisted_10$1 = {
8801
+ const _hoisted_10 = {
8814
8802
  key: 1,
8815
8803
  class: "webhook-wrapper"
8816
8804
  };
8817
8805
  const _hoisted_11 = { class: "url-field-full-width" };
8818
8806
  const _hoisted_12 = ["onClick"];
8819
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
8807
+ const _sfc_main$w = /* @__PURE__ */ defineComponent({
8820
8808
  __name: "NodeWebhooks",
8821
8809
  props: {
8822
8810
  node: {},
@@ -8959,10 +8947,10 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
8959
8947
  );
8960
8948
  return (_ctx, _cache) => {
8961
8949
  const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
8962
- const _component_n8n_radio_buttons = resolveComponent("n8n-radio-buttons");
8950
+ const _component_n8n_radio_buttons = N8nRadioButtons;
8963
8951
  const _component_el_col = resolveComponent("el-col");
8964
8952
  const _component_el_row = resolveComponent("el-row");
8965
- const _component_n8n_tooltip = resolveComponent("n8n-tooltip");
8953
+ const _component_n8n_tooltip = N8nTooltip;
8966
8954
  const _component_el_collapse_transition = resolveComponent("el-collapse-transition");
8967
8955
  return webhooksNode.value.length && visibleWebhookUrls.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$8, [
8968
8956
  createBaseVNode("div", {
@@ -9020,7 +9008,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
9020
9008
  _cache[3] || (_cache[3] = createBaseVNode("br", null, null, -1))
9021
9009
  ], 8, _hoisted_9$1)
9022
9010
  ])
9023
- ])) : (openBlock(), createElementBlock("div", _hoisted_10$1, [
9011
+ ])) : (openBlock(), createElementBlock("div", _hoisted_10, [
9024
9012
  createBaseVNode("div", _hoisted_11, [
9025
9013
  createBaseVNode("div", {
9026
9014
  class: "webhook-url left-ellipsis clickable",
@@ -9043,7 +9031,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
9043
9031
  };
9044
9032
  }
9045
9033
  });
9046
- const NodeWebhooks = /* @__PURE__ */ _export_sfc$1(_sfc_main$u, [["__scopeId", "data-v-84b9da4b"]]);
9034
+ const NodeWebhooks = /* @__PURE__ */ _export_sfc$1(_sfc_main$w, [["__scopeId", "data-v-84b9da4b"]]);
9047
9035
  const OnClickOutside = /* @__PURE__ */ defineComponent({
9048
9036
  name: "OnClickOutside",
9049
9037
  props: ["as", "options"],
@@ -9220,7 +9208,7 @@ const _hoisted_3$2 = ["onClick"];
9220
9208
  const _hoisted_4$1 = ["onClick"];
9221
9209
  const _hoisted_5$1 = ["data-node-name"];
9222
9210
  const _hoisted_6$1 = ["onClick"];
9223
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
9211
+ const _sfc_main$v = /* @__PURE__ */ defineComponent({
9224
9212
  __name: "NDVSubConnections",
9225
9213
  props: {
9226
9214
  rootNode: {}
@@ -9268,46 +9256,45 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9268
9256
  {}
9269
9257
  );
9270
9258
  });
9271
- function getConnectionKey(connection, globalIndex) {
9259
+ function getConnectionContext(connection, globalIndex) {
9272
9260
  let typeIndex = 0;
9273
9261
  for (let i = 0; i < globalIndex; i++) {
9274
9262
  if (possibleConnections.value[i].type === connection.type) {
9275
9263
  typeIndex++;
9276
9264
  }
9277
9265
  }
9278
- return `${connection.type}-${typeIndex}`;
9266
+ return {
9267
+ connectionType: connection.type,
9268
+ typeIndex,
9269
+ key: `${connection.type}-${typeIndex}`
9270
+ };
9279
9271
  }
9280
- function getConnectionConfig(connectionKey) {
9281
- const [type, indexStr] = connectionKey.split("-");
9282
- const typeIndex = parseInt(indexStr, 10);
9283
- let currentTypeIndex = 0;
9284
- for (const connection of possibleConnections.value) {
9285
- if (connection.type === type) {
9286
- if (currentTypeIndex === typeIndex) {
9287
- return connection;
9288
- }
9289
- currentTypeIndex++;
9290
- }
9291
- }
9292
- return void 0;
9272
+ function getConnectionKey(connection, globalIndex) {
9273
+ return getConnectionContext(connection, globalIndex).key;
9293
9274
  }
9294
- function isMultiConnection(connectionKey) {
9295
- const connectionConfig = getConnectionConfig(connectionKey);
9275
+ function getConnectionConfig(connectionType2, typeIndex) {
9276
+ return possibleConnections.value.filter((connection) => connection.type === connectionType2).at(typeIndex);
9277
+ }
9278
+ function isMultiConnection(connectionContext) {
9279
+ const connectionConfig = getConnectionConfig(
9280
+ connectionContext.connectionType,
9281
+ connectionContext.typeIndex
9282
+ );
9296
9283
  return connectionConfig?.maxConnections !== 1;
9297
9284
  }
9298
- function shouldShowConnectionTooltip(connectionKey) {
9299
- const [type] = connectionKey.split("-");
9300
- return isMultiConnection(connectionKey) && !expandedGroups.value.includes(type);
9285
+ function shouldShowConnectionTooltip(connectionContext) {
9286
+ return isMultiConnection(connectionContext) && !expandedGroups.value.includes(connectionContext.connectionType);
9301
9287
  }
9302
- function expandConnectionGroup(connectionKey, isExpanded) {
9303
- const [type] = connectionKey.split("-");
9304
- if (!isMultiConnection(connectionKey)) {
9288
+ function expandConnectionGroup(connectionContext, isExpanded) {
9289
+ if (!isMultiConnection(connectionContext)) {
9305
9290
  return;
9306
9291
  }
9307
9292
  if (isExpanded) {
9308
- expandedGroups.value = [...expandedGroups.value, type];
9293
+ expandedGroups.value = [...expandedGroups.value, connectionContext.connectionType];
9309
9294
  } else {
9310
- expandedGroups.value = expandedGroups.value.filter((g) => g !== type);
9295
+ expandedGroups.value = expandedGroups.value.filter(
9296
+ (g) => g !== connectionContext.connectionType
9297
+ );
9311
9298
  }
9312
9299
  }
9313
9300
  function getINodesFromNames(names) {
@@ -9324,9 +9311,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9324
9311
  return null;
9325
9312
  }).filter((n) => n !== null);
9326
9313
  }
9327
- function hasInputIssues(connectionKey) {
9328
- const [type] = connectionKey.split("-");
9329
- return shouldShowNodeInputIssues.value && (nodeInputIssues.value[type] ?? []).length > 0;
9314
+ function hasInputIssues(connectionContext) {
9315
+ return shouldShowNodeInputIssues.value && (nodeInputIssues.value[connectionContext.connectionType] ?? []).length > 0;
9330
9316
  }
9331
9317
  function isNodeInputConfiguration(connectionConfig) {
9332
9318
  if (typeof connectionConfig === "string") return false;
@@ -9341,22 +9327,25 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9341
9327
  });
9342
9328
  return nonMainInputs;
9343
9329
  }
9344
- function onNodeClick(nodeName, connectionKey) {
9345
- const [type] = connectionKey.split("-");
9346
- if (isMultiConnection(connectionKey) && !expandedGroups.value.includes(type)) {
9347
- expandConnectionGroup(connectionKey, true);
9330
+ function onNodeClick(nodeName, connectionContext) {
9331
+ if (isMultiConnection(connectionContext) && !expandedGroups.value.includes(connectionContext.connectionType)) {
9332
+ expandConnectionGroup(connectionContext, true);
9348
9333
  return;
9349
9334
  }
9350
9335
  emit("switchSelectedNode", nodeName);
9351
9336
  }
9352
- function onPlusClick(connectionKey) {
9353
- const [type] = connectionKey.split("-");
9354
- const connectionNodes = connectedNodes2.value[connectionKey];
9355
- if (isMultiConnection(connectionKey) && !expandedGroups.value.includes(type) && connectionNodes.length >= 1) {
9356
- expandConnectionGroup(connectionKey, true);
9337
+ function onPlusClick(connectionContext) {
9338
+ const connectionNodes = connectedNodes2.value[connectionContext.key];
9339
+ if (isMultiConnection(connectionContext) && !expandedGroups.value.includes(connectionContext.connectionType) && connectionNodes.length >= 1) {
9340
+ expandConnectionGroup(connectionContext, true);
9357
9341
  return;
9358
9342
  }
9359
- emit("openConnectionNodeCreator", props.rootNode.name, type);
9343
+ emit(
9344
+ "openConnectionNodeCreator",
9345
+ props.rootNode.name,
9346
+ connectionContext.connectionType,
9347
+ connectionContext.typeIndex
9348
+ );
9360
9349
  }
9361
9350
  function showNodeInputsIssues() {
9362
9351
  shouldShowNodeInputIssues.value = false;
@@ -9379,8 +9368,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9379
9368
  showNodeInputsIssues
9380
9369
  });
9381
9370
  return (_ctx, _cache) => {
9382
- const _component_n8n_icon_button = resolveComponent("n8n-icon-button");
9383
- const _component_n8n_tooltip = resolveComponent("n8n-tooltip");
9371
+ const _component_n8n_icon_button = _sfc_main$R;
9372
+ const _component_n8n_tooltip = N8nTooltip;
9384
9373
  return possibleConnections.value.length ? (openBlock(), createElementBlock("div", {
9385
9374
  key: 0,
9386
9375
  class: normalizeClass(_ctx.$style.container)
@@ -9400,12 +9389,12 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9400
9389
  createBaseVNode("span", {
9401
9390
  class: normalizeClass({
9402
9391
  [_ctx.$style.connectionLabel]: true,
9403
- [_ctx.$style.hasIssues]: hasInputIssues(getConnectionKey(connection, index))
9392
+ [_ctx.$style.hasIssues]: hasInputIssues(getConnectionContext(connection, index))
9404
9393
  }),
9405
9394
  textContent: toDisplayString(`${connection.displayName}${connection.required ? " *" : ""}`)
9406
9395
  }, null, 10, _hoisted_2$3),
9407
9396
  createVNode(unref(OnClickOutside), {
9408
- onTrigger: ($event) => expandConnectionGroup(getConnectionKey(connection, index), false)
9397
+ onTrigger: ($event) => expandConnectionGroup(getConnectionContext(connection, index), false)
9409
9398
  }, {
9410
9399
  default: withCtx(() => [
9411
9400
  createBaseVNode("div", {
@@ -9416,26 +9405,26 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9416
9405
  [_ctx.$style.connectedNodesWrapperExpanded]: expandedGroups.value.includes(connection.type)
9417
9406
  }),
9418
9407
  style: normalizeStyle(`--nodes-length: ${connectedNodes2.value[getConnectionKey(connection, index)].length}`),
9419
- onClick: ($event) => expandConnectionGroup(getConnectionKey(connection, index), true)
9408
+ onClick: ($event) => expandConnectionGroup(getConnectionContext(connection, index), true)
9420
9409
  }, [
9421
9410
  (connectedNodes2.value[getConnectionKey(connection, index)].length >= 1 ? connection.maxConnections !== 1 : true) ? (openBlock(), createElementBlock("div", {
9422
9411
  key: 0,
9423
9412
  class: normalizeClass({
9424
9413
  [_ctx.$style.plusButton]: true,
9425
- [_ctx.$style.hasIssues]: hasInputIssues(getConnectionKey(connection, index))
9414
+ [_ctx.$style.hasIssues]: hasInputIssues(getConnectionContext(connection, index))
9426
9415
  }),
9427
- onClick: ($event) => onPlusClick(getConnectionKey(connection, index))
9416
+ onClick: ($event) => onPlusClick(getConnectionContext(connection, index))
9428
9417
  }, [
9429
9418
  createVNode(_component_n8n_tooltip, {
9430
9419
  placement: "top",
9431
9420
  teleported: true,
9432
9421
  offset: 10,
9433
9422
  "show-after": 300,
9434
- disabled: shouldShowConnectionTooltip(getConnectionKey(connection, index)) && connectedNodes2.value[getConnectionKey(connection, index)].length >= 1
9423
+ disabled: shouldShowConnectionTooltip(getConnectionContext(connection, index)) && connectedNodes2.value[getConnectionKey(connection, index)].length >= 1
9435
9424
  }, {
9436
9425
  content: withCtx(() => [
9437
9426
  createTextVNode(" Add " + toDisplayString(connection.displayName) + " ", 1),
9438
- hasInputIssues(getConnectionKey(connection, index)) ? (openBlock(), createBlock(TitledList, {
9427
+ hasInputIssues(getConnectionContext(connection, index)) ? (openBlock(), createBlock(TitledList, {
9439
9428
  key: 0,
9440
9429
  title: `${unref(i18n).baseText("node.issues")}:`,
9441
9430
  items: nodeInputIssues.value[connection.type]
@@ -9473,7 +9462,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9473
9462
  teleported: true,
9474
9463
  offset: 10,
9475
9464
  "show-after": 300,
9476
- disabled: shouldShowConnectionTooltip(getConnectionKey(connection, index))
9465
+ disabled: shouldShowConnectionTooltip(getConnectionContext(connection, index))
9477
9466
  }, {
9478
9467
  content: withCtx(() => [
9479
9468
  createTextVNode(toDisplayString(node2.node.name) + " ", 1),
@@ -9486,9 +9475,9 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9486
9475
  default: withCtx(() => [
9487
9476
  createBaseVNode("div", {
9488
9477
  class: normalizeClass(_ctx.$style.connectedNode),
9489
- onClick: ($event) => onNodeClick(node2.node.name, getConnectionKey(connection, index))
9478
+ onClick: ($event) => onNodeClick(node2.node.name, getConnectionContext(connection, index))
9490
9479
  }, [
9491
- createVNode(_sfc_main$P, {
9480
+ createVNode(_sfc_main$T, {
9492
9481
  "node-type": node2.nodeType,
9493
9482
  "node-name": node2.node.name,
9494
9483
  "tooltip-position": "top",
@@ -9514,7 +9503,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9514
9503
  };
9515
9504
  }
9516
9505
  });
9517
- const container$2 = "_container_ac466_140";
9506
+ const container$3 = "_container_ac466_140";
9518
9507
  const connections = "_connections_ac466_148";
9519
9508
  const connectionType = "_connectionType_ac466_160";
9520
9509
  const connectionLabel = "_connectionLabel_ac466_167";
@@ -9526,8 +9515,8 @@ const connectedNodesMultiple = "_connectedNodesMultiple_ac466_209";
9526
9515
  const connectedNode = "_connectedNode_ac466_177";
9527
9516
  const connectedNodes = "_connectedNodes_ac466_177";
9528
9517
  const nodeWrapper = "_nodeWrapper_ac466_247";
9529
- const style0$l = {
9530
- container: container$2,
9518
+ const style0$n = {
9519
+ container: container$3,
9531
9520
  connections,
9532
9521
  connectionType,
9533
9522
  connectionLabel,
@@ -9541,97 +9530,14 @@ const style0$l = {
9541
9530
  connectedNodes,
9542
9531
  nodeWrapper
9543
9532
  };
9544
- const cssModules$l = {
9545
- "$style": style0$l
9533
+ const cssModules$n = {
9534
+ "$style": style0$n
9546
9535
  };
9547
- const NDVSubConnections = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__cssModules", cssModules$l]]);
9548
- function updateDynamicConnections(node2, workflowConnections, parameterData) {
9549
- const connections2 = { ...workflowConnections };
9550
- try {
9551
- if (parameterData.name.includes("conditions") || !connections2[node2.name]?.main) return null;
9552
- if (node2.type === SWITCH_NODE_TYPE && parameterData.name === "parameters.numberOutputs") {
9553
- const curentNumberOutputs = node2.parameters?.numberOutputs;
9554
- const newNumberOutputs = parameterData.value;
9555
- if (newNumberOutputs < curentNumberOutputs) {
9556
- connections2[node2.name].main = connections2[node2.name].main.slice(0, newNumberOutputs);
9557
- return connections2;
9558
- }
9559
- }
9560
- if (node2.type === SWITCH_NODE_TYPE && parameterData.name === "parameters.options.fallbackOutput") {
9561
- const curentFallbackOutput = node2.parameters?.options?.fallbackOutput;
9562
- if (curentFallbackOutput === "extra") {
9563
- if (!parameterData.value || parameterData.value !== "extra") {
9564
- connections2[node2.name].main = connections2[node2.name].main.slice(0, -1);
9565
- return connections2;
9566
- }
9567
- }
9568
- }
9569
- if (node2.type === SWITCH_NODE_TYPE && parameterData.name.includes("parameters.rules.values")) {
9570
- const { fallbackOutput } = node2.parameters?.options;
9571
- if (parameterData.value === void 0) {
9572
- let extractIndex = function(path) {
9573
- const match = path.match(/parameters\.rules\.values\[(\d+)\]$/);
9574
- return match ? parseInt(match[1], 10) : null;
9575
- };
9576
- const index = extractIndex(parameterData.name);
9577
- if (index !== null) {
9578
- connections2[node2.name].main.splice(index, 1);
9579
- return connections2;
9580
- }
9581
- if (parameterData.name === "parameters.rules.values") {
9582
- if (fallbackOutput === "extra") {
9583
- connections2[node2.name].main = [
9584
- connections2[node2.name].main[connections2[node2.name].main.length - 1]
9585
- ];
9586
- } else {
9587
- connections2[node2.name].main = [];
9588
- }
9589
- return connections2;
9590
- }
9591
- } else if (parameterData.name === "parameters.rules.values") {
9592
- const curentRulesvalues = node2.parameters?.rules?.values;
9593
- let lastConnection = void 0;
9594
- if (fallbackOutput === "extra" && connections2[node2.name].main.length === curentRulesvalues.length + 1) {
9595
- lastConnection = connections2[node2.name].main.pop();
9596
- }
9597
- const currentRulesLength = node2.parameters?.rules?.values?.length;
9598
- const newRulesLength = parameterData.value?.length;
9599
- if (newRulesLength - currentRulesLength === 1) {
9600
- connections2[node2.name].main = [...connections2[node2.name].main, []];
9601
- if (lastConnection) {
9602
- connections2[node2.name].main.push(lastConnection);
9603
- }
9604
- return connections2;
9605
- } else {
9606
- const newRulesvalues = parameterData.value;
9607
- const updatedConnectionsIndex = [];
9608
- for (const newRule of newRulesvalues) {
9609
- const index = curentRulesvalues.findIndex((rule) => isEqual(rule, newRule));
9610
- if (index !== -1) {
9611
- updatedConnectionsIndex.push(index);
9612
- }
9613
- }
9614
- const reorderedConnections = [];
9615
- for (const index of updatedConnectionsIndex) {
9616
- reorderedConnections.push(connections2[node2.name].main[index] ?? []);
9617
- }
9618
- if (lastConnection) {
9619
- reorderedConnections.push(lastConnection);
9620
- }
9621
- connections2[node2.name].main = reorderedConnections;
9622
- return connections2;
9623
- }
9624
- }
9625
- }
9626
- } catch (error2) {
9627
- captureException(error2);
9628
- }
9629
- return null;
9630
- }
9536
+ const NDVSubConnections = /* @__PURE__ */ _export_sfc$1(_sfc_main$v, [["__cssModules", cssModules$n]]);
9631
9537
  const _hoisted_1$6 = { class: "mt-xs" };
9632
9538
  const LANGCHAIN_NODES_PREFIX = "@n8n/n8n-nodes-langchain.";
9633
9539
  const N8N_NODES_PREFIX = "@n8n/n8n-nodes.";
9634
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
9540
+ const _sfc_main$u = /* @__PURE__ */ defineComponent({
9635
9541
  __name: "FreeAiCreditsCallout",
9636
9542
  setup(__props) {
9637
9543
  const NODES_WITH_OPEN_AI_API_CREDENTIAL = [
@@ -9685,9 +9591,9 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9685
9591
  }
9686
9592
  };
9687
9593
  return (_ctx, _cache) => {
9688
- const _component_n8n_button = resolveComponent("n8n-button");
9689
- const _component_n8n_callout = resolveComponent("n8n-callout");
9690
- const _component_n8n_text = resolveComponent("n8n-text");
9594
+ const _component_n8n_button = N8nButton;
9595
+ const _component_n8n_callout = N8nCallout;
9596
+ const _component_n8n_text = N8nText;
9691
9597
  return openBlock(), createElementBlock("div", _hoisted_1$6, [
9692
9598
  userCanClaimOpenAiCredits.value && !showSuccessCallout.value ? (openBlock(), createBlock(_component_n8n_callout, {
9693
9599
  key: 0,
@@ -9726,7 +9632,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9726
9632
  _cache[0] || (_cache[0] = createTextVNode("  ")),
9727
9633
  createVNode(_component_n8n_text, {
9728
9634
  size: "small",
9729
- bold: "true"
9635
+ bold: true
9730
9636
  }, {
9731
9637
  default: withCtx(() => [
9732
9638
  createTextVNode(toDisplayString(unref(i18n).baseText("freeAi.credits.callout.success.title.part2")), 1)
@@ -9740,6 +9646,299 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9740
9646
  };
9741
9647
  }
9742
9648
  });
9649
+ function shouldShowParameter(item) {
9650
+ return item.name.match(/resource|authentication|operation/i) === null;
9651
+ }
9652
+ function updateDynamicConnections(node2, workflowConnections, parameterData) {
9653
+ const connections2 = { ...workflowConnections };
9654
+ try {
9655
+ if (parameterData.name.includes("conditions") || !connections2[node2.name]?.main) return null;
9656
+ if (node2.type === SWITCH_NODE_TYPE && parameterData.name === "parameters.numberOutputs") {
9657
+ const curentNumberOutputs = node2.parameters?.numberOutputs;
9658
+ const newNumberOutputs = parameterData.value;
9659
+ if (newNumberOutputs < curentNumberOutputs) {
9660
+ connections2[node2.name].main = connections2[node2.name].main.slice(0, newNumberOutputs);
9661
+ return connections2;
9662
+ }
9663
+ }
9664
+ if (node2.type === SWITCH_NODE_TYPE && parameterData.name === "parameters.options.fallbackOutput") {
9665
+ const curentFallbackOutput = node2.parameters?.options?.fallbackOutput;
9666
+ if (curentFallbackOutput === "extra") {
9667
+ if (!parameterData.value || parameterData.value !== "extra") {
9668
+ connections2[node2.name].main = connections2[node2.name].main.slice(0, -1);
9669
+ return connections2;
9670
+ }
9671
+ }
9672
+ }
9673
+ if (node2.type === SWITCH_NODE_TYPE && parameterData.name.includes("parameters.rules.values")) {
9674
+ const { fallbackOutput } = node2.parameters?.options;
9675
+ if (parameterData.value === void 0) {
9676
+ let extractIndex = function(path) {
9677
+ const match = path.match(/parameters\.rules\.values\[(\d+)\]$/);
9678
+ return match ? parseInt(match[1], 10) : null;
9679
+ };
9680
+ const index = extractIndex(parameterData.name);
9681
+ if (index !== null) {
9682
+ connections2[node2.name].main.splice(index, 1);
9683
+ return connections2;
9684
+ }
9685
+ if (parameterData.name === "parameters.rules.values") {
9686
+ if (fallbackOutput === "extra") {
9687
+ connections2[node2.name].main = [
9688
+ connections2[node2.name].main[connections2[node2.name].main.length - 1]
9689
+ ];
9690
+ } else {
9691
+ connections2[node2.name].main = [];
9692
+ }
9693
+ return connections2;
9694
+ }
9695
+ } else if (parameterData.name === "parameters.rules.values") {
9696
+ const curentRulesvalues = node2.parameters?.rules?.values;
9697
+ let lastConnection = void 0;
9698
+ if (fallbackOutput === "extra" && connections2[node2.name].main.length === curentRulesvalues.length + 1) {
9699
+ lastConnection = connections2[node2.name].main.pop();
9700
+ }
9701
+ const currentRulesLength = node2.parameters?.rules?.values?.length;
9702
+ const newRulesLength = parameterData.value?.length;
9703
+ if (newRulesLength - currentRulesLength === 1) {
9704
+ connections2[node2.name].main = [...connections2[node2.name].main, []];
9705
+ if (lastConnection) {
9706
+ connections2[node2.name].main.push(lastConnection);
9707
+ }
9708
+ return connections2;
9709
+ } else {
9710
+ const newRulesvalues = parameterData.value;
9711
+ const updatedConnectionsIndex = [];
9712
+ for (const newRule of newRulesvalues) {
9713
+ const index = curentRulesvalues.findIndex((rule) => isEqual(rule, newRule));
9714
+ if (index !== -1) {
9715
+ updatedConnectionsIndex.push(index);
9716
+ }
9717
+ }
9718
+ const reorderedConnections = [];
9719
+ for (const index of updatedConnectionsIndex) {
9720
+ reorderedConnections.push(connections2[node2.name].main[index] ?? []);
9721
+ }
9722
+ if (lastConnection) {
9723
+ reorderedConnections.push(lastConnection);
9724
+ }
9725
+ connections2[node2.name].main = reorderedConnections;
9726
+ return connections2;
9727
+ }
9728
+ }
9729
+ }
9730
+ } catch (error2) {
9731
+ captureException(error2);
9732
+ }
9733
+ return null;
9734
+ }
9735
+ function removeMismatchedOptionValues(nodeType, nodeTypeVersion, nodeParameterValues, updatedParameter) {
9736
+ nodeType.properties.forEach((prop) => {
9737
+ const displayOptions = prop.displayOptions;
9738
+ if (!nodeParameterValues?.hasOwnProperty(prop.name) || !displayOptions || !prop.options) {
9739
+ return;
9740
+ }
9741
+ const showCondition = displayOptions.show?.[updatedParameter.name];
9742
+ const hideCondition = displayOptions.hide?.[updatedParameter.name];
9743
+ if (showCondition === void 0 && hideCondition === void 0) {
9744
+ return;
9745
+ }
9746
+ let hasValidOptions = true;
9747
+ if (isINodePropertyCollectionList(prop.options) || isINodePropertiesList(prop.options)) {
9748
+ hasValidOptions = Object.keys(nodeParameterValues).every(
9749
+ (key) => (prop.options ?? []).find((option2) => option2.name === key) !== void 0
9750
+ );
9751
+ } else if (isINodePropertyOptionsList(prop.options)) {
9752
+ hasValidOptions = !!prop.options.find(
9753
+ (option2) => option2.value === nodeParameterValues[prop.name]
9754
+ );
9755
+ }
9756
+ if (!hasValidOptions && displayParameter(nodeParameterValues, prop, { typeVersion: nodeTypeVersion }, nodeType)) {
9757
+ unset(nodeParameterValues, prop.name);
9758
+ }
9759
+ });
9760
+ }
9761
+ function updateParameterByPath(parameterName, newValue, nodeParameters, nodeType, nodeTypeVersion) {
9762
+ const parameterPath = parameterName.split(".").slice(1).join(".");
9763
+ const parameterPathArray = parameterPath.match(/(.*)\[(\d+)\]$/);
9764
+ if (newValue === void 0 && parameterPathArray !== null) {
9765
+ const path = parameterPathArray[1];
9766
+ const index = parameterPathArray[2];
9767
+ const data = get$3(nodeParameters, path);
9768
+ if (Array.isArray(data)) {
9769
+ data.splice(parseInt(index, 10), 1);
9770
+ set$3(nodeParameters, path, data);
9771
+ }
9772
+ } else {
9773
+ if (newValue === void 0) {
9774
+ unset(nodeParameters, parameterPath);
9775
+ } else {
9776
+ set$3(nodeParameters, parameterPath, newValue);
9777
+ }
9778
+ removeMismatchedOptionValues(nodeType, nodeTypeVersion, nodeParameters, {
9779
+ name: parameterPath
9780
+ });
9781
+ }
9782
+ return parameterPath;
9783
+ }
9784
+ function useNodeSettingsParameters() {
9785
+ const workflowsStore = useWorkflowsStore();
9786
+ const nodeTypesStore = useNodeTypesStore();
9787
+ const telemetry = useTelemetry();
9788
+ const nodeHelpers = useNodeHelpers();
9789
+ const canvasOperations = useCanvasOperations();
9790
+ const externalHooks = useExternalHooks();
9791
+ const nodeValues = ref({
9792
+ color: "#ff0000",
9793
+ alwaysOutputData: false,
9794
+ executeOnce: false,
9795
+ notesInFlow: false,
9796
+ onError: "stopWorkflow",
9797
+ retryOnFail: false,
9798
+ maxTries: 3,
9799
+ waitBetweenTries: 1e3,
9800
+ notes: "",
9801
+ parameters: {}
9802
+ });
9803
+ function setValue(name, value) {
9804
+ const nameParts = name.split(".");
9805
+ let lastNamePart = nameParts.pop();
9806
+ let isArray = false;
9807
+ if (lastNamePart !== void 0 && lastNamePart.includes("[")) {
9808
+ const lastNameParts = lastNamePart.match(/(.*)\[(\d+)\]$/);
9809
+ if (lastNameParts) {
9810
+ nameParts.push(lastNameParts[1]);
9811
+ lastNamePart = lastNameParts[2];
9812
+ isArray = true;
9813
+ }
9814
+ }
9815
+ if (nameParts.length === 0) {
9816
+ if (value === null) {
9817
+ if (lastNamePart) {
9818
+ const { [lastNamePart]: removedNodeValue, ...remainingNodeValues } = nodeValues.value;
9819
+ nodeValues.value = remainingNodeValues;
9820
+ }
9821
+ } else {
9822
+ nodeValues.value = {
9823
+ ...nodeValues.value,
9824
+ [lastNamePart]: value
9825
+ };
9826
+ }
9827
+ } else {
9828
+ if (value === null) {
9829
+ let tempValue = get$3(nodeValues.value, nameParts.join("."));
9830
+ if (lastNamePart && !Array.isArray(tempValue)) {
9831
+ const { [lastNamePart]: removedNodeValue, ...remainingNodeValues } = tempValue;
9832
+ tempValue = remainingNodeValues;
9833
+ }
9834
+ if (isArray && Array.isArray(tempValue) && tempValue.length === 0) {
9835
+ lastNamePart = nameParts.pop();
9836
+ tempValue = get$3(nodeValues.value, nameParts.join("."));
9837
+ if (lastNamePart) {
9838
+ const { [lastNamePart]: removedArrayNodeValue, ...remainingArrayNodeValues } = tempValue;
9839
+ tempValue = remainingArrayNodeValues;
9840
+ }
9841
+ }
9842
+ } else {
9843
+ if (typeof value === "object") {
9844
+ set$3(
9845
+ get$3(nodeValues.value, nameParts.join(".")),
9846
+ lastNamePart,
9847
+ deepCopy(value)
9848
+ );
9849
+ } else {
9850
+ set$3(
9851
+ get$3(nodeValues.value, nameParts.join(".")),
9852
+ lastNamePart,
9853
+ value
9854
+ );
9855
+ }
9856
+ }
9857
+ }
9858
+ nodeValues.value = { ...nodeValues.value };
9859
+ }
9860
+ function nameIsParameter(parameterData) {
9861
+ return parameterData.name.startsWith("parameters.");
9862
+ }
9863
+ function updateNodeParameter(parameterData, newValue, node2, isToolNode) {
9864
+ const nodeTypeDescription = nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
9865
+ if (!nodeTypeDescription) {
9866
+ return;
9867
+ }
9868
+ let nodeParameters = getNodeParameters(
9869
+ nodeTypeDescription.properties,
9870
+ node2.parameters,
9871
+ false,
9872
+ false,
9873
+ node2,
9874
+ nodeTypeDescription
9875
+ );
9876
+ const oldNodeParameters = Object.assign({}, nodeParameters);
9877
+ nodeParameters = deepCopy(nodeParameters);
9878
+ const parameterPath = updateParameterByPath(
9879
+ parameterData.name,
9880
+ newValue,
9881
+ nodeParameters,
9882
+ nodeTypeDescription,
9883
+ node2.typeVersion
9884
+ );
9885
+ nodeParameters = getNodeParameters(
9886
+ nodeTypeDescription.properties,
9887
+ nodeParameters,
9888
+ true,
9889
+ false,
9890
+ node2,
9891
+ nodeTypeDescription
9892
+ );
9893
+ if (isToolNode) {
9894
+ const updatedDescription = getUpdatedToolDescription(
9895
+ nodeTypeDescription,
9896
+ nodeParameters,
9897
+ node2.parameters
9898
+ );
9899
+ if (updatedDescription && nodeParameters) {
9900
+ nodeParameters.toolDescription = updatedDescription;
9901
+ }
9902
+ }
9903
+ if (isDefaultNodeName(node2.name, nodeTypeDescription, node2.parameters ?? {})) {
9904
+ const newName = makeNodeName(nodeParameters ?? {}, nodeTypeDescription);
9905
+ if (!node2.name.startsWith(newName)) {
9906
+ setTimeout(async () => await canvasOperations.renameNode(node2.name, newName));
9907
+ }
9908
+ }
9909
+ for (const [key, value] of Object.entries(nodeParameters)) {
9910
+ if (value !== null && value !== void 0) {
9911
+ setValue(`parameters.${key}`, value);
9912
+ }
9913
+ }
9914
+ const updateInformation = {
9915
+ name: node2.name,
9916
+ value: nodeParameters
9917
+ };
9918
+ const connections2 = workflowsStore.allConnections;
9919
+ const updatedConnections = updateDynamicConnections(node2, connections2, parameterData);
9920
+ if (updatedConnections) {
9921
+ workflowsStore.setConnections(updatedConnections, true);
9922
+ }
9923
+ workflowsStore.setNodeParameters(updateInformation);
9924
+ void externalHooks.run("nodeSettings.valueChanged", {
9925
+ parameterPath,
9926
+ newValue,
9927
+ parameters: nodeTypeDescription.properties,
9928
+ oldNodeParameters
9929
+ });
9930
+ nodeHelpers.updateNodeParameterIssuesByName(node2.name);
9931
+ nodeHelpers.updateNodeCredentialIssuesByName(node2.name);
9932
+ telemetry.trackNodeParametersValuesChange(nodeTypeDescription.name, parameterData);
9933
+ }
9934
+ return {
9935
+ nodeValues,
9936
+ setValue,
9937
+ updateParameterByPath,
9938
+ updateNodeParameter,
9939
+ nameIsParameter
9940
+ };
9941
+ }
9743
9942
  const _hoisted_1$5 = { class: "header-side-menu" };
9744
9943
  const _hoisted_2$2 = {
9745
9944
  key: 0,
@@ -9750,24 +9949,19 @@ const _hoisted_4 = { class: "mb-l" };
9750
9949
  const _hoisted_5 = ["href"];
9751
9950
  const _hoisted_6 = ["href", "textContent"];
9752
9951
  const _hoisted_7 = {
9753
- key: 1,
9754
- class: "node-parameters-wrapper",
9755
- "data-test-id": "node-parameters"
9756
- };
9757
- const _hoisted_8 = {
9758
9952
  key: 1,
9759
9953
  class: "no-parameters"
9760
9954
  };
9761
- const _hoisted_9 = {
9955
+ const _hoisted_8 = {
9762
9956
  key: 2,
9763
9957
  class: "parameter-item parameter-notice",
9764
9958
  "data-test-id": "node-parameters-http-notice"
9765
9959
  };
9766
- const _hoisted_10 = {
9960
+ const _hoisted_9 = {
9767
9961
  class: "node-version",
9768
9962
  "data-test-id": "node-version"
9769
9963
  };
9770
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
9964
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9771
9965
  __name: "NodeSettings",
9772
9966
  props: {
9773
9967
  eventBus: {},
@@ -9780,13 +9974,14 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
9780
9974
  executable: { type: Boolean, default: true },
9781
9975
  inputSize: { default: 0 },
9782
9976
  activeNode: { default: void 0 },
9783
- canExpand: { type: Boolean, default: false },
9784
- hideConnections: { type: Boolean, default: false }
9977
+ isEmbeddedInCanvas: { type: Boolean, default: false },
9978
+ noWheel: { type: Boolean, default: false }
9785
9979
  },
9786
- emits: ["stopExecution", "redrawRequired", "valueChanged", "switchSelectedNode", "openConnectionNodeCreator", "activate", "execute", "expand"],
9980
+ emits: ["stopExecution", "redrawRequired", "valueChanged", "switchSelectedNode", "openConnectionNodeCreator", "activate", "execute"],
9787
9981
  setup(__props, { emit: __emit }) {
9788
9982
  const props = __props;
9789
9983
  const emit = __emit;
9984
+ const slots = useSlots();
9790
9985
  const nodeTypesStore = useNodeTypesStore();
9791
9986
  const ndvStore = useNDVStore();
9792
9987
  const workflowsStore = useWorkflowsStore();
@@ -9796,21 +9991,17 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
9796
9991
  const nodeHelpers = useNodeHelpers();
9797
9992
  const externalHooks = useExternalHooks();
9798
9993
  const i18n = useI18n();
9799
- const canvasOperations = useCanvasOperations();
9994
+ const nodeSettingsParameters = useNodeSettingsParameters();
9995
+ const nodeValues = nodeSettingsParameters.nodeValues;
9996
+ const nodeParameterWrapper = useTemplateRef("nodeParameterWrapper");
9997
+ const shouldShowStaticScrollbar = ref(false);
9998
+ if (props.isEmbeddedInCanvas) {
9999
+ useResizeObserver(nodeParameterWrapper, () => {
10000
+ shouldShowStaticScrollbar.value = (nodeParameterWrapper.value?.scrollHeight ?? 0) > (nodeParameterWrapper.value?.offsetHeight ?? 0);
10001
+ });
10002
+ }
9800
10003
  const nodeValid = ref(true);
9801
10004
  const openPanel = ref("params");
9802
- const nodeValues = ref({
9803
- color: "#ff0000",
9804
- alwaysOutputData: false,
9805
- executeOnce: false,
9806
- notesInFlow: false,
9807
- onError: "stopWorkflow",
9808
- retryOnFail: false,
9809
- maxTries: 3,
9810
- waitBetweenTries: 1e3,
9811
- notes: "",
9812
- parameters: {}
9813
- });
9814
10005
  const nodeValuesInitialized = ref(false);
9815
10006
  const hiddenIssuesInputs = ref([]);
9816
10007
  const nodeSettings = ref([]);
@@ -9878,12 +10069,10 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
9878
10069
  return props.nodeType?.properties ?? [];
9879
10070
  });
9880
10071
  const parametersSetting = computed(() => parameters.value.filter((item) => item.isNodeSetting));
9881
- const parametersNoneSetting = computed(
9882
- () => (
9883
- // The connection hint notice is visually hidden via CSS in NodeDetails.vue when the node has output connections
9884
- parameters.value.filter((item) => !item.isNodeSetting)
9885
- )
9886
- );
10072
+ const parametersNoneSetting = computed(() => {
10073
+ const paramsToShow = parameters.value.filter((item) => !item.isNodeSetting);
10074
+ return props.isEmbeddedInCanvas ? parameters.value.filter(shouldShowParameter) : paramsToShow;
10075
+ });
9887
10076
  const isDisplayingCredentials = computed(
9888
10077
  () => credentialsStore.getCredentialTypesNodeDescriptions("", props.nodeType).filter((credentialTypeDescription) => displayCredentials(credentialTypeDescription)).length > 0
9889
10078
  );
@@ -9905,89 +10094,6 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
9905
10094
  ) : void 0;
9906
10095
  return credentialsStore.getCredentialOwnerName(credential);
9907
10096
  });
9908
- const setValue = (name, value) => {
9909
- const nameParts = name.split(".");
9910
- let lastNamePart = nameParts.pop();
9911
- let isArray = false;
9912
- if (lastNamePart !== void 0 && lastNamePart.includes("[")) {
9913
- const lastNameParts = lastNamePart.match(/(.*)\[(\d+)\]$/);
9914
- if (lastNameParts) {
9915
- nameParts.push(lastNameParts[1]);
9916
- lastNamePart = lastNameParts[2];
9917
- isArray = true;
9918
- }
9919
- }
9920
- if (nameParts.length === 0) {
9921
- if (value === null) {
9922
- if (lastNamePart) {
9923
- const { [lastNamePart]: removedNodeValue, ...remainingNodeValues } = nodeValues.value;
9924
- nodeValues.value = remainingNodeValues;
9925
- }
9926
- } else {
9927
- nodeValues.value = {
9928
- ...nodeValues.value,
9929
- [lastNamePart]: value
9930
- };
9931
- }
9932
- } else {
9933
- if (value === null) {
9934
- let tempValue = get$3(nodeValues.value, nameParts.join("."));
9935
- if (lastNamePart && !Array.isArray(tempValue)) {
9936
- const { [lastNamePart]: removedNodeValue, ...remainingNodeValues } = tempValue;
9937
- tempValue = remainingNodeValues;
9938
- }
9939
- if (isArray && Array.isArray(tempValue) && tempValue.length === 0) {
9940
- lastNamePart = nameParts.pop();
9941
- tempValue = get$3(nodeValues.value, nameParts.join("."));
9942
- if (lastNamePart) {
9943
- const { [lastNamePart]: removedArrayNodeValue, ...remainingArrayNodeValues } = tempValue;
9944
- tempValue = remainingArrayNodeValues;
9945
- }
9946
- }
9947
- } else {
9948
- if (typeof value === "object") {
9949
- set$3(
9950
- get$3(nodeValues.value, nameParts.join(".")),
9951
- lastNamePart,
9952
- deepCopy(value)
9953
- );
9954
- } else {
9955
- set$3(
9956
- get$3(nodeValues.value, nameParts.join(".")),
9957
- lastNamePart,
9958
- value
9959
- );
9960
- }
9961
- }
9962
- }
9963
- nodeValues.value = { ...nodeValues.value };
9964
- };
9965
- const removeMismatchedOptionValues = (nodeType, nodeParameterValues, updatedParameter) => {
9966
- nodeType.properties.forEach((prop) => {
9967
- const displayOptions = prop.displayOptions;
9968
- if (!nodeParameterValues?.hasOwnProperty(prop.name) || !displayOptions || !prop.options) {
9969
- return;
9970
- }
9971
- const showCondition = displayOptions.show?.[updatedParameter.name];
9972
- const hideCondition = displayOptions.hide?.[updatedParameter.name];
9973
- if (showCondition === void 0 && hideCondition === void 0) {
9974
- return;
9975
- }
9976
- let hasValidOptions = true;
9977
- if (isINodePropertyCollectionList(prop.options) || isINodePropertiesList(prop.options)) {
9978
- hasValidOptions = Object.keys(nodeParameterValues).every(
9979
- (key) => (prop.options ?? []).find((option2) => option2.name === key) !== void 0
9980
- );
9981
- } else if (isINodePropertyOptionsList(prop.options)) {
9982
- hasValidOptions = !!prop.options.find(
9983
- (option2) => option2.value === nodeParameterValues[prop.name]
9984
- );
9985
- }
9986
- if (!hasValidOptions && displayParameter(nodeParameterValues, prop, node2.value, nodeType)) {
9987
- unset(nodeParameterValues, prop.name);
9988
- }
9989
- });
9990
- };
9991
10097
  const valueChanged = (parameterData) => {
9992
10098
  let newValue;
9993
10099
  if (parameterData.hasOwnProperty("value")) {
@@ -10029,25 +10135,15 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10029
10135
  const oldNodeParameters = Object.assign({}, nodeParameters);
10030
10136
  nodeParameters = deepCopy(nodeParameters);
10031
10137
  if (parameterData.value && typeof parameterData.value === "object") {
10032
- for (const parameterName of Object.keys(parameterData.value)) {
10033
- newValue = parameterData.value[parameterName];
10034
- const parameterPath = parameterName.split(".").slice(1).join(".");
10035
- const parameterPathArray = parameterPath.match(/(.*)\[(\d+)\]$/);
10036
- if (parameterData[parameterName] === void 0 && parameterPathArray !== null) {
10037
- const path = parameterPathArray[1];
10038
- const index = parameterPathArray[2];
10039
- const data = get$3(nodeParameters, path);
10040
- if (Array.isArray(data)) {
10041
- data.splice(parseInt(index, 10), 1);
10042
- set$3(nodeParameters, path, data);
10043
- }
10044
- } else {
10045
- if (newValue === void 0) {
10046
- unset(nodeParameters, parameterPath);
10047
- } else {
10048
- set$3(nodeParameters, parameterPath, newValue);
10049
- }
10050
- }
10138
+ for (const [parameterName, parameterValue] of Object.entries(parameterData.value)) {
10139
+ newValue = parameterValue;
10140
+ const parameterPath = nodeSettingsParameters.updateParameterByPath(
10141
+ parameterName,
10142
+ newValue,
10143
+ nodeParameters,
10144
+ nodeType,
10145
+ _node.typeVersion
10146
+ );
10051
10147
  void externalHooks.run("nodeSettings.valueChanged", {
10052
10148
  parameterPath,
10053
10149
  newValue,
@@ -10065,8 +10161,8 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10065
10161
  nodeType
10066
10162
  );
10067
10163
  for (const key of Object.keys(nodeParameters)) {
10068
- if (nodeParameters && nodeParameters[key] !== null && nodeParameters[key] !== void 0) {
10069
- setValue(`parameters.${key}`, nodeParameters[key]);
10164
+ if (nodeParameters?.[key] !== null && nodeParameters?.[key] !== void 0) {
10165
+ nodeSettingsParameters.setValue(`parameters.${key}`, nodeParameters[key]);
10070
10166
  }
10071
10167
  }
10072
10168
  if (nodeParameters) {
@@ -10078,89 +10174,8 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10078
10174
  nodeHelpers.updateNodeParameterIssuesByName(_node.name);
10079
10175
  nodeHelpers.updateNodeCredentialIssuesByName(_node.name);
10080
10176
  }
10081
- } else if (parameterData.name.startsWith("parameters.")) {
10082
- const nodeType = nodeTypesStore.getNodeType(_node.type, _node.typeVersion);
10083
- if (!nodeType) {
10084
- return;
10085
- }
10086
- let nodeParameters = getNodeParameters(
10087
- nodeType.properties,
10088
- _node.parameters,
10089
- false,
10090
- false,
10091
- _node,
10092
- nodeType
10093
- );
10094
- const oldNodeParameters = Object.assign({}, nodeParameters);
10095
- nodeParameters = deepCopy(nodeParameters);
10096
- const parameterPath = parameterData.name.split(".").slice(1).join(".");
10097
- const parameterPathArray = parameterPath.match(/(.*)\[(\d+)\]$/);
10098
- if (parameterData.value === void 0 && parameterPathArray !== null) {
10099
- const path = parameterPathArray[1];
10100
- const index = parameterPathArray[2];
10101
- const data = get$3(nodeParameters, path);
10102
- if (Array.isArray(data)) {
10103
- data.splice(parseInt(index, 10), 1);
10104
- set$3(nodeParameters, path, data);
10105
- }
10106
- } else {
10107
- if (newValue === void 0) {
10108
- unset(nodeParameters, parameterPath);
10109
- } else {
10110
- set$3(nodeParameters, parameterPath, newValue);
10111
- }
10112
- removeMismatchedOptionValues(nodeType, nodeParameters, {
10113
- name: parameterPath
10114
- });
10115
- }
10116
- nodeParameters = getNodeParameters(
10117
- nodeType.properties,
10118
- nodeParameters,
10119
- true,
10120
- false,
10121
- _node,
10122
- nodeType
10123
- );
10124
- if (isToolNode.value) {
10125
- const updatedDescription = getUpdatedToolDescription(
10126
- props.nodeType,
10127
- nodeParameters,
10128
- node2.value?.parameters
10129
- );
10130
- if (updatedDescription && nodeParameters) {
10131
- nodeParameters.toolDescription = updatedDescription;
10132
- }
10133
- }
10134
- if (isDefaultNodeName(_node.name, nodeType, node2.value?.parameters ?? {})) {
10135
- const newName = makeNodeName(nodeParameters ?? {}, nodeType);
10136
- if (!_node.name.startsWith(newName)) {
10137
- setTimeout(async () => await canvasOperations.renameNode(_node.name, newName));
10138
- }
10139
- }
10140
- for (const key of Object.keys(nodeParameters)) {
10141
- if (nodeParameters && nodeParameters[key] !== null && nodeParameters[key] !== void 0) {
10142
- setValue(`parameters.${key}`, nodeParameters[key]);
10143
- }
10144
- }
10145
- const updateInformation = {
10146
- name: _node.name,
10147
- value: nodeParameters
10148
- };
10149
- const connections2 = workflowsStore.allConnections;
10150
- const updatedConnections = updateDynamicConnections(_node, connections2, parameterData);
10151
- if (updatedConnections) {
10152
- workflowsStore.setConnections(updatedConnections, true);
10153
- }
10154
- workflowsStore.setNodeParameters(updateInformation);
10155
- void externalHooks.run("nodeSettings.valueChanged", {
10156
- parameterPath,
10157
- newValue,
10158
- parameters: parameters.value,
10159
- oldNodeParameters
10160
- });
10161
- nodeHelpers.updateNodeParameterIssuesByName(_node.name);
10162
- nodeHelpers.updateNodeCredentialIssuesByName(_node.name);
10163
- telemetry.trackNodeParametersValuesChange(nodeType.name, parameterData);
10177
+ } else if (nodeSettingsParameters.nameIsParameter(parameterData)) {
10178
+ nodeSettingsParameters.updateNodeParameter(parameterData, newValue, _node, isToolNode.value);
10164
10179
  } else {
10165
10180
  nodeValues.value = {
10166
10181
  ...nodeValues.value,
@@ -10187,8 +10202,8 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10187
10202
  const onSwitchSelectedNode = (node22) => {
10188
10203
  emit("switchSelectedNode", node22);
10189
10204
  };
10190
- const onOpenConnectionNodeCreator = (nodeName, connectionType2) => {
10191
- emit("openConnectionNodeCreator", nodeName, connectionType2);
10205
+ const onOpenConnectionNodeCreator = (nodeName, connectionType2, connectionIndex = 0) => {
10206
+ emit("openConnectionNodeCreator", nodeName, connectionType2, connectionIndex);
10192
10207
  };
10193
10208
  const populateHiddenIssuesSet = () => {
10194
10209
  if (!node2.value || !workflowsStore.isNodePristine(node2.value.name)) return;
@@ -10488,17 +10503,25 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10488
10503
  }
10489
10504
  return !!node2.value && nodeHelpers.displayParameter(node2.value.parameters, credentialTypeDescription, "", node2.value);
10490
10505
  }
10506
+ function handleWheelEvent(event) {
10507
+ if (event.ctrlKey) {
10508
+ event.preventDefault();
10509
+ }
10510
+ }
10491
10511
  return (_ctx, _cache) => {
10512
+ const _component_NodeTitle = NodeTitle;
10513
+ const _component_NodeSettingsTabs = _sfc_main$y;
10492
10514
  const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
10493
- const _component_n8n_text = resolveComponent("n8n-text");
10515
+ const _component_n8n_text = N8nText;
10494
10516
  const _component_i18n_t = resolveComponent("i18n-t");
10495
- const _component_n8n_link = resolveComponent("n8n-link");
10496
- const _component_n8n_notice = resolveComponent("n8n-notice");
10497
- const _component_n8n_block_ui = resolveComponent("n8n-block-ui");
10517
+ const _component_n8n_link = N8nLink;
10518
+ const _component_n8n_notice = N8nNotice;
10519
+ const _component_n8n_block_ui = N8nBlockUi;
10498
10520
  return openBlock(), createElementBlock("div", {
10499
10521
  class: normalizeClass({
10500
10522
  "node-settings": true,
10501
- dragging: _ctx.dragging
10523
+ dragging: _ctx.dragging,
10524
+ embedded: props.isEmbeddedInCanvas
10502
10525
  }),
10503
10526
  onKeydown: _cache[1] || (_cache[1] = withModifiers(() => {
10504
10527
  }, ["stop"]))
@@ -10507,7 +10530,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10507
10530
  class: normalizeClass(_ctx.$style.header)
10508
10531
  }, [
10509
10532
  createBaseVNode("div", _hoisted_1$5, [
10510
- node2.value ? (openBlock(), createBlock(NodeTitle, {
10533
+ node2.value ? (openBlock(), createBlock(_component_NodeTitle, {
10511
10534
  key: 0,
10512
10535
  class: "node-name",
10513
10536
  "model-value": node2.value.name,
@@ -10515,11 +10538,8 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10515
10538
  "read-only": isReadOnly.value,
10516
10539
  "onUpdate:modelValue": nameChanged
10517
10540
  }, null, 8, ["model-value", "node-type", "read-only"])) : createCommentVNode("", true),
10518
- isExecutable2.value || props.canExpand ? (openBlock(), createElementBlock("div", {
10519
- key: 1,
10520
- class: normalizeClass(_ctx.$style.headerActions)
10521
- }, [
10522
- isExecutable2.value && !_ctx.blockUI && node2.value && nodeValid.value ? (openBlock(), createBlock(_sfc_main$Q, {
10541
+ isExecutable2.value || slots.actions ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
10542
+ isExecutable2.value && !_ctx.blockUI && node2.value && nodeValid.value ? (openBlock(), createBlock(_sfc_main$U, {
10523
10543
  key: 0,
10524
10544
  "data-test-id": "node-execute-button",
10525
10545
  "node-name": node2.value.name,
@@ -10531,19 +10551,10 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10531
10551
  onStopExecution,
10532
10552
  onValueChanged: valueChanged
10533
10553
  }, null, 8, ["node-name", "disabled", "tooltip"])) : createCommentVNode("", true),
10534
- props.canExpand ? (openBlock(), createBlock(unref(_sfc_main$R), {
10535
- key: 1,
10536
- icon: "expand",
10537
- type: "secondary",
10538
- text: "",
10539
- size: "mini",
10540
- "icon-size": "large",
10541
- "aria-label": "Expand",
10542
- onClick: _cache[0] || (_cache[0] = ($event) => emit("expand"))
10543
- })) : createCommentVNode("", true)
10544
- ], 2)) : createCommentVNode("", true)
10554
+ renderSlot(_ctx.$slots, "actions", {}, void 0, true)
10555
+ ], 64)) : createCommentVNode("", true)
10545
10556
  ]),
10546
- node2.value && nodeValid.value ? (openBlock(), createBlock(_sfc_main$v, {
10557
+ node2.value && nodeValid.value ? (openBlock(), createBlock(_component_NodeSettingsTabs, {
10547
10558
  key: 0,
10548
10559
  "model-value": openPanel.value,
10549
10560
  "node-type": _ctx.nodeType,
@@ -10612,33 +10623,46 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10612
10623
  _: 1
10613
10624
  }))
10614
10625
  ])) : createCommentVNode("", true),
10615
- node2.value && nodeValid.value ? (openBlock(), createElementBlock("div", _hoisted_7, [
10626
+ node2.value && nodeValid.value ? (openBlock(), createElementBlock("div", {
10627
+ key: 1,
10628
+ ref_key: "nodeParameterWrapper",
10629
+ ref: nodeParameterWrapper,
10630
+ class: normalizeClass([
10631
+ "node-parameters-wrapper",
10632
+ shouldShowStaticScrollbar.value ? "with-static-scrollbar" : "",
10633
+ _ctx.noWheel && shouldShowStaticScrollbar.value ? "nowheel" : ""
10634
+ ]),
10635
+ "data-test-id": "node-parameters",
10636
+ onWheel: _cache[0] || (_cache[0] = ($event) => _ctx.noWheel ? handleWheelEvent : void 0)
10637
+ }, [
10616
10638
  hasForeignCredential.value && !isHomeProjectTeam.value ? (openBlock(), createBlock(_component_n8n_notice, {
10617
10639
  key: 0,
10618
10640
  content: unref(i18n).baseText("nodeSettings.hasForeignCredential", {
10619
10641
  interpolate: { owner: credentialOwnerName.value }
10620
10642
  })
10621
10643
  }, null, 8, ["content"])) : createCommentVNode("", true),
10622
- createVNode(_sfc_main$s),
10644
+ createVNode(_sfc_main$u),
10623
10645
  withDirectives(createBaseVNode("div", null, [
10624
10646
  createVNode(NodeWebhooks, {
10625
10647
  node: node2.value,
10626
10648
  "node-type-description": _ctx.nodeType
10627
10649
  }, null, 8, ["node", "node-type-description"]),
10628
- nodeValuesInitialized.value ? (openBlock(), createBlock(_sfc_main$S, {
10650
+ nodeValuesInitialized.value ? (openBlock(), createBlock(_sfc_main$V, {
10629
10651
  key: 0,
10630
10652
  parameters: parametersNoneSetting.value,
10631
10653
  "hide-delete": true,
10632
- "node-values": nodeValues.value,
10654
+ "node-values": unref(nodeValues),
10633
10655
  "is-read-only": isReadOnly.value,
10634
10656
  "hidden-issues-inputs": hiddenIssuesInputs.value,
10635
10657
  path: "parameters",
10658
+ node: props.activeNode,
10636
10659
  onValueChanged: valueChanged,
10637
10660
  onActivate: onWorkflowActivate,
10638
10661
  onParameterBlur
10639
10662
  }, {
10640
10663
  default: withCtx(() => [
10641
- createVNode(NodeCredentials, {
10664
+ !_ctx.isEmbeddedInCanvas ? (openBlock(), createBlock(NodeCredentials, {
10665
+ key: 0,
10642
10666
  node: node2.value,
10643
10667
  readonly: isReadOnly.value,
10644
10668
  "show-all": true,
@@ -10646,11 +10670,11 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10646
10670
  onCredentialSelected: credentialSelected,
10647
10671
  onValueChanged: valueChanged,
10648
10672
  onBlur: onParameterBlur
10649
- }, null, 8, ["node", "readonly", "hide-issues"])
10673
+ }, null, 8, ["node", "readonly", "hide-issues"])) : createCommentVNode("", true)
10650
10674
  ]),
10651
10675
  _: 1
10652
- }, 8, ["parameters", "node-values", "is-read-only", "hidden-issues-inputs"])) : createCommentVNode("", true),
10653
- showNoParametersNotice.value ? (openBlock(), createElementBlock("div", _hoisted_8, [
10676
+ }, 8, ["parameters", "node-values", "is-read-only", "hidden-issues-inputs", "node"])) : createCommentVNode("", true),
10677
+ showNoParametersNotice.value ? (openBlock(), createElementBlock("div", _hoisted_7, [
10654
10678
  createVNode(_component_n8n_text, null, {
10655
10679
  default: withCtx(() => [
10656
10680
  createTextVNode(toDisplayString(unref(i18n).baseText("nodeSettings.thisNodeDoesNotHaveAnyParameters")), 1)
@@ -10658,7 +10682,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10658
10682
  _: 1
10659
10683
  })
10660
10684
  ])) : createCommentVNode("", true),
10661
- unref(nodeHelpers).isCustomApiCallSelected(nodeValues.value) ? (openBlock(), createElementBlock("div", _hoisted_9, [
10685
+ unref(nodeHelpers).isCustomApiCallSelected(unref(nodeValues)) ? (openBlock(), createElementBlock("div", _hoisted_8, [
10662
10686
  createVNode(_component_n8n_notice, {
10663
10687
  content: unref(i18n).baseText("nodeSettings.useTheHttpRequestNode", {
10664
10688
  interpolate: { nodeTypeDisplayName: _ctx.nodeType?.displayName ?? "" }
@@ -10669,9 +10693,9 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10669
10693
  [vShow, openPanel.value === "params"]
10670
10694
  ]),
10671
10695
  withDirectives(createBaseVNode("div", null, [
10672
- createVNode(_sfc_main$S, {
10696
+ createVNode(_sfc_main$V, {
10673
10697
  parameters: parametersSetting.value,
10674
- "node-values": nodeValues.value,
10698
+ "node-values": unref(nodeValues),
10675
10699
  "is-read-only": isReadOnly.value,
10676
10700
  "hide-delete": true,
10677
10701
  "hidden-issues-inputs": hiddenIssuesInputs.value,
@@ -10679,17 +10703,17 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10679
10703
  onValueChanged: valueChanged,
10680
10704
  onParameterBlur
10681
10705
  }, null, 8, ["parameters", "node-values", "is-read-only", "hidden-issues-inputs"]),
10682
- createVNode(_sfc_main$S, {
10706
+ createVNode(_sfc_main$V, {
10683
10707
  parameters: nodeSettings.value,
10684
10708
  "hide-delete": true,
10685
- "node-values": nodeValues.value,
10709
+ "node-values": unref(nodeValues),
10686
10710
  "is-read-only": isReadOnly.value,
10687
10711
  "hidden-issues-inputs": hiddenIssuesInputs.value,
10688
10712
  path: "",
10689
10713
  onValueChanged: valueChanged,
10690
10714
  onParameterBlur
10691
10715
  }, null, 8, ["parameters", "node-values", "is-read-only", "hidden-issues-inputs"]),
10692
- createBaseVNode("div", _hoisted_10, [
10716
+ createBaseVNode("div", _hoisted_9, [
10693
10717
  createTextVNode(toDisplayString(unref(i18n).baseText("nodeSettings.nodeVersion", {
10694
10718
  interpolate: {
10695
10719
  node: _ctx.nodeType?.displayName,
@@ -10701,8 +10725,8 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10701
10725
  ], 512), [
10702
10726
  [vShow, openPanel.value === "settings"]
10703
10727
  ])
10704
- ])) : createCommentVNode("", true),
10705
- node2.value && !props.hideConnections ? (openBlock(), createBlock(NDVSubConnections, {
10728
+ ], 34)) : createCommentVNode("", true),
10729
+ node2.value && !props.isEmbeddedInCanvas ? (openBlock(), createBlock(NDVSubConnections, {
10706
10730
  key: 2,
10707
10731
  ref_key: "subConnections",
10708
10732
  ref: subConnections,
@@ -10715,31 +10739,28 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10715
10739
  };
10716
10740
  }
10717
10741
  });
10718
- const header = "_header_ksz9x_123";
10719
- const headerActions = "_headerActions_ksz9x_127";
10720
- const warningIcon = "_warningIcon_ksz9x_133";
10721
- const descriptionContainer = "_descriptionContainer_ksz9x_138";
10722
- const style0$k = {
10723
- header,
10724
- headerActions,
10742
+ const header$1 = "_header_13al3_123";
10743
+ const warningIcon = "_warningIcon_13al3_127";
10744
+ const descriptionContainer = "_descriptionContainer_13al3_132";
10745
+ const style0$m = {
10746
+ header: header$1,
10725
10747
  warningIcon,
10726
10748
  descriptionContainer
10727
10749
  };
10728
- const cssModules$k = {
10729
- "$style": style0$k
10750
+ const cssModules$m = {
10751
+ "$style": style0$m
10730
10752
  };
10731
- const NodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$r, [["__cssModules", cssModules$k], ["__scopeId", "data-v-d069a584"]]);
10732
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
10753
+ const NodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__cssModules", cssModules$m], ["__scopeId", "data-v-8e2785e0"]]);
10754
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
10733
10755
  __name: "ExperimentalCanvasNodeSettings",
10734
10756
  props: {
10735
10757
  nodeId: {},
10736
- canOpenNdv: { type: Boolean }
10758
+ noWheel: { type: Boolean }
10737
10759
  },
10738
10760
  setup(__props) {
10739
10761
  const settingsEventBus = createEventBus();
10740
10762
  const nodeTypesStore = useNodeTypesStore();
10741
10763
  const workflowsStore = useWorkflowsStore();
10742
- const { setActiveNodeName } = useNDVStore();
10743
10764
  const { renameNode } = useCanvasOperations();
10744
10765
  const activeNode = computed(() => workflowsStore.getNodeById(__props.nodeId));
10745
10766
  const activeNodeType = computed(() => {
@@ -10748,11 +10769,6 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10748
10769
  }
10749
10770
  return null;
10750
10771
  });
10751
- function handleOpenNdv() {
10752
- if (activeNode.value) {
10753
- setActiveNodeName(activeNode.value.name);
10754
- }
10755
- }
10756
10772
  function handleValueChanged(parameterData) {
10757
10773
  if (parameterData.name === "name" && parameterData.oldValue) {
10758
10774
  void renameNode(parameterData.oldValue, parameterData.value);
@@ -10760,7 +10776,6 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10760
10776
  }
10761
10777
  return (_ctx, _cache) => {
10762
10778
  return openBlock(), createBlock(NodeSettings, {
10763
- "can-expand": _ctx.canOpenNdv,
10764
10779
  "event-bus": unref(settingsEventBus),
10765
10780
  dragging: false,
10766
10781
  "active-node": activeNode.value,
@@ -10771,15 +10786,173 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10771
10786
  "block-u-i": false,
10772
10787
  executable: false,
10773
10788
  "input-size": 0,
10774
- "hide-connections": "",
10775
- onExpand: handleOpenNdv,
10789
+ "is-embedded-in-canvas": "",
10790
+ "no-wheel": _ctx.noWheel,
10776
10791
  onValueChanged: handleValueChanged
10777
- }, null, 8, ["can-expand", "event-bus", "active-node", "node-type"]);
10792
+ }, {
10793
+ actions: withCtx(() => [
10794
+ renderSlot(_ctx.$slots, "actions")
10795
+ ]),
10796
+ _: 3
10797
+ }, 8, ["event-bus", "active-node", "node-type", "no-wheel"]);
10778
10798
  };
10779
10799
  }
10780
10800
  });
10801
+ const useExperimentalNdvStore = defineStore("experimentalNdv", () => {
10802
+ const workflowStore = useWorkflowsStore();
10803
+ const settingsStore = useSettingsStore();
10804
+ const isEnabled = computed(
10805
+ () => !Number.isNaN(settingsStore.experimental__minZoomNodeSettingsInCanvas) && settingsStore.experimental__minZoomNodeSettingsInCanvas > 0
10806
+ );
10807
+ const maxCanvasZoom = computed(
10808
+ () => isEnabled.value ? settingsStore.experimental__minZoomNodeSettingsInCanvas : 4
10809
+ );
10810
+ const collapsedNodes = shallowRef({});
10811
+ function setNodeExpanded(nodeId, isExpanded) {
10812
+ collapsedNodes.value = {
10813
+ ...collapsedNodes.value,
10814
+ [nodeId]: isExpanded ?? !collapsedNodes.value[nodeId]
10815
+ };
10816
+ }
10817
+ function collapseAllNodes() {
10818
+ collapsedNodes.value = workflowStore.allNodes.reduce(
10819
+ (acc, node2) => {
10820
+ acc[node2.id] = true;
10821
+ return acc;
10822
+ },
10823
+ {}
10824
+ );
10825
+ }
10826
+ function expandAllNodes() {
10827
+ collapsedNodes.value = {};
10828
+ }
10829
+ function isActive(canvasZoom) {
10830
+ return isEnabled.value && canvasZoom === maxCanvasZoom.value;
10831
+ }
10832
+ return {
10833
+ isEnabled,
10834
+ maxCanvasZoom,
10835
+ collapsedNodes: computed(() => collapsedNodes.value),
10836
+ isActive,
10837
+ setNodeExpanded,
10838
+ expandAllNodes,
10839
+ collapseAllNodes
10840
+ };
10841
+ });
10842
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
10843
+ __name: "ExperimentalEmbeddedNodeDetails",
10844
+ props: {
10845
+ nodeId: {}
10846
+ },
10847
+ setup(__props) {
10848
+ const experimentalNdvStore = useExperimentalNdvStore();
10849
+ const isExpanded = computed(() => !experimentalNdvStore.collapsedNodes[__props.nodeId]);
10850
+ const nodeTypesStore = useNodeTypesStore();
10851
+ const workflowsStore = useWorkflowsStore();
10852
+ const node2 = computed(() => workflowsStore.getNodeById(__props.nodeId) ?? null);
10853
+ const nodeType = computed(() => {
10854
+ if (node2.value) {
10855
+ return nodeTypesStore.getNodeType(node2.value.type, node2.value.typeVersion);
10856
+ }
10857
+ return null;
10858
+ });
10859
+ const vf = useVueFlow(workflowsStore.workflowId);
10860
+ const isMoving = ref(false);
10861
+ const moveStartListener = vf.onMoveStart(() => {
10862
+ isMoving.value = true;
10863
+ });
10864
+ const moveEndListener = vf.onMoveEnd(() => {
10865
+ isMoving.value = false;
10866
+ });
10867
+ onBeforeUnmount(() => {
10868
+ moveStartListener.off();
10869
+ moveEndListener.off();
10870
+ });
10871
+ const isVisible = computed(
10872
+ () => vf.isNodeIntersecting(
10873
+ { id: __props.nodeId },
10874
+ {
10875
+ x: -vf.viewport.value.x / vf.viewport.value.zoom,
10876
+ y: -vf.viewport.value.y / vf.viewport.value.zoom,
10877
+ width: vf.viewportRef.value?.offsetWidth ?? 0,
10878
+ height: vf.viewportRef.value?.offsetHeight ?? 0
10879
+ }
10880
+ )
10881
+ );
10882
+ const isOnceVisible = ref(isVisible.value);
10883
+ watchOnce(isVisible, (visible2) => {
10884
+ isOnceVisible.value = isOnceVisible.value || visible2;
10885
+ });
10886
+ function handleToggleExpand() {
10887
+ experimentalNdvStore.setNodeExpanded(__props.nodeId);
10888
+ }
10889
+ return (_ctx, _cache) => {
10890
+ return openBlock(), createElementBlock("div", {
10891
+ ref: "container",
10892
+ class: normalizeClass([_ctx.$style.component, isExpanded.value ? _ctx.$style.expanded : _ctx.$style.collapsed]),
10893
+ style: normalizeStyle({ "--zoom": `${1 / unref(experimentalNdvStore).maxCanvasZoom}` })
10894
+ }, [
10895
+ isOnceVisible.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
10896
+ isExpanded.value ? (openBlock(), createBlock(_sfc_main$s, {
10897
+ key: 0,
10898
+ "node-id": _ctx.nodeId,
10899
+ class: normalizeClass(_ctx.$style.settingsView),
10900
+ "no-wheel": !isMoving.value
10901
+ /* to not interrupt panning while allowing scroll of the settings pane, allow wheel event while panning */
10902
+ }, {
10903
+ actions: withCtx(() => [
10904
+ createVNode(unref(_sfc_main$R), {
10905
+ icon: "compress",
10906
+ type: "secondary",
10907
+ text: "",
10908
+ size: "mini",
10909
+ "icon-size": "large",
10910
+ "aria-label": "Toggle expand",
10911
+ onClick: handleToggleExpand
10912
+ })
10913
+ ]),
10914
+ _: 1
10915
+ }, 8, ["node-id", "class", "no-wheel"])) : (openBlock(), createElementBlock("div", {
10916
+ key: 1,
10917
+ role: "button ",
10918
+ class: normalizeClass(_ctx.$style.collapsedContent),
10919
+ onClick: handleToggleExpand
10920
+ }, [
10921
+ node2.value ? (openBlock(), createBlock(NodeTitle, {
10922
+ key: 0,
10923
+ class: "node-name",
10924
+ "model-value": node2.value.name,
10925
+ "node-type": nodeType.value,
10926
+ "read-only": ""
10927
+ }, null, 8, ["model-value", "node-type"])) : createCommentVNode("", true),
10928
+ createVNode(unref(N8nIcon), {
10929
+ icon: "expand",
10930
+ size: "large"
10931
+ })
10932
+ ], 2))
10933
+ ], 64)) : createCommentVNode("", true)
10934
+ ], 6);
10935
+ };
10936
+ }
10937
+ });
10938
+ const component$2 = "_component_1kmdn_123";
10939
+ const expanded = "_expanded_1kmdn_134";
10940
+ const collapsed = "_collapsed_1kmdn_137";
10941
+ const collapsedContent = "_collapsedContent_1kmdn_149";
10942
+ const settingsView = "_settingsView_1kmdn_150";
10943
+ const style0$l = {
10944
+ component: component$2,
10945
+ expanded,
10946
+ collapsed,
10947
+ collapsedContent,
10948
+ settingsView
10949
+ };
10950
+ const cssModules$l = {
10951
+ "$style": style0$l
10952
+ };
10953
+ const ExperimentalInPlaceNodeSettings = /* @__PURE__ */ _export_sfc$1(_sfc_main$r, [["__cssModules", cssModules$l]]);
10781
10954
  const _hoisted_1$4 = ["data-test-id"];
10782
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
10955
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
10783
10956
  __name: "CanvasNodeDefault",
10784
10957
  emits: ["open:contextmenu", "activate"],
10785
10958
  setup(__props, { emit: __emit }) {
@@ -10811,7 +10984,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
10811
10984
  connections: connections2
10812
10985
  });
10813
10986
  const renderOptions = computed(() => render2.value.options);
10814
- const nodeSettingsZoom = useNodeSettingsInCanvas();
10987
+ const experimentalNdvStore = useExperimentalNdvStore();
10815
10988
  const classes = computed(() => {
10816
10989
  return {
10817
10990
  [$style.node]: true,
@@ -10825,8 +10998,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
10825
10998
  [$style.configurable]: renderOptions.value.configurable,
10826
10999
  [$style.configuration]: renderOptions.value.configuration,
10827
11000
  [$style.trigger]: renderOptions.value.trigger,
10828
- [$style.warning]: renderOptions.value.dirtiness !== void 0,
10829
- [$style.settingsView]: nodeSettingsZoom.value !== void 0
11001
+ [$style.warning]: renderOptions.value.dirtiness !== void 0
10830
11002
  };
10831
11003
  });
10832
11004
  const iconSize = computed(() => renderOptions.value.configuration ? 30 : 40);
@@ -10842,8 +11014,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
10842
11014
  const styles = computed(() => ({
10843
11015
  "--canvas-node--width": `${nodeSize.value.width}px`,
10844
11016
  "--canvas-node--height": `${nodeSize.value.height}px`,
10845
- "--node-icon-size": `${iconSize.value}px`,
10846
- ...nodeSettingsZoom.value === void 0 ? {} : { "--zoom": nodeSettingsZoom.value }
11017
+ "--node-icon-size": `${iconSize.value}px`
10847
11018
  }));
10848
11019
  const dataTestId = computed(() => {
10849
11020
  let type = "default";
@@ -10882,80 +11053,79 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
10882
11053
  }
10883
11054
  return (_ctx, _cache) => {
10884
11055
  const _component_CanvasNodeTooltip = __unplugin_components_0$3;
10885
- const _component_NodeIcon = _sfc_main$P;
11056
+ const _component_NodeIcon = _sfc_main$T;
10886
11057
  const _component_CanvasNodeDisabledStrikeThrough = __unplugin_components_2;
10887
11058
  const _component_CanvasNodeStatusIcons = __unplugin_components_3;
10888
- return openBlock(), createElementBlock("div", {
11059
+ return unref(experimentalNdvStore).isActive(unref(viewport).zoom) ? (openBlock(), createBlock(ExperimentalInPlaceNodeSettings, {
11060
+ key: 0,
11061
+ "node-id": unref(id2),
11062
+ class: normalizeClass(classes.value),
11063
+ style: normalizeStyle(styles.value)
11064
+ }, null, 8, ["node-id", "class", "style"])) : (openBlock(), createElementBlock("div", {
11065
+ key: 1,
10889
11066
  class: normalizeClass(classes.value),
10890
11067
  style: normalizeStyle(styles.value),
10891
11068
  "data-test-id": dataTestId.value,
10892
11069
  onContextmenu: openContextMenu,
10893
11070
  onDblclick: withModifiers(onActivate, ["stop"])
10894
11071
  }, [
10895
- unref(nodeSettingsZoom) !== void 0 ? (openBlock(), createBlock(_sfc_main$q, {
11072
+ renderOptions.value.tooltip ? (openBlock(), createBlock(_component_CanvasNodeTooltip, {
10896
11073
  key: 0,
10897
- "node-id": unref(id2)
10898
- }, null, 8, ["node-id"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
10899
- renderOptions.value.tooltip ? (openBlock(), createBlock(_component_CanvasNodeTooltip, {
11074
+ visible: showTooltip.value
11075
+ }, null, 8, ["visible"])) : createCommentVNode("", true),
11076
+ createVNode(_component_NodeIcon, {
11077
+ "icon-source": iconSource.value,
11078
+ size: iconSize.value,
11079
+ shrink: false,
11080
+ disabled: unref(isDisabled),
11081
+ class: normalizeClass(unref($style).icon)
11082
+ }, null, 8, ["icon-source", "size", "disabled", "class"]),
11083
+ isStrikethroughVisible.value ? (openBlock(), createBlock(_component_CanvasNodeDisabledStrikeThrough, { key: 1 })) : createCommentVNode("", true),
11084
+ createBaseVNode("div", {
11085
+ class: normalizeClass(unref($style).description)
11086
+ }, [
11087
+ unref(label2) ? (openBlock(), createElementBlock("div", {
10900
11088
  key: 0,
10901
- visible: showTooltip.value
10902
- }, null, 8, ["visible"])) : createCommentVNode("", true),
10903
- createVNode(_component_NodeIcon, {
10904
- "icon-source": iconSource.value,
10905
- size: iconSize.value,
10906
- shrink: false,
10907
- disabled: unref(isDisabled),
10908
- class: normalizeClass(unref($style).icon)
10909
- }, null, 8, ["icon-source", "size", "disabled", "class"]),
10910
- isStrikethroughVisible.value ? (openBlock(), createBlock(_component_CanvasNodeDisabledStrikeThrough, { key: 1 })) : createCommentVNode("", true),
10911
- createBaseVNode("div", {
10912
- class: normalizeClass(unref($style).description)
10913
- }, [
10914
- unref(label2) ? (openBlock(), createElementBlock("div", {
10915
- key: 0,
10916
- class: normalizeClass(unref($style).label)
10917
- }, toDisplayString(unref(label2)), 3)) : createCommentVNode("", true),
10918
- unref(isDisabled) ? (openBlock(), createElementBlock("div", {
10919
- key: 1,
10920
- class: normalizeClass(unref($style).disabledLabel)
10921
- }, " (" + toDisplayString(unref(i18n).baseText("node.disabled")) + ") ", 3)) : createCommentVNode("", true),
10922
- unref(subtitle2) ? (openBlock(), createElementBlock("div", {
10923
- key: 2,
10924
- class: normalizeClass(unref($style).subtitle)
10925
- }, toDisplayString(unref(subtitle2)), 3)) : createCommentVNode("", true)
10926
- ], 2),
10927
- !unref(isDisabled) ? (openBlock(), createBlock(_component_CanvasNodeStatusIcons, {
11089
+ class: normalizeClass(unref($style).label)
11090
+ }, toDisplayString(unref(label2)), 3)) : createCommentVNode("", true),
11091
+ unref(isDisabled) ? (openBlock(), createElementBlock("div", {
11092
+ key: 1,
11093
+ class: normalizeClass(unref($style).disabledLabel)
11094
+ }, " (" + toDisplayString(unref(i18n).baseText("node.disabled")) + ") ", 3)) : createCommentVNode("", true),
11095
+ unref(subtitle2) ? (openBlock(), createElementBlock("div", {
10928
11096
  key: 2,
10929
- class: normalizeClass(unref($style).statusIcons)
10930
- }, null, 8, ["class"])) : createCommentVNode("", true)
10931
- ], 64))
10932
- ], 46, _hoisted_1$4);
11097
+ class: normalizeClass(unref($style).subtitle)
11098
+ }, toDisplayString(unref(subtitle2)), 3)) : createCommentVNode("", true)
11099
+ ], 2),
11100
+ !unref(isDisabled) ? (openBlock(), createBlock(_component_CanvasNodeStatusIcons, {
11101
+ key: 2,
11102
+ class: normalizeClass(unref($style).statusIcons)
11103
+ }, null, 8, ["class"])) : createCommentVNode("", true)
11104
+ ], 46, _hoisted_1$4));
10933
11105
  };
10934
11106
  }
10935
11107
  });
10936
- const node = "_node_1b2gp_123";
10937
- const trigger$1 = "_trigger_1b2gp_145";
10938
- const settingsView = "_settingsView_1b2gp_148";
10939
- const configuration = "_configuration_1b2gp_160";
10940
- const statusIcons = "_statusIcons_1b2gp_165";
10941
- const configurable = "_configurable_1b2gp_168";
10942
- const icon = "_icon_1b2gp_168";
10943
- const description = "_description_1b2gp_171";
10944
- const label$5 = "_label_1b2gp_184";
10945
- const subtitle = "_subtitle_1b2gp_187";
10946
- const running = "_running_1b2gp_193";
10947
- const selected$1 = "_selected_1b2gp_200";
10948
- const success$1 = "_success_1b2gp_203";
10949
- const warning = "_warning_1b2gp_206";
10950
- const error = "_error_1b2gp_209";
10951
- const pinned = "_pinned_1b2gp_212";
10952
- const disabled$1 = "_disabled_1b2gp_215";
10953
- const waiting = "_waiting_1b2gp_222";
10954
- const disabledLabel = "_disabledLabel_1b2gp_238";
10955
- const style0$j = {
11108
+ const node = "_node_1gj9w_123";
11109
+ const trigger$1 = "_trigger_1gj9w_145";
11110
+ const configuration = "_configuration_1gj9w_148";
11111
+ const statusIcons = "_statusIcons_1gj9w_153";
11112
+ const configurable = "_configurable_1gj9w_156";
11113
+ const icon = "_icon_1gj9w_156";
11114
+ const description = "_description_1gj9w_159";
11115
+ const label$5 = "_label_1gj9w_172";
11116
+ const subtitle = "_subtitle_1gj9w_175";
11117
+ const running = "_running_1gj9w_181";
11118
+ const selected$1 = "_selected_1gj9w_188";
11119
+ const success$1 = "_success_1gj9w_191";
11120
+ const warning = "_warning_1gj9w_197";
11121
+ const error = "_error_1gj9w_200";
11122
+ const pinned = "_pinned_1gj9w_203";
11123
+ const disabled$1 = "_disabled_1gj9w_209";
11124
+ const waiting = "_waiting_1gj9w_222";
11125
+ const disabledLabel = "_disabledLabel_1gj9w_241";
11126
+ const style0$k = {
10956
11127
  node,
10957
11128
  trigger: trigger$1,
10958
- settingsView,
10959
11129
  configuration,
10960
11130
  statusIcons,
10961
11131
  configurable,
@@ -10973,10 +11143,10 @@ const style0$j = {
10973
11143
  waiting,
10974
11144
  disabledLabel
10975
11145
  };
10976
- const cssModules$j = {
10977
- "$style": style0$j
11146
+ const cssModules$k = {
11147
+ "$style": style0$k
10978
11148
  };
10979
- const CanvasNodeDefault = /* @__PURE__ */ _export_sfc$1(_sfc_main$p, [["__cssModules", cssModules$j]]);
11149
+ const CanvasNodeDefault = /* @__PURE__ */ _export_sfc$1(_sfc_main$q, [["__cssModules", cssModules$k]]);
10980
11150
  var xhtml = "http://www.w3.org/1999/xhtml";
10981
11151
  const namespaces = {
10982
11152
  svg: "http://www.w3.org/2000/svg",
@@ -12256,7 +12426,7 @@ const __default__ = {
12256
12426
  compatConfig: { MODE: 3 },
12257
12427
  inheritAttrs: false
12258
12428
  };
12259
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
12429
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
12260
12430
  ...__default__,
12261
12431
  props: {
12262
12432
  nodeId: {},
@@ -12369,7 +12539,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
12369
12539
  };
12370
12540
  }
12371
12541
  });
12372
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
12542
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
12373
12543
  ...{
12374
12544
  inheritAttrs: false
12375
12545
  },
@@ -12424,9 +12594,9 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
12424
12594
  eventBus.value?.off("update:node:activated", onActivate);
12425
12595
  });
12426
12596
  return (_ctx, _cache) => {
12427
- const _component_N8nSticky = resolveComponent("N8nSticky");
12597
+ const _component_N8nSticky = N8nSticky;
12428
12598
  return openBlock(), createElementBlock(Fragment, null, [
12429
- createVNode(unref(_sfc_main$o), {
12599
+ createVNode(unref(_sfc_main$p), {
12430
12600
  "min-height": 80,
12431
12601
  "min-width": 150,
12432
12602
  height: renderOptions.value.height,
@@ -12455,16 +12625,16 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
12455
12625
  });
12456
12626
  const sticky = "_sticky_1jyj2_123";
12457
12627
  const selected = "_selected_1jyj2_130";
12458
- const style0$i = {
12628
+ const style0$j = {
12459
12629
  sticky,
12460
12630
  selected
12461
12631
  };
12462
- const cssModules$i = {
12463
- "$style": style0$i
12632
+ const cssModules$j = {
12633
+ "$style": style0$j
12464
12634
  };
12465
- const CanvasNodeStickyNote = /* @__PURE__ */ _export_sfc$1(_sfc_main$n, [["__cssModules", cssModules$i]]);
12635
+ const CanvasNodeStickyNote = /* @__PURE__ */ _export_sfc$1(_sfc_main$o, [["__cssModules", cssModules$j]]);
12466
12636
  const _hoisted_1$3 = ["textContent"];
12467
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
12637
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
12468
12638
  __name: "CanvasNodeAddNodes",
12469
12639
  setup(__props) {
12470
12640
  const nodeCreatorStore = useNodeCreatorStore();
@@ -12491,7 +12661,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
12491
12661
  }
12492
12662
  return (_ctx, _cache) => {
12493
12663
  const _component_FontAwesomeIcon = resolveComponent("FontAwesomeIcon");
12494
- const _component_N8nTooltip = resolveComponent("N8nTooltip");
12664
+ const _component_N8nTooltip = N8nTooltip;
12495
12665
  return openBlock(), createElementBlock("div", {
12496
12666
  ref: "container",
12497
12667
  class: normalizeClass(_ctx.$style.addNodes),
@@ -12532,16 +12702,16 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
12532
12702
  const addNodes = "_addNodes_1qfrq_123";
12533
12703
  const button$1 = "_button_1qfrq_131";
12534
12704
  const label$4 = "_label_1qfrq_152";
12535
- const style0$h = {
12705
+ const style0$i = {
12536
12706
  addNodes,
12537
12707
  button: button$1,
12538
12708
  label: label$4
12539
12709
  };
12540
- const cssModules$h = {
12541
- "$style": style0$h
12710
+ const cssModules$i = {
12711
+ "$style": style0$i
12542
12712
  };
12543
- const CanvasNodeAddNodes = /* @__PURE__ */ _export_sfc$1(_sfc_main$m, [["__cssModules", cssModules$h]]);
12544
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
12713
+ const CanvasNodeAddNodes = /* @__PURE__ */ _export_sfc$1(_sfc_main$n, [["__cssModules", cssModules$i]]);
12714
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
12545
12715
  __name: "CanvasNodeAIPrompt",
12546
12716
  emits: ["delete"],
12547
12717
  setup(__props, { emit: __emit }) {
@@ -12560,8 +12730,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
12560
12730
  isPromptVisible.value = false;
12561
12731
  }
12562
12732
  return (_ctx, _cache) => {
12563
- const _component_n8n_input = resolveComponent("n8n-input");
12564
- const _component_n8n_button = resolveComponent("n8n-button");
12733
+ const _component_n8n_input = N8nInput;
12734
+ const _component_n8n_button = N8nButton;
12565
12735
  return isPromptVisible.value ? (openBlock(), createElementBlock("div", {
12566
12736
  key: 0,
12567
12737
  class: normalizeClass(_ctx.$style.container),
@@ -12614,7 +12784,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
12614
12784
  };
12615
12785
  }
12616
12786
  });
12617
- const container$1 = "_container_145fr_123";
12787
+ const container$2 = "_container_145fr_123";
12618
12788
  const promptContainer = "_promptContainer_145fr_128";
12619
12789
  const focused = "_focused_145fr_142";
12620
12790
  const form = "_form_145fr_146";
@@ -12622,8 +12792,8 @@ const form_textarea = "_form_textarea_145fr_153";
12622
12792
  const form_footer = "_form_footer_145fr_170";
12623
12793
  const or = "_or_145fr_176";
12624
12794
  const or_text = "_or_text_145fr_185";
12625
- const style0$g = {
12626
- container: container$1,
12795
+ const style0$h = {
12796
+ container: container$2,
12627
12797
  promptContainer,
12628
12798
  focused,
12629
12799
  form,
@@ -12632,11 +12802,11 @@ const style0$g = {
12632
12802
  or,
12633
12803
  or_text
12634
12804
  };
12635
- const cssModules$g = {
12636
- "$style": style0$g
12805
+ const cssModules$h = {
12806
+ "$style": style0$h
12637
12807
  };
12638
- const CanvasNodeAIPrompt = /* @__PURE__ */ _export_sfc$1(_sfc_main$l, [["__cssModules", cssModules$g]]);
12639
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
12808
+ const CanvasNodeAIPrompt = /* @__PURE__ */ _export_sfc$1(_sfc_main$m, [["__cssModules", cssModules$h]]);
12809
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
12640
12810
  __name: "CanvasNodeRenderer",
12641
12811
  setup(__props) {
12642
12812
  const node2 = inject(CanvasNodeKey);
@@ -12665,7 +12835,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
12665
12835
  };
12666
12836
  }
12667
12837
  });
12668
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
12838
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
12669
12839
  __name: "CanvasHandleRectangle",
12670
12840
  props: {
12671
12841
  handleClasses: { default: void 0 }
@@ -12679,13 +12849,13 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
12679
12849
  }
12680
12850
  });
12681
12851
  const rectangle = "_rectangle_rd2w6_123";
12682
- const style0$f = {
12852
+ const style0$g = {
12683
12853
  rectangle
12684
12854
  };
12685
- const cssModules$f = {
12686
- "$style": style0$f
12855
+ const cssModules$g = {
12856
+ "$style": style0$g
12687
12857
  };
12688
- const __unplugin_components_0$2 = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["__cssModules", cssModules$f]]);
12858
+ const __unplugin_components_0$2 = /* @__PURE__ */ _export_sfc$1(_sfc_main$k, [["__cssModules", cssModules$g]]);
12689
12859
  function useCanvasNodeHandle() {
12690
12860
  const handle2 = inject(CanvasNodeHandleKey);
12691
12861
  const label2 = computed(() => handle2?.label.value ?? "");
@@ -12712,7 +12882,7 @@ function useCanvasNodeHandle() {
12712
12882
  };
12713
12883
  }
12714
12884
  const handleClasses$3 = "target";
12715
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
12885
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
12716
12886
  __name: "CanvasHandleMainInput",
12717
12887
  setup(__props) {
12718
12888
  const $style = useCssModule();
@@ -12738,19 +12908,19 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
12738
12908
  const handle$4 = "_handle_1v80z_123";
12739
12909
  const label$3 = "_label_1v80z_130";
12740
12910
  const required$3 = "_required_1v80z_143";
12741
- const style0$e = {
12911
+ const style0$f = {
12742
12912
  handle: handle$4,
12743
12913
  label: label$3,
12744
12914
  required: required$3
12745
12915
  };
12746
- const cssModules$e = {
12747
- "$style": style0$e
12916
+ const cssModules$f = {
12917
+ "$style": style0$f
12748
12918
  };
12749
- const CanvasHandleMainInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__cssModules", cssModules$e]]);
12919
+ const CanvasHandleMainInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["__cssModules", cssModules$f]]);
12750
12920
  const _hoisted_1$2 = ["viewBox"];
12751
12921
  const _hoisted_2$1 = ["x1", "y1", "x2", "y2"];
12752
12922
  const _hoisted_3 = ["transform"];
12753
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
12923
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
12754
12924
  __name: "CanvasHandlePlus",
12755
12925
  props: {
12756
12926
  position: { default: "right" },
@@ -12871,23 +13041,23 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
12871
13041
  };
12872
13042
  }
12873
13043
  });
12874
- const wrapper$1 = "_wrapper_hyidj_123";
13044
+ const wrapper$2 = "_wrapper_hyidj_123";
12875
13045
  const secondary = "_secondary_hyidj_126";
12876
13046
  const line = "_line_hyidj_126";
12877
13047
  const plus$1 = "_plus_hyidj_129";
12878
13048
  const success = "_success_hyidj_135";
12879
- const style0$d = {
12880
- wrapper: wrapper$1,
13049
+ const style0$e = {
13050
+ wrapper: wrapper$2,
12881
13051
  secondary,
12882
13052
  line,
12883
13053
  plus: plus$1,
12884
13054
  success
12885
13055
  };
12886
- const cssModules$d = {
12887
- "$style": style0$d
13056
+ const cssModules$e = {
13057
+ "$style": style0$e
12888
13058
  };
12889
- const CanvasHandlePlus = /* @__PURE__ */ _export_sfc$1(_sfc_main$h, [["__cssModules", cssModules$d]]);
12890
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
13059
+ const CanvasHandlePlus = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__cssModules", cssModules$e]]);
13060
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
12891
13061
  __name: "CanvasHandleDot",
12892
13062
  props: {
12893
13063
  handleClasses: { default: void 0 }
@@ -12901,15 +13071,15 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
12901
13071
  }
12902
13072
  });
12903
13073
  const dot = "_dot_gdjps_123";
12904
- const style0$c = {
13074
+ const style0$d = {
12905
13075
  dot
12906
13076
  };
12907
- const cssModules$c = {
12908
- "$style": style0$c
13077
+ const cssModules$d = {
13078
+ "$style": style0$d
12909
13079
  };
12910
- const __unplugin_components_0$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$g, [["__cssModules", cssModules$c]]);
13080
+ const __unplugin_components_0$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$h, [["__cssModules", cssModules$d]]);
12911
13081
  const handleClasses$2 = "source";
12912
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
13082
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
12913
13083
  __name: "CanvasHandleMainOutput",
12914
13084
  emits: ["add"],
12915
13085
  setup(__props, { emit: __emit }) {
@@ -13001,7 +13171,7 @@ const label$2 = "_label_1u904_129";
13001
13171
  const required$2 = "_required_1u904_143";
13002
13172
  const outputLabel = "_outputLabel_1u904_148";
13003
13173
  const runDataLabel = "_runDataLabel_1u904_156";
13004
- const style0$b = {
13174
+ const style0$c = {
13005
13175
  handle: handle$3,
13006
13176
  connected,
13007
13177
  label: label$2,
@@ -13009,11 +13179,11 @@ const style0$b = {
13009
13179
  outputLabel,
13010
13180
  runDataLabel
13011
13181
  };
13012
- const cssModules$b = {
13013
- "$style": style0$b
13182
+ const cssModules$c = {
13183
+ "$style": style0$c
13014
13184
  };
13015
- const CanvasHandleMainOutput = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["__cssModules", cssModules$b]]);
13016
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
13185
+ const CanvasHandleMainOutput = /* @__PURE__ */ _export_sfc$1(_sfc_main$g, [["__cssModules", cssModules$c]]);
13186
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
13017
13187
  __name: "CanvasHandleDiamond",
13018
13188
  props: {
13019
13189
  handleClasses: { default: void 0 }
@@ -13027,15 +13197,15 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
13027
13197
  }
13028
13198
  });
13029
13199
  const diamond = "_diamond_kuwdo_123";
13030
- const style0$a = {
13200
+ const style0$b = {
13031
13201
  diamond
13032
13202
  };
13033
- const cssModules$a = {
13034
- "$style": style0$a
13203
+ const cssModules$b = {
13204
+ "$style": style0$b
13035
13205
  };
13036
- const __unplugin_components_0 = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["__cssModules", cssModules$a]]);
13206
+ const __unplugin_components_0 = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["__cssModules", cssModules$b]]);
13037
13207
  const handleClasses$1 = "target";
13038
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
13208
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
13039
13209
  __name: "CanvasHandleNonMainInput",
13040
13210
  emits: ["add"],
13041
13211
  setup(__props, { emit: __emit }) {
@@ -13095,17 +13265,17 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
13095
13265
  const handle$2 = "_handle_3v1rt_123";
13096
13266
  const label$1 = "_label_3v1rt_130";
13097
13267
  const required$1 = "_required_3v1rt_143";
13098
- const style0$9 = {
13268
+ const style0$a = {
13099
13269
  handle: handle$2,
13100
13270
  label: label$1,
13101
13271
  required: required$1
13102
13272
  };
13103
- const cssModules$9 = {
13104
- "$style": style0$9
13273
+ const cssModules$a = {
13274
+ "$style": style0$a
13105
13275
  };
13106
- const CanvasHandleNonMainInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["__cssModules", cssModules$9]]);
13276
+ const CanvasHandleNonMainInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["__cssModules", cssModules$a]]);
13107
13277
  const handleClasses = "source";
13108
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
13278
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
13109
13279
  __name: "CanvasHandleNonMainOutput",
13110
13280
  setup(__props) {
13111
13281
  const $style = useCssModule();
@@ -13132,17 +13302,17 @@ const handle$1 = "_handle_1x1ua_123";
13132
13302
  const label = "_label_1x1ua_130";
13133
13303
  const required = "_required_1x1ua_142";
13134
13304
  const plus = "_plus_1x1ua_147";
13135
- const style0$8 = {
13305
+ const style0$9 = {
13136
13306
  handle: handle$1,
13137
13307
  label,
13138
13308
  required,
13139
13309
  plus
13140
13310
  };
13141
- const cssModules$8 = {
13142
- "$style": style0$8
13311
+ const cssModules$9 = {
13312
+ "$style": style0$9
13143
13313
  };
13144
- const CanvasHandleNonMainOutput = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["__cssModules", cssModules$8]]);
13145
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
13314
+ const CanvasHandleNonMainOutput = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["__cssModules", cssModules$9]]);
13315
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
13146
13316
  ...{
13147
13317
  inheritAttrs: false
13148
13318
  },
@@ -13263,7 +13433,7 @@ const top = "_top_5ceyz_140";
13263
13433
  const right = "_right_5ceyz_144";
13264
13434
  const left = "_left_5ceyz_148";
13265
13435
  const bottom = "_bottom_5ceyz_152";
13266
- const style0$7 = {
13436
+ const style0$8 = {
13267
13437
  handle,
13268
13438
  inputs,
13269
13439
  main,
@@ -13273,11 +13443,11 @@ const style0$7 = {
13273
13443
  left,
13274
13444
  bottom
13275
13445
  };
13276
- const cssModules$7 = {
13277
- "$style": style0$7
13446
+ const cssModules$8 = {
13447
+ "$style": style0$8
13278
13448
  };
13279
- const CanvasHandleRenderer = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__cssModules", cssModules$7]]);
13280
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
13449
+ const CanvasHandleRenderer = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["__cssModules", cssModules$8]]);
13450
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
13281
13451
  __name: "CanvasNodeTrigger",
13282
13452
  props: {
13283
13453
  name: {},
@@ -13371,22 +13541,22 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
13371
13541
  };
13372
13542
  }
13373
13543
  });
13374
- const container = "_container_ze6b9_123";
13544
+ const container$1 = "_container_ze6b9_123";
13375
13545
  const interactive = "_interactive_ze6b9_144";
13376
13546
  const hovered = "_hovered_ze6b9_144";
13377
13547
  const bolt = "_bolt_ze6b9_150";
13378
- const style0$6 = {
13379
- container,
13548
+ const style0$7 = {
13549
+ container: container$1,
13380
13550
  interactive,
13381
13551
  hovered,
13382
13552
  bolt
13383
13553
  };
13384
- const cssModules$6 = {
13385
- "$style": style0$6
13554
+ const cssModules$7 = {
13555
+ "$style": style0$7
13386
13556
  };
13387
- const CanvasNodeTrigger = /* @__PURE__ */ _export_sfc$1(_sfc_main$a, [["__cssModules", cssModules$6]]);
13557
+ const CanvasNodeTrigger = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__cssModules", cssModules$7]]);
13388
13558
  const _hoisted_1$1 = ["data-test-id", "data-node-name", "data-node-type"];
13389
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
13559
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
13390
13560
  __name: "CanvasNode",
13391
13561
  props: {
13392
13562
  id: {},
@@ -13648,7 +13818,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
13648
13818
  onUpdate,
13649
13819
  "onOpen:contextmenu": onOpenContextMenuFromToolbar
13650
13820
  }, null, 8, ["read-only", "class"])) : createCommentVNode("", true),
13651
- createVNode(_sfc_main$k, {
13821
+ createVNode(_sfc_main$l, {
13652
13822
  onActivate,
13653
13823
  onDeactivate,
13654
13824
  onMove,
@@ -13673,16 +13843,16 @@ const canvasNode = "_canvasNode_1ftik_123";
13673
13843
  const trigger = "_trigger_1ftik_123";
13674
13844
  const canvasNodeToolbar = "_canvasNodeToolbar_1ftik_123";
13675
13845
  const showToolbar = "_showToolbar_1ftik_123";
13676
- const style0$5 = {
13846
+ const style0$6 = {
13677
13847
  canvasNode,
13678
13848
  trigger,
13679
13849
  canvasNodeToolbar,
13680
13850
  showToolbar
13681
13851
  };
13682
- const cssModules$5 = {
13683
- "$style": style0$5
13852
+ const cssModules$6 = {
13853
+ "$style": style0$6
13684
13854
  };
13685
- const Node = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__cssModules", cssModules$5]]);
13855
+ const Node = /* @__PURE__ */ _export_sfc$1(_sfc_main$a, [["__cssModules", cssModules$6]]);
13686
13856
  function useViewportAutoAdjust(viewportRef, viewport, setViewport) {
13687
13857
  const canvasRect = ref();
13688
13858
  watch(
@@ -13722,7 +13892,7 @@ function useViewportAutoAdjust(viewportRef, viewport, setViewport) {
13722
13892
  const renameKeyCode = " ";
13723
13893
  const defaultZoom = 1;
13724
13894
  const minimapVisibilityDelay = 1e3;
13725
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
13895
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
13726
13896
  __name: "Canvas",
13727
13897
  props: {
13728
13898
  id: { default: "canvas" },
@@ -13735,7 +13905,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
13735
13905
  keyBindings: { type: Boolean, default: true },
13736
13906
  loading: { type: Boolean, default: false }
13737
13907
  },
13738
- emits: ["update:modelValue", "update:node:position", "update:nodes:position", "update:node:activated", "update:node:deactivated", "update:node:enabled", "update:node:selected", "update:node:name", "update:node:parameters", "update:node:inputs", "update:node:outputs", "update:logs-open", "update:logs:input-open", "update:logs:output-open", "update:has-range-selection", "click:node", "click:node:add", "run:node", "delete:node", "create:node", "create:sticky", "delete:nodes", "update:nodes:enabled", "copy:nodes", "duplicate:nodes", "update:nodes:pin", "cut:nodes", "delete:connection", "create:connection:start", "create:connection", "create:connection:end", "create:connection:cancelled", "click:connection:add", "click:pane", "run:workflow", "save:workflow", "create:workflow", "drag-and-drop", "tidy-up", "viewport:change", "selection:end", "open:sub-workflow", "start-chat", "extract-workflow"],
13908
+ emits: ["update:modelValue", "update:node:position", "update:nodes:position", "update:node:activated", "update:node:deactivated", "update:node:enabled", "update:node:selected", "update:node:name", "update:node:parameters", "update:node:inputs", "update:node:outputs", "update:logs-open", "update:logs:input-open", "update:logs:output-open", "update:has-range-selection", "click:node", "click:node:add", "run:node", "delete:node", "create:node", "create:sticky", "delete:nodes", "update:nodes:enabled", "copy:nodes", "duplicate:nodes", "update:nodes:pin", "cut:nodes", "delete:connection", "create:connection:start", "create:connection", "create:connection:end", "create:connection:cancelled", "click:connection:add", "click:pane", "run:workflow", "save:workflow", "create:workflow", "drag-and-drop", "tidy-up", "toggle:focus-panel", "viewport:change", "selection:end", "open:sub-workflow", "start-chat", "extract-workflow"],
13739
13909
  setup(__props, { emit: __emit }) {
13740
13910
  const $style = useCssModule();
13741
13911
  const emit = __emit;
@@ -13777,6 +13947,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
13777
13947
  getUpstreamNodes
13778
13948
  } = useCanvasTraversal(vueFlow);
13779
13949
  const { layout } = useCanvasLayout({ id: props.id });
13950
+ const experimentalNdvStore = useExperimentalNdvStore();
13780
13951
  const isPaneReady = ref(false);
13781
13952
  const classes = computed(() => ({
13782
13953
  [$style.canvas]: true,
@@ -13886,6 +14057,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
13886
14057
  f2: emitWithLastSelectedNode((id2) => emit("update:node:name", id2)),
13887
14058
  tab: () => emit("create:node", "tab"),
13888
14059
  shift_s: () => emit("create:sticky"),
14060
+ shift_f: () => emit("toggle:focus-panel"),
13889
14061
  ctrl_alt_n: () => emit("create:workflow"),
13890
14062
  ctrl_enter: () => emit("run:workflow"),
13891
14063
  ctrl_s: () => emit("save:workflow"),
@@ -14258,7 +14430,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14258
14430
  viewport
14259
14431
  });
14260
14432
  return (_ctx, _cache) => {
14261
- const _component_CanvasConnectionLine = __unplugin_components_0$5;
14433
+ const _component_CanvasConnectionLine = __unplugin_components_0$4;
14262
14434
  const _component_CanvasControlButtons = __unplugin_components_1;
14263
14435
  return openBlock(), createBlock(unref(_sfc_main$1$4), {
14264
14436
  id: _ctx.id,
@@ -14273,7 +14445,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14273
14445
  "snap-to-grid": "",
14274
14446
  "snap-grid": [unref(GRID_SIZE), unref(GRID_SIZE)],
14275
14447
  "min-zoom": 0,
14276
- "max-zoom": 4,
14448
+ "max-zoom": unref(experimentalNdvStore).isEnabled ? unref(experimentalNdvStore).maxCanvasZoom : 4,
14277
14449
  "selection-key-code": selectionKeyCode.value,
14278
14450
  "zoom-activation-key-code": panningKeyCode.value,
14279
14451
  "pan-activation-key-code": panningKeyCode.value,
@@ -14341,14 +14513,14 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14341
14513
  createVNode(_component_CanvasConnectionLine, normalizeProps(guardReactiveProps(connectionLineProps)), null, 16)
14342
14514
  ]),
14343
14515
  default: withCtx(() => [
14344
- createVNode(_sfc_main$E, { id: arrowHeadMarkerId.value }, null, 8, ["id"]),
14345
- createVNode(_sfc_main$F, {
14516
+ createVNode(_sfc_main$G, { id: arrowHeadMarkerId.value }, null, 8, ["id"]),
14517
+ createVNode(_sfc_main$H, {
14346
14518
  viewport: unref(viewport),
14347
14519
  striped: _ctx.readOnly
14348
14520
  }, null, 8, ["viewport", "striped"]),
14349
14521
  createVNode(Transition$1, { name: "minimap" }, {
14350
14522
  default: withCtx(() => [
14351
- withDirectives(createVNode(unref(_sfc_main$I), {
14523
+ withDirectives(createVNode(unref(_sfc_main$K), {
14352
14524
  "data-test-id": "canvas-minimap",
14353
14525
  "aria-label": "n8n Minimap",
14354
14526
  height: 120,
@@ -14387,20 +14559,20 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14387
14559
  }))
14388
14560
  ]),
14389
14561
  _: 3
14390
- }, 8, ["id", "nodes", "edges", "class", "connection-line-options", "pan-on-drag", "snap-grid", "selection-key-code", "zoom-activation-key-code", "pan-activation-key-code"]);
14562
+ }, 8, ["id", "nodes", "edges", "class", "connection-line-options", "pan-on-drag", "snap-grid", "max-zoom", "selection-key-code", "zoom-activation-key-code", "pan-activation-key-code"]);
14391
14563
  };
14392
14564
  }
14393
14565
  });
14394
14566
  const canvas$1 = "_canvas_1fjji_123";
14395
14567
  const ready = "_ready_1fjji_129";
14396
- const style0$4 = {
14568
+ const style0$5 = {
14397
14569
  canvas: canvas$1,
14398
14570
  ready
14399
14571
  };
14400
- const cssModules$4 = {
14401
- "$style": style0$4
14572
+ const cssModules$5 = {
14573
+ "$style": style0$5
14402
14574
  };
14403
- const Canvas = /* @__PURE__ */ _export_sfc$1(_sfc_main$8, [["__cssModules", cssModules$4], ["__scopeId", "data-v-f87bc480"]]);
14575
+ const Canvas = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__cssModules", cssModules$5], ["__scopeId", "data-v-49d79266"]]);
14404
14576
  function useCanvasMapping({
14405
14577
  nodes,
14406
14578
  connections: connections2,
@@ -14918,7 +15090,7 @@ function useCanvasMapping({
14918
15090
  nodes: mappedNodes
14919
15091
  };
14920
15092
  }
14921
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
15093
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14922
15094
  __name: "ExperimentalNodeDetailsDrawer",
14923
15095
  props: {
14924
15096
  selectedNodes: {}
@@ -14928,6 +15100,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
14928
15100
  () => __props.selectedNodes.length > 1 ? `${__props.selectedNodes.length} nodes selected` : __props.selectedNodes.length > 0 ? __props.selectedNodes[0] : void 0
14929
15101
  );
14930
15102
  const lastContent = ref();
15103
+ const { setActiveNodeName } = useNDVStore();
15104
+ function handleOpenNdv() {
15105
+ if (typeof content2.value === "object" && content2.value.data) {
15106
+ setActiveNodeName(content2.value.data.name);
15107
+ }
15108
+ }
14931
15109
  watch(
14932
15110
  content2,
14933
15111
  (newContent) => {
@@ -14938,6 +15116,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
14938
15116
  { immediate: true }
14939
15117
  );
14940
15118
  return (_ctx, _cache) => {
15119
+ const _component_N8nIconButton = _sfc_main$R;
14941
15120
  return openBlock(), createElementBlock("div", {
14942
15121
  class: normalizeClass([_ctx.$style.component, content2.value === void 0 ? _ctx.$style.closed : ""])
14943
15122
  }, [
@@ -14949,26 +15128,38 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
14949
15128
  createTextVNode(toDisplayString(lastContent.value), 1)
14950
15129
  ]),
14951
15130
  _: 1
14952
- })) : lastContent.value !== void 0 ? (openBlock(), createBlock(_sfc_main$q, {
15131
+ })) : lastContent.value !== void 0 ? (openBlock(), createBlock(_sfc_main$s, {
14953
15132
  key: lastContent.value.id,
14954
- "node-id": lastContent.value.id,
14955
- "can-open-ndv": ""
14956
- }, null, 8, ["node-id"])) : createCommentVNode("", true)
15133
+ "node-id": lastContent.value.id
15134
+ }, {
15135
+ actions: withCtx(() => [
15136
+ createVNode(_component_N8nIconButton, {
15137
+ icon: "expand",
15138
+ type: "secondary",
15139
+ text: "",
15140
+ size: "mini",
15141
+ "icon-size": "large",
15142
+ "aria-label": "Expand",
15143
+ onClick: handleOpenNdv
15144
+ })
15145
+ ]),
15146
+ _: 1
15147
+ }, 8, ["node-id"])) : createCommentVNode("", true)
14957
15148
  ], 2);
14958
15149
  };
14959
15150
  }
14960
15151
  });
14961
15152
  const component$1 = "_component_wojby_123";
14962
15153
  const closed = "_closed_wojby_138";
14963
- const style0$3 = {
15154
+ const style0$4 = {
14964
15155
  component: component$1,
14965
15156
  closed
14966
15157
  };
14967
- const cssModules$3 = {
14968
- "$style": style0$3
15158
+ const cssModules$4 = {
15159
+ "$style": style0$4
14969
15160
  };
14970
- const ExperimentalNodeDetailsDrawer = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["__cssModules", cssModules$3]]);
14971
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
15161
+ const ExperimentalNodeDetailsDrawer = /* @__PURE__ */ _export_sfc$1(_sfc_main$8, [["__cssModules", cssModules$4]]);
15162
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
14972
15163
  ...{
14973
15164
  inheritAttrs: false
14974
15165
  },
@@ -15034,16 +15225,204 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
15034
15225
  };
15035
15226
  }
15036
15227
  });
15037
- const wrapper = "_wrapper_jyurh_123";
15228
+ const wrapper$1 = "_wrapper_jyurh_123";
15038
15229
  const canvas = "_canvas_jyurh_131";
15039
- const style0$2 = {
15040
- wrapper,
15230
+ const style0$3 = {
15231
+ wrapper: wrapper$1,
15041
15232
  canvas
15042
15233
  };
15234
+ const cssModules$3 = {
15235
+ "$style": style0$3
15236
+ };
15237
+ const WorkflowCanvas = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["__cssModules", cssModules$3]]);
15238
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
15239
+ ...{ name: "FocusPanel" },
15240
+ __name: "FocusPanel",
15241
+ setup(__props) {
15242
+ const locale = useI18n();
15243
+ const focusPanelStore = useFocusPanelStore();
15244
+ const focusedNodeParameter = computed(() => focusPanelStore.focusedNodeParameters[0]);
15245
+ const focusPanelActive = computed(() => focusPanelStore.focusPanelActive);
15246
+ const expressionModeEnabled = computed(
15247
+ () => focusedNodeParameter.value && isValueExpression(focusedNodeParameter.value.parameter, focusedNodeParameter.value.value)
15248
+ );
15249
+ function optionSelected() {
15250
+ }
15251
+ function valueChanged() {
15252
+ }
15253
+ function executeFocusedNode() {
15254
+ }
15255
+ return (_ctx, _cache) => {
15256
+ const _component_n8n_icon = N8nIcon;
15257
+ const _component_n8n_button = N8nButton;
15258
+ const _component_N8nTooltip = N8nTooltip;
15259
+ const _component_ParameterOptions = __unplugin_components_3$1;
15260
+ const _component_ExpressionEditorModalInput = __unplugin_components_4;
15261
+ return focusPanelActive.value ? (openBlock(), createElementBlock("div", {
15262
+ key: 0,
15263
+ class: normalizeClass(_ctx.$style.container)
15264
+ }, [
15265
+ createBaseVNode("div", {
15266
+ class: normalizeClass(_ctx.$style.header)
15267
+ }, [
15268
+ createVNode(unref(N8nText), {
15269
+ size: "small",
15270
+ bold: true
15271
+ }, {
15272
+ default: withCtx(() => [
15273
+ createTextVNode(toDisplayString(unref(locale).baseText("nodeView.focusPanel.title")), 1)
15274
+ ]),
15275
+ _: 1
15276
+ }),
15277
+ createBaseVNode("div", {
15278
+ class: normalizeClass(_ctx.$style.closeButton),
15279
+ onClick: _cache[0] || (_cache[0] = //@ts-ignore
15280
+ (...args) => unref(focusPanelStore).closeFocusPanel && unref(focusPanelStore).closeFocusPanel(...args))
15281
+ }, [
15282
+ createVNode(_component_n8n_icon, {
15283
+ icon: "arrow-right",
15284
+ color: "text-base"
15285
+ })
15286
+ ], 2)
15287
+ ], 2),
15288
+ focusedNodeParameter.value ? (openBlock(), createElementBlock("div", {
15289
+ key: 0,
15290
+ class: normalizeClass(_ctx.$style.content)
15291
+ }, [
15292
+ createBaseVNode("div", {
15293
+ class: normalizeClass(_ctx.$style.tabHeader)
15294
+ }, [
15295
+ createBaseVNode("div", {
15296
+ class: normalizeClass(_ctx.$style.tabHeaderText)
15297
+ }, [
15298
+ createVNode(unref(N8nText), {
15299
+ color: "text-dark",
15300
+ size: "small"
15301
+ }, {
15302
+ default: withCtx(() => [
15303
+ createTextVNode(toDisplayString(focusedNodeParameter.value.parameter.displayName), 1)
15304
+ ]),
15305
+ _: 1
15306
+ }),
15307
+ createVNode(unref(N8nText), {
15308
+ color: "text-base",
15309
+ size: "xsmall"
15310
+ }, {
15311
+ default: withCtx(() => [
15312
+ createTextVNode(toDisplayString(focusedNodeParameter.value.nodeName), 1)
15313
+ ]),
15314
+ _: 1
15315
+ })
15316
+ ], 2),
15317
+ createVNode(_component_N8nTooltip, null, {
15318
+ content: withCtx(() => [
15319
+ createVNode(unref(N8nText), { size: "small" }, {
15320
+ default: withCtx(() => [
15321
+ createTextVNode(toDisplayString(unref(locale).baseText("nodeView.focusPanel.executeButtonTooltip")), 1)
15322
+ ]),
15323
+ _: 1
15324
+ })
15325
+ ]),
15326
+ default: withCtx(() => [
15327
+ createVNode(_component_n8n_button, mergeProps({ icon: "play", square: true }, {
15328
+ size: "small",
15329
+ type: "primary",
15330
+ onClick: executeFocusedNode
15331
+ }), null, 16)
15332
+ ]),
15333
+ _: 1
15334
+ })
15335
+ ], 2),
15336
+ createBaseVNode("div", {
15337
+ class: normalizeClass(_ctx.$style.parameterDetailsWrapper)
15338
+ }, [
15339
+ createBaseVNode("div", {
15340
+ class: normalizeClass(_ctx.$style.parameterOptionsWrapper)
15341
+ }, [
15342
+ _cache[2] || (_cache[2] = createBaseVNode("div", null, null, -1)),
15343
+ createVNode(_component_ParameterOptions, {
15344
+ parameter: focusedNodeParameter.value.parameter,
15345
+ value: focusedNodeParameter.value.value,
15346
+ "is-read-only": false,
15347
+ "onUpdate:modelValue": optionSelected
15348
+ }, null, 8, ["parameter", "value"])
15349
+ ], 2),
15350
+ createBaseVNode("div", {
15351
+ class: normalizeClass(_ctx.$style.editorContainer)
15352
+ }, [
15353
+ expressionModeEnabled.value ? (openBlock(), createBlock(_component_ExpressionEditorModalInput, {
15354
+ key: 0,
15355
+ "model-value": focusedNodeParameter.value.value,
15356
+ class: normalizeClass(_ctx.$style.editor),
15357
+ "is-read-only": false,
15358
+ path: focusedNodeParameter.value.parameterPath,
15359
+ "data-test-id": "expression-modal-input",
15360
+ "target-node-parameter-context": {
15361
+ nodeName: focusedNodeParameter.value.nodeName,
15362
+ parameterPath: focusedNodeParameter.value.parameterPath
15363
+ },
15364
+ onChange: valueChanged
15365
+ }, null, 8, ["model-value", "class", "path", "target-node-parameter-context"])) : (openBlock(), createBlock(unref(N8nInput), {
15366
+ key: 1,
15367
+ modelValue: focusedNodeParameter.value.value,
15368
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => focusedNodeParameter.value.value = $event),
15369
+ class: normalizeClass(_ctx.$style.editor),
15370
+ type: "textarea",
15371
+ resize: "none"
15372
+ }, null, 8, ["modelValue", "class"]))
15373
+ ], 2)
15374
+ ], 2)
15375
+ ], 2)) : (openBlock(), createElementBlock("div", {
15376
+ key: 1,
15377
+ class: normalizeClass([_ctx.$style.content, _ctx.$style.emptyContent])
15378
+ }, [
15379
+ createBaseVNode("div", {
15380
+ class: normalizeClass(_ctx.$style.emptyText)
15381
+ }, [
15382
+ createVNode(unref(N8nText), { color: "text-base" }, {
15383
+ default: withCtx(() => [
15384
+ createTextVNode(toDisplayString(unref(locale).baseText("nodeView.focusPanel.noParameters")), 1)
15385
+ ]),
15386
+ _: 1
15387
+ })
15388
+ ], 2)
15389
+ ], 2))
15390
+ ], 2)) : createCommentVNode("", true);
15391
+ };
15392
+ }
15393
+ });
15394
+ const container = "_container_1s06k_123";
15395
+ const closeButton = "_closeButton_1s06k_131";
15396
+ const header = "_header_1s06k_135";
15397
+ const content = "_content_1s06k_143";
15398
+ const emptyContent = "_emptyContent_1s06k_149";
15399
+ const emptyText = "_emptyText_1s06k_154";
15400
+ const tabHeader = "_tabHeader_1s06k_157";
15401
+ const tabHeaderText = "_tabHeaderText_1s06k_164";
15402
+ const buttonWrapper = "_buttonWrapper_1s06k_169";
15403
+ const parameterDetailsWrapper = "_parameterDetailsWrapper_1s06k_174";
15404
+ const parameterOptionsWrapper = "_parameterOptionsWrapper_1s06k_181";
15405
+ const editorContainer = "_editorContainer_1s06k_185";
15406
+ const editor = "_editor_1s06k_185";
15407
+ const style0$2 = {
15408
+ container,
15409
+ closeButton,
15410
+ header,
15411
+ content,
15412
+ emptyContent,
15413
+ emptyText,
15414
+ tabHeader,
15415
+ tabHeaderText,
15416
+ buttonWrapper,
15417
+ parameterDetailsWrapper,
15418
+ parameterOptionsWrapper,
15419
+ editorContainer,
15420
+ editor
15421
+ };
15043
15422
  const cssModules$2 = {
15044
15423
  "$style": style0$2
15045
15424
  };
15046
- const WorkflowCanvas = /* @__PURE__ */ _export_sfc$1(_sfc_main$6, [["__cssModules", cssModules$2]]);
15425
+ const FocusPanel = /* @__PURE__ */ _export_sfc$1(_sfc_main$6, [["__cssModules", cssModules$2]]);
15047
15426
  const _sfc_main$5 = /* @__PURE__ */ defineComponent({
15048
15427
  __name: "CanvasRunWorkflowButton",
15049
15428
  props: {
@@ -15078,7 +15457,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
15078
15457
  return aY === bY ? aX - bX : aY - bY;
15079
15458
  }).map((node2) => ({
15080
15459
  label: truncateBeforeLast(node2.name, 25),
15081
- disabled: !!node2.disabled,
15460
+ disabled: !!node2.disabled || props.executing,
15082
15461
  id: node2.name,
15083
15462
  checked: props.selectedTriggerNodeName === node2.name
15084
15463
  }))
@@ -15095,7 +15474,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
15095
15474
  }
15096
15475
  return (_ctx, _cache) => {
15097
15476
  const _component_I18nT = resolveComponent("I18nT");
15098
- const _component_NodeIcon = _sfc_main$P;
15477
+ const _component_NodeIcon = _sfc_main$T;
15099
15478
  return openBlock(), createElementBlock("div", {
15100
15479
  class: normalizeClass([_ctx.$style.component, isSplitButton.value ? _ctx.$style.split : ""])
15101
15480
  }, [
@@ -15152,71 +15531,78 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
15152
15531
  ]),
15153
15532
  _: 1
15154
15533
  }, 8, ["label", "disabled"]),
15155
- isSplitButton.value ? (openBlock(), createBlock(unref(N8nActionDropdown), {
15156
- key: 0,
15157
- class: normalizeClass(_ctx.$style.menu),
15158
- items: actions2.value,
15159
- disabled: _ctx.disabled,
15160
- placement: "top",
15161
- onSelect: _cache[3] || (_cache[3] = ($event) => emit("selectTriggerNode", $event))
15162
- }, {
15163
- activator: withCtx(() => [
15164
- createVNode(unref(N8nButton), {
15165
- type: "primary",
15166
- size: "large",
15167
- disabled: _ctx.disabled || _ctx.executing,
15168
- class: normalizeClass(_ctx.$style.chevron),
15169
- "aria-label": "Select trigger node",
15170
- icon: "angle-down"
15171
- }, null, 8, ["disabled", "class"])
15172
- ]),
15173
- menuItem: withCtx((item) => [
15174
- createBaseVNode("div", {
15175
- class: normalizeClass([_ctx.$style.menuItem, item.disabled ? _ctx.$style.disabled : ""])
15176
- }, [
15177
- createVNode(_component_NodeIcon, {
15178
- class: normalizeClass(_ctx.$style.menuIcon),
15179
- size: 16,
15180
- "node-type": getNodeTypeByName(item.id)
15181
- }, null, 8, ["class", "node-type"]),
15182
- createBaseVNode("span", null, [
15183
- createVNode(_component_I18nT, { keypath: "nodeView.runButtonText.from" }, {
15184
- nodeName: withCtx(() => [
15185
- createVNode(unref(N8nText), {
15186
- bold: "",
15187
- size: "small"
15188
- }, {
15189
- default: withCtx(() => [
15190
- createTextVNode(toDisplayString(item.label), 1)
15191
- ]),
15192
- _: 2
15193
- }, 1024)
15194
- ]),
15195
- _: 2
15196
- }, 1024)
15197
- ])
15198
- ], 2)
15199
- ]),
15200
- _: 1
15201
- }, 8, ["class", "items", "disabled"])) : createCommentVNode("", true)
15534
+ isSplitButton.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
15535
+ createBaseVNode("div", {
15536
+ role: "presentation",
15537
+ class: normalizeClass(_ctx.$style.divider)
15538
+ }, null, 2),
15539
+ createVNode(unref(N8nActionDropdown), {
15540
+ class: normalizeClass(_ctx.$style.menu),
15541
+ items: actions2.value,
15542
+ disabled: _ctx.disabled,
15543
+ placement: "top",
15544
+ onSelect: _cache[3] || (_cache[3] = ($event) => emit("selectTriggerNode", $event))
15545
+ }, {
15546
+ activator: withCtx(() => [
15547
+ createVNode(unref(N8nButton), {
15548
+ type: "primary",
15549
+ "icon-size": "large",
15550
+ disabled: _ctx.disabled,
15551
+ class: normalizeClass(_ctx.$style.chevron),
15552
+ "aria-label": "Select trigger node",
15553
+ icon: "angle-down"
15554
+ }, null, 8, ["disabled", "class"])
15555
+ ]),
15556
+ menuItem: withCtx((item) => [
15557
+ createBaseVNode("div", {
15558
+ class: normalizeClass([_ctx.$style.menuItem, item.disabled ? _ctx.$style.disabled : ""])
15559
+ }, [
15560
+ createVNode(_component_NodeIcon, {
15561
+ class: normalizeClass(_ctx.$style.menuIcon),
15562
+ size: 16,
15563
+ "node-type": getNodeTypeByName(item.id)
15564
+ }, null, 8, ["class", "node-type"]),
15565
+ createBaseVNode("span", null, [
15566
+ createVNode(_component_I18nT, { keypath: "nodeView.runButtonText.from" }, {
15567
+ nodeName: withCtx(() => [
15568
+ createVNode(unref(N8nText), {
15569
+ bold: "",
15570
+ size: "small"
15571
+ }, {
15572
+ default: withCtx(() => [
15573
+ createTextVNode(toDisplayString(item.label), 1)
15574
+ ]),
15575
+ _: 2
15576
+ }, 1024)
15577
+ ]),
15578
+ _: 2
15579
+ }, 1024)
15580
+ ])
15581
+ ], 2)
15582
+ ]),
15583
+ _: 1
15584
+ }, 8, ["class", "items", "disabled"])
15585
+ ], 64)) : createCommentVNode("", true)
15202
15586
  ], 2);
15203
15587
  };
15204
15588
  }
15205
15589
  });
15206
- const component = "_component_18nok_123";
15207
- const split = "_split_18nok_129";
15208
- const button = "_button_18nok_129";
15209
- const chevron = "_chevron_18nok_136";
15210
- const menu = "_menu_18nok_153";
15211
- const menuItem = "_menuItem_18nok_157";
15212
- const disabled = "_disabled_18nok_163";
15213
- const menuIcon = "_menuIcon_18nok_163";
15214
- const buttonContent = "_buttonContent_18nok_167";
15215
- const subText = "_subText_18nok_174";
15590
+ const component = "_component_p52lz_123";
15591
+ const split = "_split_p52lz_129";
15592
+ const button = "_button_p52lz_129";
15593
+ const divider = "_divider_p52lz_137";
15594
+ const chevron = "_chevron_p52lz_142";
15595
+ const menu = "_menu_p52lz_148";
15596
+ const menuItem = "_menuItem_p52lz_152";
15597
+ const disabled = "_disabled_p52lz_158";
15598
+ const menuIcon = "_menuIcon_p52lz_158";
15599
+ const buttonContent = "_buttonContent_p52lz_162";
15600
+ const subText = "_subText_p52lz_169";
15216
15601
  const style0$1 = {
15217
15602
  component,
15218
15603
  split,
15219
15604
  button,
15605
+ divider,
15220
15606
  chevron,
15221
15607
  menu,
15222
15608
  menuItem,
@@ -15300,7 +15686,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
15300
15686
  () => props.stopping ? i18n.baseText("nodeView.stoppingCurrentExecution") : i18n.baseText("nodeView.stopCurrentExecution")
15301
15687
  );
15302
15688
  return (_ctx, _cache) => {
15303
- const _component_N8nIconButton = resolveComponent("N8nIconButton");
15689
+ const _component_N8nIconButton = _sfc_main$R;
15304
15690
  return openBlock(), createBlock(_component_N8nIconButton, {
15305
15691
  icon: "stop",
15306
15692
  size: "large",
@@ -15318,7 +15704,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
15318
15704
  setup(__props) {
15319
15705
  const i18n = useI18n();
15320
15706
  return (_ctx, _cache) => {
15321
- const _component_N8nIconButton = resolveComponent("N8nIconButton");
15707
+ const _component_N8nIconButton = _sfc_main$R;
15322
15708
  return openBlock(), createBlock(_component_N8nIconButton, {
15323
15709
  class: "stop-execution",
15324
15710
  icon: "stop",
@@ -15357,7 +15743,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
15357
15743
  },
15358
15744
  setup(__props) {
15359
15745
  return (_ctx, _cache) => {
15360
- const _component_N8nButton = resolveComponent("N8nButton");
15746
+ const _component_N8nButton = N8nButton;
15361
15747
  return openBlock(), createBlock(_component_N8nButton, {
15362
15748
  label: _ctx.label,
15363
15749
  size: "large",
@@ -15375,13 +15761,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
15375
15761
  __name: "NodeView",
15376
15762
  setup(__props) {
15377
15763
  const LazyNodeCreation = defineAsyncComponent(
15378
- async () => await __vitePreload(() => import("./NodeCreation-T5AfZVS1.js").then((n) => n.N), true ? __vite__mapDeps([0,1,2,3]) : void 0)
15764
+ async () => await __vitePreload(() => import("./NodeCreation-Bq5626Ha.js").then((n) => n.N), true ? __vite__mapDeps([0,1,2,3]) : void 0)
15379
15765
  );
15380
15766
  const LazyNodeDetailsView = defineAsyncComponent(
15381
- async () => await __vitePreload(() => import("./NodeDetailsView-BvClCeyF.js"), true ? __vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17]) : void 0)
15767
+ async () => await __vitePreload(() => import("./NodeDetailsView-DB-5JPUD.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]) : void 0)
15382
15768
  );
15383
15769
  const LazySetupWorkflowCredentialsButton = defineAsyncComponent(
15384
- async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-DODNIDNV.js"), true ? __vite__mapDeps([18,1,2]) : void 0)
15770
+ async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-BWISZAxq.js"), true ? __vite__mapDeps([23,1,2]) : void 0)
15385
15771
  );
15386
15772
  const $style = useCssModule();
15387
15773
  const router = useRouter();
@@ -15414,6 +15800,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
15414
15800
  const tagsStore = useTagsStore();
15415
15801
  const pushConnectionStore = usePushConnectionStore();
15416
15802
  const ndvStore = useNDVStore();
15803
+ const focusPanelStore = useFocusPanelStore();
15417
15804
  const templatesStore = useTemplatesStore();
15418
15805
  const builderStore = useBuilderStore();
15419
15806
  const foldersStore = useFoldersStore();
@@ -15470,6 +15857,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
15470
15857
  const { extractWorkflow } = useWorkflowExtraction();
15471
15858
  const { applyExecutionData } = useExecutionDebugging();
15472
15859
  useClipboard({ onPaste: onClipboardPaste });
15860
+ const isFocusPanelFeatureEnabled = computed(() => {
15861
+ return usePostHog().getVariant(FOCUS_PANEL_EXPERIMENT.name) === FOCUS_PANEL_EXPERIMENT.variant;
15862
+ });
15473
15863
  const isLoading = ref(true);
15474
15864
  const isBlankRedirect = ref(false);
15475
15865
  const readOnlyNotification = ref(null);
@@ -16160,10 +16550,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16160
16550
  setNodeActiveByName(nodeName);
16161
16551
  selectNodes([node2.id]);
16162
16552
  }
16163
- async function onOpenSelectiveNodeCreator(node2, connectionType2) {
16164
- nodeCreatorStore.openSelectiveNodeCreator({ node: node2, connectionType: connectionType2 });
16553
+ async function onOpenSelectiveNodeCreator(node2, connectionType2, connectionIndex = 0) {
16554
+ nodeCreatorStore.openSelectiveNodeCreator({ node: node2, connectionType: connectionType2, connectionIndex });
16165
16555
  }
16166
- async function onOpenNodeCreatorForTriggerNodes(source) {
16556
+ function onOpenNodeCreatorForTriggerNodes(source) {
16167
16557
  nodeCreatorStore.openNodeCreatorForTriggerNodes(source);
16168
16558
  }
16169
16559
  function onOpenNodeCreatorFromCanvas(source) {
@@ -16175,6 +16565,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16175
16565
  uiStore.resetLastInteractedWith();
16176
16566
  }
16177
16567
  }
16568
+ function onToggleFocusPanel() {
16569
+ if (!isFocusPanelFeatureEnabled.value) {
16570
+ return;
16571
+ }
16572
+ focusPanelStore.toggleFocusPanel();
16573
+ }
16178
16574
  function closeNodeCreator() {
16179
16575
  if (nodeCreatorStore.isCreateNodeActive) {
16180
16576
  nodeCreatorStore.isCreateNodeActive = false;
@@ -16732,168 +17128,176 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16732
17128
  }
16733
17129
  });
16734
17130
  return (_ctx, _cache) => {
16735
- return unref(editableWorkflow) && unref(editableWorkflowObject) && !isLoading.value ? (openBlock(), createBlock(WorkflowCanvas, {
16736
- key: 0,
16737
- id: unref(editableWorkflow).id,
16738
- workflow: unref(editableWorkflow),
16739
- "workflow-object": unref(editableWorkflowObject),
16740
- "fallback-nodes": fallbackNodes.value,
16741
- "show-fallback-nodes": showFallbackNodes.value,
16742
- "event-bus": unref(canvasEventBus),
16743
- "read-only": isCanvasReadOnly.value,
16744
- executing: isWorkflowRunning.value,
16745
- "key-bindings": keyBindingsEnabled.value,
16746
- "onUpdate:nodes:position": onUpdateNodesPosition,
16747
- "onUpdate:node:position": onUpdateNodePosition,
16748
- "onUpdate:node:activated": onSetNodeActivated,
16749
- "onUpdate:node:deactivated": onSetNodeDeactivated,
16750
- "onUpdate:node:selected": onSetNodeSelected,
16751
- "onUpdate:node:enabled": onToggleNodeDisabled,
16752
- "onUpdate:node:name": onOpenRenameNodeModal,
16753
- "onUpdate:node:parameters": onUpdateNodeParameters,
16754
- "onUpdate:node:inputs": onUpdateNodeInputs,
16755
- "onUpdate:node:outputs": onUpdateNodeOutputs,
16756
- "onUpdate:logsOpen": _cache[2] || (_cache[2] = ($event) => unref(logsStore).toggleOpen($event)),
16757
- "onUpdate:logs:inputOpen": unref(logsStore).toggleInputOpen,
16758
- "onUpdate:logs:outputOpen": unref(logsStore).toggleOutputOpen,
16759
- "onUpdate:hasRangeSelection": unref(canvasStore).setHasRangeSelection,
16760
- "onOpen:subWorkflow": onOpenSubWorkflow,
16761
- "onClick:node": onClickNode,
16762
- "onClick:node:add": onClickNodeAdd,
16763
- "onRun:node": onRunWorkflowToNode,
16764
- "onDelete:node": onDeleteNode,
16765
- "onCreate:connection": onCreateConnection,
16766
- "onCreate:connection:cancelled": onCreateConnectionCancelled,
16767
- "onDelete:connection": onDeleteConnection,
16768
- "onClick:connection:add": onClickConnectionAdd,
16769
- "onClick:pane": onClickPane,
16770
- "onCreate:node": onOpenNodeCreatorFromCanvas,
16771
- "onCreate:sticky": onCreateSticky,
16772
- "onDelete:nodes": onDeleteNodes,
16773
- "onUpdate:nodes:enabled": onToggleNodesDisabled,
16774
- "onUpdate:nodes:pin": onPinNodes,
16775
- "onDuplicate:nodes": onDuplicateNodes,
16776
- "onCopy:nodes": onCopyNodes,
16777
- "onCut:nodes": onCutNodes,
16778
- "onRun:workflow": _cache[3] || (_cache[3] = ($event) => unref(runEntireWorkflow)("main")),
16779
- "onSave:workflow": onSaveWorkflow,
16780
- "onCreate:workflow": onCreateWorkflow,
16781
- "onViewport:change": onViewportChange,
16782
- "onSelection:end": onSelectionEnd,
16783
- onDragAndDrop,
16784
- onTidyUp,
16785
- onExtractWorkflow,
16786
- onStartChat: _cache[4] || (_cache[4] = ($event) => unref(startChat)())
16787
- }, {
16788
- default: withCtx(() => [
16789
- (openBlock(), createBlock(Suspense, null, {
16790
- default: withCtx(() => [
16791
- createVNode(unref(LazySetupWorkflowCredentialsButton), {
16792
- class: normalizeClass(unref($style).setupCredentialsButtonWrapper)
16793
- }, null, 8, ["class"])
16794
- ]),
16795
- _: 1
16796
- })),
16797
- !isCanvasReadOnly.value ? (openBlock(), createElementBlock("div", {
16798
- key: 0,
16799
- class: normalizeClass(unref($style).executionButtons)
16800
- }, [
16801
- isRunWorkflowButtonVisible.value ? (openBlock(), createBlock(CanvasRunWorkflowButton, {
17131
+ return openBlock(), createElementBlock("div", {
17132
+ class: normalizeClass(unref($style).wrapper)
17133
+ }, [
17134
+ unref(editableWorkflow) && unref(editableWorkflowObject) && !isLoading.value ? (openBlock(), createBlock(WorkflowCanvas, {
17135
+ key: 0,
17136
+ id: unref(editableWorkflow).id,
17137
+ workflow: unref(editableWorkflow),
17138
+ "workflow-object": unref(editableWorkflowObject),
17139
+ "fallback-nodes": fallbackNodes.value,
17140
+ "show-fallback-nodes": showFallbackNodes.value,
17141
+ "event-bus": unref(canvasEventBus),
17142
+ "read-only": isCanvasReadOnly.value,
17143
+ executing: isWorkflowRunning.value,
17144
+ "key-bindings": keyBindingsEnabled.value,
17145
+ "onUpdate:nodes:position": onUpdateNodesPosition,
17146
+ "onUpdate:node:position": onUpdateNodePosition,
17147
+ "onUpdate:node:activated": onSetNodeActivated,
17148
+ "onUpdate:node:deactivated": onSetNodeDeactivated,
17149
+ "onUpdate:node:selected": onSetNodeSelected,
17150
+ "onUpdate:node:enabled": onToggleNodeDisabled,
17151
+ "onUpdate:node:name": onOpenRenameNodeModal,
17152
+ "onUpdate:node:parameters": onUpdateNodeParameters,
17153
+ "onUpdate:node:inputs": onUpdateNodeInputs,
17154
+ "onUpdate:node:outputs": onUpdateNodeOutputs,
17155
+ "onUpdate:logsOpen": _cache[2] || (_cache[2] = ($event) => unref(logsStore).toggleOpen($event)),
17156
+ "onUpdate:logs:inputOpen": unref(logsStore).toggleInputOpen,
17157
+ "onUpdate:logs:outputOpen": unref(logsStore).toggleOutputOpen,
17158
+ "onUpdate:hasRangeSelection": unref(canvasStore).setHasRangeSelection,
17159
+ "onOpen:subWorkflow": onOpenSubWorkflow,
17160
+ "onClick:node": onClickNode,
17161
+ "onClick:node:add": onClickNodeAdd,
17162
+ "onRun:node": onRunWorkflowToNode,
17163
+ "onDelete:node": onDeleteNode,
17164
+ "onCreate:connection": onCreateConnection,
17165
+ "onCreate:connection:cancelled": onCreateConnectionCancelled,
17166
+ "onDelete:connection": onDeleteConnection,
17167
+ "onClick:connection:add": onClickConnectionAdd,
17168
+ "onClick:pane": onClickPane,
17169
+ "onCreate:node": onOpenNodeCreatorFromCanvas,
17170
+ "onCreate:sticky": onCreateSticky,
17171
+ "onDelete:nodes": onDeleteNodes,
17172
+ "onUpdate:nodes:enabled": onToggleNodesDisabled,
17173
+ "onUpdate:nodes:pin": onPinNodes,
17174
+ "onDuplicate:nodes": onDuplicateNodes,
17175
+ "onCopy:nodes": onCopyNodes,
17176
+ "onCut:nodes": onCutNodes,
17177
+ "onRun:workflow": _cache[3] || (_cache[3] = ($event) => unref(runEntireWorkflow)("main")),
17178
+ "onSave:workflow": onSaveWorkflow,
17179
+ "onCreate:workflow": onCreateWorkflow,
17180
+ "onViewport:change": onViewportChange,
17181
+ "onSelection:end": onSelectionEnd,
17182
+ onDragAndDrop,
17183
+ onTidyUp,
17184
+ "onToggle:focusPanel": onToggleFocusPanel,
17185
+ onExtractWorkflow,
17186
+ onStartChat: _cache[4] || (_cache[4] = ($event) => unref(startChat)())
17187
+ }, {
17188
+ default: withCtx(() => [
17189
+ (openBlock(), createBlock(Suspense, null, {
17190
+ default: withCtx(() => [
17191
+ createVNode(unref(LazySetupWorkflowCredentialsButton), {
17192
+ class: normalizeClass(unref($style).setupCredentialsButtonWrapper)
17193
+ }, null, 8, ["class"])
17194
+ ]),
17195
+ _: 1
17196
+ })),
17197
+ !isCanvasReadOnly.value ? (openBlock(), createElementBlock("div", {
16802
17198
  key: 0,
16803
- "waiting-for-webhook": isExecutionWaitingForWebhook.value,
16804
- disabled: isExecutionDisabled.value,
16805
- executing: isWorkflowRunning.value,
16806
- "trigger-nodes": triggerNodes.value,
16807
- "get-node-type": unref(nodeTypesStore).getNodeType,
16808
- "selected-trigger-node-name": unref(workflowsStore).selectedTriggerNodeName,
16809
- onMouseenter: onRunWorkflowButtonMouseEnter,
16810
- onMouseleave: onRunWorkflowButtonMouseLeave,
16811
- onExecute: _cache[0] || (_cache[0] = ($event) => unref(runEntireWorkflow)("main")),
16812
- onSelectTriggerNode: unref(workflowsStore).setSelectedTriggerNodeName
16813
- }, null, 8, ["waiting-for-webhook", "disabled", "executing", "trigger-nodes", "get-node-type", "selected-trigger-node-name", "onSelectTriggerNode"])) : createCommentVNode("", true),
16814
- containsChatTriggerNodes.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
16815
- isLogsPanelOpen.value ? (openBlock(), createBlock(_sfc_main$1, {
16816
- key: 0,
16817
- type: "tertiary",
16818
- label: unref(i18n).baseText("chat.hide"),
16819
- class: normalizeClass(unref($style).chatButton),
16820
- onClick: _cache[1] || (_cache[1] = ($event) => unref(logsStore).toggleOpen(false))
16821
- }, null, 8, ["label", "class"])) : (openBlock(), createBlock(KeyboardShortcutTooltip, {
16822
- key: 1,
16823
- label: unref(i18n).baseText("chat.open"),
16824
- shortcut: { keys: ["c"] }
16825
- }, {
16826
- default: withCtx(() => [
16827
- createVNode(_sfc_main$1, {
16828
- type: isRunWorkflowButtonVisible.value ? "secondary" : "primary",
16829
- label: unref(i18n).baseText("chat.open"),
16830
- class: normalizeClass(unref($style).chatButton),
16831
- onClick: onOpenChat
16832
- }, null, 8, ["type", "label", "class"])
16833
- ]),
16834
- _: 1
16835
- }, 8, ["label"]))
16836
- ], 64)) : createCommentVNode("", true),
16837
- isStopExecutionButtonVisible.value ? (openBlock(), createBlock(_sfc_main$4, {
16838
- key: 2,
16839
- stopping: isStoppingExecution.value,
16840
- onClick: onStopExecution
16841
- }, null, 8, ["stopping"])) : createCommentVNode("", true),
16842
- isStopWaitingForWebhookButtonVisible.value ? (openBlock(), createBlock(_sfc_main$3, {
16843
- key: 3,
16844
- onClick: onStopWaitingForWebhook
16845
- })) : createCommentVNode("", true)
16846
- ], 2)) : createCommentVNode("", true),
16847
- isReadOnlyEnvironment.value ? (openBlock(), createBlock(unref(N8nCallout), {
16848
- key: 1,
16849
- theme: "warning",
16850
- icon: "lock",
16851
- class: normalizeClass(unref($style).readOnlyEnvironmentNotification)
16852
- }, {
16853
- default: withCtx(() => [
16854
- createTextVNode(toDisplayString(unref(i18n).baseText("readOnlyEnv.cantEditOrRun")), 1)
16855
- ]),
16856
- _: 1
16857
- }, 8, ["class"])) : createCommentVNode("", true),
16858
- (openBlock(), createBlock(Suspense, null, {
16859
- default: withCtx(() => [
16860
- !isCanvasReadOnly.value ? (openBlock(), createBlock(unref(LazyNodeCreation), {
17199
+ class: normalizeClass(unref($style).executionButtons)
17200
+ }, [
17201
+ isRunWorkflowButtonVisible.value ? (openBlock(), createBlock(CanvasRunWorkflowButton, {
16861
17202
  key: 0,
16862
- "create-node-active": unref(nodeCreatorStore).isCreateNodeActive,
16863
- "node-view-scale": viewportTransform.value.zoom,
16864
- onToggleNodeCreator,
16865
- onAddNodes: onAddNodesAndConnections
16866
- }, null, 8, ["create-node-active", "node-view-scale"])) : createCommentVNode("", true)
16867
- ]),
16868
- _: 1
16869
- })),
16870
- (openBlock(), createBlock(Suspense, null, {
16871
- default: withCtx(() => [
16872
- createVNode(unref(LazyNodeDetailsView), {
16873
- "workflow-object": unref(editableWorkflowObject),
16874
- "read-only": isCanvasReadOnly.value,
16875
- "is-production-execution-preview": isProductionExecutionPreview.value,
16876
- renaming: false,
16877
- onValueChanged: onRenameNode,
16878
- onStopExecution,
16879
- onSwitchSelectedNode: onSwitchActiveNode,
16880
- onOpenConnectionNodeCreator: onOpenSelectiveNodeCreator,
16881
- onSaveKeyboardShortcut: onSaveWorkflow
16882
- }, null, 8, ["workflow-object", "read-only", "is-production-execution-preview"])
16883
- ]),
16884
- _: 1
16885
- }))
16886
- ]),
16887
- _: 1
16888
- }, 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);
17203
+ "waiting-for-webhook": isExecutionWaitingForWebhook.value,
17204
+ disabled: isExecutionDisabled.value,
17205
+ executing: isWorkflowRunning.value,
17206
+ "trigger-nodes": triggerNodes.value,
17207
+ "get-node-type": unref(nodeTypesStore).getNodeType,
17208
+ "selected-trigger-node-name": unref(workflowsStore).selectedTriggerNodeName,
17209
+ onMouseenter: onRunWorkflowButtonMouseEnter,
17210
+ onMouseleave: onRunWorkflowButtonMouseLeave,
17211
+ onExecute: _cache[0] || (_cache[0] = ($event) => unref(runEntireWorkflow)("main")),
17212
+ onSelectTriggerNode: unref(workflowsStore).setSelectedTriggerNodeName
17213
+ }, null, 8, ["waiting-for-webhook", "disabled", "executing", "trigger-nodes", "get-node-type", "selected-trigger-node-name", "onSelectTriggerNode"])) : createCommentVNode("", true),
17214
+ containsChatTriggerNodes.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
17215
+ isLogsPanelOpen.value ? (openBlock(), createBlock(_sfc_main$1, {
17216
+ key: 0,
17217
+ type: "tertiary",
17218
+ label: unref(i18n).baseText("chat.hide"),
17219
+ class: normalizeClass(unref($style).chatButton),
17220
+ onClick: _cache[1] || (_cache[1] = ($event) => unref(logsStore).toggleOpen(false))
17221
+ }, null, 8, ["label", "class"])) : (openBlock(), createBlock(KeyboardShortcutTooltip, {
17222
+ key: 1,
17223
+ label: unref(i18n).baseText("chat.open"),
17224
+ shortcut: { keys: ["c"] }
17225
+ }, {
17226
+ default: withCtx(() => [
17227
+ createVNode(_sfc_main$1, {
17228
+ type: isRunWorkflowButtonVisible.value ? "secondary" : "primary",
17229
+ label: unref(i18n).baseText("chat.open"),
17230
+ class: normalizeClass(unref($style).chatButton),
17231
+ onClick: onOpenChat
17232
+ }, null, 8, ["type", "label", "class"])
17233
+ ]),
17234
+ _: 1
17235
+ }, 8, ["label"]))
17236
+ ], 64)) : createCommentVNode("", true),
17237
+ isStopExecutionButtonVisible.value ? (openBlock(), createBlock(_sfc_main$4, {
17238
+ key: 2,
17239
+ stopping: isStoppingExecution.value,
17240
+ onClick: onStopExecution
17241
+ }, null, 8, ["stopping"])) : createCommentVNode("", true),
17242
+ isStopWaitingForWebhookButtonVisible.value ? (openBlock(), createBlock(_sfc_main$3, {
17243
+ key: 3,
17244
+ onClick: onStopWaitingForWebhook
17245
+ })) : createCommentVNode("", true)
17246
+ ], 2)) : createCommentVNode("", true),
17247
+ isReadOnlyEnvironment.value ? (openBlock(), createBlock(unref(N8nCallout), {
17248
+ key: 1,
17249
+ theme: "warning",
17250
+ icon: "lock",
17251
+ class: normalizeClass(unref($style).readOnlyEnvironmentNotification)
17252
+ }, {
17253
+ default: withCtx(() => [
17254
+ createTextVNode(toDisplayString(unref(i18n).baseText("readOnlyEnv.cantEditOrRun")), 1)
17255
+ ]),
17256
+ _: 1
17257
+ }, 8, ["class"])) : createCommentVNode("", true),
17258
+ (openBlock(), createBlock(Suspense, null, {
17259
+ default: withCtx(() => [
17260
+ !isCanvasReadOnly.value ? (openBlock(), createBlock(unref(LazyNodeCreation), {
17261
+ key: 0,
17262
+ "create-node-active": unref(nodeCreatorStore).isCreateNodeActive,
17263
+ "node-view-scale": viewportTransform.value.zoom,
17264
+ onToggleNodeCreator,
17265
+ onAddNodes: onAddNodesAndConnections
17266
+ }, null, 8, ["create-node-active", "node-view-scale"])) : createCommentVNode("", true)
17267
+ ]),
17268
+ _: 1
17269
+ })),
17270
+ (openBlock(), createBlock(Suspense, null, {
17271
+ default: withCtx(() => [
17272
+ createVNode(unref(LazyNodeDetailsView), {
17273
+ "workflow-object": unref(editableWorkflowObject),
17274
+ "read-only": isCanvasReadOnly.value,
17275
+ "is-production-execution-preview": isProductionExecutionPreview.value,
17276
+ renaming: false,
17277
+ onValueChanged: onRenameNode,
17278
+ onStopExecution,
17279
+ onSwitchSelectedNode: onSwitchActiveNode,
17280
+ onOpenConnectionNodeCreator: onOpenSelectiveNodeCreator,
17281
+ onSaveKeyboardShortcut: onSaveWorkflow
17282
+ }, null, 8, ["workflow-object", "read-only", "is-production-execution-preview"])
17283
+ ]),
17284
+ _: 1
17285
+ }))
17286
+ ]),
17287
+ _: 1
17288
+ }, 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),
17289
+ isFocusPanelFeatureEnabled.value ? (openBlock(), createBlock(FocusPanel, { key: 1 })) : createCommentVNode("", true)
17290
+ ], 2);
16889
17291
  };
16890
17292
  }
16891
17293
  });
16892
- const executionButtons = "_executionButtons_1d2c1_123";
16893
- const chatButton = "_chatButton_1d2c1_160";
16894
- const setupCredentialsButtonWrapper = "_setupCredentialsButtonWrapper_1d2c1_164";
16895
- const readOnlyEnvironmentNotification = "_readOnlyEnvironmentNotification_1d2c1_170";
17294
+ const wrapper = "_wrapper_1xmhy_123";
17295
+ const executionButtons = "_executionButtons_1xmhy_128";
17296
+ const chatButton = "_chatButton_1xmhy_165";
17297
+ const setupCredentialsButtonWrapper = "_setupCredentialsButtonWrapper_1xmhy_169";
17298
+ const readOnlyEnvironmentNotification = "_readOnlyEnvironmentNotification_1xmhy_175";
16896
17299
  const style0 = {
17300
+ wrapper,
16897
17301
  executionButtons,
16898
17302
  chatButton,
16899
17303
  setupCredentialsButtonWrapper,
@@ -16909,5 +17313,6 @@ const NodeView$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
16909
17313
  }, Symbol.toStringTag, { value: "Module" }));
16910
17314
  export {
16911
17315
  NodeSettings as N,
16912
- NodeView$1 as a
17316
+ NodeView$1 as a,
17317
+ useExperimentalNdvStore as u
16913
17318
  };