n8n-editor-ui 1.89.0 → 1.90.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 (119) hide show
  1. package/dist/assets/{AnimatedSpinner-64kuDSMd.js → AnimatedSpinner-C0igC5ki.js} +1 -1
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-vU7A4Ql5.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DbQJ_5eB.js} +1 -1
  3. package/dist/assets/{AuthView-BtMwWncz.js → AuthView-Dmy9oonN.js} +2 -2
  4. package/dist/assets/CanvasChatSwitch-CaiSjHFG.css +345 -0
  5. package/dist/assets/CanvasChatSwitch-DSRkCJ8D.js +265 -0
  6. package/dist/assets/{ChangePasswordView-ngd6kK9h.js → ChangePasswordView-81JP15Ve.js} +3 -3
  7. package/dist/assets/CollectionParameter-BCR57ofE.js +4 -0
  8. package/dist/assets/{CredentialsView-c9VZrSEP.js → CredentialsView-d6qclioV.js} +6 -6
  9. package/dist/assets/DemoFooter-BmmdCfKA.js +25 -0
  10. package/dist/assets/{ErrorView-M0yTzQxC.js → ErrorView-BmBEg3lf.js} +1 -1
  11. package/dist/assets/{ExecutionsTime-DZHUIJjP.css → ExecutionsTime-BuE0lHT6.css} +24 -15
  12. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-BsM5P8VY.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-DOoZHzof.js} +20 -15
  13. package/dist/assets/{ExecutionsView-2Ywg0NsP.js → ExecutionsView-DqeBsSpV.js} +8 -8
  14. package/dist/assets/{FileSaver.min-DAXzY4JY.js → FileSaver.min-D0GQjV60.js} +1 -1
  15. package/dist/assets/{FixedCollectionParameter-CNRFXDrN.js → FixedCollectionParameter-DDFHlxvP.js} +1 -1
  16. package/dist/assets/{ForgotMyPasswordView-C1SOW4HN.js → ForgotMyPasswordView-FPvWDVPY.js} +3 -3
  17. package/dist/assets/{InsightsChartAverageRuntime-D_7tKoef.js → InsightsChartAverageRuntime-z_cI-yDg.js} +4 -4
  18. package/dist/assets/{InsightsChartFailed-DDejxv0R.js → InsightsChartFailed-b_700Tmq.js} +4 -4
  19. package/dist/assets/{InsightsChartFailureRate-PS5N1AdB.js → InsightsChartFailureRate-BnqPLE_R.js} +4 -4
  20. package/dist/assets/{InsightsChartTimeSaved-BBw2CgSS.js → InsightsChartTimeSaved-DfGUKtyn.js} +4 -4
  21. package/dist/assets/{InsightsChartTotal-2MVolQhG.js → InsightsChartTotal-DUYYmnvM.js} +4 -4
  22. package/dist/assets/{InsightsDashboard-DCdd_dks.js → InsightsDashboard-Cb4C6pVW.js} +58 -54
  23. package/dist/assets/InsightsPaywall-B7zseef2.js +62 -0
  24. package/dist/assets/{InsightsPaywall-OeXh6LeZ.css → InsightsPaywall-CE5W3W4m.css} +2 -1
  25. package/dist/assets/{InsightsSummary-BzdlA4Dr.js → InsightsSummary-UVWGYFlb.js} +1 -1
  26. package/dist/assets/{InsightsTableWorkflows-CnEuNzZ9.js → InsightsTableWorkflows-CkfPpJ8P.js} +2 -2
  27. package/dist/assets/{Logo-CmGfYtCL.js → Logo-CDa8Ndbk.js} +1 -1
  28. package/dist/assets/{CanvasChatSwitch-DCcRHty_.js → LogsPanel-Bj6SZeBQ.js} +985 -641
  29. package/dist/assets/{CanvasChatSwitch-BDVIAjN6.css → LogsPanel-DmPMCt9w.css} +425 -324
  30. package/dist/assets/{MainHeader-DdjAOCVS.js → MainHeader-BqZnCEkb.js} +9 -9
  31. package/dist/assets/{MainSidebar-CPtfXLom.js → MainSidebar-DyicnyT2.js} +2 -2
  32. package/dist/assets/{NodeCreation-C9WNMB5W.js → NodeCreation-J3ELSEr9.js} +4 -4
  33. package/dist/assets/{NodeCreator-Dt7b_La2.js → NodeCreator-ByGFazbP.js} +3 -3
  34. package/dist/assets/{NodeDetailsView-B2kdGJ7R.css → NodeDetailsView-CGgV4Pn_.css} +27 -1185
  35. package/dist/assets/{NodeDetailsView-BPQgwdWz.js → NodeDetailsView-C_z-nQG3.js} +169 -2683
  36. package/dist/assets/{NodeView-CKF92Cc3.js → NodeView-BTC9x0v8.js} +12 -12
  37. package/dist/assets/{ProjectCardBadge-Ca29o2Nu.js → ProjectCardBadge-DCaP7hKC.js} +5 -9
  38. package/dist/assets/{ProjectHeader-Dq3fVC-9.js → ProjectHeader-DALMab_q.js} +1 -1
  39. package/dist/assets/{ProjectSettings-6oRh_PiD.js → ProjectSettings-Do-lVrea.js} +2 -2
  40. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DtHAaMts.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-BWqkEjwR.js} +1 -1
  41. package/dist/assets/{ResourcesListLayout-b44J07nq.css → ResourcesListLayout-CglK2dXR.css} +8 -8
  42. package/dist/assets/{ResourcesListLayout-CjpS9ho7.js → ResourcesListLayout-FV3K-wCE.js} +2 -10
  43. package/dist/assets/RunData-BfVvixeD.js +5104 -0
  44. package/dist/assets/RunData-DepHcD2K.css +1833 -0
  45. package/dist/assets/RunDataAi-1YokoJrS.js +750 -0
  46. package/dist/assets/{RunDataAi-CUUDqZRP.css → RunDataAi-BF2gZZGr.css} +0 -408
  47. package/dist/assets/{RunDataJson-CS1Vs4me.js → RunDataJson-UCqamVA8.js} +7 -11
  48. package/dist/assets/{RunDataJsonActions-UEDmvE5v.js → RunDataJsonActions-CEriDRD_.js} +1 -1
  49. package/dist/assets/{RunDataSearch-BjsM_QL7.js → RunDataSearch-DSHgVrIH.js} +1 -1
  50. package/dist/assets/{RunDataTable-CX7gToH4.css → RunDataTable-DyUvXWfl.css} +47 -41
  51. package/dist/assets/{RunDataTable-zY9Z73dm.js → RunDataTable-Svn5sWyr.js} +36 -30
  52. package/dist/assets/{SamlOnboarding-CMQ3F8vU.js → SamlOnboarding-CtXHQJS6.js} +3 -3
  53. package/dist/assets/{SettingsApiView-C7mJo5RT.js → SettingsApiView-B4xEaKM5.js} +5 -5
  54. package/dist/assets/{SettingsCommunityNodesView-oV3f1FYs.js → SettingsCommunityNodesView-Cn7b8yXW.js} +4 -4
  55. package/dist/assets/{SettingsExternalSecrets-Zm50ediz.js → SettingsExternalSecrets-1JQ-XbO6.js} +1 -1
  56. package/dist/assets/{SettingsLdapView-D0lujKk6.js → SettingsLdapView-DN0ooz8k.js} +1 -1
  57. package/dist/assets/{SettingsLogStreamingView-DMRYf3h4.js → SettingsLogStreamingView-B5bjsLmX.js} +1 -1
  58. package/dist/assets/{SettingsPersonalView-BlKM42Fv.js → SettingsPersonalView-DgzC8S8B.js} +1 -1
  59. package/dist/assets/{SettingsSourceControl-BRkqOyBq.js → SettingsSourceControl-Bbax3j0s.js} +1 -1
  60. package/dist/assets/{SettingsSso-ClphkEtx.js → SettingsSso-gZtzdr_j.js} +1 -1
  61. package/dist/assets/{SettingsUsageAndPlan-BnxbFSLN.js → SettingsUsageAndPlan-JQLfWX3N.js} +1 -1
  62. package/dist/assets/{SettingsUsersView-CnqllPG4.js → SettingsUsersView-L2um2aHz.js} +1 -1
  63. package/dist/assets/{SettingsView-CJ4icVTM.js → SettingsView-DmW5uF0Y.js} +1 -1
  64. package/dist/assets/{SetupView-BaUQwZK2.js → SetupView-PUB9CmbM.js} +3 -3
  65. package/dist/assets/{SetupWorkflowCredentialsButton-DiRHCsta.js → SetupWorkflowCredentialsButton-DrNo9bUr.js} +1 -1
  66. package/dist/assets/{SetupWorkflowFromTemplateView-CjiIpX1D.js → SetupWorkflowFromTemplateView-Cv7rilHQ.js} +3 -3
  67. package/dist/assets/{SigninView-DrRmsG64.js → SigninView-C6mgciPa.js} +3 -3
  68. package/dist/assets/{SignoutView-DEK6MH1B.js → SignoutView-DtpsJQNN.js} +1 -1
  69. package/dist/assets/{SignupView-CTdIAp1U.js → SignupView-CsLmno8H.js} +3 -3
  70. package/dist/assets/{TemplateDetails-B6Nnq5_s.js → TemplateDetails-Cc-ra1_d.js} +1 -1
  71. package/dist/assets/{TemplateList-BKmKXiHs.js → TemplateList-BQrF5Bxy.js} +1 -1
  72. package/dist/assets/{TemplatesCollectionView-CXgiZ-fy.js → TemplatesCollectionView-CXji4_pS.js} +5 -5
  73. package/dist/assets/{TemplatesSearchView-BoX9MKRy.js → TemplatesSearchView-DN99kP7F.js} +3 -3
  74. package/dist/assets/{TemplatesView-htM1lafV.js → TemplatesView-DMYw_IGy.js} +1 -1
  75. package/dist/assets/{TemplatesWorkflowView-DIqdCPxB.js → TemplatesWorkflowView-CokDg5W-.js} +5 -5
  76. package/dist/assets/{TestDefinitionEditView-izO1b1I3.js → TestDefinitionEditView-B0ug0pLk.js} +7 -7
  77. package/dist/assets/{TestDefinitionListView-DuLocBuw.js → TestDefinitionListView-CF3nBGlC.js} +1 -1
  78. package/dist/assets/{TestDefinitionNewView-Dg37IAs6.js → TestDefinitionNewView-BIX0zI3Z.js} +2 -2
  79. package/dist/assets/{TestDefinitionRootView-DlG7VKKU.js → TestDefinitionRootView-B8HzwCtp.js} +1 -1
  80. package/dist/assets/{VariablesView-Cq8LInqk.js → VariablesView-dVZn0E-U.js} +3 -3
  81. package/dist/assets/{WorkerView-BTQTq3vI.js → WorkerView-Du18TNPW.js} +6 -6
  82. package/dist/assets/{WorkflowActivator-E1mdIOaC.js → WorkflowActivator-DAF5odet.js} +2 -2
  83. package/dist/assets/{WorkflowExecutionsInfoAccordion-BBtwnPZQ.css → WorkflowExecutionsInfoAccordion-53bC-IXN.css} +10 -8
  84. package/dist/assets/{WorkflowExecutionsInfoAccordion-DxGM_yu-.js → WorkflowExecutionsInfoAccordion-Z-XDWebr.js} +3 -3
  85. package/dist/assets/{WorkflowExecutionsLandingPage-BkftsbSa.js → WorkflowExecutionsLandingPage-DECLkJhn.js} +2 -2
  86. package/dist/assets/{WorkflowExecutionsPreview-w7I_h1ID.js → WorkflowExecutionsPreview-Bs5tSLIj.js} +6 -6
  87. package/dist/assets/{WorkflowExecutionsView-lyjECt6I.js → WorkflowExecutionsView-DtcqQM2k.js} +7 -7
  88. package/dist/assets/{WorkflowHistory-B8_7vx-c.js → WorkflowHistory-CWgCdWmB.js} +3 -3
  89. package/dist/assets/{WorkflowOnboardingView-D2fR8tdw.js → WorkflowOnboardingView-BEU0GnhE.js} +1 -1
  90. package/dist/assets/{WorkflowPreview-CNu7Kd6F.js → WorkflowPreview-DdYqE-TC.js} +1 -1
  91. package/dist/assets/{WorkflowsView-DV1tjQwB.css → WorkflowsView-CsM69PSv.css} +41 -16
  92. package/dist/assets/{WorkflowsView-B_70hdtG.js → WorkflowsView-D-hAQD_u.js} +348 -60
  93. package/dist/assets/{chartjs.utils-3n4f3zmI.js → chartjs.utils-DoypjRBD.js} +2 -2
  94. package/dist/assets/{dateFormatter-C1XlsLk2.js → dateFormatter-BPEQYXYl.js} +1 -1
  95. package/dist/assets/{easyAiWorkflowUtils-CCJdF1g3.js → easyAiWorkflowUtils-CDbznryH.js} +1 -1
  96. package/dist/assets/{global-link-actions-B6woWi9D.js → global-link-actions-By-BzwKw.js} +1 -1
  97. package/dist/assets/{import-curl-BlRUX0EU.js → import-curl-Cu66geT8.js} +1 -1
  98. package/dist/assets/{index-BHGYFXFB.js → index-BhqWgx7T.js} +1 -1
  99. package/dist/assets/{index-DwKuVkBg.css → index-C5OXOcIJ.css} +176 -111
  100. package/dist/assets/{index-B-Y7sDIj.js → index-CZWHLhkg.js} +2548 -2121
  101. package/dist/assets/{pickBy-BdN6wCB-.js → pickBy-D5ei-iUg.js} +1 -1
  102. package/dist/assets/{templateActions-FAVGvEAM.js → templateActions-CofZF1Cm.js} +1 -1
  103. package/dist/assets/{typescript.worker-Bt3bByTc.js → typescript.worker-BsxN2afA.js} +1 -1
  104. package/dist/assets/{useBeforeUnload-oRTjaea2.js → useBeforeUnload-DJezvBb3.js} +1 -1
  105. package/dist/assets/{useCanvasMapping-BkGr1HdJ.css → useCanvasMapping-B260y5FH.css} +4 -4
  106. package/dist/assets/{useCanvasMapping-CmD2j75y.js → useCanvasMapping-CmWAKpr8.js} +11 -4
  107. package/dist/assets/{useCanvasOperations-DYORubSM.js → useCanvasOperations-DnxywX7P.js} +17 -71
  108. package/dist/assets/{useClearExecutionButtonVisible-ReuF4PkZ.js → useClearExecutionButtonVisible-B5CsbsMz.js} +2 -2
  109. package/dist/assets/{useExecutionDebugging-I7MLJdC1.js → useExecutionDebugging-DlTHZIR5.js} +1 -1
  110. package/dist/assets/{useExecutionHelpers-CyZuZAQA.js → useExecutionHelpers-2I0XuUMz.js} +2 -2
  111. package/dist/assets/{useImportCurlCommand-DZVwxoke.js → useImportCurlCommand-CJRT2MGV.js} +2 -2
  112. package/dist/assets/{usePushConnection-SgX-5Lz6.js → usePushConnection-CFsn_rtI.js} +3 -3
  113. package/dist/assets/{useTestDefinitionForm-gWQ_zjEl.js → useTestDefinitionForm-DQ8Qe2LY.js} +1 -1
  114. package/dist/assets/{useWorkflowActivate-CX21vkKl.js → useWorkflowActivate-B-_DuLXg.js} +1 -1
  115. package/dist/index.html +2 -2
  116. package/package.json +1 -1
  117. package/dist/assets/CollectionParameter-NNrH2Qf1.js +0 -4
  118. package/dist/assets/InsightsPaywall-DtIcXb48.js +0 -58
  119. package/dist/assets/RunDataAi-DpuaI4HY.js +0 -3166
