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
package/dist/udp/export/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as VisualSearchObject, r as useUdpExport, t as ExportSidesheet } from "../../ExportSidesheet-
|
|
1
|
+
import { n as VisualSearchObject, r as useUdpExport, t as ExportSidesheet } from "../../ExportSidesheet-BQiNzxN9.js";
|
|
2
2
|
import { t as MyExportsPage } from "../../MyExportsPage-Ckti0gqK.js";
|
|
3
3
|
|
|
4
4
|
export { ExportSidesheet, MyExportsPage, VisualSearchObject, useUdpExport };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as TableContainer } from "../../TableContainer-B0IAjIA3.js";
|
|
2
|
-
import { a as handleTextFileUpload, i as handleJsonFileUpload, n as FileImportConfigCard, r as handleExcelFileUpload, t as ImportDataFromFileMapping } from "../../ImportDataFromFileMapping-
|
|
2
|
+
import { a as handleTextFileUpload, i as handleJsonFileUpload, n as FileImportConfigCard, r as handleExcelFileUpload, t as ImportDataFromFileMapping } from "../../ImportDataFromFileMapping-BIcQmKll.js";
|
|
3
3
|
import React, { useMemo } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/udp/fileImportMapping/SampleFileImportGrid.jsx
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as UdpDataBrowserPage, r as UdpDataBrowserPage_default } from "../../../UdpDataBrowserPage-
|
|
1
|
+
import { n as UdpDataBrowserPage, r as UdpDataBrowserPage_default } from "../../../UdpDataBrowserPage-3fiOCSkx.js";
|
|
2
2
|
|
|
3
3
|
export { UdpDataBrowserPage, UdpDataBrowserPage_default as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as UdpImportFromFileMappingPage_default } from "../../../UdpImportFromFileMappingPage-
|
|
1
|
+
import { n as UdpImportFromFileMappingPage_default } from "../../../UdpImportFromFileMappingPage-BxGvGFua.js";
|
|
2
2
|
|
|
3
3
|
export { UdpImportFromFileMappingPage_default as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as UdpInquiryMaintenanceEnginePage_default } from "../../../UdpInquiryMaintenanceEnginePage-
|
|
1
|
+
import { n as UdpInquiryMaintenanceEnginePage_default } from "../../../UdpInquiryMaintenanceEnginePage-CSf7jB35.js";
|
|
2
2
|
|
|
3
3
|
export { UdpInquiryMaintenanceEnginePage_default as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as UdpMaintenanceEnginePage, r as UdpMaintenanceEnginePage_default } from "../../../UdpMaintenanceEnginePage-
|
|
1
|
+
import { n as UdpMaintenanceEnginePage, r as UdpMaintenanceEnginePage_default } from "../../../UdpMaintenanceEnginePage-C8NLZSPb.js";
|
|
2
2
|
|
|
3
3
|
export { UdpMaintenanceEnginePage, UdpMaintenanceEnginePage_default as default };
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { t as UdpMaintenanceEnginePage_exports } from "../../../UdpMaintenanceEnginePage-
|
|
2
|
-
import { t as UdpNotesPage_exports } from "../../../UdpNotesPage-
|
|
1
|
+
import { t as UdpMaintenanceEnginePage_exports } from "../../../UdpMaintenanceEnginePage-C8NLZSPb.js";
|
|
2
|
+
import { t as UdpNotesPage_exports } from "../../../UdpNotesPage-BABI4D2S.js";
|
|
3
3
|
import { t as UdpVerticalManagementPage_exports } from "../../../UdpVerticalManagementPage-CQeGGUyp.js";
|
|
4
4
|
import { t as UdpGridPanelManagementPage_exports } from "../../../UdpGridPanelManagementPage-BYdQNWN3.js";
|
|
5
|
-
import { t as UdpInquiryMaintenanceEnginePage_exports } from "../../../UdpInquiryMaintenanceEnginePage-
|
|
5
|
+
import { t as UdpInquiryMaintenanceEnginePage_exports } from "../../../UdpInquiryMaintenanceEnginePage-CSf7jB35.js";
|
|
6
6
|
import { t as UdpReportsPage_exports } from "../../../UdpReportsPage-CO1460ws.js";
|
|
7
7
|
import { t as DonutChartWidget_exports } from "../../../DonutChartWidget-C0XsTjF9.js";
|
|
8
8
|
import { t as SparklineWidget_exports } from "../../../SparklineWidget-Bbeyk07x.js";
|
|
9
9
|
import { t as ProgressBarWidget_exports } from "../../../ProgressBarWidget-gY0_iFB-.js";
|
|
10
|
-
import { t as RecentlyLoadedNodesWidget_exports } from "../../../RecentlyLoadedNodesWidget-
|
|
10
|
+
import { t as RecentlyLoadedNodesWidget_exports } from "../../../RecentlyLoadedNodesWidget-Kt5BElrK.js";
|
|
11
11
|
import { t as ChatUDP_exports } from "../../../ChatUDP-BHtX1Ipw.js";
|
|
12
|
-
import { t as UdpDataBrowserPage_exports } from "../../../UdpDataBrowserPage-
|
|
13
|
-
import { t as UdpRemindersPage_exports } from "../../../UdpRemindersPage-
|
|
12
|
+
import { t as UdpDataBrowserPage_exports } from "../../../UdpDataBrowserPage-3fiOCSkx.js";
|
|
13
|
+
import { t as UdpRemindersPage_exports } from "../../../UdpRemindersPage-DuS3aPUk.js";
|
|
14
14
|
import { t as RemindersWidget_exports } from "../../../RemindersWidget-u_oonyMf.js";
|
|
15
15
|
import { t as UdpFormsPublicForm_exports } from "../../../UdpFormsPublicForm-DDCpLG6l.js";
|
|
16
16
|
import { t as UdpFormsPrivateForm_exports } from "../../../UdpFormsPrivateForm-Cy3PXVju.js";
|
|
17
17
|
import { t as UdpFormsListPage_exports } from "../../../UdpFormsListPage-BuoLTPWK.js";
|
|
18
18
|
import { t as UdpFormsBuilderPage_exports } from "../../../UdpFormsBuilderPage-BobXHgd_.js";
|
|
19
|
-
import { t as UdpImportFromFileMappingPage_exports } from "../../../UdpImportFromFileMappingPage-
|
|
20
|
-
import { t as UdpAuditEvents_exports } from "../../../UdpAuditEvents-
|
|
19
|
+
import { t as UdpImportFromFileMappingPage_exports } from "../../../UdpImportFromFileMappingPage-BxGvGFua.js";
|
|
20
|
+
import { t as UdpAuditEvents_exports } from "../../../UdpAuditEvents-DotSR4R9.js";
|
|
21
21
|
import { t as UdpTransactionTypesPage_exports } from "../../../UdpTransactionTypesPage-DgFxT4pz.js";
|
|
22
|
-
import { t as UdpTransactionsPage_exports } from "../../../UdpTransactionsPage-
|
|
22
|
+
import { t as UdpTransactionsPage_exports } from "../../../UdpTransactionsPage-DXt_i8vP.js";
|
|
23
23
|
|
|
24
24
|
//#region src/udp/pages/UdpPages/index.ts
|
|
25
25
|
const UdpPages = {
|
|
@@ -21,7 +21,7 @@ const UdpPagesLoaders = {
|
|
|
21
21
|
UdpFormsBuilderPage: () => import("../UdpFormsBuilderPage/index.js"),
|
|
22
22
|
UdpFormsListPage: () => import("../UdpFormsListPage/index.js"),
|
|
23
23
|
UdpImportFromFileMappingPage: () => import("../UdpImportFromFileMappingPage/index.js"),
|
|
24
|
-
UdpAuditEventsPage: () => import("../../../UdpAuditEventsPage-
|
|
24
|
+
UdpAuditEventsPage: () => import("../../../UdpAuditEventsPage-BtsmPFyR.js"),
|
|
25
25
|
UdpTransactionTypesPage: () => import("../UdpTransactionTypesPage/index.js"),
|
|
26
26
|
UdpTransactionsPage: () => import("../UdpTransactionsPage/index.js")
|
|
27
27
|
};
|
package/dist/uploader/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { t as DragDropFileUpload } from "../DragDropFileUpload-CVnUu-6f.js";
|
|
2
|
-
import { n as FileType, t as Attachments } from "../uploader-
|
|
2
|
+
import { n as FileType, t as Attachments } from "../uploader-BdeUKdYW.js";
|
|
3
3
|
|
|
4
4
|
export { Attachments, DragDropFileUpload, FileType };
|
|
@@ -2,7 +2,7 @@ import { t as ConfigService } from "./configService-C4uoG3wj.js";
|
|
|
2
2
|
import { i as useHandleAxiosSnackbar } from "./apiHelpers-WIR8pqy0.js";
|
|
3
3
|
import { t as apiMutate } from "./useAxiosMutate-DeqKSi5z.js";
|
|
4
4
|
import { t as FluentIconButton } from "./FluentIconButton-Dc95mE3v.js";
|
|
5
|
-
import { t as AmbientCard } from "./AmbientCard-
|
|
5
|
+
import { t as AmbientCard } from "./AmbientCard-DhAiVDYD.js";
|
|
6
6
|
import { t as FluentDialog } from "./FluentDialog-B5ZxvX1E.js";
|
|
7
7
|
import { t as LinearProgress$1 } from "./LinearProgress-CpJeIaEP.js";
|
|
8
8
|
import { t as Box$1 } from "./Box-Colr5GEl.js";
|
|
@@ -311,4 +311,4 @@ const Attachments = ({ allowedExtensions, MAX_FILE_SIZE_MB, filePreview, setFile
|
|
|
311
311
|
|
|
312
312
|
//#endregion
|
|
313
313
|
export { FileType as n, Attachments as t };
|
|
314
|
-
//# sourceMappingURL=uploader-
|
|
314
|
+
//# sourceMappingURL=uploader-BdeUKdYW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploader-YWjDebFN.js","names":["useStyles","FileProfile","ImagePreview","attachmentType","Box","DeleteIcon","LinearProgress"],"sources":["../src/uploader/FileProfile.jsx","../src/uploader/ImagePreview.jsx","../src/uploader/FileType.jsx","../src/uploader/enums/systemEnums.ts","../src/uploader/Attachments.jsx"],"sourcesContent":["import React from 'react'\nimport { Typography, makeStyles } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'row'\n },\n prefix: {\n fontWeight: 600\n },\n title: {\n flex: 1\n },\n detail: {\n marginLeft: theme.spacing(2)\n }\n}))\n\nconst FileProfile = (props) => {\n const classes = useStyles()\n const { children, fileName, fileType, size, lastModifiedDate } = props\n return (\n <div>\n <div className={classes.root}>\n <Typography variant='body1' className={classes.title}>\n <strong>{fileName}</strong>\n </Typography>\n <Typography variant='caption' className={classes.detail}>\n <span className={classes.prefix}>Type:</span> {fileType}\n </Typography>\n <Typography variant='caption' className={classes.detail}>\n <span className={classes.prefix}>Size:</span> {size}\n </Typography>\n </div>\n {children}\n {/* Last modified not supported in FireFox */}\n {/* <Typography variant=\"caption\">\n <span className={classes.prefix}>Last Modified:</span>{' '}\n {lastModifiedDate}\n </Typography> */}\n </div>\n )\n}\nexport default FileProfile\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n justifyContent: 'center'\n },\n image: {\n maxWidth: 465\n }\n}))\n\nconst ImagePreview = (props) => {\n const { image } = props\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n <img className={classes.image} src={image} alt='upload preview' />\n </div>\n )\n}\nexport default ImagePreview\n","import React from 'react'\nimport FileProfile from './FileProfile'\nimport ImagePreview from './ImagePreview'\n\nexport const FileType = (props) => {\n let type = ''\n const { fileType, image, fileName, size, lastModifiedDate } = props\n\n switch (fileType) {\n case 'pdf':\n type = (\n <FileProfile\n fileType={fileType}\n fileName={fileName}\n size={size}\n lastModifiedDate={lastModifiedDate}\n />\n )\n break\n case 'doc':\n type = (\n <FileProfile\n fileType={fileType}\n fileName={fileName}\n size={size}\n lastModifiedDate={lastModifiedDate}\n />\n )\n break\n case 'png':\n type = (\n <FileProfile\n fileType={fileType}\n fileName={fileName}\n size={size}\n lastModifiedDate={lastModifiedDate}\n >\n <ImagePreview image={image} />\n </FileProfile>\n )\n break\n case 'jpg':\n type = (\n <FileProfile\n fileType={fileType}\n fileName={fileName}\n size={size}\n lastModifiedDate={lastModifiedDate}\n >\n <ImagePreview image={image} />\n </FileProfile>\n )\n break\n case 'jpeg':\n type = (\n <FileProfile\n fileType={fileType}\n fileName={fileName}\n size={size}\n lastModifiedDate={lastModifiedDate}\n >\n <ImagePreview image={image} />\n </FileProfile>\n )\n break\n\n default:\n }\n\n return type\n}\n","export enum APIStatusCode {\n Success = 200,\n Created = 201,\n Accepted = 202,\n NoContent = 204,\n Forbidden = 403,\n}\n\nexport enum AttachmentType {\n SiteInstruction = 1,\n RFI = 2\n}\n\nexport enum AttachmentAction {\n None = 1,\n Delete = 2,\n Remove = 3\n};\n","import React, { useCallback, useState } from 'react';\nimport { apiMutate } from '../utilities';\nimport { Box } from '../UI';\nimport { AmbientCard } from '../UI/surfaces/cards/AmbientCard';\nimport { DragDropFileUpload } from './DragDropFileUpload';\nimport { LinearProgress } from '../UI';\nimport { List, ListItem, IconButton } from '@material-ui/core';\nimport { ConfigService } from '../configService/index';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { DownloadIcon, ChromeCloseIcon } from '@fluentui/react-icons';\nimport { useTranslation } from 'react-i18next';\nimport { useHandleAxiosSnackbar } from '../utilities';\nimport { Divider } from '@material-ui/core';\nimport { AttachmentAction } from './enums/systemEnums';\nimport { FluentDialog } from '../UI';\nimport { FluentIconButton } from '../UI/inputs/buttons';\nimport './Attachments.css';\nimport { AmbientAutoComplete } from '../UI/inputs/textField';\n\nconst removeDuplicateFiles = (incomingFiles, existingFiles) => {\n const uniqueFiles = [];\n const duplicateFiles = [];\n\n incomingFiles.forEach((newFile) => {\n const exists = existingFiles.some(\n (existingFile) =>\n existingFile.name === newFile.name ||\n existingFile.fileName === newFile.name\n );\n\n if (exists) {\n duplicateFiles.push(newFile);\n } else {\n uniqueFiles.push(newFile);\n }\n });\n\n return { uniqueFiles, duplicateFiles };\n};\n\nexport const Attachments = ({\n allowedExtensions,\n MAX_FILE_SIZE_MB,\n filePreview,\n setFilePreview,\n currentAttachments,\n setCurrentAttachments,\n attachmentTypes,\n attachmentType,\n setAttachmentType,\n attachmentProgress,\n setAttachmentProgress,\n previousAttachments,\n setPreviousAttachments\n}) => {\n const [attachmentDialogOpen, setAttachmentDialogOpen] = useState(false);\n const [attachmentToDelete, setAttachmentToDelete] = useState(null);\n const [attachmentToDeleteIndex, setAttachmentToDeleteIndex] = useState(0);\n const [attachmentAction, setAttachmentAction] = useState(\n AttachmentAction.None\n );\n\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n const { t } = useTranslation();\n\n const initiateAttachmentAction = useCallback((action, file, index) => {\n setAttachmentAction(action);\n setAttachmentToDelete(file);\n setAttachmentToDeleteIndex(index);\n setAttachmentDialogOpen(true);\n }, []);\n\n const handleAttachmentDeleteClick = useCallback(\n (file, index) => {\n initiateAttachmentAction(AttachmentAction.Delete, file, index);\n },\n [initiateAttachmentAction]\n );\n\n const handleAttachmentRemoveClick = useCallback(\n (file, index) => {\n initiateAttachmentAction(AttachmentAction.Remove, file, index);\n },\n [initiateAttachmentAction]\n );\n\n const handleCloseAttachmentDialog = useCallback(() => {\n setAttachmentAction(AttachmentAction.None);\n setAttachmentToDelete({});\n setAttachmentDialogOpen(false);\n }, []);\n\n const removeAttachmentFromList = useCallback(\n (attachments, setAttachments) => {\n setAttachments((prev) =>\n prev.filter((item, i) => i !== attachmentToDeleteIndex)\n );\n handleSuccessSnackbar(t('Attachment Removed Successfully'));\n handleCloseAttachmentDialog();\n },\n [\n attachmentToDeleteIndex,\n handleSuccessSnackbar,\n handleCloseAttachmentDialog,\n t\n ]\n );\n\n const deleteAttachment = useCallback(async () => {\n try {\n setAttachmentProgress(true);\n const filePayload = { ...attachmentToDelete, isDeleted: true };\n\n await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAttachment/${attachmentToDelete.transactionAttachmentId}`,\n {\n method: 'put',\n data: filePayload\n }\n );\n removeAttachmentFromList(previousAttachments, setPreviousAttachments);\n } catch (error) {\n handleErrorSnackbar(\n 'Failed to delete attachment',\n 'We encountered a system error while trying to delete the file. Please try again.'\n );\n console.error(error);\n } finally {\n setAttachmentProgress(false);\n setAttachmentDialogOpen(false);\n }\n }, [\n attachmentToDelete,\n removeAttachmentFromList,\n previousAttachments,\n setPreviousAttachments,\n setAttachmentProgress,\n handleErrorSnackbar\n ]);\n\n const handleDownloadFile = useCallback(async (file) => {\n try {\n const response = await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAttachment/${file.transactionAttachmentId}/udpDriveFile/download`,\n {}\n );\n const url = response.data.link;\n const link = document.createElement('a');\n link.href = url;\n link.download = file.fileName ?? file.name;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } catch (e) {\n console.error('Download failed', e);\n }\n }, []);\n\n const handleAddFiles = useCallback(\n async (files) => {\n const incomingFiles = Array.from(files);\n const validFiles = [];\n const invalidFiles = [];\n\n incomingFiles.forEach((file) => {\n const ext = file.name.split('.').pop().toLowerCase();\n const sizeInMB = file.size / (1024 * 1024);\n\n if (!allowedExtensions.includes(ext)) {\n invalidFiles.push(`${file.name} (Invalid file type)`);\n } else if (sizeInMB > MAX_FILE_SIZE_MB) {\n invalidFiles.push(`${file.name} (Exceeds ${MAX_FILE_SIZE_MB} MB)`);\n } else {\n validFiles.push(file);\n }\n });\n\n const allExistingFiles = [...previousAttachments, ...currentAttachments];\n const { uniqueFiles, duplicateFiles } = removeDuplicateFiles(\n validFiles,\n allExistingFiles\n );\n\n if (uniqueFiles.length > 0) {\n setCurrentAttachments((prev) => [...prev, ...uniqueFiles]);\n }\n\n if (invalidFiles.length > 0) {\n handleErrorSnackbar(\n 'Files not added',\n `The following files had errors:\\n${invalidFiles.join('\\n')}`\n );\n setFilePreview(true);\n }\n\n if (duplicateFiles.length > 0) {\n const duplicateNames = duplicateFiles.map((f) => f.name).join(', ');\n handleErrorSnackbar(\n 'Duplicates skipped',\n `The following files already exist and were not added: ${duplicateNames}`\n );\n }\n },\n [\n allowedExtensions,\n MAX_FILE_SIZE_MB,\n previousAttachments,\n currentAttachments,\n setCurrentAttachments,\n handleErrorSnackbar,\n setFilePreview\n ]\n );\n\n const handleAttachmentTypeSelect = useCallback(\n (attachmentType) => {\n setAttachmentType(attachmentType);\n },\n [setAttachmentType]\n );\n\n const renderCurrentAttachments = () => {\n return currentAttachments.map((file, index) => (\n <React.Fragment key={index}>\n {index > 0 && <Divider component='li' />}\n <ListItem\n className='list-separator-item'\n style={{ display: 'flex', justifyContent: 'space-between' }}\n >\n <Box>{file.fileName ? file.fileName : file.name}</Box>\n <Box>\n <IconButton\n onClick={() => handleAttachmentRemoveClick(file, index)}\n >\n <DeleteIcon />\n </IconButton>\n </Box>\n </ListItem>\n </React.Fragment>\n ));\n };\n\n const renderPreviousAttachments = () => {\n return previousAttachments.map((file, index) => (\n <ListItem\n key={index}\n style={{ display: 'flex', justifyContent: 'space-between' }}\n >\n <Box>{file.fileName ?? file.name}</Box>\n <Box>\n <IconButton onClick={() => handleAttachmentDeleteClick(file, index)}>\n <DeleteIcon />\n </IconButton>\n <IconButton onClick={() => handleDownloadFile(file)}>\n <DownloadIcon />\n </IconButton>\n </Box>\n </ListItem>\n ));\n };\n\n const renderConfirmationContent = () => {\n const isDeleteAction = attachmentAction === AttachmentAction.Delete;\n const actionVerb = isDeleteAction ? 'delete' : 'remove';\n const fileName = attachmentToDelete?.fileName ?? attachmentToDelete?.name;\n\n return (\n <>\n <p className={'deleteSubTitle'}>\n Are you sure you want to {actionVerb} this attachment -{' '}\n <strong>{`\"${fileName}\"`}</strong>?\n </p>\n {isDeleteAction && <p>This action cannot be undone.</p>}\n </>\n );\n };\n\n return (\n <>\n <div className='card-wrapper'>\n {attachmentProgress && (\n <div className='linear-progress'>\n <LinearProgress />\n </div>\n )}\n <AmbientCard\n fullWidth={true}\n title={t('Add New Attachments')}\n variant='secondary'\n subtitle={'These files will be included with the submittal(s)'}\n >\n <DragDropFileUpload\n title='Drag and drop files here or click to browse'\n handleUploadFile={handleAddFiles}\n hideSelectFileButton={false}\n hideFilePreview={!filePreview}\n minHeight='200px'\n maxHeight='400px'\n multiple={true}\n />\n <AmbientAutoComplete\n variant='outlined'\n isMultiple={false}\n value={attachmentType}\n getOptionLabelFunction={(option) => option.name}\n onChange={handleAttachmentTypeSelect}\n options={attachmentTypes?.pageList}\n label={t('Select Attachment Type')}\n required\n />\n </AmbientCard>\n {currentAttachments?.length > 0 && (\n <AmbientCard\n fullWidth={true}\n title={t('Current Attachments')}\n subtitle={`${currentAttachments.length} file(s) attached`}\n >\n <List>{renderCurrentAttachments()}</List>\n </AmbientCard>\n )}\n {previousAttachments.length > 0 && (\n <AmbientCard fullWidth={true} title={t('Previous Attachments')}>\n <List>{renderPreviousAttachments()}</List>\n </AmbientCard>\n )}\n </div>\n\n <FluentDialog\n title={\n <div className={'deleteTitle'}>\n <span>\n {attachmentAction === AttachmentAction.Delete\n ? t('Delete Attachment')\n : t('Remove Attachment')}\n </span>\n <FluentIconButton\n aria-label='close'\n icon={ChromeCloseIcon}\n onClick={handleCloseAttachmentDialog}\n />\n </div>\n }\n message={renderConfirmationContent()}\n labelOne={\n attachmentAction === AttachmentAction.Delete\n ? t('Delete')\n : t('Remove')\n }\n actionOne={\n attachmentAction === AttachmentAction.Delete\n ? deleteAttachment\n : () =>\n removeAttachmentFromList(\n currentAttachments,\n setCurrentAttachments\n )\n }\n labelTwo={t('Cancel')}\n actionTwo={handleCloseAttachmentDialog}\n open={attachmentDialogOpen}\n handleClose={handleCloseAttachmentDialog}\n fullWidth\n />\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"uploader-BdeUKdYW.js","names":["useStyles","FileProfile","ImagePreview","attachmentType","Box","DeleteIcon","LinearProgress"],"sources":["../src/uploader/FileProfile.jsx","../src/uploader/ImagePreview.jsx","../src/uploader/FileType.jsx","../src/uploader/enums/systemEnums.ts","../src/uploader/Attachments.jsx"],"sourcesContent":["import React from 'react'\nimport { Typography, makeStyles } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'row'\n },\n prefix: {\n fontWeight: 600\n },\n title: {\n flex: 1\n },\n detail: {\n marginLeft: theme.spacing(2)\n }\n}))\n\nconst FileProfile = (props) => {\n const classes = useStyles()\n const { children, fileName, fileType, size, lastModifiedDate } = props\n return (\n <div>\n <div className={classes.root}>\n <Typography variant='body1' className={classes.title}>\n <strong>{fileName}</strong>\n </Typography>\n <Typography variant='caption' className={classes.detail}>\n <span className={classes.prefix}>Type:</span> {fileType}\n </Typography>\n <Typography variant='caption' className={classes.detail}>\n <span className={classes.prefix}>Size:</span> {size}\n </Typography>\n </div>\n {children}\n {/* Last modified not supported in FireFox */}\n {/* <Typography variant=\"caption\">\n <span className={classes.prefix}>Last Modified:</span>{' '}\n {lastModifiedDate}\n </Typography> */}\n </div>\n )\n}\nexport default FileProfile\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n justifyContent: 'center'\n },\n image: {\n maxWidth: 465\n }\n}))\n\nconst ImagePreview = (props) => {\n const { image } = props\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n <img className={classes.image} src={image} alt='upload preview' />\n </div>\n )\n}\nexport default ImagePreview\n","import React from 'react'\nimport FileProfile from './FileProfile'\nimport ImagePreview from './ImagePreview'\n\nexport const FileType = (props) => {\n let type = ''\n const { fileType, image, fileName, size, lastModifiedDate } = props\n\n switch (fileType) {\n case 'pdf':\n type = (\n <FileProfile\n fileType={fileType}\n fileName={fileName}\n size={size}\n lastModifiedDate={lastModifiedDate}\n />\n )\n break\n case 'doc':\n type = (\n <FileProfile\n fileType={fileType}\n fileName={fileName}\n size={size}\n lastModifiedDate={lastModifiedDate}\n />\n )\n break\n case 'png':\n type = (\n <FileProfile\n fileType={fileType}\n fileName={fileName}\n size={size}\n lastModifiedDate={lastModifiedDate}\n >\n <ImagePreview image={image} />\n </FileProfile>\n )\n break\n case 'jpg':\n type = (\n <FileProfile\n fileType={fileType}\n fileName={fileName}\n size={size}\n lastModifiedDate={lastModifiedDate}\n >\n <ImagePreview image={image} />\n </FileProfile>\n )\n break\n case 'jpeg':\n type = (\n <FileProfile\n fileType={fileType}\n fileName={fileName}\n size={size}\n lastModifiedDate={lastModifiedDate}\n >\n <ImagePreview image={image} />\n </FileProfile>\n )\n break\n\n default:\n }\n\n return type\n}\n","export enum APIStatusCode {\n Success = 200,\n Created = 201,\n Accepted = 202,\n NoContent = 204,\n Forbidden = 403,\n}\n\nexport enum AttachmentType {\n SiteInstruction = 1,\n RFI = 2\n}\n\nexport enum AttachmentAction {\n None = 1,\n Delete = 2,\n Remove = 3\n};\n","import React, { useCallback, useState } from 'react';\nimport { apiMutate } from '../utilities';\nimport { Box } from '../UI';\nimport { AmbientCard } from '../UI/surfaces/cards/AmbientCard';\nimport { DragDropFileUpload } from './DragDropFileUpload';\nimport { LinearProgress } from '../UI';\nimport { List, ListItem, IconButton } from '@material-ui/core';\nimport { ConfigService } from '../configService/index';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { DownloadIcon, ChromeCloseIcon } from '@fluentui/react-icons';\nimport { useTranslation } from 'react-i18next';\nimport { useHandleAxiosSnackbar } from '../utilities';\nimport { Divider } from '@material-ui/core';\nimport { AttachmentAction } from './enums/systemEnums';\nimport { FluentDialog } from '../UI';\nimport { FluentIconButton } from '../UI/inputs/buttons';\nimport './Attachments.css';\nimport { AmbientAutoComplete } from '../UI/inputs/textField';\n\nconst removeDuplicateFiles = (incomingFiles, existingFiles) => {\n const uniqueFiles = [];\n const duplicateFiles = [];\n\n incomingFiles.forEach((newFile) => {\n const exists = existingFiles.some(\n (existingFile) =>\n existingFile.name === newFile.name ||\n existingFile.fileName === newFile.name\n );\n\n if (exists) {\n duplicateFiles.push(newFile);\n } else {\n uniqueFiles.push(newFile);\n }\n });\n\n return { uniqueFiles, duplicateFiles };\n};\n\nexport const Attachments = ({\n allowedExtensions,\n MAX_FILE_SIZE_MB,\n filePreview,\n setFilePreview,\n currentAttachments,\n setCurrentAttachments,\n attachmentTypes,\n attachmentType,\n setAttachmentType,\n attachmentProgress,\n setAttachmentProgress,\n previousAttachments,\n setPreviousAttachments\n}) => {\n const [attachmentDialogOpen, setAttachmentDialogOpen] = useState(false);\n const [attachmentToDelete, setAttachmentToDelete] = useState(null);\n const [attachmentToDeleteIndex, setAttachmentToDeleteIndex] = useState(0);\n const [attachmentAction, setAttachmentAction] = useState(\n AttachmentAction.None\n );\n\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n const { t } = useTranslation();\n\n const initiateAttachmentAction = useCallback((action, file, index) => {\n setAttachmentAction(action);\n setAttachmentToDelete(file);\n setAttachmentToDeleteIndex(index);\n setAttachmentDialogOpen(true);\n }, []);\n\n const handleAttachmentDeleteClick = useCallback(\n (file, index) => {\n initiateAttachmentAction(AttachmentAction.Delete, file, index);\n },\n [initiateAttachmentAction]\n );\n\n const handleAttachmentRemoveClick = useCallback(\n (file, index) => {\n initiateAttachmentAction(AttachmentAction.Remove, file, index);\n },\n [initiateAttachmentAction]\n );\n\n const handleCloseAttachmentDialog = useCallback(() => {\n setAttachmentAction(AttachmentAction.None);\n setAttachmentToDelete({});\n setAttachmentDialogOpen(false);\n }, []);\n\n const removeAttachmentFromList = useCallback(\n (attachments, setAttachments) => {\n setAttachments((prev) =>\n prev.filter((item, i) => i !== attachmentToDeleteIndex)\n );\n handleSuccessSnackbar(t('Attachment Removed Successfully'));\n handleCloseAttachmentDialog();\n },\n [\n attachmentToDeleteIndex,\n handleSuccessSnackbar,\n handleCloseAttachmentDialog,\n t\n ]\n );\n\n const deleteAttachment = useCallback(async () => {\n try {\n setAttachmentProgress(true);\n const filePayload = { ...attachmentToDelete, isDeleted: true };\n\n await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAttachment/${attachmentToDelete.transactionAttachmentId}`,\n {\n method: 'put',\n data: filePayload\n }\n );\n removeAttachmentFromList(previousAttachments, setPreviousAttachments);\n } catch (error) {\n handleErrorSnackbar(\n 'Failed to delete attachment',\n 'We encountered a system error while trying to delete the file. Please try again.'\n );\n console.error(error);\n } finally {\n setAttachmentProgress(false);\n setAttachmentDialogOpen(false);\n }\n }, [\n attachmentToDelete,\n removeAttachmentFromList,\n previousAttachments,\n setPreviousAttachments,\n setAttachmentProgress,\n handleErrorSnackbar\n ]);\n\n const handleDownloadFile = useCallback(async (file) => {\n try {\n const response = await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAttachment/${file.transactionAttachmentId}/udpDriveFile/download`,\n {}\n );\n const url = response.data.link;\n const link = document.createElement('a');\n link.href = url;\n link.download = file.fileName ?? file.name;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } catch (e) {\n console.error('Download failed', e);\n }\n }, []);\n\n const handleAddFiles = useCallback(\n async (files) => {\n const incomingFiles = Array.from(files);\n const validFiles = [];\n const invalidFiles = [];\n\n incomingFiles.forEach((file) => {\n const ext = file.name.split('.').pop().toLowerCase();\n const sizeInMB = file.size / (1024 * 1024);\n\n if (!allowedExtensions.includes(ext)) {\n invalidFiles.push(`${file.name} (Invalid file type)`);\n } else if (sizeInMB > MAX_FILE_SIZE_MB) {\n invalidFiles.push(`${file.name} (Exceeds ${MAX_FILE_SIZE_MB} MB)`);\n } else {\n validFiles.push(file);\n }\n });\n\n const allExistingFiles = [...previousAttachments, ...currentAttachments];\n const { uniqueFiles, duplicateFiles } = removeDuplicateFiles(\n validFiles,\n allExistingFiles\n );\n\n if (uniqueFiles.length > 0) {\n setCurrentAttachments((prev) => [...prev, ...uniqueFiles]);\n }\n\n if (invalidFiles.length > 0) {\n handleErrorSnackbar(\n 'Files not added',\n `The following files had errors:\\n${invalidFiles.join('\\n')}`\n );\n setFilePreview(true);\n }\n\n if (duplicateFiles.length > 0) {\n const duplicateNames = duplicateFiles.map((f) => f.name).join(', ');\n handleErrorSnackbar(\n 'Duplicates skipped',\n `The following files already exist and were not added: ${duplicateNames}`\n );\n }\n },\n [\n allowedExtensions,\n MAX_FILE_SIZE_MB,\n previousAttachments,\n currentAttachments,\n setCurrentAttachments,\n handleErrorSnackbar,\n setFilePreview\n ]\n );\n\n const handleAttachmentTypeSelect = useCallback(\n (attachmentType) => {\n setAttachmentType(attachmentType);\n },\n [setAttachmentType]\n );\n\n const renderCurrentAttachments = () => {\n return currentAttachments.map((file, index) => (\n <React.Fragment key={index}>\n {index > 0 && <Divider component='li' />}\n <ListItem\n className='list-separator-item'\n style={{ display: 'flex', justifyContent: 'space-between' }}\n >\n <Box>{file.fileName ? file.fileName : file.name}</Box>\n <Box>\n <IconButton\n onClick={() => handleAttachmentRemoveClick(file, index)}\n >\n <DeleteIcon />\n </IconButton>\n </Box>\n </ListItem>\n </React.Fragment>\n ));\n };\n\n const renderPreviousAttachments = () => {\n return previousAttachments.map((file, index) => (\n <ListItem\n key={index}\n style={{ display: 'flex', justifyContent: 'space-between' }}\n >\n <Box>{file.fileName ?? file.name}</Box>\n <Box>\n <IconButton onClick={() => handleAttachmentDeleteClick(file, index)}>\n <DeleteIcon />\n </IconButton>\n <IconButton onClick={() => handleDownloadFile(file)}>\n <DownloadIcon />\n </IconButton>\n </Box>\n </ListItem>\n ));\n };\n\n const renderConfirmationContent = () => {\n const isDeleteAction = attachmentAction === AttachmentAction.Delete;\n const actionVerb = isDeleteAction ? 'delete' : 'remove';\n const fileName = attachmentToDelete?.fileName ?? attachmentToDelete?.name;\n\n return (\n <>\n <p className={'deleteSubTitle'}>\n Are you sure you want to {actionVerb} this attachment -{' '}\n <strong>{`\"${fileName}\"`}</strong>?\n </p>\n {isDeleteAction && <p>This action cannot be undone.</p>}\n </>\n );\n };\n\n return (\n <>\n <div className='card-wrapper'>\n {attachmentProgress && (\n <div className='linear-progress'>\n <LinearProgress />\n </div>\n )}\n <AmbientCard\n fullWidth={true}\n title={t('Add New Attachments')}\n variant='secondary'\n subtitle={'These files will be included with the submittal(s)'}\n >\n <DragDropFileUpload\n title='Drag and drop files here or click to browse'\n handleUploadFile={handleAddFiles}\n hideSelectFileButton={false}\n hideFilePreview={!filePreview}\n minHeight='200px'\n maxHeight='400px'\n multiple={true}\n />\n <AmbientAutoComplete\n variant='outlined'\n isMultiple={false}\n value={attachmentType}\n getOptionLabelFunction={(option) => option.name}\n onChange={handleAttachmentTypeSelect}\n options={attachmentTypes?.pageList}\n label={t('Select Attachment Type')}\n required\n />\n </AmbientCard>\n {currentAttachments?.length > 0 && (\n <AmbientCard\n fullWidth={true}\n title={t('Current Attachments')}\n subtitle={`${currentAttachments.length} file(s) attached`}\n >\n <List>{renderCurrentAttachments()}</List>\n </AmbientCard>\n )}\n {previousAttachments.length > 0 && (\n <AmbientCard fullWidth={true} title={t('Previous Attachments')}>\n <List>{renderPreviousAttachments()}</List>\n </AmbientCard>\n )}\n </div>\n\n <FluentDialog\n title={\n <div className={'deleteTitle'}>\n <span>\n {attachmentAction === AttachmentAction.Delete\n ? t('Delete Attachment')\n : t('Remove Attachment')}\n </span>\n <FluentIconButton\n aria-label='close'\n icon={ChromeCloseIcon}\n onClick={handleCloseAttachmentDialog}\n />\n </div>\n }\n message={renderConfirmationContent()}\n labelOne={\n attachmentAction === AttachmentAction.Delete\n ? t('Delete')\n : t('Remove')\n }\n actionOne={\n attachmentAction === AttachmentAction.Delete\n ? deleteAttachment\n : () =>\n removeAttachmentFromList(\n currentAttachments,\n setCurrentAttachments\n )\n }\n labelTwo={t('Cancel')}\n actionTwo={handleCloseAttachmentDialog}\n open={attachmentDialogOpen}\n handleClose={handleCloseAttachmentDialog}\n fullWidth\n />\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as colors } from "../../colors-BONxjrOE.js";
|
|
2
|
-
import { n as getCustomHintColor, r as getEllipseColor, t as getCategoryColor } from "../../colorConverter-
|
|
2
|
+
import { n as getCustomHintColor, r as getEllipseColor, t as getCategoryColor } from "../../colorConverter-5PvESBA1.js";
|
|
3
3
|
import { i as verticalSecondary, n as useTypeScale, r as verticalPrimary, t as greyScale } from "../../verticalStyles-CUPjFvB1.js";
|
|
4
4
|
import { t as ContentContainer } from "../../ContentContainer-C2CcA6oX.js";
|
|
5
5
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as getEllipseColor } from "./colorConverter-
|
|
1
|
+
import { r as getEllipseColor } from "./colorConverter-5PvESBA1.js";
|
|
2
2
|
import { t as AmbientCardTitle } from "./AmbientCardTitle-CvXW2qf0.js";
|
|
3
3
|
import { t as useItemSubCard } from "./useItemSubCard-CJ3DL7fz.js";
|
|
4
4
|
import { t as EmptyStateDisplay } from "./EmptyStateDisplay-YOwCw38_.js";
|
|
@@ -177,4 +177,4 @@ ItemsWidgetCard.propTypes = {
|
|
|
177
177
|
|
|
178
178
|
//#endregion
|
|
179
179
|
export { ItemsWidgetCard as t };
|
|
180
|
-
//# sourceMappingURL=widgets-
|
|
180
|
+
//# sourceMappingURL=widgets-Bwklnxz1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgets-BCHN3J80.js","names":["PropTypes"],"sources":["../src/UI/widgets/ItemsWidgetCard.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { useItemSubCard } from '../../hooks/useItemSubCard';\nimport {\n Box,\n Divider,\n Fade,\n Grow,\n IconButton,\n List,\n ListItem,\n ListItemAvatar,\n ListItemText,\n makeStyles,\n Typography,\n useTheme\n} from '@material-ui/core';\nimport { format, isValid } from 'date-fns';\nimport { grey } from '@material-ui/core/colors';\nimport { AmbientCardTitle } from '../surfaces/cards/AmbientCard/AmbientCardTitle';\nimport { PropTypes } from 'prop-types';\nimport KeyboardArrowLeftIcon from '@material-ui/icons/esm/KeyboardArrowLeft';\nimport { getEllipseColor } from '../../utilities/style/colorConverter';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\nimport { EmptyStateDisplay } from '../dataDisplay/EmptyStateDisplay';\n\nconst useStyles = makeStyles((theme) => ({\n mainContainer: {\n backgroundColor: theme.palette.background.paper,\n padding: '0px',\n gap: '0px',\n order: 3,\n alignSelf: 'stretch'\n },\n secondaryContainer: {\n backgroundColor: theme.palette.background.paper,\n padding: '0px',\n gap: '0px',\n order: 0,\n alignSelf: 'stretch',\n flexGrow: 0,\n width: '100%'\n },\n listItemPrimary: {\n fontSize: '14px',\n fontWeight: 600\n },\n listItemSecondary: {\n fontSize: '12px',\n fontWeight: 400,\n color: grey[500]\n },\n listContainer: {\n width: '100%',\n backgroundColor: theme.palette.background.paper,\n padding: '0px'\n },\n listItem: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n padding: '8px 16px'\n },\n listItemAvatar: {\n minWidth: '32px'\n },\n listItemText: {\n margin: 0\n },\n itemContainer: {\n paddingRight: '5px'\n },\n emptyStateDisplay: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n }\n}));\n\n/**\n * `ItemsWidgetCard` component\n */\nexport const ItemsWidgetCard = (props) => {\n const [checked, setChecked] = useState(false);\n const [cardItemData, setCardItemData] = useState();\n\n const {\n cardData,\n subCardsList = {},\n style,\n headerColor,\n emptyStatePrimaryText,\n emptyStateImageSrc,\n emptyStateIconSize,\n emptyStateImageWidth,\n emptyStateClassName,\n emptyStateIcon,\n title = 'Account Items',\n subCardTypeField = 'type'\n } = props;\n\n const { SubCard, setSubCardType, subCardType, getSubCardInfo } =\n useItemSubCard(subCardsList);\n const classes = useStyles();\n const theme = useTheme();\n const { t } = useTranslation();\n\n const handleChange = (accountItem) => {\n setCardItemData(accountItem);\n setSubCardType(accountItem?.[subCardTypeField] || '');\n setChecked((prev) => !prev);\n };\n\n return (\n <Box\n display='flex'\n flexDirection='column'\n alignItems='flex-start'\n flexGrow='1'\n className={classes.mainContainer}\n style={{\n ...style,\n height: '100%'\n }}\n >\n <Box\n display='flex'\n flexDirection='row'\n alignItems='center'\n style={{\n gap: '8px',\n width: '100%',\n padding: '8px',\n backgroundColor:\n headerColor && getEllipseColor(theme, headerColor, 'light'),\n color: theme.palette.getContrastText(\n getEllipseColor(theme, headerColor, 'light')\n )\n }}\n >\n {subCardType !== '' && (\n <IconButton\n aria-label='delete'\n size='small'\n onClick={() => handleChange('')}\n style={{ marginLeft: '10px' }}\n id='udpRecord-ItemsWidgetCard-delete'\n udprecordid='udpRecord-ItemsWidgetCard-delete'\n >\n <KeyboardArrowLeftIcon fontSize='inherit' />\n </IconButton>\n )}\n <AmbientCardTitle\n title={subCardType !== '' ? subCardType : title}\n style={{\n backgroundColor:\n headerColor && getEllipseColor(theme, headerColor, 'light')\n }}\n />\n </Box>\n\n {!checked ? (\n <Grow\n in={!checked}\n style={{ transformOrigin: '0 0 0', width: '100%' }}\n {...(!checked ? { timeout: 500 } : {})}\n mountOnEnter\n unmountOnExit\n >\n <Box\n display='flex'\n flexDirection='column'\n alignItems='flex-start'\n className={classes.secondaryContainer}\n >\n <List className={classes.listContainer}>\n {cardData?.length > 0 ? (\n cardData?.map((cardItem, index) => {\n const {\n defaultColor,\n textColor,\n backgroundColor,\n icon: Icon\n } = getSubCardInfo(cardItem?.accountItemName);\n\n return (\n <React.Fragment key={`${cardItem?.name}-${index}`}>\n <ListItem\n button\n className={classes.listItem}\n style={{\n backgroundColor\n }}\n onClick={() => handleChange(cardItem)}\n id={\n 'udpRecord-ItemsWidgetCard-ListItem-' +\n cardItem?.name.replace(/\\s+/g, '') +\n '-' +\n cardItem?.businessObjectKey\n }\n udprecordid={\n 'udpRecord-ItemsWidgetCard-ListItem-' +\n cardItem?.name.replace(/\\s+/g, '') +\n '-' +\n cardItem?.businessObjectKey\n }\n >\n <ListItemAvatar className={classes.listItemAvatar}>\n <Icon\n color={defaultColor}\n width='22px'\n height='22px'\n />\n </ListItemAvatar>\n <ListItemText\n className={classes.listItemText}\n primary={\n <Typography\n variant='subtitle2'\n className={classes?.listItemPrimary}\n style={{ color: textColor }}\n >\n {cardItem?.name}\n </Typography>\n }\n secondary={\n <Typography\n variant='caption'\n className={classes?.listItemSecondary}\n >\n {cardItem?.date\n ? isValid(new Date(cardItem?.date))\n ? format(\n new Date(cardItem?.date),\n 'MMM dd, yyyy'\n )\n : 'Invalid date'\n : 'Date field is empty'}\n </Typography>\n }\n />\n <Box\n display='flex'\n flexDirection='column'\n justifyContent='center'\n alignItems='flex-end'\n className={classes.itemContainer}\n >\n <Typography\n variant='subtitle2'\n className={classes.listItemPrimary}\n >\n {`$${cardItem?.amount || 0.0}`}\n </Typography>\n </Box>\n </ListItem>\n <Divider />\n </React.Fragment>\n );\n })\n ) : (\n <div\n className={clsx(\n classes.emptyStateDisplay,\n emptyStateClassName\n )}\n >\n <EmptyStateDisplay\n primaryText={emptyStatePrimaryText ?? t('No results found')}\n icon={emptyStateIcon}\n iconSize={emptyStateIconSize}\n imageSrc={emptyStateImageSrc}\n imageWidth={emptyStateImageWidth}\n />\n </div>\n )}\n </List>\n </Box>\n </Grow>\n ) : (\n <Fade\n in={checked}\n style={{ transformOrigin: '0 0 0', width: '100%' }}\n {...(checked ? { timeout: 1000 } : {})}\n mountOnEnter\n unmountOnExit\n >\n <Box>\n <SubCard cardInfo={cardItemData} />\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nItemsWidgetCard.propTypes = {\n /**\n * @type {?array} list of flags to render, required array object structure e.g\n * [{\n * name: string, --> must be correspond with the name of the subCard object name\n * date: date | string,\n * amount: number | string\n * }]\n */\n cardData: PropTypes.array.isRequired,\n\n /**\n * @type {?object} sub-cards detail content object, e.g\n *\n * CardNameXX and CardNameYY must be specified and corresponding with the name attribute in the card data\n *\n const subCardsList = {\n CardNameXX: {\n defaultColor: theme.palette.primary.main,\n textColor: theme.palette.secondary.main,\n component: props => {\n return <PredefinedReactComponent {...props} />;\n },\n icon: LoanIcon,\n },\n CardNameYY: {\n defaultColor: '#73368E',\n textColor: '#FF9800',\n component: props => {\n return <PredefinedReactComponentTwo {...props} />;\n },\n icon: LoanIcon,\n },\n * }]\n */\n subCardsList: PropTypes.object.isRequired,\n\n /**\n * Optional, additional properties to apply some styles over the main container\n */\n style: PropTypes.object\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"widgets-Bwklnxz1.js","names":["PropTypes"],"sources":["../src/UI/widgets/ItemsWidgetCard.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { useItemSubCard } from '../../hooks/useItemSubCard';\nimport {\n Box,\n Divider,\n Fade,\n Grow,\n IconButton,\n List,\n ListItem,\n ListItemAvatar,\n ListItemText,\n makeStyles,\n Typography,\n useTheme\n} from '@material-ui/core';\nimport { format, isValid } from 'date-fns';\nimport { grey } from '@material-ui/core/colors';\nimport { AmbientCardTitle } from '../surfaces/cards/AmbientCard/AmbientCardTitle';\nimport { PropTypes } from 'prop-types';\nimport KeyboardArrowLeftIcon from '@material-ui/icons/esm/KeyboardArrowLeft';\nimport { getEllipseColor } from '../../utilities/style/colorConverter';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\nimport { EmptyStateDisplay } from '../dataDisplay/EmptyStateDisplay';\n\nconst useStyles = makeStyles((theme) => ({\n mainContainer: {\n backgroundColor: theme.palette.background.paper,\n padding: '0px',\n gap: '0px',\n order: 3,\n alignSelf: 'stretch'\n },\n secondaryContainer: {\n backgroundColor: theme.palette.background.paper,\n padding: '0px',\n gap: '0px',\n order: 0,\n alignSelf: 'stretch',\n flexGrow: 0,\n width: '100%'\n },\n listItemPrimary: {\n fontSize: '14px',\n fontWeight: 600\n },\n listItemSecondary: {\n fontSize: '12px',\n fontWeight: 400,\n color: grey[500]\n },\n listContainer: {\n width: '100%',\n backgroundColor: theme.palette.background.paper,\n padding: '0px'\n },\n listItem: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n padding: '8px 16px'\n },\n listItemAvatar: {\n minWidth: '32px'\n },\n listItemText: {\n margin: 0\n },\n itemContainer: {\n paddingRight: '5px'\n },\n emptyStateDisplay: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n }\n}));\n\n/**\n * `ItemsWidgetCard` component\n */\nexport const ItemsWidgetCard = (props) => {\n const [checked, setChecked] = useState(false);\n const [cardItemData, setCardItemData] = useState();\n\n const {\n cardData,\n subCardsList = {},\n style,\n headerColor,\n emptyStatePrimaryText,\n emptyStateImageSrc,\n emptyStateIconSize,\n emptyStateImageWidth,\n emptyStateClassName,\n emptyStateIcon,\n title = 'Account Items',\n subCardTypeField = 'type'\n } = props;\n\n const { SubCard, setSubCardType, subCardType, getSubCardInfo } =\n useItemSubCard(subCardsList);\n const classes = useStyles();\n const theme = useTheme();\n const { t } = useTranslation();\n\n const handleChange = (accountItem) => {\n setCardItemData(accountItem);\n setSubCardType(accountItem?.[subCardTypeField] || '');\n setChecked((prev) => !prev);\n };\n\n return (\n <Box\n display='flex'\n flexDirection='column'\n alignItems='flex-start'\n flexGrow='1'\n className={classes.mainContainer}\n style={{\n ...style,\n height: '100%'\n }}\n >\n <Box\n display='flex'\n flexDirection='row'\n alignItems='center'\n style={{\n gap: '8px',\n width: '100%',\n padding: '8px',\n backgroundColor:\n headerColor && getEllipseColor(theme, headerColor, 'light'),\n color: theme.palette.getContrastText(\n getEllipseColor(theme, headerColor, 'light')\n )\n }}\n >\n {subCardType !== '' && (\n <IconButton\n aria-label='delete'\n size='small'\n onClick={() => handleChange('')}\n style={{ marginLeft: '10px' }}\n id='udpRecord-ItemsWidgetCard-delete'\n udprecordid='udpRecord-ItemsWidgetCard-delete'\n >\n <KeyboardArrowLeftIcon fontSize='inherit' />\n </IconButton>\n )}\n <AmbientCardTitle\n title={subCardType !== '' ? subCardType : title}\n style={{\n backgroundColor:\n headerColor && getEllipseColor(theme, headerColor, 'light')\n }}\n />\n </Box>\n\n {!checked ? (\n <Grow\n in={!checked}\n style={{ transformOrigin: '0 0 0', width: '100%' }}\n {...(!checked ? { timeout: 500 } : {})}\n mountOnEnter\n unmountOnExit\n >\n <Box\n display='flex'\n flexDirection='column'\n alignItems='flex-start'\n className={classes.secondaryContainer}\n >\n <List className={classes.listContainer}>\n {cardData?.length > 0 ? (\n cardData?.map((cardItem, index) => {\n const {\n defaultColor,\n textColor,\n backgroundColor,\n icon: Icon\n } = getSubCardInfo(cardItem?.accountItemName);\n\n return (\n <React.Fragment key={`${cardItem?.name}-${index}`}>\n <ListItem\n button\n className={classes.listItem}\n style={{\n backgroundColor\n }}\n onClick={() => handleChange(cardItem)}\n id={\n 'udpRecord-ItemsWidgetCard-ListItem-' +\n cardItem?.name.replace(/\\s+/g, '') +\n '-' +\n cardItem?.businessObjectKey\n }\n udprecordid={\n 'udpRecord-ItemsWidgetCard-ListItem-' +\n cardItem?.name.replace(/\\s+/g, '') +\n '-' +\n cardItem?.businessObjectKey\n }\n >\n <ListItemAvatar className={classes.listItemAvatar}>\n <Icon\n color={defaultColor}\n width='22px'\n height='22px'\n />\n </ListItemAvatar>\n <ListItemText\n className={classes.listItemText}\n primary={\n <Typography\n variant='subtitle2'\n className={classes?.listItemPrimary}\n style={{ color: textColor }}\n >\n {cardItem?.name}\n </Typography>\n }\n secondary={\n <Typography\n variant='caption'\n className={classes?.listItemSecondary}\n >\n {cardItem?.date\n ? isValid(new Date(cardItem?.date))\n ? format(\n new Date(cardItem?.date),\n 'MMM dd, yyyy'\n )\n : 'Invalid date'\n : 'Date field is empty'}\n </Typography>\n }\n />\n <Box\n display='flex'\n flexDirection='column'\n justifyContent='center'\n alignItems='flex-end'\n className={classes.itemContainer}\n >\n <Typography\n variant='subtitle2'\n className={classes.listItemPrimary}\n >\n {`$${cardItem?.amount || 0.0}`}\n </Typography>\n </Box>\n </ListItem>\n <Divider />\n </React.Fragment>\n );\n })\n ) : (\n <div\n className={clsx(\n classes.emptyStateDisplay,\n emptyStateClassName\n )}\n >\n <EmptyStateDisplay\n primaryText={emptyStatePrimaryText ?? t('No results found')}\n icon={emptyStateIcon}\n iconSize={emptyStateIconSize}\n imageSrc={emptyStateImageSrc}\n imageWidth={emptyStateImageWidth}\n />\n </div>\n )}\n </List>\n </Box>\n </Grow>\n ) : (\n <Fade\n in={checked}\n style={{ transformOrigin: '0 0 0', width: '100%' }}\n {...(checked ? { timeout: 1000 } : {})}\n mountOnEnter\n unmountOnExit\n >\n <Box>\n <SubCard cardInfo={cardItemData} />\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nItemsWidgetCard.propTypes = {\n /**\n * @type {?array} list of flags to render, required array object structure e.g\n * [{\n * name: string, --> must be correspond with the name of the subCard object name\n * date: date | string,\n * amount: number | string\n * }]\n */\n cardData: PropTypes.array.isRequired,\n\n /**\n * @type {?object} sub-cards detail content object, e.g\n *\n * CardNameXX and CardNameYY must be specified and corresponding with the name attribute in the card data\n *\n const subCardsList = {\n CardNameXX: {\n defaultColor: theme.palette.primary.main,\n textColor: theme.palette.secondary.main,\n component: props => {\n return <PredefinedReactComponent {...props} />;\n },\n icon: LoanIcon,\n },\n CardNameYY: {\n defaultColor: '#73368E',\n textColor: '#FF9800',\n component: props => {\n return <PredefinedReactComponentTwo {...props} />;\n },\n icon: LoanIcon,\n },\n * }]\n */\n subCardsList: PropTypes.object.isRequired,\n\n /**\n * Optional, additional properties to apply some styles over the main container\n */\n style: PropTypes.object\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as DonutWrapper, c as BarChartWrapper, i as LineGraphWrapper, l as DisplayCardWrapper, n as AgGridSimpleWrapper, s as HistogramWrapper, t as BioCardWrapper, u as PrimaryActionHeaderWrapper } from "./BioCardWrapper-
|
|
1
|
+
import { a as DonutWrapper, c as BarChartWrapper, i as LineGraphWrapper, l as DisplayCardWrapper, n as AgGridSimpleWrapper, s as HistogramWrapper, t as BioCardWrapper, u as PrimaryActionHeaderWrapper } from "./BioCardWrapper-D1ZOHyA4.js";
|
|
2
2
|
import React from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/componentSystems/pageRenderer/hocs/withEngineComponent.jsx
|
|
@@ -25,4 +25,4 @@ function withEngineComponent(WrappedComponent) {
|
|
|
25
25
|
|
|
26
26
|
//#endregion
|
|
27
27
|
export { withEngineComponent as t };
|
|
28
|
-
//# sourceMappingURL=withEngineComponent-
|
|
28
|
+
//# sourceMappingURL=withEngineComponent-Bcnxug3h.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withEngineComponent-
|
|
1
|
+
{"version":3,"file":"withEngineComponent-Bcnxug3h.js","names":[],"sources":["../src/componentSystems/pageRenderer/hocs/withEngineComponent.jsx"],"sourcesContent":["import React from 'react';\nimport { PrimaryActionHeaderWrapper } from '../wrappers/PrimaryActionHeaderWrapper';\nimport { DisplayCardWrapper } from '../wrappers/DisplayCardWrapper';\nimport { BarChartWrapper } from '../wrappers/BarChartWrapper';\nimport { HistogramWrapper } from '../wrappers/HistogramWrapper';\nimport { DonutWrapper } from '../wrappers/DonutWrapper';\nimport { LineGraphWrapper } from '../wrappers/LineGraphWrapper';\nimport { AgGridSimpleWrapper } from '../wrappers/AgGridSimpleWrapper';\nimport { BioCardWrapper } from '../wrappers/BioCardWrapper';\n\nconst Other = props => {\n return <div>Test</div>;\n};\n\nconst engineWrapper = {\n PrimaryActionHeader: props => PrimaryActionHeaderWrapper(props),\n DisplayCard: props => DisplayCardWrapper(props),\n BarChart: props => BarChartWrapper(props),\n Histogram: props => HistogramWrapper(props),\n DonutChart: props => DonutWrapper(props),\n LineGraph: props => LineGraphWrapper(props),\n agGridSimple: props => AgGridSimpleWrapper(props),\n BioCard: props => BioCardWrapper(props),\n Other,\n};\n\nexport function withEngineComponent(WrappedComponent) {\n const hocComponent = hocProps => {\n const wrappedComponent =\n engineWrapper[WrappedComponent] || engineWrapper['Other'];\n\n return wrappedComponent(hocProps);\n };\n return hocComponent;\n}\n"],"mappings":";;;;AAUA,MAAM,SAAQ,UAAS;AACrB,QAAO,oCAAC,aAAI,OAAU;;AAGxB,MAAM,gBAAgB;CACpB,sBAAqB,UAAS,2BAA2B,MAAM;CAC/D,cAAa,UAAS,mBAAmB,MAAM;CAC/C,WAAU,UAAS,gBAAgB,MAAM;CACzC,YAAW,UAAS,iBAAiB,MAAM;CAC3C,aAAY,UAAS,aAAa,MAAM;CACxC,YAAW,UAAS,iBAAiB,MAAM;CAC3C,eAAc,UAAS,oBAAoB,MAAM;CACjD,UAAS,UAAS,eAAe,MAAM;CACvC;CACD;AAED,SAAgB,oBAAoB,kBAAkB;CACpD,MAAM,gBAAe,aAAY;AAI/B,UAFE,cAAc,qBAAqB,cAAc,UAE3B,SAAS;;AAEnC,QAAO"}
|
package/dist/workflow/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as WorkflowTreeMenuItem, t as WorkflowTreeMenu } from "../WorkflowTreeMenu-HHtwkDzu.js";
|
|
2
2
|
import { t as WorkflowTaskFlow } from "../WorkflowTaskFlow-Cah1eKe3.js";
|
|
3
|
-
import { n as WorkflowUiInterruptContent, t as WorkflowContent } from "../WorkflowContent-
|
|
4
|
-
import { t as WorkflowContainer } from "../WorkflowContainer-
|
|
3
|
+
import { n as WorkflowUiInterruptContent, t as WorkflowContent } from "../WorkflowContent-HlBHhWl8.js";
|
|
4
|
+
import { t as WorkflowContainer } from "../WorkflowContainer-Drts8hsZ.js";
|
|
5
5
|
import "./components/index.js";
|
|
6
6
|
import "./menus/index.js";
|
|
7
7
|
|
package/export-map.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "udp-react-enterprise-component-library",
|
|
3
|
-
"version": "25.18.1-beta.
|
|
3
|
+
"version": "25.18.1-beta.72",
|
|
4
4
|
"description": "React-based UI component library implementing Fluent UI design for Univerus internal projects",
|
|
5
5
|
"author": "Univerus",
|
|
6
6
|
"license": "MIT",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardWidget-CsOrr74H.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, useMemo, 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 height: '100%',\n marginBottom: (props) => (props?.disableMargin ? '' : theme.spacing(3))\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, ...other } = 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(`Error resolving layout for widget type \"${droppingWidgetType}\"`, e);\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 style={{\n height: '100%'\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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"}
|
package/dist/Inquiry-C094H1jQ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Page-fxgRfgm6.js","names":["layouts","DashboardWidget","DashboardCardGrid"],"sources":["../src/page/Page.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport DashboardCardGrid from '../dashboard/DashboardCardGrid';\nimport DashboardWidget from '../dashboard/DashboardWidget';\nimport getWidgetLayout from '../dashboard/getWidgetLayout.ts';\nimport { useShellStore } from '../stores/shellStore';\n\nconst Page = (props) => {\n const { gridConfig, widgetConfig, disableMargin } = props;\n const { getWidget, isValidWidget } = useShellStore();\n const gridProperties = gridConfig ? JSON.parse(gridConfig) : null;\n let widgets = widgetConfig || null;\n\n if (typeof widgetConfig === 'string') {\n widgets = JSON.parse(widgetConfig);\n }\n\n const calculateLayouts = () => {\n if (!widgets) return null;\n\n const normalizeNumber = (value, fallback) => {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return value;\n }\n\n if (typeof value === 'string') {\n const parsed = Number(value);\n if (Number.isFinite(parsed)) {\n return parsed;\n }\n }\n\n return fallback;\n };\n\n const layouts = {};\n for (const widget of widgets) {\n if (!widget?.layout) continue;\n\n for (const breakpoint in widget.layout) {\n if (breakpoint === '__typename' || !widget.layout[breakpoint]) continue;\n layouts[breakpoint] = layouts[breakpoint] || [];\n const { __typename, ...layout } = widget.layout[breakpoint];\n const defaultLayout = getWidgetLayout(getWidget, widget.widgetType);\n const mergedLayout = {\n ...defaultLayout,\n ...layout,\n i: widget.id\n };\n\n mergedLayout.x = normalizeNumber(mergedLayout.x, 0);\n mergedLayout.y = normalizeNumber(mergedLayout.y, 0);\n mergedLayout.w = normalizeNumber(mergedLayout.w, defaultLayout?.w ?? 2);\n mergedLayout.h = normalizeNumber(mergedLayout.h, defaultLayout?.h ?? 2);\n\n const paramResizable = widget?.params?.isResizable;\n mergedLayout.isResizable =\n typeof paramResizable === 'boolean'\n ? paramResizable\n : Boolean(mergedLayout.isResizable);\n\n layouts[breakpoint].push(mergedLayout);\n }\n }\n\n return layouts;\n };\n\n const layouts = useMemo(\n () => calculateLayouts(),\n [calculateLayouts, widgetConfig]\n );\n\n const cards = useMemo(\n () =>\n widgets &&\n widgets.map(({ __typename, ...widget }) => (\n <DashboardWidget key={widget.id} {...widget} />\n )),\n [widgets]\n );\n\n if (!layouts) return null;\n\n return (\n <DashboardCardGrid\n layouts={layouts}\n gridProperties={gridProperties}\n disableMargin={disableMargin}\n >\n {cards}\n </DashboardCardGrid>\n );\n};\nexport default Page;\n"],"mappings":";;;;;AAMA,MAAM,QAAQ,UAAU;CACtB,MAAM,EAAE,YAAY,cAAc,kBAAkB;CACpD,MAAM,EAAE,WAAW,kBAAkB,eAAe;CACpD,MAAM,iBAAiB,aAAa,KAAK,MAAM,WAAW,GAAG;CAC7D,IAAI,UAAU,gBAAgB;AAE9B,KAAI,OAAO,iBAAiB,SAC1B,WAAU,KAAK,MAAM,aAAa;CAGpC,MAAM,yBAAyB;AAC7B,MAAI,CAAC,QAAS,QAAO;EAErB,MAAM,mBAAmB,OAAO,aAAa;AAC3C,OAAI,OAAO,UAAU,YAAY,OAAO,SAAS,MAAM,CACrD,QAAO;AAGT,OAAI,OAAO,UAAU,UAAU;IAC7B,MAAM,SAAS,OAAO,MAAM;AAC5B,QAAI,OAAO,SAAS,OAAO,CACzB,QAAO;;AAIX,UAAO;;EAGT,MAAMA,YAAU,EAAE;AAClB,OAAK,MAAM,UAAU,SAAS;AAC5B,OAAI,CAAC,QAAQ,OAAQ;AAErB,QAAK,MAAM,cAAc,OAAO,QAAQ;AACtC,QAAI,eAAe,gBAAgB,CAAC,OAAO,OAAO,YAAa;AAC/D,cAAQ,cAAcA,UAAQ,eAAe,EAAE;IAC/C,MAAM,EAAE,YAAY,GAAG,WAAW,OAAO,OAAO;IAChD,MAAM,gBAAgB,gBAAgB,WAAW,OAAO,WAAW;IACnE,MAAM,eAAe;KACnB,GAAG;KACH,GAAG;KACH,GAAG,OAAO;KACX;AAED,iBAAa,IAAI,gBAAgB,aAAa,GAAG,EAAE;AACnD,iBAAa,IAAI,gBAAgB,aAAa,GAAG,EAAE;AACnD,iBAAa,IAAI,gBAAgB,aAAa,GAAG,eAAe,KAAK,EAAE;AACvE,iBAAa,IAAI,gBAAgB,aAAa,GAAG,eAAe,KAAK,EAAE;IAEvE,MAAM,iBAAiB,QAAQ,QAAQ;AACvC,iBAAa,cACX,OAAO,mBAAmB,YACtB,iBACA,QAAQ,aAAa,YAAY;AAEvC,cAAQ,YAAY,KAAK,aAAa;;;AAI1C,SAAOA;;CAGT,MAAM,UAAU,cACR,kBAAkB,EACxB,CAAC,kBAAkB,aAAa,CACjC;CAED,MAAM,QAAQ,cAEV,WACA,QAAQ,KAAK,EAAE,YAAY,GAAG,aAC5B,oCAACC;EAAgB,KAAK,OAAO;EAAI,GAAI;GAAU,CAC/C,EACJ,CAAC,QAAQ,CACV;AAED,KAAI,CAAC,QAAS,QAAO;AAErB,QACE,oCAACC;EACU;EACO;EACD;IAEd,MACiB;;AAGxB,mBAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PageContainer-DTXNLt_2.js","names":["id","widgetParams","uuid","Page"],"sources":["../src/page/PageContainer/PageContainer.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Redirect } from 'react-router-dom';\nimport Page from '../Page';\nimport { makeStyles, Card, CircularProgress } from '@material-ui/core';\nimport { Alert } from '@material-ui/lab';\nimport { PrimaryActionHeader } from '../../UI/utilityDisplay/utilityHeader/PrimaryActionHeader';\nimport { PageContextProvider } from '../../contexts/PageContext.tsx';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { v4 as uuid } from 'uuid';\nimport { useTranslation } from 'react-i18next';\nimport { useSetLocationState } from '../../hooks/useSetLocationState';\nimport { ConfigService } from '../../configService';\nimport {useUser} from '../../utilities/auth/useUser'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: (props) => (props.disableMargins ? 0 : theme.spacing(3)),\n marginRight: (props) => (props.disableMargins ? 0 : theme.spacing(3)),\n marginLeft: (props) => (props.disableMargins ? 0 : theme.spacing(3)),\n height: (props) => props.height ?? '100%',\n overflow: (props) => props.height && 'auto'\n },\n staticRoot: {\n marginTop: 0,\n marginRight: 0,\n marginLeft: 0,\n height: (props) => props.height ?? '100%',\n overflow: (props) => props.height && 'auto'\n },\n title: {\n flex: 1,\n marginBottom: theme.spacing(1)\n },\n icon: {\n marginTop: theme.spacing(-2.5)\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n height: (props) =>\n props.loadingHeight ? props.loadingHeight : 'calc(100vh - 160px)'\n }\n}));\n\nexport const PageContainer = (props) => {\n const {\n widgetParams,\n redirectSlug,\n pageData,\n pageLoading = false,\n disableMargin = true,\n location,\n fromMenu = false,\n loadingHeight,\n isHomePage = false,\n pageId: id,\n updateLocationState = true\n } = props;\n const user = useUser()\n const classes = useStyles(props);\n const [page, setPage] = useState(null);\n const [alertWarnings, setAlertWarnings] = useState([]);\n const params = location?.state?.params;\n const pathPageId = location?.pathname?.replace('/page/', '');\n const pageId =\n (pathPageId === '/' ? null : pathPageId) || params?.PageId || id;\n const { t } = useTranslation();\n const setLocationState = useSetLocationState();\n\n const [{ data: pageInfo, loading: pageInfoLoading }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageId}`,\n {},\n !!!pageId,\n false\n );\n\n const [\n { data: homePage, loading: homePageLoading, error: homePageError },\n refetchHomePage\n ] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/homePage?tenantId=${user?.currentTenantId}&productId=${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !isHomePage,\n false\n );\n\n const removeWarning = useCallback((id) => {\n setAlertWarnings((prevWarnings) =>\n prevWarnings.filter((warning) => warning.id !== id)\n );\n }, []);\n\n const getRequiredFieldWarnings = useCallback(\n (requiredFields = '', widgetParams) => {\n const fieldsStr = requiredFields || '';\n if (!fieldsStr.trim()) {\n return;\n }\n\n const warnings = [];\n const requiredFieldsMap = widgetParams?.requiredFieldsMap || {};\n const nodeObj = widgetParams?.nodeObj || {};\n const fields = fieldsStr.split(',').map((str) => str.trim());\n const missingRequiredFieldNames = [];\n\n fields.forEach((fieldName) => {\n const requiredField = requiredFieldsMap[fieldName];\n if (!requiredField?.value) {\n missingRequiredFieldNames.push(fieldName);\n } else {\n if (\n requiredField.type === 'entity' &&\n (nodeObj[requiredField.value] === undefined ||\n nodeObj[requiredField.value] === null)\n ) {\n missingRequiredFieldNames.push(fieldName);\n }\n }\n });\n\n missingRequiredFieldNames.forEach((name) => {\n warnings.push({\n id: uuid(),\n message: `${name} ${t('field is missing a value')}`\n });\n });\n return warnings;\n },\n [t]\n );\n\n const pages = useMemo(\n () =>\n page?.widgets &&\n Object.keys(JSON.parse(page.widgets)).map((key) => {\n // Static Page\n const widgetStr = JSON.parse(page.widgets)[key];\n const widget = widgetStr ? JSON.parse(widgetStr) : null;\n if (widget?.length) {\n widget.forEach((w) => {\n // Add additional parameters from menu. Will get overwriten if\n // key exists in page widget parms\n if (pageId) {\n w.params = {\n entityName: params?.entityName,\n pbiReportCode: params?.pbiReportCode,\n queryId: params?.queryId,\n inquiryTreeId: params?.InquiryTreeId,\n udpTagId: params?.udpTagId,\n requiredFieldsMap: params?.requiredFieldMapping,\n ...w.params\n };\n }\n if (widgetParams) {\n w.params = { ...w.params, ...widgetParams };\n }\n });\n }\n return (\n <DndProvider\n backend={HTML5Backend}\n key={pageId ? `${key}-${params?.entityName}` : key}\n >\n <Page\n user={user}\n gridConfig={JSON.parse(page.gridProperties)[key]}\n widgetConfig={widget}\n disableMargin={disableMargin}\n />\n </DndProvider>\n );\n }),\n [page, user, widgetParams, disableMargin, pageId, params]\n );\n\n useEffect(() => {\n if (pageId) {\n if (pageInfo) {\n setPage(pageInfo);\n }\n } else if (homePage) {\n setPage(homePage);\n } else {\n setPage(pageData);\n }\n setAlertWarnings([]);\n }, [pageId, pageInfo, pageData, homePage]);\n\n useEffect(() => {\n if (page?.widgets) {\n let warnings = [];\n Object.keys(JSON.parse(page.widgets)).forEach((key) => {\n // Static Page\n const widgetStr = JSON.parse(page.widgets)[key];\n const widget = widgetStr ? JSON.parse(widgetStr) : null;\n if (widget?.length) {\n widget.forEach((w) => {\n // Add additional parameters from menu. Will get overwriten if\n // key exists in page widget parms\n if (pageId) {\n w.params = {\n entityName: params?.entityName,\n pbiReportCode: params?.pbiReportCode,\n queryId: params?.queryId,\n inquiryTreeId: params?.InquiryTreeId,\n udpTagId: params?.udpTagId,\n requiredFieldsMap: params?.requiredFieldMapping,\n ...w.params\n };\n }\n if (widgetParams) {\n w.params = { ...w.params, ...widgetParams };\n }\n // Adding condition to compare pageId's\n if (fromMenu || page?.pageId === widgetParams?.pageId) {\n warnings = getRequiredFieldWarnings(\n w.requiredParameters,\n w.params\n );\n }\n });\n }\n });\n setAlertWarnings(warnings);\n }\n }, [page, widgetParams, pageId, params, fromMenu, getRequiredFieldWarnings]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n if (page && updateLocationState) {\n setLocationState({ label: t(page?.name) });\n }\n }, [setLocationState, t, page, updateLocationState]);\n\n if (redirectSlug && !pageData) {\n return <Redirect to={redirectSlug} />;\n }\n\n if (pageInfoLoading || pageLoading) {\n return (\n <div className={classes.loadingContent}>\n <CircularProgress size={loadingHeight || 64} />\n </div>\n );\n }\n\n return (\n <>\n {page?.showPageName && (\n <Card variant={'outlined'}>\n <PrimaryActionHeader title={page.name} hidePAB single />\n </Card>\n )}\n <div\n className={page?.pageTypeId === 1 ? classes.staticRoot : classes.root}\n >\n {alertWarnings?.length > 0 &&\n alertWarnings.map((warning) => (\n <Alert\n key={warning.id}\n onClose={() => removeWarning(warning.id)}\n severity='warning'\n >\n {warning.message || ''}\n </Alert>\n ))}\n <PageContextProvider>{pages}</PageContextProvider>\n </div>\n </>\n );\n};\n"],"mappings":"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"}
|