n8n-editor-ui 1.115.1 → 1.116.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.build/cache-marker +1 -1
- package/.build/node-popularity.json +1805 -1805
- package/dist/assets/{AddDataStoreModal-B7jBhCjt.css → AddDataTableModal-BzS5Yqag.css} +6 -6
- package/dist/assets/{AddDataStoreModal-DxLlmnRh.js → AddDataTableModal-D3lCNgpn.js} +32 -32
- package/dist/assets/{AnimatedSpinner-DR4QrGrL.js → AnimatedSpinner-Cr27l8Js.js} +1 -1
- package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BfGhW9R4.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BC2t-vmg.js} +1 -1
- package/dist/assets/{AuthView-CWVio_MZ.css → AuthView-BvfgleDU.css} +30 -30
- package/dist/assets/{AuthView-BUfRQlip.js → AuthView-ByAdS5FY.js} +14 -14
- package/dist/assets/{ChangePasswordView-hnVcBOdZ.js → ChangePasswordView-CQSCgqRg.js} +3 -3
- package/dist/assets/ChatSidebar-BIKL7c8K.js +117 -0
- package/dist/assets/ChatSidebar-wKAC9nrh.css +165 -0
- package/dist/assets/ChatView-ClX1FsZV.css +657 -0
- package/dist/assets/ChatView-osetCni7.js +805 -0
- package/dist/assets/CollectionParameter-mR4EdrZi.js +4 -0
- package/dist/assets/{CredentialsView-BAqjGrNq.css → CredentialsView-C9uo2Njh.css} +14 -14
- package/dist/assets/{CredentialsView-DYbozDMz.js → CredentialsView-DhOvzcuF.js} +15 -15
- package/dist/assets/{DataStoreActions.vue_vue_type_script_setup_true_lang-_Q8OXvzI.js → DataTableActions.vue_vue_type_script_setup_true_lang-CPe6URyk.js} +21 -21
- package/dist/assets/{DataStoreDetailsView-Bc-J9ZrW.css → DataTableDetailsView-BOmb3x4S.css} +138 -138
- package/dist/assets/{DataStoreDetailsView-DN1DvV53.js → DataTableDetailsView-DZF8g3WP.js} +538 -525
- package/dist/assets/{DataStoreView-BqQv7QeU.css → DataTableView-ByKnlVtU.css} +14 -14
- package/dist/assets/{DataStoreView-BNU_I-gX.js → DataTableView-C4iNAHED.js} +68 -68
- package/dist/assets/{DemoFooter-rHoOk6iK.js → DemoFooter-B-9EtV0b.js} +5 -5
- package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-DWIEvR1-.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-4ZVwMz6Z.js} +1 -1
- package/dist/assets/{EntityNotFound-DAi6p29d.js → EntityNotFound-CZnyKB-G.js} +2 -2
- package/dist/assets/EntityNotFound-CargndZm.css +10 -0
- package/dist/assets/{EntityUnAuthorised-8E-9FBHe.js → EntityUnAuthorised-CwSJj0Hc.js} +2 -2
- package/dist/assets/EntityUnAuthorised-Deb2bHNC.css +10 -0
- package/dist/assets/{ErrorView-y79cILv4.js → ErrorView-BontN9_o.js} +4 -4
- package/dist/assets/{ErrorView-DPS9icAS.css → ErrorView-D2OMvGTk.css} +8 -8
- package/dist/assets/{EvaluationsRootView-B5AhHo41.css → EvaluationsRootView-7FGhfEKm.css} +48 -48
- package/dist/assets/{EvaluationsRootView-CWelItmD.js → EvaluationsRootView-z8nnYDZZ.js} +22 -22
- package/dist/assets/{EvaluationsView-C0X9064k.js → EvaluationsView-DJXXQS3t.js} +27 -27
- package/dist/assets/{EvaluationsView-BTyYfInB.css → EvaluationsView-DsfXDJ-U.css} +35 -35
- package/dist/assets/{ExecutionsTime-B5dXCTxD.css → ExecutionsTime-BGpurJsp.css} +41 -41
- package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-CmtPBoIQ.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-DYd7fiyA.js} +16 -16
- package/dist/assets/{ExecutionsView-DRsBgt5L.js → ExecutionsView-BNcgqbCI.js} +18 -18
- package/dist/assets/{ExecutionsView-BxsSXnlU.css → ExecutionsView-BbH7fInw.css} +14 -14
- package/dist/assets/{FixedCollectionParameter-D3u3aCCk.css → FixedCollectionParameter-D82suS6W.css} +43 -43
- package/dist/assets/{FixedCollectionParameter-Bhdk1XcN.js → FixedCollectionParameter-hHCYDL8K.js} +2 -2
- package/dist/assets/{ForgotMyPasswordView-C-GNSvtY.js → ForgotMyPasswordView-DNIrSigH.js} +3 -3
- package/dist/assets/{InfoAccordion-dxudNqVC.css → InfoAccordion-BuKidEQb.css} +13 -13
- package/dist/assets/{InfoAccordion-BpibqNsS.js → InfoAccordion-DZZQAfE2.js} +7 -7
- package/dist/assets/{InsightsChartAverageRuntime-CwkkxEk1.js → InsightsChartAverageRuntime-0_tQwd14.js} +4 -4
- package/dist/assets/{InsightsChartFailed-Di6uVDGI.js → InsightsChartFailed-DzwSs_eb.js} +5 -5
- package/dist/assets/{InsightsChartFailureRate-Bl5Av3Eu.js → InsightsChartFailureRate-9NSwJrkn.js} +5 -5
- package/dist/assets/{InsightsChartTimeSaved-Bcup49B9.js → InsightsChartTimeSaved-yP09tMZN.js} +4 -4
- package/dist/assets/{InsightsChartTotal-DnEUMCMt.js → InsightsChartTotal-_BgplVGB.js} +5 -5
- package/dist/assets/{InsightsDashboard-luJ134I5.js → InsightsDashboard-BV1ylSUf.js} +21 -21
- package/dist/assets/{InsightsDashboard-CYAx_0X9.css → InsightsDashboard-DyOwzHmP.css} +25 -25
- package/dist/assets/{InsightsPaywall-BEXUk0T6.js → InsightsPaywall-Bo-jqjcX.js} +1 -1
- package/dist/assets/{InsightsSummary-DTFIhBF3.css → InsightsSummary-BazqPYQ0.css} +52 -52
- package/dist/assets/{InsightsSummary-XxOp2tas.js → InsightsSummary-Bg9pnspx.js} +11 -11
- package/dist/assets/{InsightsTableWorkflows-B4re5fkw.js → InsightsTableWorkflows-Cba5zPpi.js} +7 -7
- package/dist/assets/{InsightsTableWorkflows-BTHSCwX8.css → InsightsTableWorkflows-D20Yb7ZW.css} +8 -8
- package/dist/assets/{Logo-91TLwfCH.js → Logo-BCYYCeCH.js} +7 -7
- package/dist/assets/{Logo-CSmRCqF2.css → Logo-BU1oDo5-.css} +16 -16
- package/dist/assets/{LogsPanel-BWP7EQ84.js → LogsPanel-C6aZbU42.js} +141 -1091
- package/dist/assets/{LogsPanel-BE9Gl1z0.css → LogsPanel-DVmpE0zV.css} +160 -592
- package/dist/assets/{MainHeader-DIiyDT8d.css → MainHeader-BqJwA1aC.css} +117 -117
- package/dist/assets/{MainHeader-BaSUt6eJ.js → MainHeader-CAY1EEEh.js} +45 -45
- package/dist/assets/{MainSidebar-C4cyDjUV.js → MainSidebar-C9gTPkUi.js} +69 -1133
- package/dist/assets/{MainSidebar-BT8sXxNa.css → MainSidebar-tTEyXOKH.css} +107 -279
- package/dist/assets/NavigationDropdown-BmOSJSCn.js +1116 -0
- package/dist/assets/NavigationDropdown-Wb7mPGhl.css +187 -0
- package/dist/assets/{NodeCreation-C4gQlPqI.css → NodeCreation-B1fOtARK.css} +6 -6
- package/dist/assets/{NodeCreation-BkqOy8gF.js → NodeCreation-sJ6PySWn.js} +12 -10
- package/dist/assets/{NodeCreator-COTYfPaK.css → NodeCreator-CamUhvMk.css} +175 -174
- package/dist/assets/{NodeCreator-BppRTVIa.js → NodeCreator-DXsZEKJK.js} +60 -64
- package/dist/assets/{NodeDetailsView-BuhpInfo.js → NodeDetailsView-BpyGVsgu.js} +33 -32
- package/dist/assets/{NodeDetailsView-CBYV4Rrz.css → NodeDetailsView-D3QAo3SF.css} +61 -61
- package/dist/assets/{NodeDetailsViewV2-C0bp_zCD.js → NodeDetailsViewV2-DGkdo0vX.js} +58 -69
- package/dist/assets/{NodeDetailsViewV2-J_3cfdea.css → NodeDetailsViewV2-bvXejqU_.css} +67 -60
- package/dist/assets/{NodeView-B9LYqx2z.js → NodeView-B8KEEH6t.js} +106 -95
- package/dist/assets/{NodeView-Bsq1Fh0D.css → NodeView-BhF0ieQM.css} +85 -85
- package/dist/assets/{PageViewLayout-CJlzbuVj.css → PageViewLayout-BIiboMgG.css} +5 -5
- package/dist/assets/{PageViewLayout-B8D8Tkxn.js → PageViewLayout-No_pX4Y2.js} +3 -3
- package/dist/assets/{PrebuiltAgentTemplatesView-DZAkWI4E.js → PrebuiltAgentTemplatesView-Byz4ljyp.js} +9 -9
- package/dist/assets/{PrebuiltAgentTemplatesView-COxu7Iih.css → PrebuiltAgentTemplatesView-jF7HvWnL.css} +14 -14
- package/dist/assets/{ProjectBreadcrumb-B1Hnf5da.css → ProjectBreadcrumb-BNbnf7Ir.css} +96 -96
- package/dist/assets/{ProjectBreadcrumb-HI65z9tX.js → ProjectBreadcrumb-DzdWVcqt.js} +22 -22
- package/dist/assets/{ProjectHeader-BzekhnTR.js → ProjectHeader-C2cvg4nB.js} +36 -18
- package/dist/assets/{ProjectHeader-BNMKpvzV.css → ProjectHeader-TKKq6OrY.css} +15 -15
- package/dist/assets/{ProjectSettings-BTP0xrzD.js → ProjectSettings-DJsTn3lm.js} +26 -26
- package/dist/assets/{ProjectSettings-Cj1kC16G.css → ProjectSettings-c2BBLEzY.css} +60 -60
- package/dist/assets/ProjectVariables-CrRq7juM.js +532 -0
- package/dist/assets/ProjectVariables-DtGcMnSf.css +293 -0
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DflOVayR.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-94A3F8Nb.js} +1 -1
- package/dist/assets/{ResourcesListLayout-Dm7w49bu.css → ResourcesListLayout-CY-G3BmN.css} +42 -42
- package/dist/assets/{ResourcesListLayout-CnidC9EV.js → ResourcesListLayout-U7KWTT3_.js} +25 -21
- package/dist/assets/{RunDataJson-DEs4Ql5T.js → RunDataJson-DfyidYxR.js} +8 -8
- package/dist/assets/{RunDataJson-BH9HLoGC.css → RunDataJson-PAkTmkZf.css} +19 -19
- package/dist/assets/{RunDataJsonActions-Ct02vlvz.js → RunDataJsonActions-CGAwQzcH.js} +2 -2
- package/dist/assets/{RunDataJsonActions-B2jW3_UG.css → RunDataJsonActions-CZx7rSSE.css} +2 -2
- package/dist/assets/{RunDataParsedAiContent-Bl49tvwG.js → RunDataParsedAiContent-BuF6D9QB.js} +13 -112
- package/dist/assets/{RunDataParsedAiContent-wfIiKsq7.css → RunDataParsedAiContent-CvjNCtpG.css} +37 -37
- package/dist/assets/{RunDataSearch-2eEalFoi.css → RunDataSearch-CPo36NE_.css} +10 -10
- package/dist/assets/{RunDataSearch-D8DXH4rw.js → RunDataSearch-Dkv8Uspi.js} +4 -4
- package/dist/assets/{RunDataTable-BZzteeuj.css → RunDataTable-C4QnrVVF.css} +104 -104
- package/dist/assets/{RunDataTable-CdxTnMd4.js → RunDataTable-CMj7faUo.js} +33 -33
- package/dist/assets/{SamlOnboarding-CLFzc3D4.js → SamlOnboarding-Y33PQ0MC.js} +3 -3
- package/dist/assets/{SelectedItemsInfo-Dl4uynXs.css → SelectedItemsInfo-B6Rq6uIe.css} +7 -7
- package/dist/assets/{SelectedItemsInfo-Dd3HKZ6z.js → SelectedItemsInfo-niTPahiE.js} +3 -3
- package/dist/assets/{SettingsApiView-CmU8R9-c.js → SettingsApiView-B1CSPgk9.js} +14 -14
- package/dist/assets/{SettingsApiView-k1hALKCX.css → SettingsApiView-Dtl_N9mK.css} +31 -31
- package/dist/assets/{SettingsCommunityNodesView-CjgVPZAy.js → SettingsCommunityNodesView-CRAChGuy.js} +21 -21
- package/dist/assets/{SettingsCommunityNodesView-CAggjsaT.css → SettingsCommunityNodesView-CVQjV37D.css} +31 -31
- package/dist/assets/{SettingsExternalSecrets-BAX9ENm9.css → SettingsExternalSecrets-CaiOf7cD.css} +12 -12
- package/dist/assets/{SettingsExternalSecrets-Baxom4lP.js → SettingsExternalSecrets-CzXAEo07.js} +8 -8
- package/dist/assets/{SettingsLdapView-BQUfzAsN.js → SettingsLdapView-DSkINX3j.js} +8 -8
- package/dist/assets/{SettingsLdapView-D0SUO3ai.css → SettingsLdapView-KgMO_1GA.css} +17 -17
- package/dist/assets/{SettingsLogStreamingView-Bq2IwWDt.js → SettingsLogStreamingView-Bcc-2zVI.js} +7 -7
- package/dist/assets/{SettingsLogStreamingView-CflEMmu9.css → SettingsLogStreamingView-xo-rTSA0.css} +12 -12
- package/dist/assets/SettingsMCPView-BBO_ZyBU.css +552 -0
- package/dist/assets/{SettingsMCPView-D3BOHCtS.js → SettingsMCPView-CHXmiCg2.js} +200 -126
- package/dist/assets/{SettingsPersonalView-Bt8bL5tJ.css → SettingsPersonalView-D6LtKnaF.css} +23 -23
- package/dist/assets/{SettingsPersonalView-Bbn0olns.js → SettingsPersonalView-SLkmnF62.js} +10 -10
- package/dist/assets/{SettingsSourceControl-BBxJXbFC.css → SettingsSourceControl-C6pfOcuv.css} +40 -40
- package/dist/assets/{SettingsSourceControl-CC_Pak2B.js → SettingsSourceControl-D9pU6aTH.js} +15 -15
- package/dist/assets/{SettingsSso-vViqB8oe.js → SettingsSso-BpyLc_nN.js} +7 -7
- package/dist/assets/{SettingsSso-D4HKPLvV.css → SettingsSso-w7Iz4Luy.css} +25 -25
- package/dist/assets/{SettingsUsageAndPlan-82J0IcdW.css → SettingsUsageAndPlan-Cct79Zta.css} +34 -34
- package/dist/assets/{SettingsUsageAndPlan-BtE-s9Vb.js → SettingsUsageAndPlan-DuurGlum.js} +13 -13
- package/dist/assets/{SettingsUsersView-BG7JdfYz.css → SettingsUsersView-CfJcVjkl.css} +28 -28
- package/dist/assets/{SettingsUsersView-DVdCq-SX.js → SettingsUsersView-Dot7c7Qq.js} +16 -16
- package/dist/assets/{SettingsView-BHLJBEJF.css → SettingsView-C4aA4kVV.css} +18 -18
- package/dist/assets/{SettingsView-ByNIw76r.js → SettingsView-Cf9Z1byg.js} +8 -8
- package/dist/assets/{SetupView-XbSIMu9B.js → SetupView-Bd3_I6zI.js} +3 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-CUzPtmot.js → SetupWorkflowCredentialsButton-CAXEm7u9.js} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-ZPJL_m2F.css → SetupWorkflowFromTemplateView-CU2iGJTa.css} +11 -11
- package/dist/assets/{SetupWorkflowFromTemplateView-CQcMUEt1.js → SetupWorkflowFromTemplateView-DHDRdPVs.js} +8 -8
- package/dist/assets/{SigninView-D57wRRHz.css → SigninView-BQgsTN8o.css} +13 -13
- package/dist/assets/{SigninView-C8qujIEW.js → SigninView-D5tuweUZ.js} +9 -9
- package/dist/assets/{SignoutView-BCsXtAKk.js → SignoutView-DeXygpms.js} +1 -1
- package/dist/assets/{SignupView-By-KjS2P.js → SignupView-CX-Il1Wi.js} +3 -3
- package/dist/assets/{TableBase-CX4nZLla.js → TableBase-A3JBly2L.js} +3 -3
- package/dist/assets/{TableBase-Bf42_9Yp.css → TableBase-CUZbI5pm.css} +24 -24
- package/dist/assets/{Tags-CCemj7t9.css → Tags-6vh_jPIG.css} +4 -4
- package/dist/assets/{Tags-D03vT_rK.js → Tags-Mbyj8PZc.js} +2 -2
- package/dist/assets/{TemplateDetails-CDaB-6oH.js → TemplateDetails-0MJKz78y.js} +8 -8
- package/dist/assets/{TemplateDetails-DyUqVhf2.css → TemplateDetails-DfyKyMyy.css} +13 -13
- package/dist/assets/{TemplateList-DNBeV62H.js → TemplateList-5x22FsDC.js} +24 -24
- package/dist/assets/{TemplateList-XNW-2Ugr.css → TemplateList-CNUtq0N7.css} +49 -49
- package/dist/assets/{TemplatesCollectionView-BTk7wBlq.js → TemplatesCollectionView-CvCuX0Fa.js} +13 -13
- package/dist/assets/{TemplatesCollectionView-2q1rzsOG.css → TemplatesCollectionView-klb8FT9y.css} +13 -13
- package/dist/assets/{TemplatesSearchView-DtyBPi6V.js → TemplatesSearchView-c0i0daNd.js} +18 -18
- package/dist/assets/{TemplatesSearchView-DETaMpDt.css → TemplatesSearchView-gPmmtwoU.css} +50 -50
- package/dist/assets/{TemplatesView-BTid6_ga.js → TemplatesView-BOOm6xwn.js} +8 -8
- package/dist/assets/{TemplatesView-Cyu28Dlo.css → TemplatesView-BgdyYmrL.css} +21 -21
- package/dist/assets/{TemplatesWorkflowView-DpIiJjJp.css → TemplatesWorkflowView-CBjRBbmw.css} +17 -17
- package/dist/assets/{TemplatesWorkflowView-CLr9pY-p.js → TemplatesWorkflowView-H8LDxBtL.js} +14 -14
- package/dist/assets/{TestRunDetailView-BDPhxOvY.js → TestRunDetailView-BrNWft7p.js} +36 -36
- package/dist/assets/{TestRunDetailView--lZbJq4u.css → TestRunDetailView-D_a9QpSQ.css} +93 -93
- package/dist/assets/{TriggerPanel-CQgUdcjv.css → TriggerPanel-BbB_P9ZT.css} +158 -236
- package/dist/assets/TriggerPanel-DexAqK4Y.js +1633 -0
- package/dist/assets/VariablesUsageBadge-C_yi7Lw5.css +129 -0
- package/dist/assets/VariablesUsageBadge-DwioJFhQ.js +39 -0
- package/dist/assets/{VariablesView-DsA8Mqxt.js → VariablesView-CxJyyUeq.js} +11 -52
- package/dist/assets/VariablesView-zN910qd9.css +272 -0
- package/dist/assets/{WorkerView-BrSoYcbf.css → WorkerView-4m_NaoAx.css} +47 -47
- package/dist/assets/{WorkerView-CDijwoCe.js → WorkerView-CETR714S.js} +39 -39
- package/dist/assets/{WorkflowActivator-DKpc2Acz.js → WorkflowActivator-B8KHOz1Y.js} +7 -7
- package/dist/assets/{WorkflowActivator-DPDRDtQG.css → WorkflowActivator-DBJbtrBD.css} +9 -9
- package/dist/assets/{WorkflowExecutionsInfoAccordion-53bC-IXN.css → WorkflowExecutionsInfoAccordion-CEOvJ-SX.css} +11 -11
- package/dist/assets/{WorkflowExecutionsInfoAccordion-Fedus-Da.js → WorkflowExecutionsInfoAccordion-qxgk1h0H.js} +4 -4
- package/dist/assets/{WorkflowExecutionsLandingPage-Bm_hJMl4.css → WorkflowExecutionsLandingPage-DMldlKod.css} +8 -8
- package/dist/assets/{WorkflowExecutionsLandingPage-BpO-BoFq.js → WorkflowExecutionsLandingPage-HKnqrHXW.js} +6 -6
- package/dist/assets/{WorkflowExecutionsPreview-Cd4BrS-0.css → WorkflowExecutionsPreview-CkEakQp2.css} +90 -90
- package/dist/assets/{WorkflowExecutionsPreview-DzvPOJOY.js → WorkflowExecutionsPreview-qf-E5Odr.js} +46 -46
- package/dist/assets/{WorkflowExecutionsView-DDoqUcYQ.js → WorkflowExecutionsView-CfqNhuZ6.js} +34 -34
- package/dist/assets/{WorkflowExecutionsView-Bjkudb8L.css → WorkflowExecutionsView-CqRMwPwF.css} +82 -82
- package/dist/assets/{WorkflowHistory-7Ad0Va7M.css → WorkflowHistory-BmerBiKz.css} +71 -71
- package/dist/assets/{WorkflowHistory-BhU1Rfch.js → WorkflowHistory-YmqrN3r8.js} +21 -21
- package/dist/assets/{WorkflowOnboardingView-BqWP7FwD.js → WorkflowOnboardingView-CjlwTouQ.js} +1 -1
- package/dist/assets/{WorkflowPreview-CIOAVgxK.css → WorkflowPreview-Bt03akXc.css} +8 -8
- package/dist/assets/{WorkflowPreview-B1W62QhC.js → WorkflowPreview-Cq5khFre.js} +8 -8
- package/dist/assets/{WorkflowsView-B8UKso1P.css → WorkflowsView-GJhG9SFw.css} +144 -144
- package/dist/assets/{WorkflowsView-B-pO60w1.js → WorkflowsView-RxnSQ30O.js} +79 -83
- package/dist/assets/{chartjs.utils-DpK-YRAM.js → chartjs.utils-D_NRIoXj.js} +10 -10
- package/dist/assets/chat.utils-2xG-fh51.js +224 -0
- package/dist/assets/{core-HZaYo_tU.js → core-DzD694JE.js} +1 -1
- package/dist/assets/{evaluation-ZbMdquW3.css → evaluation-BpIei8SG.css} +26 -26
- package/dist/assets/{evaluation.constants-DfiJmRyk.js → evaluation.constants-DtUWL9wd.js} +9 -9
- package/dist/assets/{global-link-actions-DdzlWwjw.js → global-link-actions-DY3w9YDm.js} +1 -1
- package/dist/assets/{index-MTM6BbvW.js → index-CW8ZBeS3.js} +13600 -15420
- package/dist/assets/{index-CFiA0qjr.css → index-DXwb0-8G.css} +6384 -6442
- package/dist/assets/{index-P3-xVlwI.js → index-DbuMzHzu.js} +1 -1
- package/dist/assets/mcp.store-BgAt-In4.js +85 -0
- package/dist/assets/{pickBy-DUKPNRlc.js → pickBy-AGrSNJKu.js} +1 -1
- package/dist/assets/{readyToRunWorkflows.store-nzu6XNAP.js → readyToRunWorkflows.store-VC9XUBEb.js} +2 -2
- package/dist/assets/{readyToRunWorkflowsV2.store-1dRkG6XV.js → readyToRunWorkflowsV2.store-DKvoEeBj.js} +2 -2
- package/dist/assets/{templateActions-BePunFaZ.js → templateActions-QrGnobip.js} +1 -1
- package/dist/assets/{useBeforeUnload-DsbgbymL.js → useBeforeUnload-LctWPBl6.js} +1 -1
- package/dist/assets/{useExecutionDebugging-yUnwhnYk.js → useExecutionDebugging-C4qxdFPE.js} +1 -1
- package/dist/assets/{useImportCurlCommand-DcFIVp7Y.js → useImportCurlCommand-uW2F30ZA.js} +1 -1
- package/dist/assets/useLogsTreeExpand-BZb1m-U7.css +554 -0
- package/dist/assets/useLogsTreeExpand-s-Y7s8m-.js +1080 -0
- package/dist/assets/{useProjectPages-JCNZbA2u.js → useProjectPages-CGrunDRk.js} +1 -1
- package/dist/assets/{usePushConnection-_VL-61pH.js → usePushConnection-DIHgByHB.js} +17 -19
- package/dist/assets/{useWorkflowsCache-DwIv_I-Z.js → useWorkflowsCache-DpRrH96r.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/scripts/fetch-node-popularity.mjs +13 -1
- package/turbo.json +2 -1
- package/dist/assets/CollectionParameter-BbxTTmMu.js +0 -4
- package/dist/assets/ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-Bv40HGJu.js +0 -44
- package/dist/assets/EntityNotFound-pTnVFOv-.css +0 -10
- package/dist/assets/EntityUnAuthorised-CHl9g0Ry.css +0 -10
- package/dist/assets/SettingsMCPView-B7NzLvT3.css +0 -378
- package/dist/assets/TriggerPanel-BS69Ky8P.js +0 -3343
- package/dist/assets/VariablesView-BMHdLce7.css +0 -400
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { d as defineComponent, aH as useTemplateRef,
|
|
2
|
-
import { _ as _sfc_main$9 } from "./
|
|
3
|
-
import { B as Breadcrumbs, P as ProjectBreadcrumb } from "./ProjectBreadcrumb-
|
|
4
|
-
import { S as SelectedItemsInfo } from "./SelectedItemsInfo-
|
|
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-CW8ZBeS3.js";
|
|
2
|
+
import { _ as _sfc_main$9 } from "./DataTableActions.vue_vue_type_script_setup_true_lang-CPe6URyk.js";
|
|
3
|
+
import { B as Breadcrumbs, P as ProjectBreadcrumb } from "./ProjectBreadcrumb-DzdWVcqt.js";
|
|
4
|
+
import { S as SelectedItemsInfo } from "./SelectedItemsInfo-niTPahiE.js";
|
|
5
5
|
const BREADCRUMBS_SEPARATOR = "/";
|
|
6
6
|
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
7
|
-
__name: "
|
|
7
|
+
__name: "DataTableBreadcrumbs",
|
|
8
8
|
props: {
|
|
9
|
-
|
|
9
|
+
dataTable: {}
|
|
10
10
|
},
|
|
11
11
|
setup(__props) {
|
|
12
12
|
const props = __props;
|
|
13
13
|
const renameInput = useTemplateRef("renameInput");
|
|
14
|
-
const
|
|
14
|
+
const dataTableStore = useDataTableStore();
|
|
15
15
|
const i18n = useI18n();
|
|
16
16
|
const router = useRouter();
|
|
17
17
|
const toast = useToast();
|
|
18
|
-
const editableName = ref(props.
|
|
18
|
+
const editableName = ref(props.dataTable.name);
|
|
19
19
|
const project = computed(() => {
|
|
20
|
-
return props.
|
|
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: "
|
|
29
|
-
label: i18n.baseText("
|
|
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:
|
|
42
|
-
params: { projectId: props.
|
|
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
|
|
54
|
-
props.
|
|
53
|
+
const updated = await dataTableStore.updateDataTable(
|
|
54
|
+
props.dataTable.id,
|
|
55
55
|
name,
|
|
56
|
-
props.
|
|
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.
|
|
64
|
-
data_table_project_id: props.
|
|
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.
|
|
68
|
-
toast.showError(error, i18n.baseText("
|
|
67
|
+
editableName.value = props.dataTable.name;
|
|
68
|
+
toast.showError(error, i18n.baseText("dataTable.rename.error"));
|
|
69
69
|
}
|
|
70
70
|
};
|
|
71
71
|
watch(
|
|
72
|
-
() => props.
|
|
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-
|
|
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": "
|
|
106
|
-
placeholder: unref(i18n).baseText("
|
|
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-
|
|
117
|
+
class: normalizeClass(_ctx.$style["data-table-actions"])
|
|
117
118
|
}, [
|
|
118
119
|
createVNode(_sfc_main$9, {
|
|
119
|
-
"data-
|
|
120
|
+
"data-table": props.dataTable,
|
|
120
121
|
location: "breadcrumbs",
|
|
121
122
|
onRename,
|
|
122
123
|
onOnDeleted: onDelete
|
|
123
|
-
}, null, 8, ["data-
|
|
124
|
+
}, null, 8, ["data-table"])
|
|
124
125
|
], 2)
|
|
125
126
|
], 2);
|
|
126
127
|
};
|
|
127
128
|
}
|
|
128
129
|
});
|
|
129
|
-
const separator = "
|
|
130
|
+
const separator = "_separator_9bko0_133";
|
|
130
131
|
const style0$2 = {
|
|
131
|
-
"data-
|
|
132
|
-
"data-
|
|
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-
|
|
135
|
+
"breadcrumb-current": "_breadcrumb-current_9bko0_139"
|
|
135
136
|
};
|
|
136
137
|
const cssModules$2 = {
|
|
137
138
|
"$style": style0$2
|
|
138
139
|
};
|
|
139
|
-
const
|
|
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
|
|
48733
|
+
headerColumnBorder: { color: "var(--color--foreground)" },
|
|
48733
48734
|
headerColumnBorderHeight: "100%",
|
|
48734
|
-
checkboxUncheckedBackgroundColor: "var(--color
|
|
48735
|
-
checkboxCheckedBackgroundColor: "var(--color
|
|
48735
|
+
checkboxUncheckedBackgroundColor: "var(--color--background--light-1)",
|
|
48736
|
+
checkboxCheckedBackgroundColor: "var(--color--primary)"
|
|
48736
48737
|
});
|
|
48737
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
48843
|
-
getDefaultValueForType,
|
|
48844
|
-
getAddColumnError
|
|
49009
|
+
mapToDataTableColumnType
|
|
48845
49010
|
};
|
|
48846
49011
|
};
|
|
48847
|
-
const _hoisted_1$3 = { class: "data-
|
|
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-
|
|
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,
|
|
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(
|
|
49079
|
+
return getIconForType(mapToDataTableColumnType(cellDataType));
|
|
48915
49080
|
});
|
|
48916
49081
|
const columnActionItems = [
|
|
48917
49082
|
{
|
|
48918
49083
|
id: "delete",
|
|
48919
|
-
label: i18n.baseText("
|
|
49084
|
+
label: i18n.baseText("dataTable.deleteColumn.confirm.title"),
|
|
48920
49085
|
icon: "trash-2",
|
|
48921
|
-
customClass: "data-
|
|
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-
|
|
48965
|
-
"data-test-id": "data-
|
|
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-
|
|
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: "
|
|
49327
|
+
class: "data-table-datepicker-wrapper"
|
|
49162
49328
|
}, [
|
|
49163
49329
|
createVNode(unref(ElDatePicker), {
|
|
49164
|
-
id: "
|
|
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
|
|
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: "
|
|
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
|
|
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 } =
|
|
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 = [...
|
|
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("
|
|
49463
|
+
let errorMessage = i18n.baseText("dataTable.addColumn.error");
|
|
49298
49464
|
let errorDescription = response.errorMessage;
|
|
49299
49465
|
if (response.httpStatus === 409) {
|
|
49300
|
-
errorMessage = i18n.baseText("
|
|
49466
|
+
errorMessage = i18n.baseText("dataTable.addColumn.alreadyExistsError", {
|
|
49301
49467
|
interpolate: { name: columnName.value }
|
|
49302
49468
|
});
|
|
49303
|
-
errorDescription = response.errorMessage?.includes("system") ? i18n.baseText("
|
|
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("
|
|
49333
|
-
description: i18n.baseText("
|
|
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("
|
|
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-
|
|
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("
|
|
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-
|
|
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("
|
|
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("
|
|
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("
|
|
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-
|
|
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("
|
|
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("
|
|
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 {
|
|
49722
|
+
return {
|
|
49723
|
+
component: _sfc_main$2,
|
|
49724
|
+
params: { value: NULL_VALUE }
|
|
49725
|
+
};
|
|
49556
49726
|
}
|
|
49557
49727
|
if (rowValue === "") {
|
|
49558
|
-
return {
|
|
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 (!
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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
|
|
49708
|
-
|
|
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
|
|
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: {
|
|
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
|
|
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
|
|
49849
|
-
// We use it as a placeholder for new
|
|
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:
|
|
49863
|
-
maxWidth:
|
|
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(
|
|
50042
|
+
...orderBy(dataTableColumns, "index").map((col) => createColumnDef(col)),
|
|
49884
50043
|
createColumnDef(
|
|
49885
50044
|
{
|
|
49886
|
-
index:
|
|
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:
|
|
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:
|
|
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 = (
|
|
49923
|
-
colDefs.value = getColumnDefinitions(
|
|
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,
|
|
49949
|
-
const reorderedMiddle = reorderItem(middleWithIndex, fromIndex, newIndex).sort((a, b) => a.index - b.index).map(({
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
50178
|
+
const dataTableStore = useDataTableStore();
|
|
50110
50179
|
const contentLoading = ref(false);
|
|
50111
50180
|
const telemetry2 = useTelemetry();
|
|
50112
|
-
const
|
|
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("
|
|
50206
|
+
i18n.baseText("dataTable.deleteColumn.confirm.message", {
|
|
50118
50207
|
interpolate: { name: columnToDelete.headerName ?? "" }
|
|
50119
50208
|
}),
|
|
50120
|
-
i18n.baseText("
|
|
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
|
|
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:
|
|
50231
|
+
data_table_id: dataTableId
|
|
50143
50232
|
});
|
|
50144
50233
|
} catch (error) {
|
|
50145
|
-
toast.showError(error, i18n.baseText("
|
|
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
|
|
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:
|
|
50251
|
+
data_table_id: dataTableId
|
|
50163
50252
|
});
|
|
50164
50253
|
return { success: true, httpStatus: 200 };
|
|
50165
50254
|
} catch (error) {
|
|
50166
|
-
const addColumnError =
|
|
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
|
|
50182
|
-
|
|
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("
|
|
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
|
|
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:
|
|
50294
|
+
data_table_id: dataTableId
|
|
50206
50295
|
});
|
|
50207
50296
|
} catch (error) {
|
|
50208
|
-
toast.showError(error, i18n.baseText("
|
|
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) ?
|
|
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
|
|
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:
|
|
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 =
|
|
50239
|
-
const revertedData = {
|
|
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("
|
|
50335
|
+
toast.showError(error, i18n.baseText("dataTable.updateRow.error"));
|
|
50244
50336
|
} finally {
|
|
50245
50337
|
toggleSave(false);
|
|
50246
50338
|
}
|
|
50247
50339
|
};
|
|
50248
|
-
async function
|
|
50340
|
+
async function fetchDataTableRows() {
|
|
50249
50341
|
try {
|
|
50250
50342
|
contentLoading.value = true;
|
|
50251
|
-
const fetchedRows = await
|
|
50252
|
-
|
|
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("
|
|
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("
|
|
50364
|
+
i18n.baseText("dataTable.deleteRows.confirmation", {
|
|
50273
50365
|
adjustToNumber: selectedRowIds.value.size,
|
|
50274
50366
|
interpolate: { count: selectedRowIds.value.size }
|
|
50275
50367
|
}),
|
|
50276
|
-
i18n.baseText("
|
|
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
|
|
50289
|
-
await
|
|
50380
|
+
await dataTableStore.deleteRows(dataTableId, projectId, idsToDelete);
|
|
50381
|
+
await fetchDataTableRows();
|
|
50290
50382
|
telemetry2.track("User deleted rows in data table", {
|
|
50291
|
-
data_table_id:
|
|
50383
|
+
data_table_id: dataTableId,
|
|
50292
50384
|
deleted_row_count: idsToDelete.length
|
|
50293
50385
|
});
|
|
50294
50386
|
} catch (error) {
|
|
50295
|
-
toast.showError(error, i18n.baseText("
|
|
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
|
-
|
|
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
|
|
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: "
|
|
50554
|
+
__name: "DataTableTable",
|
|
50527
50555
|
props: {
|
|
50528
|
-
|
|
50556
|
+
dataTable: {}
|
|
50529
50557
|
},
|
|
50530
50558
|
emits: ["toggleSave"],
|
|
50531
50559
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
50532
|
-
|
|
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
|
|
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
|
|
50566
|
-
|
|
50567
|
-
|
|
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
|
-
} =
|
|
50582
|
-
const selection =
|
|
50583
|
-
gridApi:
|
|
50592
|
+
} = useDataTablePagination({ onChange: fetchDataTableRowsFunction });
|
|
50593
|
+
const selection = useDataTableSelection({
|
|
50594
|
+
gridApi: agGrid.gridApi
|
|
50584
50595
|
});
|
|
50585
|
-
const
|
|
50586
|
-
colDefs:
|
|
50596
|
+
const dataTableOperations = useDataTableOperations({
|
|
50597
|
+
colDefs: dataTableColumns.colDefs,
|
|
50587
50598
|
rowData,
|
|
50588
|
-
deleteGridColumn:
|
|
50589
|
-
setGridData:
|
|
50590
|
-
insertGridColumnAtIndex:
|
|
50591
|
-
|
|
50592
|
-
projectId: props.
|
|
50593
|
-
addGridColumn:
|
|
50594
|
-
moveGridColumn:
|
|
50595
|
-
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:
|
|
50610
|
+
focusFirstEditableCell: agGrid.focusFirstEditableCell,
|
|
50600
50611
|
toggleSave: emit.bind(null, "toggleSave"),
|
|
50601
50612
|
currentPage,
|
|
50602
50613
|
pageSize,
|
|
50603
|
-
currentSortBy:
|
|
50604
|
-
currentSortOrder:
|
|
50614
|
+
currentSortBy: agGrid.currentSortBy,
|
|
50615
|
+
currentSortOrder: agGrid.currentSortOrder,
|
|
50605
50616
|
handleClearSelection: selection.handleClearSelection,
|
|
50606
50617
|
selectedRowIds: selection.selectedRowIds,
|
|
50607
|
-
handleCopyFocusedCell:
|
|
50618
|
+
handleCopyFocusedCell: agGrid.handleCopyFocusedCell,
|
|
50608
50619
|
currentFilterJSON
|
|
50609
50620
|
});
|
|
50610
50621
|
async function onDeleteColumnFunction(columnId) {
|
|
50611
|
-
await
|
|
50622
|
+
await dataTableOperations.onDeleteColumn(columnId);
|
|
50612
50623
|
}
|
|
50613
50624
|
async function onAddColumnFunction(column) {
|
|
50614
|
-
return await
|
|
50625
|
+
return await dataTableOperations.onAddColumn(column);
|
|
50615
50626
|
}
|
|
50616
50627
|
async function onAddRowClickFunction() {
|
|
50617
|
-
await
|
|
50628
|
+
await dataTableOperations.onAddRowClick();
|
|
50618
50629
|
}
|
|
50619
|
-
async function
|
|
50620
|
-
await
|
|
50630
|
+
async function fetchDataTableRowsFunction() {
|
|
50631
|
+
await dataTableOperations.fetchDataTableRows();
|
|
50621
50632
|
}
|
|
50622
50633
|
const initialize = async (params) => {
|
|
50623
|
-
|
|
50624
|
-
|
|
50625
|
-
|
|
50626
|
-
|
|
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-
|
|
50629
|
-
watch([
|
|
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:
|
|
50637
|
-
addColumn:
|
|
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-
|
|
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(
|
|
50653
|
-
"header-height": unref(
|
|
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(
|
|
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(
|
|
50666
|
-
onColumnMoved: unref(
|
|
50667
|
-
onCellClicked: unref(
|
|
50668
|
-
onCellEditingStarted: unref(
|
|
50669
|
-
onCellEditingStopped: unref(
|
|
50670
|
-
onColumnHeaderClicked: unref(
|
|
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(
|
|
50673
|
-
onCellKeyDown: unref(
|
|
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", "
|
|
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[
|
|
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[
|
|
50687
|
-
"data-test-id": "data-
|
|
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[
|
|
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(
|
|
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 = "
|
|
50706
|
-
const footer = "
|
|
50716
|
+
const wrapper = "_wrapper_a9qvr_123";
|
|
50717
|
+
const footer = "_footer_a9qvr_279";
|
|
50707
50718
|
const style0$1 = {
|
|
50708
50719
|
wrapper,
|
|
50709
|
-
"has-records": "_has-
|
|
50710
|
-
"grid-container": "_grid-
|
|
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
|
|
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-
|
|
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: "
|
|
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
|
|
50745
|
+
const dataTableStore = useDataTableStore();
|
|
50735
50746
|
const loading = ref(false);
|
|
50736
50747
|
const saving2 = ref(false);
|
|
50737
|
-
const
|
|
50738
|
-
const
|
|
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("
|
|
50753
|
+
error = new Error(String(i18n.baseText("dataTable.getDetails.error")));
|
|
50743
50754
|
}
|
|
50744
|
-
toast.showError(error, i18n.baseText("
|
|
50745
|
-
await router.push({ name:
|
|
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
|
|
50761
|
+
const response = await dataTableStore.fetchOrFindDataTable(props.id, props.projectId);
|
|
50751
50762
|
if (response) {
|
|
50752
|
-
|
|
50753
|
-
documentTitle.set(`${i18n.baseText("
|
|
50763
|
+
dataTable.value = response;
|
|
50764
|
+
documentTitle.set(`${i18n.baseText("dataTable.dataTables")} > ${response.name}`);
|
|
50754
50765
|
} else {
|
|
50755
|
-
await showErrorAndGoBackToList(new Error(i18n.baseText("
|
|
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 (!
|
|
50794
|
+
if (!dataTableTableRef.value) {
|
|
50784
50795
|
return {
|
|
50785
50796
|
success: false,
|
|
50786
|
-
errorMessage: i18n.baseText("
|
|
50797
|
+
errorMessage: i18n.baseText("dataTable.error.tableNotInitialized")
|
|
50787
50798
|
};
|
|
50788
50799
|
}
|
|
50789
|
-
return await
|
|
50800
|
+
return await dataTableTableRef.value.addColumn(column);
|
|
50790
50801
|
};
|
|
50791
50802
|
onMounted(async () => {
|
|
50792
|
-
documentTitle.set(i18n.baseText("
|
|
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-
|
|
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
|
-
])) :
|
|
50825
|
+
])) : dataTable.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
50814
50826
|
createBaseVNode("div", {
|
|
50815
50827
|
class: normalizeClass(_ctx.$style.header)
|
|
50816
50828
|
}, [
|
|
50817
|
-
createVNode(
|
|
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
|
-
|
|
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("
|
|
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(
|
|
50852
|
-
ref_key: "
|
|
50853
|
-
ref:
|
|
50854
|
-
"data-
|
|
50864
|
+
createVNode(DataTableTable, {
|
|
50865
|
+
ref_key: "dataTableTableRef",
|
|
50866
|
+
ref: dataTableTableRef,
|
|
50867
|
+
"data-table": dataTable.value,
|
|
50855
50868
|
onToggleSave
|
|
50856
|
-
}, null, 8, ["data-
|
|
50869
|
+
}, null, 8, ["data-table"])
|
|
50857
50870
|
], 2)
|
|
50858
50871
|
])) : createCommentVNode("", true)
|
|
50859
50872
|
], 2);
|
|
50860
50873
|
};
|
|
50861
50874
|
}
|
|
50862
50875
|
});
|
|
50863
|
-
const header = "
|
|
50864
|
-
const saving = "
|
|
50865
|
-
const actions = "
|
|
50876
|
+
const header = "_header_1sxsb_132";
|
|
50877
|
+
const saving = "_saving_1sxsb_147";
|
|
50878
|
+
const actions = "_actions_1sxsb_154";
|
|
50866
50879
|
const style0 = {
|
|
50867
|
-
"data-
|
|
50868
|
-
"header-loading": "_header-
|
|
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
|
|
50889
|
+
const DataTableDetailsView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
|
|
50877
50890
|
export {
|
|
50878
|
-
|
|
50891
|
+
DataTableDetailsView as default
|
|
50879
50892
|
};
|