@@ -1,11 +1,11 @@
1
- import { P as ProjectCardBadge } from "./ProjectCardBadge-Ca29o2Nu.js";
2
- import { d as defineComponent, W as useRoute, b as useRouter, gk as useFoldersStore, r as ref, q as computed, c as useI18n, ad as ProjectTypes, V as VIEWS, h as resolveComponent, i as createElementBlock, g as openBlock, j as createVNode, w as withCtx, n as normalizeClass, k as createBaseVNode, f as createCommentVNode, e as createBlock, m as unref, gl as ResourceType, J as withModifiers, l as createTextVNode, t as toDisplayString, cU as _sfc_main$4, _ as _export_sfc, a4 as useProjectsStore, aW as createSlots, a as useToast, p as useSettingsStore, L as useUIStore, u as useUsersStore, U as useWorkflowsStore, a9 as getResourcePermissions, fa as dateformat, aC as withDirectives, aD as vShow, ah as WORKFLOW_SHARE_MODAL_KEY, ai as useTelemetry, ap as DUPLICATE_MODAL_KEY, ak as useMessage, al as MODAL_CONFIRM, gm as PROJECT_MOVE_RESOURCE_MODAL, gn as FOLDER_NAME_ILLEGAL_CHARACTERS_REGEX, go as ILLEGAL_FOLDER_CHARACTERS, gp as FOLDER_NAME_ONLY_DOTS_REGEX, gq as FOLDER_NAME_MAX_LENGTH, a3 as useSourceControlStore, aw as usePostHog, E as useTagsStore, dc as useUsageStore, gr as useInsightsStore, a6 as useDocumentTitle, K as useDebounce, ac as EnterpriseEditionFeature, gs as EASY_AI_WORKFLOW_EXPERIMENT, I as watch, o as onMounted, C as createEventBus, y as onBeforeUnmount, A as debounce, gt as PROJECT_ROOT, d9 as N8nInputLabel, af as _sfc_main$5, gu as N8nSelect, F as Fragment, D as renderList, gv as _sfc_main$6, cZ as N8nHeading, b9 as N8nText, gw as N8nCard, bE as N8nIcon, gx as DEFAULT_WORKFLOW_PAGE_SIZE, df as COMMUNITY_PLUS_ENROLLMENT_MODAL } from "./index-B-Y7sDIj.js";
3
- import { R as ResourcesListLayout } from "./ResourcesListLayout-CjpS9ho7.js";
4
- import { W as WorkflowActivator } from "./WorkflowActivator-E1mdIOaC.js";
5
- import { u as useOverview, P as ProjectHeader } from "./ProjectHeader-Dq3fVC-9.js";
6
- import { g as getEasyAiWorkflowJson } from "./easyAiWorkflowUtils-CCJdF1g3.js";
7
- import { I as InsightsSummary } from "./InsightsSummary-BzdlA4Dr.js";
8
- import "./useWorkflowActivate-CX21vkKl.js";
1
+ import { P as ProjectCardBadge } from "./ProjectCardBadge-DCaP7hKC.js";
2
+ import { d as defineComponent, W as useRoute, b as useRouter, gO as useFoldersStore, r as ref, q as computed, c as useI18n, ad as ProjectTypes, V as VIEWS, h as resolveComponent, i as createElementBlock, g as openBlock, j as createVNode, w as withCtx, n as normalizeClass, k as createBaseVNode, f as createCommentVNode, e as createBlock, m as unref, gP as ResourceType, J as withModifiers, l as createTextVNode, t as toDisplayString, cV as _sfc_main$4, _ as _export_sfc, a4 as useProjectsStore, aW as createSlots, a as useToast, p as useSettingsStore, L as useUIStore, u as useUsersStore, U as useWorkflowsStore, a9 as getResourcePermissions, fC as dateformat, aC as withDirectives, aD as vShow, ah as WORKFLOW_SHARE_MODAL_KEY, ai as useTelemetry, ap as DUPLICATE_MODAL_KEY, ak as useMessage, al as MODAL_CONFIRM, gQ as PROJECT_MOVE_RESOURCE_MODAL, gR as FOLDER_NAME_ILLEGAL_CHARACTERS_REGEX, gS as ILLEGAL_FOLDER_CHARACTERS, gT as FOLDER_NAME_ONLY_DOTS_REGEX, gU as FOLDER_NAME_MAX_LENGTH, a3 as useSourceControlStore, aw as usePostHog, E as useTagsStore, dd as useUsageStore, gV as useInsightsStore, a6 as useDocumentTitle, K as useDebounce, ac as EnterpriseEditionFeature, gW as EASY_AI_WORKFLOW_EXPERIMENT, I as watch, o as onMounted, C as createEventBus, y as onBeforeUnmount, A as debounce, gX as PROJECT_ROOT, da as N8nInputLabel, af as _sfc_main$5, d$ as N8nSelect, F as Fragment, D as renderList, d_ as _sfc_main$6, c_ as N8nHeading, bd as N8nText, gY as N8nCard, bD as N8nIcon, gZ as Draggable, g_ as DEFAULT_WORKFLOW_PAGE_SIZE, dg as COMMUNITY_PLUS_ENROLLMENT_MODAL } from "./index-CZWHLhkg.js";
3
+ import { R as ResourcesListLayout } from "./ResourcesListLayout-FV3K-wCE.js";
4
+ import { W as WorkflowActivator } from "./WorkflowActivator-DAF5odet.js";
5
+ import { u as useOverview, P as ProjectHeader } from "./ProjectHeader-DALMab_q.js";
6
+ import { g as getEasyAiWorkflowJson } from "./easyAiWorkflowUtils-CDbznryH.js";
7
+ import { I as InsightsSummary } from "./InsightsSummary-UVWGYFlb.js";
8
+ import "./useWorkflowActivate-B-_DuLXg.js";
9
9
  const FOLDER_LIST_ITEM_ACTIONS = {
10
10
  OPEN: "open",
11
11
  CREATE: "create",
@@ -304,13 +304,16 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
304
304
  __name: "FolderBreadcrumbs",
305
305
  props: {
306
306
  actions: {},
307
- breadcrumbs: {}
307
+ breadcrumbs: {},
308
+ hiddenItemsTrigger: { default: "click" }
308
309
  },
309
- emits: ["itemSelected", "action"],
310
+ emits: ["itemSelected", "action", "itemDrop", "projectDrop"],
310
311
  setup(__props, { emit: __emit }) {
312
+ const props = __props;
311
313
  const emit = __emit;
312
314
  const i18n = useI18n();
313
315
  const projectsStore = useProjectsStore();
316
+ const foldersStore = useFoldersStore();
314
317
  const currentProject = computed(() => projectsStore.currentProject);
315
318
  const projectName = computed(() => {
316
319
  if (currentProject.value?.type === ProjectTypes.Personal) {
@@ -318,35 +321,72 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
318
321
  }
319
322
  return currentProject.value?.name;
320
323
  });
324
+ const isDragging = computed(() => {
325
+ return foldersStore.draggedElement !== null;
326
+ });
321
327
  const onItemSelect = (item) => {
322
328
  emit("itemSelected", item);
323
329
  };
324
330
  const onAction = (action) => {
325
331
  emit("action", action);
326
332
  };
333
+ const onProjectMouseUp = () => {
334
+ if (!isDragging.value || !currentProject.value?.name) {
335
+ return;
336
+ }
337
+ emit("projectDrop", currentProject.value.id, currentProject.value.name);
338
+ };
339
+ const onProjectHover = () => {
340
+ if (!isDragging.value || !currentProject.value?.name) {
341
+ return;
342
+ }
343
+ foldersStore.activeDropTarget = {
344
+ type: "project",
345
+ id: currentProject.value?.id,
346
+ name: currentProject.value?.name
347
+ };
348
+ };
349
+ const onItemHover = (item) => {
350
+ if (!isDragging.value) {
351
+ return;
352
+ }
353
+ foldersStore.activeDropTarget = {
354
+ type: "folder",
355
+ id: item.id,
356
+ name: item.label
357
+ };
358
+ };
327
359
  return (_ctx, _cache) => {
328
360
  const _component_N8nText = resolveComponent("N8nText");
329
361
  const _component_n8n_link = resolveComponent("n8n-link");
330
362
  const _component_n8n_breadcrumbs = resolveComponent("n8n-breadcrumbs");
331
363
  const _component_n8n_action_toggle = resolveComponent("n8n-action-toggle");
332
364
  return openBlock(), createElementBlock("div", {
333
- class: normalizeClass(_ctx.$style.container)
365
+ class: normalizeClass({ [_ctx.$style.container]: true, [_ctx.$style["dragging"]]: isDragging.value }),
366
+ "data-test-id": "folder-breadcrumbs"
334
367
  }, [
335
368
  _ctx.breadcrumbs.visibleItems ? (openBlock(), createBlock(_component_n8n_breadcrumbs, {
336
369
  key: 0,
370
+ "drag-active": isDragging.value,
371
+ "onUpdate:dragActive": _cache[1] || (_cache[1] = ($event) => isDragging.value = $event),
337
372
  items: _ctx.breadcrumbs.visibleItems,
338
373
  "highlight-last-item": false,
339
374
  "path-truncated": _ctx.breadcrumbs.visibleItems[0].parentFolder,
340
375
  "hidden-items": _ctx.breadcrumbs.hiddenItems,
376
+ "hidden-items-trigger": props.hiddenItemsTrigger,
341
377
  "data-test-id": "folder-list-breadcrumbs",
342
- onItemSelected: onItemSelect
378
+ onItemSelected: onItemSelect,
379
+ onItemHover,
380
+ onItemDrop: _cache[2] || (_cache[2] = ($event) => emit("itemDrop", $event))
343
381
  }, createSlots({ _: 2 }, [
344
382
  currentProject.value ? {
345
383
  name: "prepend",
346
384
  fn: withCtx(() => [
347
385
  createBaseVNode("div", {
348
- class: normalizeClass(_ctx.$style["home-project"]),
349
- "data-test-id": "home-project"
386
+ class: normalizeClass({ [_ctx.$style["home-project"]]: true, [_ctx.$style.dragging]: isDragging.value }),
387
+ "data-test-id": "home-project",
388
+ onMouseenter: onProjectHover,
389
+ onMouseup: _cache[0] || (_cache[0] = ($event) => isDragging.value ? onProjectMouseUp() : null)
350
390
  }, [
351
391
  createVNode(_component_n8n_link, {
352
392
  to: `/projects/${currentProject.value.id}`
@@ -364,11 +404,11 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
364
404
  ]),
365
405
  _: 1
366
406
  }, 8, ["to"])
367
- ], 2)
407
+ ], 34)
368
408
  ]),
369
409
  key: "0"
370
410
  } : void 0
371
- ]), 1032, ["items", "path-truncated", "hidden-items"])) : createCommentVNode("", true),
411
+ ]), 1032, ["drag-active", "items", "path-truncated", "hidden-items", "hidden-items-trigger"])) : createCommentVNode("", true),
372
412
  _ctx.breadcrumbs.visibleItems ? (openBlock(), createBlock(_component_n8n_action_toggle, {
373
413
  key: 1,
374
414
  actions: _ctx.actions,
@@ -381,11 +421,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
381
421
  };
382
422
  }
383
423
  });
