n8n-editor-ui 1.98.0 → 1.99.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 (111) hide show
  1. package/dist/assets/{AnimatedSpinner-CeafaU8r.js → AnimatedSpinner-DBpZ0Yu1.js} +1 -1
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-B6tcMuMJ.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DosAuCu3.js} +1 -1
  3. package/dist/assets/{AuthView-DcxHdw3B.js → AuthView-BiOFaV2S.js} +7 -3
  4. package/dist/assets/{ChangePasswordView-C-_Y-Wdn.js → ChangePasswordView-mtQwZyOO.js} +3 -3
  5. package/dist/assets/CollectionParameter-c94uS8bu.js +4 -0
  6. package/dist/assets/{CredentialsView-B4AQUpNx.js → CredentialsView-DQNwlIXT.js} +22 -13
  7. package/dist/assets/{DemoFooter-DV5GQmvM.js → DemoFooter-BwAxjuTl.js} +6 -6
  8. package/dist/assets/EntityNotFound-CBu7H3J_.css +10 -0
  9. package/dist/assets/EntityNotFound-ZFryE1o_.js +95 -0
  10. package/dist/assets/EntityUnAuthorised-BwDthxJU.css +10 -0
  11. package/dist/assets/EntityUnAuthorised-CKWCBHud.js +72 -0
  12. package/dist/assets/{ErrorView-OKh_lVSY.js → ErrorView-BY6sewiA.js} +1 -1
  13. package/dist/assets/{EvaluationsRootView-D2dmekKB.js → EvaluationsRootView-xOuJQWay.js} +1 -1
  14. package/dist/assets/{EvaluationsView-CKUqX-AI.js → EvaluationsView-BROhBSOp.js} +3 -3
  15. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-C-Hx4KA-.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-D9G_v1Ab.js} +2 -2
  16. package/dist/assets/{ExecutionsView-WztTT6H6.js → ExecutionsView-CbnzvSxS.js} +8 -8
  17. package/dist/assets/{FileSaver.min-sGd5mes-.js → FileSaver.min-DfMUUVIo.js} +1 -1
  18. package/dist/assets/{FixedCollectionParameter-Cn2WDdQw.js → FixedCollectionParameter-9OU9Hss8.js} +1 -1
  19. package/dist/assets/{ForgotMyPasswordView-DxQoCGIP.js → ForgotMyPasswordView-BeBiaa7k.js} +3 -3
  20. package/dist/assets/{InsightsChartAverageRuntime-CB5N_io5.js → InsightsChartAverageRuntime-BoOlfupR.js} +4 -4
  21. package/dist/assets/{InsightsChartFailed-Y-mbC7CD.js → InsightsChartFailed-EkxSJRC_.js} +4 -4
  22. package/dist/assets/{InsightsChartFailureRate-6zPSfC-G.js → InsightsChartFailureRate-DILuKQgW.js} +4 -4
  23. package/dist/assets/{InsightsChartTimeSaved-Bih3Ry4R.js → InsightsChartTimeSaved-B8zQ-H8f.js} +4 -4
  24. package/dist/assets/{InsightsChartTotal-N-9xWBIy.js → InsightsChartTotal-CYSe4Yf4.js} +4 -4
  25. package/dist/assets/{InsightsDashboard-DN5PbVTp.js → InsightsDashboard-CBcgJvYC.js} +11 -11
  26. package/dist/assets/{InsightsPaywall-CV34iKyQ.js → InsightsPaywall-Bjz5a_10.js} +1 -1
  27. package/dist/assets/{InsightsSummary-b-sHA8wL.js → InsightsSummary-GXzzw2Bl.js} +1 -1
  28. package/dist/assets/{InsightsTableWorkflows-Cz3GFggF.js → InsightsTableWorkflows-DkgxvIv4.js} +2 -2
  29. package/dist/assets/{Logo-CTlaJzVH.js → Logo-CHeW0pXf.js} +1 -1
  30. package/dist/assets/{LogsPanel-DVSP-ORT.css → LogsPanel-BkEQ0mgk.css} +18 -11
  31. package/dist/assets/{LogsPanel-Dfj2Ol1s.js → LogsPanel-D9HhJ7ms.js} +168 -105
  32. package/dist/assets/{MainHeader-BHGtRsRJ.js → MainHeader-obfyYKSJ.js} +8 -9
  33. package/dist/assets/{MainSidebar-BGXtPjO-.js → MainSidebar-CEQGuBhs.js} +2 -2
  34. package/dist/assets/{NodeCreation-DfKAwFJq.js → NodeCreation-DPp19Ka9.js} +37 -5
  35. package/dist/assets/{NodeCreator-Cp8Apzva.css → NodeCreator-B1jJcOYT.css} +126 -0
  36. package/dist/assets/{NodeCreator-D1mNPRWq.js → NodeCreator-nnCPbD1c.js} +134 -76
  37. package/dist/assets/{NodeDetailsView-DIo1g1iE.js → NodeDetailsView-DNJ33kVZ.js} +12 -13
  38. package/dist/assets/{NodeView-CFUh-L67.js → NodeView-5Dx7iByY.js} +48 -14
  39. package/dist/assets/{NodeView-Duifly4c.css → NodeView-Cpu1z_ye.css} +16 -16
  40. package/dist/assets/{ProjectCardBadge-CWPzWiZa.js → ProjectCardBadge-BWKFpStx.js} +1 -1
  41. package/dist/assets/{ProjectHeader-BsBpG-Mj.css → ProjectHeader-B5uv4DKo.css} +24 -6
  42. package/dist/assets/{ProjectHeader-Ddqs2fwN.js → ProjectHeader-fFNmvvkD.js} +91 -24
  43. package/dist/assets/{ProjectSettings-DFwkW9xy.js → ProjectSettings-DoNg30_j.js} +41 -16
  44. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-CTSX9GvK.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-CI5PGbAh.js} +1 -1
  45. package/dist/assets/{ResourcesListLayout-DZR7Zzzo.js → ResourcesListLayout-BU62R_hh.js} +2 -2
  46. package/dist/assets/{RunData-D_KDVdF4.js → RunData-CeKn3olP.js} +11 -10
  47. package/dist/assets/{RunDataJson-LDc1ImEr.js → RunDataJson-C_rW7mc7.js} +6 -6
  48. package/dist/assets/{RunDataJsonActions-DH83rAfY.js → RunDataJsonActions-DRAOfb9H.js} +1 -1
  49. package/dist/assets/{RunDataParsedAiContent-BU8uoK2N.js → RunDataParsedAiContent-DXoyZ0Lo.js} +4 -4
  50. package/dist/assets/{RunDataSearch-DGVpnOkl.js → RunDataSearch-C4MgXtFK.js} +1 -1
  51. package/dist/assets/{RunDataTable-CSRGOCHh.js → RunDataTable-DSs4rVYS.js} +2 -2
  52. package/dist/assets/{SamlOnboarding-CQ4b1hlf.js → SamlOnboarding-lKrgxGB0.js} +7 -7
  53. package/dist/assets/{SettingsApiView-DHQc2KYI.js → SettingsApiView-C6KULaro.js} +1 -1
  54. package/dist/assets/{SettingsCommunityNodesView-C9utcS3k.js → SettingsCommunityNodesView-CyDP25oX.js} +3 -4
  55. package/dist/assets/{SettingsExternalSecrets-DcD2lv4W.js → SettingsExternalSecrets-BZf4KEM4.js} +1 -1
  56. package/dist/assets/{SettingsLdapView-DiL_dbfx.js → SettingsLdapView-DZLtSs77.js} +8 -7
  57. package/dist/assets/{SettingsLogStreamingView-CN_D-m7S.js → SettingsLogStreamingView-CUwQjHKl.js} +1 -1
  58. package/dist/assets/{SettingsPersonalView-DutmrxU7.js → SettingsPersonalView-Cp7H3KfM.js} +6 -4
  59. package/dist/assets/{SettingsSourceControl-DeBjBqNW.js → SettingsSourceControl-B0qExx0z.js} +1 -1
  60. package/dist/assets/{SettingsSso-DyrGnPdA.css → SettingsSso-D4HKPLvV.css} +10 -13
  61. package/dist/assets/SettingsSso-DuBpfB81.js +496 -0
  62. package/dist/assets/{SettingsUsageAndPlan-Dv-wky39.js → SettingsUsageAndPlan-Xyw8eMqN.js} +1 -1
  63. package/dist/assets/{SettingsUsersView-JfPgtJEV.js → SettingsUsersView-Db12aUQP.js} +3 -3
  64. package/dist/assets/{SettingsView-CHu8eepA.js → SettingsView-BYuw6sXO.js} +1 -1
  65. package/dist/assets/{SetupView-UIS9B4wr.js → SetupView-cDcX6bMh.js} +4 -5
  66. package/dist/assets/{SetupWorkflowCredentialsButton-Bs2dYq3b.js → SetupWorkflowCredentialsButton-B87oaiGh.js} +1 -1
  67. package/dist/assets/{SetupWorkflowFromTemplateView-BTFARopX.js → SetupWorkflowFromTemplateView-DfDdLi-i.js} +3 -3
  68. package/dist/assets/{SigninView-B1eEz_t4.js → SigninView-Dqmccr9v.js} +6 -5
  69. package/dist/assets/{SignoutView-CV1Qsb3z.js → SignoutView-xmtpMMVt.js} +1 -1
  70. package/dist/assets/{SignupView-C2cyiw-C.js → SignupView-imMHiv-n.js} +4 -5
  71. package/dist/assets/{TemplateDetails-MawFSspH.js → TemplateDetails-67i7kfJq.js} +1 -1
  72. package/dist/assets/{TemplateList-AnYGr5-6.js → TemplateList-BsUj3ieO.js} +1 -1
  73. package/dist/assets/{TemplatesCollectionView-xd0kx-UE.js → TemplatesCollectionView-D0_oPDB3.js} +5 -5
  74. package/dist/assets/{TemplatesSearchView-ngTSHAkQ.js → TemplatesSearchView-4ryz7-XG.js} +3 -3
  75. package/dist/assets/{TemplatesView-BAX6LGxX.js → TemplatesView-ByYt4Ep8.js} +1 -1
  76. package/dist/assets/{TemplatesWorkflowView-DGd4xJ_J.js → TemplatesWorkflowView-DxiKHsgJ.js} +5 -5
  77. package/dist/assets/{VariablesView-CwEnfQxV.js → VariablesView-B8wkOWyp.js} +4 -4
  78. package/dist/assets/{WorkerView-DtXiHaTA.js → WorkerView-CAiaTkll.js} +5 -6
  79. package/dist/assets/{WorkflowActivator-CLLu_k_M.js → WorkflowActivator-CErBRTtp.js} +2 -2
  80. package/dist/assets/{WorkflowExecutionsInfoAccordion-vFGtC4-o.js → WorkflowExecutionsInfoAccordion-BjT3fJFQ.js} +1 -1
  81. package/dist/assets/{WorkflowExecutionsLandingPage-Dp7WJMF0.js → WorkflowExecutionsLandingPage-CrTI4sZL.js} +2 -2
  82. package/dist/assets/{WorkflowExecutionsPreview-BgpOEXPG.css → WorkflowExecutionsPreview-Bk3NJMZf.css} +9 -9
  83. package/dist/assets/{WorkflowExecutionsPreview-w7h7YCEJ.js → WorkflowExecutionsPreview-i0p45Sej.js} +9 -9
  84. package/dist/assets/{WorkflowExecutionsView-BzKlwTMm.js → WorkflowExecutionsView-CV9YDOwL.js} +5 -5
  85. package/dist/assets/{WorkflowHistory-CT3kO5Sn.js → WorkflowHistory-BIwUopWh.js} +3 -3
  86. package/dist/assets/{WorkflowOnboardingView-C3gpu3_i.js → WorkflowOnboardingView-BfxIhcjn.js} +1 -1
  87. package/dist/assets/{WorkflowPreview-BZm3MTEb.js → WorkflowPreview-kynBnKdp.js} +1 -1
  88. package/dist/assets/{WorkflowsView-meCWhW8Y.css → WorkflowsView-ipf8KKwB.css} +21 -16
  89. package/dist/assets/{WorkflowsView-4eqdgz9H.js → WorkflowsView-mZNl15yj.js} +26 -23
  90. package/dist/assets/{canvas-C0_KeJmQ.js → canvas-BstTJOpX.js} +1 -1
  91. package/dist/assets/{chartjs.utils-Bv6lUve-.js → chartjs.utils-C3jZQPP3.js} +2 -2
  92. package/dist/assets/{en-BcWgUFsO.js → en-gSl4aEB-.js} +18 -2
  93. package/dist/assets/{global-link-actions-BF0Tj_I9.js → global-link-actions-CW1V4kFI.js} +1 -1
  94. package/dist/assets/{import-curl-DsHxi7kp.js → import-curl-CF2r_L9J.js} +1 -1
  95. package/dist/assets/{index-B-xWz5mo.css → index-C1XlnjOl.css} +103 -70
  96. package/dist/assets/{index-DHKtGXZ1.js → index-CQa0Jv2S.js} +1 -1
  97. package/dist/assets/{index-Bpsc-Tmx.js → index-Q8IZ0Cou.js} +31613 -30742
  98. package/dist/assets/{pickBy-DIPqytvl.js → pickBy-Biy2pl7T.js} +1 -1
  99. package/dist/assets/{templateActions-qdbZojQ1.js → templateActions-DaSXNJXL.js} +1 -1
  100. package/dist/assets/{useBeforeUnload-B2awFcaP.js → useBeforeUnload-C71vlfPw.js} +1 -1
  101. package/dist/assets/{useExecutionDebugging-CYIymPhg.js → useExecutionDebugging-DbaExLsv.js} +1 -1
  102. package/dist/assets/{useExecutionHelpers-nG7T98Lv.js → useExecutionHelpers-A5rsPx0e.js} +1 -1
  103. package/dist/assets/{useImportCurlCommand-DVjZNYjv.js → useImportCurlCommand-oVnUvrp_.js} +2 -2
  104. package/dist/assets/{useProjectPages-p-uBP4T5.js → useProjectPages-DV4j_y25.js} +6 -2
  105. package/dist/assets/{usePushConnection-B7DMiByn.js → usePushConnection-CAxPjJ8k.js} +2 -3
  106. package/dist/assets/{useWorkflowActivate-CNqz_pHl.js → useWorkflowActivate-BTOkypU2.js} +1 -1
  107. package/dist/index.html +2 -2
  108. package/package.json +1 -1
  109. package/dist/assets/CollectionParameter-Dal7qnlG.js +0 -4
  110. package/dist/assets/SettingsSso-xIee31bc.js +0 -327
  111. package/dist/assets/easyAiWorkflowUtils-DRIGIHJ7.js +0 -132
