n8n-editor-ui 1.115.1 → 1.116.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 (210) hide show
  1. package/.build/cache-marker +1 -1
  2. package/.build/node-popularity.json +1844 -1844
  3. package/dist/assets/{AddDataStoreModal-DxLlmnRh.js → AddDataTableModal-BWWNocvE.js} +32 -32
  4. package/dist/assets/{AddDataStoreModal-B7jBhCjt.css → AddDataTableModal-BzS5Yqag.css} +6 -6
  5. package/dist/assets/{AnimatedSpinner-DR4QrGrL.js → AnimatedSpinner-DFjfUB--.js} +1 -1
  6. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BfGhW9R4.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-AwTdMVsi.js} +1 -1
  7. package/dist/assets/{AuthView-CWVio_MZ.css → AuthView-BvfgleDU.css} +30 -30
  8. package/dist/assets/{AuthView-BUfRQlip.js → AuthView-CPPX5tYt.js} +14 -14
  9. package/dist/assets/{ChangePasswordView-hnVcBOdZ.js → ChangePasswordView-D_VXG-a6.js} +3 -3
  10. package/dist/assets/ChatSidebar-C0s-SoxK.js +117 -0
  11. package/dist/assets/ChatSidebar-wKAC9nrh.css +165 -0
  12. package/dist/assets/ChatView-ClX1FsZV.css +657 -0
  13. package/dist/assets/ChatView-DLlPfas8.js +805 -0
  14. package/dist/assets/CollectionParameter-CYHkGO0F.js +4 -0
  15. package/dist/assets/{CredentialsView-DYbozDMz.js → CredentialsView-BipY16I_.js} +15 -15
  16. package/dist/assets/{CredentialsView-BAqjGrNq.css → CredentialsView-C9uo2Njh.css} +14 -14
  17. package/dist/assets/{DataStoreActions.vue_vue_type_script_setup_true_lang-_Q8OXvzI.js → DataTableActions.vue_vue_type_script_setup_true_lang-B_Q2_4UV.js} +21 -21
  18. package/dist/assets/{DataStoreDetailsView-Bc-J9ZrW.css → DataTableDetailsView-BOmb3x4S.css} +138 -138
  19. package/dist/assets/{DataStoreDetailsView-DN1DvV53.js → DataTableDetailsView-Fi-LWBLm.js} +538 -525
  20. package/dist/assets/{DataStoreView-BqQv7QeU.css → DataTableView-ByKnlVtU.css} +14 -14
  21. package/dist/assets/{DataStoreView-BNU_I-gX.js → DataTableView-CFOQzQI7.js} +68 -68
  22. package/dist/assets/{DemoFooter-rHoOk6iK.js → DemoFooter-J9LQ705n.js} +5 -5
  23. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-DWIEvR1-.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-BiphSIS4.js} +1 -1
  24. package/dist/assets/{EntityNotFound-DAi6p29d.js → EntityNotFound-CYQqRNOB.js} +2 -2
  25. package/dist/assets/EntityNotFound-CargndZm.css +10 -0
  26. package/dist/assets/EntityUnAuthorised-Deb2bHNC.css +10 -0
  27. package/dist/assets/{EntityUnAuthorised-8E-9FBHe.js → EntityUnAuthorised-DetfwCtv.js} +2 -2
  28. package/dist/assets/{ErrorView-DPS9icAS.css → ErrorView-D2OMvGTk.css} +8 -8
  29. package/dist/assets/{ErrorView-y79cILv4.js → ErrorView-qxP6uTVl.js} +4 -4
  30. package/dist/assets/{EvaluationsRootView-B5AhHo41.css → EvaluationsRootView-7FGhfEKm.css} +48 -48
  31. package/dist/assets/{EvaluationsRootView-CWelItmD.js → EvaluationsRootView-BueMulsE.js} +22 -22
  32. package/dist/assets/{EvaluationsView-BTyYfInB.css → EvaluationsView-DsfXDJ-U.css} +35 -35
  33. package/dist/assets/{EvaluationsView-C0X9064k.js → EvaluationsView-gk_juymK.js} +27 -27
  34. package/dist/assets/{ExecutionsTime-B5dXCTxD.css → ExecutionsTime-BGpurJsp.css} +41 -41
  35. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-CmtPBoIQ.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-8mG-89V4.js} +16 -16
  36. package/dist/assets/{ExecutionsView-DRsBgt5L.js → ExecutionsView-0KpKg6S4.js} +18 -18
  37. package/dist/assets/{ExecutionsView-BxsSXnlU.css → ExecutionsView-BbH7fInw.css} +14 -14
  38. package/dist/assets/{FixedCollectionParameter-Bhdk1XcN.js → FixedCollectionParameter-B9qkRreb.js} +2 -2
  39. package/dist/assets/{FixedCollectionParameter-D3u3aCCk.css → FixedCollectionParameter-D82suS6W.css} +43 -43
  40. package/dist/assets/{ForgotMyPasswordView-C-GNSvtY.js → ForgotMyPasswordView-C1kfYO_S.js} +3 -3
  41. package/dist/assets/{InfoAccordion-BpibqNsS.js → InfoAccordion-B_T19Esx.js} +7 -7
  42. package/dist/assets/{InfoAccordion-dxudNqVC.css → InfoAccordion-BuKidEQb.css} +13 -13
  43. package/dist/assets/{InsightsChartAverageRuntime-CwkkxEk1.js → InsightsChartAverageRuntime-IISuKphn.js} +4 -4
  44. package/dist/assets/{InsightsChartFailed-Di6uVDGI.js → InsightsChartFailed-DRHEEzJU.js} +5 -5
  45. package/dist/assets/{InsightsChartFailureRate-Bl5Av3Eu.js → InsightsChartFailureRate-D1L6WYZP.js} +5 -5
  46. package/dist/assets/{InsightsChartTimeSaved-Bcup49B9.js → InsightsChartTimeSaved-zCEK3kuY.js} +4 -4
  47. package/dist/assets/{InsightsChartTotal-DnEUMCMt.js → InsightsChartTotal-DW-EkNtK.js} +5 -5
  48. package/dist/assets/{InsightsDashboard-luJ134I5.js → InsightsDashboard-DfpOZ30S.js} +21 -21
  49. package/dist/assets/{InsightsDashboard-CYAx_0X9.css → InsightsDashboard-DyOwzHmP.css} +25 -25
  50. package/dist/assets/{InsightsPaywall-BEXUk0T6.js → InsightsPaywall-CKH7O7yd.js} +1 -1
  51. package/dist/assets/{InsightsSummary-DTFIhBF3.css → InsightsSummary-BazqPYQ0.css} +52 -52
  52. package/dist/assets/{InsightsSummary-XxOp2tas.js → InsightsSummary-ChZNMeJI.js} +11 -11
  53. package/dist/assets/{InsightsTableWorkflows-BTHSCwX8.css → InsightsTableWorkflows-D20Yb7ZW.css} +8 -8
  54. package/dist/assets/{InsightsTableWorkflows-B4re5fkw.js → InsightsTableWorkflows-DwLRkvVL.js} +7 -7
  55. package/dist/assets/{Logo-CSmRCqF2.css → Logo-BU1oDo5-.css} +16 -16
  56. package/dist/assets/{Logo-91TLwfCH.js → Logo-Bgcx_T7R.js} +7 -7
  57. package/dist/assets/{LogsPanel-BWP7EQ84.js → LogsPanel-BCUqUR29.js} +141 -1091
  58. package/dist/assets/{LogsPanel-BE9Gl1z0.css → LogsPanel-DVmpE0zV.css} +160 -592
  59. package/dist/assets/{MainHeader-DIiyDT8d.css → MainHeader-BqJwA1aC.css} +117 -117
  60. package/dist/assets/{MainHeader-BaSUt6eJ.js → MainHeader-BzhBs3En.js} +45 -45
  61. package/dist/assets/{MainSidebar-C4cyDjUV.js → MainSidebar-Bf48nTMR.js} +69 -1133
  62. package/dist/assets/{MainSidebar-BT8sXxNa.css → MainSidebar-tTEyXOKH.css} +107 -279
  63. package/dist/assets/NavigationDropdown-Wb7mPGhl.css +187 -0
  64. package/dist/assets/NavigationDropdown-kfg0blbZ.js +1116 -0
  65. package/dist/assets/{NodeCreation-C4gQlPqI.css → NodeCreation-B1fOtARK.css} +6 -6
  66. package/dist/assets/{NodeCreation-BkqOy8gF.js → NodeCreation-CsCoqAnU.js} +12 -10
  67. package/dist/assets/{NodeCreator-COTYfPaK.css → NodeCreator-CamUhvMk.css} +175 -174
  68. package/dist/assets/{NodeCreator-BppRTVIa.js → NodeCreator-D45qQQ4H.js} +60 -64
  69. package/dist/assets/{NodeDetailsView-BuhpInfo.js → NodeDetailsView-6bLQaVHT.js} +33 -32
  70. package/dist/assets/{NodeDetailsView-CBYV4Rrz.css → NodeDetailsView-D3QAo3SF.css} +61 -61
  71. package/dist/assets/{NodeDetailsViewV2-C0bp_zCD.js → NodeDetailsViewV2-DRCY6EX6.js} +58 -69
  72. package/dist/assets/{NodeDetailsViewV2-J_3cfdea.css → NodeDetailsViewV2-bvXejqU_.css} +67 -60
  73. package/dist/assets/{NodeView-Bsq1Fh0D.css → NodeView-BhF0ieQM.css} +85 -85
  74. package/dist/assets/{NodeView-B9LYqx2z.js → NodeView-C9PvNIUz.js} +106 -95
  75. package/dist/assets/{PageViewLayout-CJlzbuVj.css → PageViewLayout-BIiboMgG.css} +5 -5
  76. package/dist/assets/{PageViewLayout-B8D8Tkxn.js → PageViewLayout-DNBKIQ4N.js} +3 -3
  77. package/dist/assets/{PrebuiltAgentTemplatesView-DZAkWI4E.js → PrebuiltAgentTemplatesView-C0Uqhzma.js} +9 -9
  78. package/dist/assets/{PrebuiltAgentTemplatesView-COxu7Iih.css → PrebuiltAgentTemplatesView-jF7HvWnL.css} +14 -14
  79. package/dist/assets/{ProjectBreadcrumb-B1Hnf5da.css → ProjectBreadcrumb-BNbnf7Ir.css} +96 -96
  80. package/dist/assets/{ProjectBreadcrumb-HI65z9tX.js → ProjectBreadcrumb-w-ZQjuc2.js} +22 -22
  81. package/dist/assets/{ProjectHeader-BzekhnTR.js → ProjectHeader-DG_Z0cm0.js} +36 -18
  82. package/dist/assets/{ProjectHeader-BNMKpvzV.css → ProjectHeader-TKKq6OrY.css} +15 -15
  83. package/dist/assets/{ProjectSettings-BTP0xrzD.js → ProjectSettings-ClU4oaU3.js} +26 -26
  84. package/dist/assets/{ProjectSettings-Cj1kC16G.css → ProjectSettings-c2BBLEzY.css} +60 -60
  85. package/dist/assets/ProjectVariables-B76TEE5o.js +532 -0
  86. package/dist/assets/ProjectVariables-DtGcMnSf.css +293 -0
  87. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DflOVayR.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-C7mROgKI.js} +1 -1
  88. package/dist/assets/{ResourcesListLayout-Dm7w49bu.css → ResourcesListLayout-CY-G3BmN.css} +42 -42
  89. package/dist/assets/{ResourcesListLayout-CnidC9EV.js → ResourcesListLayout-Db6ys3gY.js} +25 -21
  90. package/dist/assets/{RunDataJson-DEs4Ql5T.js → RunDataJson-CXyTvX4C.js} +8 -8
  91. package/dist/assets/{RunDataJson-BH9HLoGC.css → RunDataJson-PAkTmkZf.css} +19 -19
  92. package/dist/assets/{RunDataJsonActions-Ct02vlvz.js → RunDataJsonActions-C5Cvqjc_.js} +2 -2
  93. package/dist/assets/{RunDataJsonActions-B2jW3_UG.css → RunDataJsonActions-CZx7rSSE.css} +2 -2
  94. package/dist/assets/{RunDataParsedAiContent-Bl49tvwG.js → RunDataParsedAiContent-BkNc-yBy.js} +13 -112
  95. package/dist/assets/{RunDataParsedAiContent-wfIiKsq7.css → RunDataParsedAiContent-CvjNCtpG.css} +37 -37
  96. package/dist/assets/{RunDataSearch-D8DXH4rw.js → RunDataSearch-CBsWlIj1.js} +4 -4
  97. package/dist/assets/{RunDataSearch-2eEalFoi.css → RunDataSearch-CPo36NE_.css} +10 -10
  98. package/dist/assets/{RunDataTable-BZzteeuj.css → RunDataTable-C4QnrVVF.css} +104 -104
  99. package/dist/assets/{RunDataTable-CdxTnMd4.js → RunDataTable-FKsWIgfg.js} +33 -33
  100. package/dist/assets/{SamlOnboarding-CLFzc3D4.js → SamlOnboarding--cNSub8q.js} +3 -3
  101. package/dist/assets/{SelectedItemsInfo-Dl4uynXs.css → SelectedItemsInfo-B6Rq6uIe.css} +7 -7
  102. package/dist/assets/{SelectedItemsInfo-Dd3HKZ6z.js → SelectedItemsInfo-BOQrOU8d.js} +3 -3
  103. package/dist/assets/{SettingsApiView-CmU8R9-c.js → SettingsApiView-DkPpP_Xa.js} +14 -14
  104. package/dist/assets/{SettingsApiView-k1hALKCX.css → SettingsApiView-Dtl_N9mK.css} +31 -31
  105. package/dist/assets/{SettingsCommunityNodesView-CAggjsaT.css → SettingsCommunityNodesView-CVQjV37D.css} +31 -31
  106. package/dist/assets/{SettingsCommunityNodesView-CjgVPZAy.js → SettingsCommunityNodesView-CypE1wWW.js} +21 -21
  107. package/dist/assets/{SettingsExternalSecrets-BAX9ENm9.css → SettingsExternalSecrets-CaiOf7cD.css} +12 -12
  108. package/dist/assets/{SettingsExternalSecrets-Baxom4lP.js → SettingsExternalSecrets-Dw8qeVlx.js} +8 -8
  109. package/dist/assets/{SettingsLdapView-BQUfzAsN.js → SettingsLdapView-CQXdsBfZ.js} +8 -8
  110. package/dist/assets/{SettingsLdapView-D0SUO3ai.css → SettingsLdapView-KgMO_1GA.css} +17 -17
  111. package/dist/assets/{SettingsLogStreamingView-Bq2IwWDt.js → SettingsLogStreamingView-B-0r_ZsJ.js} +7 -7
  112. package/dist/assets/{SettingsLogStreamingView-CflEMmu9.css → SettingsLogStreamingView-xo-rTSA0.css} +12 -12
  113. package/dist/assets/SettingsMCPView-BBO_ZyBU.css +552 -0
  114. package/dist/assets/{SettingsMCPView-D3BOHCtS.js → SettingsMCPView-Bbdsa8lu.js} +200 -126
  115. package/dist/assets/{SettingsPersonalView-Bt8bL5tJ.css → SettingsPersonalView-D6LtKnaF.css} +23 -23
  116. package/dist/assets/{SettingsPersonalView-Bbn0olns.js → SettingsPersonalView-VU8Kh83i.js} +10 -10
  117. package/dist/assets/{SettingsSourceControl-BBxJXbFC.css → SettingsSourceControl-C6pfOcuv.css} +40 -40
  118. package/dist/assets/{SettingsSourceControl-CC_Pak2B.js → SettingsSourceControl-CJvfstK0.js} +15 -15
  119. package/dist/assets/{SettingsSso-vViqB8oe.js → SettingsSso-v2r9nirX.js} +7 -7
  120. package/dist/assets/{SettingsSso-D4HKPLvV.css → SettingsSso-w7Iz4Luy.css} +25 -25
  121. package/dist/assets/{SettingsUsageAndPlan-BtE-s9Vb.js → SettingsUsageAndPlan-BhgN2Hcc.js} +13 -13
  122. package/dist/assets/{SettingsUsageAndPlan-82J0IcdW.css → SettingsUsageAndPlan-Cct79Zta.css} +34 -34
  123. package/dist/assets/{SettingsUsersView-DVdCq-SX.js → SettingsUsersView-CApxIHLx.js} +16 -16
  124. package/dist/assets/{SettingsUsersView-BG7JdfYz.css → SettingsUsersView-CfJcVjkl.css} +28 -28
  125. package/dist/assets/{SettingsView-BHLJBEJF.css → SettingsView-C4aA4kVV.css} +18 -18
  126. package/dist/assets/{SettingsView-ByNIw76r.js → SettingsView-Dru_1OUG.js} +8 -8
  127. package/dist/assets/{SetupView-XbSIMu9B.js → SetupView-Bh4XpOq8.js} +3 -3
  128. package/dist/assets/{SetupWorkflowCredentialsButton-CUzPtmot.js → SetupWorkflowCredentialsButton-6T0EX3L6.js} +1 -1
  129. package/dist/assets/{SetupWorkflowFromTemplateView-ZPJL_m2F.css → SetupWorkflowFromTemplateView-CU2iGJTa.css} +11 -11
  130. package/dist/assets/{SetupWorkflowFromTemplateView-CQcMUEt1.js → SetupWorkflowFromTemplateView-EJjV79MY.js} +8 -8
  131. package/dist/assets/{SigninView-D57wRRHz.css → SigninView-BQgsTN8o.css} +13 -13
  132. package/dist/assets/{SigninView-C8qujIEW.js → SigninView-DKLEwC5i.js} +9 -9
  133. package/dist/assets/{SignoutView-BCsXtAKk.js → SignoutView-xza1c_rm.js} +1 -1
  134. package/dist/assets/{SignupView-By-KjS2P.js → SignupView-DnZEsYnl.js} +3 -3
  135. package/dist/assets/{TableBase-CX4nZLla.js → TableBase-B1eTsHT8.js} +3 -3
  136. package/dist/assets/{TableBase-Bf42_9Yp.css → TableBase-CUZbI5pm.css} +24 -24
  137. package/dist/assets/{Tags-CCemj7t9.css → Tags-6vh_jPIG.css} +4 -4
  138. package/dist/assets/{Tags-D03vT_rK.js → Tags-DpegReyF.js} +2 -2
  139. package/dist/assets/{TemplateDetails-DyUqVhf2.css → TemplateDetails-DfyKyMyy.css} +13 -13
  140. package/dist/assets/{TemplateDetails-CDaB-6oH.js → TemplateDetails-lJNnuxdO.js} +8 -8
  141. package/dist/assets/{TemplateList-DNBeV62H.js → TemplateList-BHbHvx-_.js} +24 -24
  142. package/dist/assets/{TemplateList-XNW-2Ugr.css → TemplateList-CNUtq0N7.css} +49 -49
  143. package/dist/assets/{TemplatesCollectionView-BTk7wBlq.js → TemplatesCollectionView-BijeS4Al.js} +13 -13
  144. package/dist/assets/{TemplatesCollectionView-2q1rzsOG.css → TemplatesCollectionView-klb8FT9y.css} +13 -13
  145. package/dist/assets/{TemplatesSearchView-DtyBPi6V.js → TemplatesSearchView-Db14LD0F.js} +18 -18
  146. package/dist/assets/{TemplatesSearchView-DETaMpDt.css → TemplatesSearchView-gPmmtwoU.css} +50 -50
  147. package/dist/assets/{TemplatesView-BTid6_ga.js → TemplatesView-BTxutjLU.js} +8 -8
  148. package/dist/assets/{TemplatesView-Cyu28Dlo.css → TemplatesView-BgdyYmrL.css} +21 -21
  149. package/dist/assets/{TemplatesWorkflowView-DpIiJjJp.css → TemplatesWorkflowView-CBjRBbmw.css} +17 -17
  150. package/dist/assets/{TemplatesWorkflowView-CLr9pY-p.js → TemplatesWorkflowView-xFif3ij7.js} +14 -14
  151. package/dist/assets/{TestRunDetailView-BDPhxOvY.js → TestRunDetailView-BRfLAqZW.js} +36 -36
  152. package/dist/assets/{TestRunDetailView--lZbJq4u.css → TestRunDetailView-D_a9QpSQ.css} +93 -93
  153. package/dist/assets/{TriggerPanel-CQgUdcjv.css → TriggerPanel-BbB_P9ZT.css} +158 -236
  154. package/dist/assets/TriggerPanel-nPxZrihp.js +1633 -0
  155. package/dist/assets/VariablesUsageBadge-BaTs74dX.js +39 -0
  156. package/dist/assets/VariablesUsageBadge-C_yi7Lw5.css +129 -0
  157. package/dist/assets/{VariablesView-DsA8Mqxt.js → VariablesView-BeHRHeb1.js} +11 -52
  158. package/dist/assets/VariablesView-zN910qd9.css +272 -0
  159. package/dist/assets/{WorkerView-BrSoYcbf.css → WorkerView-4m_NaoAx.css} +47 -47
  160. package/dist/assets/{WorkerView-CDijwoCe.js → WorkerView-LAFQqBrx.js} +39 -39
  161. package/dist/assets/{WorkflowActivator-DKpc2Acz.js → WorkflowActivator-BdIK7K-g.js} +7 -7
  162. package/dist/assets/{WorkflowActivator-DPDRDtQG.css → WorkflowActivator-DBJbtrBD.css} +9 -9
  163. package/dist/assets/{WorkflowExecutionsInfoAccordion-53bC-IXN.css → WorkflowExecutionsInfoAccordion-CEOvJ-SX.css} +11 -11
  164. package/dist/assets/{WorkflowExecutionsInfoAccordion-Fedus-Da.js → WorkflowExecutionsInfoAccordion-kaRsv7EW.js} +4 -4
  165. package/dist/assets/{WorkflowExecutionsLandingPage-BpO-BoFq.js → WorkflowExecutionsLandingPage-BdMQTvlG.js} +6 -6
  166. package/dist/assets/{WorkflowExecutionsLandingPage-Bm_hJMl4.css → WorkflowExecutionsLandingPage-DMldlKod.css} +8 -8
  167. package/dist/assets/{WorkflowExecutionsPreview-Cd4BrS-0.css → WorkflowExecutionsPreview-CkEakQp2.css} +90 -90
  168. package/dist/assets/{WorkflowExecutionsPreview-DzvPOJOY.js → WorkflowExecutionsPreview-DoAsEchV.js} +46 -46
  169. package/dist/assets/{WorkflowExecutionsView-DDoqUcYQ.js → WorkflowExecutionsView-Cl1624bM.js} +34 -34
  170. package/dist/assets/{WorkflowExecutionsView-Bjkudb8L.css → WorkflowExecutionsView-CqRMwPwF.css} +82 -82
  171. package/dist/assets/{WorkflowHistory-7Ad0Va7M.css → WorkflowHistory-BmerBiKz.css} +71 -71
  172. package/dist/assets/{WorkflowHistory-BhU1Rfch.js → WorkflowHistory-DcGYJnXH.js} +21 -21
  173. package/dist/assets/{WorkflowOnboardingView-BqWP7FwD.js → WorkflowOnboardingView-Ci32PYxq.js} +1 -1
  174. package/dist/assets/{WorkflowPreview-B1W62QhC.js → WorkflowPreview-B8KvmFRP.js} +8 -8
  175. package/dist/assets/{WorkflowPreview-CIOAVgxK.css → WorkflowPreview-Bt03akXc.css} +8 -8
  176. package/dist/assets/{WorkflowsView-B-pO60w1.js → WorkflowsView-BFZrfitq.js} +79 -83
  177. package/dist/assets/{WorkflowsView-B8UKso1P.css → WorkflowsView-GJhG9SFw.css} +144 -144
  178. package/dist/assets/{chartjs.utils-DpK-YRAM.js → chartjs.utils-nj8CCZPZ.js} +10 -10
  179. package/dist/assets/chat.utils-irsHFh8G.js +224 -0
  180. package/dist/assets/{core-HZaYo_tU.js → core-DsTi4w-I.js} +1 -1
  181. package/dist/assets/{evaluation-ZbMdquW3.css → evaluation-BpIei8SG.css} +26 -26
  182. package/dist/assets/{evaluation.constants-DfiJmRyk.js → evaluation.constants-DjPrCMEi.js} +9 -9
  183. package/dist/assets/{global-link-actions-DdzlWwjw.js → global-link-actions-DSKsOCqo.js} +1 -1
  184. package/dist/assets/{index-CFiA0qjr.css → index-BvbpnRSm.css} +6384 -6442
  185. package/dist/assets/{index-MTM6BbvW.js → index-C2iJCVYf.js} +13722 -15461
  186. package/dist/assets/{index-P3-xVlwI.js → index-DkYsG7tJ.js} +1 -1
  187. package/dist/assets/mcp.store-LrK5gI5Y.js +85 -0
  188. package/dist/assets/{pickBy-DUKPNRlc.js → pickBy-DSRQa7Nf.js} +1 -1
  189. package/dist/assets/{readyToRunWorkflows.store-nzu6XNAP.js → readyToRunWorkflows.store-ia-2Nluj.js} +2 -2
  190. package/dist/assets/{readyToRunWorkflowsV2.store-1dRkG6XV.js → readyToRunWorkflowsV2.store-CyBbWYeG.js} +41 -3
  191. package/dist/assets/{templateActions-BePunFaZ.js → templateActions-CqLHZUrv.js} +1 -1
  192. package/dist/assets/{useBeforeUnload-DsbgbymL.js → useBeforeUnload-D788NzAs.js} +1 -1
  193. package/dist/assets/{useExecutionDebugging-yUnwhnYk.js → useExecutionDebugging-DWOhAQo4.js} +1 -1
  194. package/dist/assets/{useImportCurlCommand-DcFIVp7Y.js → useImportCurlCommand-BQs5GVHJ.js} +1 -1
  195. package/dist/assets/useLogsTreeExpand-2auAOTOK.js +1080 -0
  196. package/dist/assets/useLogsTreeExpand-BZb1m-U7.css +554 -0
  197. package/dist/assets/{useProjectPages-JCNZbA2u.js → useProjectPages-BRhbuYJH.js} +1 -1
  198. package/dist/assets/{usePushConnection-_VL-61pH.js → usePushConnection-DgYz_QNH.js} +17 -19
  199. package/dist/assets/{useWorkflowsCache-DwIv_I-Z.js → useWorkflowsCache-C2_YYjSX.js} +1 -1
  200. package/dist/index.html +2 -2
  201. package/package.json +1 -1
  202. package/scripts/fetch-node-popularity.mjs +13 -1
  203. package/turbo.json +2 -1
  204. package/dist/assets/CollectionParameter-BbxTTmMu.js +0 -4
  205. package/dist/assets/ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-Bv40HGJu.js +0 -44
  206. package/dist/assets/EntityNotFound-pTnVFOv-.css +0 -10
  207. package/dist/assets/EntityUnAuthorised-CHl9g0Ry.css +0 -10
  208. package/dist/assets/SettingsMCPView-B7NzLvT3.css +0 -378
  209. package/dist/assets/TriggerPanel-BS69Ky8P.js +0 -3343
  210. package/dist/assets/VariablesView-BMHdLce7.css +0 -400
