n8n-editor-ui 1.106.3 → 1.107.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/assets/AddDataStoreModal-D3j8deoq.css +133 -0
  2. package/dist/assets/AddDataStoreModal-DnuHX1S2.js +108 -0
  3. package/dist/assets/{AnimatedSpinner-D3ljAc96.js → AnimatedSpinner-6v6irDSW.js} +1 -1
  4. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BnwFrfgh.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-ozlwYXWj.js} +1 -1
  5. package/dist/assets/{AuthView-Ku2373Sr.js → AuthView-BJQzJmO7.js} +9 -9
  6. package/dist/assets/{AuthView-DZB9HITQ.css → AuthView-CWVio_MZ.css} +9 -9
  7. package/dist/assets/{ChangePasswordView-Skwn2QGk.js → ChangePasswordView-AJr06gB_.js} +3 -3
  8. package/dist/assets/CollectionParameter-78DalTOi.js +4 -0
  9. package/dist/assets/{ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-BNkO3XxQ.js → ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-BW0CieDo.js} +1 -1
  10. package/dist/assets/{CredentialsView-C6V_m3u-.js → CredentialsView-CXub2k-f.js} +8 -8
  11. package/dist/assets/{DataStoreView-5Dr8wZrK.js → DataStoreView-CM5VvI7D.js} +150 -71
  12. package/dist/assets/{DataStoreView-bZrewhaR.css → DataStoreView-D-Wmcgs5.css} +15 -10
  13. package/dist/assets/{DemoFooter-Dp-EiWsO.js → DemoFooter-B3t7CS9X.js} +6 -6
  14. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-BO3rV-x9.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-xgH7GJvn.js} +1 -1
  15. package/dist/assets/{EntityNotFound-O4ORqb15.js → EntityNotFound-C3W-Gouk.js} +3 -6
  16. package/dist/assets/{EntityNotFound-CBu7H3J_.css → EntityNotFound-DvXhVSfv.css} +2 -2
  17. package/dist/assets/{EntityUnAuthorised-DDEfWc5w.js → EntityUnAuthorised-Du_1dCDH.js} +1 -1
  18. package/dist/assets/{ErrorView-DQ0b3uWF.js → ErrorView-B4s983XH.js} +1 -1
  19. package/dist/assets/{EvaluationsRootView-BalOBb-M.js → EvaluationsRootView-2xzNr5pT.js} +19 -5
  20. package/dist/assets/{EvaluationsView-Dl30Shle.js → EvaluationsView-CWy0SffW.js} +3 -3
  21. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-dShXDoGB.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-DBWrBSV7.js} +2 -2
  22. package/dist/assets/{ExecutionsView-B5Jh1Slf.js → ExecutionsView-DUoLBkxb.js} +8 -8
  23. package/dist/assets/{FixedCollectionParameter-CEzpjeQZ.css → FixedCollectionParameter-DTkvAml6.css} +18 -18
  24. package/dist/assets/{FixedCollectionParameter-4ZwUaGbi.js → FixedCollectionParameter-xSZHY6A2.js} +4 -3
  25. package/dist/assets/{ForgotMyPasswordView-DynIpDPH.js → ForgotMyPasswordView-DgKin1FL.js} +3 -3
  26. package/dist/assets/{InfoAccordion-MlURVMcX.js → InfoAccordion-BoIzf-yz.js} +1 -1
  27. package/dist/assets/{InsightsChartAverageRuntime-BgEppbrD.js → InsightsChartAverageRuntime-CWGu6ocC.js} +4 -4
  28. package/dist/assets/{InsightsChartFailed-B9pKFsLn.js → InsightsChartFailed-BBlIfrXu.js} +4 -4
  29. package/dist/assets/{InsightsChartFailureRate-BWblqNp_.js → InsightsChartFailureRate-CXhB2MIz.js} +4 -4
  30. package/dist/assets/{InsightsChartTimeSaved-Bsjt89_E.js → InsightsChartTimeSaved-C7d5mIdl.js} +4 -4
  31. package/dist/assets/{InsightsChartTotal-D9mguvTz.js → InsightsChartTotal-DBS3cVYs.js} +4 -4
  32. package/dist/assets/{InsightsDashboard-BFQzAJ30.js → InsightsDashboard-D2CF6m01.js} +10 -10
  33. package/dist/assets/{InsightsPaywall-ol8lMMqv.js → InsightsPaywall-CWEHpnSN.js} +1 -1
  34. package/dist/assets/{InsightsSummary-DuEa77Gq.js → InsightsSummary-7514XMdb.js} +1 -1
  35. package/dist/assets/{InsightsTableWorkflows-CKfAgykg.js → InsightsTableWorkflows-CQZmCGc2.js} +4 -4
  36. package/dist/assets/{Logo-BOrUbRLm.js → Logo-CtGKRONY.js} +7 -7
  37. package/dist/assets/{Logo-DLBj1gMw.css → Logo-DaegEk2m.css} +9 -9
  38. package/dist/assets/{LogsPanel-lijAjBs3.js → LogsPanel-CIAt3lTg.js} +8 -10
  39. package/dist/assets/{MainHeader-qSHM1Rvp.css → MainHeader-C7eM_NQZ.css} +203 -115
  40. package/dist/assets/{MainHeader-CnzavsYg.js → MainHeader-DmIxSulT.js} +435 -66
  41. package/dist/assets/{MainSidebar-YKfo6G0t.js → MainSidebar-IXI0NYYP.js} +2 -2
  42. package/dist/assets/{NodeCreation-DfOnzJmi.js → NodeCreation-DqXKrY6w.js} +3 -3
  43. package/dist/assets/{NodeCreator-NztmH4n_.js → NodeCreator-CI6mRPpP.js} +104 -45
  44. package/dist/assets/{NodeCreator-Cb92WDsx.css → NodeCreator-COgNP4W1.css} +39 -31
  45. package/dist/assets/{NodeDetailsView-DzhT36su.js → NodeDetailsView-BLAGih5E.js} +27 -27
  46. package/dist/assets/{NodeDetailsView-Cam4nPwL.css → NodeDetailsView-CjdovDgq.css} +16 -16
  47. package/dist/assets/{NodeDetailsViewV2-LzYZcnv5.css → NodeDetailsViewV2-Bn1PbAPe.css} +18 -22
  48. package/dist/assets/{NodeDetailsViewV2-CVLb9jZL.js → NodeDetailsViewV2-zTI7VLUX.js} +28 -28
  49. package/dist/assets/{NodeView-CFpi2pKv.js → NodeView-CFuNDv8s.js} +118 -76
  50. package/dist/assets/{NodeView-BMiOpmk4.css → NodeView-CiaJbQtZ.css} +12 -9
  51. package/dist/assets/{ProjectHeader-C_V4cUfD.js → ProjectHeader-CIqf2gpl.js} +20 -3
  52. package/dist/assets/{ProjectSettings-wxEj0vl7.js → ProjectSettings-DGaIUK8h.js} +3 -3
  53. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DtD6uMAu.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-C3fRIVZH.js} +1 -1
  54. package/dist/assets/{ResourcesListLayout-6eIqe4Ld.css → ResourcesListLayout-C1JgyGhX.css} +24 -24
  55. package/dist/assets/{ResourcesListLayout-M_mVBaMn.js → ResourcesListLayout-DM01TqXK.js} +12 -12
  56. package/dist/assets/{RunDataJson-C6fe3tyE.js → RunDataJson-7m3wHhLP.js} +3 -3
  57. package/dist/assets/{RunDataJsonActions-Bf40hCdJ.js → RunDataJsonActions-CCs-K7u-.js} +1 -1
  58. package/dist/assets/{RunDataParsedAiContent-DNxDdAFA.js → RunDataParsedAiContent-qSEryFRl.js} +2 -2
  59. package/dist/assets/{RunDataSearch-BOHOVGZo.js → RunDataSearch-Cn2iAGkx.js} +1 -1
  60. package/dist/assets/{RunDataTable-Covbkrbq.js → RunDataTable-CqcDdqpf.js} +1 -1
  61. package/dist/assets/{SamlOnboarding-DuS7thyH.js → SamlOnboarding-CExc8LrJ.js} +3 -3
  62. package/dist/assets/{SettingsApiView-DiTe65f0.js → SettingsApiView-CyzaLF2j.js} +1 -1
  63. package/dist/assets/{SettingsCommunityNodesView-CyJ8VH0M.js → SettingsCommunityNodesView-Ci1jidLI.js} +4 -4
  64. package/dist/assets/{SettingsExternalSecrets-DkwQSOWE.js → SettingsExternalSecrets-JWxQMJpD.js} +1 -1
  65. package/dist/assets/{SettingsLdapView-BqkJjxxG.js → SettingsLdapView-BjZFbcTn.js} +8 -8
  66. package/dist/assets/{SettingsLdapView-Bx1eqk76.css → SettingsLdapView-D0SUO3ai.css} +10 -10
  67. package/dist/assets/{SettingsLogStreamingView-kquIKMzZ.js → SettingsLogStreamingView-DvWmdSgA.js} +1 -1
  68. package/dist/assets/{SettingsPersonalView-_PA-j_XK.js → SettingsPersonalView-DqrkCtlS.js} +1 -1
  69. package/dist/assets/{SettingsSourceControl-jkTTsdtR.js → SettingsSourceControl-N9lSG0gK.js} +1 -1
  70. package/dist/assets/{SettingsSso-DAdOHMeU.js → SettingsSso-lzPmnXZl.js} +1 -1
  71. package/dist/assets/{SettingsUsageAndPlan-BBp6XwhR.js → SettingsUsageAndPlan-BF2mv_rX.js} +2 -2
  72. package/dist/assets/{SettingsUsageAndPlan-ZZQpCmyQ.css → SettingsUsageAndPlan-_VxSs28G.css} +3 -3
  73. package/dist/assets/{SettingsUsersView-RQTdLxyb.css → SettingsUsersView-BG7JdfYz.css} +9 -9
  74. package/dist/assets/{SettingsUsersView-CiqFBEDz.js → SettingsUsersView-TueQ1ATe.js} +9 -9
  75. package/dist/assets/{SettingsView-U8wVTFLp.js → SettingsView-TKZutR1C.js} +1 -1
  76. package/dist/assets/{SetupView-DKS_9Pmw.js → SetupView-DAFe0s88.js} +3 -3
  77. package/dist/assets/{SetupWorkflowCredentialsButton-DrvkXjx2.js → SetupWorkflowCredentialsButton-D_e5xPYq.js} +1 -1
  78. package/dist/assets/{SetupWorkflowFromTemplateView-CuVhbPBO.js → SetupWorkflowFromTemplateView-C40rZsY1.js} +3 -3
  79. package/dist/assets/{SigninView-CnPzFRL5.js → SigninView-rw-BhvFO.js} +3 -3
  80. package/dist/assets/{SignoutView-BOpZmdFV.js → SignoutView-hmcLIumg.js} +1 -1
  81. package/dist/assets/{SignupView-CRnkvPuS.js → SignupView-B8utUMjA.js} +3 -3
  82. package/dist/assets/{TableBase-DIje27Wa.js → TableBase-Dg9jrpSs.js} +1 -1
  83. package/dist/assets/{Tags-B0bIUnzf.css → Tag-Cg-Hqs2H.css} +0 -141
  84. package/dist/assets/Tag-DBkUcYd_.js +32 -0
  85. package/dist/assets/{Tags-BjFupN4S.js → Tags-BABZPMfc.js} +6 -33
  86. package/dist/assets/Tags-CCemj7t9.css +142 -0
  87. package/dist/assets/{TemplateDetails-mqzPHlzS.js → TemplateDetails-DY7lPygm.js} +3 -10
  88. package/dist/assets/{TemplateList-Cjo0X1gf.js → TemplateList-UnYTakQQ.js} +8 -8
  89. package/dist/assets/{TemplateList-DcOqRM10.css → TemplateList-XNW-2Ugr.css} +8 -8
  90. package/dist/assets/{TemplatesCollectionView-CdqalUWl.js → TemplatesCollectionView-DTVw3VF0.js} +7 -6
  91. package/dist/assets/{TemplatesSearchView-hZVsLLXI.js → TemplatesSearchView-DolE_9AA.js} +3 -3
  92. package/dist/assets/{TemplatesView-D8AaaysW.js → TemplatesView-CwNytFHx.js} +1 -1
  93. package/dist/assets/{TemplatesWorkflowView-Df38vzRS.js → TemplatesWorkflowView-iSKd7uht.js} +7 -6
  94. package/dist/assets/{TriggerPanel-CRLzika6.js → TriggerPanel-BTLbaSMz.js} +34 -29
  95. package/dist/assets/{TriggerPanel-gMtmEr6n.css → TriggerPanel-DmVMaaLr.css} +25 -45
  96. package/dist/assets/{VariablesView-BLr_Gtfp.js → VariablesView-Dk54OZ1f.js} +5 -5
  97. package/dist/assets/{WorkerView-B5OYF2l5.js → WorkerView-CwuTFYrO.js} +6 -6
  98. package/dist/assets/{WorkflowActivator-DhLX6i1H.css → WorkflowActivator-22RW64G2.css} +3 -4
  99. package/dist/assets/{WorkflowActivator-D35S71ij.js → WorkflowActivator-DH6Riyap.js} +4 -4
  100. package/dist/assets/{WorkflowExecutionsInfoAccordion-Cx845yD1.js → WorkflowExecutionsInfoAccordion-CP2uh-PB.js} +2 -2
  101. package/dist/assets/{WorkflowExecutionsLandingPage-BcJAFFID.js → WorkflowExecutionsLandingPage-BoIaBPDG.js} +3 -3
  102. package/dist/assets/{WorkflowExecutionsPreview-BVpVifuf.js → WorkflowExecutionsPreview-C11ZxZ-4.js} +4 -4
  103. package/dist/assets/{WorkflowExecutionsView-bww_ZIUE.js → WorkflowExecutionsView-5rikocSa.js} +7 -6
  104. package/dist/assets/{WorkflowHistory-B9p3ubCQ.js → WorkflowHistory-Cph_B-2a.js} +2 -2
  105. package/dist/assets/{WorkflowOnboardingView-CK3btKpS.js → WorkflowOnboardingView-CTo8mbw7.js} +1 -1
  106. package/dist/assets/{WorkflowPreview-BICG36-Y.js → WorkflowPreview-fJy3X_xW.js} +1 -1
  107. package/dist/assets/{WorkflowsView-DsJIOJ7h.css → WorkflowsView-eYGsq80b.css} +267 -0
  108. package/dist/assets/{WorkflowsView-DQBqlF0o.js → WorkflowsView-mdIBSRa_.js} +201 -48
  109. package/dist/assets/{canvas-BAegJxph.js → canvas-DenCY4AJ.js} +1 -1
  110. package/dist/assets/{chartjs.utils-BW1BHqON.js → chartjs.utils-BlhTVSE9.js} +2 -2
  111. package/dist/assets/{VueMarkdown-BXoAxQ2V.js → core-lMJc92pa.js} +26 -26
  112. package/dist/assets/dataStore.store-CDiWuK8E.js +98 -0
  113. package/dist/assets/{en-ORjqW56z.js → en-B7EAgfR5.js} +50 -2
  114. package/dist/assets/{global-link-actions-BLMbNlby.js → global-link-actions-D18bp17X.js} +1 -1
  115. package/dist/assets/{index-B09aakje.css → index-BFyMw9-0.css} +8121 -7775
  116. package/dist/assets/{index-BpQz0FGO.js → index-Cpz83ovC.js} +1 -1
  117. package/dist/assets/{index-DJu2gb_4.js → index-CxleUtlq.js} +57377 -55708
  118. package/dist/assets/{pickBy-9DlC43KL.js → pickBy-D7GSyF5E.js} +1 -1
  119. package/dist/assets/{readyToRunWorkflows.store-bkk9BfbV.js → readyToRunWorkflows.store-Dz_KLa8_.js} +3 -3
  120. package/dist/assets/{templateActions-DWPclqQi.js → templateActions-xbNJmRy6.js} +1 -1
  121. package/dist/assets/{typescript.worker-KwUz68Jx.js → typescript.worker-ku8s_Oaf.js} +8407 -7241
  122. package/dist/assets/{useBeforeUnload-hEveYtYY.js → useBeforeUnload-D0WL7mpb.js} +1 -1
  123. package/dist/assets/{useExecutionDebugging-D0j03ZAv.js → useExecutionDebugging-Bd_2vpLq.js} +4 -4
  124. package/dist/assets/{useImportCurlCommand-BKQ4XONK.js → useImportCurlCommand-Cyf8dlDO.js} +1 -1
  125. package/dist/assets/{useProjectPages-CFEdc5ap.js → useProjectPages-BpsdwyKW.js} +1 -1
  126. package/dist/assets/{usePushConnection-g2LnZI3X.js → usePushConnection-BaTxjUZd.js} +18 -18
  127. package/dist/assets/{useWorkflowActivate-G9wdzjX4.js → useWorkflowActivate-DrpskU4R.js} +1 -1
  128. package/dist/index.html +2 -2
  129. package/package.json +1 -1
  130. package/stylelint.config.mjs +3 -0
  131. package/dist/assets/CollectionParameter-BAZmSBB4.js +0 -4
