@erpsquad/common 1.11.5 → 1.11.6
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/dist/chunks/{DynamicDependentField-Bug_QweP.esm.js → DynamicDependentField-C0XXmMlG.esm.js} +2 -2
- package/dist/chunks/{DynamicDependentField-Bug_QweP.esm.js.map → DynamicDependentField-C0XXmMlG.esm.js.map} +1 -1
- package/dist/chunks/{DynamicDependentField-GTIwrPfP.js → DynamicDependentField-CQIfDDqc.js} +2 -2
- package/dist/chunks/{DynamicDependentField-GTIwrPfP.js.map → DynamicDependentField-CQIfDDqc.js.map} +1 -1
- package/dist/chunks/{FORMS-QqBksLc2.esm.js → FORMS-B40NtUdz.esm.js} +5 -5
- package/dist/chunks/{FORMS-QqBksLc2.esm.js.map → FORMS-B40NtUdz.esm.js.map} +1 -1
- package/dist/chunks/{FORMS-DITDFHy1.js → FORMS-K5QYZYJc.js} +5 -5
- package/dist/chunks/{FORMS-DITDFHy1.js.map → FORMS-K5QYZYJc.js.map} +1 -1
- package/dist/chunks/{FlexibleReduxExample-CMUylyy1.js → FlexibleReduxExample-WGpR03V0.js} +3 -3
- package/dist/chunks/{FlexibleReduxExample-CMUylyy1.js.map → FlexibleReduxExample-WGpR03V0.js.map} +1 -1
- package/dist/chunks/{FlexibleReduxExample-BweOhhft.esm.js → FlexibleReduxExample-lJRAIjmS.esm.js} +3 -3
- package/dist/chunks/{FlexibleReduxExample-BweOhhft.esm.js.map → FlexibleReduxExample-lJRAIjmS.esm.js.map} +1 -1
- package/dist/chunks/{SectionFlowEditor-COarQdF5.esm.js → SectionFlowEditor-CFfJBYKx.esm.js} +2 -2
- package/dist/chunks/{SectionFlowEditor-COarQdF5.esm.js.map → SectionFlowEditor-CFfJBYKx.esm.js.map} +1 -1
- package/dist/chunks/{SectionFlowEditor--gfRgdM2.js → SectionFlowEditor-sKsZ3oQo.js} +2 -2
- package/dist/chunks/{SectionFlowEditor--gfRgdM2.js.map → SectionFlowEditor-sKsZ3oQo.js.map} +1 -1
- package/dist/chunks/{action-bar-sX54kFo9.esm.js → action-bar-C7Alva4T.esm.js} +3 -3
- package/dist/chunks/{action-bar-sX54kFo9.esm.js.map → action-bar-C7Alva4T.esm.js.map} +1 -1
- package/dist/chunks/{action-bar-CGP-GLkt.js → action-bar-DdtpxWNk.js} +3 -3
- package/dist/chunks/{action-bar-CGP-GLkt.js.map → action-bar-DdtpxWNk.js.map} +1 -1
- package/dist/chunks/{add-template-xyPHm3zV.esm.js → add-template-DVvbD9a4.esm.js} +2 -2
- package/dist/chunks/{add-template-xyPHm3zV.esm.js.map → add-template-DVvbD9a4.esm.js.map} +1 -1
- package/dist/chunks/{add-template-vpXcccHo.js → add-template-Dohg2bHJ.js} +2 -2
- package/dist/chunks/{add-template-vpXcccHo.js.map → add-template-Dohg2bHJ.js.map} +1 -1
- package/dist/chunks/{address-modal-DFd5sQtR.js → address-modal-CYhiC7ui.js} +2 -2
- package/dist/chunks/{address-modal-DFd5sQtR.js.map → address-modal-CYhiC7ui.js.map} +1 -1
- package/dist/chunks/{address-modal-DRT30GGc.esm.js → address-modal-CkDBjnye.esm.js} +2 -2
- package/dist/chunks/{address-modal-DRT30GGc.esm.js.map → address-modal-CkDBjnye.esm.js.map} +1 -1
- package/dist/chunks/{app-switcher-VhH9z0Rd.js → app-switcher-CyEQmYAN.js} +2 -2
- package/dist/chunks/{app-switcher-VhH9z0Rd.js.map → app-switcher-CyEQmYAN.js.map} +1 -1
- package/dist/chunks/{app-switcher-B6eapuGG.esm.js → app-switcher-D-Bvz9uO.esm.js} +2 -2
- package/dist/chunks/{app-switcher-B6eapuGG.esm.js.map → app-switcher-D-Bvz9uO.esm.js.map} +1 -1
- package/dist/chunks/{appbar-D5moUuMm.esm.js → appbar-BdTp1k68.esm.js} +2 -2
- package/dist/chunks/{appbar-D5moUuMm.esm.js.map → appbar-BdTp1k68.esm.js.map} +1 -1
- package/dist/chunks/{appbar-WvWT7p_M.js → appbar-DyIptRTa.js} +2 -2
- package/dist/chunks/{appbar-WvWT7p_M.js.map → appbar-DyIptRTa.js.map} +1 -1
- package/dist/chunks/{common-PH2uWkqL.js → common-CS5L0Ld_.js} +2 -2
- package/dist/chunks/{common-PH2uWkqL.js.map → common-CS5L0Ld_.js.map} +1 -1
- package/dist/chunks/{common-Cl5oGXmX.esm.js → common-yORBIVv-.esm.js} +2 -2
- package/dist/chunks/{common-Cl5oGXmX.esm.js.map → common-yORBIVv-.esm.js.map} +1 -1
- package/dist/chunks/{constants-D_xuLHSu.js → constants-06kIVUBw.js} +2 -2
- package/dist/chunks/{constants-D_xuLHSu.js.map → constants-06kIVUBw.js.map} +1 -1
- package/dist/chunks/{constants-BrmMAwu2.esm.js → constants-nmkxkzps.esm.js} +2 -2
- package/dist/chunks/{constants-BrmMAwu2.esm.js.map → constants-nmkxkzps.esm.js.map} +1 -1
- package/dist/chunks/{custom-form-T4yc_sE_.js → custom-form-CFU7NEVb.js} +4 -4
- package/dist/chunks/{custom-form-T4yc_sE_.js.map → custom-form-CFU7NEVb.js.map} +1 -1
- package/dist/chunks/{custom-form-B0iJKE-f.esm.js → custom-form-DD7YOHMF.esm.js} +4 -4
- package/dist/chunks/{custom-form-B0iJKE-f.esm.js.map → custom-form-DD7YOHMF.esm.js.map} +1 -1
- package/dist/chunks/{dashboard-u68tvYf2.esm.js → dashboard-B5qcT2Dt.esm.js} +3 -3
- package/dist/chunks/{dashboard-u68tvYf2.esm.js.map → dashboard-B5qcT2Dt.esm.js.map} +1 -1
- package/dist/chunks/{dashboard-Ck4clis4.js → dashboard-Dzts5-X6.js} +3 -3
- package/dist/chunks/{dashboard-Ck4clis4.js.map → dashboard-Dzts5-X6.js.map} +1 -1
- package/dist/chunks/{filter-BxLWUhFQ.esm.js → filter-COXKBEER.esm.js} +3 -3
- package/dist/chunks/{filter-BxLWUhFQ.esm.js.map → filter-COXKBEER.esm.js.map} +1 -1
- package/dist/chunks/{filter-DQNAPq4l.js → filter-Cr_OSIpb.js} +3 -3
- package/dist/chunks/{filter-DQNAPq4l.js.map → filter-Cr_OSIpb.js.map} +1 -1
- package/dist/chunks/{footer-DioOh69g.js → footer-CD3kMRdS.js} +2 -2
- package/dist/chunks/{footer-DioOh69g.js.map → footer-CD3kMRdS.js.map} +1 -1
- package/dist/chunks/{footer-BXClGYIb.esm.js → footer-m3_dlNl8.esm.js} +2 -2
- package/dist/chunks/{footer-BXClGYIb.esm.js.map → footer-m3_dlNl8.esm.js.map} +1 -1
- package/dist/chunks/{form-fields-DKFiyLCi.esm.js → form-fields-hMMnB_wE.esm.js} +2 -2
- package/dist/chunks/{form-fields-DKFiyLCi.esm.js.map → form-fields-hMMnB_wE.esm.js.map} +1 -1
- package/dist/chunks/{form-fields-BYDhbAgB.js → form-fields-yE9kwjvb.js} +2 -2
- package/dist/chunks/{form-fields-BYDhbAgB.js.map → form-fields-yE9kwjvb.js.map} +1 -1
- package/dist/chunks/{form-parser-C95b2on7.esm.js → form-parser-DbnSn5eY.esm.js} +2 -2
- package/dist/chunks/{form-parser-C95b2on7.esm.js.map → form-parser-DbnSn5eY.esm.js.map} +1 -1
- package/dist/chunks/{form-parser-BnMdMDSb.js → form-parser-m4fnw38a.js} +2 -2
- package/dist/chunks/{form-parser-BnMdMDSb.js.map → form-parser-m4fnw38a.js.map} +1 -1
- package/dist/chunks/{form-section-CFeWD-tF.js → form-section-CPIyMdk2.js} +5 -5
- package/dist/chunks/{form-section-CFeWD-tF.js.map → form-section-CPIyMdk2.js.map} +1 -1
- package/dist/chunks/{form-section-Bx_D21gW.esm.js → form-section-TMjdOVeW.esm.js} +5 -5
- package/dist/chunks/{form-section-Bx_D21gW.esm.js.map → form-section-TMjdOVeW.esm.js.map} +1 -1
- package/dist/chunks/{fullScreen-q9u5VL-5.js → fullScreen-B5iqC1y0.js} +2 -2
- package/dist/chunks/{fullScreen-q9u5VL-5.js.map → fullScreen-B5iqC1y0.js.map} +1 -1
- package/dist/chunks/{fullScreen-DTQ6tqij.esm.js → fullScreen-D-isf0wv.esm.js} +2 -2
- package/dist/chunks/{fullScreen-DTQ6tqij.esm.js.map → fullScreen-D-isf0wv.esm.js.map} +1 -1
- package/dist/chunks/{global-search-DCsutWXD.esm.js → global-search-BOkxXiZ0.esm.js} +2 -2
- package/dist/chunks/{global-search-DCsutWXD.esm.js.map → global-search-BOkxXiZ0.esm.js.map} +1 -1
- package/dist/chunks/{global-search-BTV5iL6-.js → global-search-BjKPmzsQ.js} +2 -2
- package/dist/chunks/{global-search-BTV5iL6-.js.map → global-search-BjKPmzsQ.js.map} +1 -1
- package/dist/chunks/{header-CqTEaHw3.js → header-DQ_e75rt.js} +6 -6
- package/dist/chunks/{header-CqTEaHw3.js.map → header-DQ_e75rt.js.map} +1 -1
- package/dist/chunks/{header-I2izTvvZ.esm.js → header-D_pPOjdz.esm.js} +6 -6
- package/dist/chunks/{header-I2izTvvZ.esm.js.map → header-D_pPOjdz.esm.js.map} +1 -1
- package/dist/chunks/{header-enhanced-Dxdetx0I.js → header-enhanced-DCDMljaN.js} +3 -3
- package/dist/chunks/{header-enhanced-Dxdetx0I.js.map → header-enhanced-DCDMljaN.js.map} +1 -1
- package/dist/chunks/{header-enhanced-D31BpL2H.esm.js → header-enhanced-OiKzLG4i.esm.js} +3 -3
- package/dist/chunks/{header-enhanced-D31BpL2H.esm.js.map → header-enhanced-OiKzLG4i.esm.js.map} +1 -1
- package/dist/chunks/{inline-edit-fields-CjqUhdIv.esm.js → inline-edit-fields-BYhRpPcH.esm.js} +2 -2
- package/dist/chunks/{inline-edit-fields-CjqUhdIv.esm.js.map → inline-edit-fields-BYhRpPcH.esm.js.map} +1 -1
- package/dist/chunks/{inline-edit-fields-Cd_qUOjU.js → inline-edit-fields-atDP84QL.js} +2 -2
- package/dist/chunks/{inline-edit-fields-Cd_qUOjU.js.map → inline-edit-fields-atDP84QL.js.map} +1 -1
- package/dist/chunks/{inventory-reports-title-bar-BfUMM54c.js → inventory-reports-title-bar-Bog2i0dr.js} +2 -2
- package/dist/chunks/{inventory-reports-title-bar-BfUMM54c.js.map → inventory-reports-title-bar-Bog2i0dr.js.map} +1 -1
- package/dist/chunks/{inventory-reports-title-bar-DPS3r5V2.esm.js → inventory-reports-title-bar-CP8FzW6A.esm.js} +2 -2
- package/dist/chunks/{inventory-reports-title-bar-DPS3r5V2.esm.js.map → inventory-reports-title-bar-CP8FzW6A.esm.js.map} +1 -1
- package/dist/chunks/{item-response-details-BheThTTK.js → item-response-details-DsGQ7Dlc.js} +2 -2
- package/dist/chunks/{item-response-details-BheThTTK.js.map → item-response-details-DsGQ7Dlc.js.map} +1 -1
- package/dist/chunks/{item-response-details-BtCmz7XT.esm.js → item-response-details-SHSD-nBh.esm.js} +2 -2
- package/dist/chunks/{item-response-details-BtCmz7XT.esm.js.map → item-response-details-SHSD-nBh.esm.js.map} +1 -1
- package/dist/chunks/{listing-Ck-RqIjL.esm.js → listing-C0Yb6MVq.esm.js} +4 -4
- package/dist/chunks/{listing-Ck-RqIjL.esm.js.map → listing-C0Yb6MVq.esm.js.map} +1 -1
- package/dist/chunks/{listing-BDN5cLvI.js → listing-DIuzQrzb.js} +4 -4
- package/dist/chunks/{listing-BDN5cLvI.js.map → listing-DIuzQrzb.js.map} +1 -1
- package/dist/chunks/{location-select-jwR8SCYN.esm.js → location-select-CFa00fy4.esm.js} +2 -2
- package/dist/chunks/{location-select-jwR8SCYN.esm.js.map → location-select-CFa00fy4.esm.js.map} +1 -1
- package/dist/chunks/{location-select-CLyRUilk.js → location-select-g5uczAUF.js} +2 -2
- package/dist/chunks/{location-select-CLyRUilk.js.map → location-select-g5uczAUF.js.map} +1 -1
- package/dist/chunks/{material-editable-table-DFGB0q-s.js → material-editable-table-BGLjrTzT.js} +3 -3
- package/dist/chunks/{material-editable-table-DFGB0q-s.js.map → material-editable-table-BGLjrTzT.js.map} +1 -1
- package/dist/chunks/{material-editable-table-qC9FTg-4.esm.js → material-editable-table-pAyK7KYf.esm.js} +3 -3
- package/dist/chunks/{material-editable-table-qC9FTg-4.esm.js.map → material-editable-table-pAyK7KYf.esm.js.map} +1 -1
- package/dist/chunks/{modules-DTRr7zwt.js → modules-BZNWOWrz.js} +2 -2
- package/dist/chunks/{modules-DTRr7zwt.js.map → modules-BZNWOWrz.js.map} +1 -1
- package/dist/chunks/{modules-enwLrpfQ.esm.js → modules-CWV4WSHs.esm.js} +2 -2
- package/dist/chunks/{modules-enwLrpfQ.esm.js.map → modules-CWV4WSHs.esm.js.map} +1 -1
- package/dist/chunks/{notification-menu-B00hDUbn.js → notification-menu-D7ASm-K1.js} +2 -2
- package/dist/chunks/{notification-menu-B00hDUbn.js.map → notification-menu-D7ASm-K1.js.map} +1 -1
- package/dist/chunks/{notification-menu-B_4BOTgX.esm.js → notification-menu-XAadkn-e.esm.js} +2 -2
- package/dist/chunks/{notification-menu-B_4BOTgX.esm.js.map → notification-menu-XAadkn-e.esm.js.map} +1 -1
- package/dist/chunks/{page-action-TMFOytDw.js → page-action-BPzaL2KJ.js} +2 -2
- package/dist/chunks/{page-action-TMFOytDw.js.map → page-action-BPzaL2KJ.js.map} +1 -1
- package/dist/chunks/{page-action-0S_h4623.esm.js → page-action-C07iGjvN.esm.js} +2 -2
- package/dist/chunks/{page-action-0S_h4623.esm.js.map → page-action-C07iGjvN.esm.js.map} +1 -1
- package/dist/chunks/{page-navigator-B17f-mUz.esm.js → page-navigator-8gZpp9_P.esm.js} +2 -2
- package/dist/chunks/{page-navigator-B17f-mUz.esm.js.map → page-navigator-8gZpp9_P.esm.js.map} +1 -1
- package/dist/chunks/{page-navigator-DdRsmtLy.js → page-navigator-Cgbh3tTG.js} +2 -2
- package/dist/chunks/{page-navigator-DdRsmtLy.js.map → page-navigator-Cgbh3tTG.js.map} +1 -1
- package/dist/chunks/{page-view-CnzxewUy.esm.js → page-view-CokUNMBn.esm.js} +3 -3
- package/dist/chunks/{page-view-CnzxewUy.esm.js.map → page-view-CokUNMBn.esm.js.map} +1 -1
- package/dist/chunks/{page-view-CvfqzV03.js → page-view-DJ6HS_dV.js} +3 -3
- package/dist/chunks/{page-view-CvfqzV03.js.map → page-view-DJ6HS_dV.js.map} +1 -1
- package/dist/chunks/{pathname.rental-CwK6JuID.js → pathname.rental-DgH4LoG7.js} +7 -2
- package/dist/chunks/{pathname.rental-CwK6JuID.js.map → pathname.rental-DgH4LoG7.js.map} +1 -1
- package/dist/chunks/{pathname.rental-CqHO_l_D.esm.js → pathname.rental-qsAe3XFd.esm.js} +81 -76
- package/dist/chunks/{pathname.rental-CqHO_l_D.esm.js.map → pathname.rental-qsAe3XFd.esm.js.map} +1 -1
- package/dist/chunks/{reports-title-bar-CqVqKrPd.esm.js → reports-title-bar-Cay4E8SQ.esm.js} +2 -2
- package/dist/chunks/{reports-title-bar-CqVqKrPd.esm.js.map → reports-title-bar-Cay4E8SQ.esm.js.map} +1 -1
- package/dist/chunks/{reports-title-bar-B1_IweEc.js → reports-title-bar-Kz6JjqsY.js} +2 -2
- package/dist/chunks/{reports-title-bar-B1_IweEc.js.map → reports-title-bar-Kz6JjqsY.js.map} +1 -1
- package/dist/chunks/{route-page-map-CSg28AvB.esm.js → route-page-map-DkWoisiB.esm.js} +132 -75
- package/dist/chunks/{route-page-map-CSg28AvB.esm.js.map → route-page-map-DkWoisiB.esm.js.map} +1 -1
- package/dist/chunks/{route-page-map-__F1KHUj.js → route-page-map-Dn-SAbdf.js} +59 -2
- package/dist/chunks/{route-page-map-__F1KHUj.js.map → route-page-map-Dn-SAbdf.js.map} +1 -1
- package/dist/chunks/{routes-DauYjaxu.esm.js → routes-Be8qxaVS.esm.js} +3 -3
- package/dist/chunks/{routes-DauYjaxu.esm.js.map → routes-Be8qxaVS.esm.js.map} +1 -1
- package/dist/chunks/{routes-Bs7dqd7j.js → routes-Bi8lChPT.js} +3 -3
- package/dist/chunks/{routes-Bs7dqd7j.js.map → routes-Bi8lChPT.js.map} +1 -1
- package/dist/chunks/{schedule-report-BwmZ5jea.js → schedule-report-B4ZfEuiU.js} +4 -4
- package/dist/chunks/{schedule-report-BwmZ5jea.js.map → schedule-report-B4ZfEuiU.js.map} +1 -1
- package/dist/chunks/{schedule-report-D2oYKVGN.esm.js → schedule-report-CLXjjfjc.esm.js} +4 -4
- package/dist/chunks/{schedule-report-D2oYKVGN.esm.js.map → schedule-report-CLXjjfjc.esm.js.map} +1 -1
- package/dist/chunks/{schedule-report-modal-maDNFV-h.esm.js → schedule-report-modal-CB3G9H7x.esm.js} +2 -2
- package/dist/chunks/{schedule-report-modal-maDNFV-h.esm.js.map → schedule-report-modal-CB3G9H7x.esm.js.map} +1 -1
- package/dist/chunks/{schedule-report-modal-iNnWP9s4.js → schedule-report-modal-iwoDI-sg.js} +2 -2
- package/dist/chunks/{schedule-report-modal-iNnWP9s4.js.map → schedule-report-modal-iwoDI-sg.js.map} +1 -1
- package/dist/chunks/{searchable-select-CcG1qflA.esm.js → searchable-select-0F6E4XAr.esm.js} +2 -2
- package/dist/chunks/{searchable-select-CcG1qflA.esm.js.map → searchable-select-0F6E4XAr.esm.js.map} +1 -1
- package/dist/chunks/{searchable-select-DVUCWWti.js → searchable-select-_DCkITfk.js} +2 -2
- package/dist/chunks/{searchable-select-DVUCWWti.js.map → searchable-select-_DCkITfk.js.map} +1 -1
- package/dist/chunks/{share-modal-CQYd5GU0.esm.js → share-modal-BaEyZs2h.esm.js} +2 -2
- package/dist/chunks/{share-modal-CQYd5GU0.esm.js.map → share-modal-BaEyZs2h.esm.js.map} +1 -1
- package/dist/chunks/{share-modal-CobK7BN7.js → share-modal-DrXvh-fV.js} +2 -2
- package/dist/chunks/{share-modal-CobK7BN7.js.map → share-modal-DrXvh-fV.js.map} +1 -1
- package/dist/chunks/{share-modal-enhanced-DVarD-jt.js → share-modal-enhanced-BTr0zRhF.js} +2 -2
- package/dist/chunks/{share-modal-enhanced-DVarD-jt.js.map → share-modal-enhanced-BTr0zRhF.js.map} +1 -1
- package/dist/chunks/{share-modal-enhanced-04WjO7Ej.esm.js → share-modal-enhanced-DnEdDBmu.esm.js} +2 -2
- package/dist/chunks/{share-modal-enhanced-04WjO7Ej.esm.js.map → share-modal-enhanced-DnEdDBmu.esm.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-BvaFDSr8.js → sidebarScreen-3iZYCAMn.js} +2 -2
- package/dist/chunks/{sidebarScreen-BvaFDSr8.js.map → sidebarScreen-3iZYCAMn.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-CLsGgJpX.esm.js → sidebarScreen-CYUn8OsB.esm.js} +2 -2
- package/dist/chunks/{sidebarScreen-CLsGgJpX.esm.js.map → sidebarScreen-CYUn8OsB.esm.js.map} +1 -1
- package/dist/chunks/{table-Bpt6ggr3.js → table-DWx7x8zw.js} +2 -2
- package/dist/chunks/{table-Bpt6ggr3.js.map → table-DWx7x8zw.js.map} +1 -1
- package/dist/chunks/{table-DgCWox6A.esm.js → table-gxAlAeTq.esm.js} +2 -2
- package/dist/chunks/{table-DgCWox6A.esm.js.map → table-gxAlAeTq.esm.js.map} +1 -1
- package/dist/chunks/{template-editor-router-Dq3Hsw99.js → template-editor-router-BRxF8Dj_.js} +2 -2
- package/dist/chunks/{template-editor-router-Dq3Hsw99.js.map → template-editor-router-BRxF8Dj_.js.map} +1 -1
- package/dist/chunks/{template-editor-router-DAGjgCfA.esm.js → template-editor-router-BV5FrwJm.esm.js} +2 -2
- package/dist/chunks/{template-editor-router-DAGjgCfA.esm.js.map → template-editor-router-BV5FrwJm.esm.js.map} +1 -1
- package/dist/chunks/{templates-BkVjG5c0.js → templates-BY9HF32G.js} +4 -4
- package/dist/chunks/{templates-BkVjG5c0.js.map → templates-BY9HF32G.js.map} +1 -1
- package/dist/chunks/{templates-DrKOJkmh.esm.js → templates-DxvU4PQY.esm.js} +4 -4
- package/dist/chunks/{templates-DrKOJkmh.esm.js.map → templates-DxvU4PQY.esm.js.map} +1 -1
- package/dist/chunks/{uom-field-wrapper-DyhwLo9Q.esm.js → uom-field-wrapper-CTbEc-MB.esm.js} +2 -2
- package/dist/chunks/{uom-field-wrapper-DyhwLo9Q.esm.js.map → uom-field-wrapper-CTbEc-MB.esm.js.map} +1 -1
- package/dist/chunks/{uom-field-wrapper-CSqeiVPY.js → uom-field-wrapper-DXZgzOYB.js} +2 -2
- package/dist/chunks/{uom-field-wrapper-CSqeiVPY.js.map → uom-field-wrapper-DXZgzOYB.js.map} +1 -1
- package/dist/chunks/{use-translations-RGIbWjPM.esm.js → use-translations-BzykVZOP.esm.js} +2 -2
- package/dist/chunks/{use-translations-RGIbWjPM.esm.js.map → use-translations-BzykVZOP.esm.js.map} +1 -1
- package/dist/chunks/{use-translations-Cn3b4Kqh.js → use-translations-CNI_xsIo.js} +2 -2
- package/dist/chunks/{use-translations-Cn3b4Kqh.js.map → use-translations-CNI_xsIo.js.map} +1 -1
- package/dist/chunks/{value-editor-Br7X_wEB.js → value-editor-BSS9Ns2T.js} +2 -2
- package/dist/chunks/{value-editor-Br7X_wEB.js.map → value-editor-BSS9Ns2T.js.map} +1 -1
- package/dist/chunks/{value-editor-DkDNIrZ4.esm.js → value-editor-DQ1qgZ2u.esm.js} +2 -2
- package/dist/chunks/{value-editor-DkDNIrZ4.esm.js.map → value-editor-DQ1qgZ2u.esm.js.map} +1 -1
- package/dist/chunks/{vendor-ai-summary-C33oHYPA.esm.js → vendor-ai-summary-BA6m2dH9.esm.js} +2 -2
- package/dist/chunks/{vendor-ai-summary-C33oHYPA.esm.js.map → vendor-ai-summary-BA6m2dH9.esm.js.map} +1 -1
- package/dist/chunks/{vendor-ai-summary-zranZkfk.js → vendor-ai-summary-DWmAaQ_N.js} +2 -2
- package/dist/chunks/{vendor-ai-summary-zranZkfk.js.map → vendor-ai-summary-DWmAaQ_N.js.map} +1 -1
- package/dist/components/action-bar/action-bar/index.esm.js +1 -1
- package/dist/components/action-bar/action-bar/index.js +1 -1
- package/dist/components/action-bar/index.esm.js +1 -1
- package/dist/components/action-bar/index.js +1 -1
- package/dist/components/address-modal/index.esm.js +1 -1
- package/dist/components/address-modal/index.js +1 -1
- package/dist/components/appbar/appbar/index.esm.js +1 -1
- package/dist/components/appbar/appbar/index.js +1 -1
- package/dist/components/appbar/index.esm.js +1 -1
- package/dist/components/appbar/index.js +1 -1
- package/dist/components/custom-forms/FORMS/index.esm.js +1 -1
- package/dist/components/custom-forms/FORMS/index.js +1 -1
- package/dist/components/custom-forms/index.esm.js +1 -1
- package/dist/components/custom-forms/index.js +1 -1
- package/dist/components/department-add-modal/index.esm.js +1 -1
- package/dist/components/department-add-modal/index.js +1 -1
- package/dist/components/designation-add-modal/index.esm.js +1 -1
- package/dist/components/designation-add-modal/index.js +1 -1
- package/dist/components/examples/FlexibleReduxExample/index.esm.js +1 -1
- package/dist/components/examples/FlexibleReduxExample/index.js +1 -1
- package/dist/components/examples/index.esm.js +1 -1
- package/dist/components/examples/index.js +1 -1
- package/dist/components/filter/components/index.esm.js +1 -1
- package/dist/components/filter/components/index.js +1 -1
- package/dist/components/filter/components/value-editor/index.esm.js +1 -1
- package/dist/components/filter/components/value-editor/index.js +1 -1
- package/dist/components/filter/filter/index.esm.js +1 -1
- package/dist/components/filter/filter/index.js +1 -1
- package/dist/components/filter/index.esm.js +2 -2
- package/dist/components/filter/index.js +2 -2
- package/dist/components/footer/footer/index.esm.js +1 -1
- package/dist/components/footer/footer/index.js +1 -1
- package/dist/components/footer/index.esm.js +1 -1
- package/dist/components/footer/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/index.esm.js +3 -3
- package/dist/components/form-control/form-builder/form-builder-element/index.js +3 -3
- package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/table/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/table/index.js +1 -1
- package/dist/components/form-control/form-builder/index.esm.js +3 -3
- package/dist/components/form-control/form-builder/index.js +3 -3
- package/dist/components/form-control/form-parser/form-parser/index.esm.js +1 -1
- package/dist/components/form-control/form-parser/form-parser/index.js +1 -1
- package/dist/components/form-control/form-parser/form-section/index.esm.js +1 -1
- package/dist/components/form-control/form-parser/form-section/index.js +1 -1
- package/dist/components/form-control/form-parser/index.esm.js +2 -2
- package/dist/components/form-control/form-parser/index.js +2 -2
- package/dist/components/form-control/index.esm.js +5 -5
- package/dist/components/form-control/index.js +5 -5
- package/dist/components/header/components/app-switcher/index.esm.js +1 -1
- package/dist/components/header/components/app-switcher/index.js +1 -1
- package/dist/components/header/components/global-search/index.esm.js +1 -1
- package/dist/components/header/components/global-search/index.js +1 -1
- package/dist/components/header/components/index.esm.js +1 -1
- package/dist/components/header/components/index.js +1 -1
- package/dist/components/header/components/notification-menu/index.esm.js +1 -1
- package/dist/components/header/components/notification-menu/index.js +1 -1
- package/dist/components/header/components/notification-menu/notification-menu/index.esm.js +1 -1
- package/dist/components/header/components/notification-menu/notification-menu/index.js +1 -1
- package/dist/components/header/header/index.esm.js +1 -1
- package/dist/components/header/header/index.js +1 -1
- package/dist/components/header/header-enhanced/index.esm.js +1 -1
- package/dist/components/header/header-enhanced/index.js +1 -1
- package/dist/components/header/index.esm.js +3 -3
- package/dist/components/header/index.js +3 -3
- package/dist/components/index.esm.js +26 -26
- package/dist/components/index.js +26 -26
- package/dist/components/inventory-reports-title-bar/index.esm.js +1 -1
- package/dist/components/inventory-reports-title-bar/index.js +1 -1
- package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.esm.js +1 -1
- package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.js +1 -1
- package/dist/components/listing/index.esm.js +1 -1
- package/dist/components/listing/index.js +1 -1
- package/dist/components/listing/listing/index.esm.js +1 -1
- package/dist/components/listing/listing/index.js +1 -1
- package/dist/components/location-select/index.esm.js +1 -1
- package/dist/components/location-select/index.js +1 -1
- package/dist/components/material-editable-table/components/index.esm.js +1 -1
- package/dist/components/material-editable-table/components/index.js +1 -1
- package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js +1 -1
- package/dist/components/material-editable-table/components/inline-edit-fields/index.js +1 -1
- package/dist/components/material-editable-table/index.esm.js +2 -2
- package/dist/components/material-editable-table/index.js +2 -2
- package/dist/components/material-editable-table/material-editable-table/index.esm.js +1 -1
- package/dist/components/material-editable-table/material-editable-table/index.js +1 -1
- package/dist/components/material-table/components/index.esm.js +1 -1
- package/dist/components/material-table/components/index.js +1 -1
- package/dist/components/material-table/components/inline-edit-fields/index.esm.js +1 -1
- package/dist/components/material-table/components/inline-edit-fields/index.js +1 -1
- package/dist/components/material-table/index.esm.js +1 -1
- package/dist/components/material-table/index.js +1 -1
- package/dist/components/material-table/material-table/index.esm.js +1 -1
- package/dist/components/material-table/material-table/index.js +1 -1
- package/dist/components/page-navigator/components/index.esm.js +1 -1
- package/dist/components/page-navigator/components/index.js +1 -1
- package/dist/components/page-navigator/components/page-action/index.esm.js +1 -1
- package/dist/components/page-navigator/components/page-action/index.js +1 -1
- package/dist/components/page-navigator/index.esm.js +2 -2
- package/dist/components/page-navigator/index.js +2 -2
- package/dist/components/page-navigator/page-navigator/index.esm.js +1 -1
- package/dist/components/page-navigator/page-navigator/index.js +1 -1
- package/dist/components/parties-modal/index.esm.js +1 -1
- package/dist/components/parties-modal/index.js +1 -1
- package/dist/components/parties-modal/parties-modal/index.esm.js +1 -1
- package/dist/components/parties-modal/parties-modal/index.js +1 -1
- package/dist/components/reports-title-bar/index.esm.js +1 -1
- package/dist/components/reports-title-bar/index.js +1 -1
- package/dist/components/reports-title-bar/reports-title-bar/index.esm.js +1 -1
- package/dist/components/reports-title-bar/reports-title-bar/index.js +1 -1
- package/dist/components/rfq-response/index.esm.js +1 -1
- package/dist/components/rfq-response/index.js +1 -1
- package/dist/components/rfq-response/item-response-details/index.esm.js +1 -1
- package/dist/components/rfq-response/item-response-details/index.js +1 -1
- package/dist/components/schedule-report/index.esm.js +2 -2
- package/dist/components/schedule-report/index.js +2 -2
- package/dist/components/schedule-report/schedule-report/index.esm.js +1 -1
- package/dist/components/schedule-report/schedule-report/index.js +1 -1
- package/dist/components/schedule-report/schedule-report-modal/index.esm.js +1 -1
- package/dist/components/schedule-report/schedule-report-modal/index.js +1 -1
- package/dist/components/searchable-select/index.esm.js +1 -1
- package/dist/components/searchable-select/index.js +1 -1
- package/dist/components/share-modal/index.esm.js +2 -2
- package/dist/components/share-modal/index.js +2 -2
- package/dist/components/share-modal/share-modal/index.esm.js +1 -1
- package/dist/components/share-modal/share-modal/index.js +1 -1
- package/dist/components/share-modal/share-modal-enhanced/index.esm.js +1 -1
- package/dist/components/share-modal/share-modal-enhanced/index.js +1 -1
- package/dist/components/team-add-modal/index.esm.js +1 -1
- package/dist/components/team-add-modal/index.js +1 -1
- package/dist/components/uom-field-wrapper/index.esm.js +1 -1
- package/dist/components/uom-field-wrapper/index.js +1 -1
- package/dist/components/uom-field-wrapper/uom-field-wrapper/index.esm.js +1 -1
- package/dist/components/uom-field-wrapper/uom-field-wrapper/index.js +1 -1
- package/dist/components/vendor-ai-summary/index.esm.js +1 -1
- package/dist/components/vendor-ai-summary/index.js +1 -1
- package/dist/constants/index.esm.js +145 -143
- package/dist/constants/index.js +5 -3
- package/dist/constants/index.js.map +1 -1
- package/dist/hooks/index.esm.js +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/use-translations/index.esm.js +1 -1
- package/dist/hooks/use-translations/index.js +1 -1
- package/dist/index.esm.js +182 -180
- package/dist/index.js +43 -41
- package/dist/index.js.map +1 -1
- package/dist/layout/fullScreen/index.esm.js +1 -1
- package/dist/layout/fullScreen/index.js +1 -1
- package/dist/layout/index.esm.js +2 -2
- package/dist/layout/index.js +2 -2
- package/dist/layout/sidebarScreen/index.esm.js +1 -1
- package/dist/layout/sidebarScreen/index.js +1 -1
- package/dist/runtime/index.esm.js +2 -2
- package/dist/runtime/index.js +2 -2
- package/dist/src/constants/defaultColumns.d.ts +1 -0
- package/dist/src/constants/pathnames/pathname.procurement.d.ts +4 -0
- package/dist/utils/export-filters/index.esm.js +1 -0
- package/dist/utils/export-filters/index.esm.js.map +1 -1
- package/dist/utils/export-filters/index.js +1 -0
- package/dist/utils/export-filters/index.js.map +1 -1
- package/dist/views/afterAuth/dashboard/index.esm.js +1 -1
- package/dist/views/afterAuth/dashboard/index.js +1 -1
- package/dist/views/afterAuth/index.esm.js +2 -2
- package/dist/views/afterAuth/index.js +2 -2
- package/dist/views/afterAuth/page-view/index.esm.js +1 -1
- package/dist/views/afterAuth/page-view/index.js +1 -1
- package/dist/views/form-builder/custom-form/index.esm.js +1 -1
- package/dist/views/form-builder/custom-form/index.js +1 -1
- package/dist/views/form-builder/form-fields/index.esm.js +1 -1
- package/dist/views/form-builder/form-fields/index.js +1 -1
- package/dist/views/form-builder/index.esm.js +3 -3
- package/dist/views/form-builder/index.js +3 -3
- package/dist/views/form-builder/utils/index.esm.js +1 -1
- package/dist/views/form-builder/utils/index.js +1 -1
- package/dist/views/index.esm.js +10 -10
- package/dist/views/index.js +10 -10
- package/dist/views/template-editor/add-template/index.esm.js +1 -1
- package/dist/views/template-editor/add-template/index.js +1 -1
- package/dist/views/template-editor/components/index.esm.js +1 -1
- package/dist/views/template-editor/components/index.js +1 -1
- package/dist/views/template-editor/index.esm.js +5 -5
- package/dist/views/template-editor/index.js +5 -5
- package/dist/views/template-editor/routes/index.esm.js +1 -1
- package/dist/views/template-editor/routes/index.js +1 -1
- package/dist/views/template-editor/templates/index.esm.js +1 -1
- package/dist/views/template-editor/templates/index.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-BxLWUhFQ.esm.js","sources":["../../src/components/filter/filter.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n Chip,\n Tooltip,\n} from \"@mui/material\";\nimport { Close, FilterAltOutlined, BookmarkBorderOutlined, RestartAlt } from \"@mui/icons-material\";\nimport { useLocation } from \"react-router-dom\";\nimport { enqueueSnackbar } from \"notistack\";\nimport _ from \"lodash\";\n\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport Button from \"../button/button\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\nimport { Edit, Trash } from \"../icons\";\n\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport RemoveGroupAction from \"./components/delete-group\";\n\nimport { putV1FilterId, deleteV1FilterId } from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from '@erpsquad/common/runtime';\nimport { useLanguage } from '@erpsquad/common/runtime';\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: SavedFilter | null) => void;\n fields: any;\n applyFilter: any;\n isUseFields?: boolean;\n}\n\nconst INITIAL_QUERY: RuleGroupType = { combinator: \"and\", rules: [] };\n\n/* ---------- pure helpers (extracted, testable) ---------- */\n\nconst hasDuplicateAndFields = (group: RuleGroupType): boolean => {\n if (!group?.rules?.length) return false;\n if (group.combinator === \"and\") {\n const seen = new Set<string>();\n for (const rule of group.rules) {\n if (\"rules\" in rule) {\n if (hasDuplicateAndFields(rule as RuleGroupType)) return true;\n continue;\n }\n const field = (rule as any).field;\n if (!field) continue;\n if (seen.has(field)) return true;\n seen.add(field);\n }\n }\n return (group.rules as any[]).some((r) =>\n \"rules\" in r ? hasDuplicateAndFields(r as RuleGroupType) : false\n );\n};\n\nconst isRuleInvalid = (rule: any): boolean => {\n if (Array.isArray(rule?.rules)) {\n return rule.rules.length === 0 || rule.rules.some(isRuleInvalid);\n }\n if (!rule?.field) return true;\n if ([\"null\", \"notNull\"].includes(rule?.operator)) return false;\n return _.isEmpty(rule?.value);\n};\n\nconst countActiveRules = (group: RuleGroupType): number => {\n if (!group?.rules?.length) return 0;\n return (group.rules as any[]).reduce((n, r) => {\n if (\"rules\" in r) return n + countActiveRules(r as RuleGroupType);\n return n + (isRuleInvalid(r) ? 0 : 1);\n }, 0);\n};\n\n/* ---------- component ---------- */\n\nconst Filter = ({\n open,\n onClose,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields: incomingFields = [],\n isUseFields = false,\n}: IFilter) => {\n const location = useLocation();\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields, setActivePage, customRouteToResourceMap } = usePages();\n const { isRtl } = useLanguage();\n\n const resources: IResources = useMemo(() => {\n const mergedMap = { ...routeToResourceMap, ...customRouteToResourceMap };\n return mergedMap[location.pathname] || null;\n }, [location.pathname, customRouteToResourceMap])\n\n // Don't reassign props. Derive a stable, memoized fields array.\n const fields = useMemo(() => {\n if (isUseFields) return generateFields(incomingFields);\n if (schemaFields?.length) return generateFields(schemaFields);\n return incomingFields;\n }, [isUseFields, incomingFields, schemaFields]);\n\n const [query, setQuery] = useState<RuleGroupType>(INITIAL_QUERY);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<SavedFilter[]>(\n savedFilters ?? []\n );\n const [selectedFilter, setSelectedFilter] = useState<SavedFilter | null>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<SavedFilter | null>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n useEffect(() => {\n if (savedFilters) setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n useEffect(() => {\n const next = !_.isEmpty(activePage.filters) ? activePage.filters : INITIAL_QUERY;\n setQuery(next);\n const sf = savedFilters?.find((f) => f.name === activePage?.filters?.name) || null;\n setSelectedFilter(sf);\n }, [activePage?.filters, savedFilters]);\n\n /* ---------- derived state ---------- */\n\n const activeCount = useMemo(() => countActiveRules(query), [query]);\n const hasInvalidRule = useMemo(() => isRuleInvalid(query), [query]);\n const isDisabled = Boolean(hasInvalidRule || errorMessage);\n\n /* ---------- handlers ---------- */\n\n const handleQueryChange = useCallback(\n (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule: any, i: number) => {\n const prev = (query.rules as any[])?.[i];\n const fieldChanged = rule.field !== prev?.field;\n const isNullOp = [\"null\", \"notNull\"].includes(rule.operator);\n return {\n ...rule,\n value: fieldChanged || isNullOp ? \"\" : rule.value,\n };\n });\n\n const nextQuery = { ...q, rules: updatedRules };\n setQuery(nextQuery);\n\n // Re-validate on every change so error messages don't go stale\n if (errorMessage) {\n const stillDuplicate = hasDuplicateAndFields(nextQuery);\n if (!stillDuplicate) setErrorMessage(null);\n }\n\n onSaveFilter?.(nextQuery);\n },\n [query.rules, errorMessage, onSaveFilter]\n );\n\n const handleApplyFilter = useCallback(\n (clear = false) => {\n if (clear) {\n setQuery(INITIAL_QUERY);\n setSelectedFilter(null);\n setErrorMessage(null);\n updatePageInfo({ filters: INITIAL_QUERY, filterQueryString: \"\" });\n onClose();\n return;\n }\n\n if (hasDuplicateAndFields(query)) {\n setErrorMessage(\"Duplicate fields detected in an AND group. Each field can only appear once per AND group.\");\n return;\n }\n\n const generatedSQLQuery = generateQueryString(query);\n updatePageInfo({ filters: query, filterQueryString: generatedSQLQuery });\n onClose();\n },\n [query, updatePageInfo, onClose]\n );\n\n const handleFilterSwitch = (sf?: SavedFilter | null) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n onSelectedFilter?.(sf);\n } else {\n setSelectedFilter(null);\n setQuery(INITIAL_QUERY);\n onSelectedFilter?.(null);\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const term = searchText.toLowerCase().trim();\n setFilteredSavedFilters(\n term ? (savedFilters ?? []).filter((f) => f.name.toLowerCase().includes(term)) : savedFilters ?? []\n );\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const req: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource,\n };\n try {\n await putV1FilterId(req);\n await fetchSavedFilters?.();\n enqueueSnackbar(\"Filter renamed successfully.\");\n return true;\n } catch (error) {\n const msg = error instanceof Error ? getErrorMessage(error.message) : \"Something went wrong while saving the filter\";\n enqueueSnackbar(msg, { variant: \"error\" });\n return false;\n }\n };\n\n const handleUpdateSelectedFilterQuery = async () => {\n if (!selectedFilter) return;\n try {\n await putV1FilterId({\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n } as Types.PutV1FilterIdRequest);\n await fetchSavedFilters?.();\n setActivePage((prev: any) => ({\n ...prev,\n filters: { ...prev.filters, rules: query.rules, combinator: query.combinator, name: selectedFilter.name },\n }));\n enqueueSnackbar(\"Filter updated successfully.\");\n } catch {\n enqueueSnackbar(\"Error updating saved filter.\", { variant: \"error\" });\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n try {\n await deleteV1FilterId({ \"x-token\": token, id: filterId } as Types.DeleteV1FilterIdRequest);\n setSelectedFilter(null);\n setQuery(INITIAL_QUERY);\n await fetchSavedFilters?.();\n enqueueSnackbar(\"Filter deleted.\");\n } catch {\n enqueueSnackbar(\"Error deleting saved filter.\", { variant: \"error\" });\n }\n };\n\n /* ---------- render ---------- */\n\n return (\n <Dialog\n open={open}\n onClose={onClose}\n maxWidth=\"md\"\n fullWidth\n PaperProps={{ sx: { borderRadius: 2, overflow: \"hidden\" } }}\n className=\"filter-modal\"\n >\n <DialogTitle className=\"filter-header\">\n <Box className=\"filter-header__title\">\n <Box className=\"filter-header__icon\">\n <FilterAltOutlined fontSize=\"small\" />\n </Box>\n <Box>\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Typography type=\"s5\" color=\"theme.secondary.700\">\n {activeCount} active {activeCount === 1 ? \"condition\" : \"conditions\"}\n </Typography>\n </Box>\n </Box>\n\n <Box className=\"filter-header__actions\">\n <Select\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(e: any) => {\n const sf = savedFilters?.find((f) => f.name === e.target.value);\n handleFilterSwitch(sf);\n }}\n variant=\"outlined\"\n onClose={() => setTimeout(() => handleSearchEvent(\"\"), 300)}\n startAdornment={\n <InputAdornment position=\"start\" sx={{ ml: 1, mr: -0.5 }}>\n <BookmarkBorderOutlined fontSize=\"small\" />\n </InputAdornment>\n }\n input={\n selectedFilter ? (\n <OutlinedInput\n label=\"\"\n endAdornment={\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"clear selection\"\n onClick={() => handleFilterSwitch()}\n edge=\"end\"\n sx={{ mr: 1.5 }}\n size=\"small\"\n >\n <Close sx={{ fontSize: \"1rem\" }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar placeholder=\"Search filters\" handleSearch={handleSearchEvent} />\n </div>\n {filteredSavedFilters?.length ? (\n filteredSavedFilters.map((sf) => (\n <MenuItem\n key={sf.id}\n value={sf.name}\n className=\"menu-list\"\n selected={selectedFilter?.name === sf.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {sf.name}\n </Typography>\n <div className=\"icon-list\">\n <Tooltip title=\"Rename\">\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsOpenRenameFilter(sf);\n }}\n >\n <Edit\n fontSize=\"small\"\n color={selectedFilter?.name === sf.name ? \"theme.primary.800\" : \"inherit\"}\n />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Delete\">\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleDeleteFilter(sf.id);\n }}\n color=\"error\"\n >\n <Trash fontSize=\"small\" color=\"theme.error.600\" />\n </IconButton>\n </Tooltip>\n </div>\n </MenuItem>\n ))\n ) : (\n <Box className=\"empty-saved-filters\">\n <Typography type=\"s4\" color=\"theme.secondary.700\">\n No saved filters\n </Typography>\n </Box>\n )}\n </Select>\n\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => (openRenameFilter ? handleRenameFilter(openRenameFilter.id, name) : Promise.resolve(false))}\n oldName={openRenameFilter?.name}\n />\n\n <IconButton size=\"small\" onClick={onClose} aria-label=\"Close filters\">\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </DialogTitle>\n\n <DialogContent className=\"filter-content\">\n {errorMessage && (\n <Alert severity=\"error\" className=\"filter-error\" onClose={() => setErrorMessage(null)}>\n <Typography color=\"error\" type=\"s4\">\n {errorMessage}\n </Typography>\n </Alert>\n )}\n\n <Box className=\"query-builder-wrapper\">\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules\n controlClassnames={{ header: \"actions\" }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n </QueryBuilderMaterial>\n </Box>\n </DialogContent>\n\n <DialogActions className=\"filter-footer\">\n <Button\n variant=\"text\"\n startIcon={<RestartAlt fontSize=\"small\" />}\n className={`clear-all-btn ${isRtl ? \"clear-all-btn--rtl\" : \"\"}`}\n onClick={() => handleApplyFilter(true)}\n disabled={activeCount === 0}\n >\n Clear all filters\n </Button>\n\n <Box className=\"filter-footer__actions\">\n {selectedFilter && (\n <Button\n variant=\"outlined\"\n className=\"update-filter-btn\"\n onClick={handleUpdateSelectedFilterQuery}\n disabled={isDisabled}\n >\n Update selected filter\n </Button>\n )}\n <Button variant=\"outlined\" className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n className=\"apply-filter-btn\"\n disabled={isDisabled}\n onClick={() => handleApplyFilter()}\n endIcon={\n activeCount > 0 ? (\n <Chip\n label={activeCount}\n size=\"small\"\n className=\"apply-count-chip\"\n />\n ) : null\n }\n >\n Apply\n </Button>\n </Box>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport { Filter };\nexport default Filter;"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filter-COXKBEER.esm.js","sources":["../../src/components/filter/filter.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n Chip,\n Tooltip,\n} from \"@mui/material\";\nimport { Close, FilterAltOutlined, BookmarkBorderOutlined, RestartAlt } from \"@mui/icons-material\";\nimport { useLocation } from \"react-router-dom\";\nimport { enqueueSnackbar } from \"notistack\";\nimport _ from \"lodash\";\n\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport Button from \"../button/button\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\nimport { Edit, Trash } from \"../icons\";\n\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport RemoveGroupAction from \"./components/delete-group\";\n\nimport { putV1FilterId, deleteV1FilterId } from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from '@erpsquad/common/runtime';\nimport { useLanguage } from '@erpsquad/common/runtime';\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: SavedFilter | null) => void;\n fields: any;\n applyFilter: any;\n isUseFields?: boolean;\n}\n\nconst INITIAL_QUERY: RuleGroupType = { combinator: \"and\", rules: [] };\n\n/* ---------- pure helpers (extracted, testable) ---------- */\n\nconst hasDuplicateAndFields = (group: RuleGroupType): boolean => {\n if (!group?.rules?.length) return false;\n if (group.combinator === \"and\") {\n const seen = new Set<string>();\n for (const rule of group.rules) {\n if (\"rules\" in rule) {\n if (hasDuplicateAndFields(rule as RuleGroupType)) return true;\n continue;\n }\n const field = (rule as any).field;\n if (!field) continue;\n if (seen.has(field)) return true;\n seen.add(field);\n }\n }\n return (group.rules as any[]).some((r) =>\n \"rules\" in r ? hasDuplicateAndFields(r as RuleGroupType) : false\n );\n};\n\nconst isRuleInvalid = (rule: any): boolean => {\n if (Array.isArray(rule?.rules)) {\n return rule.rules.length === 0 || rule.rules.some(isRuleInvalid);\n }\n if (!rule?.field) return true;\n if ([\"null\", \"notNull\"].includes(rule?.operator)) return false;\n return _.isEmpty(rule?.value);\n};\n\nconst countActiveRules = (group: RuleGroupType): number => {\n if (!group?.rules?.length) return 0;\n return (group.rules as any[]).reduce((n, r) => {\n if (\"rules\" in r) return n + countActiveRules(r as RuleGroupType);\n return n + (isRuleInvalid(r) ? 0 : 1);\n }, 0);\n};\n\n/* ---------- component ---------- */\n\nconst Filter = ({\n open,\n onClose,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields: incomingFields = [],\n isUseFields = false,\n}: IFilter) => {\n const location = useLocation();\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields, setActivePage, customRouteToResourceMap } = usePages();\n const { isRtl } = useLanguage();\n\n const resources: IResources = useMemo(() => {\n const mergedMap = { ...routeToResourceMap, ...customRouteToResourceMap };\n return mergedMap[location.pathname] || null;\n }, [location.pathname, customRouteToResourceMap])\n\n // Don't reassign props. Derive a stable, memoized fields array.\n const fields = useMemo(() => {\n if (isUseFields) return generateFields(incomingFields);\n if (schemaFields?.length) return generateFields(schemaFields);\n return incomingFields;\n }, [isUseFields, incomingFields, schemaFields]);\n\n const [query, setQuery] = useState<RuleGroupType>(INITIAL_QUERY);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<SavedFilter[]>(\n savedFilters ?? []\n );\n const [selectedFilter, setSelectedFilter] = useState<SavedFilter | null>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<SavedFilter | null>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n useEffect(() => {\n if (savedFilters) setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n useEffect(() => {\n const next = !_.isEmpty(activePage.filters) ? activePage.filters : INITIAL_QUERY;\n setQuery(next);\n const sf = savedFilters?.find((f) => f.name === activePage?.filters?.name) || null;\n setSelectedFilter(sf);\n }, [activePage?.filters, savedFilters]);\n\n /* ---------- derived state ---------- */\n\n const activeCount = useMemo(() => countActiveRules(query), [query]);\n const hasInvalidRule = useMemo(() => isRuleInvalid(query), [query]);\n const isDisabled = Boolean(hasInvalidRule || errorMessage);\n\n /* ---------- handlers ---------- */\n\n const handleQueryChange = useCallback(\n (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule: any, i: number) => {\n const prev = (query.rules as any[])?.[i];\n const fieldChanged = rule.field !== prev?.field;\n const isNullOp = [\"null\", \"notNull\"].includes(rule.operator);\n return {\n ...rule,\n value: fieldChanged || isNullOp ? \"\" : rule.value,\n };\n });\n\n const nextQuery = { ...q, rules: updatedRules };\n setQuery(nextQuery);\n\n // Re-validate on every change so error messages don't go stale\n if (errorMessage) {\n const stillDuplicate = hasDuplicateAndFields(nextQuery);\n if (!stillDuplicate) setErrorMessage(null);\n }\n\n onSaveFilter?.(nextQuery);\n },\n [query.rules, errorMessage, onSaveFilter]\n );\n\n const handleApplyFilter = useCallback(\n (clear = false) => {\n if (clear) {\n setQuery(INITIAL_QUERY);\n setSelectedFilter(null);\n setErrorMessage(null);\n updatePageInfo({ filters: INITIAL_QUERY, filterQueryString: \"\" });\n onClose();\n return;\n }\n\n if (hasDuplicateAndFields(query)) {\n setErrorMessage(\"Duplicate fields detected in an AND group. Each field can only appear once per AND group.\");\n return;\n }\n\n const generatedSQLQuery = generateQueryString(query);\n updatePageInfo({ filters: query, filterQueryString: generatedSQLQuery });\n onClose();\n },\n [query, updatePageInfo, onClose]\n );\n\n const handleFilterSwitch = (sf?: SavedFilter | null) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n onSelectedFilter?.(sf);\n } else {\n setSelectedFilter(null);\n setQuery(INITIAL_QUERY);\n onSelectedFilter?.(null);\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const term = searchText.toLowerCase().trim();\n setFilteredSavedFilters(\n term ? (savedFilters ?? []).filter((f) => f.name.toLowerCase().includes(term)) : savedFilters ?? []\n );\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const req: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource,\n };\n try {\n await putV1FilterId(req);\n await fetchSavedFilters?.();\n enqueueSnackbar(\"Filter renamed successfully.\");\n return true;\n } catch (error) {\n const msg = error instanceof Error ? getErrorMessage(error.message) : \"Something went wrong while saving the filter\";\n enqueueSnackbar(msg, { variant: \"error\" });\n return false;\n }\n };\n\n const handleUpdateSelectedFilterQuery = async () => {\n if (!selectedFilter) return;\n try {\n await putV1FilterId({\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n } as Types.PutV1FilterIdRequest);\n await fetchSavedFilters?.();\n setActivePage((prev: any) => ({\n ...prev,\n filters: { ...prev.filters, rules: query.rules, combinator: query.combinator, name: selectedFilter.name },\n }));\n enqueueSnackbar(\"Filter updated successfully.\");\n } catch {\n enqueueSnackbar(\"Error updating saved filter.\", { variant: \"error\" });\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n try {\n await deleteV1FilterId({ \"x-token\": token, id: filterId } as Types.DeleteV1FilterIdRequest);\n setSelectedFilter(null);\n setQuery(INITIAL_QUERY);\n await fetchSavedFilters?.();\n enqueueSnackbar(\"Filter deleted.\");\n } catch {\n enqueueSnackbar(\"Error deleting saved filter.\", { variant: \"error\" });\n }\n };\n\n /* ---------- render ---------- */\n\n return (\n <Dialog\n open={open}\n onClose={onClose}\n maxWidth=\"md\"\n fullWidth\n PaperProps={{ sx: { borderRadius: 2, overflow: \"hidden\" } }}\n className=\"filter-modal\"\n >\n <DialogTitle className=\"filter-header\">\n <Box className=\"filter-header__title\">\n <Box className=\"filter-header__icon\">\n <FilterAltOutlined fontSize=\"small\" />\n </Box>\n <Box>\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Typography type=\"s5\" color=\"theme.secondary.700\">\n {activeCount} active {activeCount === 1 ? \"condition\" : \"conditions\"}\n </Typography>\n </Box>\n </Box>\n\n <Box className=\"filter-header__actions\">\n <Select\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(e: any) => {\n const sf = savedFilters?.find((f) => f.name === e.target.value);\n handleFilterSwitch(sf);\n }}\n variant=\"outlined\"\n onClose={() => setTimeout(() => handleSearchEvent(\"\"), 300)}\n startAdornment={\n <InputAdornment position=\"start\" sx={{ ml: 1, mr: -0.5 }}>\n <BookmarkBorderOutlined fontSize=\"small\" />\n </InputAdornment>\n }\n input={\n selectedFilter ? (\n <OutlinedInput\n label=\"\"\n endAdornment={\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"clear selection\"\n onClick={() => handleFilterSwitch()}\n edge=\"end\"\n sx={{ mr: 1.5 }}\n size=\"small\"\n >\n <Close sx={{ fontSize: \"1rem\" }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar placeholder=\"Search filters\" handleSearch={handleSearchEvent} />\n </div>\n {filteredSavedFilters?.length ? (\n filteredSavedFilters.map((sf) => (\n <MenuItem\n key={sf.id}\n value={sf.name}\n className=\"menu-list\"\n selected={selectedFilter?.name === sf.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {sf.name}\n </Typography>\n <div className=\"icon-list\">\n <Tooltip title=\"Rename\">\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsOpenRenameFilter(sf);\n }}\n >\n <Edit\n fontSize=\"small\"\n color={selectedFilter?.name === sf.name ? \"theme.primary.800\" : \"inherit\"}\n />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Delete\">\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleDeleteFilter(sf.id);\n }}\n color=\"error\"\n >\n <Trash fontSize=\"small\" color=\"theme.error.600\" />\n </IconButton>\n </Tooltip>\n </div>\n </MenuItem>\n ))\n ) : (\n <Box className=\"empty-saved-filters\">\n <Typography type=\"s4\" color=\"theme.secondary.700\">\n No saved filters\n </Typography>\n </Box>\n )}\n </Select>\n\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => (openRenameFilter ? handleRenameFilter(openRenameFilter.id, name) : Promise.resolve(false))}\n oldName={openRenameFilter?.name}\n />\n\n <IconButton size=\"small\" onClick={onClose} aria-label=\"Close filters\">\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </DialogTitle>\n\n <DialogContent className=\"filter-content\">\n {errorMessage && (\n <Alert severity=\"error\" className=\"filter-error\" onClose={() => setErrorMessage(null)}>\n <Typography color=\"error\" type=\"s4\">\n {errorMessage}\n </Typography>\n </Alert>\n )}\n\n <Box className=\"query-builder-wrapper\">\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules\n controlClassnames={{ header: \"actions\" }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n </QueryBuilderMaterial>\n </Box>\n </DialogContent>\n\n <DialogActions className=\"filter-footer\">\n <Button\n variant=\"text\"\n startIcon={<RestartAlt fontSize=\"small\" />}\n className={`clear-all-btn ${isRtl ? \"clear-all-btn--rtl\" : \"\"}`}\n onClick={() => handleApplyFilter(true)}\n disabled={activeCount === 0}\n >\n Clear all filters\n </Button>\n\n <Box className=\"filter-footer__actions\">\n {selectedFilter && (\n <Button\n variant=\"outlined\"\n className=\"update-filter-btn\"\n onClick={handleUpdateSelectedFilterQuery}\n disabled={isDisabled}\n >\n Update selected filter\n </Button>\n )}\n <Button variant=\"outlined\" className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n className=\"apply-filter-btn\"\n disabled={isDisabled}\n onClick={() => handleApplyFilter()}\n endIcon={\n activeCount > 0 ? (\n <Chip\n label={activeCount}\n size=\"small\"\n className=\"apply-count-chip\"\n />\n ) : null\n }\n >\n Apply\n </Button>\n </Box>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport { Filter };\nexport default Filter;"],"names":[],"mappings":"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"}
|
|
@@ -22,14 +22,14 @@ const removeAction = require("./remove-action-DWh4TwSk.js");
|
|
|
22
22
|
const fieldSelect = require("./field-select-qeflO-L-.js");
|
|
23
23
|
const addFilter = require("./add-filter-Ckn4mlgF.js");
|
|
24
24
|
const addGroup = require("./add-group-DVH6RTnh.js");
|
|
25
|
-
const valueEditor = require("./value-editor-
|
|
25
|
+
const valueEditor = require("./value-editor-BSS9Ns2T.js");
|
|
26
26
|
const operatorSelect = require("./operator-select-CBipeNV9.js");
|
|
27
27
|
const deleteGroup = require("./delete-group-s9sZasnn.js");
|
|
28
28
|
const api$1 = require("./api-D3c7E20L.js");
|
|
29
29
|
const auth = require("./auth-eJQsY1Pk.js");
|
|
30
30
|
const api = require("./api-EomXz8pk.js");
|
|
31
31
|
const runtime = require("@erpsquad/common/runtime");
|
|
32
|
-
const routePageMap = require("./route-page-map-
|
|
32
|
+
const routePageMap = require("./route-page-map-Dn-SAbdf.js");
|
|
33
33
|
const INITIAL_QUERY = { combinator: "and", rules: [] };
|
|
34
34
|
const hasDuplicateAndFields = (group) => {
|
|
35
35
|
var _a;
|
|
@@ -405,4 +405,4 @@ const Filter = ({
|
|
|
405
405
|
);
|
|
406
406
|
};
|
|
407
407
|
exports.Filter = Filter;
|
|
408
|
-
//# sourceMappingURL=filter-
|
|
408
|
+
//# sourceMappingURL=filter-Cr_OSIpb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-DQNAPq4l.js","sources":["../../src/components/filter/filter.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n Chip,\n Tooltip,\n} from \"@mui/material\";\nimport { Close, FilterAltOutlined, BookmarkBorderOutlined, RestartAlt } from \"@mui/icons-material\";\nimport { useLocation } from \"react-router-dom\";\nimport { enqueueSnackbar } from \"notistack\";\nimport _ from \"lodash\";\n\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport Button from \"../button/button\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\nimport { Edit, Trash } from \"../icons\";\n\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport RemoveGroupAction from \"./components/delete-group\";\n\nimport { putV1FilterId, deleteV1FilterId } from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from '@erpsquad/common/runtime';\nimport { useLanguage } from '@erpsquad/common/runtime';\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: SavedFilter | null) => void;\n fields: any;\n applyFilter: any;\n isUseFields?: boolean;\n}\n\nconst INITIAL_QUERY: RuleGroupType = { combinator: \"and\", rules: [] };\n\n/* ---------- pure helpers (extracted, testable) ---------- */\n\nconst hasDuplicateAndFields = (group: RuleGroupType): boolean => {\n if (!group?.rules?.length) return false;\n if (group.combinator === \"and\") {\n const seen = new Set<string>();\n for (const rule of group.rules) {\n if (\"rules\" in rule) {\n if (hasDuplicateAndFields(rule as RuleGroupType)) return true;\n continue;\n }\n const field = (rule as any).field;\n if (!field) continue;\n if (seen.has(field)) return true;\n seen.add(field);\n }\n }\n return (group.rules as any[]).some((r) =>\n \"rules\" in r ? hasDuplicateAndFields(r as RuleGroupType) : false\n );\n};\n\nconst isRuleInvalid = (rule: any): boolean => {\n if (Array.isArray(rule?.rules)) {\n return rule.rules.length === 0 || rule.rules.some(isRuleInvalid);\n }\n if (!rule?.field) return true;\n if ([\"null\", \"notNull\"].includes(rule?.operator)) return false;\n return _.isEmpty(rule?.value);\n};\n\nconst countActiveRules = (group: RuleGroupType): number => {\n if (!group?.rules?.length) return 0;\n return (group.rules as any[]).reduce((n, r) => {\n if (\"rules\" in r) return n + countActiveRules(r as RuleGroupType);\n return n + (isRuleInvalid(r) ? 0 : 1);\n }, 0);\n};\n\n/* ---------- component ---------- */\n\nconst Filter = ({\n open,\n onClose,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields: incomingFields = [],\n isUseFields = false,\n}: IFilter) => {\n const location = useLocation();\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields, setActivePage, customRouteToResourceMap } = usePages();\n const { isRtl } = useLanguage();\n\n const resources: IResources = useMemo(() => {\n const mergedMap = { ...routeToResourceMap, ...customRouteToResourceMap };\n return mergedMap[location.pathname] || null;\n }, [location.pathname, customRouteToResourceMap])\n\n // Don't reassign props. Derive a stable, memoized fields array.\n const fields = useMemo(() => {\n if (isUseFields) return generateFields(incomingFields);\n if (schemaFields?.length) return generateFields(schemaFields);\n return incomingFields;\n }, [isUseFields, incomingFields, schemaFields]);\n\n const [query, setQuery] = useState<RuleGroupType>(INITIAL_QUERY);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<SavedFilter[]>(\n savedFilters ?? []\n );\n const [selectedFilter, setSelectedFilter] = useState<SavedFilter | null>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<SavedFilter | null>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n useEffect(() => {\n if (savedFilters) setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n useEffect(() => {\n const next = !_.isEmpty(activePage.filters) ? activePage.filters : INITIAL_QUERY;\n setQuery(next);\n const sf = savedFilters?.find((f) => f.name === activePage?.filters?.name) || null;\n setSelectedFilter(sf);\n }, [activePage?.filters, savedFilters]);\n\n /* ---------- derived state ---------- */\n\n const activeCount = useMemo(() => countActiveRules(query), [query]);\n const hasInvalidRule = useMemo(() => isRuleInvalid(query), [query]);\n const isDisabled = Boolean(hasInvalidRule || errorMessage);\n\n /* ---------- handlers ---------- */\n\n const handleQueryChange = useCallback(\n (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule: any, i: number) => {\n const prev = (query.rules as any[])?.[i];\n const fieldChanged = rule.field !== prev?.field;\n const isNullOp = [\"null\", \"notNull\"].includes(rule.operator);\n return {\n ...rule,\n value: fieldChanged || isNullOp ? \"\" : rule.value,\n };\n });\n\n const nextQuery = { ...q, rules: updatedRules };\n setQuery(nextQuery);\n\n // Re-validate on every change so error messages don't go stale\n if (errorMessage) {\n const stillDuplicate = hasDuplicateAndFields(nextQuery);\n if (!stillDuplicate) setErrorMessage(null);\n }\n\n onSaveFilter?.(nextQuery);\n },\n [query.rules, errorMessage, onSaveFilter]\n );\n\n const handleApplyFilter = useCallback(\n (clear = false) => {\n if (clear) {\n setQuery(INITIAL_QUERY);\n setSelectedFilter(null);\n setErrorMessage(null);\n updatePageInfo({ filters: INITIAL_QUERY, filterQueryString: \"\" });\n onClose();\n return;\n }\n\n if (hasDuplicateAndFields(query)) {\n setErrorMessage(\"Duplicate fields detected in an AND group. Each field can only appear once per AND group.\");\n return;\n }\n\n const generatedSQLQuery = generateQueryString(query);\n updatePageInfo({ filters: query, filterQueryString: generatedSQLQuery });\n onClose();\n },\n [query, updatePageInfo, onClose]\n );\n\n const handleFilterSwitch = (sf?: SavedFilter | null) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n onSelectedFilter?.(sf);\n } else {\n setSelectedFilter(null);\n setQuery(INITIAL_QUERY);\n onSelectedFilter?.(null);\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const term = searchText.toLowerCase().trim();\n setFilteredSavedFilters(\n term ? (savedFilters ?? []).filter((f) => f.name.toLowerCase().includes(term)) : savedFilters ?? []\n );\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const req: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource,\n };\n try {\n await putV1FilterId(req);\n await fetchSavedFilters?.();\n enqueueSnackbar(\"Filter renamed successfully.\");\n return true;\n } catch (error) {\n const msg = error instanceof Error ? getErrorMessage(error.message) : \"Something went wrong while saving the filter\";\n enqueueSnackbar(msg, { variant: \"error\" });\n return false;\n }\n };\n\n const handleUpdateSelectedFilterQuery = async () => {\n if (!selectedFilter) return;\n try {\n await putV1FilterId({\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n } as Types.PutV1FilterIdRequest);\n await fetchSavedFilters?.();\n setActivePage((prev: any) => ({\n ...prev,\n filters: { ...prev.filters, rules: query.rules, combinator: query.combinator, name: selectedFilter.name },\n }));\n enqueueSnackbar(\"Filter updated successfully.\");\n } catch {\n enqueueSnackbar(\"Error updating saved filter.\", { variant: \"error\" });\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n try {\n await deleteV1FilterId({ \"x-token\": token, id: filterId } as Types.DeleteV1FilterIdRequest);\n setSelectedFilter(null);\n setQuery(INITIAL_QUERY);\n await fetchSavedFilters?.();\n enqueueSnackbar(\"Filter deleted.\");\n } catch {\n enqueueSnackbar(\"Error deleting saved filter.\", { variant: \"error\" });\n }\n };\n\n /* ---------- render ---------- */\n\n return (\n <Dialog\n open={open}\n onClose={onClose}\n maxWidth=\"md\"\n fullWidth\n PaperProps={{ sx: { borderRadius: 2, overflow: \"hidden\" } }}\n className=\"filter-modal\"\n >\n <DialogTitle className=\"filter-header\">\n <Box className=\"filter-header__title\">\n <Box className=\"filter-header__icon\">\n <FilterAltOutlined fontSize=\"small\" />\n </Box>\n <Box>\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Typography type=\"s5\" color=\"theme.secondary.700\">\n {activeCount} active {activeCount === 1 ? \"condition\" : \"conditions\"}\n </Typography>\n </Box>\n </Box>\n\n <Box className=\"filter-header__actions\">\n <Select\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(e: any) => {\n const sf = savedFilters?.find((f) => f.name === e.target.value);\n handleFilterSwitch(sf);\n }}\n variant=\"outlined\"\n onClose={() => setTimeout(() => handleSearchEvent(\"\"), 300)}\n startAdornment={\n <InputAdornment position=\"start\" sx={{ ml: 1, mr: -0.5 }}>\n <BookmarkBorderOutlined fontSize=\"small\" />\n </InputAdornment>\n }\n input={\n selectedFilter ? (\n <OutlinedInput\n label=\"\"\n endAdornment={\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"clear selection\"\n onClick={() => handleFilterSwitch()}\n edge=\"end\"\n sx={{ mr: 1.5 }}\n size=\"small\"\n >\n <Close sx={{ fontSize: \"1rem\" }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar placeholder=\"Search filters\" handleSearch={handleSearchEvent} />\n </div>\n {filteredSavedFilters?.length ? (\n filteredSavedFilters.map((sf) => (\n <MenuItem\n key={sf.id}\n value={sf.name}\n className=\"menu-list\"\n selected={selectedFilter?.name === sf.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {sf.name}\n </Typography>\n <div className=\"icon-list\">\n <Tooltip title=\"Rename\">\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsOpenRenameFilter(sf);\n }}\n >\n <Edit\n fontSize=\"small\"\n color={selectedFilter?.name === sf.name ? \"theme.primary.800\" : \"inherit\"}\n />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Delete\">\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleDeleteFilter(sf.id);\n }}\n color=\"error\"\n >\n <Trash fontSize=\"small\" color=\"theme.error.600\" />\n </IconButton>\n </Tooltip>\n </div>\n </MenuItem>\n ))\n ) : (\n <Box className=\"empty-saved-filters\">\n <Typography type=\"s4\" color=\"theme.secondary.700\">\n No saved filters\n </Typography>\n </Box>\n )}\n </Select>\n\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => (openRenameFilter ? handleRenameFilter(openRenameFilter.id, name) : Promise.resolve(false))}\n oldName={openRenameFilter?.name}\n />\n\n <IconButton size=\"small\" onClick={onClose} aria-label=\"Close filters\">\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </DialogTitle>\n\n <DialogContent className=\"filter-content\">\n {errorMessage && (\n <Alert severity=\"error\" className=\"filter-error\" onClose={() => setErrorMessage(null)}>\n <Typography color=\"error\" type=\"s4\">\n {errorMessage}\n </Typography>\n </Alert>\n )}\n\n <Box className=\"query-builder-wrapper\">\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules\n controlClassnames={{ header: \"actions\" }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n </QueryBuilderMaterial>\n </Box>\n </DialogContent>\n\n <DialogActions className=\"filter-footer\">\n <Button\n variant=\"text\"\n startIcon={<RestartAlt fontSize=\"small\" />}\n className={`clear-all-btn ${isRtl ? \"clear-all-btn--rtl\" : \"\"}`}\n onClick={() => handleApplyFilter(true)}\n disabled={activeCount === 0}\n >\n Clear all filters\n </Button>\n\n <Box className=\"filter-footer__actions\">\n {selectedFilter && (\n <Button\n variant=\"outlined\"\n className=\"update-filter-btn\"\n onClick={handleUpdateSelectedFilterQuery}\n disabled={isDisabled}\n >\n Update selected filter\n </Button>\n )}\n <Button variant=\"outlined\" className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n className=\"apply-filter-btn\"\n disabled={isDisabled}\n onClick={() => handleApplyFilter()}\n endIcon={\n activeCount > 0 ? (\n <Chip\n label={activeCount}\n size=\"small\"\n className=\"apply-count-chip\"\n />\n ) : null\n }\n >\n Apply\n </Button>\n </Box>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport { Filter };\nexport default Filter;"],"names":["useLocation","auth","usePages","useLanguage","useMemo","routeToResourceMap","generateFields","useState","useEffect","useCallback","generateQueryString","putV1FilterId","enqueueSnackbar","getErrorMessage","deleteV1FilterId","jsxs","Dialog","DialogTitle","Box","jsx","FilterAltOutlined","Typography","Select","InputAdornment","BookmarkBorderOutlined","OutlinedInput","IconButton","Close","SearchBar","MenuItem","Tooltip","Edit","Trash","SaveFilterModal","DialogContent","Alert","QueryBuilderMaterial","QueryBuilder","AddFilterButton","AddGroupButton","CombinatorSelect","FieldSelect","OperatorSelect","RemoveAction","ValueEditor","RemoveGroupAction","DialogActions","Button","RestartAlt","Chip"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filter-Cr_OSIpb.js","sources":["../../src/components/filter/filter.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n Chip,\n Tooltip,\n} from \"@mui/material\";\nimport { Close, FilterAltOutlined, BookmarkBorderOutlined, RestartAlt } from \"@mui/icons-material\";\nimport { useLocation } from \"react-router-dom\";\nimport { enqueueSnackbar } from \"notistack\";\nimport _ from \"lodash\";\n\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport Button from \"../button/button\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\nimport { Edit, Trash } from \"../icons\";\n\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport RemoveGroupAction from \"./components/delete-group\";\n\nimport { putV1FilterId, deleteV1FilterId } from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from '@erpsquad/common/runtime';\nimport { useLanguage } from '@erpsquad/common/runtime';\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: SavedFilter | null) => void;\n fields: any;\n applyFilter: any;\n isUseFields?: boolean;\n}\n\nconst INITIAL_QUERY: RuleGroupType = { combinator: \"and\", rules: [] };\n\n/* ---------- pure helpers (extracted, testable) ---------- */\n\nconst hasDuplicateAndFields = (group: RuleGroupType): boolean => {\n if (!group?.rules?.length) return false;\n if (group.combinator === \"and\") {\n const seen = new Set<string>();\n for (const rule of group.rules) {\n if (\"rules\" in rule) {\n if (hasDuplicateAndFields(rule as RuleGroupType)) return true;\n continue;\n }\n const field = (rule as any).field;\n if (!field) continue;\n if (seen.has(field)) return true;\n seen.add(field);\n }\n }\n return (group.rules as any[]).some((r) =>\n \"rules\" in r ? hasDuplicateAndFields(r as RuleGroupType) : false\n );\n};\n\nconst isRuleInvalid = (rule: any): boolean => {\n if (Array.isArray(rule?.rules)) {\n return rule.rules.length === 0 || rule.rules.some(isRuleInvalid);\n }\n if (!rule?.field) return true;\n if ([\"null\", \"notNull\"].includes(rule?.operator)) return false;\n return _.isEmpty(rule?.value);\n};\n\nconst countActiveRules = (group: RuleGroupType): number => {\n if (!group?.rules?.length) return 0;\n return (group.rules as any[]).reduce((n, r) => {\n if (\"rules\" in r) return n + countActiveRules(r as RuleGroupType);\n return n + (isRuleInvalid(r) ? 0 : 1);\n }, 0);\n};\n\n/* ---------- component ---------- */\n\nconst Filter = ({\n open,\n onClose,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields: incomingFields = [],\n isUseFields = false,\n}: IFilter) => {\n const location = useLocation();\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields, setActivePage, customRouteToResourceMap } = usePages();\n const { isRtl } = useLanguage();\n\n const resources: IResources = useMemo(() => {\n const mergedMap = { ...routeToResourceMap, ...customRouteToResourceMap };\n return mergedMap[location.pathname] || null;\n }, [location.pathname, customRouteToResourceMap])\n\n // Don't reassign props. Derive a stable, memoized fields array.\n const fields = useMemo(() => {\n if (isUseFields) return generateFields(incomingFields);\n if (schemaFields?.length) return generateFields(schemaFields);\n return incomingFields;\n }, [isUseFields, incomingFields, schemaFields]);\n\n const [query, setQuery] = useState<RuleGroupType>(INITIAL_QUERY);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<SavedFilter[]>(\n savedFilters ?? []\n );\n const [selectedFilter, setSelectedFilter] = useState<SavedFilter | null>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<SavedFilter | null>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n useEffect(() => {\n if (savedFilters) setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n useEffect(() => {\n const next = !_.isEmpty(activePage.filters) ? activePage.filters : INITIAL_QUERY;\n setQuery(next);\n const sf = savedFilters?.find((f) => f.name === activePage?.filters?.name) || null;\n setSelectedFilter(sf);\n }, [activePage?.filters, savedFilters]);\n\n /* ---------- derived state ---------- */\n\n const activeCount = useMemo(() => countActiveRules(query), [query]);\n const hasInvalidRule = useMemo(() => isRuleInvalid(query), [query]);\n const isDisabled = Boolean(hasInvalidRule || errorMessage);\n\n /* ---------- handlers ---------- */\n\n const handleQueryChange = useCallback(\n (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule: any, i: number) => {\n const prev = (query.rules as any[])?.[i];\n const fieldChanged = rule.field !== prev?.field;\n const isNullOp = [\"null\", \"notNull\"].includes(rule.operator);\n return {\n ...rule,\n value: fieldChanged || isNullOp ? \"\" : rule.value,\n };\n });\n\n const nextQuery = { ...q, rules: updatedRules };\n setQuery(nextQuery);\n\n // Re-validate on every change so error messages don't go stale\n if (errorMessage) {\n const stillDuplicate = hasDuplicateAndFields(nextQuery);\n if (!stillDuplicate) setErrorMessage(null);\n }\n\n onSaveFilter?.(nextQuery);\n },\n [query.rules, errorMessage, onSaveFilter]\n );\n\n const handleApplyFilter = useCallback(\n (clear = false) => {\n if (clear) {\n setQuery(INITIAL_QUERY);\n setSelectedFilter(null);\n setErrorMessage(null);\n updatePageInfo({ filters: INITIAL_QUERY, filterQueryString: \"\" });\n onClose();\n return;\n }\n\n if (hasDuplicateAndFields(query)) {\n setErrorMessage(\"Duplicate fields detected in an AND group. Each field can only appear once per AND group.\");\n return;\n }\n\n const generatedSQLQuery = generateQueryString(query);\n updatePageInfo({ filters: query, filterQueryString: generatedSQLQuery });\n onClose();\n },\n [query, updatePageInfo, onClose]\n );\n\n const handleFilterSwitch = (sf?: SavedFilter | null) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n onSelectedFilter?.(sf);\n } else {\n setSelectedFilter(null);\n setQuery(INITIAL_QUERY);\n onSelectedFilter?.(null);\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const term = searchText.toLowerCase().trim();\n setFilteredSavedFilters(\n term ? (savedFilters ?? []).filter((f) => f.name.toLowerCase().includes(term)) : savedFilters ?? []\n );\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const req: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource,\n };\n try {\n await putV1FilterId(req);\n await fetchSavedFilters?.();\n enqueueSnackbar(\"Filter renamed successfully.\");\n return true;\n } catch (error) {\n const msg = error instanceof Error ? getErrorMessage(error.message) : \"Something went wrong while saving the filter\";\n enqueueSnackbar(msg, { variant: \"error\" });\n return false;\n }\n };\n\n const handleUpdateSelectedFilterQuery = async () => {\n if (!selectedFilter) return;\n try {\n await putV1FilterId({\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n } as Types.PutV1FilterIdRequest);\n await fetchSavedFilters?.();\n setActivePage((prev: any) => ({\n ...prev,\n filters: { ...prev.filters, rules: query.rules, combinator: query.combinator, name: selectedFilter.name },\n }));\n enqueueSnackbar(\"Filter updated successfully.\");\n } catch {\n enqueueSnackbar(\"Error updating saved filter.\", { variant: \"error\" });\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n try {\n await deleteV1FilterId({ \"x-token\": token, id: filterId } as Types.DeleteV1FilterIdRequest);\n setSelectedFilter(null);\n setQuery(INITIAL_QUERY);\n await fetchSavedFilters?.();\n enqueueSnackbar(\"Filter deleted.\");\n } catch {\n enqueueSnackbar(\"Error deleting saved filter.\", { variant: \"error\" });\n }\n };\n\n /* ---------- render ---------- */\n\n return (\n <Dialog\n open={open}\n onClose={onClose}\n maxWidth=\"md\"\n fullWidth\n PaperProps={{ sx: { borderRadius: 2, overflow: \"hidden\" } }}\n className=\"filter-modal\"\n >\n <DialogTitle className=\"filter-header\">\n <Box className=\"filter-header__title\">\n <Box className=\"filter-header__icon\">\n <FilterAltOutlined fontSize=\"small\" />\n </Box>\n <Box>\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Typography type=\"s5\" color=\"theme.secondary.700\">\n {activeCount} active {activeCount === 1 ? \"condition\" : \"conditions\"}\n </Typography>\n </Box>\n </Box>\n\n <Box className=\"filter-header__actions\">\n <Select\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(e: any) => {\n const sf = savedFilters?.find((f) => f.name === e.target.value);\n handleFilterSwitch(sf);\n }}\n variant=\"outlined\"\n onClose={() => setTimeout(() => handleSearchEvent(\"\"), 300)}\n startAdornment={\n <InputAdornment position=\"start\" sx={{ ml: 1, mr: -0.5 }}>\n <BookmarkBorderOutlined fontSize=\"small\" />\n </InputAdornment>\n }\n input={\n selectedFilter ? (\n <OutlinedInput\n label=\"\"\n endAdornment={\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"clear selection\"\n onClick={() => handleFilterSwitch()}\n edge=\"end\"\n sx={{ mr: 1.5 }}\n size=\"small\"\n >\n <Close sx={{ fontSize: \"1rem\" }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar placeholder=\"Search filters\" handleSearch={handleSearchEvent} />\n </div>\n {filteredSavedFilters?.length ? (\n filteredSavedFilters.map((sf) => (\n <MenuItem\n key={sf.id}\n value={sf.name}\n className=\"menu-list\"\n selected={selectedFilter?.name === sf.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {sf.name}\n </Typography>\n <div className=\"icon-list\">\n <Tooltip title=\"Rename\">\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsOpenRenameFilter(sf);\n }}\n >\n <Edit\n fontSize=\"small\"\n color={selectedFilter?.name === sf.name ? \"theme.primary.800\" : \"inherit\"}\n />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Delete\">\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleDeleteFilter(sf.id);\n }}\n color=\"error\"\n >\n <Trash fontSize=\"small\" color=\"theme.error.600\" />\n </IconButton>\n </Tooltip>\n </div>\n </MenuItem>\n ))\n ) : (\n <Box className=\"empty-saved-filters\">\n <Typography type=\"s4\" color=\"theme.secondary.700\">\n No saved filters\n </Typography>\n </Box>\n )}\n </Select>\n\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => (openRenameFilter ? handleRenameFilter(openRenameFilter.id, name) : Promise.resolve(false))}\n oldName={openRenameFilter?.name}\n />\n\n <IconButton size=\"small\" onClick={onClose} aria-label=\"Close filters\">\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </DialogTitle>\n\n <DialogContent className=\"filter-content\">\n {errorMessage && (\n <Alert severity=\"error\" className=\"filter-error\" onClose={() => setErrorMessage(null)}>\n <Typography color=\"error\" type=\"s4\">\n {errorMessage}\n </Typography>\n </Alert>\n )}\n\n <Box className=\"query-builder-wrapper\">\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules\n controlClassnames={{ header: \"actions\" }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n </QueryBuilderMaterial>\n </Box>\n </DialogContent>\n\n <DialogActions className=\"filter-footer\">\n <Button\n variant=\"text\"\n startIcon={<RestartAlt fontSize=\"small\" />}\n className={`clear-all-btn ${isRtl ? \"clear-all-btn--rtl\" : \"\"}`}\n onClick={() => handleApplyFilter(true)}\n disabled={activeCount === 0}\n >\n Clear all filters\n </Button>\n\n <Box className=\"filter-footer__actions\">\n {selectedFilter && (\n <Button\n variant=\"outlined\"\n className=\"update-filter-btn\"\n onClick={handleUpdateSelectedFilterQuery}\n disabled={isDisabled}\n >\n Update selected filter\n </Button>\n )}\n <Button variant=\"outlined\" className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n className=\"apply-filter-btn\"\n disabled={isDisabled}\n onClick={() => handleApplyFilter()}\n endIcon={\n activeCount > 0 ? (\n <Chip\n label={activeCount}\n size=\"small\"\n className=\"apply-count-chip\"\n />\n ) : null\n }\n >\n Apply\n </Button>\n </Box>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport { Filter };\nexport default Filter;"],"names":["useLocation","auth","usePages","useLanguage","useMemo","routeToResourceMap","generateFields","useState","useEffect","useCallback","generateQueryString","putV1FilterId","enqueueSnackbar","getErrorMessage","deleteV1FilterId","jsxs","Dialog","DialogTitle","Box","jsx","FilterAltOutlined","Typography","Select","InputAdornment","BookmarkBorderOutlined","OutlinedInput","IconButton","Close","SearchBar","MenuItem","Tooltip","Edit","Trash","SaveFilterModal","DialogContent","Alert","QueryBuilderMaterial","QueryBuilder","AddFilterButton","AddGroupButton","CombinatorSelect","FieldSelect","OperatorSelect","RemoveAction","ValueEditor","RemoveGroupAction","DialogActions","Button","RestartAlt","Chip"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const jsxRuntime = require("react/jsx-runtime");
|
|
3
3
|
const material = require("@mui/material");
|
|
4
4
|
const pagination = require("./pagination-teOvHbVT.js");
|
|
5
|
-
const pageNavigator = require("./page-navigator-
|
|
5
|
+
const pageNavigator = require("./page-navigator-Cgbh3tTG.js");
|
|
6
6
|
;/* empty css */
|
|
7
7
|
const React = require("react");
|
|
8
8
|
const Footer = React.memo(({
|
|
@@ -60,4 +60,4 @@ const Footer = React.memo(({
|
|
|
60
60
|
] });
|
|
61
61
|
});
|
|
62
62
|
exports.Footer = Footer;
|
|
63
|
-
//# sourceMappingURL=footer-
|
|
63
|
+
//# sourceMappingURL=footer-CD3kMRdS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer-
|
|
1
|
+
{"version":3,"file":"footer-CD3kMRdS.js","sources":["../../src/components/footer/footer.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport { Box } from \"@mui/material\";\nimport Pagination from \"../pagination/pagination\";\nimport PageNavigator from \"../page-navigator/page-navigator\";\nimport \"./footer.scss\";\nimport { IPaginationModel } from \"../../@types/pagination-model\";\nimport React, { useEffect, useState } from \"react\";\n\ninterface IFooter {\n pages: any;\n setPages: any;\n currentPage: string | number;\n setCurrentPage: any;\n total: number;\n paginationModel: IPaginationModel;\n handlePaginationModel: (model: IPaginationModel) => void;\n sharedPages: any;\n resource: string;\n savePageConfiguration: () => void;\n handlePageDelete: (pages: any[]) => void;\n enablePages: boolean\n isPaginationDisplayed?: boolean\n isPageSaving?: boolean\n}\n\nconst Footer = React.memo(({\n pages,\n setPages,\n currentPage,\n setCurrentPage,\n total, // total number of pages in footer pagination\n paginationModel,\n handlePaginationModel,\n sharedPages,\n resource,\n savePageConfiguration,\n handlePageDelete,\n enablePages,\n isPaginationDisplayed = true,\n isPageSaving = false\n}: IFooter) => {\n const [isDrawerOpen, setIsDrawerOpen] = useState(\n window.localStorage.getItem('_is_drawer_open') === 'true'\n );\n\n useEffect(() => {\n const handleStorageChange = () => {\n setIsDrawerOpen(window.localStorage.getItem('_is_drawer_open') === 'true');\n };\n\n window.addEventListener('storage', handleStorageChange);\n\n const interval = setInterval(handleStorageChange, 10); \n\n return () => {\n window.removeEventListener('storage', handleStorageChange);\n clearInterval(interval);\n };\n }, []);\n\n // useEffect(()=>{\n // handlePaginationModel({...paginationModel,pageNo:activePage?.pageNo})\n // //eslint-disable-next-line react-hooks/exhaustive-deps\n // },[activePage?.pageNo])\n\n return (\n <Box className={`${!isDrawerOpen?'footer--drawerContainer':'footer--Container'}`} sx={{justifyContent: enablePages? 'space-between': 'flex-end'}}>\n \n \n {Boolean(enablePages) && <PageNavigator\n pages={pages}\n setPages={setPages}\n currentPage={currentPage}\n setCurrentPage={setCurrentPage}\n resource={resource}\n sharedPages={sharedPages}\n handlePageDelete={handlePageDelete}\n />}\n <Box>\n {isPaginationDisplayed && (\n <Pagination\n paginationModel={paginationModel}\n handlePaginationModel={handlePaginationModel}\n totalPages={total}\n />\n )}\n </Box>\n </Box>\n );\n});\n\nexport { Footer };\nexport default Footer;\n"],"names":["useState","useEffect","jsxs","Box","jsx","PageNavigator","Pagination"],"mappings":";;;;;;;AA0BA,MAAM,SAAS,MAAM,KAAK,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,wBAAwB;AAAA,EACxB,eAAe;AACjB,MAAe;AACZ,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA;AAAAA,IACvC,OAAO,aAAa,QAAQ,iBAAiB,MAAM;AAAA,EAAA;AAGrDC,QAAAA,UAAU,MAAM;AACd,UAAM,sBAAsB,MAAM;AAChC,sBAAgB,OAAO,aAAa,QAAQ,iBAAiB,MAAM,MAAM;AAAA,IAC3E;AAEA,WAAO,iBAAiB,WAAW,mBAAmB;AAEtD,UAAM,WAAW,YAAY,qBAAqB,EAAE;AAEpD,WAAO,MAAM;AACX,aAAO,oBAAoB,WAAW,mBAAmB;AACzD,oBAAc,QAAQ;AAAA,IACxB;AAAA,EACF,GAAG,CAAA,CAAE;AAOL,SACEC,2BAAAA,KAACC,SAAAA,KAAA,EAAI,WAAW,GAAG,CAAC,eAAa,4BAA0B,mBAAmB,IAAI,IAAI,EAAC,gBAAgB,cAAa,kBAAiB,cAGhI,UAAA;AAAA,IAAA,QAAQ,WAAW,KAAKC,2BAAAA;AAAAA,MAACC,cAAAA;AAAAA,MAAA;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAAA;AAAA,IAEJD,2BAAAA,IAACD,SAAAA,OACE,UAAA,yBACCC,2BAAAA;AAAAA,MAACE,WAAAA;AAAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,YAAY;AAAA,MAAA;AAAA,IAAA,EACd,CAEJ;AAAA,EAAA,GACF;AAEJ,CAAC;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Box } from "@mui/material";
|
|
3
3
|
import { P as Pagination } from "./pagination-Cxgus1Zm.esm.js";
|
|
4
|
-
import { P as PageNavigator } from "./page-navigator-
|
|
4
|
+
import { P as PageNavigator } from "./page-navigator-8gZpp9_P.esm.js";
|
|
5
5
|
/* empty css */
|
|
6
6
|
import React__default, { useState, useEffect } from "react";
|
|
7
7
|
const Footer = React__default.memo(({
|
|
@@ -61,4 +61,4 @@ const Footer = React__default.memo(({
|
|
|
61
61
|
export {
|
|
62
62
|
Footer as F
|
|
63
63
|
};
|
|
64
|
-
//# sourceMappingURL=footer-
|
|
64
|
+
//# sourceMappingURL=footer-m3_dlNl8.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer-
|
|
1
|
+
{"version":3,"file":"footer-m3_dlNl8.esm.js","sources":["../../src/components/footer/footer.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport { Box } from \"@mui/material\";\nimport Pagination from \"../pagination/pagination\";\nimport PageNavigator from \"../page-navigator/page-navigator\";\nimport \"./footer.scss\";\nimport { IPaginationModel } from \"../../@types/pagination-model\";\nimport React, { useEffect, useState } from \"react\";\n\ninterface IFooter {\n pages: any;\n setPages: any;\n currentPage: string | number;\n setCurrentPage: any;\n total: number;\n paginationModel: IPaginationModel;\n handlePaginationModel: (model: IPaginationModel) => void;\n sharedPages: any;\n resource: string;\n savePageConfiguration: () => void;\n handlePageDelete: (pages: any[]) => void;\n enablePages: boolean\n isPaginationDisplayed?: boolean\n isPageSaving?: boolean\n}\n\nconst Footer = React.memo(({\n pages,\n setPages,\n currentPage,\n setCurrentPage,\n total, // total number of pages in footer pagination\n paginationModel,\n handlePaginationModel,\n sharedPages,\n resource,\n savePageConfiguration,\n handlePageDelete,\n enablePages,\n isPaginationDisplayed = true,\n isPageSaving = false\n}: IFooter) => {\n const [isDrawerOpen, setIsDrawerOpen] = useState(\n window.localStorage.getItem('_is_drawer_open') === 'true'\n );\n\n useEffect(() => {\n const handleStorageChange = () => {\n setIsDrawerOpen(window.localStorage.getItem('_is_drawer_open') === 'true');\n };\n\n window.addEventListener('storage', handleStorageChange);\n\n const interval = setInterval(handleStorageChange, 10); \n\n return () => {\n window.removeEventListener('storage', handleStorageChange);\n clearInterval(interval);\n };\n }, []);\n\n // useEffect(()=>{\n // handlePaginationModel({...paginationModel,pageNo:activePage?.pageNo})\n // //eslint-disable-next-line react-hooks/exhaustive-deps\n // },[activePage?.pageNo])\n\n return (\n <Box className={`${!isDrawerOpen?'footer--drawerContainer':'footer--Container'}`} sx={{justifyContent: enablePages? 'space-between': 'flex-end'}}>\n \n \n {Boolean(enablePages) && <PageNavigator\n pages={pages}\n setPages={setPages}\n currentPage={currentPage}\n setCurrentPage={setCurrentPage}\n resource={resource}\n sharedPages={sharedPages}\n handlePageDelete={handlePageDelete}\n />}\n <Box>\n {isPaginationDisplayed && (\n <Pagination\n paginationModel={paginationModel}\n handlePaginationModel={handlePaginationModel}\n totalPages={total}\n />\n )}\n </Box>\n </Box>\n );\n});\n\nexport { Footer };\nexport default Footer;\n"],"names":["React"],"mappings":";;;;;;AA0BA,MAAM,SAASA,eAAM,KAAK,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,wBAAwB;AAAA,EACxB,eAAe;AACjB,MAAe;AACZ,QAAM,CAAC,cAAc,eAAe,IAAI;AAAA,IACvC,OAAO,aAAa,QAAQ,iBAAiB,MAAM;AAAA,EAAA;AAGrD,YAAU,MAAM;AACd,UAAM,sBAAsB,MAAM;AAChC,sBAAgB,OAAO,aAAa,QAAQ,iBAAiB,MAAM,MAAM;AAAA,IAC3E;AAEA,WAAO,iBAAiB,WAAW,mBAAmB;AAEtD,UAAM,WAAW,YAAY,qBAAqB,EAAE;AAEpD,WAAO,MAAM;AACX,aAAO,oBAAoB,WAAW,mBAAmB;AACzD,oBAAc,QAAQ;AAAA,IACxB;AAAA,EACF,GAAG,CAAA,CAAE;AAOL,SACE,qBAAC,KAAA,EAAI,WAAW,GAAG,CAAC,eAAa,4BAA0B,mBAAmB,IAAI,IAAI,EAAC,gBAAgB,cAAa,kBAAiB,cAGhI,UAAA;AAAA,IAAA,QAAQ,WAAW,KAAK;AAAA,MAAC;AAAA,MAAA;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAAA;AAAA,IAEJ,oBAAC,OACE,UAAA,yBACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,YAAY;AAAA,MAAA;AAAA,IAAA,EACd,CAEJ;AAAA,EAAA,GACF;AAEJ,CAAC;"}
|
|
@@ -3,7 +3,7 @@ import { memo, useMemo, useCallback } from "react";
|
|
|
3
3
|
import { Grid } from "@mui/material";
|
|
4
4
|
import { D as DynamicInput } from "./text-BWoRoA4r.esm.js";
|
|
5
5
|
import { D as DynamicCheckBox } from "./checkbox-mx9cWG2N.esm.js";
|
|
6
|
-
import { D as DynamicTable } from "./table-
|
|
6
|
+
import { D as DynamicTable } from "./table-gxAlAeTq.esm.js";
|
|
7
7
|
import { D as DynamicElementHOC } from "./dynamic-element-hoc-CYSwtVgH.esm.js";
|
|
8
8
|
import { D as DynamicRadioButton } from "./radio-button-CJcVVXzv.esm.js";
|
|
9
9
|
import { D as DynamicToggleButton } from "./toggle-button-DaKspbiP.esm.js";
|
|
@@ -352,4 +352,4 @@ export {
|
|
|
352
352
|
FormField as F,
|
|
353
353
|
FormFields as a
|
|
354
354
|
};
|
|
355
|
-
//# sourceMappingURL=form-fields-
|
|
355
|
+
//# sourceMappingURL=form-fields-hMMnB_wE.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-fields-DKFiyLCi.esm.js","sources":["../../src/views/form-builder/form-fields.tsx"],"sourcesContent":["// React imports\nimport React, { memo, useMemo, useCallback } from 'react';\n\n// Material UI imports\nimport { Grid } from '@mui/material';\n\n// ERP Common imports - Form builder elements\nimport DynamicInput from '@/components/form-control/form-builder/form-builder-element/text';\nimport DynamicCheckBox from '@/components/form-control/form-builder/form-builder-element/checkbox';\nimport DynamicTable from '@/components/form-control/form-builder/form-builder-element/table';\nimport DynamicElementHOC from '@/components/form-control/form-builder/form-builder-element/dynamic-element-hoc';\nimport DynamicRadioButton from '@/components/form-control/form-builder/form-builder-element/radio-button';\nimport DynamicToggleButton from '@/components/form-control/form-builder/form-builder-element/toggle-button';\nimport DynamicInfo from '@/components/form-control/form-builder/form-builder-element/info';\nimport DynamicMedia from '@/components/form-control/form-builder/form-builder-element/media';\nimport DynamicTime from '@/components/form-control/form-builder/form-builder-element/time';\nimport DynamicDate from '@/components/form-control/form-builder/form-builder-element/date';\nimport DynamicSelect from '@/components/form-control/form-builder/form-builder-element/select';\nimport DynamicPhone from '@/components/form-control/form-builder/form-builder-element/phone';\n\n// Types\ninterface IField {\n id: string;\n field_type: string;\n placeholder?: string;\n label: string;\n default_value?: any;\n is_multiline?: boolean;\n is_required?: boolean;\n min_length?: number;\n max_length?: number;\n is_fullwidth?: boolean;\n custom_width?: number;\n options?: any[];\n is_multiselect?: boolean;\n is_future_dates_allowed?: boolean;\n is_past_dates_allowed?: boolean;\n option?: any;\n max_size?: number;\n title?: string;\n display?: string;\n title_position?: string;\n table_columns?: any[];\n float_step?: number;\n type: string;\n}\n\ninterface FormFieldsProps {\n sectionMembers: IField[];\n // Add other required props with proper types\n members: IField[];\n activeMember?: number;\n control: any;\n t: (key: string) => string;\n element: any;\n images: any;\n elementJSON?: any;\n remove: (index: number) => void;\n move: (from: number, to: number) => void;\n handleElementSelection: (e: any) => void;\n setElementSwap: (value: boolean) => void;\n handleDuplicateElement: (index: number) => void;\n setSelectedHoc: (value: string) => void;\n setActiveMember: (value: number | undefined) => void;\n}\n\n// Field type mapping for better maintainability\nconst FIELD_TYPE_MAP = {\n TEXT: 'text',\n EMAIL: 'email',\n NUMBER: 'number',\n PHONE: 'phone',\n SELECT: 'select',\n DATE: 'date',\n TIME: 'time',\n URL: 'url',\n CURRENCY: 'currency',\n FILE: 'file',\n IMAGE: 'image',\n GEO_LOCATION: 'geoLocation',\n RELATION: 'relation',\n INFO: 'info',\n TOGGLE_BUTTON: 'toggleButton',\n RADIO_BUTTON: 'radioButton',\n TAGS_INPUT: 'tagsInput',\n CHECKBOX: 'checkbox',\n TABLE: 'table'\n} as const;\n\n// Memoized individual field component\nconst FormField = memo<{\n field: IField;\n index: number;\n gridItemSize: number;\n activeMember?: number;\n control: any;\n t: (key: string) => string;\n element: any;\n images: any;\n elementJSON?: any;\n remove: (index: number) => void;\n move: (from: number, to: number) => void;\n handleElementSelection: (e: any) => void;\n setElementSwap: (value: boolean) => void;\n handleDuplicateElement: (index: number) => void;\n setSelectedHoc: (value: string) => void;\n setActiveMember: (value: number | undefined) => void;\n}>(({\n field,\n index,\n gridItemSize,\n activeMember,\n control,\n t,\n element,\n images,\n elementJSON,\n remove,\n move,\n handleElementSelection,\n setElementSwap,\n handleDuplicateElement,\n setSelectedHoc,\n setActiveMember\n}) => {\n // Common HOC props - memoized to prevent unnecessary re-renders\n const hocProps = useMemo(() => ({\n activeIndex: activeMember === index,\n removeElement: remove,\n index,\n onClick: handleElementSelection,\n swap: move,\n elementSwap: () => setElementSwap(true),\n handleDuplicate: handleDuplicateElement,\n setElementHoc: () => {\n setSelectedHoc(\"\");\n setActiveMember(undefined);\n }\n }), [\n activeMember, \n index, \n remove, \n handleElementSelection, \n move, \n setElementSwap, \n handleDuplicateElement, \n setSelectedHoc, \n setActiveMember\n ]);\n\n // Common field props - memoized to prevent unnecessary re-renders\n const commonFieldProps = useMemo(() => ({\n key: field.id,\n position: index,\n placeholder: t(field.placeholder || ''),\n label: t(field.label),\n formControl: control,\n name: \"message\",\n fieldArrayName: \"members\",\n required: field.is_required,\n formType: \"builder\" as const,\n typeOfField: field.type,\n disabled: true\n }), [field.id, field.placeholder, field.label, field.is_required, field.type, index, t, control]);\n\n // Render field based on type\n const renderFieldContent = useCallback(() => {\n const { field_type } = field;\n\n switch (field_type) {\n case element.text.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n is_multiline={field.is_multiline}\n min={field.min_length}\n max={field.max_length}\n />\n );\n\n case element.email.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.sms} alt=\"email\" />}\n />\n );\n\n case element.number.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n min={field.min_length}\n max={field.max_length}\n float_step={field.float_step}\n />\n );\n\n case element.phone.field_type:\n return (\n <DynamicPhone\n {...commonFieldProps}\n type={field_type}\n default_value={field.default_value}\n />\n );\n\n case element.select.field_type:\n return (\n <DynamicSelect\n {...commonFieldProps}\n options={field.options}\n defaultValue={field.default_value}\n is_multiselect={field.is_multiselect}\n />\n );\n\n case element.date.field_type:\n return (\n <DynamicDate\n {...commonFieldProps}\n defaultValue={field.default_value}\n is_future_dates_allowed={field.is_future_dates_allowed}\n is_past_dates_allowed={field.is_past_dates_allowed}\n disable={true}\n />\n );\n\n case element.time.field_type:\n return (\n <DynamicTime\n {...commonFieldProps}\n option={field.option}\n />\n );\n\n case element.url.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.url} alt=\"url\" />}\n />\n );\n\n case element.currency.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.dollar} alt=\"currency\" />}\n />\n );\n\n case element.file.field_type:\n case element.image.field_type:\n return (\n <DynamicMedia\n {...commonFieldProps}\n type={field_type}\n max_size={field.max_size}\n />\n );\n\n case element.geoLocation.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.location} alt=\"location\" />}\n />\n );\n\n case element.relation.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n is_multiline={field.is_multiline}\n min={field.min_length}\n max={field.max_length}\n label={\n <span\n className=\"formSection--Relation\"\n data-position={index}\n data-name={`members.${index}.message`}\n >\n {t(field.label)}\n <img src={images.relation} alt=\"relation\" />\n </span>\n }\n />\n );\n\n case element.info.field_type:\n return (\n <DynamicInfo\n {...commonFieldProps}\n defaultValue={field.default_value}\n />\n );\n\n case element.toggleButton.field_type:\n return (\n <DynamicToggleButton\n {...commonFieldProps}\n title={t(field.title || '')}\n titlePosition={elementJSON?.title_position}\n />\n );\n\n case element.radioButton.field_type:\n return (\n <DynamicRadioButton\n {...commonFieldProps}\n options={field.options}\n display={field.display}\n titlePosition={elementJSON?.title_position}\n />\n );\n\n case element.tagsInput.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n is_multiline={field.is_multiline}\n min={field.min_length}\n max={field.max_length}\n />\n );\n\n case element.checkbox.field_type:\n return (\n <DynamicCheckBox\n {...commonFieldProps}\n title={t(field.title || '')}\n titlePosition={field.title_position}\n />\n );\n\n case element.table.field_type:\n return (\n <DynamicTable\n {...commonFieldProps}\n columns={field.table_columns || elementJSON?.table_columns || []}\n />\n );\n\n default:\n console.warn(`Unknown field type: ${field_type}`);\n return null;\n }\n }, [field, commonFieldProps, element, images, elementJSON, t, index]);\n\n return (\n <Grid item xs={gridItemSize}>\n <DynamicElementHOC\n {...hocProps}\n element={field.field_type}\n >\n {renderFieldContent()}\n </DynamicElementHOC>\n </Grid>\n );\n});\n\nFormField.displayName = 'FormField';\n\n// Main component\nconst FormFields: React.FC<FormFieldsProps> = memo(({\n sectionMembers,\n members,\n activeMember,\n control,\n t,\n element,\n images,\n elementJSON,\n remove,\n move,\n handleElementSelection,\n setElementSwap,\n handleDuplicateElement,\n setSelectedHoc,\n setActiveMember\n}) => {\n // Memoize grid item size calculation\n const calculateGridSize = useCallback((field: IField): number => {\n if (field.is_fullwidth || field.field_type === \"table\") return 12;\n if (field.custom_width) return field.custom_width;\n return 6;\n }, []);\n\n // Memoize the rendered fields\n const renderedFields = useMemo(() => {\n return sectionMembers.map((field: IField) => {\n const index = members.findIndex(member => member === field);\n const gridItemSize = calculateGridSize(field);\n\n return (\n <FormField\n key={`${field.id}-${index}`} // Better key for React reconciliation\n field={field}\n index={index}\n gridItemSize={gridItemSize}\n activeMember={activeMember}\n control={control}\n t={t}\n element={element}\n images={images}\n elementJSON={elementJSON}\n remove={remove}\n move={move}\n handleElementSelection={handleElementSelection}\n setElementSwap={setElementSwap}\n handleDuplicateElement={handleDuplicateElement}\n setSelectedHoc={setSelectedHoc}\n setActiveMember={setActiveMember}\n />\n );\n });\n }, [\n sectionMembers,\n members,\n activeMember,\n control,\n t,\n element,\n images,\n elementJSON,\n remove,\n move,\n handleElementSelection,\n setElementSwap,\n handleDuplicateElement,\n setSelectedHoc,\n setActiveMember,\n calculateGridSize,\n elementJSON?.field_type\n ]);\n\n return <>{renderedFields}</>;\n});\n\nFormFields.displayName = 'FormFields';\n\nexport { FormField };\nexport default FormFields;"],"names":[],"mappings":";;;;;;;;;;;;;;;AA0FA,MAAM,YAAY,KAiBf,CAAC;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AAEJ,QAAM,WAAW,QAAQ,OAAO;AAAA,IAC9B,aAAa,iBAAiB;AAAA,IAC9B,eAAe;AAAA,IACf;AAAA,IACA,SAAS;AAAA,IACT,MAAM;AAAA,IACN,aAAa,MAAM,eAAe,IAAI;AAAA,IACtC,iBAAiB;AAAA,IACjB,eAAe,MAAM;AACnB,qBAAe,EAAE;AACjB,sBAAgB,MAAS;AAAA,IAC3B;AAAA,EAAA,IACE;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAGD,QAAM,mBAAmB,QAAQ,OAAO;AAAA,IACtC,KAAK,MAAM;AAAA,IACX,UAAU;AAAA,IACV,aAAa,EAAE,MAAM,eAAe,EAAE;AAAA,IACtC,OAAO,EAAE,MAAM,KAAK;AAAA,IACpB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB,UAAU,MAAM;AAAA,IAChB,UAAU;AAAA,IACV,aAAa,MAAM;AAAA,IACnB,UAAU;AAAA,EAAA,IACR,CAAC,MAAM,IAAI,MAAM,aAAa,MAAM,OAAO,MAAM,aAAa,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC;AAGhG,QAAM,qBAAqB,YAAY,MAAM;AAC3C,UAAM,EAAE,eAAe;AAEvB,YAAQ,YAAA;AAAA,MACN,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIjB,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,KAAK,KAAI,QAAA,CAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,MAIjD,KAAK,QAAQ,OAAO;AAClB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,YACX,YAAY,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIxB,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,eAAe,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI3B,KAAK,QAAQ,OAAO;AAClB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,SAAS,MAAM;AAAA,YACf,cAAc,MAAM;AAAA,YACpB,gBAAgB,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI5B,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,cAAc,MAAM;AAAA,YACpB,yBAAyB,MAAM;AAAA,YAC/B,uBAAuB,MAAM;AAAA,YAC7B,SAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MAIf,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,QAAQ,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIpB,KAAK,QAAQ,IAAI;AACf,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,KAAK,KAAI,MAAA,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI/C,KAAK,QAAQ,SAAS;AACpB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,QAAQ,KAAI,WAAA,CAAW;AAAA,UAAA;AAAA,QAAA;AAAA,MAIvD,KAAK,QAAQ,KAAK;AAAA,MAClB,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,UAAU,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAItB,KAAK,QAAQ,YAAY;AACvB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,UAAU,KAAI,WAAA,CAAW;AAAA,UAAA;AAAA,QAAA;AAAA,MAIzD,KAAK,QAAQ,SAAS;AACpB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,YACX,OACE;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,iBAAe;AAAA,gBACf,aAAW,WAAW,KAAK;AAAA,gBAE1B,UAAA;AAAA,kBAAA,EAAE,MAAM,KAAK;AAAA,sCACb,OAAA,EAAI,KAAK,OAAO,UAAU,KAAI,WAAA,CAAW;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5C;AAAA,QAAA;AAAA,MAKR,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,cAAc,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI1B,KAAK,QAAQ,aAAa;AACxB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,OAAO,EAAE,MAAM,SAAS,EAAE;AAAA,YAC1B,eAAe,2CAAa;AAAA,UAAA;AAAA,QAAA;AAAA,MAIlC,KAAK,QAAQ,YAAY;AACvB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,SAAS,MAAM;AAAA,YACf,SAAS,MAAM;AAAA,YACf,eAAe,2CAAa;AAAA,UAAA;AAAA,QAAA;AAAA,MAIlC,KAAK,QAAQ,UAAU;AACrB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIjB,KAAK,QAAQ,SAAS;AACpB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,OAAO,EAAE,MAAM,SAAS,EAAE;AAAA,YAC1B,eAAe,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI3B,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,SAAS,MAAM,kBAAiB,2CAAa,kBAAiB,CAAA;AAAA,UAAC;AAAA,QAAA;AAAA,MAIrE;AACE,gBAAQ,KAAK,uBAAuB,UAAU,EAAE;AAChD,eAAO;AAAA,IAAA;AAAA,EAEb,GAAG,CAAC,OAAO,kBAAkB,SAAS,QAAQ,aAAa,GAAG,KAAK,CAAC;AAEpE,SACE,oBAAC,MAAA,EAAK,MAAI,MAAC,IAAI,cACb,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,SAAS,MAAM;AAAA,MAEd,UAAA,mBAAA;AAAA,IAAmB;AAAA,EAAA,GAExB;AAEJ,CAAC;AAED,UAAU,cAAc;AAGxB,MAAM,aAAwC,KAAK,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AAEJ,QAAM,oBAAoB,YAAY,CAAC,UAA0B;AAC/D,QAAI,MAAM,gBAAgB,MAAM,eAAe,QAAS,QAAO;AAC/D,QAAI,MAAM,aAAc,QAAO,MAAM;AACrC,WAAO;AAAA,EACT,GAAG,CAAA,CAAE;AAGL,QAAM,iBAAiB,QAAQ,MAAM;AACnC,WAAO,eAAe,IAAI,CAAC,UAAkB;AAC3C,YAAM,QAAQ,QAAQ,UAAU,CAAA,WAAU,WAAW,KAAK;AAC1D,YAAM,eAAe,kBAAkB,KAAK;AAE5C,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAhBK,GAAG,MAAM,EAAE,IAAI,KAAK;AAAA,MAAA;AAAA,IAmB/B,CAAC;AAAA,EACH,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,2CAAa;AAAA,EAAA,CACd;AAED,yCAAU,UAAA,eAAA,CAAe;AAC3B,CAAC;AAED,WAAW,cAAc;"}
|
|
1
|
+
{"version":3,"file":"form-fields-hMMnB_wE.esm.js","sources":["../../src/views/form-builder/form-fields.tsx"],"sourcesContent":["// React imports\nimport React, { memo, useMemo, useCallback } from 'react';\n\n// Material UI imports\nimport { Grid } from '@mui/material';\n\n// ERP Common imports - Form builder elements\nimport DynamicInput from '@/components/form-control/form-builder/form-builder-element/text';\nimport DynamicCheckBox from '@/components/form-control/form-builder/form-builder-element/checkbox';\nimport DynamicTable from '@/components/form-control/form-builder/form-builder-element/table';\nimport DynamicElementHOC from '@/components/form-control/form-builder/form-builder-element/dynamic-element-hoc';\nimport DynamicRadioButton from '@/components/form-control/form-builder/form-builder-element/radio-button';\nimport DynamicToggleButton from '@/components/form-control/form-builder/form-builder-element/toggle-button';\nimport DynamicInfo from '@/components/form-control/form-builder/form-builder-element/info';\nimport DynamicMedia from '@/components/form-control/form-builder/form-builder-element/media';\nimport DynamicTime from '@/components/form-control/form-builder/form-builder-element/time';\nimport DynamicDate from '@/components/form-control/form-builder/form-builder-element/date';\nimport DynamicSelect from '@/components/form-control/form-builder/form-builder-element/select';\nimport DynamicPhone from '@/components/form-control/form-builder/form-builder-element/phone';\n\n// Types\ninterface IField {\n id: string;\n field_type: string;\n placeholder?: string;\n label: string;\n default_value?: any;\n is_multiline?: boolean;\n is_required?: boolean;\n min_length?: number;\n max_length?: number;\n is_fullwidth?: boolean;\n custom_width?: number;\n options?: any[];\n is_multiselect?: boolean;\n is_future_dates_allowed?: boolean;\n is_past_dates_allowed?: boolean;\n option?: any;\n max_size?: number;\n title?: string;\n display?: string;\n title_position?: string;\n table_columns?: any[];\n float_step?: number;\n type: string;\n}\n\ninterface FormFieldsProps {\n sectionMembers: IField[];\n // Add other required props with proper types\n members: IField[];\n activeMember?: number;\n control: any;\n t: (key: string) => string;\n element: any;\n images: any;\n elementJSON?: any;\n remove: (index: number) => void;\n move: (from: number, to: number) => void;\n handleElementSelection: (e: any) => void;\n setElementSwap: (value: boolean) => void;\n handleDuplicateElement: (index: number) => void;\n setSelectedHoc: (value: string) => void;\n setActiveMember: (value: number | undefined) => void;\n}\n\n// Field type mapping for better maintainability\nconst FIELD_TYPE_MAP = {\n TEXT: 'text',\n EMAIL: 'email',\n NUMBER: 'number',\n PHONE: 'phone',\n SELECT: 'select',\n DATE: 'date',\n TIME: 'time',\n URL: 'url',\n CURRENCY: 'currency',\n FILE: 'file',\n IMAGE: 'image',\n GEO_LOCATION: 'geoLocation',\n RELATION: 'relation',\n INFO: 'info',\n TOGGLE_BUTTON: 'toggleButton',\n RADIO_BUTTON: 'radioButton',\n TAGS_INPUT: 'tagsInput',\n CHECKBOX: 'checkbox',\n TABLE: 'table'\n} as const;\n\n// Memoized individual field component\nconst FormField = memo<{\n field: IField;\n index: number;\n gridItemSize: number;\n activeMember?: number;\n control: any;\n t: (key: string) => string;\n element: any;\n images: any;\n elementJSON?: any;\n remove: (index: number) => void;\n move: (from: number, to: number) => void;\n handleElementSelection: (e: any) => void;\n setElementSwap: (value: boolean) => void;\n handleDuplicateElement: (index: number) => void;\n setSelectedHoc: (value: string) => void;\n setActiveMember: (value: number | undefined) => void;\n}>(({\n field,\n index,\n gridItemSize,\n activeMember,\n control,\n t,\n element,\n images,\n elementJSON,\n remove,\n move,\n handleElementSelection,\n setElementSwap,\n handleDuplicateElement,\n setSelectedHoc,\n setActiveMember\n}) => {\n // Common HOC props - memoized to prevent unnecessary re-renders\n const hocProps = useMemo(() => ({\n activeIndex: activeMember === index,\n removeElement: remove,\n index,\n onClick: handleElementSelection,\n swap: move,\n elementSwap: () => setElementSwap(true),\n handleDuplicate: handleDuplicateElement,\n setElementHoc: () => {\n setSelectedHoc(\"\");\n setActiveMember(undefined);\n }\n }), [\n activeMember, \n index, \n remove, \n handleElementSelection, \n move, \n setElementSwap, \n handleDuplicateElement, \n setSelectedHoc, \n setActiveMember\n ]);\n\n // Common field props - memoized to prevent unnecessary re-renders\n const commonFieldProps = useMemo(() => ({\n key: field.id,\n position: index,\n placeholder: t(field.placeholder || ''),\n label: t(field.label),\n formControl: control,\n name: \"message\",\n fieldArrayName: \"members\",\n required: field.is_required,\n formType: \"builder\" as const,\n typeOfField: field.type,\n disabled: true\n }), [field.id, field.placeholder, field.label, field.is_required, field.type, index, t, control]);\n\n // Render field based on type\n const renderFieldContent = useCallback(() => {\n const { field_type } = field;\n\n switch (field_type) {\n case element.text.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n is_multiline={field.is_multiline}\n min={field.min_length}\n max={field.max_length}\n />\n );\n\n case element.email.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.sms} alt=\"email\" />}\n />\n );\n\n case element.number.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n min={field.min_length}\n max={field.max_length}\n float_step={field.float_step}\n />\n );\n\n case element.phone.field_type:\n return (\n <DynamicPhone\n {...commonFieldProps}\n type={field_type}\n default_value={field.default_value}\n />\n );\n\n case element.select.field_type:\n return (\n <DynamicSelect\n {...commonFieldProps}\n options={field.options}\n defaultValue={field.default_value}\n is_multiselect={field.is_multiselect}\n />\n );\n\n case element.date.field_type:\n return (\n <DynamicDate\n {...commonFieldProps}\n defaultValue={field.default_value}\n is_future_dates_allowed={field.is_future_dates_allowed}\n is_past_dates_allowed={field.is_past_dates_allowed}\n disable={true}\n />\n );\n\n case element.time.field_type:\n return (\n <DynamicTime\n {...commonFieldProps}\n option={field.option}\n />\n );\n\n case element.url.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.url} alt=\"url\" />}\n />\n );\n\n case element.currency.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.dollar} alt=\"currency\" />}\n />\n );\n\n case element.file.field_type:\n case element.image.field_type:\n return (\n <DynamicMedia\n {...commonFieldProps}\n type={field_type}\n max_size={field.max_size}\n />\n );\n\n case element.geoLocation.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.location} alt=\"location\" />}\n />\n );\n\n case element.relation.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n is_multiline={field.is_multiline}\n min={field.min_length}\n max={field.max_length}\n label={\n <span\n className=\"formSection--Relation\"\n data-position={index}\n data-name={`members.${index}.message`}\n >\n {t(field.label)}\n <img src={images.relation} alt=\"relation\" />\n </span>\n }\n />\n );\n\n case element.info.field_type:\n return (\n <DynamicInfo\n {...commonFieldProps}\n defaultValue={field.default_value}\n />\n );\n\n case element.toggleButton.field_type:\n return (\n <DynamicToggleButton\n {...commonFieldProps}\n title={t(field.title || '')}\n titlePosition={elementJSON?.title_position}\n />\n );\n\n case element.radioButton.field_type:\n return (\n <DynamicRadioButton\n {...commonFieldProps}\n options={field.options}\n display={field.display}\n titlePosition={elementJSON?.title_position}\n />\n );\n\n case element.tagsInput.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n is_multiline={field.is_multiline}\n min={field.min_length}\n max={field.max_length}\n />\n );\n\n case element.checkbox.field_type:\n return (\n <DynamicCheckBox\n {...commonFieldProps}\n title={t(field.title || '')}\n titlePosition={field.title_position}\n />\n );\n\n case element.table.field_type:\n return (\n <DynamicTable\n {...commonFieldProps}\n columns={field.table_columns || elementJSON?.table_columns || []}\n />\n );\n\n default:\n console.warn(`Unknown field type: ${field_type}`);\n return null;\n }\n }, [field, commonFieldProps, element, images, elementJSON, t, index]);\n\n return (\n <Grid item xs={gridItemSize}>\n <DynamicElementHOC\n {...hocProps}\n element={field.field_type}\n >\n {renderFieldContent()}\n </DynamicElementHOC>\n </Grid>\n );\n});\n\nFormField.displayName = 'FormField';\n\n// Main component\nconst FormFields: React.FC<FormFieldsProps> = memo(({\n sectionMembers,\n members,\n activeMember,\n control,\n t,\n element,\n images,\n elementJSON,\n remove,\n move,\n handleElementSelection,\n setElementSwap,\n handleDuplicateElement,\n setSelectedHoc,\n setActiveMember\n}) => {\n // Memoize grid item size calculation\n const calculateGridSize = useCallback((field: IField): number => {\n if (field.is_fullwidth || field.field_type === \"table\") return 12;\n if (field.custom_width) return field.custom_width;\n return 6;\n }, []);\n\n // Memoize the rendered fields\n const renderedFields = useMemo(() => {\n return sectionMembers.map((field: IField) => {\n const index = members.findIndex(member => member === field);\n const gridItemSize = calculateGridSize(field);\n\n return (\n <FormField\n key={`${field.id}-${index}`} // Better key for React reconciliation\n field={field}\n index={index}\n gridItemSize={gridItemSize}\n activeMember={activeMember}\n control={control}\n t={t}\n element={element}\n images={images}\n elementJSON={elementJSON}\n remove={remove}\n move={move}\n handleElementSelection={handleElementSelection}\n setElementSwap={setElementSwap}\n handleDuplicateElement={handleDuplicateElement}\n setSelectedHoc={setSelectedHoc}\n setActiveMember={setActiveMember}\n />\n );\n });\n }, [\n sectionMembers,\n members,\n activeMember,\n control,\n t,\n element,\n images,\n elementJSON,\n remove,\n move,\n handleElementSelection,\n setElementSwap,\n handleDuplicateElement,\n setSelectedHoc,\n setActiveMember,\n calculateGridSize,\n elementJSON?.field_type\n ]);\n\n return <>{renderedFields}</>;\n});\n\nFormFields.displayName = 'FormFields';\n\nexport { FormField };\nexport default FormFields;"],"names":[],"mappings":";;;;;;;;;;;;;;;AA0FA,MAAM,YAAY,KAiBf,CAAC;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AAEJ,QAAM,WAAW,QAAQ,OAAO;AAAA,IAC9B,aAAa,iBAAiB;AAAA,IAC9B,eAAe;AAAA,IACf;AAAA,IACA,SAAS;AAAA,IACT,MAAM;AAAA,IACN,aAAa,MAAM,eAAe,IAAI;AAAA,IACtC,iBAAiB;AAAA,IACjB,eAAe,MAAM;AACnB,qBAAe,EAAE;AACjB,sBAAgB,MAAS;AAAA,IAC3B;AAAA,EAAA,IACE;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAGD,QAAM,mBAAmB,QAAQ,OAAO;AAAA,IACtC,KAAK,MAAM;AAAA,IACX,UAAU;AAAA,IACV,aAAa,EAAE,MAAM,eAAe,EAAE;AAAA,IACtC,OAAO,EAAE,MAAM,KAAK;AAAA,IACpB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB,UAAU,MAAM;AAAA,IAChB,UAAU;AAAA,IACV,aAAa,MAAM;AAAA,IACnB,UAAU;AAAA,EAAA,IACR,CAAC,MAAM,IAAI,MAAM,aAAa,MAAM,OAAO,MAAM,aAAa,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC;AAGhG,QAAM,qBAAqB,YAAY,MAAM;AAC3C,UAAM,EAAE,eAAe;AAEvB,YAAQ,YAAA;AAAA,MACN,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIjB,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,KAAK,KAAI,QAAA,CAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,MAIjD,KAAK,QAAQ,OAAO;AAClB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,YACX,YAAY,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIxB,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,eAAe,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI3B,KAAK,QAAQ,OAAO;AAClB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,SAAS,MAAM;AAAA,YACf,cAAc,MAAM;AAAA,YACpB,gBAAgB,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI5B,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,cAAc,MAAM;AAAA,YACpB,yBAAyB,MAAM;AAAA,YAC/B,uBAAuB,MAAM;AAAA,YAC7B,SAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MAIf,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,QAAQ,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIpB,KAAK,QAAQ,IAAI;AACf,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,KAAK,KAAI,MAAA,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI/C,KAAK,QAAQ,SAAS;AACpB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,QAAQ,KAAI,WAAA,CAAW;AAAA,UAAA;AAAA,QAAA;AAAA,MAIvD,KAAK,QAAQ,KAAK;AAAA,MAClB,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,UAAU,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAItB,KAAK,QAAQ,YAAY;AACvB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,UAAU,KAAI,WAAA,CAAW;AAAA,UAAA;AAAA,QAAA;AAAA,MAIzD,KAAK,QAAQ,SAAS;AACpB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,YACX,OACE;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,iBAAe;AAAA,gBACf,aAAW,WAAW,KAAK;AAAA,gBAE1B,UAAA;AAAA,kBAAA,EAAE,MAAM,KAAK;AAAA,sCACb,OAAA,EAAI,KAAK,OAAO,UAAU,KAAI,WAAA,CAAW;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5C;AAAA,QAAA;AAAA,MAKR,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,cAAc,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI1B,KAAK,QAAQ,aAAa;AACxB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,OAAO,EAAE,MAAM,SAAS,EAAE;AAAA,YAC1B,eAAe,2CAAa;AAAA,UAAA;AAAA,QAAA;AAAA,MAIlC,KAAK,QAAQ,YAAY;AACvB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,SAAS,MAAM;AAAA,YACf,SAAS,MAAM;AAAA,YACf,eAAe,2CAAa;AAAA,UAAA;AAAA,QAAA;AAAA,MAIlC,KAAK,QAAQ,UAAU;AACrB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIjB,KAAK,QAAQ,SAAS;AACpB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,OAAO,EAAE,MAAM,SAAS,EAAE;AAAA,YAC1B,eAAe,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI3B,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,SAAS,MAAM,kBAAiB,2CAAa,kBAAiB,CAAA;AAAA,UAAC;AAAA,QAAA;AAAA,MAIrE;AACE,gBAAQ,KAAK,uBAAuB,UAAU,EAAE;AAChD,eAAO;AAAA,IAAA;AAAA,EAEb,GAAG,CAAC,OAAO,kBAAkB,SAAS,QAAQ,aAAa,GAAG,KAAK,CAAC;AAEpE,SACE,oBAAC,MAAA,EAAK,MAAI,MAAC,IAAI,cACb,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,SAAS,MAAM;AAAA,MAEd,UAAA,mBAAA;AAAA,IAAmB;AAAA,EAAA,GAExB;AAEJ,CAAC;AAED,UAAU,cAAc;AAGxB,MAAM,aAAwC,KAAK,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AAEJ,QAAM,oBAAoB,YAAY,CAAC,UAA0B;AAC/D,QAAI,MAAM,gBAAgB,MAAM,eAAe,QAAS,QAAO;AAC/D,QAAI,MAAM,aAAc,QAAO,MAAM;AACrC,WAAO;AAAA,EACT,GAAG,CAAA,CAAE;AAGL,QAAM,iBAAiB,QAAQ,MAAM;AACnC,WAAO,eAAe,IAAI,CAAC,UAAkB;AAC3C,YAAM,QAAQ,QAAQ,UAAU,CAAA,WAAU,WAAW,KAAK;AAC1D,YAAM,eAAe,kBAAkB,KAAK;AAE5C,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAhBK,GAAG,MAAM,EAAE,IAAI,KAAK;AAAA,MAAA;AAAA,IAmB/B,CAAC;AAAA,EACH,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,2CAAa;AAAA,EAAA,CACd;AAED,yCAAU,UAAA,eAAA,CAAe;AAC3B,CAAC;AAED,WAAW,cAAc;"}
|
|
@@ -4,7 +4,7 @@ const React = require("react");
|
|
|
4
4
|
const material = require("@mui/material");
|
|
5
5
|
const text = require("./text-CR4Wz_oR.js");
|
|
6
6
|
const checkbox = require("./checkbox-CJFk1PHU.js");
|
|
7
|
-
const table = require("./table-
|
|
7
|
+
const table = require("./table-DWx7x8zw.js");
|
|
8
8
|
const dynamicElementHoc = require("./dynamic-element-hoc-u7LZ6eHz.js");
|
|
9
9
|
const radioButton = require("./radio-button-CCVMuvMJ.js");
|
|
10
10
|
const toggleButton = require("./toggle-button-CfDnCcUA.js");
|
|
@@ -351,4 +351,4 @@ const FormFields = React.memo(({
|
|
|
351
351
|
FormFields.displayName = "FormFields";
|
|
352
352
|
exports.FormField = FormField;
|
|
353
353
|
exports.FormFields = FormFields;
|
|
354
|
-
//# sourceMappingURL=form-fields-
|
|
354
|
+
//# sourceMappingURL=form-fields-yE9kwjvb.js.map
|