udp-react-enterprise-component-library 25.18.1-beta.71 → 25.18.1-beta.72
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/{ActionProvider-DGzli-X1.js → ActionProvider-BGugOmjV.js} +2 -2
- package/dist/{ActionProvider-DGzli-X1.js.map → ActionProvider-BGugOmjV.js.map} +1 -1
- package/dist/{ActionSplitScreen-gKH4ISoo.js → ActionSplitScreen-D6_7PlK-.js} +4 -4
- package/dist/{ActionSplitScreen-gKH4ISoo.js.map → ActionSplitScreen-D6_7PlK-.js.map} +1 -1
- package/dist/{ActionWrapper-Bpp9Mn4j.js → ActionWrapper-DnP7lGDq.js} +4 -4
- package/dist/{ActionWrapper-Bpp9Mn4j.js.map → ActionWrapper-DnP7lGDq.js.map} +1 -1
- package/dist/{AmbientCard-CLW4bPCu.js → AmbientCard-DhAiVDYD.js} +2 -2
- package/dist/{AmbientCard-CLW4bPCu.js.map → AmbientCard-DhAiVDYD.js.map} +1 -1
- package/dist/{AmbientVisualizationCard-CAxx4QWe.js → AmbientVisualizationCard-CivQRhmD.js} +4 -4
- package/dist/{AmbientVisualizationCard-CAxx4QWe.js.map → AmbientVisualizationCard-CivQRhmD.js.map} +1 -1
- package/dist/{AmbientVisualizer-BABKxgsK.js → AmbientVisualizer-buICwVdO.js} +2 -2
- package/dist/{AmbientVisualizer-BABKxgsK.js.map → AmbientVisualizer-buICwVdO.js.map} +1 -1
- package/dist/{BioCardWrapper-B2bT-4zw.js → BioCardWrapper-D1ZOHyA4.js} +3 -3
- package/dist/{BioCardWrapper-B2bT-4zw.js.map → BioCardWrapper-D1ZOHyA4.js.map} +1 -1
- package/dist/{CrudTableSidePanel-CNEZxJi0.js → CrudTableSidePanel-Dw8gZSqR.js} +2 -2
- package/dist/{CrudTableSidePanel-CNEZxJi0.js.map → CrudTableSidePanel-Dw8gZSqR.js.map} +1 -1
- package/dist/{DashboardWidget-CsOrr74H.js → DashboardWidget-D3HStfJA.js} +26 -10
- package/dist/DashboardWidget-D3HStfJA.js.map +1 -0
- package/dist/{DataBrowserContainer-cU_EEIiR.js → DataBrowserContainer-D4gJ66IC.js} +2 -2
- package/dist/{DataBrowserContainer-cU_EEIiR.js.map → DataBrowserContainer-D4gJ66IC.js.map} +1 -1
- package/dist/{DynamicRangeSlider-prr4fg8d.js → DynamicRangeSlider-BX4kCzUd.js} +2 -2
- package/dist/{DynamicRangeSlider-prr4fg8d.js.map → DynamicRangeSlider-BX4kCzUd.js.map} +1 -1
- package/dist/{EmailDisplay-Dm8ynSko.js → EmailDisplay-DZHmPeiL.js} +2 -2
- package/dist/{EmailDisplay-Dm8ynSko.js.map → EmailDisplay-DZHmPeiL.js.map} +1 -1
- package/dist/{ExportSidesheet-DWkoiwxC.js → ExportSidesheet-BQiNzxN9.js} +4 -4
- package/dist/{ExportSidesheet-DWkoiwxC.js.map → ExportSidesheet-BQiNzxN9.js.map} +1 -1
- package/dist/{FieldArrayCard-Ds_ysYWL.js → FieldArrayCard-sEe2pmg7.js} +3 -3
- package/dist/{FieldArrayCard-Ds_ysYWL.js.map → FieldArrayCard-sEe2pmg7.js.map} +1 -1
- package/dist/{FluentListItem-_Nq3fhEY.js → FluentListItem-1fzW--Dq.js} +2 -2
- package/dist/{FluentListItem-_Nq3fhEY.js.map → FluentListItem-1fzW--Dq.js.map} +1 -1
- package/dist/{GraphCard-BhcSveF4.js → GraphCard-Bdh6VeDb.js} +2 -2
- package/dist/{GraphCard-BhcSveF4.js.map → GraphCard-Bdh6VeDb.js.map} +1 -1
- package/dist/{ImportDataFromFileMapping-3XXgUR-Z.js → ImportDataFromFileMapping-BIcQmKll.js} +2 -2
- package/dist/{ImportDataFromFileMapping-3XXgUR-Z.js.map → ImportDataFromFileMapping-BIcQmKll.js.map} +1 -1
- package/dist/{Inquiry-KKLgba3g.js → Inquiry-1o8EuckI.js} +12 -10
- package/dist/{Inquiry-KKLgba3g.js.map → Inquiry-1o8EuckI.js.map} +1 -1
- package/dist/Inquiry-B9U7e2Iu.js +3 -0
- package/dist/{InquirySearchContainer-DKDrIqNO.js → InquirySearchContainer-zxbukV51.js} +3 -3
- package/dist/{InquirySearchContainer-DKDrIqNO.js.map → InquirySearchContainer-zxbukV51.js.map} +1 -1
- package/dist/MenuPage-CdzHSWBt.js +3 -0
- package/dist/{MenuPage-tkkhpco5.js → MenuPage-KiNfnc7P.js} +3 -3
- package/dist/{MenuPage-tkkhpco5.js.map → MenuPage-KiNfnc7P.js.map} +1 -1
- package/dist/{MttMainTimeline-s0ANW7l-.js → MttMainTimeline-DbaaXXQv.js} +2 -2
- package/dist/{MttMainTimeline-s0ANW7l-.js.map → MttMainTimeline-DbaaXXQv.js.map} +1 -1
- package/dist/{NotesScreen-DQatppnX.js → NotesScreen-D8-QnWaB.js} +2 -2
- package/dist/{NotesScreen-DQatppnX.js.map → NotesScreen-D8-QnWaB.js.map} +1 -1
- package/dist/{PDFViewer-B4nJKbIy.js → PDFViewer-BvaqCfIS.js} +2 -2
- package/dist/{PDFViewer-B4nJKbIy.js.map → PDFViewer-BvaqCfIS.js.map} +1 -1
- package/dist/{Page-fxgRfgm6.js → Page-BNjiUMqy.js} +5 -4
- package/dist/Page-BNjiUMqy.js.map +1 -0
- package/dist/{PageActionWrapper-BBkGtnC6.js → PageActionWrapper-Bm6J0thr.js} +2 -2
- package/dist/{PageActionWrapper-BBkGtnC6.js.map → PageActionWrapper-Bm6J0thr.js.map} +1 -1
- package/dist/{PageContainer-DTXNLt_2.js → PageContainer-ButX_XVS.js} +8 -6
- package/dist/PageContainer-ButX_XVS.js.map +1 -0
- package/dist/{PageRenderer-BTkUO-hr.js → PageRenderer-hxobUKe_.js} +2 -2
- package/dist/{PageRenderer-BTkUO-hr.js.map → PageRenderer-hxobUKe_.js.map} +1 -1
- package/dist/{PaymentForm-Dum5p1mf.js → PaymentForm-BdWY9dEt.js} +2 -2
- package/dist/{PaymentForm-Dum5p1mf.js.map → PaymentForm-BdWY9dEt.js.map} +1 -1
- package/dist/{PrimaryActionHeader-DBJpROPu.js → PrimaryActionHeader-H5w3twaM.js} +3 -2
- package/dist/PrimaryActionHeader-H5w3twaM.js.map +1 -0
- package/dist/{RecentlyLoadedNodesTable-Dy8yBVfH.js → RecentlyLoadedNodesTable-BzvR0L0h.js} +2 -2
- package/dist/{RecentlyLoadedNodesTable-Dy8yBVfH.js.map → RecentlyLoadedNodesTable-BzvR0L0h.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesWidget-Cb8fiSSn.js → RecentlyLoadedNodesWidget-Kt5BElrK.js} +2 -2
- package/dist/{RecentlyLoadedNodesWidget-Cb8fiSSn.js.map → RecentlyLoadedNodesWidget-Kt5BElrK.js.map} +1 -1
- package/dist/{RemindersScreen-Cp7lMWrE.js → RemindersScreen-BDgMIUaq.js} +2 -2
- package/dist/{RemindersScreen-Cp7lMWrE.js.map → RemindersScreen-BDgMIUaq.js.map} +1 -1
- package/dist/{Shell-BE_Aq6W2.js → Shell-Bcr0PHnd.js} +6 -6
- package/dist/{Shell-BE_Aq6W2.js.map → Shell-Bcr0PHnd.js.map} +1 -1
- package/dist/{SiteHeader-CuOFCr7D.js → SiteHeader-DmfTUOmH.js} +4 -4
- package/dist/{SiteHeader-CuOFCr7D.js.map → SiteHeader-DmfTUOmH.js.map} +1 -1
- package/dist/{SummaryBlock-BjUNDl4q.js → SummaryBlock-Q5Jf4V8A.js} +2 -2
- package/dist/{SummaryBlock-BjUNDl4q.js.map → SummaryBlock-Q5Jf4V8A.js.map} +1 -1
- package/dist/{SupportCaseSideSheet-DuvvXDWF.js → SupportCaseSideSheet-9iAiZyOu.js} +1 -1
- package/dist/{SupportCaseSideSheet-BNec-nDN.js → SupportCaseSideSheet-CT15Dg8h.js} +2 -2
- package/dist/{SupportCaseSideSheet-BNec-nDN.js.map → SupportCaseSideSheet-CT15Dg8h.js.map} +1 -1
- package/dist/{Typography-BMsa1JYd.js → Typography-FuShOop3.js} +2 -2
- package/dist/{Typography-BMsa1JYd.js.map → Typography-FuShOop3.js.map} +1 -1
- package/dist/UI/accordion/index.js +1 -1
- package/dist/UI/components/dataDisplay/index.js +1 -1
- package/dist/UI/components/index.js +1 -1
- package/dist/UI/dataDisplay/GraphCard/index.js +1 -1
- package/dist/UI/dataDisplay/index.js +2 -2
- package/dist/UI/dataDisplay/typography/index.js +1 -1
- package/dist/UI/dataDisplay/visualization/index.js +1 -1
- package/dist/UI/fileViewer/index.js +1 -1
- package/dist/UI/fileViewer/pdfViewer/index.js +1 -1
- package/dist/UI/forms/index.js +1 -1
- package/dist/UI/index.js +11 -11
- package/dist/UI/inputs/fieldArrayCard/index.js +1 -1
- package/dist/UI/mapLayout/index.js +1 -1
- package/dist/UI/support/index.js +1 -1
- package/dist/UI/surfaces/cards/AmbientCard/index.js +1 -1
- package/dist/UI/surfaces/cards/chartDisplayCards/index.js +1 -1
- package/dist/UI/surfaces/cards/workOrderCard/index.js +1 -1
- package/dist/UI/templates/deprecated/UdpGridTemplate/index.js +1 -1
- package/dist/UI/templates/newGrid/index.js +1 -1
- package/dist/UI/utilityDisplay/index.js +2 -2
- package/dist/UI/utilityDisplay/utilityHeader/index.js +1 -1
- package/dist/UI/widgets/index.js +1 -1
- package/dist/UI/widgets/library/CircleGaugeWidget/index.js +1 -1
- package/dist/UI/widgets/library/RecentlyLoadedNodesWidget/index.js +1 -1
- package/dist/{UdpAuditEvents-C5p1KgV0.js → UdpAuditEvents-DotSR4R9.js} +2 -2
- package/dist/{UdpAuditEvents-C5p1KgV0.js.map → UdpAuditEvents-DotSR4R9.js.map} +1 -1
- package/dist/{UdpAuditEventsPage-CohNvZiq.js → UdpAuditEventsPage-BZ5fMCYW.js} +2 -2
- package/dist/{UdpAuditEventsPage-CohNvZiq.js.map → UdpAuditEventsPage-BZ5fMCYW.js.map} +1 -1
- package/dist/UdpAuditEventsPage-BtsmPFyR.js +3 -0
- package/dist/{UdpDataBrowserPage-DQXaWtYD.js → UdpDataBrowserPage-3fiOCSkx.js} +3 -3
- package/dist/{UdpDataBrowserPage-DQXaWtYD.js.map → UdpDataBrowserPage-3fiOCSkx.js.map} +1 -1
- package/dist/{UdpFormsSubmissionGrid-DzMuwwTO.js → UdpFormsSubmissionGrid-B3pQiK5q.js} +10 -9
- package/dist/UdpFormsSubmissionGrid-B3pQiK5q.js.map +1 -0
- package/dist/{UdpGridTemplate-OsS_O6jR.js → UdpGridTemplate-xen0Fvww.js} +2 -2
- package/dist/{UdpGridTemplate-OsS_O6jR.js.map → UdpGridTemplate-xen0Fvww.js.map} +1 -1
- package/dist/{UdpImportFromFileMappingPage-Dti79T9x.js → UdpImportFromFileMappingPage-BxGvGFua.js} +2 -2
- package/dist/{UdpImportFromFileMappingPage-Dti79T9x.js.map → UdpImportFromFileMappingPage-BxGvGFua.js.map} +1 -1
- package/dist/{UdpInquiryMaintenanceEnginePage-Boln3evx.js → UdpInquiryMaintenanceEnginePage-CSf7jB35.js} +2 -2
- package/dist/{UdpInquiryMaintenanceEnginePage-Boln3evx.js.map → UdpInquiryMaintenanceEnginePage-CSf7jB35.js.map} +1 -1
- package/dist/{UdpMaintenanceEnginePage-B8OpNNcP.js → UdpMaintenanceEnginePage-C8NLZSPb.js} +3 -3
- package/dist/{UdpMaintenanceEnginePage-B8OpNNcP.js.map → UdpMaintenanceEnginePage-C8NLZSPb.js.map} +1 -1
- package/dist/{UdpNotesPage-DCjDBqqU.js → UdpNotesPage-BABI4D2S.js} +2 -2
- package/dist/{UdpNotesPage-DCjDBqqU.js.map → UdpNotesPage-BABI4D2S.js.map} +1 -1
- package/dist/{UdpRemindersPage-CrgWmKWD.js → UdpRemindersPage-DuS3aPUk.js} +2 -2
- package/dist/{UdpRemindersPage-CrgWmKWD.js.map → UdpRemindersPage-DuS3aPUk.js.map} +1 -1
- package/dist/{UdpTransactionsPage-X1Wu4-CC.js → UdpTransactionsPage-DXt_i8vP.js} +6 -6
- package/dist/{UdpTransactionsPage-X1Wu4-CC.js.map → UdpTransactionsPage-DXt_i8vP.js.map} +1 -1
- package/dist/{UtilitySideBar-wvrocDGI.js → UtilitySideBar-BU3ppHrv.js} +2 -2
- package/dist/{UtilitySideBar-wvrocDGI.js.map → UtilitySideBar-BU3ppHrv.js.map} +1 -1
- package/dist/VirtualBrowser-CbL5X-W-.js +3 -0
- package/dist/{VirtualBrowser-CVs-vW3x.js → VirtualBrowser-qF1k097T.js} +2 -2
- package/dist/{VirtualBrowser-CVs-vW3x.js.map → VirtualBrowser-qF1k097T.js.map} +1 -1
- package/dist/{WorkOrderCard-s-6QK3Re.js → WorkOrderCard-geZ9o4iP.js} +2 -2
- package/dist/{WorkOrderCard-s-6QK3Re.js.map → WorkOrderCard-geZ9o4iP.js.map} +1 -1
- package/dist/{WorkflowContainer-Boj87JRI.js → WorkflowContainer-BxBxnHEY.js} +1 -1
- package/dist/{WorkflowContainer-DDGm1Cxo.js → WorkflowContainer-Drts8hsZ.js} +3 -3
- package/dist/{WorkflowContainer-DDGm1Cxo.js.map → WorkflowContainer-Drts8hsZ.js.map} +1 -1
- package/dist/{WorkflowContent-CU_-pOym.js → WorkflowContent-HlBHhWl8.js} +4 -4
- package/dist/{WorkflowContent-CU_-pOym.js.map → WorkflowContent-HlBHhWl8.js.map} +1 -1
- package/dist/{accordion--zpb1uMC.js → accordion-Ca8ECaw2.js} +3 -3
- package/dist/accordion-Ca8ECaw2.js.map +1 -0
- package/dist/{actionSummary-D0CwyTXJ.js → actionSummary-DwSHY1Tt.js} +2 -2
- package/dist/{actionSummary-D0CwyTXJ.js.map → actionSummary-DwSHY1Tt.js.map} +1 -1
- package/dist/actions/actionSummary/index.js +1 -1
- package/dist/actions/index.js +4 -4
- package/dist/{colorConverter-x64WSLsF.js → colorConverter-5PvESBA1.js} +7 -1
- package/dist/colorConverter-5PvESBA1.js.map +1 -0
- package/dist/componentSystems/multiThreadTimeline/index.js +2 -2
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/index.js +1 -1
- package/dist/componentSystems/pageRenderer/hocs/index.js +1 -1
- package/dist/componentSystems/pageRenderer/index.js +3 -3
- package/dist/componentSystems/pageRenderer/wrappers/index.js +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/dataBrowser/index.js +1 -1
- package/dist/{fileViewer-BbIFHura.js → fileViewer-C_Q-hFda.js} +4 -4
- package/dist/{fileViewer-BbIFHura.js.map → fileViewer-C_Q-hFda.js.map} +1 -1
- package/dist/{forms-BVssUn2h.js → forms-lyNriVSn.js} +3 -3
- package/dist/{forms-BVssUn2h.js.map → forms-lyNriVSn.js.map} +1 -1
- package/dist/index.js +47 -47
- package/dist/inquiry/dashboard/index.js +1 -1
- package/dist/inquiry/index.js +3 -3
- package/dist/inquiry/search/index.js +1 -1
- package/dist/layout/index.js +1 -1
- package/dist/{layout-Do6o2q2R.js → layout-IgoykV-U.js} +2 -2
- package/dist/{layout-Do6o2q2R.js.map → layout-IgoykV-U.js.map} +1 -1
- package/dist/maintenanceEngine/crudBrowser/index.js +1 -1
- package/dist/maintenanceEngine/index.js +2 -2
- package/dist/maintenanceEngine/virtualBrowser/index.js +1 -1
- package/dist/{mapLayout-B_m2Fh8n.js → mapLayout-BlHtCf7p.js} +2 -2
- package/dist/{mapLayout-B_m2Fh8n.js.map → mapLayout-BlHtCf7p.js.map} +1 -1
- package/dist/menuPage/index.js +1 -1
- package/dist/{menuPage-7DcUM-Q3.js → menuPage-BHXchSeD.js} +2 -2
- package/dist/{menuPage-7DcUM-Q3.js.map → menuPage-BHXchSeD.js.map} +1 -1
- package/dist/{newGrid-zmtQXU5G.js → newGrid-Cx_UGQS8.js} +2 -2
- package/dist/{newGrid-zmtQXU5G.js.map → newGrid-Cx_UGQS8.js.map} +1 -1
- package/dist/notes/index.js +1 -1
- package/dist/page/PageContainer/index.js +1 -1
- package/dist/reminders/index.js +1 -1
- package/dist/routes/index.js +1 -1
- package/dist/{routes-DafRlYVQ.js → routes-Cep1JMTf.js} +5 -5
- package/dist/{routes-DafRlYVQ.js.map → routes-Cep1JMTf.js.map} +1 -1
- package/dist/shell/index.js +2 -2
- package/dist/shell/ui/index.js +1 -1
- package/dist/types/src/UI/accordion/Accordion.d.ts.map +1 -1
- package/dist/types/src/UI/utilityDisplay/utilityHeader/PrimaryActionHeader.d.ts.map +1 -1
- package/dist/types/src/dashboard/DashboardCardGrid.d.ts.map +1 -1
- package/dist/types/src/inquiry/InquiryContainer.d.ts.map +1 -1
- package/dist/types/src/page/Page.d.ts.map +1 -1
- package/dist/types/src/page/PageContainer/PageContainer.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.d.ts +3 -1
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.d.ts.map +1 -1
- package/dist/types/src/utilities/style/colorConverter.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/udp/export/index.js +1 -1
- package/dist/udp/fileImportMapping/index.js +1 -1
- package/dist/udp/pages/UdpAuditEvents/index.js +1 -1
- package/dist/udp/pages/UdpDataBrowserPage/index.js +1 -1
- package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +1 -1
- package/dist/udp/pages/UdpImportFromFileMappingPage/index.js +1 -1
- package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +1 -1
- package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +1 -1
- package/dist/udp/pages/UdpNotesPage/index.js +1 -1
- package/dist/udp/pages/UdpPages/index.js +9 -9
- package/dist/udp/pages/UdpPagesLazy/index.js +1 -1
- package/dist/udp/pages/UdpRemindersPage/index.js +1 -1
- package/dist/udp/pages/UdpTransactionsPage/index.js +1 -1
- package/dist/uploader/index.js +1 -1
- package/dist/{uploader-YWjDebFN.js → uploader-BdeUKdYW.js} +2 -2
- package/dist/{uploader-YWjDebFN.js.map → uploader-BdeUKdYW.js.map} +1 -1
- package/dist/utilities/form/paymentForm/index.js +1 -1
- package/dist/utilities/provider/index.js +1 -1
- package/dist/utilities/style/index.js +1 -1
- package/dist/{widgets-BCHN3J80.js → widgets-Bwklnxz1.js} +2 -2
- package/dist/{widgets-BCHN3J80.js.map → widgets-Bwklnxz1.js.map} +1 -1
- package/dist/{withEngineComponent-CpOJBSmx.js → withEngineComponent-Bcnxug3h.js} +2 -2
- package/dist/{withEngineComponent-CpOJBSmx.js.map → withEngineComponent-Bcnxug3h.js.map} +1 -1
- package/dist/workflow/index.js +2 -2
- package/export-map.json +1 -1
- package/package.json +1 -1
- package/dist/DashboardWidget-CsOrr74H.js.map +0 -1
- package/dist/Inquiry-C094H1jQ.js +0 -3
- package/dist/MenuPage-R6mbeCuS.js +0 -3
- package/dist/Page-fxgRfgm6.js.map +0 -1
- package/dist/PageContainer-DTXNLt_2.js.map +0 -1
- package/dist/PrimaryActionHeader-DBJpROPu.js.map +0 -1
- package/dist/UdpAuditEventsPage-BiUdXrGu.js +0 -3
- package/dist/UdpFormsSubmissionGrid-DzMuwwTO.js.map +0 -1
- package/dist/VirtualBrowser-CcWYHhRb.js +0 -3
- package/dist/accordion--zpb1uMC.js.map +0 -1
- package/dist/colorConverter-x64WSLsF.js.map +0 -1
|
@@ -49,13 +49,28 @@ function getWidgetLayout(getWidget, widgetType) {
|
|
|
49
49
|
|
|
50
50
|
//#endregion
|
|
51
51
|
//#region src/dashboard/DashboardCardGrid.jsx
|
|
52
|
-
const useStyle = makeStyles((theme) => ({
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
52
|
+
const useStyle = makeStyles((theme) => ({
|
|
53
|
+
root: {
|
|
54
|
+
display: "flex",
|
|
55
|
+
flexDirection: "column",
|
|
56
|
+
width: "100%",
|
|
57
|
+
flexGrow: 1,
|
|
58
|
+
marginBottom: (props) => props?.disableMargin ? "" : theme.spacing(3)
|
|
59
|
+
},
|
|
60
|
+
autoHeightContainer: {
|
|
61
|
+
height: "auto !important",
|
|
62
|
+
display: "flex",
|
|
63
|
+
flexWrap: "wrap",
|
|
64
|
+
gap: `${theme.spacing(3)}px ${theme.spacing(3)}px`,
|
|
65
|
+
"& > .react-grid-item": {
|
|
66
|
+
position: "relative !important",
|
|
67
|
+
top: "auto !important",
|
|
68
|
+
left: "auto !important",
|
|
69
|
+
transform: "none !important",
|
|
70
|
+
height: "auto !important"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}), { name: "DashboardCardGrid" });
|
|
59
74
|
const DASHBOARD_WIDGET = Symbol("DASHBOARD_WIDGET");
|
|
60
75
|
const breakpoints = {
|
|
61
76
|
xs: 0,
|
|
@@ -70,7 +85,7 @@ const breakpointCols = {
|
|
|
70
85
|
*/
|
|
71
86
|
const DashboardCardGrid = (props) => {
|
|
72
87
|
const classes = useStyle(props);
|
|
73
|
-
const { children, onCreateCard, gridProperties, ...other } = props;
|
|
88
|
+
const { children, onCreateCard, gridProperties, autoHeight, ...other } = props;
|
|
74
89
|
const { getWidget } = useShellStore();
|
|
75
90
|
const rglRef = useRef();
|
|
76
91
|
const [ref, { width }] = useMeasure();
|
|
@@ -162,7 +177,8 @@ const DashboardCardGrid = (props) => {
|
|
|
162
177
|
isDroppable: gridProperties?.isDroppable || false,
|
|
163
178
|
isDraggable: gridProperties?.isDraggable || false,
|
|
164
179
|
droppingItem: droppingItemLayout,
|
|
165
|
-
|
|
180
|
+
className: autoHeight ? classes.autoHeightContainer : "",
|
|
181
|
+
style: autoHeight ? {} : { height: "100%" }
|
|
166
182
|
}, children) : null);
|
|
167
183
|
};
|
|
168
184
|
var DashboardCardGrid_default = DashboardCardGrid;
|
|
@@ -325,4 +341,4 @@ var DashboardWidget_default = MemoizedDashboardWidget;
|
|
|
325
341
|
|
|
326
342
|
//#endregion
|
|
327
343
|
export { getWidgetLayout as i, WidgetCard as n, DashboardCardGrid_default as r, DashboardWidget_default as t };
|
|
328
|
-
//# sourceMappingURL=DashboardWidget-
|
|
344
|
+
//# sourceMappingURL=DashboardWidget-D3HStfJA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardWidget-D3HStfJA.js","names":["uuid","ResponsiveGridLayout","theme","FUICard","FUIMenuItem"],"sources":["../src/dashboard/getWidgetLayout.ts","../src/dashboard/DashboardCardGrid.jsx","../src/dashboard/WidgetCard.jsx","../src/dashboard/DashboardWidget.jsx"],"sourcesContent":["import { Layout } from 'react-grid-layout';\nimport { LayoutDimension } from './types';\n\nconst getW = (\n w: LayoutDimension | undefined\n): Pick<Layout, 'w' | 'minW' | 'maxW'> => {\n if (typeof w === 'object') {\n return {\n w: w.default,\n minW: w.min,\n maxW: w.max\n };\n }\n\n if (typeof w === 'number') {\n return { w };\n }\n\n return { w: 2 };\n};\n\nconst getH = (\n h: LayoutDimension | undefined\n): Pick<Layout, 'h' | 'minH' | 'maxH'> => {\n if (typeof h === 'object') {\n return {\n h: h.default,\n minH: h.min,\n maxH: h.max\n };\n }\n\n if (typeof h === 'number') {\n return { h };\n }\n\n return { h: 2 };\n};\n\n/**\n * Get a default layout for widgets of a type\n */\nexport default function getWidgetLayout(\n getWidget: Function,\n widgetType: string\n): Omit<Layout, 'i' | 'x' | 'y'> {\n const { w, h } = (getWidget && getWidget(widgetType)?.layout) ?? {};\n\n const layout: Omit<Layout, 'i' | 'x' | 'y'> = {\n ...getW(w),\n ...getH(h)\n };\n\n const wResizable = 'minW' in layout || 'maxW' in layout;\n const hResizable = 'minH' in layout || 'maxH' in layout;\n layout.isResizable = wResizable || hResizable;\n\n return layout;\n}\n","import { v4 as uuid } from 'uuid';\nimport React, { useCallback, useRef, useState, useEffect } from 'react';\nimport { Responsive as ResponsiveGridLayout } from 'react-grid-layout';\nimport { makeStyles, useTheme } from '@material-ui/core';\nimport { useMeasure } from 'react-use';\nimport 'react-grid-layout/css/styles.css';\nimport 'react-resizable/css/styles.css';\nimport { useDragLayer } from 'react-dnd';\nimport getWidgetLayout from './getWidgetLayout.ts';\nimport { useShellStore } from '../stores/shellStore';\n\nconst useStyle = makeStyles(\n (theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n flexGrow: 1,\n marginBottom: (props) => (props?.disableMargin ? '' : theme.spacing(3))\n },\n autoHeightContainer: {\n height: 'auto !important',\n display: 'flex',\n flexWrap: 'wrap',\n gap: `${theme.spacing(3)}px ${theme.spacing(3)}px`,\n '& > .react-grid-item': {\n position: 'relative !important',\n top: 'auto !important',\n left: 'auto !important',\n transform: 'none !important',\n height: 'auto !important'\n }\n }\n }),\n { name: 'DashboardCardGrid' }\n);\n\nconst DASHBOARD_WIDGET = Symbol('DASHBOARD_WIDGET');\n\nconst breakpoints = {\n xs: 0,\n xl: 1150\n};\n\nconst breakpointCols = {\n xs: 4,\n xl: 4\n};\n\n/**\n * Grid layout for dashboard cards\n */\nconst DashboardCardGrid = (props) => {\n const classes = useStyle(props);\n const { children, onCreateCard, gridProperties, autoHeight, ...other } =\n props;\n const { getWidget } = useShellStore();\n const rglRef = useRef();\n const [ref, { width }] = useMeasure();\n const theme = useTheme();\n const { droppingWidgetType } = useDragLayer((monitor) => {\n if (monitor.getItemType() === DASHBOARD_WIDGET) {\n const { id: wigetType } = monitor.getItem();\n return { droppingWidgetType: wigetType };\n }\n\n return { droppingWidgetType: null };\n });\n\n const [droppingItemLayout, setDroppingItemLayout] = useState(null);\n\n useEffect(() => {\n let isMounted = true;\n\n // Asynchronously resolve the widget definition to get its layout properties\n const resolveLayout = async (widgetDefPromise) => {\n try {\n const module = await widgetDefPromise;\n // Handle ES modules with default exports\n const widgetDef = module?.default || module;\n // Use the external layout getter, assuming it can handle the resolved definition\n const layout = getWidgetLayout(widgetDef);\n if (isMounted) {\n setDroppingItemLayout({ i: uuid(), ...layout });\n }\n } catch (e) {\n console.error(\n `Error resolving layout for widget type \"${droppingWidgetType}\"`,\n e\n );\n // Fallback to a default layout on error\n const fallbackLayout = getWidgetLayout(null);\n if (isMounted) {\n setDroppingItemLayout({ i: uuid(), ...fallbackLayout });\n }\n }\n };\n\n if (droppingWidgetType) {\n const res = getWidget(droppingWidgetType);\n // Check if the result is a promise (for async widgets)\n if (res?.then) {\n setDroppingItemLayout(null); // Clear previous layout while loading\n resolveLayout(res);\n } else {\n // Handle synchronously available widget definitions\n const layout = getWidgetLayout(res);\n setDroppingItemLayout({ i: uuid(), ...layout });\n }\n } else {\n setDroppingItemLayout(null);\n }\n\n return () => {\n isMounted = false;\n };\n }, [droppingWidgetType, getWidget]);\n\n const drag = useCallback((layout, oldLayoutItem, layoutItem, placeholder) => {\n // Cards larger than 1 should snap to columns that are a multiple of 2\n // if (layoutItem.w > 1) {\n // // @fixme This affects the visual placeholder, but doesn't actually fix the layout item when its dropped\n // placeholder.x = layoutItem.x = Math.floor(layoutItem.x / 2) * 2;\n // }\n }, []);\n\n const resize = useCallback(\n (layout, oldLayoutItem, layoutItem, placeholder) => {\n // Widths larger than 1 should be a multiple of 2\n // The small size of columns is just so we can have small 1x1 tiles that are 1/2 the size of normal cards\n // if (layoutItem.w > 1) {\n // const w = Math.floor(layoutItem.w / 2) * 3;\n // layoutItem.w = w;\n // placeholder.w = w;\n // }\n\n // There is no 3 (i.e. 6) column layout so don't allow cards to be that size either\n if (layoutItem.w >= 6 && layoutItem.w < 8) {\n layoutItem.w = 4;\n placeholder.w = 4;\n }\n },\n []\n );\n\n const drop = useCallback(\n (layout, item) => {\n if (droppingWidgetType) {\n const { x, y, w, h } = item;\n const { breakpoint } = rglRef.current.state;\n if (onCreateCard)\n onCreateCard({\n widgetType: droppingWidgetType,\n id: uuid(),\n layout: {\n [breakpoint]: {\n x,\n y,\n w,\n h\n }\n },\n params: []\n });\n }\n },\n [droppingWidgetType, onCreateCard]\n );\n\n return (\n <div ref={ref} className={classes.root}>\n {width ? (\n <ResponsiveGridLayout\n ref={rglRef}\n {...other}\n width={width}\n breakpoints={breakpoints}\n cols={breakpointCols}\n rowHeight={128}\n margin={[theme.spacing(3), theme.spacing(3)]}\n containerPadding={[0, 0]}\n draggableHandle='[data-handle]'\n onDrag={drag}\n onResize={resize}\n onDrop={drop}\n isDroppable={gridProperties?.isDroppable || false}\n isDraggable={gridProperties?.isDraggable || false}\n droppingItem={droppingItemLayout}\n className={autoHeight ? classes.autoHeightContainer : ''}\n style={\n autoHeight\n ? {}\n : {\n height: '100%'\n }\n }\n >\n {children}\n </ResponsiveGridLayout>\n ) : null}\n </div>\n );\n};\n\nexport default DashboardCardGrid;\n","import { DeleteIcon } from '@fluentui/react-icons';\nimport { makeStyles, CircularProgress, lighten } from '@material-ui/core';\nimport clsx from 'clsx';\nimport React from 'react';\nimport FUICard, { FUICardHeaderMenu } from '../UI/surfaces/cards/fluentCards/FUICard';\nimport FUIMenuItem from '../UI/widgets/FluentComponents/FUIMenuItem';\n\n/**\n * Core component for dashboard widget cards\n */\nexport const WidgetCard = (props) => {\n const {\n children,\n headerActions,\n className,\n widgetType,\n id,\n layout,\n params,\n setParam,\n onDelete,\n loading,\n errors,\n theme,\n hideWidgetName,\n innerPadding,\n contentHeight,\n contentMaxHeight,\n ...other\n } = props;\n\n const useStyles = makeStyles((theme) => ({\n root: {\n '&.react-resizable-hide .react-resizable-handle': {\n display: 'none'\n }\n },\n darkRoot: {\n '&.react-resizable-hide .react-resizable-handle': {\n display: 'none'\n },\n background: '#424242',\n color: 'white'\n },\n anyRoot: {\n '& .MuiCardContent-root': {\n justifyContent: 'space-between',\n overflow: 'auto',\n padding: 0\n }\n },\n handle: {\n cursor: 'move',\n '&:hover': {\n backgroundColor: theme.palette.action.hover\n },\n display: hideWidgetName && 'none'\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n innerWidgetContentContainer: {\n height:\n widgetType === 'TransformerLoadWidget'\n ? 'auto'\n : contentHeight\n ? contentHeight\n : '100%',\n maxHeight: contentMaxHeight ? contentMaxHeight : '',\n minWidth: widgetType === 'ProgressBarWidget' ? 0 : 270,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n padding:\n innerPadding ||\n (widgetType === 'VEERegisterRead' ? 0 : theme.spacing(2))\n }\n }));\n const classes = useStyles();\n const raised = /(^|\\s)react-draggable-dragging(\\s|$)/.test(className ?? '');\n\n let body = children;\n if (loading && !body) {\n body = (\n <div className={classes.loadingContent}>\n <CircularProgress size={64} />\n </div>\n );\n }\n if (errors && !body) {\n body = <div>Unexpected error</div>;\n }\n\n return (\n <FUICard\n {...other}\n className={clsx(\n className,\n theme === 'dark' ? classes.darkRoot : classes.root,\n classes.anyRoot\n )}\n raised={raised}\n CardHeaderProps={{\n className: classes.handle,\n 'data-handle': true\n }}\n headerActions={\n <>\n {headerActions}\n <FUICardHeaderMenu>\n <FUIMenuItem\n onClick={onDelete}\n fluentIcon={DeleteIcon}\n primary='Delete'\n />\n </FUICardHeaderMenu>\n </>\n }\n >\n <div className={classes.innerWidgetContentContainer}>{body}</div>\n </FUICard>\n );\n};\n","import React, {\n forwardRef,\n memo,\n Suspense,\n isValidElement,\n useCallback,\n useMemo\n} from 'react';\nimport { WidgetCard } from './WidgetCard';\nimport { useShellStore } from '../stores/shellStore';\nimport { PageLoading } from '../UI/feedback/PageLoading';\n\nconst isRenderableComponent = (Component) =>\n typeof Component === 'function' ||\n (Component &&\n typeof Component === 'object' &&\n Component !== null &&\n '$$typeof' in Component);\n\n/**\n * Widget implementation for dashboards that correctly handles lazy-loading.\n */\nconst DashboardWidget = forwardRef((props, ref) => {\n const {\n widgetType,\n id,\n deleteCard,\n children,\n params: paramValues,\n setParams,\n ...rest\n } = props;\n const { className, style, ...widgetProps } = rest;\n const widgetStyle = { ...(widgetProps.style || {}) };\n\n if (style && typeof style === 'object') {\n if (Object.prototype.hasOwnProperty.call(style, 'height')) {\n widgetStyle.height = style.height;\n }\n if (Object.prototype.hasOwnProperty.call(style, 'width')) {\n widgetStyle.width = style.width;\n }\n }\n\n const widgetPropsWithClassName = {\n ...widgetProps,\n ...(className ? { className } : {}),\n ...(Object.keys(widgetStyle).length ? { style: widgetStyle } : {})\n };\n const { getWidget, isValidWidget } = useShellStore();\n\n const onDelete = useCallback(() => {\n deleteCard?.(id);\n }, [deleteCard, id]);\n\n const { Widget, params: paramDefs } = useMemo(() => {\n if (!isValidWidget?.(widgetType)) {\n return {};\n }\n const res = getWidget(widgetType);\n\n // If getWidget returns null or undefined, widget not found\n if (!res) {\n return {};\n }\n\n // If it's already a React.lazy component (LazyExoticComponent), use it directly\n // React.lazy components have a $$typeof property set to Symbol.for('react.lazy')\n if (res.$$typeof === Symbol.for('react.lazy')) {\n return { Widget: res, params: {} };\n }\n\n // Handle descriptor object format (widget with params)\n if (res && typeof res === 'object' && !isValidElement(res) && !res.then) {\n const widgetComp = res.Widget || res.default || null;\n return { Widget: widgetComp, params: res.params || {} };\n }\n\n // If we receive anything else, it's an unsupported format.\n console.warn(`getWidget returned an unexpected type for \"${widgetType}\":`, res);\n return {};\n }, [widgetType, getWidget, isValidWidget]);\n\n const params = useMemo(() => {\n if (!paramDefs) return paramValues || {};\n\n const defaultParams = Object.fromEntries(\n Object.entries(paramDefs).map(([key, { defaultValue }]) => [key, defaultValue])\n );\n return { ...defaultParams, ...paramValues };\n }, [paramDefs, paramValues]);\n\n const setParam = useCallback(\n (name, value) => setParams(id, { [name]: value }),\n [id, setParams]\n );\n\n if (!isValidWidget || !getWidget) {\n return (\n <div ref={ref} className={className} style={style}>\n <WidgetCard {...widgetPropsWithClassName} title='Error'>\n isValidWidget or getWidget functions are not defined\n </WidgetCard>\n </div>\n );\n }\n\n if (!Widget) {\n return (\n <div ref={ref} className={className} style={style}>\n <WidgetCard {...widgetPropsWithClassName} title='Error'>\n Unknown widget type “{widgetType}”.\n </WidgetCard>\n </div>\n );\n }\n\n if (!isRenderableComponent(Widget)) {\n console.error(\n `DashboardWidget: widget \"${widgetType}\" resolved to a non-renderable component.`,\n Widget\n );\n return (\n <div ref={ref} className={className} style={style}>\n <WidgetCard {...widgetPropsWithClassName} title='Error'>\n Unable to render widget type “{widgetType}”.\n </WidgetCard>\n </div>\n );\n }\n\n const widgetElement = (\n <Widget\n {...widgetPropsWithClassName}\n id={id}\n params={params}\n setParam={setParam}\n onDelete={onDelete}\n >\n {children}\n </Widget>\n );\n\n return (\n <div ref={ref} className={className} style={style}>\n <Suspense fallback={<PageLoading />}>{widgetElement}</Suspense>\n </div>\n );\n});\n\nDashboardWidget.displayName = 'DashboardWidget';\n\nconst MemoizedDashboardWidget = memo(DashboardWidget);\nMemoizedDashboardWidget.displayName = 'DashboardWidget';\n\nexport default MemoizedDashboardWidget;\n"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import { t as ActionsRenderer } from "./ActionsRenderer-DbrPKZ1o.js";
|
|
|
14
14
|
import { t as useLookupsStore } from "./lookupsStore-DPI8oD9R.js";
|
|
15
15
|
import { t as useQueryExecutors } from "./useQueryExecutors-DuuHrj2M.js";
|
|
16
16
|
import { t as SearchServiceDatasource } from "./SearchServiceDatasource-D8egrLwe.js";
|
|
17
|
-
import { t as CrudTableSidePanel } from "./CrudTableSidePanel-
|
|
17
|
+
import { t as CrudTableSidePanel } from "./CrudTableSidePanel-Dw8gZSqR.js";
|
|
18
18
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
19
19
|
import { useHistory } from "react-router-dom";
|
|
20
20
|
import { AddIcon, ConfigurationSolidIcon, LookupEntitiesIcon } from "@fluentui/react-icons";
|
|
@@ -394,4 +394,4 @@ const DataBrowserContainer = (props) => {
|
|
|
394
394
|
|
|
395
395
|
//#endregion
|
|
396
396
|
export { DataBrowserColumnDefs as n, defaultColActionsDef as r, DataBrowserContainer as t };
|
|
397
|
-
//# sourceMappingURL=DataBrowserContainer-
|
|
397
|
+
//# sourceMappingURL=DataBrowserContainer-D4gJ66IC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataBrowserContainer-cU_EEIiR.js","names":["filterChipsArray"],"sources":["../src/dataBrowser/DataBrowserColumnDefs.js","../src/dataBrowser/DataBrowserContainer.jsx"],"sourcesContent":["import {\n toTitleCase,\n toLowerFirstChar\n} from '../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n headerName: '',\n field: '',\n minWidth: 80,\n autoHeight: false,\n sortable: false\n};\n\nexport const DataBrowserColumnDefs = (\n entityAttributes,\n actionList,\n isServerSide,\n queryColumnsData,\n columnName = 'Actions',\n crudTableActionRenderName = 'actionsRenderer',\n panelDirection = 'right'\n) => {\n const childEntityAttributes = entityAttributes?.reduce((defs, element) => {\n if (element?.extendedProperties?.childEntity) {\n defs.push(element);\n }\n return defs;\n }, []);\n\n let shownColumns = [];\n let hiddenColumns = [];\n\n entityAttributes?.forEach((element) => {\n if (!element?.extendedProperties?.childEntity) {\n let matchingColumn = null;\n const matchingColumnIndex = queryColumnsData.findIndex(\n (column) => column.name === element?.name\n );\n\n if (matchingColumnIndex >= 0) {\n matchingColumn = queryColumnsData[matchingColumnIndex];\n }\n\n // update column header if attribute has a child entity\n const childEntity = childEntityAttributes.find(\n (ea) =>\n Object.keys(ea?.extendedProperties?.childEntityAssoc || {}).length &&\n !ea?.extendedProperties?.childEntityAssoc?.UdpType &&\n ea?.name === element?.name &&\n ea?.extendedProperties?.childEntityAssoc.Keys.find((k) =>\n toLowerFirstChar(k).includes(element?.name)\n )\n );\n\n let columnHeaderName = toTitleCase(\n childEntity ? childEntity?.reference : element?.name\n );\n\n if (matchingColumn) {\n columnHeaderName = toTitleCase(\n childEntity\n ? childEntity?.reference\n : matchingColumn?.alias || matchingColumn?.name\n );\n }\n\n let def = {\n ...defaultGridColumn,\n headerName: columnHeaderName,\n field: element?.name.charAt(0).toLowerCase() + element?.name.slice(1),\n hide: !matchingColumn\n };\n\n if (element?.extendedProperties?.searchable && isServerSide) {\n def = {\n ...def,\n filter: 'agTextColumnFilter',\n filterParams: {\n suppressAndOrCondition: true,\n filterOptions: [\n 'equals',\n 'contains',\n 'notEqual',\n 'greaterThan',\n 'lessThan',\n 'greaterThanOrEqual',\n 'lessThanOrEqual'\n ]\n },\n enableRowGroup: true\n };\n }\n if (element?.extendedProperties?.orderable || !isServerSide) {\n def = {\n ...def,\n sortable: true\n };\n }\n\n if (matchingColumn) {\n shownColumns[matchingColumnIndex] = def;\n } else {\n hiddenColumns.push(def);\n }\n }\n });\n\n let columnDefs = shownColumns.concat(hiddenColumns);\n\n columnDefs.push({\n headerName:\n crudTableActionRenderName === 'actionsRenderer' ? 'Actions' : columnName,\n filter: false,\n pinned: panelDirection,\n width: 150,\n maxWidth: 180,\n cellRenderer: crudTableActionRenderName,\n cellRendererParams: {\n actionList\n },\n valueGetter: (params) => params.data,\n suppressMenu: true,\n sortable: false,\n cellStyle: { display: 'flex', alignItems: 'center' }\n });\n\n return columnDefs;\n};\n\nexport const defaultColActionsDef = {\n resizable: true,\n editable: false,\n sortable: false,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport { AmbientGridTemplate } from '../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\nimport { SideSheet } from '../UI/surfaces/SideSheet';\nimport { ActionsRenderer } from '../UI/templates/ui/renderers/ActionsRenderer';\nimport { DataBrowserColumnDefs } from './DataBrowserColumnDefs';\nimport {\n AddIcon,\n LookupEntitiesIcon,\n ConfigurationSolidIcon\n} from '@fluentui/react-icons';\nimport { CrudTableSidePanel } from '../maintenanceEngine/crudBrowser/CrudTableSidePanel';\nimport { format } from 'date-fns';\nimport { findTermByType } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { LookupTypeIdEnums, UdpEnums } from '../enums/unitySystemEnums';\nimport {\n executeQueryAdHoc,\n executeQueryWithParameters\n} from '../udp/utilities/methodUtils';\nimport { useAgGridApi } from '../utilities/aggrid/AgTable';\nimport { SearchServiceDatasource } from '../utilities/aggrid/datasources/SearchServiceDatasource';\nimport { useUser } from '../utilities/auth/useUser';\nimport {\n toTitleCase,\n toUpperFirstChar\n} from '../utilities/input/StringUtilities';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { useQueryExecutors } from '../hooks/useQueryExecutors';\nimport { useLookupsStore } from '../stores/lookupsStore';\nimport { SqlFilterOperators } from '../enums/aggridEnums';\nimport { useBuildEnvironment } from '../shell/ui/useBuildEnvironment';\nimport { usePromotedMethodEntity } from '../hooks/usePromotedMethodEntity';\nimport { getSearchObject } from '../utilities/search/SearchUtilities';\n\nconst GRID_ID = '4be3be45-1930-4ab9-b7b7-0c0fa3e30490';\n\nexport const DataBrowserContainer = (props) => {\n const {\n entityData,\n actionList,\n onCreate,\n entityAttributes,\n foreignKeyData,\n isLoading,\n promotedEntity,\n setEntityData,\n apiMethod,\n isServerSide = false,\n setGridApi,\n filterElements,\n backToConfigPage,\n queryColumnsData,\n lookupsMap = {},\n ...other\n } = props;\n const [isSheetOpen, setSheetOpen] = useState(false);\n const [sideSheetWidth, setSideSheetWidth] = useState(600);\n const [sideSheetButtonLabel, setSideSheetButtonLabel] = useState('');\n const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n const [sideSheetOnSubmit, setSideSheetOnSubmit] = useState(\n () => () => console.warn('onSubmit not set')\n );\n const [filterChipsArray, setFilterChipsArray] = useState([]);\n const [searchFilterElements, setSearchFilterElements] =\n useState(filterElements);\n const [entityUdpObjectInfo, setEntityUdpObjectInfo] = useState(null);\n const { t } = useTranslation();\n const history = useHistory();\n const user = useUser();\n const { gridApi, gridColumnApi, onGridReady } = useAgGridApi();\n const { executeQueryAdHocAndMapLookups, getCleanData } = useQueryExecutors();\n const lookupApiMethodId = useLookupsStore((state) => state.lookupApiMethodId);\n const buildEnv = useBuildEnvironment();\n const closeSheet = useCallback(() => {\n setSheetOpen(false);\n }, []);\n\n const { data: udpObjectInfoEntity } = usePromotedMethodEntity(\n 'udpObjectInfo',\n true\n );\n\n const entityName = useMemo(() => {\n if (!promotedEntity) return '';\n return promotedEntity.entityName || '';\n }, [promotedEntity]);\n\n const commonEntityName = useMemo(() => {\n if (!entityName || !entityUdpObjectInfo) return '';\n return toTitleCase(\n entityUdpObjectInfo?.properties?.displayName ||\n getSanitizedName(entityName)\n );\n }, [entityName, entityUdpObjectInfo]);\n\n const createApiMethodPageId = useMemo(() => {\n return promotedEntity?.unityBaseCreateMethod?.pageId;\n }, [promotedEntity]);\n\n const secondaryActionButtons = useMemo(() => {\n const actions = [];\n if (backToConfigPage) {\n actions.push({\n onClick: backToConfigPage,\n label: t('Back To Config'),\n icon: ConfigurationSolidIcon,\n tooltip: t('Back To Config'),\n background: 'transparent'\n });\n }\n // actions.push({\n // onClick: () => {},\n // label: t('Load to Tree'),\n // icon: UploadIcon,\n // tooltip: t('Load to Tree'),\n // background: 'transparent'\n // });\n return actions;\n }, [backToConfigPage, t]);\n\n const virtualActions = useMemo(() => {\n return [\n // Action for opening Virtual Configuration\n {\n id: 3,\n title: t('Open Virtual Table'),\n icon: LookupEntitiesIcon,\n loading: !!!foreignKeyData,\n onClick: (value) => {\n history.push({\n pathname: `/virtual/${value.id}`,\n search: `?entityName=${entityName}`,\n state: {\n value,\n promotedEntity,\n label: value.name\n }\n });\n },\n checkDisabled: (value) => value.typeId !== LookupTypeIdEnums.Lookup\n }\n ];\n }, [entityName, t, history, promotedEntity, foreignKeyData]);\n\n const jointActionList = useMemo(() => {\n if (!actionList) {\n return [];\n }\n // Check if it's a udp lookup entity\n if (entityName.toLowerCase() === UdpEnums.Udp_Lookup.toLowerCase()) {\n return [...actionList, ...virtualActions];\n }\n return actionList;\n }, [actionList, virtualActions, entityName]);\n\n const columnDefs = useMemo(() => {\n return DataBrowserColumnDefs(\n entityAttributes,\n jointActionList,\n true,\n queryColumnsData\n );\n }, [entityAttributes, jointActionList, queryColumnsData]);\n\n const groupData = useMemo(() => {\n return columnDefs?.map((item) => {\n return {\n groupItem: item.field,\n label: item.headerName,\n value: item.field\n };\n });\n }, [columnDefs]);\n\n const SideOptionList = useMemo(\n () => (\n <SideSheet\n open={isSheetOpen}\n onClose={closeSheet}\n title={`Add New ${commonEntityName}`}\n width={sideSheetWidth}\n buttonLabel={sideSheetButtonLabel}\n onSubmit={sideSheetOnSubmit}\n {...otherSideSheetProps}\n >\n <CrudTableSidePanel\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n onCreate={onCreate}\n closeSideSheet={closeSheet}\n pageId={createApiMethodPageId}\n setSideSheetWidth={setSideSheetWidth}\n setSideSheetButtonLabel={setSideSheetButtonLabel}\n setSideSheetOnSubmit={setSideSheetOnSubmit}\n setSideSheetProps={setOtherSideSheetProps}\n isNewEntry={true}\n entityData={entityData}\n entityName={entityName}\n />\n </SideSheet>\n ),\n [\n isSheetOpen,\n closeSheet,\n entityName,\n sideSheetWidth,\n sideSheetButtonLabel,\n sideSheetOnSubmit,\n entityAttributes,\n foreignKeyData,\n onCreate,\n createApiMethodPageId,\n entityData,\n otherSideSheetProps,\n commonEntityName\n ]\n );\n\n const getLookupResults = useCallback(async () => {\n if (!lookupsMap || !lookupApiMethodId) return null;\n const lookupToFilterOn = Object.values(lookupsMap).find(\n (item) => item.filterOn\n );\n const lookupId = lookupToFilterOn?.value || '';\n if (lookupId) {\n const lookupResult = await executeQueryWithParameters(\n { data: { id: lookupId } },\n lookupApiMethodId\n );\n return lookupResult;\n }\n return null;\n }, [lookupsMap, lookupApiMethodId]);\n\n const formattedData = useMemo(() => {\n if (entityData) {\n let formattedEntityData = cloneDeep(entityData);\n\n // get list of attributes that are datetime\n const datetimeFields = entityAttributes?.reduce((defs, element) => {\n if (\n !element?.extendedProperties?.childEntity &&\n findTermByType(element?.type, 'datetime')\n ) {\n defs.push(\n element?.name.charAt(0).toLowerCase() + element?.name.slice(1)\n );\n }\n return defs;\n }, []);\n\n if (datetimeFields?.length) {\n formattedEntityData.forEach((e) => {\n Object.keys(e).forEach((key) => {\n // format all datetime fields\n if (datetimeFields.find((field) => field === key)) {\n // LAA UNT-2977: add null check to prevent default date from being added when null\n if (e[key] === null) return;\n e[key] = format(new Date(e[key]), 'yyyy/MM/dd kk:mm:ss');\n }\n });\n });\n }\n\n return formattedEntityData;\n }\n return [];\n }, [entityAttributes, entityData]);\n\n const handleChipToggle = useCallback(\n (chip) => {\n if (isServerSide && chip && chip.filterValue && chip.keyName) {\n const updatedSearchFilterElements = [...searchFilterElements];\n const chipFilterElement = {\n searchValue: chip.filterValue,\n searchField: toUpperFirstChar(chip.keyName),\n searchOperator: SqlFilterOperators.EQUALS\n };\n updatedSearchFilterElements.push(chipFilterElement);\n setSearchFilterElements(updatedSearchFilterElements);\n } else {\n // TODO: handle client side filter chips\n }\n },\n [isServerSide, searchFilterElements]\n );\n\n const handleChipUntoggle = useCallback(() => {\n setSearchFilterElements(filterElements);\n }, [filterElements]);\n\n const setFilterChips = useCallback(async () => {\n let filterChipsArray = [];\n\n // A list of all the products (for product lookup)\n const lookup = await getLookupResults();\n const lookupResults = lookup?.data;\n\n if (!lookupResults) {\n setFilterChipsArray([]);\n return; // no lookup results\n }\n\n let keyName = lookupResults.keyName;\n const valueName = lookupResults.valueName;\n\n const lookupToFilterOn = Object.values(lookupsMap).find(\n (item) => item.filterOn\n );\n\n let chipKey = keyName;\n const lookupMapKeys = Object.keys(lookupsMap);\n for (let i = 0; i < lookupMapKeys.length; i++) {\n const key = lookupMapKeys[i];\n if (lookupsMap[key].value === lookupToFilterOn?.value) {\n chipKey = key;\n break;\n }\n }\n\n // Add the chips\n for (let i = 0; i < lookupResults?.data.length; i++) {\n const lookupResult = lookupResults.data[i];\n\n const label = lookupResult[valueName];\n const numRows = formattedData?.filter(\n (obj) => obj[keyName] === label\n )?.length;\n\n let chipData = {\n label: `${label}`,\n value: !isServerSide ? numRows || '' : '',\n filterValue: lookupResult[keyName],\n id: i,\n keyName: chipKey\n };\n chipData.onToggle = () => handleChipToggle(chipData);\n chipData.onUntoggle = () => handleChipUntoggle();\n\n // Only add the chip if it has results and is not using server side\n if (!isServerSide && numRows > 0) {\n filterChipsArray.push(chipData);\n }\n if (isServerSide) {\n filterChipsArray.push(chipData);\n }\n }\n\n setFilterChipsArray(filterChipsArray);\n }, [\n getLookupResults,\n handleChipToggle,\n handleChipUntoggle,\n isServerSide,\n formattedData,\n lookupsMap\n ]);\n\n useEffect(() => {\n setFilterChips();\n }, [setFilterChips]);\n\n useEffect(() => {\n setSearchFilterElements(filterElements || []);\n }, [filterElements]);\n\n useEffect(() => {\n if (!gridApi) return;\n if (setGridApi) {\n setGridApi(gridApi);\n }\n if (promotedEntity && isServerSide && lookupsMap) {\n let datasource = SearchServiceDatasource(\n null,\n promotedEntity?.unityBaseSearchMethod?.apiMethodId,\n searchFilterElements,\n 1,\n executeQueryAdHocAndMapLookups,\n setEntityData,\n lookupsMap,\n false,\n getCleanData\n );\n // eslint-disable-next-line no-unused-expressions\n gridApi?.setServerSideDatasource(datasource);\n }\n }, [\n gridApi,\n promotedEntity,\n setEntityData,\n setGridApi,\n isServerSide,\n searchFilterElements,\n executeQueryAdHocAndMapLookups,\n lookupsMap,\n getCleanData\n ]);\n\n useEffect(() => {\n const executeSearchForEntityUdpObjectInfo = async (\n apiMethodId,\n sanitizedEntityName\n ) => {\n const filterElements = [\n {\n searchField: 'SanitizedName',\n searchOperator: '=',\n searchValue: sanitizedEntityName\n }\n ];\n const requestObj = getSearchObject(filterElements, 1, 50, false);\n const response = await executeQueryAdHoc(\n { data: requestObj },\n apiMethodId\n );\n if (response.status === 200) {\n const data = response?.data?.pageList[0];\n setEntityUdpObjectInfo(data);\n }\n };\n if (udpObjectInfoEntity?.unityBaseSearchMethod && entityName) {\n executeSearchForEntityUdpObjectInfo(\n udpObjectInfoEntity?.unityBaseSearchMethod?.apiMethodId,\n getSanitizedName(entityName)\n );\n }\n }, [udpObjectInfoEntity, entityName]);\n\n return (\n <>\n <AmbientGridTemplate\n gridId={GRID_ID}\n user={user}\n useNewHeader\n api={gridApi}\n onGridReady={onGridReady}\n columnApi={gridColumnApi}\n apiMethod={apiMethod}\n title={commonEntityName}\n data={!isServerSide && formattedData}\n columnDefs={columnDefs}\n groupingData={groupData}\n onPrimaryActionClick={() => setSheetOpen && setSheetOpen(true)}\n primaryActionLabel={t('Add')}\n primaryActionIcon={AddIcon}\n frameworkComponents={{ actionsRenderer: ActionsRenderer }}\n height={`calc(100vh - ${buildEnv ? '139px' : '114px'})`}\n hideSearchBar={isServerSide}\n loading={isLoading}\n suppressScrollOnNewData\n dynamicSizing={false}\n // rowSelection='multiple'\n // rowMultiSelectWithClick={true}\n disableRowSelection={true}\n rowModelType={isServerSide ? 'serverSide' : null}\n serverSideStoreType={isServerSide ? 'partial' : null}\n cacheOverflowSize={isServerSide ? 2 : null}\n cacheBlockSize={isServerSide ? 20 : null}\n maxConcurrentDatasourceRequests={isServerSide ? 1 : null}\n secondaryActionButtons={secondaryActionButtons}\n filterChips={[...filterChipsArray]}\n {...other}\n />\n {SideOptionList}\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataBrowserContainer-D4gJ66IC.js","names":["filterChipsArray"],"sources":["../src/dataBrowser/DataBrowserColumnDefs.js","../src/dataBrowser/DataBrowserContainer.jsx"],"sourcesContent":["import {\n toTitleCase,\n toLowerFirstChar\n} from '../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n headerName: '',\n field: '',\n minWidth: 80,\n autoHeight: false,\n sortable: false\n};\n\nexport const DataBrowserColumnDefs = (\n entityAttributes,\n actionList,\n isServerSide,\n queryColumnsData,\n columnName = 'Actions',\n crudTableActionRenderName = 'actionsRenderer',\n panelDirection = 'right'\n) => {\n const childEntityAttributes = entityAttributes?.reduce((defs, element) => {\n if (element?.extendedProperties?.childEntity) {\n defs.push(element);\n }\n return defs;\n }, []);\n\n let shownColumns = [];\n let hiddenColumns = [];\n\n entityAttributes?.forEach((element) => {\n if (!element?.extendedProperties?.childEntity) {\n let matchingColumn = null;\n const matchingColumnIndex = queryColumnsData.findIndex(\n (column) => column.name === element?.name\n );\n\n if (matchingColumnIndex >= 0) {\n matchingColumn = queryColumnsData[matchingColumnIndex];\n }\n\n // update column header if attribute has a child entity\n const childEntity = childEntityAttributes.find(\n (ea) =>\n Object.keys(ea?.extendedProperties?.childEntityAssoc || {}).length &&\n !ea?.extendedProperties?.childEntityAssoc?.UdpType &&\n ea?.name === element?.name &&\n ea?.extendedProperties?.childEntityAssoc.Keys.find((k) =>\n toLowerFirstChar(k).includes(element?.name)\n )\n );\n\n let columnHeaderName = toTitleCase(\n childEntity ? childEntity?.reference : element?.name\n );\n\n if (matchingColumn) {\n columnHeaderName = toTitleCase(\n childEntity\n ? childEntity?.reference\n : matchingColumn?.alias || matchingColumn?.name\n );\n }\n\n let def = {\n ...defaultGridColumn,\n headerName: columnHeaderName,\n field: element?.name.charAt(0).toLowerCase() + element?.name.slice(1),\n hide: !matchingColumn\n };\n\n if (element?.extendedProperties?.searchable && isServerSide) {\n def = {\n ...def,\n filter: 'agTextColumnFilter',\n filterParams: {\n suppressAndOrCondition: true,\n filterOptions: [\n 'equals',\n 'contains',\n 'notEqual',\n 'greaterThan',\n 'lessThan',\n 'greaterThanOrEqual',\n 'lessThanOrEqual'\n ]\n },\n enableRowGroup: true\n };\n }\n if (element?.extendedProperties?.orderable || !isServerSide) {\n def = {\n ...def,\n sortable: true\n };\n }\n\n if (matchingColumn) {\n shownColumns[matchingColumnIndex] = def;\n } else {\n hiddenColumns.push(def);\n }\n }\n });\n\n let columnDefs = shownColumns.concat(hiddenColumns);\n\n columnDefs.push({\n headerName:\n crudTableActionRenderName === 'actionsRenderer' ? 'Actions' : columnName,\n filter: false,\n pinned: panelDirection,\n width: 150,\n maxWidth: 180,\n cellRenderer: crudTableActionRenderName,\n cellRendererParams: {\n actionList\n },\n valueGetter: (params) => params.data,\n suppressMenu: true,\n sortable: false,\n cellStyle: { display: 'flex', alignItems: 'center' }\n });\n\n return columnDefs;\n};\n\nexport const defaultColActionsDef = {\n resizable: true,\n editable: false,\n sortable: false,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport { AmbientGridTemplate } from '../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\nimport { SideSheet } from '../UI/surfaces/SideSheet';\nimport { ActionsRenderer } from '../UI/templates/ui/renderers/ActionsRenderer';\nimport { DataBrowserColumnDefs } from './DataBrowserColumnDefs';\nimport {\n AddIcon,\n LookupEntitiesIcon,\n ConfigurationSolidIcon\n} from '@fluentui/react-icons';\nimport { CrudTableSidePanel } from '../maintenanceEngine/crudBrowser/CrudTableSidePanel';\nimport { format } from 'date-fns';\nimport { findTermByType } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { LookupTypeIdEnums, UdpEnums } from '../enums/unitySystemEnums';\nimport {\n executeQueryAdHoc,\n executeQueryWithParameters\n} from '../udp/utilities/methodUtils';\nimport { useAgGridApi } from '../utilities/aggrid/AgTable';\nimport { SearchServiceDatasource } from '../utilities/aggrid/datasources/SearchServiceDatasource';\nimport { useUser } from '../utilities/auth/useUser';\nimport {\n toTitleCase,\n toUpperFirstChar\n} from '../utilities/input/StringUtilities';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { useQueryExecutors } from '../hooks/useQueryExecutors';\nimport { useLookupsStore } from '../stores/lookupsStore';\nimport { SqlFilterOperators } from '../enums/aggridEnums';\nimport { useBuildEnvironment } from '../shell/ui/useBuildEnvironment';\nimport { usePromotedMethodEntity } from '../hooks/usePromotedMethodEntity';\nimport { getSearchObject } from '../utilities/search/SearchUtilities';\n\nconst GRID_ID = '4be3be45-1930-4ab9-b7b7-0c0fa3e30490';\n\nexport const DataBrowserContainer = (props) => {\n const {\n entityData,\n actionList,\n onCreate,\n entityAttributes,\n foreignKeyData,\n isLoading,\n promotedEntity,\n setEntityData,\n apiMethod,\n isServerSide = false,\n setGridApi,\n filterElements,\n backToConfigPage,\n queryColumnsData,\n lookupsMap = {},\n ...other\n } = props;\n const [isSheetOpen, setSheetOpen] = useState(false);\n const [sideSheetWidth, setSideSheetWidth] = useState(600);\n const [sideSheetButtonLabel, setSideSheetButtonLabel] = useState('');\n const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n const [sideSheetOnSubmit, setSideSheetOnSubmit] = useState(\n () => () => console.warn('onSubmit not set')\n );\n const [filterChipsArray, setFilterChipsArray] = useState([]);\n const [searchFilterElements, setSearchFilterElements] =\n useState(filterElements);\n const [entityUdpObjectInfo, setEntityUdpObjectInfo] = useState(null);\n const { t } = useTranslation();\n const history = useHistory();\n const user = useUser();\n const { gridApi, gridColumnApi, onGridReady } = useAgGridApi();\n const { executeQueryAdHocAndMapLookups, getCleanData } = useQueryExecutors();\n const lookupApiMethodId = useLookupsStore((state) => state.lookupApiMethodId);\n const buildEnv = useBuildEnvironment();\n const closeSheet = useCallback(() => {\n setSheetOpen(false);\n }, []);\n\n const { data: udpObjectInfoEntity } = usePromotedMethodEntity(\n 'udpObjectInfo',\n true\n );\n\n const entityName = useMemo(() => {\n if (!promotedEntity) return '';\n return promotedEntity.entityName || '';\n }, [promotedEntity]);\n\n const commonEntityName = useMemo(() => {\n if (!entityName || !entityUdpObjectInfo) return '';\n return toTitleCase(\n entityUdpObjectInfo?.properties?.displayName ||\n getSanitizedName(entityName)\n );\n }, [entityName, entityUdpObjectInfo]);\n\n const createApiMethodPageId = useMemo(() => {\n return promotedEntity?.unityBaseCreateMethod?.pageId;\n }, [promotedEntity]);\n\n const secondaryActionButtons = useMemo(() => {\n const actions = [];\n if (backToConfigPage) {\n actions.push({\n onClick: backToConfigPage,\n label: t('Back To Config'),\n icon: ConfigurationSolidIcon,\n tooltip: t('Back To Config'),\n background: 'transparent'\n });\n }\n // actions.push({\n // onClick: () => {},\n // label: t('Load to Tree'),\n // icon: UploadIcon,\n // tooltip: t('Load to Tree'),\n // background: 'transparent'\n // });\n return actions;\n }, [backToConfigPage, t]);\n\n const virtualActions = useMemo(() => {\n return [\n // Action for opening Virtual Configuration\n {\n id: 3,\n title: t('Open Virtual Table'),\n icon: LookupEntitiesIcon,\n loading: !!!foreignKeyData,\n onClick: (value) => {\n history.push({\n pathname: `/virtual/${value.id}`,\n search: `?entityName=${entityName}`,\n state: {\n value,\n promotedEntity,\n label: value.name\n }\n });\n },\n checkDisabled: (value) => value.typeId !== LookupTypeIdEnums.Lookup\n }\n ];\n }, [entityName, t, history, promotedEntity, foreignKeyData]);\n\n const jointActionList = useMemo(() => {\n if (!actionList) {\n return [];\n }\n // Check if it's a udp lookup entity\n if (entityName.toLowerCase() === UdpEnums.Udp_Lookup.toLowerCase()) {\n return [...actionList, ...virtualActions];\n }\n return actionList;\n }, [actionList, virtualActions, entityName]);\n\n const columnDefs = useMemo(() => {\n return DataBrowserColumnDefs(\n entityAttributes,\n jointActionList,\n true,\n queryColumnsData\n );\n }, [entityAttributes, jointActionList, queryColumnsData]);\n\n const groupData = useMemo(() => {\n return columnDefs?.map((item) => {\n return {\n groupItem: item.field,\n label: item.headerName,\n value: item.field\n };\n });\n }, [columnDefs]);\n\n const SideOptionList = useMemo(\n () => (\n <SideSheet\n open={isSheetOpen}\n onClose={closeSheet}\n title={`Add New ${commonEntityName}`}\n width={sideSheetWidth}\n buttonLabel={sideSheetButtonLabel}\n onSubmit={sideSheetOnSubmit}\n {...otherSideSheetProps}\n >\n <CrudTableSidePanel\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n onCreate={onCreate}\n closeSideSheet={closeSheet}\n pageId={createApiMethodPageId}\n setSideSheetWidth={setSideSheetWidth}\n setSideSheetButtonLabel={setSideSheetButtonLabel}\n setSideSheetOnSubmit={setSideSheetOnSubmit}\n setSideSheetProps={setOtherSideSheetProps}\n isNewEntry={true}\n entityData={entityData}\n entityName={entityName}\n />\n </SideSheet>\n ),\n [\n isSheetOpen,\n closeSheet,\n entityName,\n sideSheetWidth,\n sideSheetButtonLabel,\n sideSheetOnSubmit,\n entityAttributes,\n foreignKeyData,\n onCreate,\n createApiMethodPageId,\n entityData,\n otherSideSheetProps,\n commonEntityName\n ]\n );\n\n const getLookupResults = useCallback(async () => {\n if (!lookupsMap || !lookupApiMethodId) return null;\n const lookupToFilterOn = Object.values(lookupsMap).find(\n (item) => item.filterOn\n );\n const lookupId = lookupToFilterOn?.value || '';\n if (lookupId) {\n const lookupResult = await executeQueryWithParameters(\n { data: { id: lookupId } },\n lookupApiMethodId\n );\n return lookupResult;\n }\n return null;\n }, [lookupsMap, lookupApiMethodId]);\n\n const formattedData = useMemo(() => {\n if (entityData) {\n let formattedEntityData = cloneDeep(entityData);\n\n // get list of attributes that are datetime\n const datetimeFields = entityAttributes?.reduce((defs, element) => {\n if (\n !element?.extendedProperties?.childEntity &&\n findTermByType(element?.type, 'datetime')\n ) {\n defs.push(\n element?.name.charAt(0).toLowerCase() + element?.name.slice(1)\n );\n }\n return defs;\n }, []);\n\n if (datetimeFields?.length) {\n formattedEntityData.forEach((e) => {\n Object.keys(e).forEach((key) => {\n // format all datetime fields\n if (datetimeFields.find((field) => field === key)) {\n // LAA UNT-2977: add null check to prevent default date from being added when null\n if (e[key] === null) return;\n e[key] = format(new Date(e[key]), 'yyyy/MM/dd kk:mm:ss');\n }\n });\n });\n }\n\n return formattedEntityData;\n }\n return [];\n }, [entityAttributes, entityData]);\n\n const handleChipToggle = useCallback(\n (chip) => {\n if (isServerSide && chip && chip.filterValue && chip.keyName) {\n const updatedSearchFilterElements = [...searchFilterElements];\n const chipFilterElement = {\n searchValue: chip.filterValue,\n searchField: toUpperFirstChar(chip.keyName),\n searchOperator: SqlFilterOperators.EQUALS\n };\n updatedSearchFilterElements.push(chipFilterElement);\n setSearchFilterElements(updatedSearchFilterElements);\n } else {\n // TODO: handle client side filter chips\n }\n },\n [isServerSide, searchFilterElements]\n );\n\n const handleChipUntoggle = useCallback(() => {\n setSearchFilterElements(filterElements);\n }, [filterElements]);\n\n const setFilterChips = useCallback(async () => {\n let filterChipsArray = [];\n\n // A list of all the products (for product lookup)\n const lookup = await getLookupResults();\n const lookupResults = lookup?.data;\n\n if (!lookupResults) {\n setFilterChipsArray([]);\n return; // no lookup results\n }\n\n let keyName = lookupResults.keyName;\n const valueName = lookupResults.valueName;\n\n const lookupToFilterOn = Object.values(lookupsMap).find(\n (item) => item.filterOn\n );\n\n let chipKey = keyName;\n const lookupMapKeys = Object.keys(lookupsMap);\n for (let i = 0; i < lookupMapKeys.length; i++) {\n const key = lookupMapKeys[i];\n if (lookupsMap[key].value === lookupToFilterOn?.value) {\n chipKey = key;\n break;\n }\n }\n\n // Add the chips\n for (let i = 0; i < lookupResults?.data.length; i++) {\n const lookupResult = lookupResults.data[i];\n\n const label = lookupResult[valueName];\n const numRows = formattedData?.filter(\n (obj) => obj[keyName] === label\n )?.length;\n\n let chipData = {\n label: `${label}`,\n value: !isServerSide ? numRows || '' : '',\n filterValue: lookupResult[keyName],\n id: i,\n keyName: chipKey\n };\n chipData.onToggle = () => handleChipToggle(chipData);\n chipData.onUntoggle = () => handleChipUntoggle();\n\n // Only add the chip if it has results and is not using server side\n if (!isServerSide && numRows > 0) {\n filterChipsArray.push(chipData);\n }\n if (isServerSide) {\n filterChipsArray.push(chipData);\n }\n }\n\n setFilterChipsArray(filterChipsArray);\n }, [\n getLookupResults,\n handleChipToggle,\n handleChipUntoggle,\n isServerSide,\n formattedData,\n lookupsMap\n ]);\n\n useEffect(() => {\n setFilterChips();\n }, [setFilterChips]);\n\n useEffect(() => {\n setSearchFilterElements(filterElements || []);\n }, [filterElements]);\n\n useEffect(() => {\n if (!gridApi) return;\n if (setGridApi) {\n setGridApi(gridApi);\n }\n if (promotedEntity && isServerSide && lookupsMap) {\n let datasource = SearchServiceDatasource(\n null,\n promotedEntity?.unityBaseSearchMethod?.apiMethodId,\n searchFilterElements,\n 1,\n executeQueryAdHocAndMapLookups,\n setEntityData,\n lookupsMap,\n false,\n getCleanData\n );\n // eslint-disable-next-line no-unused-expressions\n gridApi?.setServerSideDatasource(datasource);\n }\n }, [\n gridApi,\n promotedEntity,\n setEntityData,\n setGridApi,\n isServerSide,\n searchFilterElements,\n executeQueryAdHocAndMapLookups,\n lookupsMap,\n getCleanData\n ]);\n\n useEffect(() => {\n const executeSearchForEntityUdpObjectInfo = async (\n apiMethodId,\n sanitizedEntityName\n ) => {\n const filterElements = [\n {\n searchField: 'SanitizedName',\n searchOperator: '=',\n searchValue: sanitizedEntityName\n }\n ];\n const requestObj = getSearchObject(filterElements, 1, 50, false);\n const response = await executeQueryAdHoc(\n { data: requestObj },\n apiMethodId\n );\n if (response.status === 200) {\n const data = response?.data?.pageList[0];\n setEntityUdpObjectInfo(data);\n }\n };\n if (udpObjectInfoEntity?.unityBaseSearchMethod && entityName) {\n executeSearchForEntityUdpObjectInfo(\n udpObjectInfoEntity?.unityBaseSearchMethod?.apiMethodId,\n getSanitizedName(entityName)\n );\n }\n }, [udpObjectInfoEntity, entityName]);\n\n return (\n <>\n <AmbientGridTemplate\n gridId={GRID_ID}\n user={user}\n useNewHeader\n api={gridApi}\n onGridReady={onGridReady}\n columnApi={gridColumnApi}\n apiMethod={apiMethod}\n title={commonEntityName}\n data={!isServerSide && formattedData}\n columnDefs={columnDefs}\n groupingData={groupData}\n onPrimaryActionClick={() => setSheetOpen && setSheetOpen(true)}\n primaryActionLabel={t('Add')}\n primaryActionIcon={AddIcon}\n frameworkComponents={{ actionsRenderer: ActionsRenderer }}\n height={`calc(100vh - ${buildEnv ? '139px' : '114px'})`}\n hideSearchBar={isServerSide}\n loading={isLoading}\n suppressScrollOnNewData\n dynamicSizing={false}\n // rowSelection='multiple'\n // rowMultiSelectWithClick={true}\n disableRowSelection={true}\n rowModelType={isServerSide ? 'serverSide' : null}\n serverSideStoreType={isServerSide ? 'partial' : null}\n cacheOverflowSize={isServerSide ? 2 : null}\n cacheBlockSize={isServerSide ? 20 : null}\n maxConcurrentDatasourceRequests={isServerSide ? 1 : null}\n secondaryActionButtons={secondaryActionButtons}\n filterChips={[...filterChipsArray]}\n {...other}\n />\n {SideOptionList}\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as colors$1 } from "./colors-BONxjrOE.js";
|
|
2
|
-
import { t as getCategoryColor } from "./colorConverter-
|
|
2
|
+
import { t as getCategoryColor } from "./colorConverter-5PvESBA1.js";
|
|
3
3
|
import { t as LayoutUnit } from "./LayoutUnit-D4jJvonh.js";
|
|
4
4
|
import { n as TimelineStatus, r as TimelineDateBar } from "./MttYearTag-Cw8OyKTy.js";
|
|
5
5
|
import { t as TimelineToken } from "./TimelineToken-nU7fdgjR.js";
|
|
@@ -566,4 +566,4 @@ const DynamicRangeSlider = (props) => {
|
|
|
566
566
|
|
|
567
567
|
//#endregion
|
|
568
568
|
export { TimelineWrapper as a, TimelineDot as c, MultiDot as i, TimelineHoverCard as l, TimelinePreloaderNode as n, TimelineNode as o, VisualizationDot as r, TimelineTokenSummary as s, DynamicRangeSlider as t };
|
|
569
|
-
//# sourceMappingURL=DynamicRangeSlider-
|
|
569
|
+
//# sourceMappingURL=DynamicRangeSlider-BX4kCzUd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicRangeSlider-prr4fg8d.js","names":["useStyles","useStyles","useStyles","message","dot","colors","icon","useStyles","useStyles","useStyles","useStyles","useStyles"],"sources":["../src/componentSystems/multiThreadTimeline/ui/TimelineHoverCard.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineDot.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineTokenSummary.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineNode.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineWrapper.jsx","../src/componentSystems/multiThreadTimeline/ui/MultiDot.jsx","../src/componentSystems/multiThreadTimeline/ui/VisualizationDot.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelinePreloaderNode.jsx","../src/componentSystems/multiThreadTimeline/ui/DynamicRangeSlider.jsx"],"sourcesContent":["import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { ChromeCloseIcon } from '@fluentui/react-icons';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n hover: {\n position: 'absolute',\n top: 16,\n left: (props) => (props.offset ? props.offset : 20),\n padding: theme.spacing(3),\n paddingTop: (props) =>\n props.popover ? theme.spacing(1) : theme.spacing(2),\n paddingRight: theme.spacing(2),\n background: theme.palette.common.white,\n boxShadow: `0px 24px 38px 3px rgb(0 0 0 / 14%), 0px 9px 46px 8px rgb(0 0 0 / 12%), 0px 11px 15px -7px rgb(0 0 0 / 20%)`,\n borderRadius: theme.spacing(1),\n zIndex: 99,\n minWidth: 190\n },\n close: {\n cursor: 'pointer'\n },\n displayHeader: {\n position: 'absolute',\n right: theme.spacing(2),\n top: theme.spacing(1)\n }\n}));\n\nexport const TimelineHoverCard = (props) => {\n const { children } = props;\n const classes = useStyles(props);\n const { className, popover = true } = props;\n\n return (\n <div className={clsx(classes.root, className)}>\n <div className={classes.hover}>\n <div className={classes.displayHeader}>\n {popover && (\n <div className={classes.close}>\n <ChromeCloseIcon style={{ width: 10, height: 10 }} />\n </div>\n )}\n </div>\n {children}\n </div>\n </div>\n );\n};\n\nTimelineHoverCard.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n popover: PropTypes.bool,\n offset: PropTypes.number\n};\n","import React, { useState } from 'react';\nimport { lighten, makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n dot: {\n width: theme.spacing(2),\n height: theme.spacing(2),\n background: (props) =>\n props.color ? props.color : theme.palette.secondary.main,\n borderRadius: 50,\n margin: theme.spacing(2),\n color: theme.palette.common.white\n },\n hover: {\n position: 'relative'\n },\n title: {\n transform: 'rotate(90deg)',\n background: lighten(theme.palette.common.black, 0.8),\n borderRadius: 4,\n padding: theme.spacing(1),\n paddingTop: theme.spacing(0.5),\n paddingBottom: theme.spacing(0.5),\n marginTop: theme.spacing(1),\n textTransform: 'capitalize',\n position: 'absolute',\n top: 70,\n left: -31,\n width: 115\n }\n}));\n\nexport const TimelineDot = (props) => {\n const { hoverContent, title, hideLable = true } = props;\n const classes = useStyles(props);\n\n const [hover, setHover] = useState(false);\n\n return (\n <div>\n <div className={classes.dot}>\n <div\n className={classes.hover}\n style={{ display: hover ? 'inline' : 'none' }}\n >\n {hoverContent}\n </div>\n </div>\n {!hideLable && (\n <div className={classes.title}>\n <Typography>\n <span style={{ fontWeight: 700 }}> {title}</span>\n </Typography>\n </div>\n )}\n </div>\n );\n};\n\nTimelineDot.propTypes = {\n hoverContent: PropTypes.node,\n title: PropTypes.string,\n hideLable: PropTypes.bool,\n color: PropTypes.string\n};\n","import React from 'react';\nimport {\n makeStyles,\n lighten,\n useTheme,\n Typography,\n Divider\n} from '@material-ui/core';\nimport { TimelineToken } from './modified/TimelineToken';\nimport {\n CustomListIcon,\n AlarmClockIcon,\n SendIcon,\n SpeedHighIcon,\n BankIcon,\n MoneyIcon,\n MessageIcon,\n DietPlanNotebookIcon\n} from '@fluentui/react-icons';\nimport { colors } from '../../../utilities/style/colors';\nimport { TimelineHoverCard } from './TimelineHoverCard';\nimport { TimelineDot } from './TimelineDot';\nimport { TimelineStatus } from './TimelineStatus';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n height: 200\n },\n timelineWrapper: {\n background: lighten(theme.palette.secondary.main, 0.7),\n height: 40,\n borderRadius: 50,\n position: (props) => (props.relative ? 'relative' : 'absolute')\n },\n token: {\n position: (props) => (props.relative ? 'relative' : 'absolute'),\n top: (props) => props.top - 9,\n left: (props) => props.left - 2,\n transition: '1s',\n cursor: 'pointer',\n '&:hover': {}\n },\n // summaryRoot: {\n // display: 'flex',\n // flexDirection: 'column',\n // alignItems: 'center',\n // color: 'grey',\n\n // },\n summaryRoot: {\n //marginRight: theme.spacing(4),\n //width: 100\n },\n negativeMargin: {\n marginTop: -6\n },\n titleContainer: {\n textOverflow: 'ellipsis',\n //background: lighten(theme.palette.common.black, 0.9),\n overflow: 'hidden',\n //color: theme.palette.common.white,\n borderRadius: 4,\n paddingLeft: 4,\n paddingRight: 2\n }\n }),\n { name: 'TimelineTokenSummary' }\n);\n\nexport const TimelineTokenSummary = (props) => {\n const {\n timelineItem,\n onClick,\n isHover,\n title,\n showLabel = true,\n dot,\n color,\n date,\n message,\n amount,\n user,\n status,\n summary,\n iconColor,\n showToken,\n details = true,\n icon\n } = props;\n const classes = useStyles(props);\n let type = '';\n const theme = useTheme();\n\n const TimelineSummary = ({ message }) => {\n return (\n <div>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n }}\n >\n {summary && (\n <div style={{ height: 24 }}>\n <Divider orientation='vertical' />\n </div>\n )}\n\n <div className={classes.summaryRoot} style={{ display: 'flex' }}>\n {/* <div className={classes.titleContainer} style={{width: scale}} > */}\n\n {/* <div className={classes.titleContainer} style={{height: details && 90}} > */}\n <div\n className={classes.titleContainer}\n style={{ height: summary && 90 }}\n >\n <Typography\n variant='caption'\n style={{\n fontWeight: 700,\n textOverflow: 'ellipsis',\n overflow: 'hidden'\n }}\n >\n {title}\n </Typography>\n\n {details && (\n <div>\n <LayoutUnit unit='nudge' />\n <Typography>\n {/* {amount && '$' } {amount} */}\n {amount}\n </Typography>\n <TimelineStatus status={status} />\n <div>\n <Typography variant='caption'>{message}</Typography>\n <div>\n <Typography variant='caption'>{user}</Typography>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n const NodeItem = ({ dot, icon }) => {\n return (\n <div className={classes.token} onClick={onClick}>\n {(dot || showToken) && (\n <TimelineToken\n color={colors.unity?.info?.hint}\n icon={icon}\n size='small'\n // iconColorOverride={theme.palette.info.light}\n iconColorOverride={iconColor}\n onClick={onClick}\n action\n isHover={isHover}\n hoverContainer={\n <TimelineHoverCard\n date={date}\n categoryColor={theme.palette.info.main}\n message={message}\n timelineItem={timelineItem}\n />\n }\n >\n {' '}\n </TimelineToken>\n )}\n {!dot && !summary && (\n <TimelineDot\n title={title}\n date={date}\n color={color}\n hoverContent={\n <TimelineHoverCard\n date={date}\n categoryColor={theme.palette.info.main}\n message={message}\n timelineItem={timelineItem}\n />\n }\n />\n )}\n {showLabel && !dot && <TimelineSummary message={message} />}\n </div>\n );\n };\n\n switch (timelineItem) {\n case 'Email':\n type = <NodeItem icon={SendIcon} dot={dot} />;\n break;\n case 'ServiceOrder':\n type = <NodeItem icon={CustomListIcon} dot={dot} />;\n break;\n case 'SMS':\n type = <NodeItem icon={MessageIcon} dot={dot} />;\n break;\n case 'Web Payment':\n type = <NodeItem icon={BankIcon} dot={dot} />;\n break;\n case 'Deposit - Regular':\n type = <NodeItem icon={AlarmClockIcon} dot={dot} />;\n break;\n case 'Start Read':\n type = <NodeItem icon={SpeedHighIcon} dot={dot} />;\n break;\n case 'Regular Bill':\n type = <NodeItem icon={DietPlanNotebookIcon} dot={dot} />;\n break;\n case 'Email Notify':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Payment':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Bill':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Service Order':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Late':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Letter':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Disc':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n default:\n }\n\n return <NodeItem icon={icon ? icon : MoneyIcon} dot={dot} />;\n};\n\nTimelineTokenSummary.propTypes = {\n timelineItem: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n isHover: PropTypes.bool,\n title: PropTypes.string,\n showLabel: PropTypes.bool,\n dot: PropTypes.bool,\n color: PropTypes.string,\n date: PropTypes.string,\n message: PropTypes.string,\n amount: PropTypes.string,\n user: PropTypes.string,\n status: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n summary: PropTypes.bool,\n iconColor: PropTypes.string,\n showToken: PropTypes.bool,\n details: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.elementType, PropTypes.object])\n};\n","import React, { useState, memo } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { TimelineDateBar } from './TimelineDateBar';\nimport { TimelineTokenSummary } from './TimelineTokenSummary';\nimport { TimelineStatus } from './TimelineStatus';\nimport { TimelineHoverCard } from './TimelineHoverCard';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport PropTypes from 'prop-types'; // import PropTypes\nconst useStyles = makeStyles((theme) => ({\n root: {},\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n alignContent: 'space-between',\n alignItems: 'center'\n },\n label: { width: 46, textAlign: 'center' }\n}));\n// eslint-disable-next-line react/display-name\nexport const TimelineNode = memo((props) => {\n const [hover, setHover] = useState(false);\n const {\n data,\n height = 187,\n details = true,\n show = false,\n width,\n dot,\n iconColor,\n dotColor,\n test,\n icon\n } = props;\n const classes = useStyles(props);\n const maxLineLength = 8;\n const maxLines = 2;\n const capitalizeFirstLetter = (str) => {\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\n };\n const formatString = (str) => {\n let formattedStr = '';\n let lineCount = 0;\n let words = str.split(' ');\n for (let i = 0; i < words.length && lineCount < maxLines; i++) {\n let line = '';\n while (\n i < words.length &&\n line.length + words[i].length <= maxLineLength\n ) {\n line += capitalizeFirstLetter(words[i]) + ' ';\n i++;\n }\n if (line.length > maxLineLength) {\n line = line.slice(0, maxLineLength - 3) + '...';\n }\n formattedStr += line.trim() + '\\n';\n lineCount++;\n i--;\n }\n return formattedStr.trim();\n };\n return (\n <div\n onMouseDownCapture={() => setHover(!hover)}\n className={classes.root}\n style={{ background: details && 'whitesmoke', width: width }}\n >\n <div>{test} </div>\n {data.map((item) => {\n return (\n <div>\n {(hover || show) && (\n <TimelineHoverCard offset={0}>\n <div>\n <Typography variant='h6'>\n {item.details.shortDescription}\n </Typography>\n </div>\n <div>\n {item.details.data1 ? (\n <Typography variant='caption'>\n {item.details.data1}\n </Typography>\n ) : (\n <TimelineStatus status={item.details.data2} />\n )}\n </div>\n <div>\n <Typography variant='caption'>{item.details.date}</Typography>\n </div>\n <div>\n <Typography variant='caption'>\n {item.details.data3}\n </Typography>\n </div>\n </TimelineHoverCard>\n )}\n <div className={classes.wrapper} style={{ height: height - 4 }}>\n <div style={{ marginRight: -8 }}>\n <TimelineTokenSummary\n dot={dot}\n color={dotColor}\n relative\n timelineItem={item.details.transactionType}\n iconColor={iconColor}\n //timelineItem=\"Email\"\n icon={icon}\n removeHeight\n />\n </div>\n <div\n className={classes.label}\n style={{ marginTop: !details && -3 }}\n >\n {dot && (\n <Typography\n variant='subtitle2'\n style={{ lineHeight: '0.9rem' }}\n >\n {formatString(item.details.shortDescription)}\n </Typography>\n )}\n </div>\n {details && <LayoutUnit unit='nudge' />}\n {details && (\n <div className={classes.wrapper}>\n <div>\n {item.details.data1 &&\n item.details.data1.toString().trim() !== '' ? (\n <Typography variant='caption'>\n {item.details.data1}\n </Typography>\n ) : (\n <TimelineStatus status={Number(item.details.data2)} />\n )}\n </div>\n <div>\n <Typography variant='caption'>\n {item.details.date}\n </Typography>\n </div>\n <div>\n <Typography variant='caption'>\n {item.details.data3}\n </Typography>\n </div>\n </div>\n )}\n </div>\n {details && (\n <div>\n <TimelineDateBar\n month={Number(item.date.toString().charAt(0))}\n />\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n});\n\n// Define propTypes\nTimelineNode.propTypes = {\n data: PropTypes.array.isRequired,\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n details: PropTypes.bool,\n show: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool\n ]),\n dot: PropTypes.bool,\n iconColor: PropTypes.string,\n dotColor: PropTypes.string,\n test: PropTypes.string,\n icon: PropTypes.element\n};\n","import React from 'react';\nimport { makeStyles, lighten } from '@material-ui/core';\nimport { getCategoryColor } from '../../../utilities/style/colorConverter';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types'; // import PropTypes\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {},\n timelineWrapper: {\n background: lighten(theme.palette.secondary.main, 0.7),\n height: 40,\n borderRadius: 50\n //width: 800\n //position: 'absolute'\n },\n dot: {\n width: 30,\n height: 30,\n borderRadius: 50\n },\n colorOne: {\n background: lighten(theme.palette.success.main, 0.8)\n },\n colorTwo: {\n background: lighten(theme.palette.info.main, 0.8)\n },\n colorThree: {\n background: lighten(theme.palette.secondary.main, 0.9)\n },\n colorFour: {\n background: getCategoryColor('four')\n },\n colorFive: {\n background: getCategoryColor('five')\n },\n colorSix: {\n background: getCategoryColor('six')\n },\n colorSeven: {\n background: lighten(theme.palette.warning.main, 0.9)\n }\n }),\n { name: 'Timeline' }\n);\n\nexport const TimelineWrapper = ({ style, timeline }) => {\n const classes = useStyles();\n let type = '';\n switch (timeline) {\n case 1:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorOne)}\n style={style}\n />\n );\n break;\n case 2:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorTwo)}\n style={style}\n />\n );\n break;\n case 3:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorThree)}\n style={style}\n />\n );\n break;\n case 4:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorFour)}\n style={style}\n />\n );\n break;\n case 5:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorFive)}\n style={style}\n />\n );\n break;\n case 6:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorSix)}\n style={style}\n />\n );\n break;\n case 7:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorSeven)}\n style={style}\n />\n );\n break;\n default:\n }\n\n return type;\n};\n\n// Define propTypes\nTimelineWrapper.propTypes = {\n style: PropTypes.object,\n timeline: PropTypes.oneOf([1, 2, 3, 4, 5, 6, 7]).isRequired\n};\n","import React, { useState } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { TimelineHoverCard } from './TimelineHoverCard';\nimport { TimelineStatus } from './TimelineStatus';\nimport PropTypes from 'prop-types'; // import PropTypes\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n cursor: 'pointer'\n },\n wrapper: {\n width: 130,\n marginBottom: theme.spacing(2)\n }\n}));\n\nexport const MultiDot = (props) => {\n const { map, number } = props;\n const classes = useStyles(props);\n const { className } = props;\n\n const [hover, setHover] = useState(false);\n\n return (\n <div\n className={clsx(classes.root, className)}\n onMouseDownCapture={() => setHover(!hover)}\n >\n <div\n style={{\n paddingLeft: 16,\n paddingRight: 16,\n paddingTop: 10,\n paddingBottom: 10,\n background: '#918296',\n borderRadius: 50,\n color: 'white'\n }}\n >\n <Typography variant='subtitle2'> {number} </Typography>\n </div>\n {hover && (\n <TimelineHoverCard>\n {map.map((item) => {\n return (\n <div className={classes.wrapper}>\n <Typography variant='subtitle2'>\n {item.details.shortDescription}\n </Typography>\n <Typography variant='caption'> {item.details.date} </Typography>\n <TimelineStatus status={item.details.status} />\n </div>\n );\n })}\n </TimelineHoverCard>\n )}\n </div>\n );\n};\n\n// Define propTypes\nMultiDot.propTypes = {\n map: PropTypes.arrayOf(\n PropTypes.shape({\n details: PropTypes.shape({\n shortDescription: PropTypes.string.isRequired,\n date: PropTypes.string.isRequired,\n status: PropTypes.string.isRequired\n }).isRequired\n })\n ).isRequired,\n number: PropTypes.number.isRequired,\n className: PropTypes.string\n};\n","import React, { useState } from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core';\nimport { TimelineHoverCard } from './TimelineHoverCard';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types'; // import PropTypes\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n minHeight: theme.spacing(1.25),\n minWidth: theme.spacing(1.25),\n borderRadius: 25,\n cursor: (props) => props.hover && 'pointer'\n },\n multi: {\n padding: 11,\n paddingTop: 5,\n paddingBottom: 5,\n color: theme.palette.common.white\n }\n}));\n\nexport const VisualizationDot = (props) => {\n const theme = useTheme();\n const classes = useStyles(props);\n const { type, children, hover, multi, noHover } = props;\n\n const [showHover, setShowHover] = useState();\n\n const DotWrapper = ({ color }) => {\n return (\n <div\n onMouseEnter={() => setShowHover(true)}\n onMouseLeave={() => setShowHover(false)}\n className={clsx(classes.root, multi && classes.multi)}\n style={{ background: color }}\n >\n {children}\n {showHover && !noHover && (\n <TimelineHoverCard popover={false}> {hover} </TimelineHoverCard>\n )}\n </div>\n );\n };\n\n let dot = theme.palette.primary.main;\n switch (type) {\n case 'Late Bill':\n dot = <DotWrapper color={theme.palette.warning.light} />;\n break;\n case 'Disconnect':\n dot = <DotWrapper color={theme.palette.error.main} />;\n break;\n case 'Letter Sent':\n dot = <DotWrapper color={theme.palette.warning.dark} />;\n break;\n case 'Payment':\n dot = <DotWrapper color={theme.palette.success.main} />;\n break;\n case 'Arrange Pay':\n dot = <DotWrapper color={theme.palette.warning.main} />;\n break;\n default:\n dot = <DotWrapper color={theme.palette.info.light} />;\n break;\n }\n return dot;\n};\n\n// Define propTypes\nVisualizationDot.propTypes = {\n type: PropTypes.string,\n children: PropTypes.node,\n hover: PropTypes.node,\n multi: PropTypes.bool,\n noHover: PropTypes.bool\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport clsx from 'clsx';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport PropTypes from 'prop-types'; // import PropTypes\n\nconst useStyles = makeStyles((theme) => ({\n root: {}\n}));\n\nexport const TimelinePreloaderNode = (props) => {\n const { children, shortView } = props;\n const classes = useStyles(props);\n const { className, longView } = props;\n\n return (\n <div className={clsx(classes.root, className)}>\n {shortView && (\n <div style={{ marginRight: 100, marginBottom: 40 }}>\n <LayoutUnit unit='nudge' />\n <div style={{ display: 'flex', justifyContent: 'center' }}>\n <Skeleton variant='circle' width={30} height={30} />\n </div>\n <LayoutUnit unit='nudge' />\n <div style={{ display: 'flex', justifyContent: 'center' }}>\n <Skeleton variant='rect' width={1} height={25} />\n </div>\n <Skeleton variant='text' />\n <Skeleton variant='text' />\n <LayoutUnit unit='sm' />\n <Skeleton variant='rect' width={80} height={6} />\n </div>\n )}\n\n {longView && (\n <div>\n <Skeleton variant='rect' width={800} height={45} />\n </div>\n )}\n </div>\n );\n};\n\n// Define propTypes\nTimelinePreloaderNode.propTypes = {\n children: PropTypes.node,\n shortView: PropTypes.bool,\n longView: PropTypes.bool,\n className: PropTypes.string\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport RangeSlider from 'react-range-slider-input';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n rangeSlider: {\n '& .range-slider__thumb': {\n width: theme.spacing(2.25),\n height: (props) => `calc(${props.margin}px + ${props.threads}px )`,\n borderRadius: theme.spacing(0.5),\n background:\n \"url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23333' viewBox='0 0 24 24'%3E%3Cpath d='M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z' /%3E%3C/svg%3E\\\") #fff\",\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n },\n '& .range-slider__range': {\n background: 'transparent',\n border: '4px solid #fff',\n boxSizing: 'border-box',\n boxShadow: '0 0 0 9999px rgba(194, 194, 194, 0.75)',\n zIndex: 0\n },\n height: (props) => `calc(${props.margin}px + ${props.threads}px )`,\n background: 'whitesmoke',\n overflow: 'hidden'\n }\n}));\n\nexport const DynamicRangeSlider = (props) => {\n const { children, ...otherProps } = props;\n const classes = useStyles(props);\n return <RangeSlider className={classes.rangeSlider} {...otherProps} />;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DynamicRangeSlider-BX4kCzUd.js","names":["useStyles","useStyles","useStyles","message","dot","colors","icon","useStyles","useStyles","useStyles","useStyles","useStyles"],"sources":["../src/componentSystems/multiThreadTimeline/ui/TimelineHoverCard.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineDot.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineTokenSummary.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineNode.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineWrapper.jsx","../src/componentSystems/multiThreadTimeline/ui/MultiDot.jsx","../src/componentSystems/multiThreadTimeline/ui/VisualizationDot.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelinePreloaderNode.jsx","../src/componentSystems/multiThreadTimeline/ui/DynamicRangeSlider.jsx"],"sourcesContent":["import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { ChromeCloseIcon } from '@fluentui/react-icons';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n hover: {\n position: 'absolute',\n top: 16,\n left: (props) => (props.offset ? props.offset : 20),\n padding: theme.spacing(3),\n paddingTop: (props) =>\n props.popover ? theme.spacing(1) : theme.spacing(2),\n paddingRight: theme.spacing(2),\n background: theme.palette.common.white,\n boxShadow: `0px 24px 38px 3px rgb(0 0 0 / 14%), 0px 9px 46px 8px rgb(0 0 0 / 12%), 0px 11px 15px -7px rgb(0 0 0 / 20%)`,\n borderRadius: theme.spacing(1),\n zIndex: 99,\n minWidth: 190\n },\n close: {\n cursor: 'pointer'\n },\n displayHeader: {\n position: 'absolute',\n right: theme.spacing(2),\n top: theme.spacing(1)\n }\n}));\n\nexport const TimelineHoverCard = (props) => {\n const { children } = props;\n const classes = useStyles(props);\n const { className, popover = true } = props;\n\n return (\n <div className={clsx(classes.root, className)}>\n <div className={classes.hover}>\n <div className={classes.displayHeader}>\n {popover && (\n <div className={classes.close}>\n <ChromeCloseIcon style={{ width: 10, height: 10 }} />\n </div>\n )}\n </div>\n {children}\n </div>\n </div>\n );\n};\n\nTimelineHoverCard.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n popover: PropTypes.bool,\n offset: PropTypes.number\n};\n","import React, { useState } from 'react';\nimport { lighten, makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n dot: {\n width: theme.spacing(2),\n height: theme.spacing(2),\n background: (props) =>\n props.color ? props.color : theme.palette.secondary.main,\n borderRadius: 50,\n margin: theme.spacing(2),\n color: theme.palette.common.white\n },\n hover: {\n position: 'relative'\n },\n title: {\n transform: 'rotate(90deg)',\n background: lighten(theme.palette.common.black, 0.8),\n borderRadius: 4,\n padding: theme.spacing(1),\n paddingTop: theme.spacing(0.5),\n paddingBottom: theme.spacing(0.5),\n marginTop: theme.spacing(1),\n textTransform: 'capitalize',\n position: 'absolute',\n top: 70,\n left: -31,\n width: 115\n }\n}));\n\nexport const TimelineDot = (props) => {\n const { hoverContent, title, hideLable = true } = props;\n const classes = useStyles(props);\n\n const [hover, setHover] = useState(false);\n\n return (\n <div>\n <div className={classes.dot}>\n <div\n className={classes.hover}\n style={{ display: hover ? 'inline' : 'none' }}\n >\n {hoverContent}\n </div>\n </div>\n {!hideLable && (\n <div className={classes.title}>\n <Typography>\n <span style={{ fontWeight: 700 }}> {title}</span>\n </Typography>\n </div>\n )}\n </div>\n );\n};\n\nTimelineDot.propTypes = {\n hoverContent: PropTypes.node,\n title: PropTypes.string,\n hideLable: PropTypes.bool,\n color: PropTypes.string\n};\n","import React from 'react';\nimport {\n makeStyles,\n lighten,\n useTheme,\n Typography,\n Divider\n} from '@material-ui/core';\nimport { TimelineToken } from './modified/TimelineToken';\nimport {\n CustomListIcon,\n AlarmClockIcon,\n SendIcon,\n SpeedHighIcon,\n BankIcon,\n MoneyIcon,\n MessageIcon,\n DietPlanNotebookIcon\n} from '@fluentui/react-icons';\nimport { colors } from '../../../utilities/style/colors';\nimport { TimelineHoverCard } from './TimelineHoverCard';\nimport { TimelineDot } from './TimelineDot';\nimport { TimelineStatus } from './TimelineStatus';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n height: 200\n },\n timelineWrapper: {\n background: lighten(theme.palette.secondary.main, 0.7),\n height: 40,\n borderRadius: 50,\n position: (props) => (props.relative ? 'relative' : 'absolute')\n },\n token: {\n position: (props) => (props.relative ? 'relative' : 'absolute'),\n top: (props) => props.top - 9,\n left: (props) => props.left - 2,\n transition: '1s',\n cursor: 'pointer',\n '&:hover': {}\n },\n // summaryRoot: {\n // display: 'flex',\n // flexDirection: 'column',\n // alignItems: 'center',\n // color: 'grey',\n\n // },\n summaryRoot: {\n //marginRight: theme.spacing(4),\n //width: 100\n },\n negativeMargin: {\n marginTop: -6\n },\n titleContainer: {\n textOverflow: 'ellipsis',\n //background: lighten(theme.palette.common.black, 0.9),\n overflow: 'hidden',\n //color: theme.palette.common.white,\n borderRadius: 4,\n paddingLeft: 4,\n paddingRight: 2\n }\n }),\n { name: 'TimelineTokenSummary' }\n);\n\nexport const TimelineTokenSummary = (props) => {\n const {\n timelineItem,\n onClick,\n isHover,\n title,\n showLabel = true,\n dot,\n color,\n date,\n message,\n amount,\n user,\n status,\n summary,\n iconColor,\n showToken,\n details = true,\n icon\n } = props;\n const classes = useStyles(props);\n let type = '';\n const theme = useTheme();\n\n const TimelineSummary = ({ message }) => {\n return (\n <div>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n }}\n >\n {summary && (\n <div style={{ height: 24 }}>\n <Divider orientation='vertical' />\n </div>\n )}\n\n <div className={classes.summaryRoot} style={{ display: 'flex' }}>\n {/* <div className={classes.titleContainer} style={{width: scale}} > */}\n\n {/* <div className={classes.titleContainer} style={{height: details && 90}} > */}\n <div\n className={classes.titleContainer}\n style={{ height: summary && 90 }}\n >\n <Typography\n variant='caption'\n style={{\n fontWeight: 700,\n textOverflow: 'ellipsis',\n overflow: 'hidden'\n }}\n >\n {title}\n </Typography>\n\n {details && (\n <div>\n <LayoutUnit unit='nudge' />\n <Typography>\n {/* {amount && '$' } {amount} */}\n {amount}\n </Typography>\n <TimelineStatus status={status} />\n <div>\n <Typography variant='caption'>{message}</Typography>\n <div>\n <Typography variant='caption'>{user}</Typography>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n const NodeItem = ({ dot, icon }) => {\n return (\n <div className={classes.token} onClick={onClick}>\n {(dot || showToken) && (\n <TimelineToken\n color={colors.unity?.info?.hint}\n icon={icon}\n size='small'\n // iconColorOverride={theme.palette.info.light}\n iconColorOverride={iconColor}\n onClick={onClick}\n action\n isHover={isHover}\n hoverContainer={\n <TimelineHoverCard\n date={date}\n categoryColor={theme.palette.info.main}\n message={message}\n timelineItem={timelineItem}\n />\n }\n >\n {' '}\n </TimelineToken>\n )}\n {!dot && !summary && (\n <TimelineDot\n title={title}\n date={date}\n color={color}\n hoverContent={\n <TimelineHoverCard\n date={date}\n categoryColor={theme.palette.info.main}\n message={message}\n timelineItem={timelineItem}\n />\n }\n />\n )}\n {showLabel && !dot && <TimelineSummary message={message} />}\n </div>\n );\n };\n\n switch (timelineItem) {\n case 'Email':\n type = <NodeItem icon={SendIcon} dot={dot} />;\n break;\n case 'ServiceOrder':\n type = <NodeItem icon={CustomListIcon} dot={dot} />;\n break;\n case 'SMS':\n type = <NodeItem icon={MessageIcon} dot={dot} />;\n break;\n case 'Web Payment':\n type = <NodeItem icon={BankIcon} dot={dot} />;\n break;\n case 'Deposit - Regular':\n type = <NodeItem icon={AlarmClockIcon} dot={dot} />;\n break;\n case 'Start Read':\n type = <NodeItem icon={SpeedHighIcon} dot={dot} />;\n break;\n case 'Regular Bill':\n type = <NodeItem icon={DietPlanNotebookIcon} dot={dot} />;\n break;\n case 'Email Notify':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Payment':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Bill':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Service Order':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Late':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Letter':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n case 'Disc':\n type = <NodeItem icon={MoneyIcon} dot={dot} />;\n break;\n default:\n }\n\n return <NodeItem icon={icon ? icon : MoneyIcon} dot={dot} />;\n};\n\nTimelineTokenSummary.propTypes = {\n timelineItem: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n isHover: PropTypes.bool,\n title: PropTypes.string,\n showLabel: PropTypes.bool,\n dot: PropTypes.bool,\n color: PropTypes.string,\n date: PropTypes.string,\n message: PropTypes.string,\n amount: PropTypes.string,\n user: PropTypes.string,\n status: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n summary: PropTypes.bool,\n iconColor: PropTypes.string,\n showToken: PropTypes.bool,\n details: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.elementType, PropTypes.object])\n};\n","import React, { useState, memo } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { TimelineDateBar } from './TimelineDateBar';\nimport { TimelineTokenSummary } from './TimelineTokenSummary';\nimport { TimelineStatus } from './TimelineStatus';\nimport { TimelineHoverCard } from './TimelineHoverCard';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport PropTypes from 'prop-types'; // import PropTypes\nconst useStyles = makeStyles((theme) => ({\n root: {},\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n alignContent: 'space-between',\n alignItems: 'center'\n },\n label: { width: 46, textAlign: 'center' }\n}));\n// eslint-disable-next-line react/display-name\nexport const TimelineNode = memo((props) => {\n const [hover, setHover] = useState(false);\n const {\n data,\n height = 187,\n details = true,\n show = false,\n width,\n dot,\n iconColor,\n dotColor,\n test,\n icon\n } = props;\n const classes = useStyles(props);\n const maxLineLength = 8;\n const maxLines = 2;\n const capitalizeFirstLetter = (str) => {\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\n };\n const formatString = (str) => {\n let formattedStr = '';\n let lineCount = 0;\n let words = str.split(' ');\n for (let i = 0; i < words.length && lineCount < maxLines; i++) {\n let line = '';\n while (\n i < words.length &&\n line.length + words[i].length <= maxLineLength\n ) {\n line += capitalizeFirstLetter(words[i]) + ' ';\n i++;\n }\n if (line.length > maxLineLength) {\n line = line.slice(0, maxLineLength - 3) + '...';\n }\n formattedStr += line.trim() + '\\n';\n lineCount++;\n i--;\n }\n return formattedStr.trim();\n };\n return (\n <div\n onMouseDownCapture={() => setHover(!hover)}\n className={classes.root}\n style={{ background: details && 'whitesmoke', width: width }}\n >\n <div>{test} </div>\n {data.map((item) => {\n return (\n <div>\n {(hover || show) && (\n <TimelineHoverCard offset={0}>\n <div>\n <Typography variant='h6'>\n {item.details.shortDescription}\n </Typography>\n </div>\n <div>\n {item.details.data1 ? (\n <Typography variant='caption'>\n {item.details.data1}\n </Typography>\n ) : (\n <TimelineStatus status={item.details.data2} />\n )}\n </div>\n <div>\n <Typography variant='caption'>{item.details.date}</Typography>\n </div>\n <div>\n <Typography variant='caption'>\n {item.details.data3}\n </Typography>\n </div>\n </TimelineHoverCard>\n )}\n <div className={classes.wrapper} style={{ height: height - 4 }}>\n <div style={{ marginRight: -8 }}>\n <TimelineTokenSummary\n dot={dot}\n color={dotColor}\n relative\n timelineItem={item.details.transactionType}\n iconColor={iconColor}\n //timelineItem=\"Email\"\n icon={icon}\n removeHeight\n />\n </div>\n <div\n className={classes.label}\n style={{ marginTop: !details && -3 }}\n >\n {dot && (\n <Typography\n variant='subtitle2'\n style={{ lineHeight: '0.9rem' }}\n >\n {formatString(item.details.shortDescription)}\n </Typography>\n )}\n </div>\n {details && <LayoutUnit unit='nudge' />}\n {details && (\n <div className={classes.wrapper}>\n <div>\n {item.details.data1 &&\n item.details.data1.toString().trim() !== '' ? (\n <Typography variant='caption'>\n {item.details.data1}\n </Typography>\n ) : (\n <TimelineStatus status={Number(item.details.data2)} />\n )}\n </div>\n <div>\n <Typography variant='caption'>\n {item.details.date}\n </Typography>\n </div>\n <div>\n <Typography variant='caption'>\n {item.details.data3}\n </Typography>\n </div>\n </div>\n )}\n </div>\n {details && (\n <div>\n <TimelineDateBar\n month={Number(item.date.toString().charAt(0))}\n />\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n});\n\n// Define propTypes\nTimelineNode.propTypes = {\n data: PropTypes.array.isRequired,\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n details: PropTypes.bool,\n show: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool\n ]),\n dot: PropTypes.bool,\n iconColor: PropTypes.string,\n dotColor: PropTypes.string,\n test: PropTypes.string,\n icon: PropTypes.element\n};\n","import React from 'react';\nimport { makeStyles, lighten } from '@material-ui/core';\nimport { getCategoryColor } from '../../../utilities/style/colorConverter';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types'; // import PropTypes\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {},\n timelineWrapper: {\n background: lighten(theme.palette.secondary.main, 0.7),\n height: 40,\n borderRadius: 50\n //width: 800\n //position: 'absolute'\n },\n dot: {\n width: 30,\n height: 30,\n borderRadius: 50\n },\n colorOne: {\n background: lighten(theme.palette.success.main, 0.8)\n },\n colorTwo: {\n background: lighten(theme.palette.info.main, 0.8)\n },\n colorThree: {\n background: lighten(theme.palette.secondary.main, 0.9)\n },\n colorFour: {\n background: getCategoryColor('four')\n },\n colorFive: {\n background: getCategoryColor('five')\n },\n colorSix: {\n background: getCategoryColor('six')\n },\n colorSeven: {\n background: lighten(theme.palette.warning.main, 0.9)\n }\n }),\n { name: 'Timeline' }\n);\n\nexport const TimelineWrapper = ({ style, timeline }) => {\n const classes = useStyles();\n let type = '';\n switch (timeline) {\n case 1:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorOne)}\n style={style}\n />\n );\n break;\n case 2:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorTwo)}\n style={style}\n />\n );\n break;\n case 3:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorThree)}\n style={style}\n />\n );\n break;\n case 4:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorFour)}\n style={style}\n />\n );\n break;\n case 5:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorFive)}\n style={style}\n />\n );\n break;\n case 6:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorSix)}\n style={style}\n />\n );\n break;\n case 7:\n type = (\n <div\n className={clsx(classes.timelineWrapper, classes.colorSeven)}\n style={style}\n />\n );\n break;\n default:\n }\n\n return type;\n};\n\n// Define propTypes\nTimelineWrapper.propTypes = {\n style: PropTypes.object,\n timeline: PropTypes.oneOf([1, 2, 3, 4, 5, 6, 7]).isRequired\n};\n","import React, { useState } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { TimelineHoverCard } from './TimelineHoverCard';\nimport { TimelineStatus } from './TimelineStatus';\nimport PropTypes from 'prop-types'; // import PropTypes\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n cursor: 'pointer'\n },\n wrapper: {\n width: 130,\n marginBottom: theme.spacing(2)\n }\n}));\n\nexport const MultiDot = (props) => {\n const { map, number } = props;\n const classes = useStyles(props);\n const { className } = props;\n\n const [hover, setHover] = useState(false);\n\n return (\n <div\n className={clsx(classes.root, className)}\n onMouseDownCapture={() => setHover(!hover)}\n >\n <div\n style={{\n paddingLeft: 16,\n paddingRight: 16,\n paddingTop: 10,\n paddingBottom: 10,\n background: '#918296',\n borderRadius: 50,\n color: 'white'\n }}\n >\n <Typography variant='subtitle2'> {number} </Typography>\n </div>\n {hover && (\n <TimelineHoverCard>\n {map.map((item) => {\n return (\n <div className={classes.wrapper}>\n <Typography variant='subtitle2'>\n {item.details.shortDescription}\n </Typography>\n <Typography variant='caption'> {item.details.date} </Typography>\n <TimelineStatus status={item.details.status} />\n </div>\n );\n })}\n </TimelineHoverCard>\n )}\n </div>\n );\n};\n\n// Define propTypes\nMultiDot.propTypes = {\n map: PropTypes.arrayOf(\n PropTypes.shape({\n details: PropTypes.shape({\n shortDescription: PropTypes.string.isRequired,\n date: PropTypes.string.isRequired,\n status: PropTypes.string.isRequired\n }).isRequired\n })\n ).isRequired,\n number: PropTypes.number.isRequired,\n className: PropTypes.string\n};\n","import React, { useState } from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core';\nimport { TimelineHoverCard } from './TimelineHoverCard';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types'; // import PropTypes\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n minHeight: theme.spacing(1.25),\n minWidth: theme.spacing(1.25),\n borderRadius: 25,\n cursor: (props) => props.hover && 'pointer'\n },\n multi: {\n padding: 11,\n paddingTop: 5,\n paddingBottom: 5,\n color: theme.palette.common.white\n }\n}));\n\nexport const VisualizationDot = (props) => {\n const theme = useTheme();\n const classes = useStyles(props);\n const { type, children, hover, multi, noHover } = props;\n\n const [showHover, setShowHover] = useState();\n\n const DotWrapper = ({ color }) => {\n return (\n <div\n onMouseEnter={() => setShowHover(true)}\n onMouseLeave={() => setShowHover(false)}\n className={clsx(classes.root, multi && classes.multi)}\n style={{ background: color }}\n >\n {children}\n {showHover && !noHover && (\n <TimelineHoverCard popover={false}> {hover} </TimelineHoverCard>\n )}\n </div>\n );\n };\n\n let dot = theme.palette.primary.main;\n switch (type) {\n case 'Late Bill':\n dot = <DotWrapper color={theme.palette.warning.light} />;\n break;\n case 'Disconnect':\n dot = <DotWrapper color={theme.palette.error.main} />;\n break;\n case 'Letter Sent':\n dot = <DotWrapper color={theme.palette.warning.dark} />;\n break;\n case 'Payment':\n dot = <DotWrapper color={theme.palette.success.main} />;\n break;\n case 'Arrange Pay':\n dot = <DotWrapper color={theme.palette.warning.main} />;\n break;\n default:\n dot = <DotWrapper color={theme.palette.info.light} />;\n break;\n }\n return dot;\n};\n\n// Define propTypes\nVisualizationDot.propTypes = {\n type: PropTypes.string,\n children: PropTypes.node,\n hover: PropTypes.node,\n multi: PropTypes.bool,\n noHover: PropTypes.bool\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport clsx from 'clsx';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport PropTypes from 'prop-types'; // import PropTypes\n\nconst useStyles = makeStyles((theme) => ({\n root: {}\n}));\n\nexport const TimelinePreloaderNode = (props) => {\n const { children, shortView } = props;\n const classes = useStyles(props);\n const { className, longView } = props;\n\n return (\n <div className={clsx(classes.root, className)}>\n {shortView && (\n <div style={{ marginRight: 100, marginBottom: 40 }}>\n <LayoutUnit unit='nudge' />\n <div style={{ display: 'flex', justifyContent: 'center' }}>\n <Skeleton variant='circle' width={30} height={30} />\n </div>\n <LayoutUnit unit='nudge' />\n <div style={{ display: 'flex', justifyContent: 'center' }}>\n <Skeleton variant='rect' width={1} height={25} />\n </div>\n <Skeleton variant='text' />\n <Skeleton variant='text' />\n <LayoutUnit unit='sm' />\n <Skeleton variant='rect' width={80} height={6} />\n </div>\n )}\n\n {longView && (\n <div>\n <Skeleton variant='rect' width={800} height={45} />\n </div>\n )}\n </div>\n );\n};\n\n// Define propTypes\nTimelinePreloaderNode.propTypes = {\n children: PropTypes.node,\n shortView: PropTypes.bool,\n longView: PropTypes.bool,\n className: PropTypes.string\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport RangeSlider from 'react-range-slider-input';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n rangeSlider: {\n '& .range-slider__thumb': {\n width: theme.spacing(2.25),\n height: (props) => `calc(${props.margin}px + ${props.threads}px )`,\n borderRadius: theme.spacing(0.5),\n background:\n \"url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23333' viewBox='0 0 24 24'%3E%3Cpath d='M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z' /%3E%3C/svg%3E\\\") #fff\",\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n },\n '& .range-slider__range': {\n background: 'transparent',\n border: '4px solid #fff',\n boxSizing: 'border-box',\n boxShadow: '0 0 0 9999px rgba(194, 194, 194, 0.75)',\n zIndex: 0\n },\n height: (props) => `calc(${props.margin}px + ${props.threads}px )`,\n background: 'whitesmoke',\n overflow: 'hidden'\n }\n}));\n\nexport const DynamicRangeSlider = (props) => {\n const { children, ...otherProps } = props;\n const classes = useStyles(props);\n return <RangeSlider className={classes.rangeSlider} {...otherProps} />;\n};\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as LayoutUnit } from "./LayoutUnit-D4jJvonh.js";
|
|
2
|
-
import { t as PrimaryActionHeader } from "./PrimaryActionHeader-
|
|
2
|
+
import { t as PrimaryActionHeader } from "./PrimaryActionHeader-H5w3twaM.js";
|
|
3
3
|
import React, { useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { Box, Card, Grow, makeStyles } from "@material-ui/core";
|
|
5
5
|
import { CancelIcon } from "@fluentui/react-icons";
|
|
@@ -113,4 +113,4 @@ const EmailDisplay = (props) => {
|
|
|
113
113
|
|
|
114
114
|
//#endregion
|
|
115
115
|
export { SmsDisplay as n, EmailDisplay as t };
|
|
116
|
-
//# sourceMappingURL=EmailDisplay-
|
|
116
|
+
//# sourceMappingURL=EmailDisplay-DZHmPeiL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailDisplay-
|
|
1
|
+
{"version":3,"file":"EmailDisplay-DZHmPeiL.js","names":["useStyles"],"sources":["../src/UI/components/dataDisplay/SmsDisplay.jsx","../src/UI/components/dataDisplay/EmailDisplay.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { makeStyles, Box, Grow, Card } from '@material-ui/core';\nimport PhoneImage from '../../../assets/images/phone.png';\nimport { PrimaryActionHeader } from '../../utilityDisplay/utilityHeader/PrimaryActionHeader';\nimport { useTranslation } from 'react-i18next';\nimport { CancelIcon } from '@fluentui/react-icons';\n\nconst useStyles = makeStyles((theme) => ({\n messages: {\n flex: '1',\n // height: '100%',\n margin: '0 20px',\n overflow: 'hidden'\n },\n messagesBox: {\n paddingRight: '3%',\n paddingLeft: '3%',\n width: '23vw',\n height: '88%',\n overflowY: 'auto',\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'center'\n },\n message: {\n backgroundColor: '#E9E9EB',\n borderRadius: '10px',\n padding: '10px',\n marginBottom: '10px',\n alignSelf: 'flex-start',\n overflowWrap: 'break-word',\n margin: theme.spacing(1)\n },\n messageSection: {\n flex: '1',\n overflowY: 'auto',\n padding: '20px',\n backgroundImage: `url(${PhoneImage})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 'calc(100vh - 140px)' // Ensures the container takes full viewport height\n }\n}));\n\nexport const SmsDisplay = (props) => {\n const { messages = [], to, from, title, handleClose } = props;\n const classes = useStyles();\n const [messagesList, setMessagesList] = useState(messages);\n const { t } = useTranslation();\n\n const messagesBoxRef = useRef(null);\n\n const secondaryButtons = useMemo(() => {\n const buttons = [];\n if (handleClose) {\n buttons.push({\n label: t('Close'),\n component: CancelIcon,\n click: () => handleClose()\n });\n }\n return buttons;\n }, [t, handleClose]);\n\n useEffect(() => {\n if (messagesBoxRef.current) {\n messagesBoxRef.current.scrollTop = messagesBoxRef.current.scrollHeight;\n }\n }, [messagesList]);\n\n return (\n <>\n <Card square>\n <PrimaryActionHeader\n // key={`${selectedNode?.id}-${inSearch}`}\n // title={headerTitle}\n // buttonLabel={'Load'}\n // secondaryButtons={secondaryButtons}\n // handleClick={handlePrimaryAction}\n // single\n hidePAB={true}\n title={title}\n subheader={`To: ${to} . From: ${from}`}\n secondaryButtons={secondaryButtons}\n />\n </Card>\n <Box className={classes.messages}>\n <Box className={classes.messageSection}>\n <Box className={classes.messagesBox} ref={messagesBoxRef}>\n {messagesList.map((message, index) => (\n <Grow key={index} in={true} timeout={800}>\n <Box\n className={classes.message}\n dangerouslySetInnerHTML={{ __html: message }}\n />\n </Grow>\n ))}\n </Box>\n </Box>\n </Box>\n </>\n );\n};\n","import React, { useMemo } from 'react';\nimport { makeStyles, Card } from '@material-ui/core';\nimport ReactHtmlParser from 'react-html-parser';\nimport { PrimaryActionHeader } from '../../utilityDisplay/utilityHeader/PrimaryActionHeader';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport { useTranslation } from 'react-i18next';\nimport { CancelIcon } from '@fluentui/react-icons';\n\nconst useStyles = makeStyles((theme) => ({\n htmlContainer: { display: 'flex', justifyContent: 'center' }\n}));\n\nexport const EmailDisplay = (props) => {\n const { html = '', to, from, title, handleClose } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n const secondaryButtons = useMemo(() => {\n const buttons = [];\n if (handleClose) {\n buttons.push({\n label: t('Close'),\n component: CancelIcon,\n click: () => handleClose()\n });\n }\n return buttons;\n }, [t, handleClose]);\n\n return (\n <>\n <Card square>\n <PrimaryActionHeader\n // key={`${selectedNode?.id}-${inSearch}`}\n // title={headerTitle}\n // buttonLabel={'Load'}\n // secondaryButtons={secondaryButtons}\n // handleClick={handlePrimaryAction}\n // single\n hidePAB={true}\n title={title}\n subheader={`To: ${to} . From: ${from}`}\n secondaryButtons={secondaryButtons}\n />\n </Card>\n <LayoutUnit unit='sm' />\n <div className={classes.htmlContainer}>{ReactHtmlParser(html)}</div>\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAOA,MAAMA,cAAY,YAAY,WAAW;CACvC,UAAU;EACR,MAAM;EAEN,QAAQ;EACR,UAAU;EACX;CACD,aAAa;EACX,cAAc;EACd,aAAa;EACb,OAAO;EACP,QAAQ;EACR,WAAW;EACX,WAAW;EACX,SAAS;EACT,gBAAgB;EACjB;CACD,SAAS;EACP,iBAAiB;EACjB,cAAc;EACd,SAAS;EACT,cAAc;EACd,WAAW;EACX,cAAc;EACd,QAAQ,MAAM,QAAQ,EAAE;EACzB;CACD,gBAAgB;EACd,MAAM;EACN,WAAW;EACX,SAAS;EACT,iBAAiB,OAAO,WAAW;EACnC,gBAAgB;EAChB,kBAAkB;EAClB,oBAAoB;EACpB,UAAU;EACV,SAAS;EACT,YAAY;EACZ,gBAAgB;EAChB,QAAQ;EACT;CACF,EAAE;AAEH,MAAa,cAAc,UAAU;CACnC,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,MAAM,OAAO,gBAAgB;CACxD,MAAM,UAAUA,aAAW;CAC3B,MAAM,CAAC,cAAc,mBAAmB,SAAS,SAAS;CAC1D,MAAM,EAAE,MAAM,gBAAgB;CAE9B,MAAM,iBAAiB,OAAO,KAAK;CAEnC,MAAM,mBAAmB,cAAc;EACrC,MAAM,UAAU,EAAE;AAClB,MAAI,YACF,SAAQ,KAAK;GACX,OAAO,EAAE,QAAQ;GACjB,WAAW;GACX,aAAa,aAAa;GAC3B,CAAC;AAEJ,SAAO;IACN,CAAC,GAAG,YAAY,CAAC;AAEpB,iBAAgB;AACd,MAAI,eAAe,QACjB,gBAAe,QAAQ,YAAY,eAAe,QAAQ;IAE3D,CAAC,aAAa,CAAC;AAElB,QACE,0DACE,oCAAC,QAAK,gBACJ,oCAAC;EAOC,SAAS;EACF;EACP,WAAW,OAAO,GAAG,WAAW;EACd;GAClB,CACG,EACP,oCAAC,OAAI,WAAW,QAAQ,YACtB,oCAAC,OAAI,WAAW,QAAQ,kBACtB,oCAAC;EAAI,WAAW,QAAQ;EAAa,KAAK;IACvC,aAAa,KAAK,SAAS,UAC1B,oCAAC;EAAK,KAAK;EAAO,IAAI;EAAM,SAAS;IACnC,oCAAC;EACC,WAAW,QAAQ;EACnB,yBAAyB,EAAE,QAAQ,SAAS;GAC5C,CACG,CACP,CACE,CACF,CACF,CACL;;;;;ACjGP,MAAM,YAAY,YAAY,WAAW,EACvC,eAAe;CAAE,SAAS;CAAQ,gBAAgB;CAAU,EAC7D,EAAE;AAEH,MAAa,gBAAgB,UAAU;CACrC,MAAM,EAAE,OAAO,IAAI,IAAI,MAAM,OAAO,gBAAgB;CACpD,MAAM,UAAU,WAAW;CAC3B,MAAM,EAAE,MAAM,gBAAgB;CAE9B,MAAM,mBAAmB,cAAc;EACrC,MAAM,UAAU,EAAE;AAClB,MAAI,YACF,SAAQ,KAAK;GACX,OAAO,EAAE,QAAQ;GACjB,WAAW;GACX,aAAa,aAAa;GAC3B,CAAC;AAEJ,SAAO;IACN,CAAC,GAAG,YAAY,CAAC;AAEpB,QACE,0DACE,oCAAC,QAAK,gBACJ,oCAAC;EAOC,SAAS;EACF;EACP,WAAW,OAAO,GAAG,WAAW;EACd;GAClB,CACG,EACP,oCAAC,cAAW,MAAK,OAAO,EACxB,oCAAC,SAAI,WAAW,QAAQ,iBAAgB,gBAAgB,KAAK,CAAO,CACnE"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { r as getSanitizedName } from "./entityUtilities-_8w-Zjs3.js";
|
|
2
|
-
import { t as Typography$1 } from "./Typography-
|
|
2
|
+
import { t as Typography$1 } from "./Typography-FuShOop3.js";
|
|
3
3
|
import { n as SideSheet } from "./SideSheet-CDXVa_Kr.js";
|
|
4
4
|
import { t as StatusChip } from "./StatusChip-DZAN88VU.js";
|
|
5
5
|
import { i as executeQueryWithParameters, t as executeQueryAdHoc } from "./methodUtils-CDx9usdO.js";
|
|
6
|
-
import { t as AmbientCard } from "./AmbientCard-
|
|
6
|
+
import { t as AmbientCard } from "./AmbientCard-DhAiVDYD.js";
|
|
7
7
|
import { t as usePromotedMethodEntity } from "./usePromotedMethodEntity-B4rk75tH.js";
|
|
8
8
|
import { t as LinearProgress$1 } from "./LinearProgress-CpJeIaEP.js";
|
|
9
9
|
import { t as AmbientAlert } from "./AmbientAlert-DcYkGCUm.js";
|
|
10
10
|
import { t as EmptyStateDisplay } from "./EmptyStateDisplay-YOwCw38_.js";
|
|
11
|
-
import { t as FluentListItem } from "./FluentListItem-
|
|
11
|
+
import { t as FluentListItem } from "./FluentListItem-1fzW--Dq.js";
|
|
12
12
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
13
13
|
import { Box, Chip, Slide } from "@material-ui/core";
|
|
14
14
|
import { useHistory } from "react-router-dom";
|
|
@@ -331,4 +331,4 @@ const ExportSidesheet = (props) => {
|
|
|
331
331
|
|
|
332
332
|
//#endregion
|
|
333
333
|
export { VisualSearchObject as n, useUdpExport as r, ExportSidesheet as t };
|
|
334
|
-
//# sourceMappingURL=ExportSidesheet-
|
|
334
|
+
//# sourceMappingURL=ExportSidesheet-BQiNzxN9.js.map
|