n8n-editor-ui 1.103.1 → 1.104.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/assets/{ActionDropdown-BhU4vCrE.js → ActionDropdown-DkHCqhLi.js} +1 -1
  2. package/dist/assets/{AnimatedSpinner-Du5eXSIY.js → AnimatedSpinner-D6j3zAN7.js} +1 -1
  3. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DEQTwSbx.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CeptN1qB.js} +1 -1
  4. package/dist/assets/{AuthView-BJ-YTYTN.js → AuthView-DdzGr3if.js} +2 -2
  5. package/dist/assets/{ChangePasswordView-B-OkU_yr.js → ChangePasswordView-CLbLuldY.js} +3 -3
  6. package/dist/assets/CollectionParameter-C3JIvBsy.js +4 -0
  7. package/dist/assets/ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-DwQ0BmLY.js +44 -0
  8. package/dist/assets/{CredentialsView-BjUZvEdd.js → CredentialsView-Cbm8N2D-.js} +8 -8
  9. package/dist/assets/{DemoFooter-9WRPL1Nd.js → DemoFooter-DlHqx3Wb.js} +9 -8
  10. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-D3Zaxt4S.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-Dymz7mm-.js} +1 -1
  11. package/dist/assets/{EntityNotFound-DvAk0XOf.js → EntityNotFound-CmBDOsai.js} +1 -1
  12. package/dist/assets/{EntityUnAuthorised-BTLaJBAA.js → EntityUnAuthorised-CNPmvmZu.js} +1 -1
  13. package/dist/assets/{ErrorView-KDDRlAEN.js → ErrorView-BqgIhqko.js} +1 -1
  14. package/dist/assets/{EvaluationsRootView-BViIGqmh.js → EvaluationsRootView-B6RDbMu9.js} +5 -3
  15. package/dist/assets/{EvaluationsView-6l_Invxt.css → EvaluationsView-BTyYfInB.css} +6 -6
  16. package/dist/assets/{EvaluationsView-BY0HmUSo.js → EvaluationsView-nr07_JFX.js} +53 -40
  17. package/dist/assets/{ExecutionsTime-DkME6I3E.css → ExecutionsTime-Bo7IOE5K.css} +6 -6
  18. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-Dz1TldYs.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-Ci1SWv1r.js} +15 -12
  19. package/dist/assets/{ExecutionsView-z5GL4TFM.js → ExecutionsView-L8QB4qb-.js} +21 -18
  20. package/dist/assets/{FileSaver.min-BRpMoNCX.js → FileSaver.min-CiFUM_59.js} +1 -1
  21. package/dist/assets/{FixedCollectionParameter-BW_7bc6a.js → FixedCollectionParameter-BMsoLNRT.js} +1 -1
  22. package/dist/assets/{ForgotMyPasswordView-C3yPX8Sm.js → ForgotMyPasswordView-BYKQXHHe.js} +3 -3
  23. package/dist/assets/{InfoAccordion-B3ebdljQ.js → InfoAccordion-DN17_QNh.js} +1 -1
  24. package/dist/assets/{InsightsChartAverageRuntime-B07vNUKi.js → InsightsChartAverageRuntime-DX6MWomC.js} +5 -4
  25. package/dist/assets/{InsightsChartFailed-vwVIlrMM.js → InsightsChartFailed-D1ITW7ip.js} +5 -4
  26. package/dist/assets/{InsightsChartFailureRate-3R9NR__K.js → InsightsChartFailureRate-DsoCFhrx.js} +5 -4
  27. package/dist/assets/{InsightsChartTimeSaved-0XAZRsQL.js → InsightsChartTimeSaved-Cwb0-EZ1.js} +5 -4
  28. package/dist/assets/{InsightsChartTotal-QtHpPQPx.js → InsightsChartTotal-B-SjjDG4.js} +5 -4
  29. package/dist/assets/{InsightsDashboard-CXbI-Jyg.css → InsightsDashboard-C27Avzrv.css} +2 -2
  30. package/dist/assets/{InsightsDashboard-jAR8co6U.js → InsightsDashboard-DEaMMGfn.js} +19 -19
  31. package/dist/assets/{InsightsPaywall-CqlSj87d.js → InsightsPaywall-BsiLaxNd.js} +3 -3
  32. package/dist/assets/{InsightsSummary-1EyHgtD2.js → InsightsSummary-hBcY77J_.js} +9 -4
  33. package/dist/assets/{InsightsTableWorkflows-RGpSnp7n.css → InsightsTableWorkflows-BTHSCwX8.css} +27 -3
  34. package/dist/assets/{InsightsTableWorkflows-CMfER3Lz.js → InsightsTableWorkflows-D9vFPmUm.js} +80 -26
  35. package/dist/assets/{Logo-BAbynr3J.js → Logo-D-nqGbZ-.js} +1 -1
  36. package/dist/assets/{LogsPanel-C4P2jfja.js → LogsPanel-D0QGW50a.js} +16 -11
  37. package/dist/assets/{LogsPanel-Bvy4ANV7.css → LogsPanel-D0xdq4fV.css} +21 -21
  38. package/dist/assets/{MainHeader-2VAdoAN3.js → MainHeader-QpSmh7DV.js} +17 -16
  39. package/dist/assets/{MainHeader-DYYEm7nF.css → MainHeader-qSHM1Rvp.css} +12 -12
  40. package/dist/assets/{MainSidebar-CaLHZgDB.css → MainSidebar-D74VZmM5.css} +7 -8
  41. package/dist/assets/{MainSidebar-ChT_fvtq.js → MainSidebar-Dndr9Vcx.js} +26 -25
  42. package/dist/assets/{N8nDataTableServer-CUJVgPuN.js → N8nDataTableServer-B4Gq_Urn.js} +20 -10
  43. package/dist/assets/{NodeCreation-B0_VqZl0.js → NodeCreation-CRGHu2mV.js} +11 -9
  44. package/dist/assets/{NodeCreator-Dudc-sld.js → NodeCreator-BvleRmX-.js} +114 -197
  45. package/dist/assets/{NodeCreator-DWE25utr.css → NodeCreator-CkvY2niF.css} +0 -128
  46. package/dist/assets/{NodeDetailsView-D3jGDk45.js → NodeDetailsView-xvbRzTfv.js} +21 -16
  47. package/dist/assets/{NodeDetailsViewV2-B0iyvHRQ.js → NodeDetailsViewV2-CBY4UJcE.js} +21 -16
  48. package/dist/assets/{NodeView-CX3GlUP1.js → NodeView-Dm74W6kN.js} +2068 -746
  49. package/dist/assets/{NodeView-hst6fesm.css → NodeView-G2qfXaOy.css} +755 -71
  50. package/dist/assets/{ProjectHeader-CBBQ32Nc.js → ProjectHeader-0NxiEwQl.js} +2 -2
  51. package/dist/assets/{ProjectSettings-D7CCWy0v.js → ProjectSettings-ClM6Y9uS.js} +7 -5
  52. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-aTaPuBRW.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-D5JeFl_d.js} +1 -1
  53. package/dist/assets/{ResourcesListLayout-CR6jD0wL.js → ResourcesListLayout-BRro9C-1.js} +3 -3
  54. package/dist/assets/{RunDataJson-PZfvyEtF.js → RunDataJson-12Py20Rs.js} +6 -7
  55. package/dist/assets/{RunDataJsonActions-BmrxonyU.js → RunDataJsonActions-BGl8YYU0.js} +1 -1
  56. package/dist/assets/{RunDataParsedAiContent-b0irqoyM.js → RunDataParsedAiContent-DYz5OPxJ.js} +2 -2
  57. package/dist/assets/{RunDataSearch-DS17rPDS.js → RunDataSearch-NmwtxOjZ.js} +1 -1
  58. package/dist/assets/{RunDataTable-DgBV9mGl.js → RunDataTable-DJu8Ut0r.js} +17 -17
  59. package/dist/assets/{SamlOnboarding-COuXHYGq.js → SamlOnboarding-B5vqtns9.js} +3 -3
  60. package/dist/assets/{SettingsApiView-Bjmx5RKa.js → SettingsApiView-DmOvPlm6.js} +5 -4
  61. package/dist/assets/{SettingsCommunityNodesView-JkmQWaRv.js → SettingsCommunityNodesView-DEgzWHlF.js} +4 -3
  62. package/dist/assets/{SettingsExternalSecrets-unJLQHhU.js → SettingsExternalSecrets-4VNCsQKo.js} +5 -3
  63. package/dist/assets/{SettingsLdapView-DvZbXhb2.js → SettingsLdapView-BSQe5yy-.js} +1 -1
  64. package/dist/assets/{SettingsLogStreamingView-DT_BpBbv.js → SettingsLogStreamingView-Y-ve-MUB.js} +1 -1
  65. package/dist/assets/{SettingsPersonalView-D0VCYPEd.js → SettingsPersonalView-DTWO2GIc.js} +1 -1
  66. package/dist/assets/{SettingsSourceControl-CatnTfFf.js → SettingsSourceControl-D14mBzgS.js} +10 -8
  67. package/dist/assets/{SettingsSso-CxWN7WTJ.js → SettingsSso-Beon1K6u.js} +1 -1
  68. package/dist/assets/{SettingsUsageAndPlan-D6TiPwUx.css → SettingsUsageAndPlan-ZZQpCmyQ.css} +3 -3
  69. package/dist/assets/{SettingsUsageAndPlan-BMsLzUeh.js → SettingsUsageAndPlan-hc6EFbHM.js} +15 -10
  70. package/dist/assets/{SettingsUsersView-hbKTH9np.js → SettingsUsersView-CIzwxl6-.js} +105 -44
  71. package/dist/assets/{SettingsUsersView-B81cHl3f.css → SettingsUsersView-RQTdLxyb.css} +11 -7
  72. package/dist/assets/{SettingsView-C3FWxmaD.js → SettingsView-Bv-AL-MH.js} +1 -1
  73. package/dist/assets/{SetupView-DdjBoiKa.js → SetupView-BCKg0AbF.js} +3 -3
  74. package/dist/assets/{SetupWorkflowCredentialsButton-BX8a8Tuq.js → SetupWorkflowCredentialsButton-djsoNbvZ.js} +1 -1
  75. package/dist/assets/{SetupWorkflowFromTemplateView-D9BTRma8.js → SetupWorkflowFromTemplateView-CZhYUSco.js} +3 -3
  76. package/dist/assets/{SigninView-D8iOgwLO.js → SigninView-BPl0jjB0.js} +3 -3
  77. package/dist/assets/{SignoutView-DXt0Sdaq.js → SignoutView-BHPz3HFX.js} +1 -1
  78. package/dist/assets/{SignupView-D6pEOFGY.js → SignupView-Cel8_b46.js} +3 -3
  79. package/dist/assets/{TableBase-6tpR_KYY.js → TableBase-BIT7ArUw.js} +1 -1
  80. package/dist/assets/{Tags-3OtmQZg1.js → Tags-CQIEP_IZ.js} +1 -1
  81. package/dist/assets/{TemplateDetails-Bvec_Syb.js → TemplateDetails-B8u34j2l.js} +2 -2
  82. package/dist/assets/{TemplateList-B0_W0uvx.js → TemplateList-BJSJYiHs.js} +1 -1
  83. package/dist/assets/{TemplatesCollectionView-ChXD8R-e.js → TemplatesCollectionView-BCAAV1n9.js} +6 -6
  84. package/dist/assets/{TemplatesSearchView-B_cMlFlv.js → TemplatesSearchView-CXOrNnyk.js} +3 -3
  85. package/dist/assets/{TemplatesView-CziYbcJq.js → TemplatesView-1HunP4nN.js} +1 -1
  86. package/dist/assets/{TemplatesWorkflowView-Hb4zWBu5.js → TemplatesWorkflowView-0enp4pR7.js} +6 -6
  87. package/dist/assets/{TriggerPanel-BsmQ9v2s.js → TriggerPanel-B-Jt4r3F.js} +133 -981
  88. package/dist/assets/{TriggerPanel-DRpKKKun.css → TriggerPanel-DJv04feX.css} +1 -354
  89. package/dist/assets/{VariablesView-WOzl2JBK.js → VariablesView-mSWZzDyf.js} +5 -5
  90. package/dist/assets/VueMarkdown-Dxf59_T_.js +1570 -0
  91. package/dist/assets/{WorkerView-C0gI6gbP.js → WorkerView-DbqNyqok.js} +6 -5
  92. package/dist/assets/{WorkflowActivator-B96_pQnb.js → WorkflowActivator-C33REd8m.js} +2 -2
  93. package/dist/assets/{WorkflowExecutionsInfoAccordion-DFCLkh95.js → WorkflowExecutionsInfoAccordion-CCe9jbiT.js} +2 -2
  94. package/dist/assets/{WorkflowExecutionsLandingPage-B3aM2Zsk.js → WorkflowExecutionsLandingPage-DMXVsIHS.js} +3 -3
  95. package/dist/assets/{WorkflowExecutionsPreview-D6oMyJtk.js → WorkflowExecutionsPreview-Dit3_l9q.js} +5 -5
  96. package/dist/assets/{WorkflowExecutionsView-BiKDjD1D.js → WorkflowExecutionsView-BwLTPvQ7.js} +8 -8
  97. package/dist/assets/{WorkflowHistory-CgxAK62K.js → WorkflowHistory-BgNzJgze.js} +6 -6
  98. package/dist/assets/{WorkflowOnboardingView-tKN781CD.js → WorkflowOnboardingView-Bnvmd6lJ.js} +1 -1
  99. package/dist/assets/{WorkflowPreview-CDgvgZcr.js → WorkflowPreview-DIDMhnNP.js} +1 -1
  100. package/dist/assets/{WorkflowsView-zxJZKrLk.js → WorkflowsView-DxtULRby.js} +125 -17
  101. package/dist/assets/aiTemplatesStarterCollection.store-DrHWcqtc.js +795 -0
  102. package/dist/assets/{chartjs.utils-EXdTT15A.js → chartjs.utils-DQHNgzzp.js} +2 -2
  103. package/dist/assets/{en-FjyeYndD.js → en-BX7CKkqE.js} +22 -6
  104. package/dist/assets/{global-link-actions-NNtNk_7A.js → global-link-actions-DzXrk-LO.js} +1 -1
  105. package/dist/assets/{import-curl-DcVVML3m.js → import-curl-BrVSOGQW.js} +1 -1
  106. package/dist/assets/{index-C6LoGNAx.css → index-BWpYwmXd.css} +548 -948
  107. package/dist/assets/{index-BEC9W_3K.js → index-BmZCxv8-.js} +48318 -42852
  108. package/dist/assets/{index-CFNl0R-J.js → index-x7t8iCsI.js} +1 -1
  109. package/dist/assets/{pickBy-BXP1QU1C.js → pickBy-oHD63WOf.js} +1 -1
  110. package/dist/assets/{templateActions-DWb-SuCl.js → templateActions-_QLqrCsm.js} +1 -1
  111. package/dist/assets/{typescript.worker-CUj0Nj-S.js → typescript.worker-KwUz68Jx.js} +2499 -157
  112. package/dist/assets/{useBeforeUnload-uH0nIAM3.js → useBeforeUnload-CBmJdmlS.js} +1 -1
  113. package/dist/assets/{useExecutionDebugging-bE32iQtx.js → useExecutionDebugging-B22Oj62X.js} +1 -1
  114. package/dist/assets/{useExecutionHelpers-CXZC4OGe.js → useExecutionHelpers-C6meisqx.js} +1 -1
  115. package/dist/assets/{useImportCurlCommand-Bxi0W0ub.js → useImportCurlCommand-CCUM_iVn.js} +9 -9
  116. package/dist/assets/{RunData-D0dKnadD.css → useKeybindings-2A271Jke.css} +134 -2
  117. package/dist/assets/{RunData-CY2AnQ-5.js → useKeybindings-CcHEvN6i.js} +223 -1644
  118. package/dist/assets/{useProjectPages-BKkEKuqG.js → useProjectPages-CrI3xlbd.js} +1 -1
  119. package/dist/assets/{usePushConnection-TyXi_EKD.js → usePushConnection-EYkv1Xyg.js} +10 -2
  120. package/dist/assets/{useWorkflowActivate-BRxfn_zV.js → useWorkflowActivate-BiorS_mB.js} +1 -1
  121. package/dist/index.html +3 -7
  122. package/index.html +1 -5
  123. package/package.json +1 -1
  124. package/vite.config.mts +23 -3
  125. package/dist/assets/CollectionParameter-BHthTTpD.js +0 -4
  126. package/dist/assets/useKeybindings-BUK7Ngh6.css +0 -133
  127. package/dist/assets/useKeybindings-D5pwrTFM.js +0 -188
