n8n-editor-ui 1.90.1 → 1.92.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 (126) hide show
  1. package/dist/assets/{AnimatedSpinner-ChThynSJ.js → AnimatedSpinner-CtKKeDrz.js} +1 -1
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-WGp2Kuen.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DR6h_xsK.js} +1 -1
  3. package/dist/assets/{AuthView-Dlhn_SQ-.js → AuthView-mKkzBRxh.js} +2 -2
  4. package/dist/assets/{CanvasChatSwitch-BuBg7TJP.js → CanvasChatSwitch-Bu2VD2kp.js} +24 -12
  5. package/dist/assets/{ChangePasswordView-BKYXOoDf.js → ChangePasswordView-D5UI1v-J.js} +3 -3
  6. package/dist/assets/CollectionParameter-BeCTpZ-q.js +4 -0
  7. package/dist/assets/{CredentialsView-BNWIgrLb.js → CredentialsView-B78eNJO5.js} +10 -9
  8. package/dist/assets/{DemoFooter-DR6r_2qR.js → DemoFooter-DP26HpCu.js} +8 -8
  9. package/dist/assets/{ErrorView-Bu8Mt5FH.js → ErrorView-C3fvEdCg.js} +1 -1
  10. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-DvtOOOhh.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-BBpwYdHY.js} +2 -2
  11. package/dist/assets/{ExecutionsView-C0WZAIi0.js → ExecutionsView-BvlDZwIs.js} +11 -10
  12. package/dist/assets/{FileSaver.min-Cm0u4qyc.js → FileSaver.min-BzAtcQXX.js} +1 -1
  13. package/dist/assets/{FixedCollectionParameter-KmRZtBiP.js → FixedCollectionParameter-CS5zXMAh.js} +1 -1
  14. package/dist/assets/{ForgotMyPasswordView-GH7SqEFu.js → ForgotMyPasswordView-CVQ7pcIG.js} +3 -3
  15. package/dist/assets/{InsightsChartAverageRuntime-SeBUN06R.js → InsightsChartAverageRuntime-Boh0SMb3.js} +7 -6
  16. package/dist/assets/{InsightsChartFailed-TYjH8LwV.js → InsightsChartFailed-IZ-KYOU9.js} +7 -6
  17. package/dist/assets/{InsightsChartFailureRate-D41Jv-6v.js → InsightsChartFailureRate-2fWw3p0L.js} +7 -6
  18. package/dist/assets/{InsightsChartTimeSaved-TLPDAmPx.js → InsightsChartTimeSaved-B2pLVys1.js} +7 -6
  19. package/dist/assets/{InsightsChartTotal-CaKTe2mv.js → InsightsChartTotal-2QD4wPLR.js} +7 -6
  20. package/dist/assets/{InsightsDashboard-DPVczYm3.css → InsightsDashboard-Bx4vx9gz.css} +16 -0
  21. package/dist/assets/InsightsDashboard-CbiFbJ8w.js +372 -0
  22. package/dist/assets/{InsightsPaywall-Z4Y0nO-i.js → InsightsPaywall-5d-cSdiS.js} +1 -1
  23. package/dist/assets/{InsightsSummary-FixbpmPJ.css → InsightsSummary-CdlaUpAt.css} +25 -25
  24. package/dist/assets/{InsightsSummary-DzYli0Pu.js → InsightsSummary-gldDQ9rg.js} +16 -17
  25. package/dist/assets/{InsightsTableWorkflows-CUHAG57c.js → InsightsTableWorkflows-_eTCUNCX.js} +2 -2
  26. package/dist/assets/{Logo-Dxp4M9dy.js → Logo-Dl2xVRIu.js} +1 -1
  27. package/dist/assets/{LogsPanel-zIrTNE6j.js → LogsPanel-JnYirDqa.js} +520 -436
  28. package/dist/assets/{LogsPanel-DmPMCt9w.css → LogsPanel-mTaFEGk_.css} +208 -98
  29. package/dist/assets/{MainHeader-D4cIIoUA.js → MainHeader-Bk29pgmL.js} +122 -295
  30. package/dist/assets/MainHeader-CEPLiR-5.css +1044 -0
  31. package/dist/assets/{MainSidebar-BtW-9UPT.js → MainSidebar-BM5ku_wM.js} +11 -11
  32. package/dist/assets/{MainSidebar-CKMiDGvH.css → MainSidebar-zZpP3qQ0.css} +13 -12
  33. package/dist/assets/{NodeCreation-thD32mA1.js → NodeCreation-BEjdAYc_.js} +4 -4
  34. package/dist/assets/{NodeCreator-B4mHaU45.js → NodeCreator-cEUgbAI9.js} +14 -4
  35. package/dist/assets/{NodeDetailsView-cO3Ci9jH.js → NodeDetailsView-D4O9dKTA.js} +93 -68
  36. package/dist/assets/{NodeDetailsView-CGgV4Pn_.css → NodeDetailsView-DsFLtbxi.css} +20 -20
  37. package/dist/assets/{NodeView-E5b1ClVD.js → NodeView-DDSOUm8E.js} +152 -34
  38. package/dist/assets/{ProjectCardBadge-LnLKqSK-.js → ProjectCardBadge-BNn2hiMe.js} +1 -1
  39. package/dist/assets/{ProjectHeader-DC02ZuZ0.js → ProjectHeader-CaEZ2OPj.js} +1 -1
  40. package/dist/assets/{ProjectSettings-Zr1UOp7s.js → ProjectSettings-otA8E-yW.js} +2 -2
  41. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-CM7WIpD3.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-C3JbZMCk.js} +1 -1
  42. package/dist/assets/{ResourcesListLayout-DTsuHdYx.js → ResourcesListLayout-1d9Ic6VX.js} +2 -2
  43. package/dist/assets/{ResourcesListLayout-CglK2dXR.css → ResourcesListLayout-CtGME7aU.css} +8 -8
  44. package/dist/assets/{RunData-DepHcD2K.css → RunData-BjlZgIyx.css} +102 -73
  45. package/dist/assets/{RunData-Ds-U68nr.js → RunData-Bx47sNQp.js} +690 -398
  46. package/dist/assets/{RunDataAi-BF2gZZGr.css → RunDataAi-D9VLFXIf.css} +10 -51
  47. package/dist/assets/{RunDataAi-DdK11EHU.js → RunDataAi-DOac7nwD.js} +27 -310
  48. package/dist/assets/{RunDataJson-Txw0lqay.css → RunDataJson-BH9HLoGC.css} +12 -8
  49. package/dist/assets/{RunDataJson-B2WU5od1.js → RunDataJson-Pev6yNEV.js} +20 -14
  50. package/dist/assets/{RunDataJsonActions-DqZ2X1yJ.js → RunDataJsonActions-Co4xgmVq.js} +1 -1
  51. package/dist/assets/RunDataParsedAiContent-9EEUzCKp.css +176 -0
  52. package/dist/assets/RunDataParsedAiContent-D6MNLmT3.js +148 -0
  53. package/dist/assets/{RunDataSearch-CQsyZvGK.js → RunDataSearch-C8orcAlP.js} +1 -1
  54. package/dist/assets/{RunDataTable-DyUvXWfl.css → RunDataTable-CUxj7dHx.css} +47 -39
  55. package/dist/assets/{RunDataTable-BO0R4JT_.js → RunDataTable-oi_l8dhA.js} +41 -30
  56. package/dist/assets/{SamlOnboarding-CmwMX5y2.js → SamlOnboarding-CT5J6dx0.js} +3 -3
  57. package/dist/assets/{SettingsApiView-D6uBbi9-.js → SettingsApiView-CupjcI9v.js} +1 -1
  58. package/dist/assets/{SettingsCommunityNodesView-CJODtx_K.js → SettingsCommunityNodesView-B5K2VLyJ.js} +4 -4
  59. package/dist/assets/{SettingsExternalSecrets-CVk14P_P.js → SettingsExternalSecrets-BidJCf_t.js} +1 -1
  60. package/dist/assets/{SettingsLdapView-pg71FErj.js → SettingsLdapView-Cva6akhW.js} +1 -1
  61. package/dist/assets/{SettingsLogStreamingView-DUOI3Xb9.js → SettingsLogStreamingView-Cy-rAKUO.js} +1 -1
  62. package/dist/assets/{SettingsPersonalView-BFnOmBPC.js → SettingsPersonalView-ZJ1Syok2.js} +14 -13
  63. package/dist/assets/{SettingsSourceControl-BUNmxcvB.js → SettingsSourceControl-CMtqqlkO.js} +1 -1
  64. package/dist/assets/{SettingsSso-Dx8Qw_2Z.js → SettingsSso-Bi3OpykL.js} +1 -1
  65. package/dist/assets/{SettingsUsageAndPlan-DTk86tXU.js → SettingsUsageAndPlan-C5TbwZhP.js} +1 -1
  66. package/dist/assets/{SettingsUsersView-BviXcl30.js → SettingsUsersView-BHuP5k0A.js} +1 -1
  67. package/dist/assets/{SettingsView-fzPdUijx.js → SettingsView-DPIIqaKN.js} +1 -1
  68. package/dist/assets/{SetupView-DUTx1JXK.js → SetupView-C4V9j6sh.js} +3 -3
  69. package/dist/assets/{SetupWorkflowCredentialsButton-fApxCGHh.js → SetupWorkflowCredentialsButton-BZ9ILQUp.js} +1 -1
  70. package/dist/assets/{SetupWorkflowFromTemplateView-C5t9fEKF.js → SetupWorkflowFromTemplateView-3uV3zSU2.js} +3 -3
  71. package/dist/assets/{SigninView-BRVoXQRW.js → SigninView-DWZHdCjG.js} +3 -3
  72. package/dist/assets/{SignoutView-Duh6wb4Y.js → SignoutView-DbduXAir.js} +1 -1
  73. package/dist/assets/{SignupView-DMkpTtjs.js → SignupView-DWq6VACk.js} +3 -3
  74. package/dist/assets/{TemplateDetails-Df9_jph6.js → TemplateDetails-BckqE6GK.js} +1 -1
  75. package/dist/assets/{TemplateList-qSnJvw0K.js → TemplateList-Bw0JeBMP.js} +1 -1
  76. package/dist/assets/{TemplatesCollectionView--ccYXaCo.js → TemplatesCollectionView-CAKT-mpV.js} +5 -5
  77. package/dist/assets/{TemplatesSearchView-D1YgHKld.js → TemplatesSearchView-I2a5us58.js} +3 -3
  78. package/dist/assets/{TemplatesView-B9CwObHN.js → TemplatesView-6EwGFFJK.js} +1 -1
  79. package/dist/assets/{TemplatesWorkflowView-DtLpUF59.js → TemplatesWorkflowView-C8xYMhwu.js} +5 -5
  80. package/dist/assets/{TestDefinitionEditView-DFcBlKnN.js → TestDefinitionEditView-CNd3Cuzq.js} +8 -8
  81. package/dist/assets/{TestDefinitionListView-C_mbolTO.js → TestDefinitionListView-BwTWIaAM.js} +1 -1
  82. package/dist/assets/{TestDefinitionNewView-CvyM6TLE.js → TestDefinitionNewView-BQas0_G1.js} +2 -2
  83. package/dist/assets/{TestDefinitionRootView-BXzJY0cY.js → TestDefinitionRootView-D971MFye.js} +1 -1
  84. package/dist/assets/{VariablesView-BHFJj5IU.js → VariablesView-DcBBuFxh.js} +3 -3
  85. package/dist/assets/{WorkerView-CgIksFjP.js → WorkerView-DSgBNIeb.js} +6 -6
  86. package/dist/assets/WorkflowActivator-CPCbgb_n.js +776 -0
  87. package/dist/assets/{MainHeader-CWA2JfVJ.css → WorkflowActivator-DAyH7N29.css} +74 -434
  88. package/dist/assets/{WorkflowExecutionsInfoAccordion-BcBLZ_Ul.js → WorkflowExecutionsInfoAccordion-Bc6vzAZu.js} +1 -1
  89. package/dist/assets/{WorkflowExecutionsLandingPage-B9ByHnbR.js → WorkflowExecutionsLandingPage-BPPS4V9i.js} +2 -2
  90. package/dist/assets/{WorkflowExecutionsPreview-DCE7TYLh.js → WorkflowExecutionsPreview-Bbb5MB8Z.js} +6 -6
  91. package/dist/assets/{WorkflowExecutionsView-DFoBpdS7.js → WorkflowExecutionsView-Pz-7iHJY.js} +11 -9
  92. package/dist/assets/{WorkflowHistory-DolmPUM2.js → WorkflowHistory-Czo9IuI6.js} +4 -4
  93. package/dist/assets/{WorkflowOnboardingView-DQW48M8_.js → WorkflowOnboardingView-B8DdkfJ5.js} +1 -1
  94. package/dist/assets/{WorkflowPreview-BFR6V9SO.js → WorkflowPreview-eVlO1itk.js} +1 -1
  95. package/dist/assets/{WorkflowsView-CsM69PSv.css → WorkflowsView-B2_HJCJ5.css} +28 -162
  96. package/dist/assets/{WorkflowsView-B-feKuLZ.js → WorkflowsView-Cr2D0vym.js} +124 -217
  97. package/dist/assets/{chartjs.utils-BcXTJ2Te.js → chartjs.utils-Dk1WO3Mr.js} +2 -2
  98. package/dist/assets/{dateFormatter-CZI1kGYK.js → dateFormatter-C8N5khiG.js} +5 -5
  99. package/dist/assets/{easyAiWorkflowUtils-ChToD_Yl.js → easyAiWorkflowUtils-CLqHnasO.js} +1 -1
  100. package/dist/assets/{global-link-actions-OGaZVwsw.js → global-link-actions-BvoZh8u9.js} +1 -1
  101. package/dist/assets/{import-curl-CAszzwx1.js → import-curl-BpxkGYMX.js} +1 -1
  102. package/dist/assets/{index-BpdkKRP4.js → index-B6eunbxp.js} +14227 -11881
  103. package/dist/assets/{index-7WdERzqm.js → index-Br8T1Gn6.js} +1 -1
  104. package/dist/assets/{index-C5OXOcIJ.css → index-DCpy4nCU.css} +6147 -4061
  105. package/dist/assets/{pickBy-mYqFOFbh.js → pickBy-8Urz9lDY.js} +1 -1
  106. package/dist/assets/{templateActions-BX9arLbc.js → templateActions-DzjysjbQ.js} +1 -1
  107. package/dist/assets/{useBeforeUnload-K7nQ15Rk.js → useBeforeUnload-DxrN8vOO.js} +1 -1
  108. package/dist/assets/{useCanvasMapping-D_UPCxYX.js → useCanvasMapping-C2BQB9QB.js} +270 -112
  109. package/dist/assets/{useCanvasMapping-C--wac6H.css → useCanvasMapping-cuXLM-h-.css} +185 -4
  110. package/dist/assets/{useCanvasOperations-D6VFiC3b.js → useCanvasOperations-DaP5jKbH.js} +4 -3
  111. package/dist/assets/{useClearExecutionButtonVisible-D_0O6f0X.js → useClearExecutionButtonVisible-BV-jMf2m.js} +2 -2
  112. package/dist/assets/{useExecutionDebugging-BNMaKOh7.js → useExecutionDebugging-0pPCimcw.js} +1 -1
  113. package/dist/assets/{useExecutionHelpers-DN5HqPqY.js → useExecutionHelpers-DIvhViMz.js} +2 -2
  114. package/dist/assets/{useImportCurlCommand-BSL596XF.js → useImportCurlCommand-BWf4R83s.js} +19 -10
  115. package/dist/assets/usePushConnection-Pobjq0U9.js +632 -0
  116. package/dist/assets/{useTestDefinitionForm-CIhrxyve.js → useTestDefinitionForm-BA3IS_2B.js} +1 -1
  117. package/dist/assets/{useWorkflowActivate-pZ62ib_C.js → useWorkflowActivate-DFqvrpj6.js} +1 -1
  118. package/dist/assets/useWorkflowSaving-BACesUoL.js +66 -0
  119. package/dist/index.html +2 -2
  120. package/package.json +1 -1
  121. package/vite.config.mts +15 -1
  122. package/dist/assets/CollectionParameter-CQXiWluX.js +0 -4
  123. package/dist/assets/InsightsDashboard-o3JS9fjz.js +0 -178
  124. package/dist/assets/WorkflowActivator-BX59FxTZ.css +0 -260
  125. package/dist/assets/WorkflowActivator-O6i5XAk2.js +0 -231
  126. package/dist/assets/usePushConnection-BdV7ILvK.js +0 -535