@@ -1,15 +1,10 @@
1
- import { gm as getFullApiResponse, d as defineComponent, x as computed, gn as DATA_STORE_DETAILS, h as createElementBlock, g as openBlock, i as createVNode, w as withCtx, s as N8nCard, n as normalizeClass, j as createBaseVNode, e as createBlock, f as createCommentVNode, e5 as N8nActionToggle, bS as withModifiers, p as N8nText, k as createTextVNode, t as toDisplayString, l as unref, c as useI18n, eA as _sfc_main$2, m as N8nHeading, aw as N8nBadge, N as N8nIcon, a2 as N8nLink, _ as _export_sfc, a6 as useRoute, S as useDebounce, aj as useDocumentTitle, a as useToast, fY as useInsightsStore, ag as useProjectsStore, ad as useRootStore, af as useSourceControlStore, r as ref, ar as ProjectTypes, go as DATA_STORE_CARD_ACTIONS, o as onMounted, dQ as N8nActionBox, gp as DEFAULT_DATA_STORE_PAGE_SIZE } from "./index-DJu2gb_4.js";
2
- import { P as ProjectHeader } from "./ProjectHeader-C_V4cUfD.js";
3
- import { R as ResourcesListLayout } from "./ResourcesListLayout-M_mVBaMn.js";
4
- import { I as InsightsSummary } from "./InsightsSummary-DuEa77Gq.js";
5
- import { u as useProjectPages } from "./useProjectPages-CFEdc5ap.js";
6
- import "./TableBase-DIje27Wa.js";
7
- const fetchDataStores = async (context, projectId, options) => {
8
- return await getFullApiResponse(context, "GET", "/data-stores", {
9
- projectId,
10
- options
11
- });
12
- };
1
+ import { d as defineComponent, aH as useTemplateRef, x as computed, gx as DATA_STORE_DETAILS, h as createElementBlock, g as openBlock, i as createVNode, w as withCtx, s as N8nCard, n as normalizeClass, j as createBaseVNode, e as createBlock, f as createCommentVNode, eb as N8nActionToggle, B as withModifiers, p as N8nText, k as createTextVNode, t as toDisplayString, l as unref, c as useI18n, eI as _sfc_main$2, aI as InlineRename, aL as N8nBadge, N as N8nIcon, C as N8nLink, _ as _export_sfc, aa as useRoute, Y as useDebounce, ay as useDocumentTitle, a as useToast, g6 as useInsightsStore, av as useProjectsStore, aj as useSourceControlStore, r as ref, aG as ProjectTypes, gy as DATA_STORE_CARD_ACTIONS, o as onMounted, dW as N8nActionBox, Z as useUIStore, gz as ADD_DATA_STORE_MODAL_KEY, aq as useMessage, ar as MODAL_CONFIRM, gA as DEFAULT_DATA_STORE_PAGE_SIZE } from "./index-CxleUtlq.js";
2
+ import { P as ProjectHeader } from "./ProjectHeader-CIqf2gpl.js";
3
+ import { R as ResourcesListLayout } from "./ResourcesListLayout-DM01TqXK.js";
4
+ import { I as InsightsSummary } from "./InsightsSummary-7514XMdb.js";
5
+ import { u as useProjectPages } from "./useProjectPages-BpsdwyKW.js";
6
+ import { u as useDataStoreStore } from "./dataStore.store-CDiWuK8E.js";
7
+ import "./TableBase-Dg9jrpSs.js";
13
8
  const _hoisted_1 = { "data-test-id": "data-store-card" };