384
- const container = "_container_4mxjz_123";
424
+ const container = "_container_n9y3q_123";
425
+ const dragging$1 = "_dragging_n9y3q_138";
385
426
  const style0$2 = {
386
427
  container,
387
- "action-toggle": "_action-toggle_4mxjz_128",
388
- "home-project": "_home-project_4mxjz_132"
428
+ "action-toggle": "_action-toggle_n9y3q_128",
429
+ "home-project": "_home-project_n9y3q_132",
430
+ dragging: dragging$1
389
431
  };
390
432
  const cssModules$2 = {
391
433
  "$style": style0$2
@@ -791,8 +833,18 @@ const cssModules$1 = {
791
833
  "$style": style0$1
792
834
  };
793
835
  const WorkflowCard = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
836
+ function isDropTarget(target) {
837
+ return target.type === "folder" || target.type === "project";
838
+ }
839
+ function isValidResourceType(value) {
840
+ return ["folder", "workflow", "project"].includes(value);
841
+ }
794
842
  function useFolders() {
795
843
  const i18n = useI18n();
844
+ const foldersStore = useFoldersStore();
845
+ const isDragging = computed(() => {
846
+ return foldersStore.draggedElement !== null;
847
+ });
796
848
  function validateFolderName(folderName) {
797
849
  if (FOLDER_NAME_ILLEGAL_CHARACTERS_REGEX.test(folderName)) {
798
850
  return i18n.baseText("folders.invalidName.invalidCharacters.message", {
@@ -819,8 +871,84 @@ function useFolders() {
819
871
  }
820
872
  return true;
821
873
  }
874
+ function onDragStart(el) {
875
+ const eventTarget = el.closest("[data-target]");
876
+ if (!eventTarget) return;
877
+ const dragTarget = getDragAndDropTarget(eventTarget);
878
+ if (!dragTarget) return;
879
+ if (dragTarget.type === "folder" || dragTarget.type === "workflow") {
880
+ foldersStore.draggedElement = {
881
+ type: dragTarget.type,
882
+ id: dragTarget.id,
883
+ name: dragTarget.name
884
+ };
885
+ }
886
+ }
887
+ function onDragEnd() {
888
+ foldersStore.draggedElement = null;
889
+ foldersStore.activeDropTarget = null;
890
+ }
891
+ function onDragEnter(event) {
892
+ const eventTarget = event.target;
893
+ if (!eventTarget || !isDragging.value) return;
894
+ event.preventDefault();
895
+ event.stopPropagation();
896
+ const dragTarget = getDragAndDropTarget(eventTarget);
897
+ if (!dragTarget || dragTarget.type !== "folder") return;
898
+ foldersStore.activeDropTarget = {
899
+ type: dragTarget.type,
900
+ id: dragTarget.id,
901
+ name: dragTarget.name
902
+ };
903
+ }
904
+ function resetDropTarget() {
905
+ foldersStore.activeDropTarget = null;
906
+ }
907
+ function getDragAndDropTarget(el) {
908
+ const dragTarget = el.closest("[data-target]");
909
+ if (!dragTarget) return null;
910
+ const targetResource = dragTarget.dataset.target;
911
+ const targetId = dragTarget.dataset.resourceid;
912
+ const targetName = dragTarget.dataset.resourcename;
913
+ if (!targetResource || !targetId || !targetName || !isValidResourceType(targetResource))
914
+ return null;
915
+ return {
916
+ type: targetResource,
917
+ id: targetId,
918
+ name: targetName
919
+ };
920
+ }
921
+ function handleDrop(event) {
922
+ const eventTarget = event.target;
923
+ if (!eventTarget || !isDragging.value) return {};
924
+ event.preventDefault();
925
+ const draggedResourceId = foldersStore.draggedElement?.id;
926
+ const draggedResourceType = foldersStore.draggedElement?.type;
927
+ const draggedResourceName = foldersStore.draggedElement?.name;
928
+ if (!draggedResourceId || !draggedResourceType || !draggedResourceName) return {};
929
+ onDragEnd();
930
+ const dropTarget = getDragAndDropTarget(eventTarget);
931
+ if (!dropTarget || !isDropTarget(dropTarget)) return {};
932
+ return {
933
+ draggedResource: {
934
+ type: draggedResourceType,
935
+ id: draggedResourceId,
936
+ name: draggedResourceName
937
+ },
938
+ dropTarget: {
939
+ type: dropTarget.type,
940
+ id: dropTarget.id,
941
+ name: dropTarget.name
942
+ }
943
+ };
944
+ }
822
945
  return {
823
- validateFolderName
946
+ validateFolderName,
947
+ onDragStart,
948
+ onDragEnd,
949
+ onDragEnter,
950
+ resetDropTarget,
951
+ handleDrop
824
952
  };
825
953
  }
826
954
  const _hoisted_1 = { key: 0 };
@@ -950,6 +1078,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
950
1078
  const currentFolder = computed(() => {
951
1079
  return currentFolderId.value ? foldersStore.breadcrumbsCache[currentFolderId.value] : null;
952
1080
  });
1081
+ const isDragging = computed(() => {
1082
+ return foldersStore.draggedElement !== null;
1083
+ });
1084
+ const isDragNDropEnabled = computed(() => {
1085
+ return !readOnlyEnv.value && hasPermissionToUpdateFolders.value;
1086
+ });
953
1087
  const hasPermissionToCreateFolders = computed(() => {
954
1088
  if (!currentProject.value) return false;
955
1089
  return getResourcePermissions(currentProject.value.scopes).folder.create === true;
@@ -1365,6 +1499,76 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1365
1499
  return { workflowCount: 0, subFolderCount: 0 };
1366
1500
  }
1367
1501
  };
1502
+ const onFolderCardDrop = async (event) => {
1503
+ const { draggedResource, dropTarget } = folderHelpers.handleDrop(event);
1504
+ if (!draggedResource || !dropTarget) return;
1505
+ await moveResourceOnDrop(draggedResource, dropTarget);
1506
+ };
1507
+ const onBreadCrumbsItemDrop = async (item) => {
1508
+ if (!foldersStore.draggedElement) return;
1509
+ await moveResourceOnDrop(
1510
+ {
1511
+ id: foldersStore.draggedElement.id,
1512
+ type: foldersStore.draggedElement.type,
1513
+ name: foldersStore.draggedElement.name
1514
+ },
1515
+ {
1516
+ id: item.id,
1517
+ type: "folder",
1518
+ name: item.label
1519
+ }
1520
+ );
1521
+ folderHelpers.onDragEnd();
1522
+ };
1523
+ const moveFolderToProjectRoot = async (id, name) => {
1524
+ if (!foldersStore.draggedElement) return;
1525
+ await moveResourceOnDrop(
1526
+ {
1527
+ id: foldersStore.draggedElement.id,
1528
+ type: foldersStore.draggedElement.type,
1529
+ name: foldersStore.draggedElement.name
1530
+ },
1531
+ {
1532
+ id,
1533
+ type: "project",
1534
+ name
1535
+ }
1536
+ );
1537
+ folderHelpers.onDragEnd();
1538
+ };
1539
+ const moveResourceOnDrop = async (draggedResource, dropTarget) => {
1540
+ if (draggedResource.type === "folder") {
1541
+ await moveFolder({
1542
+ folder: { id: draggedResource.id, name: draggedResource.name },
1543
+ newParent: { id: dropTarget.id, name: dropTarget.name, type: dropTarget.type },
1544
+ options: { skipFetch: true, skipNavigation: true }
1545
+ });
1546
+ workflowsAndFolders.value = workflowsAndFolders.value.filter(
1547
+ (folder) => folder.id !== draggedResource.id
1548
+ );
1549
+ const targetFolder = getFolderListItem(dropTarget.id);
1550
+ if (targetFolder) {
1551
+ targetFolder.subFolderCount += 1;
1552
+ }
1553
+ } else if (draggedResource.type === "workflow") {
1554
+ await onWorkflowMoved({
1555
+ workflow: {
1556
+ id: draggedResource.id,
1557
+ name: draggedResource.name,
1558
+ oldParentId: currentFolderId.value ?? ""
1559
+ },
1560
+ newParent: { id: dropTarget.id, name: dropTarget.name, type: dropTarget.type },
1561
+ options: { skipFetch: true }
1562
+ });
1563
+ workflowsAndFolders.value = workflowsAndFolders.value.filter(
1564
+ (workflow) => workflow.id !== draggedResource.id
1565
+ );
1566
+ const targetFolder = getFolderListItem(dropTarget.id);
1567
+ if (targetFolder) {
1568
+ targetFolder.workflowCount += 1;
1569
+ }
1570
+ }
1571
+ };
1368
1572
  const visibleBreadcrumbsItems = computed(() => {
1369
1573
  if (!currentFolder.value) return [];
1370
1574
  const items = [];
@@ -1659,7 +1863,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1659
1863
  folderId: payload.newParent.type === "project" ? void 0 : payload.newParent.id
1660
1864
  }
1661
1865
  }).href;
1662
- if (isCurrentFolder) {
1866
+ if (isCurrentFolder && !payload.options?.skipNavigation) {
1663
1867
  void router.push(newFolderURL);
1664
1868
  } else {
1665
1869
  toast.showToast({
@@ -1675,7 +1879,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1675
1879
  },
1676
1880
  type: "success"
1677
1881
  });
1678
- await fetchWorkflows();
1882
+ if (!payload.options?.skipFetch) {
1883
+ await fetchWorkflows();
1884
+ }
1679
1885
  }
1680
1886
  } catch (error) {
1681
1887
  toast.showError(error, i18n.baseText("folders.move.error.title"));
@@ -1712,7 +1918,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1712
1918
  parentFolderId: payload.newParent.type === "project" ? "0" : payload.newParent.id,
1713
1919
  versionId: workflowResource?.versionId
1714
1920
  });
1715
- await fetchWorkflows();
1921
+ if (!payload.options?.skipFetch) {
1922
+ await fetchWorkflows();
1923
+ }
1716
1924
  toast.showToast({
1717
1925
  title: i18n.baseText("folders.move.workflow.success.title"),
1718
1926
  message: i18n.baseText("folders.move.workflow.success.message", {
@@ -1756,7 +1964,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1756
1964
  return openBlock(), createBlock(ResourcesListLayout, {
1757
1965
  filters: filters.value,
1758
1966
  "onUpdate:filters": [
1759
- _cache[2] || (_cache[2] = ($event) => filters.value = $event),
1967
+ _cache[3] || (_cache[3] = ($event) => filters.value = $event),
1760
1968
  onFiltersUpdated
1761
1969
  ],
1762
1970
  "resource-key": "workflows",
@@ -1776,7 +1984,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1776
1984
  "onUpdate:search": onSearchUpdated,
1777
1985
  "onUpdate:currentPage": setCurrentPage,
1778
1986
  "onUpdate:pageSize": setPageSize,
1779
- onSort: onSortUpdated
1987
+ onSort: onSortUpdated,
1988
+ onMouseleave: unref(folderHelpers).resetDropTarget
1780
1989
  }, createSlots({
1781
1990
  header: withCtx(() => [
1782
1991
  createVNode(ProjectHeader, { onCreateFolder: createFolderInCurrent }, {
@@ -1845,36 +2054,111 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1845
2054
  createVNode(_component_FolderBreadcrumbs, {
1846
2055
  breadcrumbs: mainBreadcrumbs.value,
1847
2056
  actions: mainBreadcrumbsActions.value,
2057
+ "hidden-items-trigger": isDragging.value ? "hover" : "click",
1848
2058
  onItemSelected: onBreadcrumbItemClick,
1849
- onAction: onBreadCrumbsAction
1850
- }, null, 8, ["breadcrumbs", "actions"])
2059
+ onAction: onBreadCrumbsAction,
2060
+ onItemDrop: onBreadCrumbsItemDrop,
2061
+ onProjectDrop: moveFolderToProjectRoot
2062
+ }, null, 8, ["breadcrumbs", "actions", "hidden-items-trigger"])
1851
2063
  ], 2)) : createCommentVNode("", true)
1852
2064
  ]),
1853
2065
  item: withCtx(({ item: data, index }) => [
1854
- data.resourceType === "folder" ? (openBlock(), createBlock(_component_FolderCard, {
2066
+ data.resourceType === "folder" ? (openBlock(), createBlock(Draggable, {
1855
2067
  key: `folder-${index}`,
1856
- data,
1857
- actions: folderCardActions.value,
1858
- "read-only": readOnlyEnv.value || !hasPermissionToDeleteFolders.value && !hasPermissionToCreateFolders.value,
1859
- "personal-project": unref(projectsStore).personalProject,
1860
- "show-ownership-badge": showCardsBadge.value,
1861
- class: "mb-2xs",
1862
- onAction: onFolderCardAction
1863
- }, null, 8, ["data", "actions", "read-only", "personal-project", "show-ownership-badge"])) : (openBlock(), createBlock(WorkflowCard, {
2068
+ disabled: !isDragNDropEnabled.value,
2069
+ type: "move",
2070
+ "target-data-key": "folder",
2071
+ onDragstart: unref(folderHelpers).onDragStart,
2072
+ onDragend: unref(folderHelpers).onDragEnd
2073
+ }, {
2074
+ preview: withCtx(() => [
2075
+ createVNode(unref(N8nCard), null, {
2076
+ default: withCtx(() => [
2077
+ createVNode(unref(N8nText), {
2078
+ tag: "h2",
2079
+ bold: ""
2080
+ }, {
2081
+ default: withCtx(() => [
2082
+ createTextVNode(toDisplayString(data.name), 1)
2083
+ ]),
2084
+ _: 2
2085
+ }, 1024)
2086
+ ]),
2087
+ _: 2
2088
+ }, 1024)
2089
+ ]),
2090
+ default: withCtx(() => [
2091
+ createVNode(_component_FolderCard, {
2092
+ data,
2093
+ actions: folderCardActions.value,
2094
+ "read-only": readOnlyEnv.value || !hasPermissionToDeleteFolders.value && !hasPermissionToCreateFolders.value,
2095
+ "personal-project": unref(projectsStore).personalProject,
2096
+ "data-resourceid": data.id,
2097
+ "data-resourcename": data.name,
2098
+ class: normalizeClass([{
2099
+ ["mb-2xs"]: true,
2100
+ [_ctx.$style["drag-active"]]: isDragging.value,
2101
+ [_ctx.$style.dragging]: unref(foldersStore).draggedElement?.type === "folder" && unref(foldersStore).draggedElement?.id === data.id,
2102
+ [_ctx.$style["drop-active"]]: unref(foldersStore).activeDropTarget?.id === data.id
2103
+ }, "mb-2xs"]),
2104
+ "show-ownership-badge": showCardsBadge.value,
2105
+ "data-target": "folder",
2106
+ onAction: onFolderCardAction,
2107
+ onMouseenter: unref(folderHelpers).onDragEnter,
2108
+ onMouseup: onFolderCardDrop
2109
+ }, null, 8, ["data", "actions", "read-only", "personal-project", "data-resourceid", "data-resourcename", "class", "show-ownership-badge", "onMouseenter"])
2110
+ ]),
2111
+ _: 2
2112
+ }, 1032, ["disabled", "onDragstart", "onDragend"])) : (openBlock(), createBlock(Draggable, {
1864
2113
  key: `workflow-${index}`,
1865
- "data-test-id": "resources-list-item-workflow",
1866
- class: "mb-2xs",
1867
- data,
1868
- "workflow-list-event-bus": unref(workflowListEventBus),
1869
- "read-only": readOnlyEnv.value,
1870
- "show-ownership-badge": showCardsBadge.value,
1871
- "onClick:tag": onClickTag,
1872
- "onWorkflow:deleted": onWorkflowDeleted,
1873
- "onWorkflow:moved": fetchWorkflows,
1874
- "onWorkflow:duplicated": fetchWorkflows,
1875
- "onWorkflow:activeToggle": onWorkflowActiveToggle,
1876
- "onAction:moveToFolder": moveWorkflowToFolder
1877
- }, null, 8, ["data", "workflow-list-event-bus", "read-only", "show-ownership-badge"]))
2114
+ disabled: !isDragNDropEnabled.value,
2115
+ type: "move",
2116
+ "target-data-key": "workflow",
2117
+ onDragstart: unref(folderHelpers).onDragStart,
2118
+ onDragend: unref(folderHelpers).onDragEnd
2119
+ }, {
2120
+ preview: withCtx(() => [
2121
+ createVNode(unref(N8nCard), null, {
2122
+ default: withCtx(() => [
2123
+ createVNode(unref(N8nText), {
2124
+ tag: "h2",
2125
+ bold: ""
2126
+ }, {
2127
+ default: withCtx(() => [
2128
+ createTextVNode(toDisplayString(data.name), 1)
2129
+ ]),
2130
+ _: 2
2131
+ }, 1024)
2132
+ ]),
2133
+ _: 2
2134
+ }, 1024)
2135
+ ]),
2136
+ default: withCtx(() => [
2137
+ createVNode(WorkflowCard, {
2138
+ "data-test-id": "resources-list-item-workflow",
2139
+ class: normalizeClass({
2140
+ ["mb-2xs"]: true,
2141
+ [_ctx.$style["drag-active"]]: isDragging.value,
2142
+ [_ctx.$style.dragging]: unref(foldersStore).draggedElement?.type === "workflow" && unref(foldersStore).draggedElement?.id === data.id
2143
+ }),
2144
+ data,
2145
+ "workflow-list-event-bus": unref(workflowListEventBus),
2146
+ "read-only": readOnlyEnv.value,
2147
+ "data-resourceid": data.id,
2148
+ "data-resourcename": data.name,
2149
+ "show-ownership-badge": showCardsBadge.value,
2150
+ "data-target": "workflow",
2151
+ "onClick:tag": onClickTag,
2152
+ "onWorkflow:deleted": onWorkflowDeleted,
2153
+ "onWorkflow:moved": fetchWorkflows,
2154
+ "onWorkflow:duplicated": fetchWorkflows,
2155
+ "onWorkflow:activeToggle": onWorkflowActiveToggle,
2156
+ "onAction:moveToFolder": moveWorkflowToFolder,
2157
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => isDragging.value ? unref(folderHelpers).resetDropTarget() : {})
2158
+ }, null, 8, ["class", "data", "workflow-list-event-bus", "read-only", "data-resourceid", "data-resourcename", "show-ownership-badge"])
2159
+ ]),
2160
+ _: 2
2161
+ }, 1032, ["disabled", "onDragstart", "onDragend"]))
1878
2162
  ]),
1879
2163
  empty: withCtx(() => [
1880
2164
  createBaseVNode("div", _hoisted_5, [
@@ -1933,7 +2217,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1933
2217
  class: normalizeClass(_ctx.$style.emptyStateCard),
1934
2218
  hoverable: "",
1935
2219
  "data-test-id": "easy-ai-workflow-card",
1936
- onClick: _cache[1] || (_cache[1] = ($event) => openAIWorkflow("empty"))
2220
+ onClick: _cache[2] || (_cache[2] = ($event) => openAIWorkflow("empty"))
1937
2221
  }, {
1938
2222
  default: withCtx(() => [
1939
2223
  createVNode(unref(N8nIcon), {
@@ -2053,23 +2337,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2053
2337
  ]),
2054
2338
  key: "0"
2055
2339
  } : void 0
2056
- ]), 1032, ["filters", "resources", "shareable", "disabled", "resources-refreshing", "custom-page-size", "total-items", "has-empty-state"]);
2340
+ ]), 1032, ["filters", "resources", "shareable", "disabled", "resources-refreshing", "custom-page-size", "total-items", "has-empty-state", "onMouseleave"]);
2057
2341
  };
2058
2342
  }
2059
2343
  });
