n8n-editor-ui 1.111.0 → 1.112.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 (133) hide show
  1. package/dist/assets/{AddDataStoreModal-D3j8deoq.css → AddDataStoreModal-B7jBhCjt.css} +5 -3
  2. package/dist/assets/{AddDataStoreModal-COmj3tI8.js → AddDataStoreModal-CLYFuWF4.js} +12 -7
  3. package/dist/assets/{AnimatedSpinner-BRe0Ugab.js → AnimatedSpinner-D7Nt5ZAz.js} +2 -1
  4. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BllZkKe3.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BzK1dfc7.js} +2 -1
  5. package/dist/assets/{AuthView-z58gFjsc.js → AuthView-Db8T18BU.js} +3 -2
  6. package/dist/assets/{ChangePasswordView-DUmtjPAx.js → ChangePasswordView-Clb7ta4t.js} +4 -3
  7. package/dist/assets/CollectionParameter-BGBoLgV2.js +5 -0
  8. package/dist/assets/{ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-4IRcAtjj.js → ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-BG5somV-.js} +2 -1
  9. package/dist/assets/{CredentialsView-Ie0l_odH.js → CredentialsView-CydHAPfb.js} +11 -9
  10. package/dist/assets/{DataStoreActions.vue_vue_type_script_setup_true_lang-d31tni9q.js → DataStoreActions.vue_vue_type_script_setup_true_lang-qftEof1u.js} +2 -2
  11. package/dist/assets/{DataStoreDetailsView-BPsHPucD.css → DataStoreDetailsView-C8fMxukz.css} +60 -39
  12. package/dist/assets/{DataStoreDetailsView-DLuRcsh-.js → DataStoreDetailsView-DZK3pYSP.js} +267 -102
  13. package/dist/assets/{DataStoreView-DmY3FIsv.js → DataStoreView-CT0OnFLR.js} +14 -29
  14. package/dist/assets/{DemoFooter-BQj55pTx.js → DemoFooter-DHwNRr6t.js} +7 -6
  15. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-NJbsTbk5.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-Y97PdUKW.js} +2 -1
  16. package/dist/assets/{EntityNotFound-B1VWHiBa.js → EntityNotFound-BDjIF_1D.js} +2 -1
  17. package/dist/assets/{EntityUnAuthorised-B0Yg7JWa.js → EntityUnAuthorised-Dz3DXm1-.js} +2 -1
  18. package/dist/assets/{ErrorView-aHqCD3ri.js → ErrorView-BH0St5KC.js} +2 -1
  19. package/dist/assets/{EvaluationsRootView-CoYRtuEz.js → EvaluationsRootView-CnJlr4OF.js} +2 -1
  20. package/dist/assets/{EvaluationsView-BC1UMOb0.js → EvaluationsView-DABp8z-m.js} +4 -3
  21. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-CMR49MM7.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-gCj_FZH6.js} +3 -2
  22. package/dist/assets/{ExecutionsView-C8r32amj.js → ExecutionsView-CivgrlFE.js} +14 -12
  23. package/dist/assets/{ExecutionsView-DpVZbkhT.css → ExecutionsView-GKNLT5Ec.css} +1 -1
  24. package/dist/assets/{FixedCollectionParameter-DTkvAml6.css → FixedCollectionParameter-Dg7ZadcB.css} +18 -18
  25. package/dist/assets/{FixedCollectionParameter-BzZrk2iw.js → FixedCollectionParameter-l8xC6wRw.js} +7 -3
  26. package/dist/assets/{ForgotMyPasswordView-CaXCwrIx.js → ForgotMyPasswordView-WF87QWAH.js} +4 -3
  27. package/dist/assets/{InfoAccordion-DUHSL9ZE.js → InfoAccordion-8iWJ2sSU.js} +2 -1
  28. package/dist/assets/{InsightsChartAverageRuntime-DFunYdc9.js → InsightsChartAverageRuntime-BEd6XJn6.js} +5 -4
  29. package/dist/assets/{InsightsChartFailed-0uRNHiAU.js → InsightsChartFailed-CVwzK3ch.js} +5 -4
  30. package/dist/assets/{InsightsChartFailureRate-BuiZokRI.js → InsightsChartFailureRate-BeA77_lp.js} +5 -4
  31. package/dist/assets/{InsightsChartTimeSaved-CK46Eo2R.js → InsightsChartTimeSaved-DkgR7j7U.js} +5 -4
  32. package/dist/assets/{InsightsChartTotal-ZhGp0D6c.js → InsightsChartTotal--1QxzvAZ.js} +5 -4
  33. package/dist/assets/{InsightsDashboard-DEJEg2jy.js → InsightsDashboard-cHCzH4ZY.js} +13 -11
  34. package/dist/assets/{InsightsPaywall-CEYbNF-U.js → InsightsPaywall-neQ9PmYP.js} +2 -1
  35. package/dist/assets/{InsightsSummary-D4c0lwdE.js → InsightsSummary-BekdjOxv.js} +4 -2
  36. package/dist/assets/{InsightsTableWorkflows-Cf2s_w2o.js → InsightsTableWorkflows-LMO-UU8h.js} +5 -4
  37. package/dist/assets/{Logo-DF7Ve1nG.js → Logo-DXNRuN8z.js} +2 -1
  38. package/dist/assets/{LogsPanel-Dz_R5wsR.js → LogsPanel-2GQHQFmh.js} +36 -22
  39. package/dist/assets/{LogsPanel-BinqqXXh.css → LogsPanel-CUsQIBpC.css} +17 -17
  40. package/dist/assets/{MainHeader-DBWR1wTC.js → MainHeader-BlBek00C.js} +12 -10
  41. package/dist/assets/{MainSidebar-3_9O8-rJ.js → MainSidebar-qdHg8D5V.js} +3 -2
  42. package/dist/assets/{NodeCreation-Dtlm36Oq.js → NodeCreation-DO5k3aK3.js} +4 -3
  43. package/dist/assets/{NodeCreator-DUoi7nAW.js → NodeCreator-C3Pmrqkh.js} +2 -1
  44. package/dist/assets/{NodeDetailsView-Di4Qgo0H.js → NodeDetailsView-BACft9ex.js} +18 -17
  45. package/dist/assets/{NodeDetailsView-CjdovDgq.css → NodeDetailsView-CBYV4Rrz.css} +11 -11
  46. package/dist/assets/{NodeDetailsViewV2-DeY6N1Bz.js → NodeDetailsViewV2--1S2eK5u.js} +14 -13
  47. package/dist/assets/{NodeView-DsbJeAY_.js → NodeView-BRwQ5Cqs.js} +113 -99
  48. package/dist/assets/{NodeView-DMJpfBYR.css → NodeView-Chs2u0U9.css} +28 -25
  49. package/dist/assets/{PageViewLayout-DC6xqvMl.js → PageViewLayout-DldtilHz.js} +2 -1
  50. package/dist/assets/{PrebuiltAgentTemplatesView-Bf_4L0Mz.js → PrebuiltAgentTemplatesView-ChyN8J2x.js} +3 -2
  51. package/dist/assets/{ProjectBreadcrumb-OJlbtg71.js → ProjectBreadcrumb-9uWmVmc7.js} +2 -1
  52. package/dist/assets/{ProjectHeader-CuQxn8hj.js → ProjectHeader-CWapIKXf.js} +93 -23
  53. package/dist/assets/{ProjectSettings-CyyS1dIR.js → ProjectSettings-BlYXGYRx.js} +5 -3
  54. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DbrwK8IB.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DjpouOrH.js} +2 -1
  55. package/dist/assets/{ResourcesListLayout-i7do2ZBR.js → ResourcesListLayout-CfDIFGjS.js} +5 -4
  56. package/dist/assets/{RunDataJson-DRtbtIz3.js → RunDataJson-CTm3-xdY.js} +4 -3
  57. package/dist/assets/{RunDataJsonActions-7l2QvE2z.js → RunDataJsonActions-B_yBOGYB.js} +2 -1
  58. package/dist/assets/{RunDataParsedAiContent-CD12A0kN.js → RunDataParsedAiContent-Cg9vUI0v.js} +3 -2
  59. package/dist/assets/{RunDataSearch-LNeMq9j6.js → RunDataSearch-DPt2MvbI.js} +2 -1
  60. package/dist/assets/{RunDataTable-DcKBX4aO.js → RunDataTable-DHVRSqQT.js} +2 -1
  61. package/dist/assets/{SamlOnboarding-i5e6HuF6.js → SamlOnboarding-CN_xGqen.js} +4 -3
  62. package/dist/assets/{SelectedItemsInfo-CfUb0ZrI.css → SelectedItemsInfo-Dl4uynXs.css} +5 -3
  63. package/dist/assets/{SelectedItemsInfo-C55zD1dl.js → SelectedItemsInfo-DzoCyQOW.js} +12 -7
  64. package/dist/assets/{SettingsApiView-C3ju5H4H.js → SettingsApiView-BIKCRKGM.js} +2 -1
  65. package/dist/assets/{SettingsCommunityNodesView-i_vIhGwd.js → SettingsCommunityNodesView-ClWYmDB8.js} +7 -4
  66. package/dist/assets/{SettingsExternalSecrets-ChCiOX-n.js → SettingsExternalSecrets-D58JxT3V.js} +2 -1
  67. package/dist/assets/{SettingsLdapView-2QEfpHy6.js → SettingsLdapView-uImCjvMm.js} +2 -1
  68. package/dist/assets/{SettingsLogStreamingView-BORk25bO.js → SettingsLogStreamingView-DUn62Yq4.js} +2 -1
  69. package/dist/assets/{SettingsPersonalView-Yl43xiM_.js → SettingsPersonalView-DGiCMsXu.js} +2 -1
  70. package/dist/assets/{SettingsSourceControl-BpcJX-rJ.js → SettingsSourceControl-CVik5czR.js} +2 -1
  71. package/dist/assets/{SettingsSso-BugeRCyt.js → SettingsSso-BQkWpsdO.js} +2 -1
  72. package/dist/assets/{SettingsUsageAndPlan-Dt6g-FQw.js → SettingsUsageAndPlan-BuwgmEka.js} +2 -1
  73. package/dist/assets/{SettingsUsersView-BhBuZop9.js → SettingsUsersView-DCmtHeMa.js} +2 -1
  74. package/dist/assets/{SettingsView-Cx0SMMrn.js → SettingsView-CrBThv_a.js} +2 -1
  75. package/dist/assets/{SetupView-CUJOHrm2.js → SetupView-CES8Gnnv.js} +4 -3
  76. package/dist/assets/{SetupWorkflowCredentialsButton-D6h_IgTa.js → SetupWorkflowCredentialsButton-Bjhx_rck.js} +2 -1
  77. package/dist/assets/{SetupWorkflowFromTemplateView-_ReKyIk1.js → SetupWorkflowFromTemplateView-C8kmCc7J.js} +4 -3
  78. package/dist/assets/{SigninView--fAZZd3A.js → SigninView-24xKsh_S.js} +4 -3
  79. package/dist/assets/{SignoutView-DXoOH9BS.js → SignoutView-DgFIUUyh.js} +2 -1
  80. package/dist/assets/{SignupView-d0cK_S0B.js → SignupView-BckB-uUh.js} +4 -3
  81. package/dist/assets/{TableBase-D5vBzOrx.js → TableBase-CQEzJfeN.js} +2 -1
  82. package/dist/assets/{Tags-CZdua1l_.js → Tags-DbX-5_Fk.js} +2 -2
  83. package/dist/assets/{TemplateDetails-ccSWABeF.js → TemplateDetails-BGraOFbY.js} +3 -2
  84. package/dist/assets/{TemplateList-BKUKBRua.js → TemplateList-5P1N08U1.js} +2 -1
  85. package/dist/assets/{TemplatesCollectionView-BTyYNxNc.js → TemplatesCollectionView-D2-SU0eR.js} +7 -7
  86. package/dist/assets/{TemplatesSearchView-BYM3HbbU.js → TemplatesSearchView-ncBXTfOM.js} +4 -3
  87. package/dist/assets/{TemplatesView-CrH_O4he.js → TemplatesView-DO7HuUts.js} +2 -1
  88. package/dist/assets/{TemplatesWorkflowView-Dg3REjWI.js → TemplatesWorkflowView-BvrjU4RD.js} +7 -7
  89. package/dist/assets/{TriggerPanel-dDX4Bzu7.js → TriggerPanel-BFQ6veDz.js} +10 -8
  90. package/dist/assets/{VariablesView-DQw3gYG7.js → VariablesView-BVzruwEA.js} +7 -6
  91. package/dist/assets/{WorkerView-DIs4RXZZ.js → WorkerView-DRM6mgWJ.js} +9 -6
  92. package/dist/assets/{WorkflowActivator-z_Ef2Dd7.js → WorkflowActivator-BOt1oNlm.js} +4 -3
  93. package/dist/assets/{WorkflowExecutionsInfoAccordion-ptRuD88E.js → WorkflowExecutionsInfoAccordion-BjZUTKcs.js} +3 -2
  94. package/dist/assets/{WorkflowExecutionsLandingPage-C-RDf8Mu.js → WorkflowExecutionsLandingPage-ENKxL7Yh.js} +4 -3
  95. package/dist/assets/{WorkflowExecutionsPreview-Bk449wx1.js → WorkflowExecutionsPreview-Cdgg29u5.js} +5 -4
  96. package/dist/assets/{WorkflowExecutionsView-Dp0exxTM.js → WorkflowExecutionsView-t3W7WuAy.js} +9 -9
  97. package/dist/assets/{WorkflowHistory-D8zH1o6c.js → WorkflowHistory--OLvuBs1.js} +3 -2
  98. package/dist/assets/{WorkflowOnboardingView-8OmgIoUc.js → WorkflowOnboardingView-C8y96ur1.js} +2 -1
  99. package/dist/assets/{WorkflowPreview-jOuoMEkv.js → WorkflowPreview-C1XHoZmU.js} +2 -1
  100. package/dist/assets/{WorkflowsView-B9MpreL6.js → WorkflowsView-B9rxI0No.js} +272 -62
  101. package/dist/assets/{WorkflowsView-BuvoAeDm.css → WorkflowsView-MF9XcT0u.css} +186 -0
  102. package/dist/assets/{canvas-k8kjfgjE.js → canvas-D2PwiGnN.js} +1 -1
  103. package/dist/assets/{chartjs.utils-BXNxmkto.js → chartjs.utils-B6sz8yOh.js} +2 -2
  104. package/dist/assets/{core-e2mfCMV8.js → core-Be7WBA6o.js} +2 -1
  105. package/dist/assets/{en-C3wg5zl_.js → en-CJyn5rnO.js} +26 -20
  106. package/dist/assets/{global-link-actions-CR3odK4e.js → global-link-actions-B9WsUojd.js} +1 -1
  107. package/dist/assets/index-4g2Akj0I.js +13861 -0
  108. package/dist/assets/{index-DnpNicM9.css → index-B7wrqKiF.css} +8081 -8069
  109. package/dist/assets/{index-DuLlH1tF.js → index-BJG79OsS.js} +326896 -342404
  110. package/dist/assets/{index-DuaZRDhZ.js → index-LOlKxvn4.js} +2 -1
  111. package/dist/assets/loadDefaultEn-DNiURDi9.js +8 -0
  112. package/dist/assets/{pickBy-sB8d3BKD.js → pickBy-BMn768eW.js} +1 -1
  113. package/dist/assets/{readyToRunWorkflows.store-SxwN_l4P.js → readyToRunWorkflows.store-HSpbq3Bf.js} +2 -1
  114. package/dist/assets/readyToRunWorkflowsV2.store-DcRVIsRt.js +138 -0
  115. package/dist/assets/sqlite3-DBpDb1lf.wasm +0 -0
  116. package/dist/assets/sqlite3-opfs-async-proxy-CYRFPDln.js +579 -0
  117. package/dist/assets/sqlite3-worker1-bundler-friendly-DF3WqBKq.js +11289 -0
  118. package/dist/assets/{templateActions-BUeOwdy0.js → templateActions-DR_XHPc4.js} +1 -1
  119. package/dist/assets/{useBeforeUnload-DpCu12iW.js → useBeforeUnload-DmAaB1v5.js} +2 -1
  120. package/dist/assets/{useExecutionDebugging-XRtGhlAr.js → useExecutionDebugging-B8xDxcb6.js} +2 -1
  121. package/dist/assets/{useImportCurlCommand-DJJ0VEAg.js → useImportCurlCommand-BaN8fxqM.js} +2 -1
  122. package/dist/assets/{useProjectPages-DrMZX3ez.js → useProjectPages-B-oTYbCo.js} +2 -1
  123. package/dist/assets/{usePushConnection-CPQe3uqU.js → usePushConnection-Bcd2_XWM.js} +36 -22
  124. package/dist/assets/{useWorkflowActivate-RFJxTj5m.js → useWorkflowActivate-BDE2t3MM.js} +2 -1
  125. package/dist/assets/worker-DZxlyUFA.js +11826 -0
  126. package/dist/index.html +3 -2
  127. package/package.json +1 -1
  128. package/vite/i18n-locales-hmr-helpers.ts +19 -0
  129. package/vite.config.mts +25 -1
  130. package/dist/assets/CollectionParameter--MG-Jsbv.js +0 -4
  131. package/dist/assets/Tag-CGAmDPzS.js +0 -32
  132. package/dist/assets/Tag-Cg-Hqs2H.css +0 -153
  133. package/dist/assets/dataStore.store-vaNG0oX7.js +0 -291