14
9
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
15
10
  __name: "DataStoreCard",
@@ -19,9 +14,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
19
14
  readOnly: { type: Boolean, default: false },
20
15
  showOwnershipBadge: { type: Boolean, default: false }
21
16
  },
22
- setup(__props) {
17
+ emits: ["action"],
18
+ setup(__props, { emit: __emit }) {
23
19
  const i18n = useI18n();
24
20
  const props = __props;
21
+ const emit = __emit;
22
+ const renameInput = useTemplateRef("renameInput");
25
23
  const dataStoreRoute = computed(() => {
26
24
  return {
27
25
  name: DATA_STORE_DETAILS,
@@ -31,9 +29,30 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
31
29
  }
32
30
  };
33
31
  });
32
+ const onCardAction = (action) => {
33
+ if (action === "rename") {
34
+ if (renameInput.value?.forceFocus) {
35
+ setTimeout(() => {
36
+ renameInput.value?.forceFocus?.();
37
+ }, 100);
38
+ }
39
+ return;
40
+ }
41
+ emit("action", {
42
+ dataStore: props.dataStore,
43
+ action
44
+ });
45
+ };
46
+ const onNameSubmit = (name) => {
47
+ if (props.dataStore.name === name) return;
48
+ emit("action", {
49
+ dataStore: { ...props.dataStore, name },
50
+ action: "rename"
51
+ });
52
+ };
34
53
  return (_ctx, _cache) => {
35
54
  const _component_N8nIcon = N8nIcon;
36
- const _component_N8nHeading = N8nHeading;
55
+ const _component_N8nInlineTextEdit = InlineRename;
37
56
  const _component_N8nBadge = N8nBadge;
38
57
  const _component_N8nText = N8nText;
39
58
  const _component_TimeAgo = _sfc_main$2;
@@ -61,19 +80,22 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
61
80
  ]),