@@ -1,13 +1,13 @@
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, q as computed, v as shorten, x as renderSlot, r as ref, y as onBeforeUnmount, o as onMounted, z as nextTick, A as debounce, e as createBlock, m as unref, B as normalizeStyle, C as createEventBus, w as withCtx, k as createBaseVNode, F as Fragment, D as renderList, l as createTextVNode, t as toDisplayString, E as useTagsStore, G as onClickOutside, H as withKeys, I as watch, J as withModifiers, K as useDebounce, L as useUIStore, N as BREAKPOINT_SM, O as BREAKPOINT_XL, P as BREAKPOINT_LG, Q as BREAKPOINT_MD, R as getBannerRowHeight, V as VIEWS, c as useI18n, S as defineStore, T as usePushConnectionStore, U as useWorkflowsStore, u as useUsersStore, W as useRoute, X as PLACEHOLDER_EMPTY_WORKFLOW_ID, Y as STORES, Z as TIME, $ as useDocumentVisibility, a0 as useCssModule, a1 as useRootStore, a2 as useCanvasStore, p as useSettingsStore, a3 as useSourceControlStore, a4 as useProjectsStore, a5 as useNpsSurveyStore, b as useRouter, a as useToast, a6 as useDocumentTitle, a7 as useWorkflowHelpers, a8 as usePageRedirectionHelper, a9 as getResourcePermissions, aa as WORKFLOW_MENU_ACTIONS, ab as hasPermission, ac as EnterpriseEditionFeature, ad as ProjectTypes, ae as MAX_WORKFLOW_NAME_LENGTH, af as _sfc_main$f, 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 VALID_WORKFLOW_IMPORT_URL_REGEX, ap as DUPLICATE_MODAL_KEY, aq as __vitePreload, ar as hyphenate, as as h, at as hasOwn, au as useNDVStore, av as useExecutionsStore, aw as usePostHog, ax as useLocalStorage, ay as LOCAL_STORAGE_HIDE_GITHUB_STAR_BUTTON, az as WORKFLOW_EVALUATION_EXPERIMENT, aA as STICKY_NODE_TYPE, aB as onBeforeMount, aC as withDirectives, aD as vShow, aE as N8N_MAIN_GITHUB_REPO_URL } from "./index-BpdkKRP4.js";
2
- import { _ as _sfc_main$g } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-CM7WIpD3.js";
3
- import { W as WorkflowActivator } from "./WorkflowActivator-O6i5XAk2.js";
4
- import { u as useBeforeUnload } from "./useBeforeUnload-K7nQ15Rk.js";
5
- import { F as FileSaver_minExports } from "./FileSaver.min-Cm0u4qyc.js";
6
- import { u as usePushConnection } from "./usePushConnection-BdV7ILvK.js";
7
- import "./useWorkflowActivate-pZ62ib_C.js";
8
- import "./global-link-actions-OGaZVwsw.js";
9
- import "./easyAiWorkflowUtils-ChToD_Yl.js";
10
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
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, q as computed, v as shorten, x as renderSlot, r as ref, y as onBeforeUnmount, o as onMounted, z as nextTick, A as debounce, e as createBlock, m as unref, B as normalizeStyle, C as createEventBus, w as withCtx, k as createBaseVNode, F as Fragment, D as renderList, l as createTextVNode, t as toDisplayString, E as useTagsStore, G as useDebounce, H as useUIStore, I as BREAKPOINT_SM, J as BREAKPOINT_XL, K as BREAKPOINT_LG, L as BREAKPOINT_MD, N as getBannerRowHeight, V as VIEWS, c as useI18n, O as defineStore, P as usePushConnectionStore, Q as useWorkflowsStore, u as useUsersStore, R as useRoute, S as PLACEHOLDER_EMPTY_WORKFLOW_ID, T as STORES, U as TIME, W as useDocumentVisibility, X as watch, Y as useCssModule, Z as useRootStore, $ as useCanvasStore, p as useSettingsStore, a0 as useSourceControlStore, a1 as useProjectsStore, a2 as useFoldersStore, a3 as useNpsSurveyStore, b as useRouter, a as useToast, a4 as useDocumentTitle, 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 MAX_WORKFLOW_NAME_LENGTH, ad as _sfc_main$b, ae as SaveButton, af as WORKFLOW_SHARE_MODAL_KEY, ag as useTelemetry, ah as nodeViewEventBus, ai as useMessage, aj as MODAL_CONFIRM, ak as WORKFLOW_SETTINGS_MODAL_KEY, al as SOURCE_CONTROL_PUSH_MODAL_KEY, am as VALID_WORKFLOW_IMPORT_URL_REGEX, an as DUPLICATE_MODAL_KEY, ao as __vitePreload, ap as hyphenate, aq as h, ar as hasOwn, as as useNDVStore, at as useExecutionsStore, au as usePostHog, av as useLocalStorage, aw as LOCAL_STORAGE_HIDE_GITHUB_STAR_BUTTON, ax as WORKFLOW_EVALUATION_EXPERIMENT, ay as STICKY_NODE_TYPE, az as onBeforeMount, aA as withDirectives, aB as vShow, aC as N8N_MAIN_GITHUB_REPO_URL } from "./index-B6eunbxp.js";
2
+ import { _ as __unplugin_components_0, I as InlineTextEdit, W as WorkflowActivator } from "./WorkflowActivator-CPCbgb_n.js";
3
+ import { _ as _sfc_main$c } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-C3JbZMCk.js";
4
+ import { u as useBeforeUnload } from "./useBeforeUnload-DxrN8vOO.js";
5
+ import { F as FileSaver_minExports } from "./FileSaver.min-BzAtcQXX.js";
6
+ import { u as usePushConnection } from "./usePushConnection-Pobjq0U9.js";
7
+ import "./useWorkflowActivate-DFqvrpj6.js";
8
+ import "./easyAiWorkflowUtils-CLqHnasO.js";
9
+ import "./global-link-actions-BvoZh8u9.js";
10
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
11
11
  __name: "TabBar",