@@ -1,8 +1,8 @@
1
- import { d as defineComponent, aG as useTemplateRef, b as useRouter, a as useToast, r as ref, x as computed, c as useI18n, a7 as watch, h as createElementBlock, g as openBlock, n as normalizeClass, i as createVNode, j as createBaseVNode, w as withCtx, t as toDisplayString, aH as InlineRename, l as unref, e as createBlock, f as createCommentVNode, gm as PROJECT_DATA_STORES, Y as nextTick, f4 as telemetry, _ as _export_sfc, eh as mergeModels, c1 as toRefs, ei as useModel, o as onMounted, eB as getCurrentInstance, gK as markRaw, c7 as onUnmounted, gL as mergeDefaults, eY as toRaw, gM as render, c0 as isRef, gN as isReactive, fY as isProxy, b2 as withDirectives, N as N8nIcon, b3 as vShow, aM as N8nActionDropdown, bd as DateTime, a8 as resolveComponent, ap as normalizeStyle, P as useDebounce, y as N8nPopoverReka, e7 as N8nInputLabel, c$ as N8nInput, b8 as withKeys, gO as MAX_COLUMN_NAME_LENGTH, p as N8nText, k as createTextVNode, a9 as Tooltip, ea as N8nSelect, F as Fragment, A as renderList, eb as _sfc_main$9, q as N8nButton, aa as _sfc_main$a, gP as COLUMN_NAME_REGEX, gQ as ADD_ROW_ROW_ID, gR as NULL_VALUE, gS as EMPTY_VALUE, ca as useClipboard, bq as onClickOutside, gT as DEFAULT_ID_COLUMN_NAME, eU as orderBy, gU as DATA_STORE_ID_COLUMN_WIDTH, am as useMessage, an as MODAL_CONFIRM, al as useTelemetry, gV as DATA_STORE_HEADER_HEIGHT, gW as DATA_STORE_ROW_HEIGHT, ax as useDocumentTitle, gX as MIN_LOADING_TIME, dM as N8nLoading, dL as _sfc_main$b, gY as DATA_STORE_VIEW } from "./index-DuLlH1tF.js";
2
- import { u as useDataStoreStore, r as reorderItem } from "./dataStore.store-vaNG0oX7.js";
3
- import { B as Breadcrumbs, _ as __unplugin_components_0 } from "./ProjectBreadcrumb-OJlbtg71.js";
4
- import { _ as _sfc_main$8 } from "./DataStoreActions.vue_vue_type_script_setup_true_lang-d31tni9q.js";
5
- import { S as SelectedItemsInfo } from "./SelectedItemsInfo-C55zD1dl.js";
1
+ import { fK as useDataStoreStore, b as useRouter, a as useToast, ah as InlineRename, fq as PROJECT_DATA_STORES, eb as telemetry, _ as _export_sfc, fO as render, fP as ResponseError, N as N8nIcon, az as vShow, am as N8nActionDropdown, fQ as LOOSE_DATE_REGEX, r as useDebounce, h as N8nPopoverReka, di as N8nInputLabel, cj as N8nInput, aE as withKeys, fR as MAX_COLUMN_NAME_LENGTH, d as N8nText, H as Tooltip, dl as N8nSelect, dm as _sfc_main$9, e as N8nButton, I as _sfc_main$a, fS as COLUMN_NAME_REGEX, fT as ADD_ROW_ROW_ID, fU as NULL_VALUE, fV as EMPTY_VALUE, aJ as DateTime, fW as NUMBER_WITH_SPACES_REGEX, fX as NUMBER_THOUSAND_SEPARATOR, fY as NUMBER_DECIMAL_SEPARATOR, bv as useClipboard, aW as onClickOutside, fZ as DEFAULT_ID_COLUMN_NAME, f_ as reorderItem, f$ as DEFAULT_COLUMN_WIDTH, e1 as orderBy, g0 as DATA_STORE_ID_COLUMN_WIDTH, Z as useMessage, $ as MODAL_CONFIRM, Y as useTelemetry, g1 as DATA_STORE_HEADER_HEIGHT, g2 as DATA_STORE_ROW_HEIGHT, a8 as useDocumentTitle, g3 as MIN_LOADING_TIME, cZ as N8nLoading, cY as _sfc_main$b, g4 as DATA_STORE_VIEW } from "./index-BJG79OsS.js";
2
+ import { o as defineComponent, bB as useTemplateRef, b8 as ref, a9 as computed, bT as useI18n, w as watch, ac as createElementBlock, b1 as openBlock, aQ as normalizeClass, k as createVNode, ad as createBaseVNode, bI as withCtx, bo as toDisplayString, u as unref, aa as createBlock, ab as createCommentVNode, n as nextTick, aO as mergeModels, bs as toRefs, by as useModel, r as onMounted, g as getCurrentInstance, aM as markRaw, s as onUnmounted, aN as mergeDefaults, Q as toRaw, aI as isRef, aG as isReactive, aF as isProxy, bK as withDirectives, bc as resolveComponent, aS as normalizeStyle, ah as createTextVNode, F as Fragment, ba as renderList } from "./index-4g2Akj0I.js";
3
+ import { B as Breadcrumbs, _ as __unplugin_components_0 } from "./ProjectBreadcrumb-9uWmVmc7.js";
4
+ import { _ as _sfc_main$8 } from "./DataStoreActions.vue_vue_type_script_setup_true_lang-qftEof1u.js";
5
+ import { S as SelectedItemsInfo } from "./SelectedItemsInfo-DzoCyQOW.js";
6
6
  const BREADCRUMBS_SEPARATOR = "/";