@@ -1205,6 +1205,7 @@
1205
1205
  .chat-message > .chat-message-markdown {
1206
1206
  display: block;
1207
1207
  box-sizing: border-box;
1208
+ font-size: inherit;
1208
1209
  }
1209
1210
  .chat-message > .chat-message-markdown > *:first-child {
1210
1211
  margin-top: 0;
@@ -3551,7 +3552,7 @@
3551
3552
  -------------------------- */
3552
3553
  /* BEM
3553
3554
  -------------------------- */
3554
- ._container_pax0a_123 {
3555
+ ._container_tdw6t_123 {
3555
3556
  flex-grow: 1;
3556
3557
  flex-shrink: 1;
3557
3558
  display: flex;
@@ -3559,46 +3560,52 @@
3559
3560
  align-items: stretch;
3560
3561
  overflow: hidden;
3561
3562
  }
3562
- ._header_pax0a_132 {
3563
+ ._header_tdw6t_132 {
3563
3564
  padding: var(--spacing-2xs);
3564
3565
  }
3565
- ._actions_pax0a_136 {
3566
+ ._actions_tdw6t_136 {
3566
3567
  display: flex;
3567
3568
  align-items: center;
3568
3569
  gap: var(--spacing-2xs);
3569
3570
  padding-inline-end: var(--spacing-2xs);
3570
3571
  }
3571
- ._actions_pax0a_136 ._pressed_pax0a_142 {
3572
+ ._actions_tdw6t_136 ._pressed_tdw6t_142 {
3572
3573
  background-color: var(--color-button-secondary-focus-outline);
3573
3574
  }
3574
- ._title_pax0a_146 {
3575
+ ._title_tdw6t_146 {
3575
3576
  display: flex;
3576
3577
  align-items: center;
3577
3578
  flex-shrink: 1;
3578
3579
  }
3579
- ._icon_pax0a_152 {
3580
+ ._icon_tdw6t_152 {
3580
3581
  margin-right: var(--spacing-2xs);
3581
3582
  }
3582
- ._executionSummary_pax0a_156 {
3583
+ ._executionSummary_tdw6t_156 {
3583
3584
  flex-shrink: 1;
3584
3585
  }
3585
- ._content_pax0a_160 {
3586
+ ._content_tdw6t_160 {
3586
3587
  flex-shrink: 1;
3587
3588
  flex-grow: 1;
3588
3589
  display: flex;
3589
3590
  align-items: stretch;
3590
3591
  overflow: hidden;
3591
3592
  }
3592
- ._outputPanel_pax0a_168 {
3593
+ ._outputPanel_tdw6t_168 {
3593
3594
  width: 0;
3594
3595
  flex-grow: 1;
3595
3596
  }
3596
- ._inputResizer_pax0a_173 {
3597
+ ._inputResizer_tdw6t_173 {
3597
3598
  overflow: hidden;
3598
3599
  flex-shrink: 0;
3599
3600
  }
3600
- ._inputResizer_pax0a_173:not(:is(:last-child, ._collapsed_pax0a_177, ._full_pax0a_177)) {
3601
+ ._inputResizer_tdw6t_173:not(:is(:last-child, ._collapsed_tdw6t_177, ._full_tdw6t_177)) {
3601
3602
  border-right: var(--border-base);
3603
+ }
3604
+ ._placeholder_tdw6t_181 {
3605
+ flex-grow: 1;
3606
+ display: flex;
3607
+ align-items: center;
3608
+ justify-content: center;
3602
3609
  }/* BEM support Func
3603
3610
  -------------------------- */
3604
3611
  /* Transition
@@ -1,8 +1,9 @@
1
- import { b0 as isArrayLike, b1 as isArray, b2 as isBuffer, b3 as isTypedArray, b4 as isArguments, b5 as getTag, b6 as isPrototype, b7 as baseKeys, b8 as addTokenUsageData, b9 as emptyTokenUsageData, ba as isChatNode, bb as NodeConnectionTypes, bc as v4, bd as get, be as isRef, bf as isReactive, bg as isProxy, bh as toRaw, bi as AGENT_LANGCHAIN_NODE_TYPE, bj as MANUAL_CHAT_TRIGGER_NODE_TYPE, bk as CHAT_TRIGGER_NODE_TYPE, a as useToast, r as ref, q as computed, c as useI18n$1, bl as usePinnedData, ak as useMessage, al as MODAL_CONFIRM, P as useWorkflowsStore, bm as useLogsStore, b as useRouter, bn as useNodeHelpers, bo as useRunWorkflow, V as VIEWS, bp as chatEventBus, W as watch, bq as provide, d as defineComponent, i as createElementBlock, g as openBlock, n as normalizeClass, j as createVNode, k as createBaseVNode, m as unref, br as N8nText, w as withCtx, x as renderSlot, l as createTextVNode, t as toDisplayString, _ as _export_sfc, Q as useRoute, $ as useSourceControlStore, bs as useCanvasOperations, bt as useNodeTypesStore, bu as START_NODE_TYPE, e as createBlock, f as createCommentVNode, aV as N8nTooltip, bv as formatTokenUsageCount, bw as getDefaultExportFromCjs, bx as requireUpperFirst, ac as useTemplateRef, by as useTimestamp, bz as toTime, bA as toDayMonth, bB as withModifiers, F as Fragment, C as renderList, A as normalizeStyle, bC as _sfc_main$j, bD as I18nT, bE as N8nIcon, aX as _sfc_main$k, bF as N8nButton, y as nextTick, bG as useVirtualList, bH as toRef, bI as mergeProps, bJ as N8nRadioButtons, bK as inject, bL as toRefs, o as onMounted, bM as normalizeProps, bN as guardReactiveProps, bO as resolveDynamicComponent, bP as markdownLink, bQ as useFileDialog, bR as onUnmounted, aE as withDirectives, bS as vModelText, bT as withKeys, h as resolveComponent, bU as useClipboard, aZ as createSlots, aw as useNDVStore, bV as resolveDirective, aW as N8nLink, bW as waitingNodeTooltip, az as useLocalStorage, bX as LOG_DETAILS_PANEL_STATE, bY as KeyboardShortcutTooltip, bZ as N8nResizeWrapper, b_ as useStyles, b$ as N8nActionDropdown, c0 as Workflow, c1 as useThrottleFn, c2 as parse, G as useUIStore, Z as useCanvasStore, ai as useTelemetry, v as onBeforeUnmount, c3 as useProvideTooltipAppendTo, c4 as IsInPiPWindowSymbol, c5 as LOGS_PANEL_STATE, c6 as LOCAL_STORAGE_PANEL_HEIGHT, c7 as LOCAL_STORAGE_OVERVIEW_PANEL_WIDTH, c8 as LOCAL_STORAGE_PANEL_WIDTH, c9 as ndvEventBus } from "./index-Bpsc-Tmx.js";
2
- import { _ as _sfc_main$i, H as HighlightJS, V as VueMarkdown, R as RunData } from "./RunData-D_KDVdF4.js";
3
- import { c as canvasEventBus } from "./canvas-C0_KeJmQ.js";
4
- import "./FileSaver.min-sGd5mes-.js";
5
- import "./useExecutionHelpers-nG7T98Lv.js";
1
+ import { b4 as isArrayLike, b5 as isArray, b6 as isBuffer, b7 as isTypedArray, b8 as isArguments, b9 as getTag, ba as isPrototype, bb as baseKeys, bc as addTokenUsageData, bd as emptyTokenUsageData, be as isChatNode, bf as NodeConnectionTypes, bg as v4, bh as get, bi as isRef, bj as isReactive, bk as isProxy, bl as toRaw, bm as AGENT_LANGCHAIN_NODE_TYPE, bn as MANUAL_CHAT_TRIGGER_NODE_TYPE, bo as CHAT_TRIGGER_NODE_TYPE, a as useToast, r as ref, x as computed, c as useI18n$1, bp as usePinnedData, ao as useMessage, ap as MODAL_CONFIRM, T as useWorkflowsStore, bq as useLogsStore, b as useRouter, br as useNodeHelpers, bs as useRunWorkflow, V as VIEWS, bt as chatEventBus, $ as watch, bu as provide, d as defineComponent, i as createElementBlock, g as openBlock, n as normalizeClass, j as createVNode, k as createBaseVNode, m as unref, p as N8nText, w as withCtx, A as renderSlot, l as createTextVNode, t as toDisplayString, _ as _export_sfc, U as useRoute, a3 as useSourceControlStore, bv as useCanvasOperations, bw as useNodeTypesStore, bx as START_NODE_TYPE, e as createBlock, f as createCommentVNode, aZ as N8nTooltip, by as formatTokenUsageCount, bz as getDefaultExportFromCjs, bA as requireUpperFirst, ag as useTemplateRef, bB as useTimestamp, bC as toTime, bD as toDayMonth, bE as withModifiers, F as Fragment, G as renderList, D as normalizeStyle, bF as _sfc_main$j, bG as I18nT, bH as N8nIcon, a$ as _sfc_main$k, q as N8nButton, B as nextTick, bI as useVirtualList, bJ as toRef, bK as mergeProps, bL as N8nRadioButtons, bM as inject, bN as toRefs, o as onMounted, bO as normalizeProps, bP as guardReactiveProps, bQ as resolveDynamicComponent, bR as markdownLink, bS as useFileDialog, bT as onUnmounted, aI as withDirectives, bU as vModelText, bV as withKeys, h as resolveComponent, bW as useClipboard, b1 as createSlots, aA as useNDVStore, bX as resolveDirective, a_ as N8nLink, bY as waitingNodeTooltip, aD as useLocalStorage, bZ as LOG_DETAILS_PANEL_STATE, b_ as KeyboardShortcutTooltip, b$ as N8nResizeWrapper, c0 as useStyles, c1 as N8nActionDropdown, c2 as Workflow, c3 as useThrottleFn, c4 as parse, J as useUIStore, a2 as useCanvasStore, am as useTelemetry, z as onBeforeUnmount, c5 as useProvideTooltipAppendTo, c6 as IsInPiPWindowSymbol, c7 as LOGS_PANEL_STATE, c8 as LOCAL_STORAGE_PANEL_HEIGHT, c9 as LOCAL_STORAGE_OVERVIEW_PANEL_WIDTH, ca as LOCAL_STORAGE_PANEL_WIDTH, cb as ndvEventBus } from "./index-Q8IZ0Cou.js";
2
+ import { p as parseErrorMetadata, _ as _sfc_main$i, H as HighlightJS, V as VueMarkdown, R as RunData } from "./RunData-CeKn3olP.js";
3
+ import { c as canvasEventBus } from "./canvas-BstTJOpX.js";
4
+ import "./FileSaver.min-DfMUUVIo.js";
5
+ import "./useExecutionHelpers-A5rsPx0e.js";
6
+ const TOOL_EXECUTOR_NODE_NAME = "PartialExecutionToolExecutor";
6
7
  var mapTag = "[object Map]", setTag = "[object Set]";
7
8
  var objectProto = Object.prototype;
8
9
  var hasOwnProperty = objectProto.hasOwnProperty;
@@ -50,23 +51,18 @@ function createNode(node, context, runIndex, runData, children = []) {
50
51
  runIndex,
51
52
  runData,
52
53
  children,
53
- consumedTokens: getConsumedTokens(runData),
54
+ consumedTokens: runData ? getConsumedTokens(runData) : emptyTokenUsageData,
54
55
  workflow: context.workflow,
55
56
  executionId: context.executionId,
56
57
  execution: context.data
57
58
  };
58
59
  }
59
- function getTreeNodeData(nodeName, runData, runIndex, context) {
60
- const node = context.workflow.getNode(nodeName);
61
- return node ? getTreeNodeDataRec(node, runData, context, runIndex) : [];
62
- }
63
60
  function getChildNodes(treeNode, node, runIndex, context) {
64
- if (hasSubExecution(treeNode)) {
65
- const workflowId = treeNode.runData.metadata?.subExecution?.workflowId;
66
- const executionId = treeNode.runData.metadata?.subExecution?.executionId;
67
- const workflow = workflowId ? context.workflows[workflowId] : void 0;
68
- const subWorkflowRunData = executionId ? context.subWorkflowData[executionId] : void 0;
69
- if (!workflow || !subWorkflowRunData || !executionId) {
61
+ const subExecutionLocator = findSubExecutionLocator(treeNode);
62
+ if (subExecutionLocator !== void 0) {
63
+ const workflow = context.workflows[subExecutionLocator.workflowId];
64
+ const subWorkflowRunData = context.subWorkflowData[subExecutionLocator.executionId];
65
+ if (!workflow || !subWorkflowRunData) {
70
66
  return [];
71
67
  }
72
68
  return createLogTreeRec({
@@ -74,33 +70,36 @@ function getChildNodes(treeNode, node, runIndex, context) {
74
70
  parent: treeNode,
75
71
  depth: context.depth + 1,
76
72
  workflow,
77
- executionId,
73
+ executionId: subExecutionLocator.executionId,
78
74
  data: subWorkflowRunData
79
75
  });
80
76
  }
81
77
  const connectedSubNodes = context.workflow.getParentNodes(node.name, "ALL_NON_MAIN", 1);
82
- const isExecutionRoot = treeNode.parent === void 0 || treeNode.executionId !== treeNode.parent.executionId;
78
+ const isExecutionRoot = !isSubNodeLog(treeNode);
79
+ function isMatchedSource(source) {
80
+ return (source?.previousNode === node.name || isPlaceholderLog(treeNode) && source?.previousNode === TOOL_EXECUTOR_NODE_NAME) && (runIndex === void 0 || source.previousNodeRun === runIndex);
81
+ }
83
82
  return connectedSubNodes.flatMap(
84
83
  (subNodeName) => (context.data.resultData.runData[subNodeName] ?? []).flatMap((t, index) => {
85
- const isMatched = isExecutionRoot && t.source.some((source) => source !== null) ? t.source.some(
86
- (source) => source?.previousNode === node.name && (runIndex === void 0 || source.previousNodeRun === runIndex)
87
- ) : runIndex === void 0 || index === runIndex;
84
+ const isMatched = isExecutionRoot && t.source.some((source) => source !== null) ? t.source.some(isMatchedSource) : runIndex === void 0 || index === runIndex;
88
85
  if (!isMatched) {
89
86
  return [];
90
87
  }
91
88
  const subNode = context.workflow.getNode(subNodeName);
92
- return subNode ? getTreeNodeDataRec(
93
- subNode,
94
- t,
95
- { ...context, depth: context.depth + 1, parent: treeNode },
96
- index
97
- ) : [];
89
+ return subNode ? getTreeNodeData(subNode, t, index, {
90
+ ...context,
91
+ depth: context.depth + 1,
92
+ parent: treeNode
93
+ }) : [];
98
94
  })
99
95
  );
100
96
  }
101
- function getTreeNodeDataRec(node, runData, context, runIndex) {
97
+ function getTreeNodeData(node, runData, runIndex, context) {
102
98
  const treeNode = createNode(node, context, runIndex ?? 0, runData);
103
99
  const children = getChildNodes(treeNode, node, runIndex, context).sort(sortLogEntries);
100
+ if ((runData === void 0 || node.disabled) && children.length === 0) {
101
+ return [];
102
+ }
104
103
  treeNode.children = children;
105
104
  return [treeNode];
106
105
  }
@@ -130,6 +129,9 @@ function findLogEntryToAutoSelectRec(subTree, depth) {
130
129
  return childAutoSelect;
131
130
  }
132
131
  if (entry.node.type === AGENT_LANGCHAIN_NODE_TYPE) {
132
+ if (isPlaceholderLog(entry) && entry.children.length > 0) {
133
+ return entry.children[0];
134
+ }
133
135
  return entry;
134
136
  }
135
137
  }
@@ -147,17 +149,32 @@ function createLogTree(workflow, response, workflows = {}, subWorkflowData = {})
147
149
  });
148
150
  }
149
151
  function createLogTreeRec(context) {
150
- const runs = Object.entries(context.data.resultData.runData).flatMap(
151
- ([nodeName, taskData]) => context.workflow.getChildNodes(nodeName, "ALL_NON_MAIN").length > 0 || context.workflow.getNode(nodeName)?.disabled ? [] : taskData.map((task, runIndex) => ({
152
- nodeName,
153
- runData: task,
154
- runIndex,
155
- nodeHasMultipleRuns: taskData.length > 1
156
- }))
152
+ const runData = context.data.resultData.runData;
153
+ return Object.entries(runData).flatMap(([nodeName, taskData]) => {
154
+ const node = context.workflow.getNode(nodeName);
155
+ if (node === null) {
156
+ return [];
157
+ }
158
+ const childNodes = context.workflow.getChildNodes(nodeName, "ALL_NON_MAIN");
159
+ if (childNodes.length === 0) {
160
+ return taskData.map((task, runIndex) => ({
161
+ node,
162
+ task,
163
+ runIndex,
164
+ nodeHasMultipleRuns: taskData.length > 1
165
+ }));
166
+ }
167
+ if (childNodes.some((child) => (runData[child] ?? []).length > 0)) {
168
+ return [];
169
+ }
170
+ const firstChild = context.workflow.getNode(childNodes[0]);
171
+ if (firstChild === null) {
172
+ return [];
173
+ }
174
+ return [{ node: firstChild, nodeHasMultipleRuns: false }];
175
+ }).flatMap(
176
+ ({ node, runIndex, task, nodeHasMultipleRuns }) => getTreeNodeData(node, task, nodeHasMultipleRuns ? runIndex : void 0, context)
157
177
  ).sort(sortLogEntries);
158
- return runs.flatMap(
159
- ({ nodeName, runIndex, runData, nodeHasMultipleRuns }) => getTreeNodeData(nodeName, runData, nodeHasMultipleRuns ? runIndex : void 0, context)
160
- );
161
178
  }
162
179
  function findLogEntryRec(isMatched, entries) {
163
180
  for (const entry of entries) {
@@ -225,6 +242,12 @@ function getEntryAtRelativeIndex(entries, id, relativeIndex) {
225
242
  return offset === -1 ? void 0 : entries[offset + relativeIndex];
226
243
  }
227
244
  function sortLogEntries(a, b) {
245
+ if (a.runData === void 0) {
246
+ return a.children.length > 0 ? sortLogEntries(a.children[0], b) : 0;
247
+ }
248
+ if (b.runData === void 0) {
249
+ return b.children.length > 0 ? sortLogEntries(a, b.children[0]) : 0;
250
+ }
228
251
  if (a.runData.startTime === b.runData.startTime) {
229
252
  return a.runData.executionIndex - b.runData.executionIndex;
230
253
  }
@@ -273,7 +296,14 @@ function mergeStartData(startData, response) {
273
296
  };
274
297
  }
275
298
  function hasSubExecution(entry) {
276
- return !!entry.runData.metadata?.subExecution;
299
+ return findSubExecutionLocator(entry) !== void 0;
300
+ }
301
+ function findSubExecutionLocator(entry) {
302
+ const metadata = entry.runData?.metadata?.subExecution;
303
+ if (metadata) {
304
+ return { workflowId: metadata.workflowId, executionId: metadata.executionId };
305
+ }
306
+ return parseErrorMetadata(entry.runData?.error)?.subExecution;
277
307
  }
278
308
  function getDepth(entry) {
279
309
  let depth = 0;
@@ -360,6 +390,12 @@ function restoreChatHistory(workflowExecutionData, emptyText2) {
360
390
  );
361
391
  return [...userMessage ? [userMessage] : [], ...botMessage ? [botMessage] : []];
362
392
  }
393
+ function isSubNodeLog(logEntry) {
394
+ return logEntry.parent !== void 0 && logEntry.parent.executionId === logEntry.executionId;
395
+ }
396
+ function isPlaceholderLog(treeNode) {
397
+ return treeNode.runData === void 0;
398
+ }
363
399
  function useChatMessaging({
364
400
  chatTrigger,
365
401
  messages: messages2,
@@ -779,10 +815,13 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
779
815
  const nodeTypeStore = useNodeTypesStore();
780
816
  const type = computed(() => nodeTypeStore.getNodeType(props.data.node.type));
781
817
  const isSettled = computed(
782
- () => props.data.runData.executionStatus && !["running", "waiting"].includes(props.data.runData.executionStatus)
818
+ () => props.data.runData?.executionStatus && !["running", "waiting"].includes(props.data.runData.executionStatus)
783
819
  );
784
- const isError = computed(() => !!props.data.runData.error);
820
+ const isError = computed(() => !!props.data.runData?.error);
785
821
  const startedAtText = computed(() => {
822
+ if (props.data.runData === void 0) {
823
+ return "—";
824
+ }
786
825
  const time = new Date(props.data.runData.startTime);
787
826
  return locale.baseText("logs.overview.body.started", {
788
827
  interpolate: {
@@ -790,19 +829,17 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
790
829
  }
791
830
  });
792
831
  });
793
- const statusText = computed(() => upperFirst(props.data.runData.executionStatus));
832
+ const statusText = computed(() => upperFirst(props.data.runData?.executionStatus ?? ""));
794
833
  const timeText = computed(
795
- () => locale.displayTimer(
834
+ () => props.data.runData ? locale.displayTimer(
796
835
  isSettled.value ? props.data.runData.executionTime : Math.floor((now.value - props.data.runData.startTime) / 1e3) * 1e3,
797
836
  true
798
- )
837
+ ) : void 0
799
838
  );
800
839
  const subtreeConsumedTokens = computed(
801
840
  () => props.shouldShowTokenCountColumn ? getSubtreeTotalConsumedTokens(props.data, false) : void 0
802
841
  );
803
- const hasChildren = computed(
804
- () => props.data.children.length > 0 || !!props.data.runData.metadata?.subExecution
805
- );
842
+ const hasChildren = computed(() => props.data.children.length > 0 || hasSubExecution(props.data));
806
843
  function isLastChild(level) {
807
844
  let parent = props.data.parent;
808
845
  let data = props.data;
@@ -902,10 +939,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
902
939
  createTextVNode(toDisplayString(timeText.value), 1)
903
940
  ]),
904
941
  _: 1
905
- })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
942
+ })) : timeText.value !== void 0 ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
906
943
  createTextVNode(toDisplayString(unref(locale).baseText("logs.overview.body.summaryText.for", {
907
944
  interpolate: { status: statusText.value, time: timeText.value }
908
945
  })), 1)
946
+ ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [
947
+ createTextVNode("—")
909
948
  ], 64))
910
949
  ]),
911
950
  _: 1
@@ -4773,12 +4812,14 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4773
4812
  const locale = useI18n$1();
4774
4813
  const ndvStore = useNDVStore();
4775
4814
  const displayMode = ref(__props.paneType === "input" ? "schema" : "table");
4776
- const isMultipleInput = computed(() => __props.paneType === "input" && __props.logEntry.runData.source.length > 1);
4815
+ const isMultipleInput = computed(
4816
+ () => __props.paneType === "input" && (__props.logEntry.runData?.source.length ?? 0) > 1
4817
+ );
4777
4818
  const runDataProps = computed(() => {
4778
4819
  if (__props.logEntry.depth > 0 || __props.paneType === "output") {
4779
4820
  return { node: __props.logEntry.node, runIndex: __props.logEntry.runIndex };
4780
4821
  }
4781
- const source = __props.logEntry.runData.source[0];
4822
+ const source = __props.logEntry.runData?.source[0];
4782
4823
  const node = source && __props.logEntry.workflow.getNode(source.previousNode);
4783
4824
  if (!source || !node) {
4784
4825
  return void 0;
@@ -4794,7 +4835,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4794
4835
  };
4795
4836
  });
4796
4837
  const isExecuting = computed(
4797
- () => __props.paneType === "output" && (__props.logEntry.runData.executionStatus === "running" || __props.logEntry.runData.executionStatus === "waiting")
4838
+ () => __props.paneType === "output" && (__props.logEntry.runData?.executionStatus === "running" || __props.logEntry.runData?.executionStatus === "waiting")
4798
4839
  );
4799
4840
  function handleClickOpenNdv() {
4800
4841
  ndvStore.setActiveNodeName(__props.logEntry.node.name);
@@ -5055,7 +5096,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
5055
5096
  name: _ctx.logEntry.node.name,
5056
5097
  "is-deleted": _ctx.latestInfo?.deleted ?? false
5057
5098
  }, null, 8, ["latest-name", "name", "is-deleted"]),
5058
- _ctx.isOpen ? (openBlock(), createBlock(LogsViewExecutionSummary, {
5099
+ _ctx.isOpen && _ctx.logEntry.runData !== void 0 ? (openBlock(), createBlock(LogsViewExecutionSummary, {
5059
5100
  key: 0,
5060
5101
  class: normalizeClass(_ctx.$style.executionSummary),
5061
5102
  status: _ctx.logEntry.runData.executionStatus ?? "unknown",
@@ -5066,7 +5107,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
5066
5107
  ], 2)
5067
5108
  ]),
5068
5109
  actions: withCtx(() => [
5069
- _ctx.isOpen && !isTriggerNode.value ? (openBlock(), createElementBlock("div", {
5110
+ _ctx.isOpen && !isTriggerNode.value && !unref(isPlaceholderLog)(_ctx.logEntry) ? (openBlock(), createElementBlock("div", {
5070
5111
  key: 0,
5071
5112
  class: normalizeClass(_ctx.$style.actions)
5072
5113
  }, [
@@ -5118,56 +5159,69 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
5118
5159
  class: normalizeClass(_ctx.$style.content),
5119
5160
  "data-test-id": "logs-details-body"
5120
5161
  }, [
5121
- !isTriggerNode.value && _ctx.panels !== unref(LOG_DETAILS_PANEL_STATE).OUTPUT ? (openBlock(), createBlock(unref(N8nResizeWrapper), {
5162
+ unref(isPlaceholderLog)(_ctx.logEntry) ? (openBlock(), createElementBlock("div", {
5122
5163
  key: 0,
5123
- class: normalizeClass({
5124
- [_ctx.$style.inputResizer]: true,
5125
- [_ctx.$style.collapsed]: unref(resizer).isCollapsed.value,
5126
- [_ctx.$style.full]: unref(resizer).isFullSize.value
5127
- }),
5128
- width: unref(resizer).size.value,
5129
- style: normalizeStyle(shouldResize.value ? { width: `${unref(resizer).size.value ?? 0}px` } : void 0),
5130
- "supported-directions": ["right"],
5131
- "is-resizing-enabled": shouldResize.value,
5132
- window: _ctx.window,
5133
- onResize: unref(resizer).onResize,
5134
- onResizeend: handleResizeEnd
5135
- }, {
5136
- default: withCtx(() => [
5137
- createVNode(LogsViewRunData, {
5138
- "data-test-id": "log-details-input",
5139
- "pane-type": "input",
5140
- title: unref(locale).baseText("logs.details.header.actions.input"),
5141
- "log-entry": _ctx.logEntry
5142
- }, null, 8, ["title", "log-entry"])
5143
- ]),
5144
- _: 1
5145
- }, 8, ["class", "width", "style", "is-resizing-enabled", "window", "onResize"])) : createCommentVNode("", true),
5146
- isTriggerNode.value || _ctx.panels !== unref(LOG_DETAILS_PANEL_STATE).INPUT ? (openBlock(), createBlock(LogsViewRunData, {
5147
- key: 1,
5148
- "data-test-id": "log-details-output",
5149
- "pane-type": "output",
5150
- class: normalizeClass(_ctx.$style.outputPanel),
5151
- title: unref(locale).baseText("logs.details.header.actions.output"),
5152
- "log-entry": _ctx.logEntry
5153
- }, null, 8, ["class", "title", "log-entry"])) : createCommentVNode("", true)
5164
+ class: normalizeClass(_ctx.$style.placeholder)
5165
+ }, [
5166
+ createVNode(unref(N8nText), { color: "text-base" }, {
5167
+ default: withCtx(() => [
5168
+ createTextVNode(toDisplayString(unref(locale).baseText("ndv.output.runNodeHint")), 1)
5169
+ ]),
5170
+ _: 1
5171
+ })
5172
+ ], 2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
5173
+ !isTriggerNode.value && _ctx.panels !== unref(LOG_DETAILS_PANEL_STATE).OUTPUT ? (openBlock(), createBlock(unref(N8nResizeWrapper), {
5174
+ key: 0,
5175
+ class: normalizeClass({
5176
+ [_ctx.$style.inputResizer]: true,
5177
+ [_ctx.$style.collapsed]: unref(resizer).isCollapsed.value,
5178
+ [_ctx.$style.full]: unref(resizer).isFullSize.value
5179
+ }),
5180
+ width: unref(resizer).size.value,
5181
+ style: normalizeStyle(shouldResize.value ? { width: `${unref(resizer).size.value ?? 0}px` } : void 0),
5182
+ "supported-directions": ["right"],
5183
+ "is-resizing-enabled": shouldResize.value,
5184
+ window: _ctx.window,
5185
+ onResize: unref(resizer).onResize,
5186
+ onResizeend: handleResizeEnd
5187
+ }, {
5188
+ default: withCtx(() => [
5189
+ createVNode(LogsViewRunData, {
5190
+ "data-test-id": "log-details-input",
5191
+ "pane-type": "input",
5192
+ title: unref(locale).baseText("logs.details.header.actions.input"),
5193
+ "log-entry": _ctx.logEntry
5194
+ }, null, 8, ["title", "log-entry"])
5195
+ ]),
5196
+ _: 1
5197
+ }, 8, ["class", "width", "style", "is-resizing-enabled", "window", "onResize"])) : createCommentVNode("", true),
5198
+ isTriggerNode.value || _ctx.panels !== unref(LOG_DETAILS_PANEL_STATE).INPUT ? (openBlock(), createBlock(LogsViewRunData, {
5199
+ key: 1,
5200
+ "data-test-id": "log-details-output",
5201
+ "pane-type": "output",
5202
+ class: normalizeClass(_ctx.$style.outputPanel),
5203
+ title: unref(locale).baseText("logs.details.header.actions.output"),
5204
+ "log-entry": _ctx.logEntry
5205
+ }, null, 8, ["class", "title", "log-entry"])) : createCommentVNode("", true)
5206
+ ], 64))
5154
5207
  ], 2)) : createCommentVNode("", true)
5155
5208
  ], 2);
5156
5209
  };
5157
5210
  }
5158
5211
  });
5159
- const container$2 = "_container_pax0a_123";
5160
- const header = "_header_pax0a_132";
5161
- const actions = "_actions_pax0a_136";
5162
- const pressed = "_pressed_pax0a_142";
5163
- const title = "_title_pax0a_146";
5164
- const icon = "_icon_pax0a_152";
5165
- const executionSummary = "_executionSummary_pax0a_156";
5166
- const content = "_content_pax0a_160";
5167
- const outputPanel = "_outputPanel_pax0a_168";
5168
- const inputResizer = "_inputResizer_pax0a_173";
5169
- const collapsed = "_collapsed_pax0a_177";
5170
- const full = "_full_pax0a_177";
5212
+ const container$2 = "_container_tdw6t_123";
5213
+ const header = "_header_tdw6t_132";
5214
+ const actions = "_actions_tdw6t_136";
5215
+ const pressed = "_pressed_tdw6t_142";
5216
+ const title = "_title_tdw6t_146";
5217
+ const icon = "_icon_tdw6t_152";
5218
+ const executionSummary = "_executionSummary_tdw6t_156";
5219
+ const content = "_content_tdw6t_160";
5220
+ const outputPanel = "_outputPanel_tdw6t_168";
5221
+ const inputResizer = "_inputResizer_tdw6t_173";
5222
+ const collapsed = "_collapsed_tdw6t_177";
5223
+ const full = "_full_tdw6t_177";
5224
+ const placeholder = "_placeholder_tdw6t_181";
5171
5225
  const style0$2 = {
5172
5226
  container: container$2,
5173
5227
  header,
@@ -5180,7 +5234,8 @@ const style0$2 = {
5180
5234
  outputPanel,
5181
5235
  inputResizer,
5182
5236
  collapsed,
5183
- full
5237
+ full,
5238
+ placeholder
5184
5239
  };
5185
5240
  const cssModules$2 = {
5186
5241
  "$style": style0$2
@@ -5335,19 +5390,18 @@ function useLogsExecutionData() {
5335
5390
  nodeHelpers.updateNodesExecutionIssues();
5336
5391
  }
5337
5392
  async function loadSubExecution(logEntry) {
5338
- const executionId = logEntry.runData.metadata?.subExecution?.executionId;
5339
- const workflowId = logEntry.runData.metadata?.subExecution?.workflowId;
5340
- if (!execData.value?.data || !executionId || !workflowId) {
5393
+ const locator = findSubExecutionLocator(logEntry);
5394
+ if (!execData.value?.data || locator === void 0) {
5341
5395
  return;
5342
5396
  }
5343
5397
  try {
5344
- const subExecution = await workflowsStore.fetchExecutionDataById(executionId);
5398
+ const subExecution = await workflowsStore.fetchExecutionDataById(locator.executionId);
5345
5399
  const data = subExecution?.data ? parse(subExecution.data) : void 0;
5346
5400
  if (!data || !subExecution) {
5347
5401
  throw Error("Data is missing");
5348
5402
  }
5349
- subWorkflowExecData.value[executionId] = data;
5350
- subWorkflows.value[workflowId] = new Workflow({
5403
+ subWorkflowExecData.value[locator.executionId] = data;
5404
+ subWorkflows.value[locator.workflowId] = new Workflow({
5351
5405
  ...subExecution.workflowData,
5352
5406
  nodeTypes: workflowsStore.getNodeTypes()
5353
5407
  });
@@ -5430,6 +5484,15 @@ function useLogsSelection(execution, tree2, flatLogEntries, toggleExpand) {
5430
5484
  manualLogEntrySelection.value = { type: "selected", id: nextEntry.id };
5431
5485
  syncSelectionToCanvasIfEnabled(nextEntry);
5432
5486
  }
5487
+ watch(
5488
+ selected2,
5489
+ (sel) => {
5490
+ if (sel) {
5491
+ logsStore.setSubNodeSelected(isSubNodeLog(sel));
5492
+ }
5493
+ },
5494
+ { immediate: true }
5495
+ );
5433
5496
  watch(
5434
5497
  [() => uiStore.lastSelectedNode, () => logsStore.isLogSelectionSyncedWithCanvas],
5435
5498
  ([selectedOnCanvas, shouldSync]) => {
@@ -5690,7 +5753,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5690
5753
  async function handleOpenNdv(treeNode) {
5691
5754
  ndvStore.setActiveNodeName(treeNode.node.name);
5692
5755
  await nextTick(() => {
5693
- const source = treeNode.runData.source[0];
5756
+ const source = treeNode.runData?.source[0];
5694
5757
  const inputBranch = source?.previousNodeOutput ?? 0;
5695
5758
  ndvEventBus.emit("updateInputNodeName", source?.previousNode);
5696
5759
  ndvEventBus.emit("setInputBranchIndex", inputBranch);
@@ -1,12 +1,11 @@
1
- import { d as defineComponent, s as MAIN_HEADER_TABS, h as resolveComponent, i as createElementBlock, f as createCommentVNode, g as openBlock, n as normalizeClass, j as createVNode, _ as _export_sfc, r as ref, v as onBeforeUnmount, o as onMounted, x as renderSlot, y as nextTick, q as computed, z as debounce, e as createBlock, m as unref, A as normalizeStyle, B as createEventBus, w as withCtx, k as createBaseVNode, F as Fragment, C as renderList, l as createTextVNode, t as toDisplayString, D as useTagsStore, E as useDebounce, G as useUIStore, H as BREAKPOINT_SM, I as BREAKPOINT_XL, J as BREAKPOINT_LG, K as BREAKPOINT_MD, L as getBannerRowHeight, V as VIEWS, c as useI18n, N as defineStore, O as usePushConnectionStore, P as useWorkflowsStore, u as useUsersStore, Q as useRoute, R as PLACEHOLDER_EMPTY_WORKFLOW_ID, S as STORES, T as TIME, U as useDocumentVisibility, W as watch, X as useCssModule, Y as useRootStore, Z as useCanvasStore, p as useSettingsStore, $ as useSourceControlStore, a0 as useProjectsStore, a1 as useFoldersStore, a2 as useNpsSurveyStore, b as useRouter, a as useToast, a3 as useDocumentTitle, a4 as useWorkflowSaving, a5 as useWorkflowHelpers, a6 as usePageRedirectionHelper, a7 as getResourcePermissions, a8 as WORKFLOW_MENU_ACTIONS, a9 as hasPermission, aa as EnterpriseEditionFeature, ab as ProjectTypes, ac as useTemplateRef, ad as InlineRename, ae as MAX_WORKFLOW_NAME_LENGTH, af as _sfc_main$a, ag as SaveButton, ah as WORKFLOW_SHARE_MODAL_KEY, ai as useTelemetry, aj as nodeViewEventBus, ak as useMessage, al as MODAL_CONFIRM, am as WORKFLOW_SETTINGS_MODAL_KEY, an as SOURCE_CONTROL_PUSH_MODAL_KEY, ao as IMPORT_WORKFLOW_URL_MODAL_KEY, ap as DUPLICATE_MODAL_KEY, aq as ResourceType, ar as PROJECT_MOVE_RESOURCE_MODAL, as as __vitePreload, at as hyphenate, au as h, av as hasOwn, aw as useNDVStore, ax as useExecutionsStore, ay as usePostHog, az as useLocalStorage, aA as LOCAL_STORAGE_HIDE_GITHUB_STAR_BUTTON, aB as WORKFLOW_EVALUATION_EXPERIMENT, aC as STICKY_NODE_TYPE, aD as onBeforeMount, aE as withDirectives, aF as vShow, aG as N8N_MAIN_GITHUB_REPO_URL } from "./index-Bpsc-Tmx.js";
2
- import { _ as __unplugin_components_0, W as WorkflowActivator } from "./WorkflowActivator-CLLu_k_M.js";
3
- import { _ as _sfc_main$b } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-CTSX9GvK.js";
4
- import { u as useBeforeUnload } from "./useBeforeUnload-B2awFcaP.js";
5
- import { F as FileSaver_minExports } from "./FileSaver.min-sGd5mes-.js";
6
- import { u as usePushConnection } from "./usePushConnection-B7DMiByn.js";
7
- import "./useWorkflowActivate-CNqz_pHl.js";
8
- import "./easyAiWorkflowUtils-DRIGIHJ7.js";
9
- import "./global-link-actions-BF0Tj_I9.js";
1
+ import { d as defineComponent, y as MAIN_HEADER_TABS, h as resolveComponent, i as createElementBlock, f as createCommentVNode, g as openBlock, n as normalizeClass, j as createVNode, _ as _export_sfc, r as ref, z as onBeforeUnmount, o as onMounted, A as renderSlot, B as nextTick, x as computed, C as debounce, e as createBlock, m as unref, D as normalizeStyle, E as createEventBus, w as withCtx, k as createBaseVNode, F as Fragment, G as renderList, l as createTextVNode, t as toDisplayString, H as useTagsStore, I as useDebounce, J as useUIStore, K as BREAKPOINT_SM, L as BREAKPOINT_XL, O as BREAKPOINT_LG, P as BREAKPOINT_MD, Q as getBannerRowHeight, V as VIEWS, c as useI18n, R as defineStore, S as usePushConnectionStore, T as useWorkflowsStore, u as useUsersStore, U as useRoute, W as PLACEHOLDER_EMPTY_WORKFLOW_ID, X as STORES, Y as TIME, Z as useDocumentVisibility, $ as watch, a0 as useCssModule, a1 as useRootStore, a2 as useCanvasStore, v as useSettingsStore, a3 as useSourceControlStore, a4 as useProjectsStore, a5 as useFoldersStore, a6 as useNpsSurveyStore, b as useRouter, a as useToast, a7 as useDocumentTitle, a8 as useWorkflowSaving, a9 as useWorkflowHelpers, aa as usePageRedirectionHelper, ab as getResourcePermissions, ac as WORKFLOW_MENU_ACTIONS, ad as hasPermission, ae as EnterpriseEditionFeature, af as ProjectTypes, ag as useTemplateRef, ah as InlineRename, ai as MAX_WORKFLOW_NAME_LENGTH, aj as _sfc_main$a, ak as SaveButton, al as WORKFLOW_SHARE_MODAL_KEY, am as useTelemetry, an as nodeViewEventBus, ao as useMessage, ap as MODAL_CONFIRM, aq as WORKFLOW_SETTINGS_MODAL_KEY, ar as SOURCE_CONTROL_PUSH_MODAL_KEY, as as IMPORT_WORKFLOW_URL_MODAL_KEY, at as DUPLICATE_MODAL_KEY, au as ResourceType, av as PROJECT_MOVE_RESOURCE_MODAL, aw as __vitePreload, ax as hyphenate, ay as h, az as hasOwn, aA as useNDVStore, aB as useExecutionsStore, aC as usePostHog, aD as useLocalStorage, aE as LOCAL_STORAGE_HIDE_GITHUB_STAR_BUTTON, aF as WORKFLOW_EVALUATION_EXPERIMENT, aG as STICKY_NODE_TYPE, aH as onBeforeMount, aI as withDirectives, aJ as vShow, aK as N8N_MAIN_GITHUB_REPO_URL } from "./index-Q8IZ0Cou.js";
2
+ import { _ as __unplugin_components_0, W as WorkflowActivator } from "./WorkflowActivator-CErBRTtp.js";
3
+ import { _ as _sfc_main$b } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-CI5PGbAh.js";
4
+ import { u as useBeforeUnload } from "./useBeforeUnload-C71vlfPw.js";
5
+ import { F as FileSaver_minExports } from "./FileSaver.min-DfMUUVIo.js";
6
+ import { u as usePushConnection } from "./usePushConnection-CAxPjJ8k.js";
7
+ import "./useWorkflowActivate-BTOkypU2.js";
8
+ import "./global-link-actions-CW1V4kFI.js";
10
9
  const _sfc_main$9 = /* @__PURE__ */ defineComponent({
11
10
  __name: "TabBar",
12
11
  props: {
@@ -1,5 +1,5 @@
1
- import { aH as get, d as defineComponent, aI as useLoadingService, G as useUIStore, $ as useSourceControlStore, a0 as useProjectsStore, a as useToast, r as ref, q as computed, a9 as hasPermission, a7 as getResourcePermissions, h as resolveComponent, i as createElementBlock, f as createCommentVNode, g as openBlock, A as normalizeStyle, n as normalizeClass, m as unref, k as createBaseVNode, j as createVNode, l as createTextVNode, t as toDisplayString, w as withCtx, c as useI18n, B as createEventBus, an as SOURCE_CONTROL_PUSH_MODAL_KEY, aJ as notifyUserAboutPullWorkFolderOutcome, aK as sourceControlEventBus, aL as SOURCE_CONTROL_PULL_MODAL_KEY, _ as _export_sfc, N as defineStore, aM as useCloudPlanStore, Y as useRootStore, aN as useStorage, aO as DateTime, S as STORES, ai as useTelemetry, p as useSettingsStore, b as useRouter, aP as sortByProperty, V as VIEWS, a6 as usePageRedirectionHelper, e as createBlock, F as Fragment, C as renderList, aQ as useDebugInfo, aR as useTemplatesStore, u as useUsersStore, aS as useVersionsStore, P as useWorkflowsStore, E as useDebounce, Q as useRoute, o as onMounted, aT as useExternalHooks, y as nextTick, v as onBeforeUnmount, aU as onClickOutside, aV as N8nTooltip, aW as N8nLink, aX as _sfc_main$5, aY as N8nNavigationDropdown, aZ as createSlots, a_ as VERSIONS_MODAL_KEY, a$ as ABOUT_MODAL_KEY } from "./index-Bpsc-Tmx.js";
2
- import { L as Logo } from "./Logo-CTlaJzVH.js";
1
+ import { aL as get, d as defineComponent, aM as useLoadingService, J as useUIStore, a3 as useSourceControlStore, a4 as useProjectsStore, a as useToast, r as ref, x as computed, ad as hasPermission, ab as getResourcePermissions, h as resolveComponent, i as createElementBlock, f as createCommentVNode, g as openBlock, D as normalizeStyle, n as normalizeClass, m as unref, k as createBaseVNode, j as createVNode, l as createTextVNode, t as toDisplayString, w as withCtx, c as useI18n, E as createEventBus, ar as SOURCE_CONTROL_PUSH_MODAL_KEY, aN as notifyUserAboutPullWorkFolderOutcome, aO as sourceControlEventBus, aP as SOURCE_CONTROL_PULL_MODAL_KEY, _ as _export_sfc, R as defineStore, aQ as useCloudPlanStore, a1 as useRootStore, aR as useStorage, aS as DateTime, X as STORES, am as useTelemetry, v as useSettingsStore, b as useRouter, aT as sortByProperty, V as VIEWS, aa as usePageRedirectionHelper, e as createBlock, F as Fragment, G as renderList, aU as useDebugInfo, aV as useTemplatesStore, u as useUsersStore, aW as useVersionsStore, T as useWorkflowsStore, I as useDebounce, U as useRoute, o as onMounted, aX as useExternalHooks, B as nextTick, z as onBeforeUnmount, aY as onClickOutside, aZ as N8nTooltip, a_ as N8nLink, a$ as _sfc_main$5, b0 as N8nNavigationDropdown, b1 as createSlots, b2 as VERSIONS_MODAL_KEY, b3 as ABOUT_MODAL_KEY } from "./index-Q8IZ0Cou.js";
2
+ import { L as Logo } from "./Logo-CHeW0pXf.js";
3
3
  async function getBecomeCreatorCta(context) {
4
4
  const response = await get(context.baseUrl, "/cta/become-creator");
5
5
  return response;