12
12
  props: {
13
13
  items: {},
@@ -44,11 +44,11 @@ const style0$3 = {
44
44
  const cssModules$4 = {
45
45
  "$style": style0$3
46
46
  };
47
- const TabBar = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__cssModules", cssModules$4]]);
48
- const _hoisted_1$7 = ["title", "data-test-id"];
47
+ const TabBar = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$4]]);
48
+ const _hoisted_1$3 = ["title", "data-test-id"];
49
49
  const DEFAULT_WORKFLOW_NAME_LIMIT = 25;
50
50
  const WORKFLOW_NAME_END_COUNT_TO_KEEP = 4;
51
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
51
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
52
52
  __name: "ShortenName",
53
53
  props: {
54
54
  name: {},
@@ -66,11 +66,11 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
66
66
  "data-test-id": _ctx.testId
67
67
  }, [
68
68
  renderSlot(_ctx.$slots, "default", { shortenedName: shortenedName.value })
69
- ], 8, _hoisted_1$7);
69
+ ], 8, _hoisted_1$3);
70
70
  };
71
71
  }
72
72
  });
73
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
73
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
74
74
  __name: "IntersectionObserver",
75
75
  props: {
76
76
  threshold: { default: 0 },
@@ -125,7 +125,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
125
125
  };