7
7
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
8
8
  __name: "DataStoreBreadcrumbs",
@@ -130,12 +130,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
130
130
  };
131
131
  }
132
132
  });
133
- const separator = "_separator_12h50_132";
133
+ const separator = "_separator_1n6ua_133";
134
134
  const style0$2 = {
135
- "data-store-breadcrumbs": "_data-store-breadcrumbs_12h50_123",
136
- "data-store-actions": "_data-store-actions_12h50_128",
135
+ "data-store-breadcrumbs": "_data-store-breadcrumbs_1n6ua_123",
136
+ "data-store-actions": "_data-store-actions_1n6ua_128",
137
137
  separator,
138
- "breadcrumb-current": "_breadcrumb-current_12h50_138"
138
+ "breadcrumb-current": "_breadcrumb-current_1n6ua_139"
139
139
  };
140
140
  const cssModules$2 = {
141
141
  "$style": style0$2
@@ -41458,11 +41458,20 @@ const useDataStorePagination = (options = {}) => {
41458
41458
  ensureItemOnPage
41459
41459
  };
41460
41460
  };
41461
+ const DATA_STORE_COLUMN_TYPES = ["string", "number", "boolean", "date"];
41462
+ const AG_GRID_CELL_TYPES = [
41463
+ "text",
41464
+ "number",
41465
+ "boolean",
41466
+ "date",
41467
+ "dateString",
41468
+ "object"
41469
+ ];
41461
41470
  const isDataStoreValue = (value) => {
41462
41471
  return value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean" || value instanceof Date;
41463
41472
  };