@@ -1,23 +1,23 @@
1
- import { d as defineComponent, aH as useTemplateRef, hj as useDataStoreStore, b as useRouter, a as useToast, r as ref, x as computed, c as useI18n, a8 as watch, h as createElementBlock, g as openBlock, n as normalizeClass, i as createVNode, j as createBaseVNode, k as unref, w as withCtx, t as toDisplayString, aI as InlineRename, e as createBlock, f as createCommentVNode, h4 as PROJECT_DATA_STORES, Z as nextTick, fO as telemetry, _ as _export_sfc, eX as mergeModels, cB as toRefs, eY as useModel, o as onMounted, bo as getCurrentInstance, ho as markRaw, bS as onUnmounted, hp as mergeDefaults, fF as toRaw, hq as render, cA as isRef, hr as isReactive, gI as isProxy, hs as DATA_TYPE_ICON_MAP, ht as ResponseError, b4 as withDirectives, N as N8nIcon, b5 as vShow, ab as _sfc_main$a, B as withModifiers, aO as N8nActionDropdown, hu as LOOSE_DATE_REGEX, dL as isFocusableEl, ap as normalizeStyle, gi as ElDatePicker, P as useDebounce, y as N8nPopoverReka, eK as N8nInputLabel, dE as N8nInput, bH as withKeys, hv as MAX_COLUMN_NAME_LENGTH, p as N8nText, l as createTextVNode, aa as N8nTooltip, eN as N8nSelect, F as Fragment, A as renderList, eO as _sfc_main$b, q as N8nButton, hw as COLUMN_NAME_REGEX, hx as ADD_ROW_ROW_ID, hy as NULL_VALUE, hz as EMPTY_VALUE, bO as DateTime, hA as NUMBER_WITH_SPACES_REGEX, hB as NUMBER_THOUSAND_SEPARATOR, hC as NUMBER_DECIMAL_SEPARATOR, cI as useClipboard, b$ as onClickOutside, hD as DEFAULT_ID_COLUMN_NAME, hE as reorderItem, hF as DEFAULT_COLUMN_WIDTH, fB as orderBy, hG as DATA_STORE_ID_COLUMN_WIDTH, am as useMessage, an as MODAL_CONFIRM, al as useTelemetry, hH as DATA_STORE_HEADER_HEIGHT, hI as DATA_STORE_ROW_HEIGHT, gt as ElPagination, ay as useDocumentTitle, hJ as MIN_LOADING_TIME, eo as N8nLoading, em as _sfc_main$c, hK as DATA_STORE_VIEW } from "./index-MTM6BbvW.js";
2
- import { _ as _sfc_main$9 } from "./DataStoreActions.vue_vue_type_script_setup_true_lang-_Q8OXvzI.js";
3
- import { B as Breadcrumbs, P as ProjectBreadcrumb } from "./ProjectBreadcrumb-HI65z9tX.js";
4
- import { S as SelectedItemsInfo } from "./SelectedItemsInfo-Dd3HKZ6z.js";
1
+ import { d as defineComponent, aH as useTemplateRef, hr as useDataTableStore, b as useRouter, a as useToast, r as ref, x as computed, c as useI18n, a8 as watch, h as createElementBlock, g as openBlock, n as normalizeClass, i as createVNode, j as createBaseVNode, k as unref, w as withCtx, t as toDisplayString, aI as InlineRename, e as createBlock, f as createCommentVNode, h8 as PROJECT_DATA_TABLES, Z as nextTick, f8 as telemetry, _ as _export_sfc, eg as mergeModels, bR as toRefs, eh as useModel, o as onMounted, eD as getCurrentInstance, hw as markRaw, bh as onUnmounted, hx as mergeDefaults, e$ as toRaw, hy as render, bQ as isRef, hz as isReactive, gL as isProxy, bZ as useClipboard, bt as onClickOutside, hA as DATA_TYPE_ICON_MAP, b4 as withDirectives, N as N8nIcon, b5 as vShow, ab as _sfc_main$a, B as withModifiers, aO as N8nActionDropdown, hB as LOOSE_DATE_REGEX, c_ as isFocusableEl, ap as normalizeStyle, gl as ElDatePicker, P as useDebounce, y as N8nPopoverReka, e3 as N8nInputLabel, cT as N8nInput, bX as withKeys, hC as MAX_COLUMN_NAME_LENGTH, p as N8nText, l as createTextVNode, aa as N8nTooltip, e6 as N8nSelect, F as Fragment, A as renderList, e7 as _sfc_main$b, q as N8nButton, hD as COLUMN_NAME_REGEX, hE as ADD_ROW_ROW_ID, hF as NULL_VALUE, hG as EMPTY_VALUE, bd as DateTime, hH as NUMBER_WITH_SPACES_REGEX, hI as NUMBER_THOUSAND_SEPARATOR, hJ as NUMBER_DECIMAL_SEPARATOR, hK as DEFAULT_ID_COLUMN_NAME, hL as reorderItem, hM as DEFAULT_COLUMN_WIDTH, eX as orderBy, hN as DATA_TABLE_ID_COLUMN_WIDTH, am as useMessage, an as MODAL_CONFIRM, al as useTelemetry, hO as ResponseError, hP as DATA_TABLE_HEADER_HEIGHT, hQ as DATA_TABLE_ROW_HEIGHT, gw as ElPagination, ay as useDocumentTitle, hR as MIN_LOADING_TIME, dI as N8nLoading, dF as _sfc_main$c, hS as DATA_TABLE_VIEW } from "./index-C2iJCVYf.js";
2
+ import { _ as _sfc_main$9 } from "./DataTableActions.vue_vue_type_script_setup_true_lang-B_Q2_4UV.js";
3
+ import { B as Breadcrumbs, P as ProjectBreadcrumb } from "./ProjectBreadcrumb-w-ZQjuc2.js";
4
+ import { S as SelectedItemsInfo } from "./SelectedItemsInfo-BOQrOU8d.js";
5
5
  const BREADCRUMBS_SEPARATOR = "/";