@@ -1,8 +1,10 @@
1
- import { d as defineComponent, h as createElementBlock, g as openBlock, n as normalizeClass, j as createBaseVNode, J as renderSlot, _ as _export_sfc, a4 as useWorkflowsStore, bG as useNodeTypesStore, di as usePostHog, x as computed, dl as NDV_UI_OVERHAUL_EXPERIMENT, bo as NodeConnectionTypes, o as onMounted, I as onBeforeUnmount, F as Fragment, y as renderList, e as createBlock, f as createCommentVNode, $ as N8nTooltip, w as withCtx, i as createVNode, bP as _sfc_main$c, k as createTextVNode, t as toDisplayString, iw as convertToDisplayDateComponents, c4 as resolveDirective, l as unref, f6 as InfoTip, aS as withDirectives, c as useI18n, p as N8nText, bJ as getDefaultExportFromCjs, ix as requireCapitalize, r as ref, gF as parseAiContent, N as N8nIcon, H as N8nRadioButtons, bI as formatTokenUsageCount, aa as watch, iy as ElTree, P as normalizeStyle, aM as useNDVStore, fy as storeToRefs, v as useSettingsStore, dW as useNodeDirtiness, gz as useNodeType, bz as usePinnedData, cV as CanvasNodeDirtiness, O as resolveComponent, bf as createSlots, c5 as waitingNodeTooltip, dd as _sfc_main$f, aT as vShow, ay as useTelemetry, cy as isPresent, fi as N8nSelect, fj as _sfc_main$g, iz as truncate, gV as createStaticVNode, bH as START_NODE_TYPE, i6 as MANUAL_TRIGGER_NODE_TYPE, iA as CRON_NODE_TYPE, iB as INTERVAL_NODE_TYPE, dc as getNodeInputs, dZ as getNodeOutputs, iC as uniqBy, bY as resolveDynamicComponent, bO as withModifiers, T as useUIStore, b as useRouter, ak as useWorkflowHelpers, iD as isTriggerPanelObject, d_ as getTriggerNodeServiceName, bx as CHAT_TRIGGER_NODE_TYPE, ic as WEBHOOK_NODE_TYPE, d4 as FORM_TRIGGER_NODE_TYPE, g5 as CopyInput, q as N8nButton, eV as _sfc_main$h, m as N8nHeading, a1 as N8nLink, Q as createEventBus, dK as Transition, V as VIEWS, aC as WORKFLOW_SETTINGS_MODAL_KEY } from "./index-BEC9W_3K.js";
2
- import { b as _sfc_main$d, c as ViewSubExecution, _ as _sfc_main$e, R as RunData } from "./RunData-CY2AnQ-5.js";
3
- import { R as RunDataAi$1, g as getConsumedTokens, c as createAiData, a as getTreeNodeData, b as getReferencedData } from "./RunDataParsedAiContent-b0irqoyM.js";
4
- import { N as N8nInfoAccordion } from "./InfoAccordion-B3ebdljQ.js";
5
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
1
+ import { d as defineComponent, h as createElementBlock, g as openBlock, n as normalizeClass, j as createBaseVNode, J as renderSlot, _ as _export_sfc, a5 as useWorkflowsStore, bH as useNodeTypesStore, c_ as usePostHog, x as computed, d5 as NDV_UI_OVERHAUL_EXPERIMENT, bp as NodeConnectionTypes, o as onMounted, I as onBeforeUnmount, F as Fragment, y as renderList, e as createBlock, f as createCommentVNode, $ as N8nTooltip, w as withCtx, i as createVNode, bQ as _sfc_main$8, k as createTextVNode, t as toDisplayString, iH as convertToDisplayDateComponents, c4 as resolveDirective, l as unref, er as InfoTip, aT as withDirectives, c as useI18n, p as N8nText, bK as getDefaultExportFromCjs, iI as requireCapitalize, r as ref, fm as parseAiContent, N as N8nIcon, H as N8nRadioButtons, bJ as formatTokenUsageCount, ab as watch, iJ as ElTree, P as normalizeStyle, aN as useNDVStore, fg as storeToRefs, v as useSettingsStore, e6 as useNodeDirtiness, ff as useNodeType, bA as usePinnedData, cV as CanvasNodeDirtiness, bg as createSlots, c5 as waitingNodeTooltip, d6 as _sfc_main$b, a1 as I18nT, aU as vShow, az as useTelemetry, T as useUIStore, b as useRouter, al as useWorkflowHelpers, iK as isTriggerPanelObject, e9 as getTriggerNodeServiceName, by as CHAT_TRIGGER_NODE_TYPE, ip as WEBHOOK_NODE_TYPE, dl as FORM_TRIGGER_NODE_TYPE, gK as CopyInput, q as N8nButton, fx as _sfc_main$c, m as N8nHeading, a2 as N8nLink, Q as createEventBus, dK as Transition, V as VIEWS, aD as WORKFLOW_SETTINGS_MODAL_KEY } from "./index-BmZCxv8-.js";
2
+ import { u as useExecutionData, _ as __unplugin_components_2 } from "./NodeView-Dm74W6kN.js";
3
+ import { _ as _sfc_main$9, b as ViewSubExecution, R as RunData } from "./useKeybindings-CcHEvN6i.js";
4
+ import { R as RunDataAi$1, g as getConsumedTokens, c as createAiData, a as getTreeNodeData, b as getReferencedData } from "./RunDataParsedAiContent-DYz5OPxJ.js";
5
+ import { _ as _sfc_main$a } from "./ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-DwQ0BmLY.js";
6
+ import { N as N8nInfoAccordion } from "./InfoAccordion-DN17_QNh.js";
7
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
6
8
  ...{ name: "N8nPulse" },
7
9
  __name: "Pulse",