41464
41473
  const isAGGridCellType = (value) => {
41465
- return typeof value === "string" && ["text", "number", "boolean", "date", "dateString", "object"].includes(value);
41474
+ return typeof value === "string" && AG_GRID_CELL_TYPES.includes(value);
41466
41475
  };
41467
41476
  const COLUMN_TYPE_ICONS = {
41468
41477
  string: "type",
@@ -41472,6 +41481,7 @@ const COLUMN_TYPE_ICONS = {
41472
41481
  };
41473
41482
  const useDataStoreTypes = () => {
41474
41483
  const getIconForType = (type) => COLUMN_TYPE_ICONS[type];
41484
+ const i18n = useI18n();
41475
41485
  const mapToAGCellType = (colType) => {
41476
41486
  if (colType === "string") {
41477
41487
  return "text";
@@ -41501,14 +41511,35 @@ const useDataStoreTypes = () => {
41501
41511
  return null;
41502
41512
  }
41503
41513
  };
41514
+ const getAddColumnError = (error) => {
41515
+ const DEFAULT_HTTP_STATUS = 500;
41516
+ const DEFAULT_MESSAGE = i18n.baseText("generic.unknownError");
41517
+ if (error instanceof ResponseError) {
41518
+ return {
41519
+ httpStatus: error.httpStatusCode ?? 500,
41520
+ message: error.message
41521
+ };
41522
+ }
41523
+ if (error instanceof Error) {
41524
+ return {
41525
+ httpStatus: DEFAULT_HTTP_STATUS,
41526
+ message: error.message
41527
+ };
41528
+ }
41529
+ return {
41530
+ httpStatus: DEFAULT_HTTP_STATUS,
41531
+ message: DEFAULT_MESSAGE
41532
+ };
41533
+ };
41504
41534
  return {
41505
41535
  getIconForType,
41506
41536
  mapToAGCellType,
41507
41537
  mapToDataStoreColumnType,
41508
- getDefaultValueForType
41538
+ getDefaultValueForType,
41539
+ getAddColumnError
41509
41540
  };
41510
41541
  };
41511
- const _hoisted_1$4 = { class: "data-store-column-header-icon-wrapper" };
41542
+ const _hoisted_1$3 = { class: "data-store-column-header-icon-wrapper" };
41512
41543
  const _hoisted_2$2 = {
41513
41544
  class: "ag-header-cell-text",
41514
41545
  "data-test-id": "data-store-column-header-text"
@@ -41595,7 +41626,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
41595
41626
  onMouseleave: onMouseLeave,
41596
41627
  onClick: onHeaderClick
41597
41628
  }, [
41598
- createBaseVNode("div", _hoisted_1$4, [
41629
+ createBaseVNode("div", _hoisted_1$3, [
41599
41630
  typeIcon.value ? (openBlock(), createBlock(_component_N8nIcon, {
41600
41631
  key: 0,
41601
41632
  icon: typeIcon.value
@@ -41629,7 +41660,30 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
41629
41660
  };
41630
41661
  }
41631
41662
  });
41632
- const _hoisted_1$3 = { class: "datastore-datepicker-wrapper" };
41663
+ const parseLooseDateInput = (text) => {
41664
+ const trimmed = text.trim();
41665
+ const m = LOOSE_DATE_REGEX.exec(trimmed);
41666
+ if (!m) return null;
41667
+ const y = Number(m[1]);
41668
+ const mo = Number(m[2]);
41669
+ const d = Number(m[3]);
41670
+ const hh = m[4] !== void 0 ? Number(m[4]) : 0;
41671
+ const mm = m[5] !== void 0 ? Number(m[5]) : 0;
41672
+ const ss = m[6] !== void 0 ? Number(m[6]) : 0;
41673
+ const dt = new Date(y, mo - 1, d, hh, mm, ss, 0);
41674
+ if (dt.getFullYear() !== y || dt.getMonth() !== mo - 1 || dt.getDate() !== d || dt.getHours() !== hh || dt.getMinutes() !== mm || dt.getSeconds() !== ss) {
41675
+ return null;
41676
+ }
41677
+ return dt;
41678
+ };
41679
+ const areValuesEqual = (oldValue, newValue, type) => {
41680
+ if (type && type === "date") {
41681
+ if (oldValue instanceof Date && newValue instanceof Date) {
41682
+ return oldValue.getTime() === newValue.getTime();
41683
+ }
41684
+ }
41685
+ return oldValue === newValue;
41686
+ };
41633
41687
  const _sfc_main$5 = /* @__PURE__ */ defineComponent({
41634
41688
  __name: "ElDatePickerCellEditor",
41635
41689
  props: {
@@ -41637,17 +41691,53 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
41637
41691
  },
41638
41692
  setup(__props, { expose: __expose }) {
41639
41693
  const props = __props;
41640
- const pickerRef = ref(null);
41694
+ const pickerRef = useTemplateRef("pickerRef");
41695
+ const wrapperRef = useTemplateRef("wrapperRef");
41641
41696
  const dateValue = ref(null);
41642
41697
  const initialValue = ref(null);
41643
41698
  const inputWidth = ref(props.params.column.getActualWidth() - 4);
41699
+ function commitIfParsedFromInput(target) {
41700
+ const input = target instanceof HTMLInputElement ? target : null;
41701
+ const value = input?.value ?? "";
41702
+ const parsed = parseLooseDateInput(value);
41703
+ if (parsed) {
41704
+ dateValue.value = parsed;
41705
+ props.params.stopEditing();
41706
+ return true;
41707
+ }
41708
+ return false;
41709
+ }
41710
+ function onKeydown(e) {
41711
+ if (e.key === "Escape") {
41712
+ e.stopPropagation();
41713
+ dateValue.value = initialValue.value;
41714
+ props.params.stopEditing();
41715
+ return;
41716
+ }
41717
+ if (e.key === "Enter") {
41718
+ const committed = commitIfParsedFromInput(e.target);
41719
+ if (committed) {
41720
+ e.preventDefault();
41721
+ e.stopPropagation();
41722
+ }
41723
+ }
41724
+ }
41725
+ function getInnerInput() {
41726
+ return wrapperRef.value?.querySelector("input") ?? null;
41727
+ }
41728
+ function onChange() {
41729
+ props.params.stopEditing();
41730
+ }
41731
+ function onClear() {
41732
+ dateValue.value = null;
41733
+ props.params.stopEditing();
41734
+ }
41644
41735
  onMounted(async () => {
41645
41736
  const initial = props.params.value;
41646
41737
  if (initial === null || initial === void 0) {
41647
41738
  dateValue.value = null;
41648
41739
  } else if (initial instanceof Date) {
41649
- const dt = DateTime.fromJSDate(initial);
41650
- dateValue.value = dt.minus({ minutes: dt.offset }).toJSDate();
41740
+ dateValue.value = initial;
41651
41741
  }
41652
41742
  initialValue.value = dateValue.value;
41653
41743
  await nextTick();
@@ -41656,35 +41746,25 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
41656
41746
  } catch {
41657
41747
  }
41658
41748
  });
41659
- function onChange() {
41660
- props.params.stopEditing();
41661
- }
41662
- function onClear() {
41663
- dateValue.value = null;
41664
- props.params.stopEditing();
41665
- }
41666
- function onKeydown(e) {
41667
- if (e.key === "Escape") {
41668
- e.stopPropagation();
41669
- dateValue.value = initialValue.value;
41670
- props.params.stopEditing();
41671
- } else if (e.key === "Enter") {
41672
- e.stopPropagation();
41673
- props.params.stopEditing();
41674
- }
41675
- }
41676
41749
  __expose({
41677
41750
  getValue: () => {
41678
- if (dateValue.value === null) return null;
41679
- const dt = DateTime.fromJSDate(dateValue.value);
41680
- return dt.plus({ minutes: dt.offset }).toJSDate();
41751
+ const input = getInnerInput();
41752
+ const typed = input?.value ?? "";
41753
+ const parsed = parseLooseDateInput(typed);
41754
+ if (parsed) return parsed;
41755
+ return dateValue.value;
41681
41756
  },
41682
41757
  isPopup: () => true
41683
41758
  });
41684
41759
  return (_ctx, _cache) => {
41685
41760
  const _component_el_date_picker = resolveComponent("el-date-picker");
41686
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
41761
+ return openBlock(), createElementBlock("div", {
41762
+ ref_key: "wrapperRef",
41763
+ ref: wrapperRef,
41764
+ class: "datastore-datepicker-wrapper"
41765
+ }, [
41687
41766
  createVNode(_component_el_date_picker, {
41767
+ id: "datastore-datepicker",
41688
41768
  ref_key: "pickerRef",
41689
41769
  ref: pickerRef,
41690
41770
  modelValue: dateValue.value,
@@ -41692,19 +41772,24 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
41692
41772
  type: "datetime",
41693
41773
  style: normalizeStyle({ width: `${inputWidth.value}px` }),
41694
41774
  clearable: true,
41695
- editable: false,
41775
+ editable: true,
41696
41776
  teleported: false,
41697
- placeholder: "",
41777
+ "popper-class": "ag-custom-component-popup datastore-datepicker-popper",
41778
+ placeholder: "YYYY-MM-DD (HH:mm:ss)",
41779
+ size: "small",
41698
41780
  onChange,
41699
41781
  onClear,
41700
41782
  onKeydown
41701
41783
  }, null, 8, ["modelValue", "style"])
41702
- ]);
41784
+ ], 512);
41703
41785
  };
41704
41786
  }
41705
41787
  });
41706
41788
  const _hoisted_1$2 = { class: "add-column-header-component-wrapper" };
41707
- const _hoisted_2$1 = { class: "add-ds-column-header-popover-content" };
41789
+ const _hoisted_2$1 = {
41790
+ class: "add-ds-column-header-popover-content",
41791
+ "data-test-id": "add-column-popover-content"
41792
+ };
41708
41793
  const _hoisted_3 = { class: "popover-body" };
41709
41794
  const _hoisted_4 = {
41710
41795
  key: 0,
@@ -41726,21 +41811,39 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
41726
41811
  const nameInputRef = ref(null);
41727
41812
  const columnName = ref("");
41728
41813
  const columnType = ref("string");
41729
- const columnTypes = ["string", "number", "boolean", "date"];
41814
+ const columnTypes = [...DATA_STORE_COLUMN_TYPES];
41730
41815
  const error = ref(null);
41731
41816
  const popoverOpen = ref(false);
41732
41817
  const isSelectOpen = ref(false);
41733
41818
  const popoverId = computed(() => props.popoverId ?? "add-column-popover");
41819
+ const columnTypeOptions = computed(() => {
41820
+ return columnTypes.map((type) => ({
41821
+ label: type === "date" ? "datetime" : type,
41822
+ value: type
41823
+ }));
41824
+ });
41734
41825
  const onAddButtonClicked = async () => {
41735
41826
  validateName();
41736
41827
  if (!columnName.value || !columnType.value || error.value) {
41737
41828
  return;
41738
41829
  }
41739
- const success = await props.params.onAddColumn({
41830
+ const response = await props.params.onAddColumn({
41740
41831
  name: columnName.value,
41741
41832
  type: columnType.value
41742
41833
  });
41743
- if (!success) {
41834
+ if (!response.success) {
41835
+ let errorMessage = i18n.baseText("dataStore.addColumn.error");
41836
+ let errorDescription = response.errorMessage;
41837
+ if (response.httpStatus === 409) {
41838
+ errorMessage = i18n.baseText("dataStore.addColumn.alreadyExistsError", {
41839
+ interpolate: { name: columnName.value }
41840
+ });
41841
+ errorDescription = i18n.baseText("dataStore.addColumn.alreadyExistsDescription");
41842
+ }
41843
+ error.value = {
41844
+ message: errorMessage,
41845
+ description: errorDescription
41846
+ };
41744
41847
  return;
41745
41848
  }
41746
41849
  columnName.value = "";
@@ -41763,7 +41866,10 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
41763
41866
  error.value = null;
41764
41867
  }
41765
41868
  if (columnName.value && !COLUMN_NAME_REGEX.test(columnName.value)) {
41766
- error.value = i18n.baseText("dataStore.addColumn.invalidName.error");
41869
+ error.value = {
41870
+ message: i18n.baseText("dataStore.addColumn.invalidName.error"),
41871
+ description: i18n.baseText("dataStore.addColumn.invalidName.description")
41872
+ };
41767
41873
  }
41768
41874
  };
41769
41875
  const onInput = debounce(validateName, { debounceTime: 100 });
@@ -41830,18 +41936,21 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
41830
41936
  onInput: unref(onInput)
41831
41937
  }, null, 8, ["modelValue", "placeholder", "maxlength", "onInput"]),
41832
41938
  error.value ? (openBlock(), createElementBlock("div", _hoisted_4, [
41833
- createVNode(_component_n8n_text, {
41939
+ error.value.message ? (openBlock(), createBlock(_component_n8n_text, {
41940
+ key: 0,
41834
41941
  size: "small",
41835
41942
  color: "danger",
41836
41943
  tag: "span"
41837
41944
  }, {
41838
41945
  default: withCtx(() => [
41839
- createTextVNode(toDisplayString(error.value), 1)
41946
+ createTextVNode(toDisplayString(error.value.message), 1)
41840
41947
  ]),
41841
41948
  _: 1
41842
- }),
41949
+ })) : createCommentVNode("", true),
41843
41950
  createVNode(Tooltip, {
41844
- content: unref(i18n).baseText("dataStore.addColumn.invalidName.description")
41951
+ content: error.value.description,
41952
+ placement: "top",
41953
+ disabled: !error.value.description
41845
41954
  }, {
41846
41955
  default: withCtx(() => [
41847
41956
  createVNode(_component_N8nIcon, {
@@ -41853,7 +41962,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
41853
41962
  })
41854
41963
  ]),
41855
41964
  _: 1
41856
- }, 8, ["content"])
41965
+ }, 8, ["content", "disabled"])
41857
41966
  ])) : createCommentVNode("", true)
41858
41967
  ]),