126
126
  }
127
127
  });
128
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
128
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
129
129
  __name: "IntersectionObserved",
130
130
  props: {
131
131
  enabled: { type: Boolean, default: false },
@@ -156,9 +156,9 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
156
156
  };
157
157
  }
158
158
  });
159
- const _hoisted_1$6 = { class: "tags" };
159
+ const _hoisted_1$2 = { class: "tags" };
160
160
  const _hoisted_2$2 = ["onClick"];
161
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
161
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
162
162
  __name: "TagsContainer",
163
163
  props: {
164
164
  tagIds: {},
@@ -242,7 +242,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
242
242
  });
243
243
  return (_ctx, _cache) => {
244
244
  const _component_el_tag = resolveComponent("el-tag");
245
- return openBlock(), createBlock(_sfc_main$c, {
245
+ return openBlock(), createBlock(_sfc_main$8, {
246
246
  ref_key: "tagsContainer",
247
247
  ref: tagsContainer,
248
248
  threshold: 1,
@@ -253,7 +253,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
253
253
  onObserved
254
254
  }, {
255
255
  default: withCtx(() => [
256
- createBaseVNode("span", _hoisted_1$6, [
256
+ createBaseVNode("span", _hoisted_1$2, [
257
257
  (openBlock(true), createElementBlock(Fragment, null, renderList(tags.value, (tag) => {
258
258
  return openBlock(), createElementBlock("span", {
259
259
  key: tag.id,
@@ -272,7 +272,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
272
272
  createTextVNode(toDisplayString(tag.name), 1)
273
273
  ]),
274
274
  _: 2
275
- }, 1032, ["title"])) : (openBlock(), createBlock(_sfc_main$b, {
275
+ }, 1032, ["title"])) : (openBlock(), createBlock(_sfc_main$7, {
276
276
  key: 1,
277
277
  class: normalizeClass({ hideTag: tag.hidden }),
278
278
  "data-id": tag.id,
@@ -304,8 +304,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
304
304
  };
305
305
  }
306
306
  });
307
- const TagsContainer = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-9f29f608"]]);
308
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
307
+ const TagsContainer = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-9f29f608"]]);
308
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
309
309
  __name: "WorkflowTagsContainer",
310
310
  props: {
311
311
  tagIds: {},
@@ -335,225 +335,6 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
335
335
  };
336
336
  }
337
337
  });
338
- const _hoisted_1$5 = ["data-value"];
339
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
340
- __name: "ExpandableInputBase",
341
- props: {
342
- modelValue: {},
343
- placeholder: { default: "" },
344
- staticSize: { type: Boolean, default: false }
345
- },
346
- setup(__props) {
347
- const props = __props;
348
- const hiddenValue = computed(() => {
349
- let value = props.modelValue.replace(/\s/g, ".");
350
- if (!value) {
351
- value = props.placeholder;
352
- }
353
- return `${value}`;
354
- });
355
- return (_ctx, _cache) => {
356
- return openBlock(), createElementBlock("div", {
357
- class: normalizeClass({ "el-input": true, "static-size": _ctx.staticSize }),
358
- "data-value": hiddenValue.value
359
- }, [
360
- renderSlot(_ctx.$slots, "default", {}, void 0, true)
361
- ], 10, _hoisted_1$5);
362
- };
363
- }
364
- });
365
- const ExpandableInputBase = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-b6416d9d"]]);
366
- const _hoisted_1$4 = ["value", "placeholder", "maxlength"];
367
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
368
- __name: "ExpandableInputEdit",
369
- props: {
370
- modelValue: {},
371
- placeholder: {},
372
- maxlength: {},
373
- autofocus: { type: Boolean },
374
- eventBus: {}
375
- },
376
- emits: ["update:model-value", "enter", "blur", "esc"],
377
- setup(__props, { emit: __emit }) {
378
- const props = __props;
379
- const emit = __emit;
380
- const inputRef = ref();
381
- onMounted(() => {
382
- if (props.autofocus && inputRef.value) {
383
- focus();
384
- }
385
- props.eventBus?.on("focus", focus);
386
- });
387
- onBeforeUnmount(() => {
388
- props.eventBus?.off("focus", focus);
389
- });
390
- function focus() {
391
- if (inputRef.value) {
392
- inputRef.value.focus();
393
- }
394
- }
395
- function onInput() {
396
- if (inputRef.value) {
397
- emit("update:model-value", inputRef.value.value);
398
- }
399
- }
400
- function onEnter() {
401
- if (inputRef.value) {
402
- emit("enter", inputRef.value.value);
403
- }
404
- }
405
- onClickOutside(inputRef, () => {
406
- if (inputRef.value) {
407
- emit("blur", inputRef.value.value);
408
- }
409
- });
410
- function onEscape() {
411
- emit("esc");
412
- }
413
- return (_ctx, _cache) => {
414
- return openBlock(), createBlock(ExpandableInputBase, {
415
- "model-value": _ctx.modelValue,
416
- placeholder: _ctx.placeholder
417
- }, {
418
- default: withCtx(() => [
419
- createBaseVNode("input", {
420
- ref_key: "inputRef",
421
- ref: inputRef,
422
- class: "el-input__inner",
423
- value: _ctx.modelValue,
424
- placeholder: _ctx.placeholder,
425
- maxlength: _ctx.maxlength,
426
- size: "4",
427
- onInput,
428
- onKeydown: [
429
- withKeys(onEnter, ["enter"]),
430
- withKeys(onEscape, ["esc"])
431
- ]
432
- }, null, 40, _hoisted_1$4)
433
- ]),
434
- _: 1
435
- }, 8, ["model-value", "placeholder"]);
436
- };
437
- }
438
- });
439
- const _hoisted_1$3 = ["value"];
440
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
441
- __name: "ExpandableInputPreview",
442
- props: {
443
- modelValue: {}
444
- },
445
- setup(__props) {
446
- return (_ctx, _cache) => {
447
- return openBlock(), createBlock(ExpandableInputBase, {
448
- "model-value": _ctx.modelValue,
449
- "static-size": true
450
- }, {
451
- default: withCtx(() => [
452
- createBaseVNode("input", {
453
- class: normalizeClass({ "el-input__inner": true, clickable: true }),
454
- value: _ctx.modelValue,
455
- disabled: true,
456
- size: "4"
457
- }, null, 8, _hoisted_1$3)
458
- ]),
459
- _: 1
460
- }, 8, ["model-value"]);
461
- };
462
- }
463
- });
464
- const ExpandableInputPreview = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-87c6f53b"]]);
465
- const _hoisted_1$2 = { key: 0 };
466
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
467
- __name: "InlineTextEdit",
468
- props: {
469
- isEditEnabled: { type: Boolean, default: false },
470
- modelValue: { default: "" },
471
- placeholder: { default: "" },
472
- maxLength: { default: 0 },
473
- previewValue: { default: "" },
474
- disabled: { type: Boolean, default: false }
475
- },
476
- emits: ["toggle", "submit"],
477
- setup(__props, { emit: __emit }) {
478
- const props = __props;
479
- const emit = __emit;
480
- const isDisabled = ref(props.disabled);
481
- const newValue = ref("");
482
- const escPressed = ref(false);
483
- const inputBus = ref(createEventBus());
484
- watch(
485
- () => props.disabled,
486
- (value) => {
487
- isDisabled.value = value;
488
- }
489
- );
490
- function onInput(val) {
491
- if (isDisabled.value) return;
492
- newValue.value = val;
493
- }
494
- function onClick() {
495
- if (isDisabled.value) return;
496
- newValue.value = props.modelValue;
497
- emit("toggle");
498
- }
499
- function onBlur() {
500
- if (isDisabled.value) return;
501
- if (!escPressed.value) {
502
- submit();
503
- }
504
- escPressed.value = false;
505
- }
506
- function submit() {
507
- if (isDisabled.value) return;
508
- const onSubmit = (updated) => {
509
- isDisabled.value = false;
510
- if (!updated) {
511
- inputBus.value.emit("focus");
512
- }
513
- };
514
- isDisabled.value = true;
515
- emit("submit", { name: newValue.value, onSubmit });
516
- }
517
- function onEscape() {
518
- if (isDisabled.value) return;
519
- escPressed.value = true;
520
- emit("toggle");
521
- }
522
- return (_ctx, _cache) => {
523
- return openBlock(), createElementBlock("span", {
524
- class: "inline-edit",
525
- onKeydown: _cache[1] || (_cache[1] = withModifiers(() => {
526
- }, ["stop"]))
527
- }, [
528
- _ctx.isEditEnabled && !isDisabled.value ? (openBlock(), createElementBlock("span", _hoisted_1$2, [
529
- createVNode(_sfc_main$7, {
530
- modelValue: newValue.value,
531
- "onUpdate:modelValue": [
532
- _cache[0] || (_cache[0] = ($event) => newValue.value = $event),
533
- onInput
534
- ],
535
- placeholder: _ctx.placeholder,
536
- maxlength: _ctx.maxLength,
537
- autofocus: true,
538
- "event-bus": inputBus.value,
539
- onEsc: onEscape,
540
- onBlur,
541
- onEnter: submit
542
- }, null, 8, ["modelValue", "placeholder", "maxlength", "event-bus"])
543
- ])) : (openBlock(), createElementBlock("span", {
544
- key: 1,
545
- class: "preview",
546
- onClick
547
- }, [
548
- createVNode(ExpandableInputPreview, {
549
- "model-value": _ctx.previewValue || _ctx.modelValue
550
- }, null, 8, ["model-value"])
551
- ]))
552
- ], 32);
553
- };
554
- }
555
- });
556
- const InlineTextEdit = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-746f09e1"]]);
557
338
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
558
339
  __name: "BreakpointsObserver",