62
81
  header: withCtx(() => [
63
82
  createBaseVNode("div", {
64
- class: normalizeClass(_ctx.$style["card-header"])
83
+ class: normalizeClass(_ctx.$style["card-header"]),
84
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {
85
+ }, ["prevent"]))
65
86
  }, [
66
- createVNode(_component_N8nHeading, {
67
- tag: "h2",
68
- bold: "",
69
- size: "small",
70
- "data-test-id": "folder-card-name"
71
- }, {
72
- default: withCtx(() => [
73
- createTextVNode(toDisplayString(props.dataStore.name), 1)
74
- ]),
75
- _: 1
76
- }),
87
+ createVNode(_component_N8nInlineTextEdit, {
88
+ ref_key: "renameInput",
89
+ ref: renameInput,
90
+ "data-test-id": "datastore-name-input",
91
+ placeholder: unref(i18n).baseText("dataStore.add.input.name.label"),
92
+ class: normalizeClass(_ctx.$style["card-name"]),
93
+ "model-value": props.dataStore.name,
94
+ "max-length": 50,
95
+ "read-only": props.readOnly,
96
+ disabled: props.readOnly,
97
+ "onUpdate:modelValue": onNameSubmit
98
+ }, null, 8, ["placeholder", "class", "model-value", "read-only", "disabled"]),
77
99
  props.readOnly ? (openBlock(), createBlock(_component_N8nBadge, {
78
100
  key: 0,
79
101
  class: "ml-3xs",
@@ -91,17 +113,6 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
91
113
  createBaseVNode("div", {
92
114
  class: normalizeClass(_ctx.$style["card-footer"])
93
115
  }, [
94
- createVNode(_component_N8nText, {
95
- size: "small",
96
- color: "text-light",
97
- class: normalizeClass([_ctx.$style["info-cell"], _ctx.$style["info-cell--size"]]),
98
- "data-test-id": "folder-card-folder-count"
99
- }, {
100
- default: withCtx(() => [
101
- createTextVNode(toDisplayString(unref(i18n).baseText("dataStore.card.size", { interpolate: { size: _ctx.dataStore.size } })), 1)
102
- ]),
103
- _: 1
104
- }, 8, ["class"]),
105
116
  createVNode(_component_N8nText, {
106
117
  size: "small",
107
118
  color: "text-light",
@@ -110,7 +121,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
110
121
  }, {
111
122
  default: withCtx(() => [
112
123
  createTextVNode(toDisplayString(unref(i18n).baseText("dataStore.card.row.count", {
113
- interpolate: { count: props.dataStore.recordCount }
124
+ interpolate: { count: props.dataStore.recordCount ?? 0 }
114
125
  })), 1)
115
126
  ]),
116
127
  _: 1
@@ -123,7 +134,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
123
134
  }, {
124
135
  default: withCtx(() => [
125
136
  createTextVNode(toDisplayString(unref(i18n).baseText("dataStore.card.column.count", {
126
- interpolate: { count: props.dataStore.columnCount }
137
+ interpolate: { count: props.dataStore.columns.length }
127
138
  })), 1)
128
139
  ]),
129
140
  _: 1
@@ -161,14 +172,15 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
161
172
  append: withCtx(() => [
162
173
  createBaseVNode("div", {
163
174
  class: normalizeClass(_ctx.$style["card-actions"]),
164
- onClick: _cache[0] || (_cache[0] = withModifiers(() => {
175
+ onClick: _cache[1] || (_cache[1] = withModifiers(() => {
165
176
  }, ["prevent"]))
166
177
  }, [
167
178
  props.actions.length ? (openBlock(), createBlock(_component_N8nActionToggle, {
168
179
  key: 0,
169
180
  actions: props.actions,
170
181
  theme: "dark",
171
- "data-test-id": "folder-card-actions"
182
+ "data-test-id": "data-store-card-actions",
183
+ onAction: onCardAction
172
184
  }, null, 8, ["actions"])) : createCommentVNode("", true)
173
185
  ], 2)
174
186
  ]),
@@ -181,16 +193,17 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
181
193
  };
182
194
  }
183
195
  });
184
- const card = "_card_1cq4j_123";
196
+ const card = "_card_1y92f_123";
185
197
  const style0 = {
186
198
  card,
187
- "card-icon": "_card-icon_1cq4j_131",
188
- "card-header": "_card-header_1cq4j_138",
189
- "card-footer": "_card-footer_1cq4j_146",
190
- "info-cell": "_info-cell_1cq4j_150",
191
- "info-cell--created": "_info-cell--created_1cq4j_159",
192
- "info-cell--record-count": "_info-cell--record-count_1cq4j_160",
193
- "info-cell--column-count": "_info-cell--column-count_1cq4j_161"
199
+ "card-name": "_card-name_1y92f_131",
200
+ "card-icon": "_card-icon_1y92f_137",
201
+ "card-header": "_card-header_1y92f_144",
202
+ "card-footer": "_card-footer_1y92f_152",
203
+ "info-cell": "_info-cell_1y92f_156",
204
+ "info-cell--created": "_info-cell--created_1y92f_165",
205
+ "info-cell--record-count": "_info-cell--record-count_1y92f_166",
206
+ "info-cell--column-count": "_info-cell--column-count_1y92f_167"
194
207
  };
195
208
  const cssModules = {
196
209
  "$style": style0
@@ -205,15 +218,30 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
205
218
  const { callDebounced } = useDebounce();
206
219
  const documentTitle = useDocumentTitle();
207
220
  const toast = useToast();
221
+ const message = useMessage();
222
+ const dataStoreStore = useDataStoreStore();
208
223
  const insightsStore = useInsightsStore();
209
224
  const projectsStore = useProjectsStore();
210
- const rootStore = useRootStore();
211
225
  const sourceControlStore = useSourceControlStore();
212
226
  const loading = ref(true);
213
- const dataStores = ref([]);
214
- const totalCount = ref(0);
215
227
  const currentPage = ref(1);
216
228
  const pageSize = ref(DEFAULT_DATA_STORE_PAGE_SIZE);
229
+ const customProjectActions = computed(() => [
230
+ {
231
+ id: "add-data-store",
232
+ label: i18n.baseText("dataStore.add.button.label"),
233
+ disabled: loading.value || projectPages.isOverviewSubPage
234
+ }
235
+ ]);
236
+ const dataStoreResources = computed(
237
+ () => dataStoreStore.dataStores.map((ds) => {
238
+ return {
239
+ ...ds,
240
+ resourceType: "datastore"
241
+ };
242
+ })
243
+ );
244
+ const totalCount = computed(() => dataStoreStore.totalCount);
217
245
  const currentProject = computed(() => projectsStore.currentProject);
218
246
  const projectName = computed(() => {
219
247
  if (currentProject.value?.type === ProjectTypes.Personal) {
@@ -243,26 +271,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
243
271
  label: i18n.baseText("generic.delete"),
244
272
  value: DATA_STORE_CARD_ACTIONS.DELETE,
245
273
  disabled: readOnlyEnv.value
246
- },
247
- {
248
- label: i18n.baseText("generic.clear"),
249
- value: DATA_STORE_CARD_ACTIONS.CLEAR,
250
- disabled: readOnlyEnv.value
251
274
  }
252
275
  ]);
253
276
  const initialize = async () => {
254
277
  loading.value = true;
255
278
  const projectId = Array.isArray(route.params.projectId) ? route.params.projectId[0] : route.params.projectId;
256
279
  try {
257
- const response = await fetchDataStores(rootStore.restApiContext, projectId, {
258
- page: currentPage.value,
259
- pageSize: pageSize.value
260
- });
261
- dataStores.value = response.data.map((item) => ({
262
- ...item,
263
- resourceType: "datastore"
264
- }));
265
- totalCount.value = response.count;
280
+ await dataStoreStore.fetchDataStores(projectId, currentPage.value, pageSize.value);
266
281
  } catch (error) {
267
282
  toast.showError(error, "Error loading data stores");
268
283
  } finally {
@@ -280,6 +295,65 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
280
295
  await callDebounced(initialize, { debounceTime: 200, trailing: true });
281
296
  }
282
297
  };
298
+ const onAddModalClick = () => {
299
+ useUIStore().openModal(ADD_DATA_STORE_MODAL_KEY);
300
+ };
301
+ const onCardAction = async (payload) => {
302
+ switch (payload.action) {
303
+ case DATA_STORE_CARD_ACTIONS.DELETE: {
304
+ const promptResponse = await message.confirm(
305
+ i18n.baseText("dataStore.delete.confirm.message", {
306
+ interpolate: { name: payload.dataStore.name }
307
+ }),
308
+ i18n.baseText("dataStore.delete.confirm.title"),
309
+ {
310
+ confirmButtonText: i18n.baseText("generic.delete"),
311
+ cancelButtonText: i18n.baseText("generic.cancel")
312
+ }
313
+ );
314
+ if (promptResponse === MODAL_CONFIRM) {
315
+ try {
316
+ const deleted = await dataStoreStore.deleteDataStore(
317
+ payload.dataStore.id,
318
+ payload.dataStore.projectId
319
+ );
320
+ if (!deleted) {
321
+ toast.showError(
322
+ new Error(i18n.baseText("generic.unknownError")),
323
+ i18n.baseText("dataStore.delete.error")
324
+ );
325
+ }
326
+ } catch (error) {
327
+ toast.showError(error, i18n.baseText("dataStore.delete.error"));
328
+ }
329
+ }
330
+ break;
331
+ }
332
+ case DATA_STORE_CARD_ACTIONS.RENAME: {
333
+ try {
334
+ const updated = await dataStoreStore.updateDataStore(
335
+ payload.dataStore.id,
336
+ payload.dataStore.name,
337
+ payload.dataStore.projectId
338
+ );
339
+ if (!updated) {
340
+ toast.showError(
341
+ new Error(i18n.baseText("generic.unknownError")),
342
+ i18n.baseText("dataStore.rename.error")
343
+ );
344
+ }
345
+ } catch (error) {
346
+ toast.showError(error, i18n.baseText("dataStore.rename.error"));
347
+ }
348
+ break;
349
+ }
350
+ }
351
+ };
352
+ const onProjectHeaderAction = (action) => {
353
+ if (action === "add-data-store") {
354
+ useUIStore().openModal(ADD_DATA_STORE_MODAL_KEY);
355
+ }
356
+ };
283
357
  onMounted(() => {
284
358
  documentTitle.set(i18n.baseText("dataStore.tab.label"));
285
359
  });
@@ -289,7 +363,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
289
363
  ref: "layout",
290
364
  "resource-key": "dataStore",
291
365
  type: "list-paginated",
292
- resources: dataStores.value,
366
+ resources: dataStoreResources.value,
293
367
  initialize,
294
368
  "type-props": { itemSize: 80 },
295
369
  loading: loading.value,
@@ -304,7 +378,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
304
378
  "onUpdate:paginationAndSort": onPaginationUpdate
305
379
  }, {
306
380
  header: withCtx(() => [
307
- createVNode(ProjectHeader, null, {
381
+ createVNode(ProjectHeader, {
382
+ "custom-actions": customProjectActions.value,
383
+ onCustomActionSelected: onProjectHeaderAction
384
+ }, {
308
385
  default: withCtx(() => [
309
386
  unref(projectPages).isOverviewSubPage && unref(insightsStore).isSummaryEnabled ? (openBlock(), createBlock(InsightsSummary, {
310
387
  key: 0,
@@ -314,7 +391,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
314
391
  }, null, 8, ["loading", "summary"])) : createCommentVNode("", true)
315
392
  ]),
316
393
  _: 1
317
- })
394
+ }, 8, ["custom-actions"])
318
395
  ]),
319
396
  empty: withCtx(() => [
320
397
  createVNode(_component_n8n_action_box, {
@@ -322,7 +399,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
322
399
  heading: unref(i18n).baseText("dataStore.empty.label"),
323
400
  description: emptyCalloutDescription.value,
324
401
  "button-text": emptyCalloutButtonText.value,
325
- "button-type": "secondary"
402
+ "button-type": "secondary",
403
+ "onClick:button": onAddModalClick
326
404
  }, null, 8, ["heading", "description", "button-text"])
327
405
  ]),
328
406
  item: withCtx(({ item: data }) => [
@@ -331,7 +409,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
331
409
  "data-store": data,
332
410
  "show-ownership-badge": unref(projectPages).isOverviewSubPage,
333
411
  actions: cardActions.value,
334
- "read-only": readOnlyEnv.value
412
+ "read-only": readOnlyEnv.value,
413
+ onAction: onCardAction
335
414
  }, null, 8, ["data-store", "show-ownership-badge", "actions", "read-only"])
336
415
  ]),
337
416
  _: 1
@@ -120,40 +120,45 @@
120
120
  -------------------------- */
121
121
  /* BEM
122
122
  -------------------------- */
123
- ._card_1cq4j_123 {
123
+ ._card_1y92f_123 {
124
124
  transition: box-shadow 0.3s ease;
125
125
  cursor: pointer;
126
126
  }
127
- ._card_1cq4j_123:hover {
127
+ ._card_1y92f_123:hover {
128
128
  box-shadow: 0 2px 8px rgba(68, 28, 23, 0.1);
129
129
  }
130
- ._card-icon_1cq4j_131 {
130
+ ._card-name_1y92f_131 {
131
+ color: var(--color-text-dark);
132
+ font-size: var(--font-size-m);
133
+ margin-bottom: var(--spacing-5xs);
134
+ }
135
+ ._card-icon_1y92f_137 {
131
136
  flex-shrink: 0;
132
137
  color: var(--color-text-base);
133
138
  align-content: center;
134
139
  text-align: center;
135
140
  }
136
- ._card-header_1cq4j_138 {
141
+ ._card-header_1y92f_144 {
137
142
  display: flex;
138
143
  align-items: center;
139
144
  justify-content: space-between;
140
145
  padding-right: var(--spacing-xs);
141
146
  margin-bottom: var(--spacing-5xs);
142
147
  }
143
- ._card-footer_1cq4j_146 {
148
+ ._card-footer_1y92f_152 {
144
149
  display: flex;
145
150
  }
146
- ._info-cell_1cq4j_150 + ._info-cell_1cq4j_150::before {
151
+ ._info-cell_1y92f_156 + ._info-cell_1y92f_156::before {
147
152
  content: "|";
148
153
  margin: 0 var(--spacing-4xs);
149
154
  }
150
155
  @media screen and (max-width: 991px) {
151
- ._card_1cq4j_123 {
156
+ ._card_1y92f_123 {
152
157
  flex-wrap: wrap;
153
158
  }
154
- ._info-cell--created_1cq4j_159,
155
- ._info-cell--record-count_1cq4j_160,
156
- ._info-cell--column-count_1cq4j_161 {
159
+ ._info-cell--created_1y92f_165,
160
+ ._info-cell--record-count_1y92f_166,
161
+ ._info-cell--column-count_1y92f_167 {
157
162
  display: none;
158
163
  }
159
164
  }
@@ -1,9 +1,9 @@
1
- import LogsPanel from "./LogsPanel-lijAjBs3.js";
2
- import { d as defineComponent, a5 as useWorkflowsStore, x as computed, e as createBlock, f as createCommentVNode, g as openBlock } from "./index-DJu2gb_4.js";
3
- import "./AnimatedSpinner-D3ljAc96.js";
4
- import "./ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-BNkO3XxQ.js";
5
- import "./VueMarkdown-BXoAxQ2V.js";
6
- import "./canvas-BAegJxph.js";
1
+ import LogsPanel from "./LogsPanel-CIAt3lTg.js";
2
+ import { d as defineComponent, a9 as useWorkflowsStore, x as computed, e as createBlock, f as createCommentVNode, g as openBlock } from "./index-CxleUtlq.js";
3
+ import "./AnimatedSpinner-6v6irDSW.js";
4
+ import "./ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-BW0CieDo.js";
5
+ import "./core-lMJc92pa.js";
6
+ import "./canvas-DenCY4AJ.js";
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "DemoFooter",
9
9
  setup(__props) {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, b as useRouter, x as computed, c as useI18n, e as createBlock, g as openBlock, dQ as N8nActionBox, l as unref, V as VIEWS } from "./index-DJu2gb_4.js";
1
+ import { d as defineComponent, b as useRouter, x as computed, c as useI18n, e as createBlock, g as openBlock, dW as N8nActionBox, l as unref, V as VIEWS } from "./index-CxleUtlq.js";
2
2
  const _sfc_main = /* @__PURE__ */ defineComponent({
3
3
  __name: "EmptySharedSectionActionBox",
4
4
  props: {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, h as createElementBlock, g as openBlock, i as createVNode, w as withCtx, j as createBaseVNode, l as unref, m as N8nHeading, k as createTextVNode, t as toDisplayString, c as useI18n, p as N8nText, q as N8nButton, s as N8nCard, _ as _export_sfc } from "./index-DJu2gb_4.js";
1
+ import { d as defineComponent, h as createElementBlock, g as openBlock, i as createVNode, w as withCtx, j as createBaseVNode, l as unref, m as N8nHeading, k as createTextVNode, t as toDisplayString, c as useI18n, p as N8nText, q as N8nButton, s as N8nCard, _ as _export_sfc } from "./index-CxleUtlq.js";
2
2
  const _hoisted_1 = { class: "entity-not-found-view" };
3
3
  const _sfc_main = /* @__PURE__ */ defineComponent({
4
4
  __name: "EntityNotFound",
@@ -9,10 +9,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  const locale = useI18n();
10
10
  return (_ctx, _cache) => {
11
11
  return openBlock(), createElementBlock("div", _hoisted_1, [
12
- createVNode(unref(N8nCard), {
13
- style: {},
14
- class: "entity-card"
15
- }, {
12
+ createVNode(unref(N8nCard), { class: "entity-card" }, {
16
13
  default: withCtx(() => [
17
14
  _cache[0] || (_cache[0] = createBaseVNode("div", { class: "text-center mb-l" }, [
18
15
  createBaseVNode("svg", {
@@ -89,7 +86,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
89
86
  };
90
87
  }
91
88
  });
92
- const EntityNotFound = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-30756e55"]]);
89
+ const EntityNotFound = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a053f562"]]);
93
90
  export {
94
91
  EntityNotFound as default
95
92
  };
@@ -1,10 +1,10 @@
1
1
 
2
- .entity-not-found-view[data-v-30756e55] {
2
+ .entity-not-found-view[data-v-a053f562] {
3
3
  display: flex;
4
4
  align-items: center;
5
5
  justify-content: center;
6
6
  }
7
- .entity-card[data-v-30756e55] {
7
+ .entity-card[data-v-a053f562] {
8
8
  max-width: 400px;
9
9
  padding: var(--spacing-xl);
10
10
  }
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, h as createElementBlock, g as openBlock, i as createVNode, w as withCtx, j as createBaseVNode, l as unref, m as N8nHeading, k as createTextVNode, t as toDisplayString, c as useI18n, p as N8nText, s as N8nCard, _ as _export_sfc } from "./index-DJu2gb_4.js";
1
+ import { d as defineComponent, h as createElementBlock, g as openBlock, i as createVNode, w as withCtx, j as createBaseVNode, l as unref, m as N8nHeading, k as createTextVNode, t as toDisplayString, c as useI18n, p as N8nText, s as N8nCard, _ as _export_sfc } from "./index-CxleUtlq.js";
2
2
  const _hoisted_1 = { class: "entity-un-authorized-view" };
3
3
  const _sfc_main = /* @__PURE__ */ defineComponent({
4
4
  __name: "EntityUnAuthorised",
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, b as useRouter, h as createElementBlock, g as openBlock, i as createVNode, j as createBaseVNode, n as normalizeClass, N as N8nIcon, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, c as useI18n, m as N8nHeading, e as createBlock, f as createCommentVNode, p as N8nText, q as N8nButton, V as VIEWS, _ as _export_sfc } from "./index-DJu2gb_4.js";
1
+ import { d as defineComponent, b as useRouter, h as createElementBlock, g as openBlock, i as createVNode, j as createBaseVNode, n as normalizeClass, N as N8nIcon, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, c as useI18n, m as N8nHeading, e as createBlock, f as createCommentVNode, p as N8nText, q as N8nButton, V as VIEWS, _ as _export_sfc } from "./index-CxleUtlq.js";
2
2
  const _sfc_main = /* @__PURE__ */ defineComponent({
3
3
  __name: "ErrorView",
4
4
  props: {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, T as useUIStore, e as createBlock, g as openBlock, dQ as N8nActionBox, l as unref, c as useI18n, eS as COMMUNITY_PLUS_ENROLLMENT_MODAL, h as createElementBlock, n as normalizeClass, N as N8nIcon, F as Fragment, k as createTextVNode, t as toDisplayString, _ as _export_sfc, i as createVNode, j as createBaseVNode, f as createCommentVNode, J as renderSlot, p as N8nText, w as withCtx, aw as N8nBadge, b as useRouter, a5 as useWorkflowsStore, fR as useEvaluationStore, eQ as useUsageStore, am as usePageRedirectionHelper, x as computed, r as ref, q as N8nButton, dk as N8nCallout, a1 as I18nT, a7 as PLACEHOLDER_EMPTY_WORKFLOW_ID, V as VIEWS, bK as useNodeTypesStore, a as useToast, bJ as useCanvasOperations, eN as useAsyncState, ab as watch, O as resolveComponent, a2 as N8nLink, aA as useTelemetry } from "./index-DJu2gb_4.js";
1
+ import { d as defineComponent, Z as useUIStore, e as createBlock, g as openBlock, dW as N8nActionBox, l as unref, c as useI18n, e_ as COMMUNITY_PLUS_ENROLLMENT_MODAL, h as createElementBlock, n as normalizeClass, N as N8nIcon, F as Fragment, k as createTextVNode, t as toDisplayString, _ as _export_sfc, i as createVNode, j as createBaseVNode, f as createCommentVNode, Q as renderSlot, p as N8nText, w as withCtx, aL as N8nBadge, b as useRouter, a9 as useWorkflowsStore, ag as useEvaluationStore, eY as useUsageStore, aB as usePageRedirectionHelper, x as computed, r as ref, q as N8nButton, z as N8nCallout, a6 as I18nT, ab as PLACEHOLDER_EMPTY_WORKFLOW_ID, V as VIEWS, ah as useNodeTypesStore, a as useToast, aj as useSourceControlStore, bU as useCanvasOperations, eV as useAsyncState, af as watch, T as resolveComponent, C as N8nLink, am as EVALUATIONS_DOCS_URL, ap as useTelemetry } from "./index-CxleUtlq.js";
2
2
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3
3
  __name: "EvaluationsPaywall",
4
4
  setup(__props) {
@@ -489,10 +489,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
489
489
  const telemetry = useTelemetry();
490
490
  const toast = useToast();
491
491
  const locale = useI18n();
492
+ const sourceControlStore = useSourceControlStore();
492
493
  const { initializeWorkspace } = useCanvasOperations();
493
494
  const evaluationsLicensed = computed(() => {
494
495
  return usageStore.workflowsWithEvaluationsLimit !== 0;
495
496
  });
497
+ const isProtectedEnvironment = computed(() => {
498
+ return sourceControlStore.preferences.branchReadOnly;
499
+ });
496
500
  const runs = computed(() => {
497
501
  return Object.values(evaluationStore.testRunsById ?? {}).filter(
498
502
  ({ workflowId }) => workflowId === props.name
@@ -599,18 +603,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
599
603
  createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.description")) + " ", 1),
600
604
  createVNode(unref(N8nLink), {
601
605
  size: "small",
602
- href: "https://docs.n8n.io/advanced-ai/evaluations/overview"
606
+ href: unref(EVALUATIONS_DOCS_URL)
603
607
  }, {
604
608
  default: withCtx(() => [
605
609
  createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.moreInfo")), 1)
606
610
  ]),
607
611
  _: 1
608
- })
612
+ }, 8, ["href"])
609
613
  ]),
610
614
  _: 1
611
615
  }, 8, ["class"])
612
616
  ]),
613
- createBaseVNode("div", {
617
+ isProtectedEnvironment.value ? (openBlock(), createBlock(unref(N8nCallout), {
618
+ key: 0,
619
+ theme: "info",
620
+ icon: "info"
621
+ }, {
622
+ default: withCtx(() => [
623
+ createTextVNode(toDisplayString(unref(locale).baseText("evaluations.readOnlyNotice")), 1)
624
+ ]),
625
+ _: 1
626
+ })) : (openBlock(), createElementBlock("div", {
627
+ key: 1,
614
628
  class: normalizeClass(_ctx.$style.config)
615
629
  }, [
616
630
  _cache[0] || (_cache[0] = createBaseVNode("iframe", {
@@ -628,7 +642,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
628
642
  key: 0,
629
643
  onRunTest: runTest
630
644
  })) : (openBlock(), createBlock(_sfc_main$4, { key: 1 }))
631
- ], 2)
645
+ ], 2))
632
646
  ], 2)) : unref(isReady) ? (openBlock(), createBlock(_component_router_view, { key: 1 })) : createCommentVNode("", true)
633
647
  ], 2);
634
648
  };
@@ -1,6 +1,6 @@
1
- import { fM as useCssVar, fJ as dateFormat, d as defineComponent, x as computed, fK as watchEffect, h as createElementBlock, g as openBlock, n as normalizeClass, j as createBaseVNode, i as createVNode, e0 as N8nSelect, w as withCtx, F as Fragment, y as renderList, e as createBlock, e1 as _sfc_main$4, l as unref, _ as _export_sfc, m as N8nHeading, k as createTextVNode, t as toDisplayString, c as useI18n, fN as TestTableBase, p as N8nText, N as N8nIcon, fO as statusDictionary, $ as N8nTooltip, a1 as I18nT, fP as getErrorBaseKey, bi as createSlots, e7 as mergeModels, b as useRouter, e8 as useModel, fQ as convertToDisplayDate, V as VIEWS, a as useToast, fR as useEvaluationStore, r as ref, eI as orderBy, ab as watch, q as N8nButton } from "./index-DJu2gb_4.js";
2
- import { L as Line } from "./index-BpQz0FGO.js";
3
- import { _ as __unplugin_components_1 } from "./AnimatedSpinner-D3ljAc96.js";
1
+ import { fV as useCssVar, fS as dateFormat, d as defineComponent, x as computed, fT as watchEffect, h as createElementBlock, g as openBlock, n as normalizeClass, j as createBaseVNode, i as createVNode, e6 as N8nSelect, w as withCtx, F as Fragment, A as renderList, e as createBlock, e7 as _sfc_main$4, l as unref, _ as _export_sfc, m as N8nHeading, k as createTextVNode, t as toDisplayString, c as useI18n, fW as TestTableBase, p as N8nText, N as N8nIcon, fX as statusDictionary, a4 as N8nTooltip, a6 as I18nT, fY as getErrorBaseKey, bt as createSlots, ed as mergeModels, b as useRouter, ee as useModel, fZ as convertToDisplayDate, V as VIEWS, a as useToast, ag as useEvaluationStore, r as ref, eQ as orderBy, af as watch, q as N8nButton } from "./index-CxleUtlq.js";
2
+ import { L as Line } from "./index-Cpz83ovC.js";
3
+ import { _ as __unplugin_components_1 } from "./AnimatedSpinner-6v6irDSW.js";
4
4
  function useMetricsChart() {
5
5
  const colors = {
6
6
  primary: useCssVar("--color-primary", document.body).value,
@@ -1,5 +1,5 @@
1
- import { d as defineComponent, x as computed, c as useI18n, h as createElementBlock, g as openBlock, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, p as N8nText, N as N8nIcon, j as createBaseVNode, n as normalizeClass, e as createBlock, a2 as N8nLink, l as unref, $ as N8nTooltip, _ as _export_sfc, v as useSettingsStore, S as useDebounce, am as usePageRedirectionHelper, r as ref, aq as EnterpriseEditionFeature, cZ as reactive, ab as watch, eR as i18n, fj as isEmpty, aU as onBeforeMount, O as resolveComponent, fk as _sfc_main$3, f as createCommentVNode, e0 as N8nSelect, F as Fragment, y as renderList, e1 as _sfc_main$4, av as _sfc_main$5, a1 as I18nT, cQ as N8nInput, bS as withModifiers, eO as N8nCheckbox, q as N8nButton, bi as createSlots, aw as N8nBadge, aA as useTelemetry, o as onMounted, I as onBeforeUnmount } from "./index-DJu2gb_4.js";
2
- import { _ as _sfc_main$6 } from "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BnwFrfgh.js";
1
+ import { d as defineComponent, x as computed, c as useI18n, h as createElementBlock, g as openBlock, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, p as N8nText, N as N8nIcon, j as createBaseVNode, n as normalizeClass, e as createBlock, C as N8nLink, l as unref, a4 as N8nTooltip, _ as _export_sfc, v as useSettingsStore, Y as useDebounce, aB as usePageRedirectionHelper, r as ref, aF as EnterpriseEditionFeature, d6 as reactive, af as watch, eZ as i18n, fs as isEmpty, b3 as onBeforeMount, T as resolveComponent, ft as _sfc_main$3, f as createCommentVNode, e6 as N8nSelect, F as Fragment, A as renderList, e7 as _sfc_main$4, aK as _sfc_main$5, a6 as I18nT, cZ as N8nInput, B as withModifiers, eW as N8nCheckbox, q as N8nButton, bt as createSlots, aL as N8nBadge, ap as useTelemetry, o as onMounted, P as onBeforeUnmount } from "./index-CxleUtlq.js";
2
+ import { _ as _sfc_main$6 } from "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-ozlwYXWj.js";
3
3
  const _hoisted_1$1 = { "data-test-id": "concurrent-executions-header" };
4
4
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
5
5
  __name: "ConcurrentExecutionsHeader",
@@ -1,11 +1,11 @@
1
- import { P as ProjectHeader } from "./ProjectHeader-C_V4cUfD.js";
2
- import { _ as _sfc_main$4, E as ExecutionsFilter, C as ConcurrentExecutionsHeader } from "./ExecutionsTime.vue_vue_type_script_setup_true_lang-dShXDoGB.js";
3
- import { d as defineComponent, e as createBlock, g as openBlock, $ as N8nTooltip, w as withCtx, J as renderSlot, f as createCommentVNode, l as unref, a1 as I18nT, i as createVNode, a2 as N8nLink, n as normalizeClass, k as createTextVNode, t as toDisplayString, c as useI18n, _ as _export_sfc, ac as useCssModule, dA as useExecutionHelpers, r as ref, x as computed, gf as WAIT_INDEFINITELY, fQ as convertToDisplayDate, O as resolveComponent, h as createElementBlock, j as createBaseVNode, eO as N8nCheckbox, V as VIEWS, N as N8nIcon, p as N8nText, F as Fragment, q as N8nButton, bS as withModifiers, a0 as _sfc_main$5, a5 as useWorkflowsStore, aQ as useExecutionsStore, v as useSettingsStore, am as usePageRedirectionHelper, a as useToast, aq as EnterpriseEditionFeature, ab as watch, as as useTemplateRef, gg as useIntersectionObserver, y as renderList, gh as ElSkeletonItem, aC as useMessage, aD as MODAL_CONFIRM, an as getResourcePermissions, dG as executionRetryMessage, aA as useTelemetry, a6 as useRoute, fY as useInsightsStore, aj as useDocumentTitle, el as storeToRefs, aU as onBeforeMount, bg as useExternalHooks, o as onMounted, I as onBeforeUnmount } from "./index-DJu2gb_4.js";
4
- import { _ as __unplugin_components_1 } from "./AnimatedSpinner-D3ljAc96.js";
5
- import { N as N8nTableBase } from "./TableBase-DIje27Wa.js";
6
- import { u as useProjectPages } from "./useProjectPages-CFEdc5ap.js";
7
- import { I as InsightsSummary } from "./InsightsSummary-DuEa77Gq.js";
8
- import "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BnwFrfgh.js";
1
+ import { P as ProjectHeader } from "./ProjectHeader-CIqf2gpl.js";
2
+ import { _ as _sfc_main$4, E as ExecutionsFilter, C as ConcurrentExecutionsHeader } from "./ExecutionsTime.vue_vue_type_script_setup_true_lang-DBWrBSV7.js";
3
+ import { d as defineComponent, e as createBlock, g as openBlock, a4 as N8nTooltip, w as withCtx, Q as renderSlot, f as createCommentVNode, l as unref, a6 as I18nT, i as createVNode, C as N8nLink, n as normalizeClass, k as createTextVNode, t as toDisplayString, c as useI18n, _ as _export_sfc, as as useCssModule, dG as useExecutionHelpers, r as ref, x as computed, gq as WAIT_INDEFINITELY, fZ as convertToDisplayDate, T as resolveComponent, h as createElementBlock, j as createBaseVNode, eW as N8nCheckbox, V as VIEWS, N as N8nIcon, p as N8nText, F as Fragment, q as N8nButton, B as withModifiers, a5 as _sfc_main$5, a9 as useWorkflowsStore, a$ as useExecutionsStore, v as useSettingsStore, aB as usePageRedirectionHelper, a as useToast, aF as EnterpriseEditionFeature, af as watch, aH as useTemplateRef, gr as useIntersectionObserver, A as renderList, gs as ElSkeletonItem, aq as useMessage, ar as MODAL_CONFIRM, aC as getResourcePermissions, dM as executionRetryMessage, ap as useTelemetry, aa as useRoute, g6 as useInsightsStore, ay as useDocumentTitle, er as storeToRefs, b3 as onBeforeMount, br as useExternalHooks, o as onMounted, P as onBeforeUnmount } from "./index-CxleUtlq.js";
4
+ import { _ as __unplugin_components_1 } from "./AnimatedSpinner-6v6irDSW.js";
5
+ import { N as N8nTableBase } from "./TableBase-Dg9jrpSs.js";
6
+ import { u as useProjectPages } from "./useProjectPages-BpsdwyKW.js";
7
+ import { I as InsightsSummary } from "./InsightsSummary-7514XMdb.js";
8
+ import "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-ozlwYXWj.js";
9
9
  const _sfc_main$3 = /* @__PURE__ */ defineComponent({
10
10
  __name: "GlobalExecutionsListItemQueuedTooltip",
11
11
  props: {