2060
- const actionsContainer = "_actionsContainer_f2oet_123";
2061
- const emptyStateCard = "_emptyStateCard_f2oet_139";
2062
- const emptyStateCardIcon = "_emptyStateCardIcon_f2oet_152";
2344
+ const actionsContainer = "_actionsContainer_10ayo_123";
2345
+ const emptyStateCard = "_emptyStateCard_10ayo_139";
2346
+ const emptyStateCardIcon = "_emptyStateCardIcon_10ayo_152";
2347
+ const dragging = "_dragging_10ayo_187";
2063
2348
  const style0 = {
2064
2349
  actionsContainer,
2065
- "easy-ai-workflow-callout": "_easy-ai-workflow-callout_f2oet_128",
2066
- "callout-trailing-content": "_callout-trailing-content_f2oet_133",
2350
+ "easy-ai-workflow-callout": "_easy-ai-workflow-callout_10ayo_128",
2351
+ "callout-trailing-content": "_callout-trailing-content_10ayo_133",
2067
2352
  emptyStateCard,
2068
2353
  emptyStateCardIcon,
2069
- "add-folder-button": "_add-folder-button_f2oet_161",
2070
- "breadcrumbs-container": "_breadcrumbs-container_f2oet_166",
2071
- "breadcrumbs-loading": "_breadcrumbs-loading_f2oet_172",
2072
- "empty-folder-container": "_empty-folder-container_f2oet_178"
2354
+ "add-folder-button": "_add-folder-button_10ayo_161",
2355
+ "breadcrumbs-container": "_breadcrumbs-container_10ayo_166",
2356
+ "breadcrumbs-loading": "_breadcrumbs-loading_10ayo_172",
2357
+ "empty-folder-container": "_empty-folder-container_10ayo_178",
2358
+ "drag-active": "_drag-active_10ayo_182",
2359
+ dragging,
2360
+ "drop-active": "_drop-active_10ayo_194"
2073
2361
  };