41859
41968
  _: 1
@@ -41871,27 +41980,28 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
41871
41980
  onVisibleChange: _cache[2] || (_cache[2] = ($event) => isSelectOpen.value = $event)
41872
41981
  }, {
41873
41982
  default: withCtx(() => [
41874
- (openBlock(), createElementBlock(Fragment, null, renderList(columnTypes, (type) => {
41875
- return createVNode(_component_N8nOption, {
41876
- key: type,
41877
- value: type
41983
+ (openBlock(true), createElementBlock(Fragment, null, renderList(columnTypeOptions.value, (option) => {
41984
+ return openBlock(), createBlock(_component_N8nOption, {
41985
+ key: option.value,
41986
+ label: option.label,
41987
+ value: option.value
41878
41988
  }, {
41879
41989
  default: withCtx(() => [
41880
41990
  createBaseVNode("div", _hoisted_5, [
41881
41991
  createVNode(_component_N8nIcon, {
41882
- icon: unref(getIconForType)(type)
41992
+ icon: unref(getIconForType)(option.value)
41883
41993
  }, null, 8, ["icon"]),
41884
41994
  createVNode(_component_N8nText, null, {
41885
41995
  default: withCtx(() => [
41886
- createTextVNode(toDisplayString(type), 1)
41996
+ createTextVNode(toDisplayString(option.label), 1)
41887
41997
  ]),
41888
41998
  _: 2
41889
41999
  }, 1024)
41890
42000
  ])
41891
42001
  ]),
41892
42002
  _: 2
41893
- }, 1032, ["value"]);
41894
- }), 64))
42003
+ }, 1032, ["label", "value"]);
42004
+ }), 128))
41895
42005
  ]),
41896
42006
  _: 1
41897
42007
  }, 8, ["modelValue", "append-to"])