8
10
  setup(__props) {
@@ -26,17 +28,17 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
26
28
  const pulseContainer = "_pulseContainer_1w2uc_123";
27
29
  const pulse = "_pulse_1w2uc_123";
28
30
  const pulse2 = "_pulse2_1w2uc_139";
29
- const style0$a = {
31
+ const style0$7 = {
30
32
  pulseContainer,
31
33
  pulse,
32
34
  pulse2
33
35
  };
34
- const cssModules$a = {
35
- "$style": style0$a
36
+ const cssModules$7 = {
37
+ "$style": style0$7
36
38
  };
37
- const N8nPulse = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__cssModules", cssModules$a]]);
38
- const _hoisted_1$5 = ["data-node-name", "data-node-placement", "onClick"];
39
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
39
+ const N8nPulse = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__cssModules", cssModules$7]]);
40
+ const _hoisted_1$3 = ["data-node-name", "data-node-placement", "onClick"];
41
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
40
42
  __name: "NDVFloatingNodes",
41
43
  props: {
42
44
  rootNode: {}
@@ -76,11 +78,11 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
76
78
  }
77
79
  function getINodesFromNames(names) {
78
80
  return names.map((name) => {
79
- const node2 = workflowsStore.getNodeByName(name);
80
- if (node2) {
81
- const nodeType = nodeTypesStore.getNodeType(node2.type);
81
+ const node = workflowsStore.getNodeByName(name);
82
+ if (node) {
83
+ const nodeType = nodeTypesStore.getNodeType(node.type);
82
84
  if (nodeType) {
83
- return { node: node2, nodeType };
85
+ return { node, nodeType };
84
86
  }
85
87
  }
86
88
  return null;
@@ -150,33 +152,33 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
150
152
  key: connectionGroup,
151
153
  class: normalizeClass([_ctx.$style.nodesList, _ctx.$style[connectionGroup]])
152
154
  }, [
153
- (openBlock(true), createElementBlock(Fragment, null, renderList(connectedNodes.value[connectionGroup], ({ node: node2, nodeType }) => {
155
+ (openBlock(true), createElementBlock(Fragment, null, renderList(connectedNodes.value[connectionGroup], ({ node, nodeType }) => {
154
156
  return openBlock(), createElementBlock(Fragment, null, [
155
- node2 && nodeType ? (openBlock(), createBlock(_component_n8n_tooltip, {
156
- key: node2.name,
157
+ node && nodeType ? (openBlock(), createBlock(_component_n8n_tooltip, {
158
+ key: node.name,
157
159
  placement: tooltipPositionMapper[connectionGroup],
158
160
  teleported: false,
159
161
  offset: isNDVV2.value ? 16 : 60
160
162
  }, {
161
163
  content: withCtx(() => [
162
- createTextVNode(toDisplayString(node2.name), 1)
164
+ createTextVNode(toDisplayString(node.name), 1)
163
165
  ]),
164
166
  default: withCtx(() => [
165
167
  createBaseVNode("li", {
166
168
  class: normalizeClass(_ctx.$style.connectedNode),
167
169
  "data-test-id": "floating-node",
168
- "data-node-name": node2.name,
170
+ "data-node-name": node.name,
169
171
  "data-node-placement": connectionGroup,
170
- onClick: ($event) => emit("switchSelectedNode", node2.name)
172
+ onClick: ($event) => emit("switchSelectedNode", node.name)
171
173
  }, [
172
- createVNode(_sfc_main$c, {
174
+ createVNode(_sfc_main$8, {
173
175
  "node-type": nodeType,
174
- "node-name": node2.name,
176
+ "node-name": node.name,
175
177
  "tooltip-position": tooltipPositionMapper[connectionGroup],
176
178
  size: isNDVV2.value ? 24 : 35,
177
179
  circle: ""
178
180
  }, null, 8, ["node-type", "node-name", "tooltip-position", "size"])
179
- ], 10, _hoisted_1$5)
181
+ ], 10, _hoisted_1$3)
180
182
  ]),
181
183
  _: 2
182
184
  }, 1032, ["placement", "offset"])) : createCommentVNode("", true)
@@ -196,7 +198,7 @@ const outputMain = "_outputMain_1o49e_162";
196
198
  const inputMain = "_inputMain_1o49e_162";
197
199
  const connectedNode = "_connectedNode_1o49e_185";
198
200
  const v2 = "_v2_1o49e_233";
199
- const style0$9 = {
201
+ const style0$6 = {
200
202
  floatingNodes,
201
203
  nodesList,
202
204
  inputSub,
@@ -206,46 +208,11 @@ const style0$9 = {
206
208
  connectedNode,
207
209
  v2
208
210
  };
209
- const cssModules$9 = {
210
- "$style": style0$9
211
- };
212
- const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$9]]);
213
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
214
- __name: "NDVEmptyState",
215
- props: {
216
- title: {}
217
- },
218
- setup(__props) {
219
- return (_ctx, _cache) => {
220
- return openBlock(), createElementBlock("article", {
221
- class: normalizeClass(_ctx.$style.empty)
222
- }, [
223
- renderSlot(_ctx.$slots, "icon"),
224
- createBaseVNode("h1", {
225
- class: normalizeClass(_ctx.$style.title)
226
- }, toDisplayString(_ctx.title), 3),
227
- createBaseVNode("p", {
228
- class: normalizeClass(_ctx.$style.description)
229
- }, [
230
- renderSlot(_ctx.$slots, "description")
231
- ], 2)
232
- ], 2);
233
- };
234
- }
235
- });
236
- const empty$1 = "_empty_1x72k_2";
237
- const title$5 = "_title_1x72k_13";
238
- const description = "_description_1x72k_20";
239
- const style0$8 = {
240
- empty: empty$1,
241
- title: title$5,
242
- description
243
- };
244
- const cssModules$8 = {
245
- "$style": style0$8
211
+ const cssModules$6 = {
212
+ "$style": style0$6
246
213
  };
247
- const NDVEmptyState = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__cssModules", cssModules$8]]);
248
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
214
+ const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__cssModules", cssModules$6]]);
215
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
249
216
  __name: "RunInfo",
250
217
  props: {
251
218
  taskData: {},
@@ -350,16 +317,16 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
350
317
  }
351
318
  });
352
319
  const tooltipRow = "_tooltipRow_14r7d_123";
353
- const style0$7 = {
320
+ const style0$5 = {
354
321
  tooltipRow
355
322
  };
356
- const cssModules$7 = {
357
- "$style": style0$7
323
+ const cssModules$5 = {
324
+ "$style": style0$5
358
325
  };
359
- const RunInfo = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__cssModules", cssModules$7]]);
326
+ const RunInfo = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__cssModules", cssModules$5]]);
360
327
  var capitalizeExports = requireCapitalize();
361
328
  const capitalize = /* @__PURE__ */ getDefaultExportFromCjs(capitalizeExports);
362
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
329
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
363
330
  __name: "AiRunContentBlock",
364
331
  props: {
365
332
  runData: {},
@@ -396,7 +363,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
396
363
  }
397
364
  return (_ctx, _cache) => {
398
365
  const _component_N8nIcon = N8nIcon;
399
- const _component_NodeErrorView = _sfc_main$d;
366
+ const _component_NodeErrorView = _sfc_main$9;
400
367
  return openBlock(), createElementBlock("div", {
401
368
  class: normalizeClass(_ctx.$style.block)
402
369
  }, [
@@ -458,7 +425,7 @@ const blockHeader = "_blockHeader_wafm4_148";
458
425
  const blockTitle = "_blockTitle_wafm4_161";
459
426
  const blockToggle = "_blockToggle_wafm4_168";
460
427
  const error = "_error_wafm4_176";
461
- const style0$6 = {
428
+ const style0$4 = {
462
429
  block,
463
430
  blockContent,
464
431
  blockContentExpanded,
@@ -468,14 +435,14 @@ const style0$6 = {
468
435
  blockToggle,
469
436
  error
470
437
  };
471
- const cssModules$6 = {
472
- "$style": style0$6
438
+ const cssModules$4 = {
439
+ "$style": style0$4
473
440
  };
474
- const AiRunContentBlock = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__cssModules", cssModules$6]]);
475
- const _hoisted_1$4 = { key: 0 };
441
+ const AiRunContentBlock = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$4]]);
442
+ const _hoisted_1$2 = { key: 0 };
476
443
  const _hoisted_2$2 = { key: 1 };
477
444
  const _hoisted_3$2 = { key: 2 };
478
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
445
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
479
446
  __name: "RunDataAiContent",
480
447
  props: {
481
448
  inputData: {},
@@ -526,7 +493,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
526
493
  createBaseVNode("header", {
527
494
  class: normalizeClass(_ctx.$style.header)
528
495
  }, [
529
- runMeta.value?.node ? (openBlock(), createBlock(_sfc_main$c, {
496
+ runMeta.value?.node ? (openBlock(), createBlock(_sfc_main$8, {
530
497
  key: 0,
531
498
  class: normalizeClass(_ctx.$style.nodeIcon),
532
499
  "node-type": runMeta.value.node,
@@ -541,7 +508,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
541
508
  createBaseVNode("ul", {
542
509
  class: normalizeClass(_ctx.$style.meta)
543
510
  }, [
544
- runMeta.value?.startTimeMs ? (openBlock(), createElementBlock("li", _hoisted_1$4, toDisplayString(runMeta.value?.executionTimeMs) + "ms", 1)) : createCommentVNode("", true),
511
+ runMeta.value?.startTimeMs ? (openBlock(), createElementBlock("li", _hoisted_1$2, toDisplayString(runMeta.value?.executionTimeMs) + "ms", 1)) : createCommentVNode("", true),
545
512
  runMeta.value?.startTimeMs ? (openBlock(), createElementBlock("li", _hoisted_2$2, [
546
513
  createVNode(_component_n8n_tooltip, null, {
547
514
  content: withCtx(() => [
@@ -579,7 +546,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
579
546
  "tooltip-placement": "right"
580
547
  }, {
581
548
  default: withCtx(() => [
582
- createVNode(_sfc_main$e, { "consumed-tokens": consumedTokensSum.value }, null, 8, ["consumed-tokens"])
549
+ createVNode(_sfc_main$a, { "consumed-tokens": consumedTokensSum.value }, null, 8, ["consumed-tokens"])
583
550
  ]),
584
551
  _: 1
585
552
  })
@@ -606,26 +573,26 @@ const container$2 = "_container_dypaw_2";
606
573
  const nodeIcon$1 = "_nodeIcon_dypaw_5";
607
574
  const header$1 = "_header_dypaw_8";
608
575
  const headerWrap = "_headerWrap_dypaw_14";
609
- const title$4 = "_title_dypaw_18";
576
+ const title$2 = "_title_dypaw_18";
610
577
  const meta = "_meta_dypaw_25";
611
578
  const tokensUsage = "_tokensUsage_dypaw_41";
612
- const style0$5 = {
579
+ const style0$3 = {
613
580
  container: container$2,
614
581
  nodeIcon: nodeIcon$1,
615
582
  header: header$1,
616
583
  headerWrap,
617
- title: title$4,
584
+ title: title$2,
618
585
  meta,
619
586
  tokensUsage
620
587
  };
621
- const cssModules$5 = {
622
- "$style": style0$5
588
+ const cssModules$3 = {
589
+ "$style": style0$3
623
590
  };
624
- const RunDataAiContent = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__cssModules", cssModules$5]]);
625
- const _hoisted_1$3 = ["data-tree-depth"];
591
+ const RunDataAiContent = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$3]]);
592
+ const _hoisted_1$1 = ["data-tree-depth"];
626
593
  const _hoisted_2$1 = ["onClick"];
627
594
  const _hoisted_3$1 = ["textContent"];
628
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
595
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
629
596
  __name: "RunDataAi",
630
597
  props: {
631
598
  node: {},
@@ -645,11 +612,11 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
645
612
  const executionTree = computed(
646
613
  () => getTreeNodeData(props.node.name, props.workflow, aiData.value, props.runIndex)
647
614
  );
648
- function isTreeNodeSelected(node2) {
649
- return selectedRun.value.some((run) => run.node === node2.node && run.runIndex === node2.runIndex);
615
+ function isTreeNodeSelected(node) {
616
+ return selectedRun.value.some((run) => run.node === node.node && run.runIndex === node.runIndex);
650
617
  }
651
- function toggleTreeItem(node2) {
652
- node2.expanded = !node2.expanded;
618
+ function toggleTreeItem(node) {
619
+ node.expanded = !node.expanded;
653
620
  }
654
621
  function onItemClick(data) {
655
622
  const matchingRun = aiData.value?.find(
@@ -672,11 +639,11 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
672
639
  ];
673
640
  }
674
641
  function getNodeType(nodeName) {
675
- const node2 = workflowsStore.getNodeByName(nodeName);
676
- if (!node2) {
642
+ const node = workflowsStore.getNodeByName(nodeName);
643
+ if (!node) {
677
644
  return null;
678
645
  }
679
- const nodeType = nodeTypesStore.getNodeType(node2?.type);
646
+ const nodeType = nodeTypesStore.getNodeType(node?.type);
680
647
  return nodeType;
681
648
  }
682
649
  function selectFirst() {
@@ -734,7 +701,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
734
701
  createBaseVNode("span", {
735
702
  class: normalizeClass(_ctx.$style.leafLabel)
736
703
  }, [
737
- createVNode(_sfc_main$c, {
704
+ createVNode(_sfc_main$8, {
738
705
  "node-type": getNodeType(data.node),
739
706
  size: 17,
740
707
  class: normalizeClass(_ctx.$style.nodeIcon)
@@ -747,7 +714,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
747
714
  ]),
748
715
  _: 2
749
716
  }, 1032, ["disabled"])
750
- ], 14, _hoisted_1$3)
717
+ ], 14, _hoisted_1$1)
751
718
  ]),
752
719
  _: 1
753
720
  }, 8, ["data"])
@@ -794,33 +761,33 @@ const treeToggle = "_treeToggle_1qaq4_123";
794
761
  const leafLabel = "_leafLabel_1qaq4_131";
795
762
  const noData = "_noData_1qaq4_137";
796
763
  const empty = "_empty_1qaq4_145";
797
- const title$3 = "_title_1qaq4_149";
764
+ const title$1 = "_title_1qaq4_149";
798
765
  const tree = "_tree_1qaq4_123";
799
766
  const slim = "_slim_1qaq4_161";
800
- const runData$2 = "_runData_1qaq4_165";
767
+ const runData$1 = "_runData_1qaq4_165";
801
768
  const container$1 = "_container_1qaq4_171";
802
769
  const nodeIcon = "_nodeIcon_1qaq4_198";
803
770
  const isSelected = "_isSelected_1qaq4_204";
804
771
  const treeNode = "_treeNode_1qaq4_208";
805
- const style0$4 = {
772
+ const style0$2 = {
806
773
  treeToggle,
807
774
  leafLabel,
808
775
  noData,
809
776
  empty,
810
- title: title$3,
777
+ title: title$1,
811
778
  tree,
812
779
  slim,
813
- runData: runData$2,
780
+ runData: runData$1,
814
781
  container: container$1,
815
782
  nodeIcon,
816
783
  isSelected,
817
784
  treeNode
818
785
  };
819
- const cssModules$4 = {
820
- "$style": style0$4
786
+ const cssModules$2 = {
787
+ "$style": style0$2
821
788
  };
822
- const RunDataAi = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__cssModules", cssModules$4]]);
823
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
789
+ const RunDataAi = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$2]]);
790
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
824
791
  __name: "OutputPanel",
825
792
  props: {
826
793
  workflow: {},
@@ -865,18 +832,19 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
865
832
  ]);
866
833
  const runDataRef = ref();
867
834
  const collapsingColumnName = ref(null);
868
- const node2 = computed(() => {
835
+ const node = computed(() => {
869
836
  return ndvStore.activeNode ?? void 0;
870
837
  });
838
+ const { hasNodeRun, workflowExecution, workflowRunData } = useExecutionData({ node });
871
839
  const isTriggerNode = computed(() => {
872
- return !!node2.value && nodeTypesStore.isTriggerNode(node2.value.type);
840
+ return !!node.value && nodeTypesStore.isTriggerNode(node.value.type);
873
841
  });
874
842
  const hasAiMetadata = computed(() => {
875
843
  if (isNodeRunning.value || !workflowRunData.value) {
876
844
  return false;
877
845
  }
878
- if (node2.value) {
879
- const connectedSubNodes = props.workflow.getParentNodes(node2.value.name, "ALL_NON_MAIN");
846
+ if (node.value) {
847
+ const connectedSubNodes = props.workflow.getParentNodes(node.value.name, "ALL_NON_MAIN");
880
848
  const resultData = connectedSubNodes.map(workflowsStore.getWorkflowResultDataByNodeName);
881
849
  return resultData && Array.isArray(resultData) && resultData.length > 0;
882
850
  }
@@ -884,69 +852,50 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
884
852
  });
885
853
  const hasError = computed(
886
854
  () => Boolean(
887
- workflowRunData.value && node2.value && workflowRunData.value[node2.value.name]?.[props.runIndex]?.error
855
+ workflowRunData.value && node.value && workflowRunData.value[node.value.name]?.[props.runIndex]?.error
888
856
  )
889
857
  );
890
858
  const defaultOutputMode = computed(() => {
891
859
  return hasError.value && hasAiMetadata.value ? OUTPUT_TYPE.LOGS : OUTPUT_TYPE.REGULAR;
892
860
  });
893
861
  const isNodeRunning = computed(() => {
894
- return workflowRunning.value && !!node2.value && workflowsStore.isNodeExecuting(node2.value.name);
862
+ return workflowRunning.value && !!node.value && workflowsStore.isNodeExecuting(node.value.name);
895
863
  });
896
864
  const workflowRunning = computed(() => workflowsStore.isWorkflowRunning);
897
- const workflowExecution = computed(() => {
898
- return workflowsStore.getWorkflowExecution;
899
- });
900
- const workflowRunData = computed(() => {
901
- if (workflowExecution.value === null) {
902
- return null;
903
- }
904
- const executionData = workflowExecution.value.data;
905
- if (!executionData?.resultData?.runData) {
906
- return null;
907
- }
908
- return executionData.resultData.runData;
909
- });
910
- const hasNodeRun = computed(() => {
911
- if (workflowsStore.subWorkflowExecutionError) return true;
912
- return Boolean(
913
- node2.value && workflowRunData.value && workflowRunData.value.hasOwnProperty(node2.value.name)
914
- );
915
- });
916
865
  const runTaskData = computed(() => {
917
- if (!node2.value || workflowExecution.value === null) {
866
+ if (!node.value || workflowExecution.value === null) {
918
867
  return null;
919
868
  }
920
869
  const runData2 = workflowRunData.value;
921
- if (!runData2?.hasOwnProperty(node2.value.name)) {
870
+ if (!runData2?.hasOwnProperty(node.value.name)) {
922
871
  return null;
923
872
  }
924
- if (runData2[node2.value.name].length <= props.runIndex) {
873
+ if (runData2[node.value.name].length <= props.runIndex) {
925
874
  return null;
926
875
  }
927
- return runData2[node2.value.name][props.runIndex];
876
+ return runData2[node.value.name][props.runIndex];
928
877
  });
929
878
  const runsCount = computed(() => {
930
- if (node2.value === null) {
879
+ if (node.value === null) {
931
880
  return 0;
932
881
  }
933
882
  const runData2 = workflowRunData.value;
934
- if (runData2 === null || node2.value && !runData2.hasOwnProperty(node2.value.name)) {
883
+ if (runData2 === null || node.value && !runData2.hasOwnProperty(node.value.name)) {
935
884
  return 0;
936
885
  }
937
- if (node2.value && runData2[node2.value.name].length) {
938
- return runData2[node2.value.name].length;
886
+ if (node.value && runData2[node.value.name].length) {
887
+ return runData2[node.value.name].length;
939
888
  }
940
889
  return 0;
941
890
  });
942
891
  const staleData = computed(() => {
943
- if (!node2.value) {
892
+ if (!node.value) {
944
893
  return false;
945
894
  }
946
895
  if (settings.partialExecutionVersion === 2) {
947
- return dirtinessByName.value[node2.value.name] === CanvasNodeDirtiness.PARAMETERS_UPDATED;
896
+ return dirtinessByName.value[node.value.name] === CanvasNodeDirtiness.PARAMETERS_UPDATED;
948
897
  }
949
- const updatedAt = workflowsStore.getParametersLastUpdate(node2.value.name);
898
+ const updatedAt = workflowsStore.getParametersLastUpdate(node.value.name);
950
899
  if (!updatedAt || !runTaskData.value) {
951
900
  return false;
952
901
  }
@@ -960,10 +909,10 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
960
909
  return pinnedData.isValidNodeType.value && !props.isReadOnly;
961
910
  });
962
911
  const allToolsWereUnusedNotice = computed(() => {
963
- if (!node2.value || runsCount.value === 0 || hasError.value) return void 0;
912
+ if (!node.value || runsCount.value === 0 || hasError.value) return void 0;
964
913
  if (pinnedData.hasData.value) return void 0;
965
914
  const toolsAvailable = props.workflow.getParentNodes(
966
- node2.value.name,
915
+ node.value.name,
967
916
  NodeConnectionTypes.AiTool,
968
917
  1
969
918
  );
@@ -990,7 +939,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
990
939
  telemetry.track("User clicked ndv link", {
991
940
  workflow_id: workflowsStore.workflowId,
992
941
  push_ref: props.pushRef,
993
- node_type: node2.value?.type,
942
+ node_type: node.value?.type,
994
943
  pane: "output",
995
944
  type: "insert-test-data"
996
945
  });
@@ -1004,7 +953,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1004
953
  const openSettings = () => {
1005
954
  emit("openSettings");
1006
955
  telemetry.track("User clicked ndv link", {
1007
- node_type: node2.value?.type,
956
+ node_type: node.value?.type,
1008
957
  workflow_id: workflowsStore.workflowId,
1009
958
  push_ref: props.pushRef,
1010
959
  pane: "output",
@@ -1030,15 +979,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1030
979
  }
1031
980
  return (_ctx, _cache) => {
1032
981
  const _component_N8nIcon = N8nIcon;
1033
- const _component_NodeExecuteButton = _sfc_main$f;
1034
- const _component_i18n_t = resolveComponent("i18n-t");
1035
- const _component_NDVEmptyState = NDVEmptyState;
982
+ const _component_NodeExecuteButton = _sfc_main$b;
983
+ const _component_NDVEmptyState = __unplugin_components_2;
1036
984
  const _directive_n8n_html = resolveDirective("n8n-html");
1037
985
  return openBlock(), createBlock(RunData, {
1038
986
  ref_key: "runDataRef",
1039
987
  ref: runDataRef,
1040
988
  class: normalizeClass(_ctx.$style.runData),
1041
- node: node2.value,
989
+ node: node.value,
1042
990
  workflow: _ctx.workflow,
1043
991
  "run-index": _ctx.runIndex,
1044
992
  "linked-runs": _ctx.linkedRuns,
@@ -1083,7 +1031,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1083
1031
  key: 1,
1084
1032
  class: normalizeClass([_ctx.$style.title, { [_ctx.$style.titleV2]: isNDVV2.value }])
1085
1033
  }, toDisplayString(unref(i18n).baseText(outputPanelEditMode.value.enabled ? "ndv.output.edit" : "ndv.output")), 3)),
1086
- hasNodeRun.value && !unref(pinnedData).hasData.value && (runsCount.value === 1 || runsCount.value > 0 && staleData.value) ? withDirectives((openBlock(), createBlock(RunInfo, {
1034
+ unref(hasNodeRun) && !unref(pinnedData).hasData.value && (runsCount.value === 1 || runsCount.value > 0 && staleData.value) ? withDirectives((openBlock(), createBlock(RunInfo, {
1087
1035
  key: 2,
1088
1036
  "task-data": runTaskData.value,
1089
1037
  "has-stale-data": staleData.value,
@@ -1101,9 +1049,10 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1101
1049
  )
1102
1050
  }, createSlots({
1103
1051
  description: withCtx(() => [
1104
- createVNode(_component_i18n_t, {
1052
+ createVNode(unref(I18nT), {
1105
1053
  tag: "span",
1106
- keypath: unref(isSubNodeType) ? "ndv.output.runNodeHintSubNode" : "ndv.output.noOutputData.v2.description"
1054
+ keypath: unref(isSubNodeType) ? "ndv.output.runNodeHintSubNode" : "ndv.output.noOutputData.v2.description",
1055
+ scope: "global"
1107
1056
  }, {
1108
1057
  link: withCtx(() => [
1109
1058
  createVNode(_component_NodeExecuteButton, {
@@ -1204,7 +1153,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1204
1153
  _: 1
1205
1154
  }),
1206
1155
  withDirectives(createVNode(unref(N8nText), null, null, 512), [
1207
- [_directive_n8n_html, unref(waitingNodeTooltip)(node2.value)]
1156
+ [_directive_n8n_html, unref(waitingNodeTooltip)(node.value)]
1208
1157
  ])
1209
1158
  ]),
1210
1159
  "no-output-data": withCtx(() => [
@@ -1252,11 +1201,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1252
1201
  ]),
1253
1202
  _: 2
1254
1203
  }, [
1255
- outputMode.value === "logs" && node2.value ? {
1204
+ outputMode.value === "logs" && node.value ? {
1256
1205
  name: "content",
1257
1206
  fn: withCtx(() => [
1258
1207
  createVNode(RunDataAi, {
1259
- node: node2.value,
1208
+ node: node.value,
1260
1209
  "run-index": _ctx.runIndex,
1261
1210
  workflow: _ctx.workflow
1262
1211
  }, null, 8, ["node", "run-index", "workflow"])
@@ -1274,826 +1223,30 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1274
1223
  };
1275
1224
  }
1276
1225
  });
1277
- const runData$1 = "_runData_16mi2_128";
1226
+ const runData = "_runData_16mi2_128";
1278
1227
  const outputTypeSelect = "_outputTypeSelect_16mi2_132";
1279
- const titleSection$1 = "_titleSection_16mi2_137";
1280
- const titleSectionV2$1 = "_titleSectionV2_16mi2_145";
1281
- const title$2 = "_title_16mi2_137";
1282
- const titleV2$1 = "_titleV2_16mi2_157";
1283
- const noOutputData$1 = "_noOutputData_16mi2_162";
1284
- const recoveredOutputData$1 = "_recoveredOutputData_16mi2_172";
1228
+ const titleSection = "_titleSection_16mi2_137";
1229
+ const titleSectionV2 = "_titleSectionV2_16mi2_145";
1230
+ const title = "_title_16mi2_137";
1231
+ const titleV2 = "_titleV2_16mi2_157";
1232
+ const noOutputData = "_noOutputData_16mi2_162";
1233
+ const recoveredOutputData = "_recoveredOutputData_16mi2_172";
1285
1234
  const link = "_link_16mi2_181";
1286
- const style0$3 = {
1287
- runData: runData$1,
1288
- outputTypeSelect,
1289
- titleSection: titleSection$1,
1290
- titleSectionV2: titleSectionV2$1,
1291
- title: title$2,
1292
- titleV2: titleV2$1,
1293
- noOutputData: noOutputData$1,
1294
- recoveredOutputData: recoveredOutputData$1,
1295
- link
1296
- };
1297
- const cssModules$3 = {
1298
- "$style": style0$3
1299
- };
1300
- const OutputPanel = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$3]]);
1301
- const _hoisted_1$2 = { key: 0 };
1302
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1303
- __name: "InputNodeSelect",
1304
- props: {
1305
- nodes: {},
1306
- workflow: {},
1307
- modelValue: {}
1308
- },
1309
- emits: ["update:model-value"],
1310
- setup(__props, { emit: __emit }) {
1311
- const props = __props;
1312
- const emit = __emit;
1313
- const i18n = useI18n();
1314
- const workflowsStore = useWorkflowsStore();
1315
- const nodeTypesStore = useNodeTypesStore();
1316
- const ndvStore = useNDVStore();
1317
- const selectedInputNode = computed(() => workflowsStore.getNodeByName(props.modelValue ?? ""));
1318
- const selectedInputNodeType = computed(() => {
1319
- const node2 = selectedInputNode.value;
1320
- if (!node2) return null;
1321
- return nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
1322
- });
1323
- const inputNodes = computed(
1324
- () => props.nodes?.map((node2) => {
1325
- const fullNode = workflowsStore.getNodeByName(node2.name);
1326
- if (!fullNode) return null;
1327
- return {
1328
- node: fullNode,
1329
- type: nodeTypesStore.getNodeType(fullNode.type, fullNode.typeVersion),
1330
- depth: node2.depth
1331
- };
1332
- }).filter(isPresent) ?? []
1333
- );
1334
- const activeNode = computed(() => ndvStore.activeNode);
1335
- const activeNodeType = computed(() => {
1336
- const node2 = activeNode.value;
1337
- if (!node2) return null;
1338
- return nodeTypesStore.getNodeType(node2.type, node2.typeVersion);
1339
- });
1340
- const isMultiInputNode = computed(() => {
1341
- const nodeType = activeNodeType.value;
1342
- return nodeType !== null && nodeType.inputs.length > 1;
1343
- });
1344
- const connectedTo = (nodeName) => {
1345
- const connections = ndvStore.ndvNodeInputNumber[nodeName];
1346
- if (!connections) return "";
1347
- if (connections.length === 1) {
1348
- return `Input ${ndvStore.ndvNodeInputNumber[nodeName]}`;
1349
- }
1350
- return `Inputs ${ndvStore.ndvNodeInputNumber[nodeName].join(", ")}`;
1351
- };
1352
- function getMultipleNodesText(nodeName) {
1353
- if (!nodeName || !isMultiInputNode.value || !activeNode.value || !activeNodeType.value?.inputNames)
1354
- return "";
1355
- const activeNodeConnections = props.workflow.connectionsByDestinationNode[activeNode.value.name].main || [];
1356
- const connectedInputIndexes = activeNodeConnections.reduce((acc, node2, index) => {
1357
- if (node2?.[0] && node2[0].node === nodeName) return [...acc, index];
1358
- return acc;
1359
- }, []);
1360
- const connectedInputs = connectedInputIndexes.map(
1361
- (inputIndex) => activeNodeType.value?.inputNames?.[inputIndex]
1362
- );
1363
- if (connectedInputs.length === 0) return "";
1364
- return `(${connectedInputs.join(" & ")})`;
1365
- }
1366
- function title2(nodeName, length = 30) {
1367
- return truncate(nodeName, length);
1368
- }
1369
- function subtitle2(nodeName, depth) {
1370
- const multipleNodesText = getMultipleNodesText(nodeName);
1371
- if (multipleNodesText) return multipleNodesText;
1372
- return i18n.baseText("ndv.input.nodeDistance", { adjustToNumber: depth });
1373
- }
1374
- function onInputNodeChange(value) {
1375
- emit("update:model-value", value);
1376
- }
1377
- return (_ctx, _cache) => {
1378
- const _component_n8n_option = _sfc_main$g;
1379
- const _component_n8n_select = N8nSelect;
1380
- return openBlock(), createBlock(_component_n8n_select, {
1381
- "model-value": _ctx.modelValue,
1382
- "no-data-text": unref(i18n).baseText("ndv.input.noNodesFound"),
1383
- placeholder: unref(i18n).baseText("ndv.input.parentNodes"),
1384
- class: normalizeClass(_ctx.$style.select),
1385
- teleported: "",
1386
- size: "small",
1387
- filterable: "",
1388
- "data-test-id": "ndv-input-select",
1389
- "onUpdate:modelValue": onInputNodeChange
1390
- }, {
1391
- prefix: withCtx(() => [
1392
- createVNode(_sfc_main$c, {
1393
- disabled: selectedInputNode.value?.disabled,
1394
- "node-type": selectedInputNodeType.value,
1395
- size: 14,
1396
- shrink: false
1397
- }, null, 8, ["disabled", "node-type"])
1398
- ]),
1399
- default: withCtx(() => [
1400
- (openBlock(true), createElementBlock(Fragment, null, renderList(inputNodes.value, ({ node: node2, type, depth }) => {
1401
- return openBlock(), createBlock(_component_n8n_option, {
1402
- key: node2.name,
1403
- value: node2.name,
1404
- class: normalizeClass([_ctx.$style.node, { [_ctx.$style.disabled]: node2.disabled }]),
1405
- label: `${title2(node2.name)} ${getMultipleNodesText(node2.name)}`,
1406
- "data-test-id": "ndv-input-option"
1407
- }, {
1408
- default: withCtx(() => [
1409
- createVNode(_sfc_main$c, {
1410
- disabled: node2.disabled,
1411
- "node-type": type,
1412
- size: 14,
1413
- shrink: false,
1414
- class: normalizeClass(_ctx.$style.icon)
1415
- }, null, 8, ["disabled", "node-type", "class"]),
1416
- createBaseVNode("span", {
1417
- class: normalizeClass(_ctx.$style.title)
1418
- }, [
1419
- createTextVNode(toDisplayString(title2(node2.name)) + " ", 1),
1420
- node2.disabled ? (openBlock(), createElementBlock("span", _hoisted_1$2, "(" + toDisplayString(unref(i18n).baseText("node.disabled")) + ")", 1)) : createCommentVNode("", true)
1421
- ], 2),
1422
- createBaseVNode("span", {
1423
- class: normalizeClass(_ctx.$style.subtitle)
1424
- }, toDisplayString(connectedTo(node2.name) ? connectedTo(node2.name) : subtitle2(node2.name, depth)), 3)
1425
- ]),
1426
- _: 2
1427
- }, 1032, ["value", "class", "label"]);
1428
- }), 128))
1429
- ]),
1430
- _: 1
1431
- }, 8, ["model-value", "no-data-text", "placeholder", "class"]);
1432
- };
1433
- }
1434
- });
1435
- const select = "_select_wv0ev_123";
1436
- const node = "_node_wv0ev_132";
1437
- const icon = "_icon_wv0ev_140";
1438
- const title$1 = "_title_wv0ev_144";
1439
- const disabled = "_disabled_wv0ev_153";
1440
- const subtitle = "_subtitle_wv0ev_157";
1441
- const style0$2 = {
1442
- select,
1443
- node,
1444
- icon,
1445
- title: title$1,
1446
- disabled,
1447
- subtitle
1448
- };
1449
- const cssModules$2 = {
1450
- "$style": style0$2
1451
- };
1452
- const InputNodeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$2]]);
1453
- const _sfc_main$2 = {};
1454
- const _hoisted_1$1 = {
1455
- width: "112",
1456
- height: "80",
1457
- viewBox: "0 0 112 80",
1458
- fill: "none",
1459
- xmlns: "http://www.w3.org/2000/svg",
1460
- "xmlns:xlink": "http://www.w3.org/1999/xlink"
1461
- };
1462
- function _sfc_render(_ctx, _cache) {
1463
- return openBlock(), createElementBlock("svg", _hoisted_1$1, _cache[0] || (_cache[0] = [
1464
- createStaticVNode('<mask id="mask0_489_46042" style="mask-type:alpha;" maskUnits="userSpaceOnUse" x="0" y="0" width="112" height="80"><rect width="112" height="80" fill="url(#paint0_linear_489_46042)"></rect></mask><g mask="url(#mask0_489_46042)"><rect x="-0.5" width="112" height="80" fill="url(#pattern0)" fill-opacity="0.6"></rect></g><defs><pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1"><use xlink:href="#image0_489_46042" transform="scale(0.00357143 0.005)"></use></pattern><linearGradient id="paint0_linear_489_46042" x1="90.5" y1="40.4494" x2="112.5" y2="40.4494" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient><image id="image0_489_46042" width="280" height="200" xlink:href="data:image/png;base64,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"></image></defs>', 3)
1465
- ]));
1466
- }
1467
- const WireMeUp = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render]]);
1468
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1469
- __name: "InputPanel",
1470
- props: {
1471
- runIndex: {},
1472
- workflow: {},
1473
- pushRef: {},
1474
- currentNodeName: { default: "" },
1475
- canLinkRuns: { type: Boolean, default: false },
1476
- linkedRuns: { type: Boolean },
1477
- readOnly: { type: Boolean, default: false },
1478
- isProductionExecutionPreview: { type: Boolean, default: false },
1479
- isPaneActive: { type: Boolean, default: false },
1480
- displayMode: {}
1481
- },
1482
- emits: ["itemHover", "tableMounted", "linkRun", "unlinkRun", "runChange", "search", "changeInputNode", "execute", "activatePane", "displayModeChange"],
1483
- setup(__props, { emit: __emit }) {
1484
- const props = __props;
1485
- const emit = __emit;
1486
- const i18n = useI18n();
1487
- const telemetry = useTelemetry();
1488
- const showDraggableHintWithDelay = ref(false);
1489
- const draggableHintShown = ref(false);
1490
- const mappedNode2 = ref(null);
1491
- const collapsingColumnName = ref(null);
1492
- const inputModes = [
1493
- { value: "mapping", label: i18n.baseText("ndv.input.mapping") },
1494
- { value: "debugging", label: i18n.baseText("ndv.input.fromAI") }
1495
- ];
1496
- const nodeTypesStore = useNodeTypesStore();
1497
- const ndvStore = useNDVStore();
1498
- const workflowsStore = useWorkflowsStore();
1499
- const posthogStore = usePostHog();
1500
- const {
1501
- activeNode,
1502
- focusedMappableInput,
1503
- isMappingOnboarded: isUserOnboarded
1504
- } = storeToRefs(ndvStore);
1505
- const rootNode = computed(() => {
1506
- if (!activeNode.value) return null;
1507
- return props.workflow.getChildNodes(activeNode.value.name, "ALL").at(0) ?? null;
1508
- });
1509
- const hasRootNodeRun = computed(() => {
1510
- return !!(rootNode.value && workflowsStore.getWorkflowExecution?.data?.resultData.runData[rootNode.value]);
1511
- });
1512
- const inputMode = ref(
1513
- // Show debugging mode by default only when the node has already run
1514
- activeNode.value && workflowsStore.getWorkflowExecution?.data?.resultData.runData[activeNode.value.name] ? "debugging" : "mapping"
1515
- );
1516
- const isMappingMode = computed(() => isActiveNodeConfig.value && inputMode.value === "mapping");
1517
- const showDraggableHint = computed(() => {
1518
- const toIgnore = [START_NODE_TYPE, MANUAL_TRIGGER_NODE_TYPE, CRON_NODE_TYPE, INTERVAL_NODE_TYPE];
1519
- if (!currentNode.value || toIgnore.includes(currentNode.value.type)) {
1520
- return false;
1521
- }
1522
- return !!focusedMappableInput.value && !isUserOnboarded.value;
1523
- });
1524
- const isActiveNodeConfig = computed(() => {
1525
- let inputs = activeNodeType.value?.inputs ?? [];
1526
- let outputs = activeNodeType.value?.outputs ?? [];
1527
- if (props.workflow && activeNode.value) {
1528
- const node2 = props.workflow.getNode(activeNode.value.name);
1529
- if (node2 && activeNodeType.value) {
1530
- inputs = getNodeInputs(props.workflow, node2, activeNodeType.value);
1531
- outputs = getNodeOutputs(props.workflow, node2, activeNodeType.value);
1532
- }
1533
- }
1534
- if (!Array.isArray(inputs)) {
1535
- inputs = [];
1536
- }
1537
- if (!Array.isArray(outputs)) {
1538
- outputs = [];
1539
- }
1540
- return inputs.length === 0 || inputs.every((input) => filterOutConnectionType(input, NodeConnectionTypes.Main)) && outputs.find((output) => filterOutConnectionType(output, NodeConnectionTypes.Main));
1541
- });
1542
- const isMappingEnabled = computed(() => {
1543
- if (props.readOnly) return false;
1544
- if (isActiveNodeConfig.value) return isMappingMode.value && mappedNode2.value !== null;
1545
- return true;
1546
- });
1547
- const isExecutingPrevious = computed(() => {
1548
- if (!workflowsStore.isWorkflowRunning) {
1549
- return false;
1550
- }
1551
- const triggeredNode = workflowsStore.executedNode;
1552
- const executingNode = workflowsStore.executingNode;
1553
- if (activeNode.value && triggeredNode === activeNode.value.name && workflowsStore.isNodeExecuting(props.currentNodeName)) {
1554
- return true;
1555
- }
1556
- if (executingNode.length || triggeredNode) {
1557
- return !!parentNodes.value.find(
1558
- (node2) => workflowsStore.isNodeExecuting(node2.name) || node2.name === triggeredNode
1559
- );
1560
- }
1561
- return false;
1562
- });
1563
- const rootNodesParents = computed(() => {
1564
- if (!rootNode.value) return [];
1565
- return props.workflow.getParentNodesByDepth(rootNode.value);
1566
- });
1567
- const currentNode = computed(() => {
1568
- if (isActiveNodeConfig.value) {
1569
- if (mappedNode2.value) {
1570
- return workflowsStore.getNodeByName(mappedNode2.value);
1571
- }
1572
- return activeNode.value;
1573
- }
1574
- return workflowsStore.getNodeByName(props.currentNodeName ?? "");
1575
- });
1576
- const connectedCurrentNodeOutputs = computed(() => {
1577
- const search = parentNodes.value.find(({ name }) => name === props.currentNodeName);
1578
- return search?.indicies;
1579
- });
1580
- const parentNodes = computed(() => {
1581
- if (!activeNode.value) {
1582
- return [];
1583
- }
1584
- const parents = props.workflow.getParentNodesByDepth(activeNode.value.name).filter((parent) => parent.name !== activeNode.value?.name);
1585
- return uniqBy(parents, (parent) => parent.name);
1586
- });
1587
- const currentNodeDepth = computed(() => {
1588
- const node2 = parentNodes.value.find(
1589
- (parent) => currentNode.value && parent.name === currentNode.value.name
1590
- );
1591
- return node2?.depth ?? -1;
1592
- });
1593
- const activeNodeType = computed(() => {
1594
- if (!activeNode.value) return null;
1595
- return nodeTypesStore.getNodeType(activeNode.value.type, activeNode.value.typeVersion);
1596
- });
1597
- const waitingMessage = computed(() => {
1598
- const parentNode = parentNodes.value[0];
1599
- return parentNode && waitingNodeTooltip(workflowsStore.getNodeByName(parentNode.name));
1600
- });
1601
- const isNDVV2 = computed(
1602
- () => posthogStore.isVariantEnabled(
1603
- NDV_UI_OVERHAUL_EXPERIMENT.name,
1604
- NDV_UI_OVERHAUL_EXPERIMENT.variant
1605
- )
1606
- );
1607
- watch(
1608
- inputMode,
1609
- (mode) => {
1610
- onRunIndexChange(-1);
1611
- if (mode === "mapping") {
1612
- onUnlinkRun();
1613
- mappedNode2.value = rootNodesParents.value[0]?.name ?? null;
1614
- } else {
1615
- mappedNode2.value = null;
1616
- }
1617
- },
1618
- { immediate: true }
1619
- );
1620
- watch(showDraggableHint, (curr, prev) => {
1621
- if (curr && !prev) {
1622
- setTimeout(() => {
1623
- if (draggableHintShown.value) {
1624
- return;
1625
- }
1626
- showDraggableHintWithDelay.value = showDraggableHint.value;
1627
- if (showDraggableHintWithDelay.value) {
1628
- draggableHintShown.value = true;
1629
- telemetry.track("User viewed data mapping tooltip", {
1630
- type: "unexecuted input pane"
1631
- });
1632
- }
1633
- }, 1e3);
1634
- } else if (!curr) {
1635
- showDraggableHintWithDelay.value = false;
1636
- }
1637
- });
1638
- function filterOutConnectionType(item, type) {
1639
- if (!item) return false;
1640
- return typeof item === "string" ? item !== type : item.type !== type;
1641
- }
1642
- function onInputModeChange(val) {
1643
- inputMode.value = val;
1644
- }
1645
- function onMappedNodeSelected(val) {
1646
- mappedNode2.value = val;
1647
- onRunIndexChange(0);
1648
- onUnlinkRun();
1649
- }
1650
- function onNodeExecute() {
1651
- emit("execute");
1652
- if (activeNode.value) {
1653
- telemetry.track("User clicked ndv button", {
1654
- node_type: activeNode.value.type,
1655
- workflow_id: workflowsStore.workflowId,
1656
- push_ref: props.pushRef,
1657
- pane: "input",
1658
- type: "executePrevious"
1659
- });
1660
- }
1661
- }
1662
- function onRunIndexChange(run) {
1663
- emit("runChange", run);
1664
- }
1665
- function onLinkRun() {
1666
- emit("linkRun");
1667
- }
1668
- function onUnlinkRun() {
1669
- emit("unlinkRun");
1670
- }
1671
- function onSearch(search) {
1672
- emit("search", search);
1673
- }
1674
- function onItemHover(item) {
1675
- emit("itemHover", item);
1676
- }
1677
- function onTableMounted(event) {
1678
- emit("tableMounted", event);
1679
- }
1680
- function onInputNodeChange(value) {
1681
- const index = parentNodes.value.findIndex((node2) => node2.name === value) + 1;
1682
- emit("changeInputNode", value, index);
1683
- }
1684
- function onConnectionHelpClick() {
1685
- if (activeNode.value) {
1686
- telemetry.track("User clicked ndv link", {
1687
- node_type: activeNode.value.type,
1688
- workflow_id: workflowsStore.workflowId,
1689
- push_ref: props.pushRef,
1690
- pane: "input",
1691
- type: "not-connected-help"
1692
- });
1693
- }
1694
- }
1695
- function activatePane() {
1696
- emit("activatePane");
1697
- }
1698
- function handleChangeCollapsingColumn(columnName) {
1699
- collapsingColumnName.value = columnName;
1700
- }
1701
- return (_ctx, _cache) => {
1702
- const _component_i18n_t = resolveComponent("i18n-t");
1703
- const _directive_n8n_html = resolveDirective("n8n-html");
1704
- return openBlock(), createBlock(RunData, {
1705
- class: normalizeClass(_ctx.$style.runData),
1706
- node: currentNode.value,
1707
- nodes: isMappingMode.value ? rootNodesParents.value : parentNodes.value,
1708
- workflow: _ctx.workflow,
1709
- "run-index": isMappingMode.value ? 0 : _ctx.runIndex,
1710
- "linked-runs": _ctx.linkedRuns,
1711
- "can-link-runs": !mappedNode2.value && _ctx.canLinkRuns,
1712
- "too-much-data-title": unref(i18n).baseText("ndv.input.tooMuchData.title"),
1713
- "no-data-in-branch-message": unref(i18n).baseText("ndv.input.noOutputDataInBranch"),
1714
- "is-executing": isExecutingPrevious.value,
1715
- "executing-message": unref(i18n).baseText("ndv.input.executingPrevious"),
1716
- "push-ref": _ctx.pushRef,
1717
- "override-outputs": connectedCurrentNodeOutputs.value,
1718
- "mapping-enabled": isMappingEnabled.value,
1719
- "distance-from-active": currentNodeDepth.value,
1720
- "is-production-execution-preview": _ctx.isProductionExecutionPreview,
1721
- "is-pane-active": _ctx.isPaneActive,
1722
- "display-mode": _ctx.displayMode,
1723
- "pane-type": "input",
1724
- "data-test-id": "ndv-input-panel",
1725
- "disable-ai-content": true,
1726
- "collapsing-table-column-name": collapsingColumnName.value,
1727
- onActivatePane: activatePane,
1728
- onItemHover,
1729
- onLinkRun,
1730
- onUnlinkRun,
1731
- onRunChange: onRunIndexChange,
1732
- onTableMounted,
1733
- onSearch,
1734
- onDisplayModeChange: _cache[2] || (_cache[2] = ($event) => emit("displayModeChange", $event)),
1735
- onCollapsingTableColumnChanged: handleChangeCollapsingColumn
1736
- }, createSlots({
1737
- header: withCtx(() => [
1738
- createBaseVNode("div", {
1739
- class: normalizeClass([_ctx.$style.titleSection, { [_ctx.$style.titleSectionV2]: isNDVV2.value }])
1740
- }, [
1741
- createBaseVNode("span", {
1742
- class: normalizeClass([_ctx.$style.title, { [_ctx.$style.titleV2]: isNDVV2.value }])
1743
- }, toDisplayString(unref(i18n).baseText("ndv.input")), 3),
1744
- isActiveNodeConfig.value && !_ctx.readOnly ? (openBlock(), createBlock(unref(N8nRadioButtons), {
1745
- key: 0,
1746
- "data-test-id": "input-panel-mode",
1747
- options: inputModes,
1748
- "model-value": inputMode.value,
1749
- "onUpdate:modelValue": onInputModeChange
1750
- }, null, 8, ["model-value"])) : createCommentVNode("", true)
1751
- ], 2)
1752
- ]),
1753
- "input-select": withCtx(() => [
1754
- parentNodes.value.length && _ctx.currentNodeName ? (openBlock(), createBlock(InputNodeSelect, {
1755
- key: 0,
1756
- "model-value": _ctx.currentNodeName,
1757
- workflow: _ctx.workflow,
1758
- nodes: parentNodes.value,
1759
- "onUpdate:modelValue": onInputNodeChange
1760
- }, null, 8, ["model-value", "workflow", "nodes"])) : createCommentVNode("", true)
1761
- ]),
1762
- "node-not-run": withCtx(() => [
1763
- isActiveNodeConfig.value && rootNode.value || parentNodes.value.length ? (openBlock(), createElementBlock("div", {
1764
- key: 0,
1765
- class: normalizeClass(_ctx.$style.noOutputData)
1766
- }, [
1767
- isNDVV2.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
1768
- isMappingEnabled.value || hasRootNodeRun.value ? (openBlock(), createBlock(NDVEmptyState, {
1769
- key: 0,
1770
- title: unref(i18n).baseText("ndv.input.noOutputData.v2.title")
1771
- }, {
1772
- icon: withCtx(() => [
1773
- createVNode(unref(N8nIcon), {
1774
- icon: "arrow-right-to-line",
1775
- size: "xlarge"
1776
- })
1777
- ]),
1778
- description: withCtx(() => [
1779
- createVNode(_component_i18n_t, {
1780
- tag: "span",
1781
- keypath: "ndv.input.noOutputData.v2.description"
1782
- }, {
1783
- link: withCtx(() => [
1784
- createVNode(_sfc_main$f, {
1785
- "hide-icon": "",
1786
- transparent: "",
1787
- type: "secondary",
1788
- "node-name": (isActiveNodeConfig.value ? rootNode.value : unref(activeNode)?.name) ?? "",
1789
- label: unref(i18n).baseText("ndv.input.noOutputData.v2.action"),
1790
- tooltip: unref(i18n).baseText("ndv.input.noOutputData.v2.tooltip"),
1791
- "tooltip-placement": "bottom",
1792
- "telemetry-source": "inputs",
1793
- "data-test-id": "execute-previous-node",
1794
- onExecute: onNodeExecute
1795
- }, null, 8, ["node-name", "label", "tooltip"]),
1796
- _cache[4] || (_cache[4] = createBaseVNode("br", null, null, -1))
1797
- ]),
1798
- _: 1
1799
- })
1800
- ]),
1801
- _: 1
1802
- }, 8, ["title"])) : (openBlock(), createBlock(NDVEmptyState, {
1803
- key: 1,
1804
- title: unref(i18n).baseText("ndv.input.rootNodeHasNotRun.title")
1805
- }, {
1806
- icon: withCtx(() => _cache[5] || (_cache[5] = [
1807
- createBaseVNode("svg", {
1808
- width: "16px",
1809
- viewBox: "0 0 16 14",
1810
- fill: "none",
1811
- xmlns: "http://www.w3.org/2000/svg"
1812
- }, [
1813
- createBaseVNode("path", {
1814
- d: "M11 2C10.4375 2 10 1.5625 10 1C10 0.46875 10.4375 0 11 0H13C14.6562 0 16 1.34375 16 3V11C16 12.6562 14.6562 14 13 14H11C10.4375 14 10 13.5625 10 13C10 12.4688 10.4375 12 11 12H13C13.5312 12 14 11.5625 14 11V3C14 2.46875 13.5312 2 13 2H11ZM10.6875 7.71875L6.6875 11.7188C6.3125 12.125 5.65625 12.125 5.28125 11.7188C4.875 11.3438 4.875 10.6875 5.28125 10.3125L7.5625 8H1C0.4375 8 0 7.5625 0 7C0 6.46875 0.4375 6 1 6H7.5625L5.28125 3.71875C4.875 3.34375 4.875 2.6875 5.28125 2.3125C5.65625 1.90625 6.3125 1.90625 6.6875 2.3125L10.6875 6.3125C11.0938 6.6875 11.0938 7.34375 10.6875 7.71875Z",
1815
- fill: "currentColor"
1816
- })
1817
- ], -1)
1818
- ])),
1819
- description: withCtx(() => [
1820
- createVNode(_component_i18n_t, {
1821
- tag: "span",
1822
- keypath: "ndv.input.rootNodeHasNotRun.description"
1823
- }, {
1824
- link: withCtx(() => [
1825
- createBaseVNode("a", {
1826
- href: "#",
1827
- "data-test-id": "switch-to-mapping-mode-link",
1828
- onClick: _cache[0] || (_cache[0] = withModifiers(($event) => onInputModeChange("mapping"), ["prevent"]))
1829
- }, toDisplayString(unref(i18n).baseText("ndv.input.rootNodeHasNotRun.description.link")), 1)
1830
- ]),
1831
- _: 1
1832
- })
1833
- ]),
1834
- _: 1
1835
- }, 8, ["title"]))
1836
- ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1837
- isMappingEnabled.value || hasRootNodeRun.value ? (openBlock(), createBlock(unref(N8nText), {
1838
- key: 0,
1839
- tag: "div",
1840
- bold: true,
1841
- color: "text-dark",
1842
- size: "large"
1843
- }, {
1844
- default: withCtx(() => [
1845
- createTextVNode(toDisplayString(unref(i18n).baseText("ndv.input.noOutputData.title")), 1)
1846
- ]),
1847
- _: 1
1848
- })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1849
- createVNode(unref(N8nText), {
1850
- tag: "div",
1851
- bold: true,
1852
- color: "text-dark",
1853
- size: "large"
1854
- }, {
1855
- default: withCtx(() => [
1856
- createTextVNode(toDisplayString(unref(i18n).baseText("ndv.input.rootNodeHasNotRun.title")), 1)
1857
- ]),
1858
- _: 1
1859
- }),
1860
- createVNode(unref(N8nText), {
1861
- tag: "div",
1862
- color: "text-dark",
1863
- size: "medium"
1864
- }, {
1865
- default: withCtx(() => [
1866
- createVNode(_component_i18n_t, {
1867
- tag: "span",
1868
- keypath: "ndv.input.rootNodeHasNotRun.description"
1869
- }, {
1870
- link: withCtx(() => [
1871
- createBaseVNode("a", {
1872
- href: "#",
1873
- "data-test-id": "switch-to-mapping-mode-link",
1874
- onClick: _cache[1] || (_cache[1] = withModifiers(($event) => onInputModeChange("mapping"), ["prevent"]))
1875
- }, toDisplayString(unref(i18n).baseText("ndv.input.rootNodeHasNotRun.description.link")), 1)
1876
- ]),
1877
- _: 1
1878
- })
1879
- ]),
1880
- _: 1
1881
- })
1882
- ], 64)),
1883
- !_ctx.readOnly ? (openBlock(), createBlock(unref(N8nTooltip), {
1884
- key: 2,
1885
- visible: showDraggableHint.value && showDraggableHintWithDelay.value
1886
- }, {
1887
- content: withCtx(() => [
1888
- withDirectives(createBaseVNode("div", null, null, 512), [
1889
- [
1890
- _directive_n8n_html,
1891
- unref(i18n).baseText("dataMapping.dragFromPreviousHint", {
1892
- interpolate: { name: unref(focusedMappableInput) }
1893
- })
1894
- ]
1895
- ])
1896
- ]),
1897
- default: withCtx(() => [
1898
- createVNode(_sfc_main$f, {
1899
- type: "secondary",
1900
- "hide-icon": "",
1901
- transparent: true,
1902
- "node-name": (isActiveNodeConfig.value ? rootNode.value : unref(activeNode)?.name) ?? "",
1903
- label: unref(i18n).baseText("ndv.input.noOutputData.executePrevious"),
1904
- class: "mt-m",
1905
- "telemetry-source": "inputs",
1906
- "data-test-id": "execute-previous-node",
1907
- onExecute: onNodeExecute
1908
- }, null, 8, ["node-name", "label"])
1909
- ]),
1910
- _: 1
1911
- }, 8, ["visible"])) : createCommentVNode("", true),
1912
- !_ctx.readOnly ? (openBlock(), createBlock(unref(N8nText), {
1913
- key: 3,
1914
- tag: "div",
1915
- size: "small"
1916
- }, {
1917
- default: withCtx(() => [
1918
- createVNode(_component_i18n_t, { keypath: "ndv.input.noOutputData.hint" }, {
1919
- info: withCtx(() => [
1920
- createVNode(unref(N8nTooltip), { placement: "bottom" }, {
1921
- content: withCtx(() => [
1922
- createTextVNode(toDisplayString(unref(i18n).baseText("ndv.input.noOutputData.hint.tooltip")), 1)
1923
- ]),
1924
- default: withCtx(() => [
1925
- createVNode(unref(N8nIcon), { icon: "circle-help" })
1926
- ]),
1927
- _: 1
1928
- })
1929
- ]),
1930
- _: 1
1931
- })
1932
- ]),
1933
- _: 1
1934
- })) : createCommentVNode("", true)
1935
- ], 64))
1936
- ], 2)) : (openBlock(), createElementBlock("div", {
1937
- key: 1,
1938
- class: normalizeClass(_ctx.$style.notConnected)
1939
- }, [
1940
- isNDVV2.value ? (openBlock(), createBlock(NDVEmptyState, {
1941
- key: 0,
1942
- title: unref(i18n).baseText("ndv.input.notConnected.v2.title")
1943
- }, {
1944
- icon: withCtx(() => [
1945
- createVNode(WireMeUp)
1946
- ]),
1947
- description: withCtx(() => [
1948
- createVNode(_component_i18n_t, {
1949
- tag: "span",
1950
- keypath: "ndv.input.notConnected.v2.description"
1951
- }, {
1952
- link: withCtx(() => [
1953
- createBaseVNode("a", {
1954
- href: "https://docs.n8n.io/workflows/connections/",
1955
- target: "_blank",
1956
- onClick: onConnectionHelpClick
1957
- }, toDisplayString(unref(i18n).baseText("ndv.input.notConnected.learnMore")), 1)
1958
- ]),
1959
- _: 1
1960
- })
1961
- ]),
1962
- _: 1
1963
- }, 8, ["title"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1964
- createBaseVNode("div", null, [
1965
- createVNode(WireMeUp)
1966
- ]),
1967
- createVNode(unref(N8nText), {
1968
- tag: "div",
1969
- bold: true,
1970
- color: "text-dark",
1971
- size: "large"
1972
- }, {
1973
- default: withCtx(() => [
1974
- createTextVNode(toDisplayString(unref(i18n).baseText("ndv.input.notConnected.title")), 1)
1975
- ]),
1976
- _: 1
1977
- }),
1978
- createVNode(unref(N8nText), { tag: "div" }, {
1979
- default: withCtx(() => [
1980
- createTextVNode(toDisplayString(unref(i18n).baseText("ndv.input.notConnected.message")) + " ", 1),
1981
- createBaseVNode("a", {
1982
- href: "https://docs.n8n.io/workflows/connections/",
1983
- target: "_blank",
1984
- onClick: onConnectionHelpClick
1985
- }, toDisplayString(unref(i18n).baseText("ndv.input.notConnected.learnMore")), 1)
1986
- ]),
1987
- _: 1
1988
- })
1989
- ], 64))
1990
- ], 2))
1991
- ]),
1992
- "node-waiting": withCtx(() => [
1993
- createVNode(unref(N8nText), {
1994
- bold: true,
1995
- color: "text-dark",
1996
- size: "large"
1997
- }, {
1998
- default: withCtx(() => [
1999
- createTextVNode(toDisplayString(unref(i18n).baseText("ndv.output.waitNodeWaiting.title")), 1)
2000
- ]),
2001
- _: 1
2002
- }),
2003
- withDirectives(createVNode(unref(N8nText), null, null, 512), [
2004
- [_directive_n8n_html, waitingMessage.value]
2005
- ])
2006
- ]),
2007
- "no-output-data": withCtx(() => [
2008
- createVNode(unref(N8nText), {
2009
- tag: "div",
2010
- bold: true,
2011
- color: "text-dark",
2012
- size: "large"
2013
- }, {
2014
- default: withCtx(() => [
2015
- createTextVNode(toDisplayString(unref(i18n).baseText("ndv.input.noOutputData")), 1)
2016
- ]),
2017
- _: 1
2018
- })
2019
- ]),
2020
- "recovered-artificial-output-data": withCtx(() => [
2021
- createBaseVNode("div", {
2022
- class: normalizeClass(_ctx.$style.recoveredOutputData)
2023
- }, [
2024
- createVNode(unref(N8nText), {
2025
- tag: "div",
2026
- bold: true,
2027
- color: "text-dark",
2028
- size: "large"
2029
- }, {
2030
- default: withCtx(() => [
2031
- createTextVNode(toDisplayString(unref(i18n).baseText("executionDetails.executionFailed.recoveredNodeTitle")), 1)
2032
- ]),
2033
- _: 1
2034
- }),
2035
- createVNode(unref(N8nText), null, {
2036
- default: withCtx(() => [
2037
- createTextVNode(toDisplayString(unref(i18n).baseText("executionDetails.executionFailed.recoveredNodeMessage")), 1)
2038
- ]),
2039
- _: 1
2040
- })
2041
- ], 2)
2042
- ]),
2043
- _: 2
2044
- }, [
2045
- isMappingMode.value ? {
2046
- name: "before-data",
2047
- fn: withCtx(() => [
2048
- (openBlock(), createBlock(resolveDynamicComponent("style"), null, {
2049
- default: withCtx(() => _cache[3] || (_cache[3] = [
2050
- createTextVNode("button.linkRun { display: none }")
2051
- ])),
2052
- _: 1
2053
- })),
2054
- createBaseVNode("div", {
2055
- class: normalizeClass(_ctx.$style.mappedNode)
2056
- }, [
2057
- createVNode(InputNodeSelect, {
2058
- "model-value": mappedNode2.value,
2059
- workflow: _ctx.workflow,
2060
- nodes: rootNodesParents.value,
2061
- "onUpdate:modelValue": onMappedNodeSelected
2062
- }, null, 8, ["model-value", "workflow", "nodes"])
2063
- ], 2)
2064
- ]),
2065
- key: "0"
2066
- } : void 0
2067
- ]), 1032, ["class", "node", "nodes", "workflow", "run-index", "linked-runs", "can-link-runs", "too-much-data-title", "no-data-in-branch-message", "is-executing", "executing-message", "push-ref", "override-outputs", "mapping-enabled", "distance-from-active", "is-production-execution-preview", "is-pane-active", "display-mode", "collapsing-table-column-name"]);
2068
- };
2069
- }
2070
- });
2071
- const runData = "_runData_1mdum_123";
2072
- const mappedNode = "_mappedNode_1mdum_127";
2073
- const titleSection = "_titleSection_1mdum_131";
2074
- const titleSectionV2 = "_titleSectionV2_1mdum_140";
2075
- const inputModeTab = "_inputModeTab_1mdum_144";
2076
- const noOutputData = "_noOutputData_1mdum_148";
2077
- const recoveredOutputData = "_recoveredOutputData_1mdum_155";
2078
- const notConnected = "_notConnected_1mdum_164";
2079
- const title = "_title_1mdum_131";
2080
- const titleV2 = "_titleV2_1mdum_182";
2081
1235
  const style0$1 = {
2082
1236
  runData,
2083
- mappedNode,
1237
+ outputTypeSelect,
2084
1238
  titleSection,
2085
1239
  titleSectionV2,
2086
- inputModeTab,
1240
+ title,
1241
+ titleV2,
2087
1242
  noOutputData,
2088
1243
  recoveredOutputData,
2089
- notConnected,
2090
- title,
2091
- titleV2
1244
+ link
2092
1245
  };
2093
1246
  const cssModules$1 = {
2094
1247
  "$style": style0$1
2095
1248
  };
2096
- const InputPanel = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
1249
+ const OutputPanel = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
2097
1250
  const _hoisted_1 = { key: "empty" };
2098
1251
  const _hoisted_2 = { key: "listening" };
2099
1252
  const _hoisted_3 = { key: 0 };
@@ -2125,10 +1278,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2125
1278
  const telemetry = useTelemetry();
2126
1279
  const executionsHelpEventBus = createEventBus();
2127
1280
  const help = ref(null);
2128
- const node2 = computed(() => workflowsStore.getNodeByName(props.nodeName));
1281
+ const node = computed(() => workflowsStore.getNodeByName(props.nodeName));
2129
1282
  const nodeType = computed(() => {
2130
- if (node2.value) {
2131
- return nodesTypeStore.getNodeType(node2.value.type, node2.value.typeVersion);
1283
+ if (node.value) {
1284
+ return nodesTypeStore.getNodeType(node.value.type, node.value.typeVersion);
2132
1285
  }
2133
1286
  return null;
2134
1287
  });
@@ -2144,8 +1297,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2144
1297
  if (typeof hideContent2 === "boolean") {
2145
1298
  return hideContent2;
2146
1299
  }
2147
- if (node2.value) {
2148
- const hideContentValue = workflowHelpers.getCurrentWorkflow().expression.getSimpleParameterValue(node2.value, hideContent2, "internal", {});
1300
+ if (node.value) {
1301
+ const hideContentValue = workflowHelpers.getCurrentWorkflow().expression.getSimpleParameterValue(node.value, hideContent2, "internal", {});
2149
1302
  if (typeof hideContentValue === "boolean") {
2150
1303
  return hideContentValue;
2151
1304
  }
@@ -2154,7 +1307,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2154
1307
  });
2155
1308
  const hasIssues = computed(() => {
2156
1309
  return Boolean(
2157
- node2.value?.issues && (node2.value.issues.parameters ?? node2.value.issues.credentials)
1310
+ node.value?.issues && (node.value.issues.parameters ?? node.value.issues.credentials)
2158
1311
  );
2159
1312
  });
2160
1313
  const serviceName = computed(() => {
@@ -2165,14 +1318,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2165
1318
  });
2166
1319
  const displayChatButton = computed(() => {
2167
1320
  return Boolean(
2168
- node2.value && node2.value.type === CHAT_TRIGGER_NODE_TYPE && node2.value.parameters.mode !== "webhook"
1321
+ node.value && node.value.type === CHAT_TRIGGER_NODE_TYPE && node.value.parameters.mode !== "webhook"
2169
1322
  );
2170
1323
  });
2171
1324
  const isWebhookNode = computed(() => {
2172
- return Boolean(node2.value && node2.value.type === WEBHOOK_NODE_TYPE);
1325
+ return Boolean(node.value && node.value.type === WEBHOOK_NODE_TYPE);
2173
1326
  });
2174
1327
  const webhookHttpMethod = computed(() => {
2175
- if (!node2.value || !nodeType.value?.webhooks?.length) {
1328
+ if (!node.value || !nodeType.value?.webhooks?.length) {
2176
1329
  return void 0;
2177
1330
  }
2178
1331
  const httpMethod = workflowHelpers.getWebhookExpressionValue(
@@ -2186,10 +1339,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2186
1339
  return httpMethod;
2187
1340
  });
2188
1341
  const webhookTestUrl = computed(() => {
2189
- if (!node2.value || !nodeType.value?.webhooks?.length) {
1342
+ if (!node.value || !nodeType.value?.webhooks?.length) {
2190
1343
  return void 0;
2191
1344
  }
2192
- return workflowHelpers.getWebhookUrl(nodeType.value.webhooks[0], node2.value, "test");
1345
+ return workflowHelpers.getWebhookUrl(nodeType.value.webhooks[0], node.value, "test");
2193
1346
  });
2194
1347
  const isWebhookBasedNode = computed(() => {
2195
1348
  return Boolean(nodeType.value?.webhooks?.length);
@@ -2200,7 +1353,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2200
1353
  const isListeningForEvents = computed(() => {
2201
1354
  const waitingOnWebhook = workflowsStore.executionWaitingForWebhook;
2202
1355
  const executedNode = workflowsStore.executedNode;
2203
- return !!node2.value && !node2.value.disabled && isWebhookBasedNode.value && waitingOnWebhook && (!executedNode || executedNode === props.nodeName);
1356
+ return !!node.value && !node.value.disabled && isWebhookBasedNode.value && waitingOnWebhook && (!executedNode || executedNode === props.nodeName);
2204
1357
  });
2205
1358
  const workflowRunning = computed(() => workflowsStore.isWorkflowRunning);
2206
1359
  const isActivelyPolling = computed(() => {
@@ -2376,7 +1529,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2376
1529
  const _component_n8n_pulse = N8nPulse;
2377
1530
  const _component_n8n_text = N8nText;
2378
1531
  const _component_n8n_button = N8nButton;
2379
- const _component_n8n_spinner = _sfc_main$h;
1532
+ const _component_n8n_spinner = _sfc_main$c;
2380
1533
  const _component_n8n_heading = N8nHeading;
2381
1534
  const _component_n8n_link = N8nLink;
2382
1535
  const _component_n8n_info_accordion = N8nInfoAccordion;
@@ -2392,7 +1545,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2392
1545
  hasIssues.value || hideContent.value ? (openBlock(), createElementBlock("div", _hoisted_1)) : isListeningForEvents.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
2393
1546
  createVNode(_component_n8n_pulse, null, {
2394
1547
  default: withCtx(() => [
2395
- createVNode(_sfc_main$c, {
1548
+ createVNode(_sfc_main$8, {
2396
1549
  "node-type": nodeType.value,
2397
1550
  size: 40
2398
1551
  }, null, 8, ["node-type"])
@@ -2433,7 +1586,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2433
1586
  "copy-button-text": unref(i18n).baseText("generic.clickToCopy"),
2434
1587
  onCopy: onTestLinkCopied
2435
1588
  }, null, 8, ["value", "toast-title", "copy-button-text"]),
2436
- createVNode(_sfc_main$f, {
1589
+ createVNode(_sfc_main$b, {
2437
1590
  "data-test-id": "trigger-execute-button",
2438
1591
  "node-name": _ctx.nodeName,
2439
1592
  size: "medium",
@@ -2474,7 +1627,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2474
1627
  _: 1
2475
1628
  })
2476
1629
  ])) : createCommentVNode("", true),
2477
- createVNode(_sfc_main$f, {
1630
+ createVNode(_sfc_main$b, {
2478
1631
  "data-test-id": "trigger-execute-button",
2479
1632
  "node-name": _ctx.nodeName,
2480
1633
  size: "medium",
@@ -2511,7 +1664,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2511
1664
  _: 1
2512
1665
  })) : createCommentVNode("", true)
2513
1666
  ], 2),
2514
- createVNode(_sfc_main$f, {
1667
+ createVNode(_sfc_main$b, {
2515
1668
  "data-test-id": "trigger-execute-button",
2516
1669
  "node-name": _ctx.nodeName,
2517
1670
  size: "medium",
@@ -2577,7 +1730,6 @@ const cssModules = {
2577
1730
  };
2578
1731
  const TriggerPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-a321aff2"]]);
2579
1732
  export {
2580
- InputPanel as I,
2581
1733
  OutputPanel as O,
2582
1734
  TriggerPanel as T,
2583
1735
  __unplugin_components_0 as _