2074
2362
  const cssModules = {
2075
2363
  "$style": style0
@@ -1,5 +1,5 @@
1
- import { gg as useCssVar, i2 as merge } from "./index-B-Y7sDIj.js";
2
- import { s as smartDecimal } from "./InsightsSummary-BzdlA4Dr.js";
1
+ import { gK as useCssVar, ic as merge } from "./index-CZWHLhkg.js";
2
+ import { s as smartDecimal } from "./InsightsSummary-UVWGYFlb.js";
3
3
  const generateLinearGradient = (ctx, height) => {
4
4
  const gradient = ctx.createLinearGradient(0, 0, 0, height);
5
5
  gradient.addColorStop(0, "rgba(255, 111,92, 1)");
@@ -1,4 +1,4 @@
1
- import { fa as dateformat } from "./index-B-Y7sDIj.js";
1
+ import { fC as dateformat } from "./index-CZWHLhkg.js";
2
2
  const convertToDisplayDateComponents = (fullDate) => {
3
3
  const mask = `d mmm${new Date(fullDate).getFullYear() === (/* @__PURE__ */ new Date()).getFullYear() ? "" : ", yyyy"}#HH:MM:ss`;
4
4
  const formattedDate = dateformat(fullDate, mask);
@@ -1,4 +1,4 @@
1
- import { bu as NodeConnectionTypes } from "./index-B-Y7sDIj.js";
1
+ import { bl as NodeConnectionTypes } from "./index-CZWHLhkg.js";
2
2
  const getEasyAiWorkflowJson = () => {
3
3
  return {
4
4
  name: "Demo: My first AI Agent in n8n",
@@ -1,4 +1,4 @@
1
- import { C as createEventBus } from "./index-B-Y7sDIj.js";
1
+ import { C as createEventBus } from "./index-CZWHLhkg.js";
2
2
  const globalLinkActionsEventBus = createEventBus();
3
3
  export {
4
4
  globalLinkActionsEventBus as g
@@ -1,4 +1,4 @@
1
- import { C as createEventBus } from "./index-B-Y7sDIj.js";
1
+ import { C as createEventBus } from "./index-CZWHLhkg.js";
2
2
  const importCurlEventBus = createEventBus();
3
3
  export {
4
4
  importCurlEventBus as i
@@ -1,4 +1,4 @@
1
- import { f$ as Chart$1, d as defineComponent, g0 as shallowRef, as as h, g1 as LineController, g2 as version, r as ref, o as onMounted, y as onBeforeUnmount, I as watch, d4 as toRaw, g3 as isProxy, g4 as BarController } from "./index-B-Y7sDIj.js";
1
+ import { gu as Chart$1, d as defineComponent, gv as shallowRef, as as h, gw as LineController, gx as version, r as ref, o as onMounted, y as onBeforeUnmount, I as watch, d5 as toRaw, gy as isProxy, gz as BarController } from "./index-CZWHLhkg.js";
2
2
  const CommonProps = {
3
3
  data: {
4
4
  type: Object,