6
6
  const _sfc_main$8 = /* @__PURE__ */ defineComponent({
7
- __name: "DataStoreBreadcrumbs",
7
+ __name: "DataTableBreadcrumbs",
8
8
  props: {
9
- dataStore: {}
9
+ dataTable: {}
10
10
  },
11
11
  setup(__props) {
12
12
  const props = __props;
13
13
  const renameInput = useTemplateRef("renameInput");
14
- const dataStoreStore = useDataStoreStore();
14
+ const dataTableStore = useDataTableStore();
15
15
  const i18n = useI18n();
16
16
  const router = useRouter();
17
17
  const toast = useToast();
18
- const editableName = ref(props.dataStore.name);
18
+ const editableName = ref(props.dataTable.name);
19
19
  const project = computed(() => {
20
- return props.dataStore.project ?? null;
20
+ return props.dataTable.project ?? null;
21
21
  });
22
22
  const breadcrumbs = computed(() => {
23
23
  if (!project.value) {
@@ -25,8 +25,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
25
25
  }
26
26
  return [
27
27
  {
28
- id: "datastores",
29
- label: i18n.baseText("dataStore.dataStores"),
28
+ id: "datatables",
29
+ label: i18n.baseText("dataTable.dataTables"),
30
30
  href: `/projects/${project.value.id}/datatables`
31
31
  }
32
32
  ];
@@ -38,8 +38,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
38
38
  };
39
39
  const onDelete = async () => {
40
40
  await router.push({
41
- name: PROJECT_DATA_STORES,
42
- params: { projectId: props.dataStore.projectId }
41
+ name: PROJECT_DATA_TABLES,
42
+ params: { projectId: props.dataTable.projectId }
43
43
  });
44
44
  };
45
45
  const onRename = async () => {
@@ -50,33 +50,34 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
50
50
  };
51
51
  const onNameSubmit = async (name) => {
52
52
  try {
53
- const updated = await dataStoreStore.updateDataStore(
54
- props.dataStore.id,
53
+ const updated = await dataTableStore.updateDataTable(
54
+ props.dataTable.id,
55
55
  name,
56
- props.dataStore.projectId
56
+ props.dataTable.projectId
57
57
  );
58
58
  if (!updated) {
59
59
  throw new Error(i18n.baseText("generic.unknownError"));
60
60
  }
61
61
  editableName.value = name;
62
62
  telemetry.track("User renamed data table", {
63
- data_table_id: props.dataStore.id,
64
- data_table_project_id: props.dataStore.projectId
63
+ data_table_id: props.dataTable.id,
64
+ data_table_project_id: props.dataTable.projectId
65
65
  });
66
66
  } catch (error) {
67
- editableName.value = props.dataStore.name;
68
- toast.showError(error, i18n.baseText("dataStore.rename.error"));
67
+ editableName.value = props.dataTable.name;
68
+ toast.showError(error, i18n.baseText("dataTable.rename.error"));
69
69
  }
70
70
  };
71
71
  watch(
72
- () => props.dataStore.name,
72
+ () => props.dataTable.name,
73
73
  (newName) => {
74
74
  editableName.value = newName;
75
75
  }
76
76
  );
77
77
  return (_ctx, _cache) => {
78
78
  return openBlock(), createElementBlock("div", {
79
- class: normalizeClass(_ctx.$style["data-store-breadcrumbs"])
79
+ class: normalizeClass(_ctx.$style["data-table-breadcrumbs"]),
80
+ "data-test-id": "data-table-breadcrumbs"
80
81
  }, [
81
82
  createVNode(unref(Breadcrumbs), {
82
83
  items: breadcrumbs.value,
@@ -102,8 +103,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
102
103
  _cache[0] || (_cache[0] = ($event) => editableName.value = $event),
103
104
  onNameSubmit
104
105
  ],
105
- "data-test-id": "datastore-header-name-input",
106
- placeholder: unref(i18n).baseText("dataStore.add.input.name.label"),
106
+ "data-test-id": "data-table-header-name-input",
107
+ placeholder: unref(i18n).baseText("dataTable.add.input.name.label"),
107
108
  class: normalizeClass(_ctx.$style["breadcrumb-current"]),
108
109
  "max-length": 30,
109
110
  "read-only": false,
@@ -113,30 +114,30 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
113
114
  _: 1
114
115
  }, 8, ["items"]),
115
116
  createBaseVNode("div", {
116
- class: normalizeClass(_ctx.$style["data-store-actions"])
117
+ class: normalizeClass(_ctx.$style["data-table-actions"])
117
118
  }, [
118
119
  createVNode(_sfc_main$9, {
119
- "data-store": props.dataStore,
120
+ "data-table": props.dataTable,
120
121
  location: "breadcrumbs",
121
122
  onRename,
122
123
  onOnDeleted: onDelete
123
- }, null, 8, ["data-store"])
124
+ }, null, 8, ["data-table"])
124
125
  ], 2)
125
126
  ], 2);
126
127
  };
127
128
  }
128
129
  });
129
- const separator = "_separator_1n6ua_133";
130
+ const separator = "_separator_9bko0_133";
130
131
  const style0$2 = {
131
- "data-store-breadcrumbs": "_data-store-breadcrumbs_1n6ua_123",
132
- "data-store-actions": "_data-store-actions_1n6ua_128",
132
+ "data-table-breadcrumbs": "_data-table-breadcrumbs_9bko0_123",
133
+ "data-table-actions": "_data-table-actions_9bko0_128",
133
134
  separator,
134
- "breadcrumb-current": "_breadcrumb-current_1n6ua_139"
135
+ "breadcrumb-current": "_breadcrumb-current_9bko0_139"
135
136
  };
136
137
  const cssModules$2 = {
137
138
  "$style": style0$2
138
139
  };