559
340
  props: {
@@ -849,7 +630,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
849
630
  name: {},
850
631
  meta: {},
851
632
  scopes: {},
852
- active: { type: Boolean }
633
+ active: { type: Boolean },
634
+ currentFolder: {}
853
635
  },
854
636
  setup(__props) {
855
637
  const props = __props;
@@ -863,6 +645,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
863
645
  const usersStore = useUsersStore();
864
646
  const workflowsStore = useWorkflowsStore();
865
647
  const projectsStore = useProjectsStore();
648
+ const foldersStore = useFoldersStore();
866
649
  const npsSurveyStore = useNpsSurveyStore();
867
650
  const i18n = useI18n();
868
651
  const router = useRouter();
@@ -911,6 +694,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
911
694
  id: WORKFLOW_MENU_ACTIONS.DOWNLOAD,
912
695
  label: locale.baseText("menuActions.download"),
913
696
  disabled: !onWorkflowPage.value
697
+ },
698
+ {
699
+ id: WORKFLOW_MENU_ACTIONS.RENAME,
700
+ label: locale.baseText("generic.rename"),
701
+ disabled: !onWorkflowPage.value || workflowPermissions.value.update !== true
914
702
  }
915
703
  ];
916
704
  if (workflowPermissions.value.delete && !props.readOnly || isNewWorkflow.value) {
@@ -961,22 +749,22 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
961
749
  const workflowTagIds = computed(() => {
962
750
  return (props.tags ?? []).map((tag) => typeof tag === "string" ? tag : tag.id);
963
751
  });
964
- const currentFolder = computed(() => {
965
- if (props.id === PLACEHOLDER_EMPTY_WORKFLOW_ID) {
966
- return void 0;
967
- }
968
- const workflow = workflowsStore.getWorkflowById(props.id);
969
- if (!workflow) {
970
- return void 0;
971
- }
972
- return workflow.parentFolder;
973
- });
974
752
  const currentProjectName = computed(() => {
975
753
  if (projectsStore.currentProject?.type === ProjectTypes.Personal) {
976
754
  return locale.baseText("projects.menu.personal");
977
755
  }
978
756
  return projectsStore.currentProject?.name;
979
757
  });
758
+ const currentFolderForBreadcrumbs = computed(() => {
759
+ if (!isNewWorkflow.value && props.currentFolder) {
760
+ return props.currentFolder;
761
+ }
762
+ const folderId = route.query.parentFolderId;
763
+ if (folderId) {
764
+ return foldersStore.getCachedFolder(folderId);
765
+ }
766
+ return null;
767
+ });
980
768
  watch(
981
769
  () => props.id,
982
770
  () => {
@@ -1075,8 +863,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1075
863
  const newName = name.trim();
1076
864
  if (!newName) {
1077
865
  toast.showMessage({
1078
- title: locale.baseText("workflowDetails.showMessage.title"),
1079
- message: locale.baseText("workflowDetails.showMessage.message"),
866
+ title: locale.baseText("renameAction.emptyName.title"),
867
+ message: locale.baseText("renameAction.emptyName.message"),
1080
868
  type: "error"
1081
869
  });
1082
870
  onSubmit(false);
@@ -1130,11 +918,16 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1130
918
  data: {
1131
919
  id: props.id,
1132
920
  name: props.name,
1133
- tags: props.tags
921
+ tags: props.tags,
922
+ parentFolderId: props.currentFolder?.id
1134
923
  }
1135
924
  });
1136
925
  break;
1137
926
  }
927
+ case WORKFLOW_MENU_ACTIONS.RENAME: {
928
+ onNameToggle();
929
+ break;
930
+ }
1138
931
  case WORKFLOW_MENU_ACTIONS.DOWNLOAD: {
1139
932
  const workflowData = await workflowHelpers.getWorkflowDataToSave();
1140
933
  const { tags, ...data } = workflowData;
@@ -1259,11 +1052,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1259
1052
  let toastTitle = locale.baseText("workflows.create.personal.toast.title");
1260
1053
  let toastText = locale.baseText("workflows.create.personal.toast.text");
1261
1054
  if (projectsStore.currentProject) {
1262
- if (currentFolder.value) {
1055
+ if (props.currentFolder) {
1263
1056
  toastTitle = locale.baseText("workflows.create.folder.toast.title", {
1264
1057
  interpolate: {
1265
1058
  projectName: currentProjectName.value ?? "",
1266
- folderName: currentFolder.value.name ?? ""
1059
+ folderName: props.currentFolder.name ?? ""
1267
1060
  }
1268
1061
  });
1269
1062
  } else if (projectsStore.currentProject.id !== projectsStore.personalProject?.id) {
@@ -1282,7 +1075,15 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1282
1075
  });
1283
1076
  }
1284
1077
  }
1078
+ const onBreadcrumbsItemSelected = (item) => {
1079
+ if (item.href) {
1080
+ void router.push(item.href).catch((error) => {
1081
+ toast.showError(error, i18n.baseText("folders.open.error.title"));
1082
+ });
1083
+ }
1084
+ };
1285
1085
  return (_ctx, _cache) => {
1086
+ const _component_FolderBreadcrumbs = __unplugin_components_0;
1286
1087
  const _component_N8nButton = resolveComponent("N8nButton");
1287
1088
  const _component_i18n_t = resolveComponent("i18n-t");
1288
1089
  const _component_N8nTooltip = resolveComponent("N8nTooltip");
@@ -1295,35 +1096,49 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1295
1096
  "value-x-s": 15,
1296
1097
  "value-s-m": 25,
1297
1098
  "value-m-d": 50,
1298
- class: "name-container"
1099
+ class: "name-container",
1100
+ "data-test-id": "canvas-breadcrumbs"
1299
1101
  }, {
1300
1102
  default: withCtx(({ value }) => [
1301
- createVNode(_sfc_main$d, {
1302
- name: _ctx.name,
1303
- limit: value,
1304
- custom: true,
1305
- "test-id": "workflow-name-input"
1103
+ createVNode(_component_FolderBreadcrumbs, {
1104
+ "current-folder": currentFolderForBreadcrumbs.value,
1105
+ "current-folder-as-link": true,
1106
+ onItemSelected: onBreadcrumbsItemSelected
1306
1107
  }, {
1307
- default: withCtx(({ shortenedName }) => [
1308
- createVNode(InlineTextEdit, {
1309
- "model-value": _ctx.name,
1310
- "preview-value": shortenedName,
1311
- "is-edit-enabled": isNameEditEnabled.value,
1312
- "max-length": unref(MAX_WORKFLOW_NAME_LENGTH),
1313
- disabled: _ctx.readOnly || !isNewWorkflow.value && !workflowPermissions.value.update,
1314
- placeholder: "Enter workflow name",
1315
- class: "name",
1316
- onToggle: onNameToggle,
1317
- onSubmit: onNameSubmit
1318
- }, null, 8, ["model-value", "preview-value", "is-edit-enabled", "max-length", "disabled"])
1108
+ append: withCtx(() => [
1109
+ unref(projectsStore).currentProject ? (openBlock(), createElementBlock("span", {
1110
+ key: 0,
1111
+ class: normalizeClass(unref($style)["path-separator"])
1112
+ }, "/", 2)) : createCommentVNode("", true),
1113
+ createVNode(_sfc_main$9, {
1114
+ name: _ctx.name,
1115
+ limit: value,
1116
+ custom: true,
1117
+ "test-id": "workflow-name-input"
1118
+ }, {
1119
+ default: withCtx(({ shortenedName }) => [
1120
+ createVNode(InlineTextEdit, {
1121
+ "model-value": _ctx.name,
1122
+ "preview-value": shortenedName,
1123
+ "is-edit-enabled": isNameEditEnabled.value,
1124
+ "max-length": unref(MAX_WORKFLOW_NAME_LENGTH),
1125
+ disabled: _ctx.readOnly || !isNewWorkflow.value && !workflowPermissions.value.update,
1126
+ placeholder: "Enter workflow name",
1127
+ class: "name",
1128
+ onToggle: onNameToggle,
1129
+ onSubmit: onNameSubmit
1130
+ }, null, 8, ["model-value", "preview-value", "is-edit-enabled", "max-length", "disabled"])
1131
+ ]),
1132
+ _: 2
1133
+ }, 1032, ["name", "limit"])
1319
1134
  ]),
1320
1135
  _: 2
1321
- }, 1032, ["name", "limit"])
1136
+ }, 1032, ["current-folder"])
1322
1137
  ]),
1323
1138
  _: 1
1324
1139
  }),
1325
1140
  unref(settingsStore).areTagsEnabled ? (openBlock(), createElementBlock("span", _hoisted_1, [
1326
- isTagsEditEnabled.value && !_ctx.readOnly && (isNewWorkflow.value || workflowPermissions.value.update) ? (openBlock(), createBlock(_sfc_main$f, {
1141
+ isTagsEditEnabled.value && !_ctx.readOnly && (isNewWorkflow.value || workflowPermissions.value.update) ? (openBlock(), createBlock(_sfc_main$b, {
1327
1142
  key: 0,
1328
1143
  ref: "dropdown",
1329
1144
  modelValue: appliedTagIds.value,
@@ -1340,7 +1155,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1340
1155
  "data-test-id": "new-tag-link",
1341
1156
  onClick: onTagsEditEnable
1342
1157
  }, " + " + toDisplayString(unref(i18n).baseText("workflowDetails.addTag")), 1)
1343
- ])) : (openBlock(), createBlock(_sfc_main$9, {
1158
+ ])) : (openBlock(), createBlock(_sfc_main$5, {
1344
1159
  key: _ctx.id,
1345
1160
  "tag-ids": workflowTagIds.value,
1346
1161
  clickable: true,
@@ -1349,7 +1164,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1349
1164
  onClick: onTagsEditEnable
1350
1165
  }, null, 8, ["tag-ids"]))
1351
1166
  ])) : (openBlock(), createElementBlock("span", _hoisted_3)),
1352
- createVNode(_sfc_main$g, { class: "actions" }, {
1167
+ createVNode(_sfc_main$c, { class: "actions" }, {
1353
1168
  default: withCtx(() => [
1354
1169
  createBaseVNode("span", {
1355
1170
  class: normalizeClass(`activator ${unref($style).group}`)
@@ -1455,14 +1270,15 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1455
1270
  };
1456
1271
  }
1457
1272
  });
1458
- const container$1 = "_container_d7ycs_123";
1459
- const group = "_group_d7ycs_132";
1460
- const hiddenInput = "_hiddenInput_d7ycs_137";
1461
- const deleteItem = "_deleteItem_d7ycs_141";
1462
- const disabledShareButton = "_disabledShareButton_d7ycs_145";
1463
- const closeNodeViewDiscovery = "_closeNodeViewDiscovery_d7ycs_149";
1273
+ const container$1 = "_container_l9ipp_123";
1274
+ const group = "_group_l9ipp_138";
1275
+ const hiddenInput = "_hiddenInput_l9ipp_143";
1276
+ const deleteItem = "_deleteItem_l9ipp_147";
1277
+ const disabledShareButton = "_disabledShareButton_l9ipp_151";
1278
+ const closeNodeViewDiscovery = "_closeNodeViewDiscovery_l9ipp_155";
1464
1279
  const style1 = {
1465
1280
  container: container$1,
1281
+ "path-separator": "_path-separator_l9ipp_132",
1466
1282
  group,
1467
1283
  hiddenInput,
1468
1284
  deleteItem,
@@ -1472,7 +1288,7 @@ const style1 = {
1472
1288
  const cssModules$1 = {
1473
1289
  "$style": style1
1474
1290
  };
1475
- const WorkflowDetails = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-f531056b"]]);
1291
+ const WorkflowDetails = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-7ec35e38"]]);
1476
1292
  const GithubButton = defineComponent({
1477
1293
  name: "github-button",
1478
1294
  props: {
@@ -1600,6 +1416,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1600
1416
  const showGitHubButton = computed(
1601
1417
  () => !isEnterprise.value && !settingsStore.settings.inE2ETests && !githubButtonHidden.value
1602
1418
  );
1419
+ const parentFolderForBreadcrumbs = computed(() => {
1420
+ if (!workflow.value.parentFolder) {
1421
+ return void 0;
1422
+ }
1423
+ return {
1424
+ id: workflow.value.parentFolder.id,
1425
+ name: workflow.value.parentFolder.name,
1426
+ parentFolder: workflow.value.parentFolder.parentFolderId ?? void 0
1427
+ };
1428
+ });
1603
1429
  watch(route, (to, from) => {
1604
1430
  syncTabsWithRoute(to, from);
1605
1431
  });
@@ -1713,8 +1539,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1713
1539
  meta: workflow.value.meta,
1714
1540
  scopes: workflow.value.scopes,
1715
1541
  active: workflow.value.active,
1716
- "read-only": readOnly.value
1717
- }, null, 8, ["id", "tags", "name", "meta", "scopes", "active", "read-only"])) : createCommentVNode("", true),
1542
+ "read-only": readOnly.value,
1543
+ "current-folder": parentFolderForBreadcrumbs.value
1544
+ }, null, 8, ["id", "tags", "name", "meta", "scopes", "active", "read-only", "current-folder"])) : createCommentVNode("", true),
1718
1545
  showGitHubButton.value ? (openBlock(), createElementBlock("div", {
1719
1546
  key: 1,
1720
1547
  class: normalizeClass([_ctx.$style["github-button"], "hidden-sm-and-down"])
@@ -1756,14 +1583,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1756
1583
  };
1757
1584
  }
1758
1585
  });
1759
- const container = "_container_1vvf3_123";
1586
+ const container = "_container_hdyww_123";
1760
1587
  const style0 = {
1761
1588
  container,
1762
- "main-header": "_main-header_1vvf3_130",
1763
- "top-menu": "_top-menu_1vvf3_138",
1764
- "github-button": "_github-button_1vvf3_147",
1765
- "close-github-button": "_close-github-button_1vvf3_156",
1766
- "github-button-container": "_github-button-container_1vvf3_171"
1589
+ "main-header": "_main-header_hdyww_130",
1590
+ "top-menu": "_top-menu_hdyww_138",
1591
+ "github-button": "_github-button_hdyww_149",
1592
+ "close-github-button": "_close-github-button_hdyww_158",
1593
+ "github-button-container": "_github-button-container_hdyww_173"
1767
1594
  };
1768
1595
  const cssModules = {
1769
1596
  "$style": style0