@@ -42023,7 +42133,17 @@ const stringCellEditorParams = (params) => ({
42023
42133
  const dateValueFormatter = (params) => {
42024
42134
  const value = params.value;
42025
42135
  if (value === null || value === void 0) return "";
42026
- return value.toISOString();
42136
+ return DateTime.fromJSDate(value).toISO() ?? "";
42137
+ };
42138
+ const numberWithSpaces = (num) => {
42139
+ const parts = num.toString().split(".");
42140
+ parts[0] = parts[0].replace(NUMBER_WITH_SPACES_REGEX, NUMBER_THOUSAND_SEPARATOR);
42141
+ return parts.join(NUMBER_DECIMAL_SEPARATOR);
42142
+ };
42143
+ const numberValueFormatter = (params) => {
42144
+ const value = params.value;
42145
+ if (value === null || value === void 0) return "";
42146
+ return numberWithSpaces(value);
42027
42147
  };
42028
42148
  const useDataStoreGridBase = ({
42029
42149
  gridContainerRef,
@@ -42066,13 +42186,25 @@ const useDataStoreGridBase = ({
42066
42186
  const focusFirstEditableCell = (rowId) => {
42067
42187
  const rowNode = initializedGridApi.value.getRowNode(String(rowId));
42068
42188
  if (rowNode?.rowIndex === null) return;
42069
- const firstEditableCol = colDefs.value[1];
42070
- if (!firstEditableCol?.colId) return;
42071
- initializedGridApi.value.ensureIndexVisible(rowNode.rowIndex);
42072
- initializedGridApi.value.setFocusedCell(rowNode.rowIndex, firstEditableCol.colId);
42073
- initializedGridApi.value.startEditingCell({
42074
- rowIndex: rowNode.rowIndex,
42075
- colKey: firstEditableCol.colId
42189
+ const rowIndex = rowNode.rowIndex;
42190
+ const displayed = initializedGridApi.value.getAllDisplayedColumns();
42191
+ const firstEditable = displayed.find((col) => {
42192
+ const def = col.getColDef();
42193
+ if (!def) return false;
42194
+ if (def.colId === DEFAULT_ID_COLUMN_NAME) return false;
42195
+ return !!def.editable;
42196
+ });
42197
+ if (!firstEditable) return;
42198
+ const columnId = firstEditable.getColId();
42199
+ requestAnimationFrame(() => {
42200
+ initializedGridApi.value.ensureIndexVisible(rowIndex);
42201
+ requestAnimationFrame(() => {
42202
+ initializedGridApi.value.setFocusedCell(rowIndex, columnId);
42203
+ initializedGridApi.value.startEditingCell({
42204
+ rowIndex,
42205
+ colKey: columnId
42206
+ });
42207
+ });
42076
42208
  });
42077
42209
  };
42078
42210
  const createColumnDef = (col, extraProps = {}) => {
@@ -42081,7 +42213,6 @@ const useDataStoreGridBase = ({
42081
42213
  field: col.name,
42082
42214
  headerName: col.name,
42083
42215
  sortable: true,
42084
- flex: 1,
42085
42216
  editable: (params) => params.data?.id !== ADD_ROW_ROW_ID,
42086
42217
  resizable: true,
42087
42218
  lockPinned: true,
@@ -42091,7 +42222,8 @@ const useDataStoreGridBase = ({
42091
42222
  cellDataType: mapToAGCellType(col.type),
42092
42223
  cellClass: getCellClass,
42093
42224
  valueGetter: createValueGetter(col),
42094
- cellRendererSelector: createCellRendererSelector(col)
42225
+ cellRendererSelector: createCellRendererSelector(col),
42226
+ width: DEFAULT_COLUMN_WIDTH
42095
42227
  };
42096
42228
  if (col.type === "string") {
42097
42229
  columnDef.cellEditor = "agLargeTextCellEditor";
@@ -42104,6 +42236,9 @@ const useDataStoreGridBase = ({
42104
42236
  component: _sfc_main$5
42105
42237
  });
42106
42238
  columnDef.valueFormatter = dateValueFormatter;
42239
+ columnDef.cellEditorPopup = true;
42240
+ } else if (col.type === "number") {
42241
+ columnDef.valueFormatter = numberValueFormatter;
42107
42242
  }
42108
42243
  return {
42109
42244
  ...columnDef,
@@ -42130,7 +42265,10 @@ const useDataStoreGridBase = ({
42130
42265
  lockPosition: "right",
42131
42266
  headerComponentParams: {
42132
42267
  allowMenuActions: false
42133
- }
42268
+ },
42269
+ cellClass: (params) => params.data?.id === ADD_ROW_ROW_ID ? "add-row-cell" : "system-cell",
42270
+ headerClass: "system-column",
42271
+ width: DEFAULT_COLUMN_WIDTH
42134
42272
  };
42135
42273
  return [
42136
42274
  // Always add the ID column, it's not returned by the back-end but all data stores have it
@@ -42143,13 +42281,14 @@ const useDataStoreGridBase = ({
42143
42281
  },
42144
42282
  {
42145
42283
  editable: false,
42146
- sortable: false,
42284
+ sortable: true,
42147
42285
  suppressMovable: true,
42148
42286
  headerComponent: null,
42149
42287
  lockPosition: true,
42150
42288
  minWidth: DATA_STORE_ID_COLUMN_WIDTH,
42151
42289
  maxWidth: DATA_STORE_ID_COLUMN_WIDTH,
42152
42290
  resizable: false,
42291
+ headerClass: "system-column",
42153
42292
  cellClass: (params) => params.data?.id === ADD_ROW_ROW_ID ? "add-row-cell" : "id-column",
42154
42293
  cellRendererSelector: (params) => {
42155
42294
  if (params.value === ADD_ROW_ROW_ID) {
@@ -42195,6 +42334,7 @@ const useDataStoreGridBase = ({
42195
42334
  lockPinned: true,
42196
42335
  lockPosition: "right",
42197
42336
  resizable: false,
42337
+ flex: 1,
42198
42338
  headerComponent: _sfc_main$4,
42199
42339
  headerComponentParams: { onAddColumn }
42200
42340
  }
@@ -42390,6 +42530,7 @@ const useDataStoreOperations = ({
42390
42530
  const dataStoreStore = useDataStoreStore();
42391
42531
  const contentLoading = ref(false);
42392
42532
  const telemetry2 = useTelemetry();
42533
+ const dataStoreTypes = useDataStoreTypes();
42393
42534
  async function onDeleteColumn(columnId) {
42394
42535
  const columnToDelete = colDefs.value.find((col) => col.colId === columnId);
42395
42536
  if (!columnToDelete) return;
@@ -42441,10 +42582,14 @@ const useDataStoreOperations = ({
42441
42582
  column_type: newColumn.type,
42442
42583
  data_table_id: dataStoreId
42443
42584
  });
42444
- return true;
42585
+ return { success: true, httpStatus: 200 };
42445
42586
  } catch (error) {
42446
- toast.showError(error, i18n.baseText("dataStore.addColumn.error"));
42447
- return false;
42587
+ const addColumnError = dataStoreTypes.getAddColumnError(error);
42588
+ return {
42589
+ success: false,
42590
+ httpStatus: addColumnError.httpStatus,
42591
+ errorMessage: addColumnError.message
42592
+ };
42448
42593
  }
42449
42594
  }
42450
42595
  const onColumnMoved = async (moveEvent) => {
@@ -42490,7 +42635,8 @@ const useDataStoreOperations = ({
42490
42635
  const onCellValueChanged = async (params) => {
42491
42636
  const { data, api, oldValue, colDef } = params;
42492
42637
  const value = params.data[colDef.field];
42493
- if (value === void 0 || value === oldValue) {
42638
+ const cellType = isAGGridCellType(colDef.cellDataType) ? dataStoreTypes.mapToDataStoreColumnType(colDef.cellDataType) : void 0;
42639
+ if (value === void 0 || areValuesEqual(oldValue, value, cellType)) {
42494
42640
  return;
42495
42641
  }
42496
42642
  if (typeof data.id !== "number") {
@@ -42560,11 +42706,6 @@ const useDataStoreOperations = ({
42560
42706
  const idsToDelete = Array.from(selectedRowIds.value);
42561
42707
  await dataStoreStore.deleteRows(dataStoreId, projectId, idsToDelete);
42562
42708
  await fetchDataStoreRows();
42563
- toast.showToast({
42564
- title: i18n.baseText("dataStore.deleteRows.success"),
42565
- message: "",
42566
- type: "success"
42567
- });
42568
42709
  telemetry2.track("User deleted rows in data table", {
42569
42710
  data_table_id: dataStoreId,
42570
42711
  deleted_row_count: idsToDelete.length
@@ -42576,15 +42717,22 @@ const useDataStoreOperations = ({
42576
42717
  }
42577
42718
  };
42578
42719
  const onCellKeyDown = async (params) => {
42579
- if (params.api.getEditingCells().length > 0) {
42720
+ const event = params.event;
42721
+ const target = event.target;
42722
+ const isSelectionColumn = params.column.getColId() === "ag-Grid-SelectionColumn";
42723
+ const isEditing2 = params.api.getEditingCells().length > 0 || target instanceof HTMLInputElement && !isSelectionColumn;
42724
+ if (isEditing2) {
42580
42725
  return;
42581
42726
  }
42582
- const event = params.event;
42583
42727
  if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "c") {
42584
42728
  event.preventDefault();
42585
42729
  await handleCopyFocusedCell(params);
42586
42730
  return;
42587
42731
  }
42732
+ if (event.key === "Escape") {
42733
+ handleClearSelection();
42734
+ return;
42735
+ }
42588
42736
  if (event.key !== "Delete" && event.key !== "Backspace" || selectedRowIds.value.size === 0) {
42589
42737
  return;
42590
42738
  }
@@ -42632,6 +42780,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
42632
42780
  const props = __props;
42633
42781
  const emit = __emit;
42634
42782
  const gridContainerRef = useTemplateRef("gridContainerRef");
42783
+ const i18n = useI18n();
42635
42784
  const dataStoreGridBase = useDataStoreGridBase({
42636
42785
  gridContainerRef,
42637
42786
  onDeleteColumn: onDeleteColumnFunction,
@@ -42640,7 +42789,18 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
42640
42789
  });
42641
42790
  const rowData = ref([]);
42642
42791
  const hasRecords = computed(() => rowData.value.length > 0);
42643
- const pagination = useDataStorePagination({ onChange: fetchDataStoreRowsFunction });
42792
+ const {
42793
+ currentPage,
42794
+ pageSize,
42795
+ totalItems,
42796
+ pageSizeOptions,
42797
+ ensureItemOnPage,
42798
+ setTotalItems,
42799
+ setCurrentPage,
42800
+ setPageSize
42801
+ } = useDataStorePagination({
42802
+ onChange: fetchDataStoreRowsFunction
42803
+ });
42644
42804
  const selection = useDataStoreSelection({
42645
42805
  gridApi: dataStoreGridBase.gridApi
42646
42806
  });
@@ -42655,13 +42815,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
42655
42815
  addGridColumn: dataStoreGridBase.addColumn,
42656
42816
  moveGridColumn: dataStoreGridBase.moveColumn,
42657
42817
  gridApi: dataStoreGridBase.gridApi,
42658
- totalItems: pagination.totalItems,
42659
- setTotalItems: pagination.setTotalItems,
42660
- ensureItemOnPage: pagination.ensureItemOnPage,
42818
+ totalItems,
42819
+ setTotalItems,
42820
+ ensureItemOnPage,
42661
42821
  focusFirstEditableCell: dataStoreGridBase.focusFirstEditableCell,
42662
42822
  toggleSave: emit.bind(null, "toggleSave"),
42663
- currentPage: pagination.currentPage,
42664
- pageSize: pagination.pageSize,
42823
+ currentPage,
42824
+ pageSize,
42665
42825
  currentSortBy: dataStoreGridBase.currentSortBy,
42666
42826
  currentSortOrder: dataStoreGridBase.currentSortOrder,
42667
42827
  handleClearSelection: selection.handleClearSelection,
@@ -42685,8 +42845,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
42685
42845
  dataStoreGridBase.loadColumns(props.dataStore.columns);
42686
42846
  await dataStoreOperations.fetchDataStoreRows();
42687
42847
  };
42848
+ const customNoRowsOverlay = `<div class="no-rows-overlay ag-overlay-no-rows-center" data-test-id="data-store-no-rows-overlay">${i18n.baseText("dataStore.noRows")}</div>`;
42688
42849
  watch([dataStoreGridBase.currentSortBy, dataStoreGridBase.currentSortOrder], async () => {
42689
- await pagination.setCurrentPage(1);
42850
+ await setCurrentPage(1);
42690
42851
  });
42691
42852
  __expose({
42692
42853
  addRow: dataStoreOperations.onAddRowClick,
@@ -42717,6 +42878,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
42717
42878
  "stop-editing-when-cells-lose-focus": true,
42718
42879
  "undo-redo-cell-editing": true,
42719
42880
  "suppress-multi-sort": true,
42881
+ "overlay-no-rows-template": customNoRowsOverlay,
42720
42882
  onGridReady: initialize,
42721
42883
  onCellValueChanged: unref(dataStoreOperations).onCellValueChanged,
42722
42884
  onColumnMoved: unref(dataStoreOperations).onColumnMoved,
@@ -42733,19 +42895,19 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
42733
42895
  class: normalizeClass(_ctx.$style.footer)
42734
42896
  }, [
42735
42897
  createVNode(_component_el_pagination, {
42736
- "current-page": unref(pagination).currentPage,
42898
+ "current-page": unref(currentPage),
42737
42899
  "onUpdate:currentPage": [
42738
- _cache[0] || (_cache[0] = ($event) => unref(pagination).currentPage = $event),
42739
- unref(pagination).setCurrentPage
42900
+ _cache[0] || (_cache[0] = ($event) => isRef(currentPage) ? currentPage.value = $event : null),
42901
+ unref(setCurrentPage)
42740
42902
  ],
42741
- "page-size": unref(pagination).pageSize,
42742
- "onUpdate:pageSize": _cache[1] || (_cache[1] = ($event) => unref(pagination).pageSize = $event),
42903
+ "page-size": unref(pageSize),
42904
+ "onUpdate:pageSize": _cache[1] || (_cache[1] = ($event) => isRef(pageSize) ? pageSize.value = $event : null),
42743
42905
  "data-test-id": "data-store-content-pagination",
42744
42906
  background: "",
42745
- total: unref(pagination).totalItems,
42746
- "page-sizes": unref(pagination).pageSizeOptions,
42907
+ total: unref(totalItems),
42908
+ "page-sizes": unref(pageSizeOptions),
42747
42909
  layout: "total, prev, pager, next, sizes",
42748
- onSizeChange: unref(pagination).setPageSize
42910
+ onSizeChange: unref(setPageSize)
42749
42911
  }, null, 8, ["current-page", "page-size", "total", "page-sizes", "onUpdate:currentPage", "onSizeChange"])
42750
42912
  ], 2),
42751
42913
  createVNode(SelectedItemsInfo, {
@@ -42757,12 +42919,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
42757
42919
  };
42758
42920
  }
42759
42921
  });
42760
- const wrapper = "_wrapper_1bnk4_123";
42761
- const footer = "_footer_1bnk4_241";
42922
+ const wrapper = "_wrapper_1x5db_123";
42923
+ const footer = "_footer_1x5db_252";
42762
42924
  const style0$1 = {
42763
42925
  wrapper,
42764
- "grid-container": "_grid-container_1bnk4_130",
42765
- "has-records": "_has-records_1bnk4_234",
42926
+ "grid-container": "_grid-container_1x5db_130",
42927
+ "has-records": "_has-records_1x5db_242",
42766
42928
  footer
42767
42929
  };
42768
42930
  const cssModules$1 = {
@@ -42836,7 +42998,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
42836
42998
  };
42837
42999
  const onAddColumn = async (column) => {
42838
43000
  if (!dataStoreTableRef.value) {
42839
- return false;
43001
+ return {
43002
+ success: false,
43003
+ errorMessage: i18n.baseText("dataStore.error.tableNotInitialized")
43004
+ };
42840
43005
  }
42841
43006
  return await dataStoreTableRef.value.addColumn(column);
42842
43007
  };