139
- const DataStoreBreadcrumbs = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__cssModules", cssModules$2]]);
140
+ const DataTableBreadcrumbs = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__cssModules", cssModules$2]]);
140
141
  var LocalEventService = class {
141
142
  constructor() {
142
143
  this.allSyncListeners = /* @__PURE__ */ new Map();
@@ -48729,12 +48730,39 @@ const n8nTheme = themeQuartz.withPart(iconSetAlpine).withParams({
48729
48730
  rowVerticalPaddingScale: 0.8,
48730
48731
  sidePanelBorder: true,
48731
48732
  wrapperBorder: true,
48732
- headerColumnBorder: { color: "var(--color-foreground-base)" },
48733
+ headerColumnBorder: { color: "var(--color--foreground)" },
48733
48734
  headerColumnBorderHeight: "100%",
48734
- checkboxUncheckedBackgroundColor: "var(--color-background-light-base)",
48735
- checkboxCheckedBackgroundColor: "var(--color-primary)"
48735
+ checkboxUncheckedBackgroundColor: "var(--color--background--light-1)",
48736
+ checkboxCheckedBackgroundColor: "var(--color--primary)"
48736
48737
  });
48737
- const useDataStorePagination = (options = {}) => {
48738
+ let modulesRegistered = false;
48739
+ const registerAgGridModulesOnce = () => {
48740
+ if (modulesRegistered) return;
48741
+ ModuleRegistry.registerModules([
48742
+ ValidationModule,
48743
+ ClientSideRowModelModule,
48744
+ TextEditorModule,
48745
+ LargeTextEditorModule,
48746
+ ColumnAutoSizeModule,
48747
+ CheckboxEditorModule,
48748
+ NumberEditorModule,
48749
+ RowSelectionModule,
48750
+ RenderApiModule,
48751
+ DateEditorModule,
48752
+ ClientSideRowModelApiModule,
48753
+ UndoRedoEditModule,
48754
+ CellStyleModule,
48755
+ PinnedRowModule,
48756
+ ScrollApiModule,
48757
+ ColumnApiModule,
48758
+ TextFilterModule,
48759
+ NumberFilterModule,
48760
+ DateFilterModule,
48761
+ EventApiModule
48762
+ ]);
48763
+ modulesRegistered = true;
48764
+ };
48765
+ const useDataTablePagination = (options = {}) => {
48738
48766
  const currentPage = ref(options.initialPage ?? 1);
48739
48767
  const pageSize = ref(options.initialPageSize ?? 20);
48740
48768
  const totalItems = ref(0);
@@ -48769,7 +48797,181 @@ const useDataStorePagination = (options = {}) => {
48769
48797
  ensureItemOnPage
48770
48798
  };
48771
48799
  };
48772
- const DATA_STORE_COLUMN_TYPES = ["string", "number", "boolean", "date"];
48800
+ const useAgGrid = ({
48801
+ gridContainerRef,
48802
+ defaultSortColumn,
48803
+ pinnedBottomRowId,
48804
+ defaultColDef
48805
+ }) => {
48806
+ const gridApi = ref(null);
48807
+ const isTextEditorOpen = ref(false);
48808
+ const currentSortBy = ref(defaultSortColumn);
48809
+ const currentSortOrder = ref("asc");
48810
+ const initializedGridApi = computed(() => {
48811
+ if (!gridApi.value) {
48812
+ throw new Error("Grid API is not initialized");
48813
+ }
48814
+ return gridApi.value;
48815
+ });
48816
+ const onClipboardPaste = (data) => {
48817
+ if (!gridApi.value) return;
48818
+ const focusedCell = initializedGridApi.value.getFocusedCell();
48819
+ const isEditing2 = initializedGridApi.value.getEditingCells().length > 0;
48820
+ if (!focusedCell || isEditing2) return;
48821
+ const row = initializedGridApi.value.getDisplayedRowAtIndex(focusedCell.rowIndex);
48822
+ if (!row) return;
48823
+ const colDef = focusedCell.column.getColDef();
48824
+ if (colDef.cellDataType === "text") {
48825
+ row.setDataValue(focusedCell.column.getColId(), data);
48826
+ } else if (colDef.cellDataType === "number") {
48827
+ if (!Number.isNaN(Number(data))) {
48828
+ row.setDataValue(focusedCell.column.getColId(), Number(data));
48829
+ }
48830
+ } else if (colDef.cellDataType === "date") {
48831
+ if (!Number.isNaN(Date.parse(data))) {
48832
+ row.setDataValue(focusedCell.column.getColId(), new Date(data));
48833
+ }
48834
+ } else if (colDef.cellDataType === "boolean") {
48835
+ if (data.toLowerCase() === "true") {
48836
+ row.setDataValue(focusedCell.column.getColId(), true);
48837
+ } else if (data.toLowerCase() === "false") {
48838
+ row.setDataValue(focusedCell.column.getColId(), false);
48839
+ }
48840
+ }
48841
+ };
48842
+ const { copy: copyToClipboard } = useClipboard({
48843
+ onPaste: onClipboardPaste
48844
+ });
48845
+ const lastFocusedCell = ref(null);
48846
+ const onGridReady = (params) => {
48847
+ gridApi.value = params.api;
48848
+ if (gridContainerRef.value) {
48849
+ params.api.setGridOption("popupParent", gridContainerRef.value);
48850
+ }
48851
+ if (defaultColDef) {
48852
+ params.api.setGridOption("defaultColDef", defaultColDef);
48853
+ }
48854
+ };
48855
+ const setGridData = ({
48856
+ colDefs,
48857
+ rowData
48858
+ }) => {
48859
+ if (colDefs) {
48860
+ initializedGridApi.value.setGridOption("columnDefs", colDefs);
48861
+ }
48862
+ if (rowData) {
48863
+ initializedGridApi.value.setGridOption("rowData", rowData);
48864
+ }
48865
+ {
48866
+ initializedGridApi.value.setGridOption("pinnedBottomRowData", [{ id: pinnedBottomRowId }]);
48867
+ }
48868
+ };
48869
+ const focusFirstEditableCell = (rowId, excludeColumnId) => {
48870
+ const rowNode = initializedGridApi.value.getRowNode(String(rowId));
48871
+ if (rowNode?.rowIndex === null || rowNode?.rowIndex === void 0) return;
48872
+ const rowIndex = rowNode.rowIndex;
48873
+ const displayed = initializedGridApi.value.getAllDisplayedColumns();
48874
+ const firstEditable = displayed.find((col) => {
48875
+ const def = col.getColDef();
48876
+ if (!def) return false;
48877
+ if (excludeColumnId && def.colId === excludeColumnId) return false;
48878
+ return !!def.editable;
48879
+ });
48880
+ if (!firstEditable) return;
48881
+ const columnId = firstEditable.getColId();
48882
+ requestAnimationFrame(() => {
48883
+ initializedGridApi.value.ensureIndexVisible(rowIndex);
48884
+ requestAnimationFrame(() => {
48885
+ initializedGridApi.value.setFocusedCell(rowIndex, columnId);
48886
+ initializedGridApi.value.startEditingCell({
48887
+ rowIndex,
48888
+ colKey: columnId
48889
+ });
48890
+ });
48891
+ });
48892
+ };
48893
+ const onCellEditingStarted = (params) => {
48894
+ if (params.column.getColDef().cellDataType === "text") {
48895
+ isTextEditorOpen.value = true;
48896
+ } else {
48897
+ isTextEditorOpen.value = false;
48898
+ }
48899
+ };
48900
+ const onCellEditingStopped = (params) => {
48901
+ if (params.column.getColDef().cellDataType === "text") {
48902
+ isTextEditorOpen.value = false;
48903
+ }
48904
+ };
48905
+ const handleCopyFocusedCell = async (params) => {
48906
+ const focused = params.api.getFocusedCell();
48907
+ if (!focused) {
48908
+ return;
48909
+ }
48910
+ const row = params.api.getDisplayedRowAtIndex(focused.rowIndex);
48911
+ const colDef = focused.column.getColDef();
48912
+ if (row?.data && colDef.field) {
48913
+ const rawValue = row.data[colDef.field];
48914
+ const text = rawValue === null || rawValue === void 0 ? "" : String(rawValue);
48915
+ await copyToClipboard(text);
48916
+ }
48917
+ };
48918
+ const onCellClicked = (params) => {
48919
+ const clickedCellColumn = params.column.getColId();
48920
+ const clickedCellRow = params.rowIndex;
48921
+ if (clickedCellRow === null || params.api.isEditing({
48922
+ rowIndex: clickedCellRow,
48923
+ column: params.column,
48924
+ rowPinned: null
48925
+ }))
48926
+ return;
48927
+ const wasAlreadyFocused = lastFocusedCell.value && lastFocusedCell.value.rowIndex === clickedCellRow && lastFocusedCell.value.colId === clickedCellColumn;
48928
+ if (wasAlreadyFocused && params.column.getColDef()?.editable) {
48929
+ params.api.startEditingCell({
48930
+ rowIndex: clickedCellRow,
48931
+ colKey: clickedCellColumn
48932
+ });
48933
+ }
48934
+ lastFocusedCell.value = {
48935
+ rowIndex: clickedCellRow,
48936
+ colId: clickedCellColumn
48937
+ };
48938
+ };
48939
+ const resetLastFocusedCell = () => {
48940
+ lastFocusedCell.value = null;
48941
+ };
48942
+ const onSortChanged2 = (event, colDefs) => {
48943
+ const sortedColumn = event.columns?.filter((col) => col.getSort() !== null).pop() ?? null;
48944
+ if (sortedColumn) {
48945
+ const colId = sortedColumn.getColId();
48946
+ const columnDef = colDefs.find((col) => col.colId === colId);
48947
+ currentSortBy.value = columnDef?.field ?? colId;
48948
+ currentSortOrder.value = sortedColumn.getSort() ?? "asc";
48949
+ } else {
48950
+ currentSortBy.value = defaultSortColumn;
48951
+ currentSortOrder.value = "asc";
48952
+ }
48953
+ };
48954
+ onClickOutside(gridContainerRef, () => {
48955
+ resetLastFocusedCell();
48956
+ initializedGridApi.value.clearFocusedCell();
48957
+ });
48958
+ return {
48959
+ gridApi: initializedGridApi,
48960
+ onGridReady,
48961
+ setGridData,
48962
+ focusFirstEditableCell,
48963
+ onCellEditingStarted,
48964
+ onCellEditingStopped,
48965
+ handleCopyFocusedCell,
48966
+ onCellClicked,
48967
+ resetLastFocusedCell,
48968
+ currentSortBy,
48969
+ currentSortOrder,
48970
+ onSortChanged: onSortChanged2,
48971
+ isTextEditorOpen
48972
+ };
48973
+ };
48974
+ const DATA_TABLE_COLUMN_TYPES = ["string", "number", "boolean", "date"];
48773
48975
  const AG_GRID_CELL_TYPES = [
48774
48976
  "text",
48775
48977
  "number",
@@ -48778,22 +48980,21 @@ const AG_GRID_CELL_TYPES = [
48778
48980
  "dateString",
48779
48981
  "object"
48780
48982
  ];
48781
- const isDataStoreValue = (value) => {
48983
+ const isDataTableValue = (value) => {
48782
48984
  return value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean" || value instanceof Date;
48783
48985
  };
48784
48986
  const isAGGridCellType = (value) => {
48785
48987
  return typeof value === "string" && AG_GRID_CELL_TYPES.includes(value);
48786
48988
  };
48787
- const useDataStoreTypes = () => {
48989
+ const useDataTableTypes = () => {
48788
48990
  const getIconForType = (type) => DATA_TYPE_ICON_MAP[type];
48789
- const i18n = useI18n();
48790
48991
  const mapToAGCellType = (colType) => {
48791
48992
  if (colType === "string") {
48792
48993
  return "text";
48793
48994
  }
48794
48995
  return colType;
48795
48996
  };
48796
- const mapToDataStoreColumnType = (colType) => {
48997
+ const mapToDataTableColumnType = (colType) => {
48797
48998
  if (!isAGGridCellType(colType)) {
48798
48999
  return "string";
48799
49000
  }
@@ -48802,52 +49003,16 @@ const useDataStoreTypes = () => {
48802
49003
  }
48803
49004
  return colType;
48804
49005
  };
48805
- const getDefaultValueForType = (colType) => {
48806
- switch (colType) {
48807
- case "string":
48808
- return "";
48809
- case "number":
48810
- return 0;
48811
- case "boolean":
48812
- return false;
48813
- case "date":
48814
- return null;
48815
- default:
48816
- return null;
48817
- }
48818
- };
48819
- const getAddColumnError = (error) => {
48820
- const DEFAULT_HTTP_STATUS = 500;
48821
- const DEFAULT_MESSAGE = i18n.baseText("generic.unknownError");
48822
- if (error instanceof ResponseError) {
48823
- return {
48824
- httpStatus: error.httpStatusCode ?? 500,
48825
- message: error.message
48826
- };
48827
- }
48828
- if (error instanceof Error) {
48829
- return {
48830
- httpStatus: DEFAULT_HTTP_STATUS,
48831
- message: error.message
48832
- };
48833
- }
48834
- return {
48835
- httpStatus: DEFAULT_HTTP_STATUS,
48836
- message: DEFAULT_MESSAGE
48837
- };
48838
- };
48839
49006
  return {
48840
49007
  getIconForType,
48841
49008
  mapToAGCellType,
48842
- mapToDataStoreColumnType,
48843
- getDefaultValueForType,
48844
- getAddColumnError
49009
+ mapToDataTableColumnType
48845
49010
  };
48846
49011
  };
48847
- const _hoisted_1$3 = { class: "data-store-column-header-icon-wrapper" };
49012
+ const _hoisted_1$3 = { class: "data-table-column-header-icon-wrapper" };
48848
49013
  const _hoisted_2$2 = {
48849
49014
  class: "ag-header-cell-text",
48850
- "data-test-id": "data-store-column-header-text"
49015
+ "data-test-id": "data-table-column-header-text"
48851
49016
  };
48852
49017
  const _hoisted_3$1 = {
48853
49018
  key: 1,
@@ -48860,7 +49025,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
48860
49025
  },
48861
49026
  setup(__props) {
48862
49027
  const props = __props;
48863
- const { getIconForType, mapToDataStoreColumnType } = useDataStoreTypes();
49028
+ const { getIconForType, mapToDataTableColumnType } = useDataTableTypes();
48864
49029
  const i18n = useI18n();
48865
49030
  const isHovered = ref(false);
48866
49031
  const isDropdownOpen = ref(false);
@@ -48911,14 +49076,14 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
48911
49076
  if (!isAGGridCellType(cellDataType)) {
48912
49077
  return null;
48913
49078
  }
48914
- return getIconForType(mapToDataStoreColumnType(cellDataType));
49079
+ return getIconForType(mapToDataTableColumnType(cellDataType));
48915
49080
  });
48916
49081
  const columnActionItems = [
48917
49082
  {
48918
49083
  id: "delete",
48919
- label: i18n.baseText("dataStore.deleteColumn.confirm.title"),
49084
+ label: i18n.baseText("dataTable.deleteColumn.confirm.title"),
48920
49085
  icon: "trash-2",
48921
- customClass: "data-store-column-header-action-item"
49086
+ customClass: "data-table-column-header-action-item"
48922
49087
  }
48923
49088
  ];
48924
49089
  const isSortable = computed(() => {
@@ -48961,8 +49126,8 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
48961
49126
  });
48962
49127
  return (_ctx, _cache) => {
48963
49128
  return openBlock(), createElementBlock("div", {
48964
- class: normalizeClass(["ag-header-cell-label", "data-store-column-header-wrapper", { sortable: isSortable.value }]),
48965
- "data-test-id": "data-store-column-header",
49129
+ class: normalizeClass(["ag-header-cell-label", "data-table-column-header-wrapper", { sortable: isSortable.value }]),
49130
+ "data-test-id": "data-table-column-header",
48966
49131
  onMouseenter: onMouseEnter,
48967
49132
  onMouseleave: onMouseLeave,
48968
49133
  onClick: onHeaderClick
@@ -48986,6 +49151,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
48986
49151
  ])) : createCommentVNode("", true)
48987
49152
  ]),
48988
49153
  withDirectives(createVNode(unref(_sfc_main$a), {
49154
+ "data-test-id": "data-table-column-header-filter-button",
48989
49155
  icon: "funnel",
48990
49156
  type: "tertiary",
48991
49157
  text: "",
@@ -48995,7 +49161,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
48995
49161
  [vShow, isFilterButtonVisible.value]
48996
49162
  ]),
48997
49163
  withDirectives(createVNode(unref(N8nActionDropdown), {
48998
- "data-test-id": "data-store-column-header-actions",
49164
+ "data-test-id": "data-table-column-header-actions",
48999
49165
  items: columnActionItems,
49000
49166
  placement: "bottom-start",
49001
49167
  "activator-icon": "ellipsis",
@@ -49158,10 +49324,10 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
49158
49324
  return openBlock(), createElementBlock("div", {
49159
49325
  ref_key: "wrapperRef",
49160
49326
  ref: wrapperRef,
49161
- class: "datastore-datepicker-wrapper"
49327
+ class: "data-table-datepicker-wrapper"
49162
49328
  }, [
49163
49329
  createVNode(unref(ElDatePicker), {
49164
- id: "datastore-datepicker",
49330
+ id: "data-table-datepicker",
49165
49331
  ref_key: "pickerRef",
49166
49332
  ref: pickerRef,
49167
49333
  modelValue: dateValueComputed.value,
@@ -49171,7 +49337,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
49171
49337
  clearable: true,
49172
49338
  editable: true,
49173
49339
  teleported: false,
49174
- "popper-class": "ag-custom-component-popup datastore-datepicker-popper",
49340
+ "popper-class": "ag-custom-component-popup data-table-datepicker-popper",
49175
49341
  placeholder: "YYYY-MM-DD (HH:mm:ss)",
49176
49342
  size: "small",
49177
49343
  onChange: unref(onDateChange),
@@ -49224,7 +49390,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
49224
49390
  return openBlock(), createElementBlock("div", {
49225
49391
  ref_key: "wrapperRef",
49226
49392
  ref: wrapperRef,
49227
- class: "datastore-date-filter-wrapper"
49393
+ class: "data-table-date-filter-wrapper"
49228
49394
  }, [
49229
49395
  createVNode(unref(ElDatePicker), {
49230
49396
  ref_key: "pickerRef",
@@ -49236,7 +49402,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
49236
49402
  editable: true,
49237
49403
  teleported: true,
49238
49404
  placement: "bottom",
49239
- "popper-class": "ag-custom-component-popup datastore-date-filter-popper",
49405
+ "popper-class": "ag-custom-component-popup data-table-date-filter-popper",
49240
49406
  placeholder: "YYYY-MM-DD (HH:mm:ss)",
49241
49407
  size: "small",
49242
49408
  onChange: unref(onDateChange),
@@ -49268,12 +49434,12 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49268
49434
  setup(__props) {
49269
49435
  const props = __props;
49270
49436
  const i18n = useI18n();
49271
- const { getIconForType } = useDataStoreTypes();
49437
+ const { getIconForType } = useDataTableTypes();
49272
49438
  const { debounce } = useDebounce();
49273
49439
  const nameInputRef = ref(null);
49274
49440
  const columnName = ref("");
49275
49441
  const columnType = ref("string");
49276
- const columnTypes = [...DATA_STORE_COLUMN_TYPES];
49442
+ const columnTypes = [...DATA_TABLE_COLUMN_TYPES];
49277
49443
  const error = ref(null);
49278
49444
  const popoverOpen = ref(false);
49279
49445
  const isSelectOpen = ref(false);
@@ -49294,13 +49460,13 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49294
49460
  type: columnType.value
49295
49461
  });
49296
49462
  if (!response.success) {
49297
- let errorMessage = i18n.baseText("dataStore.addColumn.error");
49463
+ let errorMessage = i18n.baseText("dataTable.addColumn.error");
49298
49464
  let errorDescription = response.errorMessage;
49299
49465
  if (response.httpStatus === 409) {
49300
- errorMessage = i18n.baseText("dataStore.addColumn.alreadyExistsError", {
49466
+ errorMessage = i18n.baseText("dataTable.addColumn.alreadyExistsError", {
49301
49467
  interpolate: { name: columnName.value }
49302
49468
  });
49303
- errorDescription = response.errorMessage?.includes("system") ? i18n.baseText("dataStore.addColumn.systemColumnDescription") : response.errorMessage?.includes("testing") ? i18n.baseText("dataStore.addColumn.testingColumnDescription") : i18n.baseText("dataStore.addColumn.alreadyExistsDescription");
49469
+ errorDescription = response.errorMessage?.includes("system") ? i18n.baseText("dataTable.addColumn.systemColumnDescription") : response.errorMessage?.includes("testing") ? i18n.baseText("dataTable.addColumn.testingColumnDescription") : i18n.baseText("dataTable.addColumn.alreadyExistsDescription");
49304
49470
  }
49305
49471
  error.value = {
49306
49472
  message: errorMessage,
@@ -49329,8 +49495,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49329
49495
  }
49330
49496
  if (columnName.value && !COLUMN_NAME_REGEX.test(columnName.value)) {
49331
49497
  error.value = {
49332
- message: i18n.baseText("dataStore.addColumn.invalidName.error"),
49333
- description: i18n.baseText("dataStore.addColumn.invalidName.description")
49498
+ message: i18n.baseText("dataTable.addColumn.invalidName.error"),
49499
+ description: i18n.baseText("dataTable.addColumn.invalidName.description")
49334
49500
  };
49335
49501
  }
49336
49502
  };
@@ -49338,7 +49504,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49338
49504
  return (_ctx, _cache) => {
49339
49505
  return openBlock(), createBlock(unref(N8nTooltip), {
49340
49506
  disabled: popoverOpen.value,
49341
- content: unref(i18n).baseText("dataStore.addColumn.label")
49507
+ content: unref(i18n).baseText("dataTable.addColumn.label")
49342
49508
  }, {
49343
49509
  default: withCtx(() => [
49344
49510
  createBaseVNode("div", _hoisted_1$2, [
@@ -49352,16 +49518,16 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49352
49518
  trigger: withCtx(() => [
49353
49519
  props.useTextTrigger ? (openBlock(), createBlock(unref(N8nButton), {
49354
49520
  key: 0,
49355
- "data-test-id": "data-store-add-column-trigger-button",
49521
+ "data-test-id": "data-table-add-column-trigger-button",
49356
49522
  type: "tertiary"
49357
49523
  }, {
49358
49524
  default: withCtx(() => [
49359
- createTextVNode(toDisplayString(unref(i18n).baseText("dataStore.addColumn.label")), 1)
49525
+ createTextVNode(toDisplayString(unref(i18n).baseText("dataTable.addColumn.label")), 1)
49360
49526
  ]),
49361
49527
  _: 1
49362
49528
  })) : (openBlock(), createBlock(unref(_sfc_main$a), {
49363
49529
  key: 1,
49364
- "data-test-id": "data-store-add-column-trigger-button",
49530
+ "data-test-id": "data-table-add-column-trigger-button",
49365
49531
  text: "",
49366
49532
  icon: "plus",
49367
49533
  type: "tertiary"
@@ -49371,7 +49537,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49371
49537
  createBaseVNode("div", _hoisted_2$1, [
49372
49538
  createBaseVNode("div", _hoisted_3, [
49373
49539
  createVNode(unref(N8nInputLabel), {
49374
- label: unref(i18n).baseText("dataStore.addColumn.nameInput.label"),
49540
+ label: unref(i18n).baseText("dataTable.addColumn.nameInput.label"),
49375
49541
  required: true,
49376
49542
  class: normalizeClass(error.value ? "" : "mb-s")
49377
49543
  }, {
@@ -49381,8 +49547,9 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49381
49547
  ref: nameInputRef,
49382
49548
  modelValue: columnName.value,
49383
49549
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => columnName.value = $event),
49384
- placeholder: unref(i18n).baseText("dataStore.addColumn.nameInput.placeholder"),
49550
+ placeholder: unref(i18n).baseText("dataTable.addColumn.nameInput.placeholder"),
49385
49551
  maxlength: unref(MAX_COLUMN_NAME_LENGTH),
49552
+ "data-test-id": "add-column-name-input",
49386
49553
  onKeyup: withKeys(onAddButtonClicked, ["enter"]),
49387
49554
  onInput: unref(onInput)
49388
49555
  }, null, 8, ["modelValue", "placeholder", "maxlength", "onInput"]),
@@ -49419,7 +49586,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49419
49586
  _: 1
49420
49587
  }, 8, ["label", "class"]),
49421
49588
  createVNode(unref(N8nInputLabel), {
49422
- label: unref(i18n).baseText("dataStore.addColumn.typeInput.label"),
49589
+ label: unref(i18n).baseText("dataTable.addColumn.typeInput.label"),
49423
49590
  required: true,
49424
49591
  class: "type-label"
49425
49592
  }, {
@@ -49460,7 +49627,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49460
49627
  _: 1
49461
49628
  }, 8, ["label"]),
49462
49629
  createVNode(unref(N8nButton), {
49463
- "data-test-id": "data-store-add-column-submit-button",
49630
+ "data-test-id": "data-table-add-column-submit-button",
49464
49631
  type: "primary",
49465
49632
  class: "mt-m",
49466
49633
  size: "large",
@@ -49468,7 +49635,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49468
49635
  onClick: onAddButtonClicked
49469
49636
  }, {
49470
49637
  default: withCtx(() => [
49471
- createTextVNode(toDisplayString(unref(i18n).baseText("dataStore.addColumn.label")), 1)
49638
+ createTextVNode(toDisplayString(unref(i18n).baseText("dataTable.addColumn.label")), 1)
49472
49639
  ]),
49473
49640
  _: 1
49474
49641
  }, 8, ["disabled"])
@@ -49494,7 +49661,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
49494
49661
  const props = __props;
49495
49662
  return (_ctx, _cache) => {
49496
49663
  return openBlock(), createBlock(unref(N8nTooltip), {
49497
- content: unref(i18n).baseText("dataStore.addRow.label")
49664
+ content: unref(i18n).baseText("dataTable.addRow.label")
49498
49665
  }, {
49499
49666
  default: withCtx(() => [
49500
49667
  createVNode(unref(_sfc_main$a), {
@@ -49552,10 +49719,16 @@ const createCellRendererSelector = (col) => (params) => {
49552
49719
  rowValue = null;
49553
49720
  }
49554
49721
  if (rowValue === null) {
49555
- return { component: _sfc_main$2, params: { value: NULL_VALUE } };
49722
+ return {
49723
+ component: _sfc_main$2,
49724
+ params: { value: NULL_VALUE }
49725
+ };
49556
49726
  }
49557
49727
  if (rowValue === "") {
49558
- return { component: _sfc_main$2, params: { value: EMPTY_VALUE } };
49728
+ return {
49729
+ component: _sfc_main$2,
49730
+ params: { value: EMPTY_VALUE }
49731
+ };
49559
49732
  }
49560
49733
  return void 0;
49561
49734
  };
@@ -49565,7 +49738,7 @@ const createStringValueSetter = (col, isTextEditorOpen) => (params) => {
49565
49738
  originalValue = null;
49566
49739
  }
49567
49740
  let newValue = params.newValue;
49568
- if (!isDataStoreValue(newValue)) {
49741
+ if (!isDataTableValue(newValue)) {
49569
49742
  return false;
49570
49743
  }
49571
49744
  if (originalValue === null && newValue === "") {
@@ -49598,61 +49771,61 @@ const numberValueFormatter = (params) => {
49598
49771
  };
49599
49772
  const createNullFilterOption = (i18n) => ({
49600
49773
  displayKey: "null",
49601
- displayName: i18n.baseText("dataStore.filters.isNull"),
49774
+ displayName: i18n.baseText("dataTable.filters.isNull"),
49602
49775
  predicate: () => true,
49603
49776
  numberOfInputs: 0
49604
49777
  });
49605
49778
  const createNotNullFilterOption = (i18n) => ({
49606
49779
  displayKey: "notNull",
49607
- displayName: i18n.baseText("dataStore.filters.isNotNull"),
49780
+ displayName: i18n.baseText("dataTable.filters.isNotNull"),
49608
49781
  predicate: () => true,
49609
49782
  numberOfInputs: 0
49610
49783
  });
49611
49784
  const createIsEmptyFilterOption = (i18n) => ({
49612
49785
  displayKey: "isEmpty",
49613
- displayName: i18n.baseText("dataStore.filters.isEmpty"),
49786
+ displayName: i18n.baseText("dataTable.filters.isEmpty"),
49614
49787
  predicate: () => true,
49615
49788
  numberOfInputs: 0
49616
49789
  });
49617
49790
  const createIsNotEmptyFilterOption = (i18n) => ({
49618
49791
  displayKey: "notEmpty",
49619
- displayName: i18n.baseText("dataStore.filters.isNotEmpty"),
49792
+ displayName: i18n.baseText("dataTable.filters.isNotEmpty"),
49620
49793
  predicate: () => true,
49621
49794
  numberOfInputs: 0
49622
49795
  });
49623
49796
  const createBetweenFilterOption = (i18n) => ({
49624
49797
  displayKey: "between",
49625
- displayName: i18n.baseText("dataStore.filters.between"),
49798
+ displayName: i18n.baseText("dataTable.filters.between"),
49626
49799
  predicate: () => true,
49627
49800
  numberOfInputs: 2
49628
49801
  });
49629
49802
  const createGreaterThanFilterOption = (i18n) => ({
49630
49803
  displayKey: "greaterThan",
49631
- displayName: i18n.baseText("dataStore.filters.greaterThan"),
49804
+ displayName: i18n.baseText("dataTable.filters.greaterThan"),
49632
49805
  predicate: () => true,
49633
49806
  numberOfInputs: 1
49634
49807
  });
49635
49808
  const createGreaterThanOrEqualFilterOption = (i18n) => ({
49636
49809
  displayKey: "greaterThanOrEqual",
49637
- displayName: i18n.baseText("dataStore.filters.greaterThanOrEqual"),
49810
+ displayName: i18n.baseText("dataTable.filters.greaterThanOrEqual"),
49638
49811
  predicate: () => true,
49639
49812
  numberOfInputs: 1
49640
49813
  });
49641
49814
  const createLessThanFilterOption = (i18n) => ({
49642
49815
  displayKey: "lessThan",
49643
- displayName: i18n.baseText("dataStore.filters.lessThan"),
49816
+ displayName: i18n.baseText("dataTable.filters.lessThan"),
49644
49817
  predicate: () => true,
49645
49818
  numberOfInputs: 1
49646
49819
  });
49647
49820
  const createLessThanOrEqualFilterOption = (i18n) => ({
49648
49821
  displayKey: "lessThanOrEqual",
49649
- displayName: i18n.baseText("dataStore.filters.lessThanOrEqual"),
49822
+ displayName: i18n.baseText("dataTable.filters.lessThanOrEqual"),
49650
49823
  predicate: () => true,
49651
49824
  numberOfInputs: 1
49652
49825
  });
49653
49826
  const createInRangeFilterOption = (i18n) => ({
49654
49827
  displayKey: "inRange",
49655
- displayName: i18n.baseText("dataStore.filters.between"),
49828
+ displayName: i18n.baseText("dataTable.filters.between"),
49656
49829
  predicate: () => true,
49657
49830
  numberOfInputs: 2
49658
49831
  });
@@ -49691,93 +49864,92 @@ const getBooleanColumnFilterOptions = (i18n) => [
49691
49864
  "empty",
49692
49865
  {
49693
49866
  displayKey: "true",
49694
- displayName: i18n.baseText("dataStore.filters.true"),
49867
+ displayName: i18n.baseText("dataTable.filters.true"),
49695
49868
  numberOfInputs: 0,
49696
49869
  predicate: () => true
49697
49870
  },
49698
49871
  {
49699
49872
  displayKey: "false",
49700
- displayName: i18n.baseText("dataStore.filters.false"),
49873
+ displayName: i18n.baseText("dataTable.filters.false"),
49701
49874
  numberOfInputs: 0,
49702
49875
  predicate: () => true
49703
49876
  },
49704
49877
  createNullFilterOption(i18n),
49705
49878
  createNotNullFilterOption(i18n)
49706
49879
  ];
49707
- const useDataStoreGridBase = ({
49708
- gridContainerRef,
49880
+ const SPECIAL_COLUMNS = [DEFAULT_ID_COLUMN_NAME, "add-column", "ag-Grid-SelectionColumn"];
49881
+ const MAX_CONDITIONS = 1;
49882
+ const GRID_FILTER_CONFIG = {
49883
+ defaultColDef: {
49884
+ filter: true,
49885
+ filterParams: {
49886
+ maxNumConditions: MAX_CONDITIONS,
49887
+ buttons: ["reset"]
49888
+ }
49889
+ },
49890
+ excludedColumns: SPECIAL_COLUMNS
49891
+ };
49892
+ const TEXT_TYPE_TO_BACKEND_MAP = {
49893
+ contains: "ilike",
49894
+ equals: "eq",
49895
+ notEqual: "neq",
49896
+ startsWith: "ilike",
49897
+ endsWith: "ilike",
49898
+ isEmpty: "eq",
49899
+ notEmpty: "neq",
49900
+ null: "eq",
49901
+ notNull: "neq",
49902
+ true: "eq",
49903
+ false: "eq"
49904
+ };
49905
+ const NUMBER_DATE_TYPE_TO_BACKEND_MAP = {
49906
+ equals: "eq",
49907
+ notEqual: "neq",
49908
+ lessThan: "lt",
49909
+ lessThanOrEqual: "lte",
49910
+ greaterThan: "gt",
49911
+ greaterThanOrEqual: "gte",
49912
+ null: "eq",
49913
+ notNull: "neq"
49914
+ };
49915
+ function mapTextTypeToBackend(type) {
49916
+ const condition = TEXT_TYPE_TO_BACKEND_MAP[type];
49917
+ if (!condition) {
49918
+ throw new Error(`Unknown text type: ${type}`);
49919
+ }
49920
+ return condition;
49921
+ }
49922
+ function mapNumberDateTypeToBackend(type) {
49923
+ const condition = NUMBER_DATE_TYPE_TO_BACKEND_MAP[type];
49924
+ if (!condition) {
49925
+ throw new Error(`Unknown number/date type: ${type}`);
49926
+ }
49927
+ return condition;
49928
+ }
49929
+ const useDataTableColumns = ({
49709
49930
  onDeleteColumn,
49710
49931
  onAddRowClick,
49711
- onAddColumn
49932
+ onAddColumn,
49933
+ isTextEditorOpen
49712
49934
  }) => {
49713
- const gridApi = ref(null);
49714
49935
  const colDefs = ref([]);
49715
- const isTextEditorOpen = ref(false);
49716
- const { mapToAGCellType } = useDataStoreTypes();
49717
- const { copy: copyToClipboard } = useClipboard({ onPaste: onClipboardPaste });
49936
+ const { mapToAGCellType } = useDataTableTypes();
49718
49937
  const i18n = useI18n();
49719
- const currentSortBy = ref(DEFAULT_ID_COLUMN_NAME);
49720
- const currentSortOrder = ref("asc");
49721
- const lastFocusedCell = ref(null);
49722
- const initializedGridApi = computed(() => {
49723
- if (!gridApi.value) {
49724
- throw new Error("Grid API is not initialized");
49725
- }
49726
- return gridApi.value;
49727
- });
49728
- const onGridReady = (params) => {
49729
- gridApi.value = params.api;
49730
- if (gridContainerRef.value) {
49731
- params.api.setGridOption("popupParent", gridContainerRef.value);
49732
- }
49733
- };
49734
- const setGridData = ({
49735
- colDefs: colDefs2,
49736
- rowData
49737
- }) => {
49738
- if (colDefs2) {
49739
- initializedGridApi.value.setGridOption("columnDefs", colDefs2);
49740
- }
49741
- if (rowData) {
49742
- initializedGridApi.value.setGridOption("rowData", rowData);
49743
- }
49744
- initializedGridApi.value.setGridOption("pinnedBottomRowData", [{ id: ADD_ROW_ROW_ID }]);
49745
- };
49746
- const focusFirstEditableCell = (rowId) => {
49747
- const rowNode = initializedGridApi.value.getRowNode(String(rowId));
49748
- if (rowNode?.rowIndex === null) return;
49749
- const rowIndex = rowNode.rowIndex;
49750
- const displayed = initializedGridApi.value.getAllDisplayedColumns();
49751
- const firstEditable = displayed.find((col) => {
49752
- const def = col.getColDef();
49753
- if (!def) return false;
49754
- if (def.colId === DEFAULT_ID_COLUMN_NAME) return false;
49755
- return !!def.editable;
49756
- });
49757
- if (!firstEditable) return;
49758
- const columnId = firstEditable.getColId();
49759
- requestAnimationFrame(() => {
49760
- initializedGridApi.value.ensureIndexVisible(rowIndex);
49761
- requestAnimationFrame(() => {
49762
- initializedGridApi.value.setFocusedCell(rowIndex, columnId);
49763
- initializedGridApi.value.startEditingCell({
49764
- rowIndex,
49765
- colKey: columnId
49766
- });
49767
- });
49768
- });
49769
- };
49770
49938
  const createColumnDef = (col, extraProps = {}) => {
49771
49939
  const columnDef = {
49772
49940
  colId: col.id,
49773
49941
  field: col.name,
49942
+ filter: !GRID_FILTER_CONFIG.excludedColumns.includes(col.id),
49774
49943
  headerName: col.name,
49775
49944
  sortable: true,
49776
49945
  editable: (params) => params.data?.id !== ADD_ROW_ROW_ID,
49777
49946
  resizable: true,
49778
49947
  lockPinned: true,
49779
49948
  headerComponent: _sfc_main$7,
49780
- headerComponentParams: { onDelete: onDeleteColumn, allowMenuActions: true },
49949
+ headerComponentParams: {
49950
+ onDelete: onDeleteColumn,
49951
+ allowMenuActions: true
49952
+ },
49781
49953
  cellEditorPopup: false,
49782
49954
  cellDataType: mapToAGCellType(col.type),
49783
49955
  cellClass: getCellClass,
@@ -49819,19 +49991,7 @@ const useDataStoreGridBase = ({
49819
49991
  ...extraProps
49820
49992
  };
49821
49993
  };
49822
- const onCellEditingStarted = (params) => {
49823
- if (params.column.getColDef().cellDataType === "text") {
49824
- isTextEditorOpen.value = true;
49825
- } else {
49826
- isTextEditorOpen.value = false;
49827
- }
49828
- };
49829
- const onCellEditingStopped = (params) => {
49830
- if (params.column.getColDef().cellDataType === "text") {
49831
- isTextEditorOpen.value = false;
49832
- }
49833
- };
49834
- const getColumnDefinitions = (dataStoreColumns) => {
49994
+ const getColumnDefinitions = (dataTableColumns) => {
49835
49995
  const systemDateColumnOptions = {
49836
49996
  editable: false,
49837
49997
  suppressMovable: true,
@@ -49845,8 +50005,8 @@ const useDataStoreGridBase = ({
49845
50005
  width: DEFAULT_COLUMN_WIDTH
49846
50006
  };
49847
50007
  return [
49848
- // Always add the ID column, it's not returned by the back-end but all data stores have it
49849
- // We use it as a placeholder for new datastores
50008
+ // Always add the ID column, it's not returned by the back-end but all data tables have it
50009
+ // We use it as a placeholder for new data tables
49850
50010
  createColumnDef(
49851
50011
  {
49852
50012
  id: DEFAULT_ID_COLUMN_NAME,
@@ -49856,11 +50016,10 @@ const useDataStoreGridBase = ({
49856
50016
  {
49857
50017
  editable: false,
49858
50018
  sortable: true,
49859
- filter: false,
49860
50019
  suppressMovable: true,
49861
50020
  lockPosition: true,
49862
- minWidth: DATA_STORE_ID_COLUMN_WIDTH,
49863
- maxWidth: DATA_STORE_ID_COLUMN_WIDTH,
50021
+ minWidth: DATA_TABLE_ID_COLUMN_WIDTH,
50022
+ maxWidth: DATA_TABLE_ID_COLUMN_WIDTH,
49864
50023
  resizable: false,
49865
50024
  headerClass: "system-column",
49866
50025
  headerComponentParams: {
@@ -49880,10 +50039,10 @@ const useDataStoreGridBase = ({
49880
50039
  }
49881
50040
  ),
49882
50041
  // Append other columns
49883
- ...orderBy(dataStoreColumns, "index").map((col) => createColumnDef(col)),
50042
+ ...orderBy(dataTableColumns, "index").map((col) => createColumnDef(col)),
49884
50043
  createColumnDef(
49885
50044
  {
49886
- index: dataStoreColumns.length + 1,
50045
+ index: dataTableColumns.length + 1,
49887
50046
  id: "createdAt",
49888
50047
  name: "createdAt",
49889
50048
  type: "date"
@@ -49892,7 +50051,7 @@ const useDataStoreGridBase = ({
49892
50051
  ),
49893
50052
  createColumnDef(
49894
50053
  {
49895
- index: dataStoreColumns.length + 2,
50054
+ index: dataTableColumns.length + 2,
49896
50055
  id: "updatedAt",
49897
50056
  name: "updatedAt",
49898
50057
  type: "date"
@@ -49901,7 +50060,7 @@ const useDataStoreGridBase = ({
49901
50060
  ),
49902
50061
  createColumnDef(
49903
50062
  {
49904
- index: dataStoreColumns.length + 3,
50063
+ index: dataTableColumns.length + 3,
49905
50064
  id: "add-column",
49906
50065
  name: "Add Column",
49907
50066
  type: "string"
@@ -49919,17 +50078,14 @@ const useDataStoreGridBase = ({
49919
50078
  )
49920
50079
  ];
49921
50080
  };
49922
- const loadColumns = (dataStoreColumns) => {
49923
- colDefs.value = getColumnDefinitions(dataStoreColumns);
49924
- setGridData({ colDefs: colDefs.value });
50081
+ const loadColumns = (dataTableColumns) => {
50082
+ colDefs.value = getColumnDefinitions(dataTableColumns);
49925
50083
  };
49926
50084
  const deleteColumn = (columnId) => {
49927
50085
  colDefs.value = colDefs.value.filter((col) => col.colId !== columnId);
49928
- setGridData({ colDefs: colDefs.value });
49929
50086
  };
49930
50087
  const insertColumnAtIndex = (column, index) => {
49931
50088
  colDefs.value.splice(index, 0, column);
49932
- setGridData({ colDefs: colDefs.value });
49933
50089
  };
49934
50090
  const addColumn = (column) => {
49935
50091
  colDefs.value = [
@@ -49937,7 +50093,6 @@ const useDataStoreGridBase = ({
49937
50093
  createColumnDef(column),
49938
50094
  ...colDefs.value.slice(-1)
49939
50095
  ];
49940
- setGridData({ colDefs: colDefs.value });
49941
50096
  };
49942
50097
  const moveColumn = (oldIndex, newIndex) => {
49943
50098
  const fromIndex = oldIndex - 1;
@@ -49945,107 +50100,21 @@ const useDataStoreGridBase = ({
49945
50100
  if (!columnToBeMoved) {
49946
50101
  return;
49947
50102
  }
49948
- const middleWithIndex = colDefs.value.slice(1, -1).map((col, index) => ({ ...col, index }));
49949
- const reorderedMiddle = reorderItem(middleWithIndex, fromIndex, newIndex).sort((a, b) => a.index - b.index).map(({ index, ...col }) => col);
50103
+ const middleWithIndex = colDefs.value.slice(1, -1).map((col, idx) => ({ column: col, index: idx }));
50104
+ const reorderedMiddle = reorderItem(middleWithIndex, fromIndex, newIndex).sort((a, b) => a.index - b.index).map(({ column }) => column);
49950
50105
  colDefs.value = [colDefs.value[0], ...reorderedMiddle, colDefs.value[colDefs.value.length - 1]];
49951
50106
  };
49952
- const handleCopyFocusedCell = async (params) => {
49953
- const focused = params.api.getFocusedCell();
49954
- if (!focused) {
49955
- return;
49956
- }
49957
- const row = params.api.getDisplayedRowAtIndex(focused.rowIndex);
49958
- const colDef = focused.column.getColDef();
49959
- if (row?.data && colDef.field) {
49960
- const rawValue = row.data[colDef.field];
49961
- const text = rawValue === null || rawValue === void 0 ? "" : String(rawValue);
49962
- await copyToClipboard(text);
49963
- }
49964
- };
49965
- function onClipboardPaste(data) {
49966
- const focusedCell = initializedGridApi.value.getFocusedCell();
49967
- const isEditing2 = initializedGridApi.value.getEditingCells().length > 0;
49968
- if (!focusedCell || isEditing2) return;
49969
- const row = initializedGridApi.value.getDisplayedRowAtIndex(focusedCell.rowIndex);
49970
- if (!row) return;
49971
- const colDef = focusedCell.column.getColDef();
49972
- if (colDef.cellDataType === "text") {
49973
- row.setDataValue(focusedCell.column.getColId(), data);
49974
- } else if (colDef.cellDataType === "number") {
49975
- if (!Number.isNaN(Number(data))) {
49976
- row.setDataValue(focusedCell.column.getColId(), Number(data));
49977
- }
49978
- } else if (colDef.cellDataType === "date") {
49979
- if (!Number.isNaN(Date.parse(data))) {
49980
- row.setDataValue(focusedCell.column.getColId(), new Date(data));
49981
- }
49982
- } else if (colDef.cellDataType === "boolean") {
49983
- if (data === "true") {
49984
- row.setDataValue(focusedCell.column.getColId(), true);
49985
- } else if (data === "false") {
49986
- row.setDataValue(focusedCell.column.getColId(), false);
49987
- }
49988
- }
49989
- }
49990
- const onCellClicked = (params) => {
49991
- const clickedCellColumn = params.column.getColId();
49992
- const clickedCellRow = params.rowIndex;
49993
- if (clickedCellRow === null || params.api.isEditing({ rowIndex: clickedCellRow, column: params.column, rowPinned: null }))
49994
- return;
49995
- const wasAlreadyFocused = lastFocusedCell.value && lastFocusedCell.value.rowIndex === clickedCellRow && lastFocusedCell.value.colId === clickedCellColumn;
49996
- if (wasAlreadyFocused && params.column.getColDef()?.editable) {
49997
- params.api.startEditingCell({
49998
- rowIndex: clickedCellRow,
49999
- colKey: clickedCellColumn
50000
- });
50001
- }
50002
- lastFocusedCell.value = {
50003
- rowIndex: clickedCellRow,
50004
- colId: clickedCellColumn
50005
- };
50006
- };
50007
- const resetLastFocusedCell = () => {
50008
- lastFocusedCell.value = null;
50009
- };
50010
- const onSortChanged2 = async (event) => {
50011
- const sortedColumn = event.columns?.filter((col) => col.getSort() !== null).pop() ?? null;
50012
- if (sortedColumn) {
50013
- const colId = sortedColumn.getColId();
50014
- const columnDef = colDefs.value.find((col) => col.colId === colId);
50015
- currentSortBy.value = columnDef?.field || colId;
50016
- currentSortOrder.value = sortedColumn.getSort() ?? "asc";
50017
- } else {
50018
- currentSortBy.value = DEFAULT_ID_COLUMN_NAME;
50019
- currentSortOrder.value = "asc";
50020
- }
50021
- };
50022
- onClickOutside(gridContainerRef, () => {
50023
- resetLastFocusedCell();
50024
- initializedGridApi.value.clearFocusedCell();
50025
- });
50026
50107
  return {
50027
- onGridReady,
50028
- setGridData,
50029
- focusFirstEditableCell,
50030
- onCellEditingStarted,
50031
- onCellEditingStopped,
50108
+ colDefs,
50032
50109
  createColumnDef,
50033
50110
  loadColumns,
50034
- colDefs,
50035
50111
  deleteColumn,
50036
50112
  insertColumnAtIndex,
50037
50113
  addColumn,
50038
- moveColumn,
50039
- gridApi: initializedGridApi,
50040
- handleCopyFocusedCell,
50041
- onCellClicked,
50042
- resetLastFocusedCell,
50043
- currentSortBy,
50044
- currentSortOrder,
50045
- onSortChanged: onSortChanged2
50114
+ moveColumn
50046
50115
  };
50047
50116
  };
50048
- const useDataStoreSelection = ({
50117
+ const useDataTableSelection = ({
50049
50118
  gridApi
50050
50119
  }) => {
50051
50120
  const selectedRowIds = ref(/* @__PURE__ */ new Set());
@@ -50078,7 +50147,7 @@ const useDataStoreSelection = ({
50078
50147
  handleClearSelection
50079
50148
  };
50080
50149
  };
50081
- const useDataStoreOperations = ({
50150
+ const useDataTableOperations = ({
50082
50151
  colDefs,
50083
50152
  rowData,
50084
50153
  deleteGridColumn,
@@ -50086,7 +50155,7 @@ const useDataStoreOperations = ({
50086
50155
  setGridData,
50087
50156
  insertGridColumnAtIndex,
50088
50157
  moveGridColumn,
50089
- dataStoreId,
50158
+ dataTableId,
50090
50159
  projectId,
50091
50160
  gridApi,
50092
50161
  totalItems,
@@ -50106,18 +50175,38 @@ const useDataStoreOperations = ({
50106
50175
  const i18n = useI18n();
50107
50176
  const toast = useToast();
50108
50177
  const message = useMessage();
50109
- const dataStoreStore = useDataStoreStore();
50178
+ const dataTableStore = useDataTableStore();
50110
50179
  const contentLoading = ref(false);
50111
50180
  const telemetry2 = useTelemetry();
50112
- const dataStoreTypes = useDataStoreTypes();
50181
+ const dataTableTypes = useDataTableTypes();
50182
+ const getAddColumnError = (error) => {
50183
+ const DEFAULT_HTTP_STATUS = 500;
50184
+ const DEFAULT_MESSAGE = i18n.baseText("generic.unknownError");
50185
+ if (error instanceof ResponseError) {
50186
+ return {
50187
+ httpStatus: error.httpStatusCode ?? 500,
50188
+ message: error.message
50189
+ };
50190
+ }
50191
+ if (error instanceof Error) {
50192
+ return {
50193
+ httpStatus: DEFAULT_HTTP_STATUS,
50194
+ message: error.message
50195
+ };
50196
+ }
50197
+ return {
50198
+ httpStatus: DEFAULT_HTTP_STATUS,
50199
+ message: DEFAULT_MESSAGE
50200
+ };
50201
+ };
50113
50202
  async function onDeleteColumn(columnId) {
50114
50203
  const columnToDelete = colDefs.value.find((col) => col.colId === columnId);
50115
50204
  if (!columnToDelete) return;
50116
50205
  const promptResponse = await message.confirm(
50117
- i18n.baseText("dataStore.deleteColumn.confirm.message", {
50206
+ i18n.baseText("dataTable.deleteColumn.confirm.message", {
50118
50207
  interpolate: { name: columnToDelete.headerName ?? "" }
50119
50208
  }),
50120
- i18n.baseText("dataStore.deleteColumn.confirm.title"),
50209
+ i18n.baseText("dataTable.deleteColumn.confirm.title"),
50121
50210
  {
50122
50211
  confirmButtonText: i18n.baseText("generic.delete"),
50123
50212
  cancelButtonText: i18n.baseText("generic.cancel")
@@ -50133,37 +50222,37 @@ const useDataStoreOperations = ({
50133
50222
  const { [columnToDelete.field]: _, ...rest } = row;
50134
50223
  return rest;
50135
50224
  });
50136
- setGridData({ rowData: rowData.value });
50225
+ setGridData({ colDefs: colDefs.value, rowData: rowData.value });
50137
50226
  try {
50138
- await dataStoreStore.deleteDataStoreColumn(dataStoreId, projectId, columnId);
50227
+ await dataTableStore.deleteDataTableColumn(dataTableId, projectId, columnId);
50139
50228
  telemetry2.track("User deleted data table column", {
50140
50229
  column_id: columnId,
50141
50230
  column_type: columnToDelete.cellDataType,
50142
- data_table_id: dataStoreId
50231
+ data_table_id: dataTableId
50143
50232
  });
50144
50233
  } catch (error) {
50145
- toast.showError(error, i18n.baseText("dataStore.deleteColumn.error"));
50234
+ toast.showError(error, i18n.baseText("dataTable.deleteColumn.error"));
50146
50235
  insertGridColumnAtIndex(columnToDelete, columnToDeleteIndex);
50147
50236
  rowData.value = rowDataOldValue;
50148
- setGridData({ rowData: rowData.value });
50237
+ setGridData({ colDefs: colDefs.value, rowData: rowData.value });
50149
50238
  }
50150
50239
  }
50151
50240
  async function onAddColumn(column) {
50152
50241
  try {
50153
- const newColumn = await dataStoreStore.addDataStoreColumn(dataStoreId, projectId, column);
50242
+ const newColumn = await dataTableStore.addDataTableColumn(dataTableId, projectId, column);
50154
50243
  addGridColumn(newColumn);
50155
50244
  rowData.value = rowData.value.map((row) => {
50156
50245
  return { ...row, [newColumn.name]: null };
50157
50246
  });
50158
- setGridData({ rowData: rowData.value });
50247
+ setGridData({ colDefs: colDefs.value, rowData: rowData.value });
50159
50248
  telemetry2.track("User added data table column", {
50160
50249
  column_id: newColumn.id,
50161
50250
  column_type: newColumn.type,
50162
- data_table_id: dataStoreId
50251
+ data_table_id: dataTableId
50163
50252
  });
50164
50253
  return { success: true, httpStatus: 200 };
50165
50254
  } catch (error) {
50166
- const addColumnError = dataStoreTypes.getAddColumnError(error);
50255
+ const addColumnError = getAddColumnError(error);
50167
50256
  return {
50168
50257
  success: false,
50169
50258
  httpStatus: addColumnError.httpStatus,
@@ -50178,15 +50267,15 @@ const useDataStoreOperations = ({
50178
50267
  const oldIndex = colDefs.value.findIndex((col) => col.colId === moveEvent.column.getColId());
50179
50268
  const newIndex = moveEvent.toIndex - 2;
50180
50269
  try {
50181
- await dataStoreStore.moveDataStoreColumn(
50182
- dataStoreId,
50270
+ await dataTableStore.moveDataTableColumn(
50271
+ dataTableId,
50183
50272
  projectId,
50184
50273
  moveEvent.column.getColId(),
50185
50274
  newIndex
50186
50275
  );
50187
50276
  moveGridColumn(oldIndex, newIndex);
50188
50277
  } catch (error) {
50189
- toast.showError(error, i18n.baseText("dataStore.moveColumn.error"));
50278
+ toast.showError(error, i18n.baseText("dataTable.moveColumn.error"));
50190
50279
  gridApi.value.moveColumnByIndex(moveEvent.toIndex, oldIndex + 1);
50191
50280
  }
50192
50281
  };
@@ -50195,17 +50284,17 @@ const useDataStoreOperations = ({
50195
50284
  await ensureItemOnPage(totalItems.value + 1);
50196
50285
  contentLoading.value = true;
50197
50286
  toggleSave(true);
50198
- const insertedRow = await dataStoreStore.insertEmptyRow(dataStoreId, projectId);
50287
+ const insertedRow = await dataTableStore.insertEmptyRow(dataTableId, projectId);
50199
50288
  const newRow = insertedRow;
50200
50289
  rowData.value.push(newRow);
50201
50290
  setTotalItems(totalItems.value + 1);
50202
50291
  setGridData({ rowData: rowData.value });
50203
50292
  focusFirstEditableCell(newRow.id);
50204
50293
  telemetry2.track("User added row to data table", {
50205
- data_table_id: dataStoreId
50294
+ data_table_id: dataTableId
50206
50295
  });
50207
50296
  } catch (error) {
50208
- toast.showError(error, i18n.baseText("dataStore.addRow.error"));
50297
+ toast.showError(error, i18n.baseText("dataTable.addRow.error"));
50209
50298
  } finally {
50210
50299
  toggleSave(false);
50211
50300
  contentLoading.value = false;
@@ -50216,7 +50305,7 @@ const useDataStoreOperations = ({
50216
50305
  const fieldName = String(colDef.field ?? "");
50217
50306
  if (!fieldName) return;
50218
50307
  const value = params.data[fieldName];
50219
- const cellType = isAGGridCellType(colDef.cellDataType) ? dataStoreTypes.mapToDataStoreColumnType(colDef.cellDataType) : void 0;
50308
+ const cellType = isAGGridCellType(colDef.cellDataType) ? dataTableTypes.mapToDataTableColumnType(colDef.cellDataType) : void 0;
50220
50309
  if (value === void 0 || areValuesEqual(oldValue, value, cellType)) {
50221
50310
  return;
50222
50311
  }
@@ -50226,30 +50315,33 @@ const useDataStoreOperations = ({
50226
50315
  const id = data.id;
50227
50316
  try {
50228
50317
  toggleSave(true);
50229
- await dataStoreStore.updateRow(dataStoreId, projectId, id, {
50318
+ await dataTableStore.updateRow(dataTableId, projectId, id, {
50230
50319
  [fieldName]: value
50231
50320
  });
50232
50321
  telemetry2.track("User edited data table content", {
50233
- data_table_id: dataStoreId,
50322
+ data_table_id: dataTableId,
50234
50323
  column_id: colDef.colId,
50235
50324
  column_type: colDef.cellDataType
50236
50325
  });
50237
50326
  } catch (error) {
50238
- const validOldValue = isDataStoreValue(oldValue) ? oldValue : null;
50239
- const revertedData = { ...data, [fieldName]: validOldValue };
50327
+ const validOldValue = isDataTableValue(oldValue) ? oldValue : null;
50328
+ const revertedData = {
50329
+ ...data,
50330
+ [fieldName]: validOldValue
50331
+ };
50240
50332
  api.applyTransaction({
50241
50333
  update: [revertedData]
50242
50334
  });
50243
- toast.showError(error, i18n.baseText("dataStore.updateRow.error"));
50335
+ toast.showError(error, i18n.baseText("dataTable.updateRow.error"));
50244
50336
  } finally {
50245
50337
  toggleSave(false);
50246
50338
  }
50247
50339
  };
50248
- async function fetchDataStoreRows() {
50340
+ async function fetchDataTableRows() {
50249
50341
  try {
50250
50342
  contentLoading.value = true;
50251
- const fetchedRows = await dataStoreStore.fetchDataStoreContent(
50252
- dataStoreId,
50343
+ const fetchedRows = await dataTableStore.fetchDataTableContent(
50344
+ dataTableId,
50253
50345
  projectId,
50254
50346
  currentPage.value,
50255
50347
  pageSize.value,
@@ -50261,7 +50353,7 @@ const useDataStoreOperations = ({
50261
50353
  setGridData({ rowData: rowData.value });
50262
50354
  handleClearSelection();
50263
50355
  } catch (error) {
50264
- toast.showError(error, i18n.baseText("dataStore.fetchContent.error"));
50356
+ toast.showError(error, i18n.baseText("dataTable.fetchContent.error"));
50265
50357
  } finally {
50266
50358
  contentLoading.value = false;
50267
50359
  }
@@ -50269,11 +50361,11 @@ const useDataStoreOperations = ({
50269
50361
  const handleDeleteSelected = async () => {
50270
50362
  if (selectedRowIds.value.size === 0) return;
50271
50363
  const confirmResponse = await message.confirm(
50272
- i18n.baseText("dataStore.deleteRows.confirmation", {
50364
+ i18n.baseText("dataTable.deleteRows.confirmation", {
50273
50365
  adjustToNumber: selectedRowIds.value.size,
50274
50366
  interpolate: { count: selectedRowIds.value.size }
50275
50367
  }),
50276
- i18n.baseText("dataStore.deleteRows.title"),
50368
+ i18n.baseText("dataTable.deleteRows.title"),
50277
50369
  {
50278
50370
  confirmButtonText: i18n.baseText("generic.delete"),
50279
50371
  cancelButtonText: i18n.baseText("generic.cancel")
@@ -50285,14 +50377,14 @@ const useDataStoreOperations = ({
50285
50377
  try {
50286
50378
  toggleSave(true);
50287
50379
  const idsToDelete = Array.from(selectedRowIds.value);
50288
- await dataStoreStore.deleteRows(dataStoreId, projectId, idsToDelete);
50289
- await fetchDataStoreRows();
50380
+ await dataTableStore.deleteRows(dataTableId, projectId, idsToDelete);
50381
+ await fetchDataTableRows();
50290
50382
  telemetry2.track("User deleted rows in data table", {
50291
- data_table_id: dataStoreId,
50383
+ data_table_id: dataTableId,
50292
50384
  deleted_row_count: idsToDelete.length
50293
50385
  });
50294
50386
  } catch (error) {
50295
- toast.showError(error, i18n.baseText("dataStore.deleteRows.error"));
50387
+ toast.showError(error, i18n.baseText("dataTable.deleteRows.error"));
50296
50388
  } finally {
50297
50389
  toggleSave(false);
50298
50390
  }
@@ -50327,60 +50419,11 @@ const useDataStoreOperations = ({
50327
50419
  onAddRowClick,
50328
50420
  contentLoading,
50329
50421
  onCellValueChanged,
50330
- fetchDataStoreRows,
50422
+ fetchDataTableRows,
50331
50423
  handleDeleteSelected,
50332
50424
  onCellKeyDown
50333
50425
  };
50334
50426
  };
50335
- const SPECIAL_COLUMNS = ["add-column", "ag-Grid-SelectionColumn"];
50336
- const isSpecialColumn = (value) => typeof value === "string" && SPECIAL_COLUMNS.includes(value);
50337
- const MAX_CONDITIONS = 1;
50338
- const GRID_FILTER_CONFIG = {
50339
- defaultColDef: {
50340
- filter: true,
50341
- filterParams: {
50342
- maxNumConditions: MAX_CONDITIONS,
50343
- buttons: ["reset"]
50344
- }
50345
- }
50346
- };
50347
- const TEXT_TYPE_TO_BACKEND_MAP = {
50348
- contains: "ilike",
50349
- equals: "eq",
50350
- notEqual: "neq",
50351
- startsWith: "ilike",
50352
- endsWith: "ilike",
50353
- isEmpty: "eq",
50354
- notEmpty: "neq",
50355
- null: "eq",
50356
- notNull: "neq",
50357
- true: "eq",
50358
- false: "eq"
50359
- };
50360
- const NUMBER_DATE_TYPE_TO_BACKEND_MAP = {
50361
- equals: "eq",
50362
- notEqual: "neq",
50363
- lessThan: "lt",
50364
- lessThanOrEqual: "lte",
50365
- greaterThan: "gt",
50366
- greaterThanOrEqual: "gte",
50367
- null: "eq",
50368
- notNull: "neq"
50369
- };
50370
- function mapTextTypeToBackend(type) {
50371
- const condition = TEXT_TYPE_TO_BACKEND_MAP[type];
50372
- if (!condition) {
50373
- throw new Error(`Unknown text type: ${type}`);
50374
- }
50375
- return condition;
50376
- }
50377
- function mapNumberDateTypeToBackend(type) {
50378
- const condition = NUMBER_DATE_TYPE_TO_BACKEND_MAP[type];
50379
- if (!condition) {
50380
- throw new Error(`Unknown number/date type: ${type}`);
50381
- }
50382
- return condition;
50383
- }
50384
50427
  function processTextFilter(filter, colField) {
50385
50428
  let value = filter.filter ?? null;
50386
50429
  if (typeof filter.filter === "string") {
@@ -50464,25 +50507,11 @@ function processDateFilter(filter, colField) {
50464
50507
  }
50465
50508
  return filters;
50466
50509
  }
50467
- const useDataStoreColumnFilters = ({
50510
+ const useDataTableColumnFilters = ({
50468
50511
  gridApi,
50469
- colDefs,
50470
- setGridData
50512
+ colDefs
50471
50513
  }) => {
50472
50514
  const currentFilterJSON = ref(void 0);
50473
- const initializeFilters = () => {
50474
- gridApi.value.setGridOption("defaultColDef", GRID_FILTER_CONFIG.defaultColDef);
50475
- const updated = colDefs.value.map((def) => {
50476
- const colId = def.colId ?? def.field;
50477
- if (!colId) return def;
50478
- if (isSpecialColumn(colId)) {
50479
- return { ...def, filter: false };
50480
- }
50481
- return def;
50482
- });
50483
- colDefs.value = updated;
50484
- setGridData({ colDefs: updated });
50485
- };
50486
50515
  function convertAgModelToBackend(model, defs) {
50487
50516
  const allFilters = [];
50488
50517
  const colIdToField = /* @__PURE__ */ new Map();
@@ -50516,58 +50545,40 @@ const useDataStoreColumnFilters = ({
50516
50545
  };
50517
50546
  const hasActiveFilters = computed(() => Boolean(currentFilterJSON.value));
50518
50547
  return {
50519
- initializeFilters,
50520
50548
  onFilterChanged: onFilterChanged2,
50521
50549
  currentFilterJSON,
50522
50550
  hasActiveFilters
50523
50551
  };
50524
50552
  };
50525
50553
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
50526
- __name: "DataStoreTable",
50554
+ __name: "DataTableTable",
50527
50555
  props: {
50528
- dataStore: {}
50556
+ dataTable: {}
50529
50557
  },
50530
50558
  emits: ["toggleSave"],
50531
50559
  setup(__props, { expose: __expose, emit: __emit }) {
50532
- ModuleRegistry.registerModules([
50533
- ValidationModule,
50534
- // This module allows us to see AG Grid errors in browser console
50535
- ClientSideRowModelModule,
50536
- TextEditorModule,
50537
- LargeTextEditorModule,
50538
- ColumnAutoSizeModule,
50539
- CheckboxEditorModule,
50540
- NumberEditorModule,
50541
- RowSelectionModule,
50542
- RenderApiModule,
50543
- DateEditorModule,
50544
- ClientSideRowModelApiModule,
50545
- UndoRedoEditModule,
50546
- CellStyleModule,
50547
- PinnedRowModule,
50548
- ScrollApiModule,
50549
- ColumnApiModule,
50550
- TextFilterModule,
50551
- NumberFilterModule,
50552
- DateFilterModule,
50553
- EventApiModule
50554
- ]);
50560
+ registerAgGridModulesOnce();
50555
50561
  const props = __props;
50556
50562
  const emit = __emit;
50557
50563
  const gridContainerRef = useTemplateRef("gridContainerRef");
50558
50564
  const i18n = useI18n();
50559
- const dataStoreGridBase = useDataStoreGridBase({
50565
+ const rowData = ref([]);
50566
+ const hasRecords = computed(() => rowData.value.length > 0);
50567
+ const agGrid = useAgGrid({
50560
50568
  gridContainerRef,
50569
+ defaultSortColumn: DEFAULT_ID_COLUMN_NAME,
50570
+ pinnedBottomRowId: ADD_ROW_ROW_ID,
50571
+ defaultColDef: GRID_FILTER_CONFIG.defaultColDef
50572
+ });
50573
+ const dataTableColumns = useDataTableColumns({
50561
50574
  onDeleteColumn: onDeleteColumnFunction,
50562
50575
  onAddRowClick: onAddRowClickFunction,
50563
- onAddColumn: onAddColumnFunction
50576
+ onAddColumn: onAddColumnFunction,
50577
+ isTextEditorOpen: agGrid.isTextEditorOpen
50564
50578
  });
50565
- const rowData = ref([]);
50566
- const hasRecords = computed(() => rowData.value.length > 0);
50567
- const { initializeFilters, onFilterChanged: onFilterChanged2, currentFilterJSON } = useDataStoreColumnFilters({
50568
- gridApi: dataStoreGridBase.gridApi,
50569
- colDefs: dataStoreGridBase.colDefs,
50570
- setGridData: dataStoreGridBase.setGridData
50579
+ const { onFilterChanged: onFilterChanged2, currentFilterJSON } = useDataTableColumnFilters({
50580
+ gridApi: agGrid.gridApi,
50581
+ colDefs: dataTableColumns.colDefs
50571
50582
  });
50572
50583
  const {
50573
50584
  currentPage,
@@ -50578,63 +50589,63 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
50578
50589
  setTotalItems,
50579
50590
  setCurrentPage,
50580
50591
  setPageSize
50581
- } = useDataStorePagination({ onChange: fetchDataStoreRowsFunction });
50582
- const selection = useDataStoreSelection({
50583
- gridApi: dataStoreGridBase.gridApi
50592
+ } = useDataTablePagination({ onChange: fetchDataTableRowsFunction });
50593
+ const selection = useDataTableSelection({
50594
+ gridApi: agGrid.gridApi
50584
50595
  });
50585
- const dataStoreOperations = useDataStoreOperations({
50586
- colDefs: dataStoreGridBase.colDefs,
50596
+ const dataTableOperations = useDataTableOperations({
50597
+ colDefs: dataTableColumns.colDefs,
50587
50598
  rowData,
50588
- deleteGridColumn: dataStoreGridBase.deleteColumn,
50589
- setGridData: dataStoreGridBase.setGridData,
50590
- insertGridColumnAtIndex: dataStoreGridBase.insertColumnAtIndex,
50591
- dataStoreId: props.dataStore.id,
50592
- projectId: props.dataStore.projectId,
50593
- addGridColumn: dataStoreGridBase.addColumn,
50594
- moveGridColumn: dataStoreGridBase.moveColumn,
50595
- gridApi: dataStoreGridBase.gridApi,
50599
+ deleteGridColumn: dataTableColumns.deleteColumn,
50600
+ setGridData: agGrid.setGridData,
50601
+ insertGridColumnAtIndex: dataTableColumns.insertColumnAtIndex,
50602
+ dataTableId: props.dataTable.id,
50603
+ projectId: props.dataTable.projectId,
50604
+ addGridColumn: dataTableColumns.addColumn,
50605
+ moveGridColumn: dataTableColumns.moveColumn,
50606
+ gridApi: agGrid.gridApi,
50596
50607
  totalItems,
50597
50608
  setTotalItems,
50598
50609
  ensureItemOnPage,
50599
- focusFirstEditableCell: dataStoreGridBase.focusFirstEditableCell,
50610
+ focusFirstEditableCell: agGrid.focusFirstEditableCell,
50600
50611
  toggleSave: emit.bind(null, "toggleSave"),
50601
50612
  currentPage,
50602
50613
  pageSize,
50603
- currentSortBy: dataStoreGridBase.currentSortBy,
50604
- currentSortOrder: dataStoreGridBase.currentSortOrder,
50614
+ currentSortBy: agGrid.currentSortBy,
50615
+ currentSortOrder: agGrid.currentSortOrder,
50605
50616
  handleClearSelection: selection.handleClearSelection,
50606
50617
  selectedRowIds: selection.selectedRowIds,
50607
- handleCopyFocusedCell: dataStoreGridBase.handleCopyFocusedCell,
50618
+ handleCopyFocusedCell: agGrid.handleCopyFocusedCell,
50608
50619
  currentFilterJSON
50609
50620
  });
50610
50621
  async function onDeleteColumnFunction(columnId) {
50611
- await dataStoreOperations.onDeleteColumn(columnId);
50622
+ await dataTableOperations.onDeleteColumn(columnId);
50612
50623
  }
50613
50624
  async function onAddColumnFunction(column) {
50614
- return await dataStoreOperations.onAddColumn(column);
50625
+ return await dataTableOperations.onAddColumn(column);
50615
50626
  }
50616
50627
  async function onAddRowClickFunction() {
50617
- await dataStoreOperations.onAddRowClick();
50628
+ await dataTableOperations.onAddRowClick();
50618
50629
  }
50619
- async function fetchDataStoreRowsFunction() {
50620
- await dataStoreOperations.fetchDataStoreRows();
50630
+ async function fetchDataTableRowsFunction() {
50631
+ await dataTableOperations.fetchDataTableRows();
50621
50632
  }
50622
50633
  const initialize = async (params) => {
50623
- dataStoreGridBase.onGridReady(params);
50624
- dataStoreGridBase.loadColumns(props.dataStore.columns);
50625
- await dataStoreOperations.fetchDataStoreRows();
50626
- initializeFilters();
50634
+ agGrid.onGridReady(params);
50635
+ dataTableColumns.loadColumns(props.dataTable.columns);
50636
+ agGrid.setGridData({ colDefs: dataTableColumns.colDefs.value });
50637
+ await dataTableOperations.fetchDataTableRows();
50627
50638
  };
50628
- 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>`;
50629
- watch([dataStoreGridBase.currentSortBy, dataStoreGridBase.currentSortOrder], async () => {
50639
+ const customNoRowsOverlay = `<div class="no-rows-overlay ag-overlay-no-rows-center" data-test-id="data-table-no-rows-overlay">${i18n.baseText("dataTable.noRows")}</div>`;
50640
+ watch([agGrid.currentSortBy, agGrid.currentSortOrder], async () => {
50630
50641
  await setCurrentPage(1);
50631
50642
  });
50632
50643
  watch(currentFilterJSON, async () => {
50633
50644
  await setCurrentPage(1);
50634
50645
  });
50635
50646
  __expose({
50636
- addRow: dataStoreOperations.onAddRowClick,
50637
- addColumn: dataStoreOperations.onAddColumn
50647
+ addRow: dataTableOperations.onAddRowClick,
50648
+ addColumn: dataTableOperations.onAddColumn
50638
50649
  });
50639
50650
  return (_ctx, _cache) => {
50640
50651
  return openBlock(), createElementBlock("div", {
@@ -50644,17 +50655,17 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
50644
50655
  ref_key: "gridContainerRef",
50645
50656
  ref: gridContainerRef,
50646
50657
  class: normalizeClass([_ctx.$style["grid-container"], { [_ctx.$style["has-records"]]: hasRecords.value }]),
50647
- "data-test-id": "data-store-grid"
50658
+ "data-test-id": "data-table-grid"
50648
50659
  }, [
50649
50660
  createVNode(unref(Be), {
50650
50661
  style: { "width": "100%" },
50651
50662
  "dom-layout": "autoHeight",
50652
- "row-height": unref(DATA_STORE_ROW_HEIGHT),
50653
- "header-height": unref(DATA_STORE_HEADER_HEIGHT),
50663
+ "row-height": unref(DATA_TABLE_ROW_HEIGHT),
50664
+ "header-height": unref(DATA_TABLE_HEADER_HEIGHT),
50654
50665
  "animate-rows": false,
50655
50666
  theme: unref(n8nTheme),
50656
50667
  "suppress-drag-leave-hides-columns": true,
50657
- loading: unref(dataStoreOperations).contentLoading.value,
50668
+ loading: unref(dataTableOperations).contentLoading.value,
50658
50669
  "row-selection": unref(selection).rowSelection,
50659
50670
  "get-row-id": (params) => String(params.data.id),
50660
50671
  "stop-editing-when-cells-lose-focus": true,
@@ -50662,65 +50673,65 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
50662
50673
  "suppress-multi-sort": true,
50663
50674
  "overlay-no-rows-template": customNoRowsOverlay,
50664
50675
  onGridReady: initialize,
50665
- onCellValueChanged: unref(dataStoreOperations).onCellValueChanged,
50666
- onColumnMoved: unref(dataStoreOperations).onColumnMoved,
50667
- onCellClicked: unref(dataStoreGridBase).onCellClicked,
50668
- onCellEditingStarted: unref(dataStoreGridBase).onCellEditingStarted,
50669
- onCellEditingStopped: unref(dataStoreGridBase).onCellEditingStopped,
50670
- onColumnHeaderClicked: unref(dataStoreGridBase).resetLastFocusedCell,
50676
+ onCellValueChanged: unref(dataTableOperations).onCellValueChanged,
50677
+ onColumnMoved: unref(dataTableOperations).onColumnMoved,
50678
+ onCellClicked: unref(agGrid).onCellClicked,
50679
+ onCellEditingStarted: unref(agGrid).onCellEditingStarted,
50680
+ onCellEditingStopped: unref(agGrid).onCellEditingStopped,
50681
+ onColumnHeaderClicked: unref(agGrid).resetLastFocusedCell,
50671
50682
  onSelectionChanged: unref(selection).onSelectionChanged,
50672
- onSortChanged: unref(dataStoreGridBase).onSortChanged,
50673
- onCellKeyDown: unref(dataStoreOperations).onCellKeyDown,
50683
+ onSortChanged: _cache[0] || (_cache[0] = (e) => unref(agGrid).onSortChanged(e, unref(dataTableColumns).colDefs.value)),
50684
+ onCellKeyDown: unref(dataTableOperations).onCellKeyDown,
50674
50685
  onFilterChanged: unref(onFilterChanged2)
50675
- }, null, 8, ["row-height", "header-height", "theme", "loading", "row-selection", "get-row-id", "onCellValueChanged", "onColumnMoved", "onCellClicked", "onCellEditingStarted", "onCellEditingStopped", "onColumnHeaderClicked", "onSelectionChanged", "onSortChanged", "onCellKeyDown", "onFilterChanged"]),
50686
+ }, null, 8, ["row-height", "header-height", "theme", "loading", "row-selection", "get-row-id", "onCellValueChanged", "onColumnMoved", "onCellClicked", "onCellEditingStarted", "onCellEditingStopped", "onColumnHeaderClicked", "onSelectionChanged", "onCellKeyDown", "onFilterChanged"]),
50676
50687
  createBaseVNode("div", {
50677
50688
  class: normalizeClass(_ctx.$style.footer)
50678
50689
  }, [
50679
50690
  createVNode(unref(ElPagination), {
50680
50691
  "current-page": unref(currentPage),
50681
50692
  "onUpdate:currentPage": [
50682
- _cache[0] || (_cache[0] = ($event) => isRef(currentPage) ? currentPage.value = $event : null),
50693
+ _cache[1] || (_cache[1] = ($event) => isRef(currentPage) ? currentPage.value = $event : null),
50683
50694
  unref(setCurrentPage)
50684
50695
  ],
50685
50696
  "page-size": unref(pageSize),
50686
- "onUpdate:pageSize": _cache[1] || (_cache[1] = ($event) => isRef(pageSize) ? pageSize.value = $event : null),
50687
- "data-test-id": "data-store-content-pagination",
50697
+ "onUpdate:pageSize": _cache[2] || (_cache[2] = ($event) => isRef(pageSize) ? pageSize.value = $event : null),
50698
+ "data-test-id": "data-table-content-pagination",
50688
50699
  background: "",
50689
50700
  total: unref(totalItems),
50690
50701
  "page-sizes": unref(pageSizeOptions),
50691
50702
  layout: "total, prev, pager, next, sizes",
50692
- onSizeChange: _cache[2] || (_cache[2] = (val) => unref(setPageSize)(val))
50703
+ onSizeChange: _cache[3] || (_cache[3] = (val) => unref(setPageSize)(val))
50693
50704
  }, null, 8, ["current-page", "page-size", "total", "page-sizes", "onUpdate:currentPage"])
50694
50705
  ], 2)
50695
50706
  ], 2),
50696
50707
  createVNode(SelectedItemsInfo, {
50697
50708
  "selected-count": unref(selection).selectedCount.value,
50698
- onDeleteSelected: unref(dataStoreOperations).handleDeleteSelected,
50709
+ onDeleteSelected: unref(dataTableOperations).handleDeleteSelected,
50699
50710
  onClearSelection: unref(selection).handleClearSelection
50700
50711
  }, null, 8, ["selected-count", "onDeleteSelected", "onClearSelection"])
50701
50712
  ], 2);
50702
50713
  };
50703
50714
  }
50704
50715
  });
50705
- const wrapper = "_wrapper_1aa24_123";
50706
- const footer = "_footer_1aa24_279";
50716
+ const wrapper = "_wrapper_a9qvr_123";
50717
+ const footer = "_footer_a9qvr_279";
50707
50718
  const style0$1 = {
50708
50719
  wrapper,
50709
- "has-records": "_has-records_1aa24_244",
50710
- "grid-container": "_grid-container_1aa24_269",
50720
+ "has-records": "_has-records_a9qvr_244",
50721
+ "grid-container": "_grid-container_a9qvr_269",
50711
50722
  footer
50712
50723
  };
50713
50724
  const cssModules$1 = {
50714
50725
  "$style": style0$1
50715
50726
  };
50716
- const DataStoreTable = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
50727
+ const DataTableTable = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
50717
50728
  const _hoisted_1 = {
50718
50729
  key: 0,
50719
- "data-test-id": "data-store-details-loading"
50730
+ "data-test-id": "data-table-details-loading"
50720
50731
  };
50721
50732
  const _hoisted_2 = { key: 1 };
50722
50733
  const _sfc_main = /* @__PURE__ */ defineComponent({
50723
- __name: "DataStoreDetailsView",
50734
+ __name: "DataTableDetailsView",
50724
50735
  props: {
50725
50736
  id: {},
50726
50737
  projectId: {}
@@ -50731,28 +50742,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
50731
50742
  const i18n = useI18n();
50732
50743
  const router = useRouter();
50733
50744
  const documentTitle = useDocumentTitle();
50734
- const dataStoreStore = useDataStoreStore();
50745
+ const dataTableStore = useDataTableStore();
50735
50746
  const loading = ref(false);
50736
50747
  const saving2 = ref(false);
50737
- const dataStore = ref(null);
50738
- const dataStoreTableRef = ref();
50748
+ const dataTable = ref(null);
50749
+ const dataTableTableRef = ref();
50739
50750
  const { debounce } = useDebounce();
50740
50751
  const showErrorAndGoBackToList = async (error) => {
50741
50752
  if (!(error instanceof Error)) {
50742
- error = new Error(String(i18n.baseText("dataStore.getDetails.error")));
50753
+ error = new Error(String(i18n.baseText("dataTable.getDetails.error")));
50743
50754
  }
50744
- toast.showError(error, i18n.baseText("dataStore.getDetails.error"));
50745
- await router.push({ name: DATA_STORE_VIEW, params: { projectId: props.projectId } });
50755
+ toast.showError(error, i18n.baseText("dataTable.getDetails.error"));
50756
+ await router.push({ name: DATA_TABLE_VIEW, params: { projectId: props.projectId } });
50746
50757
  };
50747
50758
  const initialize = async () => {
50748
50759
  loading.value = true;
50749
50760
  try {
50750
- const response = await dataStoreStore.fetchOrFindDataStore(props.id, props.projectId);
50761
+ const response = await dataTableStore.fetchOrFindDataTable(props.id, props.projectId);
50751
50762
  if (response) {
50752
- dataStore.value = response;
50753
- documentTitle.set(`${i18n.baseText("dataStore.dataStores")} > ${response.name}`);
50763
+ dataTable.value = response;
50764
+ documentTitle.set(`${i18n.baseText("dataTable.dataTables")} > ${response.name}`);
50754
50765
  } else {
50755
- await showErrorAndGoBackToList(new Error(i18n.baseText("dataStore.notFound")));
50766
+ await showErrorAndGoBackToList(new Error(i18n.baseText("dataTable.notFound")));
50756
50767
  }
50757
50768
  } catch (error) {
50758
50769
  await showErrorAndGoBackToList(error);
@@ -50780,21 +50791,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
50780
50791
  }
50781
50792
  };
50782
50793
  const onAddColumn = async (column) => {
50783
- if (!dataStoreTableRef.value) {
50794
+ if (!dataTableTableRef.value) {
50784
50795
  return {
50785
50796
  success: false,
50786
- errorMessage: i18n.baseText("dataStore.error.tableNotInitialized")
50797
+ errorMessage: i18n.baseText("dataTable.error.tableNotInitialized")
50787
50798
  };
50788
50799
  }
50789
- return await dataStoreTableRef.value.addColumn(column);
50800
+ return await dataTableTableRef.value.addColumn(column);
50790
50801
  };
50791
50802
  onMounted(async () => {
50792
- documentTitle.set(i18n.baseText("dataStore.dataStores"));
50803
+ documentTitle.set(i18n.baseText("dataTable.dataTables"));
50793
50804
  await initialize();
50794
50805
  });
50795
50806
  return (_ctx, _cache) => {
50796
50807
  return openBlock(), createElementBlock("div", {
50797
- class: normalizeClass(_ctx.$style["data-store-details-view"])
50808
+ class: normalizeClass(_ctx.$style["data-table-details-view"]),
50809
+ "data-test-id": "data-table-details-view"
50798
50810
  }, [
50799
50811
  loading.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
50800
50812
  createVNode(unref(N8nLoading), {
@@ -50810,11 +50822,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
50810
50822
  rows: 10,
50811
50823
  "shrink-last": false
50812
50824
  })
50813
- ])) : dataStore.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
50825
+ ])) : dataTable.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
50814
50826
  createBaseVNode("div", {
50815
50827
  class: normalizeClass(_ctx.$style.header)
50816
50828
  }, [
50817
- createVNode(DataStoreBreadcrumbs, { "data-store": dataStore.value }, null, 8, ["data-store"]),
50829
+ createVNode(DataTableBreadcrumbs, { "data-table": dataTable.value }, null, 8, ["data-table"]),
50818
50830
  saving2.value ? (openBlock(), createElementBlock("div", {
50819
50831
  key: 0,
50820
50832
  class: normalizeClass(_ctx.$style.saving)
@@ -50831,10 +50843,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
50831
50843
  class: normalizeClass(_ctx.$style.actions)
50832
50844
  }, [
50833
50845
  createVNode(unref(N8nButton), {
50834
- onClick: dataStoreTableRef.value?.addRow
50846
+ "data-test-id": "data-table-header-add-row-button",
50847
+ onClick: dataTableTableRef.value?.addRow
50835
50848
  }, {
50836
50849
  default: withCtx(() => [
50837
- createTextVNode(toDisplayString(unref(i18n).baseText("dataStore.addRow.label")), 1)
50850
+ createTextVNode(toDisplayString(unref(i18n).baseText("dataTable.addRow.label")), 1)
50838
50851
  ]),
50839
50852
  _: 1
50840
50853
  }, 8, ["onClick"]),
@@ -50848,24 +50861,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
50848
50861
  createBaseVNode("div", {
50849
50862
  class: normalizeClass(_ctx.$style.content)
50850
50863
  }, [
50851
- createVNode(DataStoreTable, {
50852
- ref_key: "dataStoreTableRef",
50853
- ref: dataStoreTableRef,
50854
- "data-store": dataStore.value,
50864
+ createVNode(DataTableTable, {
50865
+ ref_key: "dataTableTableRef",
50866
+ ref: dataTableTableRef,
50867
+ "data-table": dataTable.value,
50855
50868
  onToggleSave
50856
- }, null, 8, ["data-store"])
50869
+ }, null, 8, ["data-table"])
50857
50870
  ], 2)
50858
50871
  ])) : createCommentVNode("", true)
50859
50872
  ], 2);
50860
50873
  };
50861
50874
  }
50862
50875
  });
50863
- const header = "_header_a2zz6_132";
50864
- const saving = "_saving_a2zz6_147";
50865
- const actions = "_actions_a2zz6_154";
50876
+ const header = "_header_1sxsb_132";
50877
+ const saving = "_saving_1sxsb_147";
50878
+ const actions = "_actions_1sxsb_154";
50866
50879
  const style0 = {
50867
- "data-store-details-view": "_data-store-details-view_a2zz6_123",
50868
- "header-loading": "_header-loading_a2zz6_132",
50880
+ "data-table-details-view": "_data-table-details-view_1sxsb_123",
50881
+ "header-loading": "_header-loading_1sxsb_132",
50869
50882
  header,
50870
50883
  saving,
50871
50884
  actions
@@ -50873,7 +50886,7 @@ const style0 = {
50873
50886
  const cssModules = {
50874
50887
  "$style": style0
50875
50888
  };
50876
- const DataStoreDetailsView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
50889
+ const DataTableDetailsView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
50877
50890
  export {
50878
- DataStoreDetailsView as default
50891
+ DataTableDetailsView as default
50879
50892
  };