udp-react-enterprise-component-library 25.16.2-beta.2 → 25.16.2-beta.4
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/{ActionLoadingContext-DxqZH8--.js → ActionLoadingContext-DVpCwfbg.js} +1 -1
- package/dist/{ActionLoadingContext-DxqZH8--.js.map → ActionLoadingContext-DVpCwfbg.js.map} +1 -1
- package/dist/{ActionProvider-BiNM-ubX.js → ActionProvider-BX693NQ_.js} +5 -5
- package/dist/{ActionProvider-BiNM-ubX.js.map → ActionProvider-BX693NQ_.js.map} +1 -1
- package/dist/{AmbientAutoComplete-09VfbDE4.js → AmbientAutoComplete-J8PArVAs.js} +3 -2
- package/dist/AmbientAutoComplete-J8PArVAs.js.map +1 -0
- package/dist/{AppMenu-DzMsTuWv.js → AppMenu-CEp4BrdJ.js} +2 -2
- package/dist/{AppMenu-DzMsTuWv.js.map → AppMenu-CEp4BrdJ.js.map} +1 -1
- package/dist/{BaseTreeMenu-DkcHI-BC.js → BaseTreeMenu-CN_g4GEm.js} +1 -1
- package/dist/{BaseTreeMenu-DkcHI-BC.js.map → BaseTreeMenu-CN_g4GEm.js.map} +1 -1
- package/dist/{BreadCrumbMenu-BxpMqfvj.js → BreadCrumbMenu-RkiR54r9.js} +1 -1
- package/dist/{BreadCrumbMenu-BxpMqfvj.js.map → BreadCrumbMenu-RkiR54r9.js.map} +1 -1
- package/dist/{CatalogUtilities-Cm2RALT1.js → CatalogUtilities-CgNFjItY.js} +1 -1
- package/dist/{CatalogUtilities-Cm2RALT1.js.map → CatalogUtilities-CgNFjItY.js.map} +1 -1
- package/dist/{ChatBotProvider-BE_DhBqN.js → ChatBotProvider-ZTkBY_Lp.js} +1 -1
- package/dist/{ChatBotProvider-BE_DhBqN.js.map → ChatBotProvider-ZTkBY_Lp.js.map} +1 -1
- package/dist/{CircularProgress-CSGPlrG_.js → CircularProgress-CGB2A7S2.js} +1 -1
- package/dist/{CircularProgress-CSGPlrG_.js.map → CircularProgress-CGB2A7S2.js.map} +1 -1
- package/dist/{Controls-CHns-SHo.js → Controls-B0ogviQm.js} +2 -2
- package/dist/{Controls-CHns-SHo.js.map → Controls-B0ogviQm.js.map} +1 -1
- package/dist/{CrudBrowserContainer-BCn9YKhz.js → CrudBrowserContainer-CwD2cxD0.js} +3 -3
- package/dist/{CrudBrowserContainer-BCn9YKhz.js.map → CrudBrowserContainer-CwD2cxD0.js.map} +1 -1
- package/dist/{CrudForm-Bb9BvEVm.js → CrudForm-CN5vjshw.js} +3 -3
- package/dist/{CrudForm-Bb9BvEVm.js.map → CrudForm-CN5vjshw.js.map} +1 -1
- package/dist/{CrudTableSidePanel-Cwd9NuYq.js → CrudTableSidePanel-DBg4P_v7.js} +2 -2
- package/dist/{CrudTableSidePanel-Cwd9NuYq.js.map → CrudTableSidePanel-DBg4P_v7.js.map} +1 -1
- package/dist/{DataBrowserContainer-CwyuvRqK.js → DataBrowserContainer-CMCGX613.js} +3 -3
- package/dist/{DataBrowserContainer-CwyuvRqK.js.map → DataBrowserContainer-CMCGX613.js.map} +1 -1
- package/dist/{DragDropFileUpload-CVmPVcA5.js → DragDropFileUpload-D1ihiCC2.js} +2 -2
- package/dist/{DragDropFileUpload-CVmPVcA5.js.map → DragDropFileUpload-D1ihiCC2.js.map} +1 -1
- package/dist/{EmailDisplay-BEV_maxX.js → EmailDisplay-CpnpgDOC.js} +1 -1
- package/dist/{EmailDisplay-BEV_maxX.js.map → EmailDisplay-CpnpgDOC.js.map} +1 -1
- package/dist/{ExportSidesheet-J4UlfjNv.js → ExportSidesheet-JSM9EoLc.js} +2 -2
- package/dist/{ExportSidesheet-J4UlfjNv.js.map → ExportSidesheet-JSM9EoLc.js.map} +1 -1
- package/dist/{ExternalRedirectUrlStorage-CpypX4nx.js → ExternalRedirectUrlStorage-Bbj9JzIW.js} +1 -1
- package/dist/{ExternalRedirectUrlStorage-CpypX4nx.js.map → ExternalRedirectUrlStorage-Bbj9JzIW.js.map} +1 -1
- package/dist/{FUIAppSwitcher-Cjr-UgW4.js → FUIAppSwitcher-u6lx2hy2.js} +3 -3
- package/dist/{FUIAppSwitcher-Cjr-UgW4.js.map → FUIAppSwitcher-u6lx2hy2.js.map} +1 -1
- package/dist/{FieldArrayCard-L1-QJjiY.js → FieldArrayCard-lEUXQyMD.js} +2 -2
- package/dist/{FieldArrayCard-L1-QJjiY.js.map → FieldArrayCard-lEUXQyMD.js.map} +1 -1
- package/dist/{FluentInputSlider-GXgusPZa.js → FluentInputSlider-BqI2PdVF.js} +1 -1
- package/dist/{FluentInputSlider-GXgusPZa.js.map → FluentInputSlider-BqI2PdVF.js.map} +1 -1
- package/dist/{FluentMap-CAhZE-7q.js → FluentMap-BPiZxyEZ.js} +2 -2
- package/dist/{FluentMap-CAhZE-7q.js.map → FluentMap-BPiZxyEZ.js.map} +1 -1
- package/dist/{FluentProfileMenuCard-CZ00DNnC.js → FluentProfileMenuCard-3lEpSHmy.js} +9 -9
- package/dist/{FluentProfileMenuCard-CZ00DNnC.js.map → FluentProfileMenuCard-3lEpSHmy.js.map} +1 -1
- package/dist/{FluentSimpleSelect-B3vzgEP5.js → FluentSimpleSelect-I2CtivEs.js} +2 -2
- package/dist/{FluentSimpleSelect-B3vzgEP5.js.map → FluentSimpleSelect-I2CtivEs.js.map} +1 -1
- package/dist/{FluentTextField-CgQcsDtq.js → FluentTextField-CPpViNni.js} +1 -1
- package/dist/{FluentTextField-CgQcsDtq.js.map → FluentTextField-CPpViNni.js.map} +1 -1
- package/dist/{GeoLocation-CpjesoCi.js → GeoLocation-BaD7pKM9.js} +2 -2
- package/dist/{GeoLocation-CpjesoCi.js.map → GeoLocation-BaD7pKM9.js.map} +1 -1
- package/dist/{GeoMap-CW3Pgzvz.js → GeoMap-BZDwrLIm.js} +6 -6
- package/dist/{GeoMap-CW3Pgzvz.js.map → GeoMap-BZDwrLIm.js.map} +1 -1
- package/dist/{GridRow-CfCj0Upc.js → GridRow-KktUKRX-.js} +1 -1
- package/dist/{GridRow-CfCj0Upc.js.map → GridRow-KktUKRX-.js.map} +1 -1
- package/dist/{ImportDataFromFileMapping-BG9XyC8n.js → ImportDataFromFileMapping-DRdpqXNn.js} +3 -3
- package/dist/{ImportDataFromFileMapping-BG9XyC8n.js.map → ImportDataFromFileMapping-DRdpqXNn.js.map} +1 -1
- package/dist/{InquiryHeaderControl-BCiMFs_v.js → InquiryHeaderControl-DClEzP6_.js} +1 -1
- package/dist/{InquiryHeaderControl-BCiMFs_v.js.map → InquiryHeaderControl-DClEzP6_.js.map} +1 -1
- package/dist/{KeyValueTextField-B2h4ugP1.js → KeyValueTextField-YjvoszxB.js} +2 -2
- package/dist/{KeyValueTextField-B2h4ugP1.js.map → KeyValueTextField-YjvoszxB.js.map} +1 -1
- package/dist/{LinearProgress-BiBVB7Dw.js → LinearProgress-DvXOb1Ck.js} +1 -1
- package/dist/{LinearProgress-BiBVB7Dw.js.map → LinearProgress-DvXOb1Ck.js.map} +1 -1
- package/dist/{LoadingOverlay-DMaSZ_lL.js → LoadingOverlay-DC798-1h.js} +1 -1
- package/dist/{LoadingOverlay-DMaSZ_lL.js.map → LoadingOverlay-DC798-1h.js.map} +1 -1
- package/dist/{LocalRedirectUrlStorage-BY-L7N4U.js → LocalRedirectUrlStorage-CRvlUZw0.js} +1 -1
- package/dist/{LocalRedirectUrlStorage-BY-L7N4U.js.map → LocalRedirectUrlStorage-CRvlUZw0.js.map} +1 -1
- package/dist/{Map-D2_8ACTx.js → Map-B_ESwi9p.js} +2 -2
- package/dist/{Map-D2_8ACTx.js.map → Map-B_ESwi9p.js.map} +1 -1
- package/dist/{Map-ChRg-LpE.js → Map-DWXcBhH1.js} +4 -4
- package/dist/{Map-ChRg-LpE.js.map → Map-DWXcBhH1.js.map} +1 -1
- package/dist/{MapContent-CM4jG7Cx.js → MapContent-CTPX858a.js} +1 -1
- package/dist/{MapContent-CM4jG7Cx.js.map → MapContent-CTPX858a.js.map} +1 -1
- package/dist/{MapContext-DMHlc2jW.js → MapContext-BmClJmMl.js} +1 -1
- package/dist/{MapContext-DMHlc2jW.js.map → MapContext-BmClJmMl.js.map} +1 -1
- package/dist/{MapContext-DyuJF6vT.js → MapContext-C0QCTK9-.js} +1 -1
- package/dist/{MapContext-DyuJF6vT.js.map → MapContext-C0QCTK9-.js.map} +1 -1
- package/dist/{MapControlsStandard-DB_YFXNg.js → MapControlsStandard-CKhBcU2K.js} +2 -2
- package/dist/{MapControlsStandard-DB_YFXNg.js.map → MapControlsStandard-CKhBcU2K.js.map} +1 -1
- package/dist/{MenuPage-Ci8NbB6g.js → MenuPage-0dfmiHLT.js} +4 -4
- package/dist/{MenuPage-CcKJfqJ-.js → MenuPage-BnjXs_I5.js} +3 -3
- package/dist/{MenuPage-CcKJfqJ-.js.map → MenuPage-BnjXs_I5.js.map} +1 -1
- package/dist/{MyExportsPage-BcWRfSLn.js → MyExportsPage-DoCWrkNv.js} +4 -4
- package/dist/{MyExportsPage-CRhaN5IG.js → MyExportsPage-lei8IuBA.js} +3 -3
- package/dist/{MyExportsPage-CRhaN5IG.js.map → MyExportsPage-lei8IuBA.js.map} +1 -1
- package/dist/{PageActionWrapper-BLi6xXdd.js → PageActionWrapper-CLLGHLUx.js} +2 -2
- package/dist/{PageActionWrapper-BLi6xXdd.js.map → PageActionWrapper-CLLGHLUx.js.map} +1 -1
- package/dist/{PageLoading-DflvopNL.js → PageLoading-CE6S65Ww.js} +1 -1
- package/dist/{PageLoading-DflvopNL.js.map → PageLoading-CE6S65Ww.js.map} +1 -1
- package/dist/{PageNotFoundRoute-CZArnjgk.js → PageNotFoundRoute-Cw7o-U9o.js} +2 -2
- package/dist/{PageNotFoundRoute-BbN60Viu.js → PageNotFoundRoute-Dzo6_TFT.js} +2 -2
- package/dist/{PageNotFoundRoute-BbN60Viu.js.map → PageNotFoundRoute-Dzo6_TFT.js.map} +1 -1
- package/dist/{PageSectionSpacer-BrUQDVvj.js → PageSectionSpacer-8DZPMnIx.js} +1 -1
- package/dist/{PageSectionSpacer-BrUQDVvj.js.map → PageSectionSpacer-8DZPMnIx.js.map} +1 -1
- package/dist/{PageStatus-DBJUjhU1.js → PageStatus-moFTkRZx.js} +1 -1
- package/dist/{PageStatus-DBJUjhU1.js.map → PageStatus-moFTkRZx.js.map} +1 -1
- package/dist/{PageSubHeaderAction-P5JNbI1r.js → PageSubHeaderAction-PjiQrg61.js} +1 -1
- package/dist/{PageSubHeaderAction-P5JNbI1r.js.map → PageSubHeaderAction-PjiQrg61.js.map} +1 -1
- package/dist/{PasswordResetRedirect-DPc0VUWd.js → PasswordResetRedirect-CgIwYhcb.js} +2 -2
- package/dist/{PasswordResetRedirect-BLo-YFvK.js → PasswordResetRedirect-Cvhj2vjU.js} +2 -2
- package/dist/{PasswordResetRedirect-BLo-YFvK.js.map → PasswordResetRedirect-Cvhj2vjU.js.map} +1 -1
- package/dist/{PowerBIReport-DoNECBnv.js → PowerBIReport-DWt7IHNZ.js} +3 -3
- package/dist/{PowerBIReport-DoNECBnv.js.map → PowerBIReport-DWt7IHNZ.js.map} +1 -1
- package/dist/{RejectIcon-C4cwL2EM.js → RejectIcon-IOZLOqY3.js} +1 -1
- package/dist/{RejectIcon-C4cwL2EM.js.map → RejectIcon-IOZLOqY3.js.map} +1 -1
- package/dist/{SearchMethodUdpGrid-DUklUn5Q.js → SearchMethodUdpGrid-DO52Bj_B.js} +1 -1
- package/dist/{SearchMethodUdpGrid-DUklUn5Q.js.map → SearchMethodUdpGrid-DO52Bj_B.js.map} +1 -1
- package/dist/{SearchServiceDatasource-CE-VlvY1.js → SearchServiceDatasource-DofS4I45.js} +1 -1
- package/dist/{SearchServiceDatasource-CE-VlvY1.js.map → SearchServiceDatasource-DofS4I45.js.map} +1 -1
- package/dist/{Shell-B0HzAa4L.js → Shell-Clp49hyi.js} +9 -9
- package/dist/{Shell-B0HzAa4L.js.map → Shell-Clp49hyi.js.map} +1 -1
- package/dist/{SideBarTemplate-DQnJKwXP.js → SideBarTemplate-DKYcwE38.js} +2 -2
- package/dist/{SideBarTemplate-DQnJKwXP.js.map → SideBarTemplate-DKYcwE38.js.map} +1 -1
- package/dist/{Source-BOqgbkAn.js → Source-C21-iTa_.js} +1 -1
- package/dist/{Source-BOqgbkAn.js.map → Source-C21-iTa_.js.map} +1 -1
- package/dist/{SubHeaderAction-DTDxR5S1.js → SubHeaderAction-F_GKrUBX.js} +1 -1
- package/dist/{SubHeaderAction-DTDxR5S1.js.map → SubHeaderAction-F_GKrUBX.js.map} +1 -1
- package/dist/{SupportCaseSideSheet-D48N1B5u.js → SupportCaseSideSheet-B5a-_ehT.js} +4 -4
- package/dist/{SupportCaseSideSheet-D48N1B5u.js.map → SupportCaseSideSheet-B5a-_ehT.js.map} +1 -1
- package/dist/{TableContainer-CjJCsvvs.js → TableContainer-CJFW0Teg.js} +2 -2
- package/dist/{TableContainer-CjJCsvvs.js.map → TableContainer-CJFW0Teg.js.map} +1 -1
- package/dist/{TileDisplay-Btcf3Wrm.js → TileDisplay-DvHKTjpO.js} +2 -2
- package/dist/{TileDisplay-Btcf3Wrm.js.map → TileDisplay-DvHKTjpO.js.map} +1 -1
- package/dist/{TileLayer-Ckm0zl4x.js → TileLayer-D3RksO00.js} +2 -2
- package/dist/{TileLayer-Ckm0zl4x.js.map → TileLayer-D3RksO00.js.map} +1 -1
- package/dist/UI/components/dataDisplay/index.js +1 -1
- package/dist/UI/components/index.js +1 -1
- package/dist/UI/dataDisplay/cardList/index.js +2 -2
- package/dist/UI/dataDisplay/index.js +2 -2
- package/dist/UI/feedback/index.js +1 -1
- package/dist/UI/fileViewer/index.js +2 -2
- package/dist/UI/floorplans/index.js +2 -2
- package/dist/UI/forms/index.js +6 -6
- package/dist/UI/index.js +30 -30
- package/dist/UI/inputs/fieldArrayCard/index.js +2 -2
- package/dist/UI/inputs/link/index.js +1 -1
- package/dist/UI/inputs/menus/index.js +2 -2
- package/dist/UI/inputs/sliders/index.js +1 -1
- package/dist/UI/inputs/textField/index.js +3 -3
- package/dist/UI/loading/index.js +3 -3
- package/dist/UI/mapLayout/index.js +4 -4
- package/dist/UI/navigation/index.js +2 -2
- package/dist/UI/navigation/menus/index.js +2 -2
- package/dist/UI/support/index.js +5 -5
- package/dist/UI/templates/index.js +5 -5
- package/dist/UI/templates/newGrid/index.js +4 -4
- package/dist/UI/utilityDisplay/index.js +5 -5
- package/dist/{UdpMaintenanceConfigPage-DdfyBkU_.js → UdpMaintenanceConfigPage-BcCKx7BV.js} +3 -3
- package/dist/{UdpMaintenanceConfigPage-BcGLnZst.js → UdpMaintenanceConfigPage-O7UcWFPr.js} +3 -3
- package/dist/{UdpMaintenanceConfigPage-BcGLnZst.js.map → UdpMaintenanceConfigPage-O7UcWFPr.js.map} +1 -1
- package/dist/{UdpMaintenanceEnginePage-BPXeLhFN.js → UdpMaintenanceEnginePage-COO3GwG9.js} +31 -5
- package/dist/UdpMaintenanceEnginePage-COO3GwG9.js.map +1 -0
- package/dist/UdpMaintenanceEnginePage-pzq1GqGZ.js +131 -0
- package/dist/{UdpRoutes-B4nogDAu.js → UdpRoutes-VUrO9k-C.js} +46 -14
- package/dist/UdpRoutes-VUrO9k-C.js.map +1 -0
- package/dist/{UserFormSideSheet-DpO8GKQO.js → UserFormSideSheet-CpeyFv3r.js} +1 -1
- package/dist/{UserFormSideSheet-DpO8GKQO.js.map → UserFormSideSheet-CpeyFv3r.js.map} +1 -1
- package/dist/{UtilityBar-XWmjM6xO.js → UtilityBar-CyUTKcIa.js} +3 -3
- package/dist/{UtilityBar-XWmjM6xO.js.map → UtilityBar-CyUTKcIa.js.map} +1 -1
- package/dist/{UtilityBarInport-Dei5BcYo.js → UtilityBarInport-BK2d93K5.js} +1 -1
- package/dist/{UtilityBarInport-Dei5BcYo.js.map → UtilityBarInport-BK2d93K5.js.map} +1 -1
- package/dist/{UtilitySideBar-CTYzpnie.js → UtilitySideBar-BTwLKDoy.js} +2 -2
- package/dist/{UtilitySideBar-CTYzpnie.js.map → UtilitySideBar-BTwLKDoy.js.map} +1 -1
- package/dist/{VectorLayer-lxWaAEEB.js → VectorLayer-DhNuJLQ_.js} +2 -2
- package/dist/{VectorLayer-lxWaAEEB.js.map → VectorLayer-DhNuJLQ_.js.map} +1 -1
- package/dist/{VirtualBrowser-BcE288WI.js → VirtualBrowser-B9Hi3Ns8.js} +1 -1
- package/dist/{VirtualBrowser-MrJ2WyXZ.js → VirtualBrowser-DitDAizB.js} +1 -1
- package/dist/{VirtualBrowser-MrJ2WyXZ.js.map → VirtualBrowser-DitDAizB.js.map} +1 -1
- package/dist/{WorkflowContainer-6pvb3tjn.js → WorkflowContainer-6vFVCbss.js} +5 -5
- package/dist/{WorkflowContainer-6pvb3tjn.js.map → WorkflowContainer-6vFVCbss.js.map} +1 -1
- package/dist/{WorkflowContainer-CJ6gQNV-.js → WorkflowContainer-VHsUGDIl.js} +12 -12
- package/dist/{WorkflowContent-B4na5XXv.js → WorkflowContent-DN9BPOCP.js} +7 -7
- package/dist/{WorkflowContent-B4na5XXv.js.map → WorkflowContent-DN9BPOCP.js.map} +1 -1
- package/dist/{WorkflowTaskFlow-Cb1JZOU2.js → WorkflowTaskFlow-B067pxDZ.js} +1 -1
- package/dist/{WorkflowTaskFlow-Cb1JZOU2.js.map → WorkflowTaskFlow-B067pxDZ.js.map} +1 -1
- package/dist/{WorkflowTreeMenu-CoDNDQxm.js → WorkflowTreeMenu-pXKq9TyH.js} +1 -1
- package/dist/{WorkflowTreeMenu-CoDNDQxm.js.map → WorkflowTreeMenu-pXKq9TyH.js.map} +1 -1
- package/dist/{ZoomControl-BQ6aV6cO.js → ZoomControl-BTO3raDM.js} +2 -2
- package/dist/{ZoomControl-BQ6aV6cO.js.map → ZoomControl-BTO3raDM.js.map} +1 -1
- package/dist/actions/index.js +4 -4
- package/dist/actions/sidebar/index.js +1 -1
- package/dist/actions/utils/index.js +1 -1
- package/dist/{cardList-CEQIqKIS.js → cardList-xcTEI1o0.js} +2 -2
- package/dist/{cardList-CEQIqKIS.js.map → cardList-xcTEI1o0.js.map} +1 -1
- package/dist/componentSystems/multiThreadTimeline/functions/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/index.js +5 -5
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/index.js +2 -2
- package/dist/componentSystems/multiThreadTimeline/ui/modified/index.js +1 -1
- package/dist/componentSystems/pageRenderer/hocs/index.js +1 -1
- package/dist/componentSystems/pageRenderer/hooks/index.js +1 -1
- package/dist/componentSystems/pageRenderer/index.js +4 -4
- package/dist/componentSystems/pageRenderer/utils/index.js +1 -1
- package/dist/componentSystems/pageRenderer/wrappers/index.js +1 -1
- package/dist/contexts/index.js +1 -1
- package/dist/{RecentlyLoadedNodesTable-DnBy6AEU.js → dashboard-BE80OHJw.js} +15 -3
- package/dist/dashboard-BE80OHJw.js.map +1 -0
- package/dist/dataBrowser/forms/index.js +1 -1
- package/dist/dataBrowser/index.js +7 -7
- package/dist/enums/index.js +2 -2
- package/dist/{fileViewer-CZYbh-Ns.js → fileViewer-CG0HJ-Ko.js} +2 -2
- package/dist/{fileViewer-CZYbh-Ns.js.map → fileViewer-CG0HJ-Ko.js.map} +1 -1
- package/dist/{floorplans-t1AcjVJw.js → floorplans-bd5zEyHl.js} +2 -2
- package/dist/{floorplans-t1AcjVJw.js.map → floorplans-bd5zEyHl.js.map} +1 -1
- package/dist/{formatBytes-BZH6z2HH.js → formatBytes-BXxFuDvk.js} +1 -1
- package/dist/{formatBytes-BZH6z2HH.js.map → formatBytes-BXxFuDvk.js.map} +1 -1
- package/dist/{forms-DcftP5g4.js → forms-D77JesD_.js} +3 -3
- package/dist/{forms-DcftP5g4.js.map → forms-D77JesD_.js.map} +1 -1
- package/dist/hooks/index.js +2 -2
- package/dist/{hooks-D1nzA6OI.js → hooks-BRJfLTY_.js} +2 -2
- package/dist/{hooks-D1nzA6OI.js.map → hooks-BRJfLTY_.js.map} +1 -1
- package/dist/index.js +103 -104
- package/dist/index.js.map +1 -1
- package/dist/inquiry/dashboard/index.js +1 -3
- package/dist/inquiry/index.js +22 -53
- package/dist/inquiry/inquiryBar/index.js +1 -2
- package/dist/inquiry/search/index.js +1 -2
- package/dist/{Inquiry-BmG2eye6.js → inquiry-CgxJFvsR.js} +69 -46
- package/dist/inquiry-CgxJFvsR.js.map +1 -0
- package/dist/{InquiryNodeControls-NSUmP5z6.js → inquiryBar-C2HJJSqs.js} +1 -1
- package/dist/inquiryBar-C2HJJSqs.js.map +1 -0
- package/dist/layout/index.js +2 -2
- package/dist/maintenanceEngine/crudBrowser/index.js +7 -7
- package/dist/maintenanceEngine/index.js +12 -12
- package/dist/maintenanceEngine/tableBrowser/index.js +3 -3
- package/dist/maintenanceEngine/virtualBrowser/index.js +2 -2
- package/dist/map-library/Controls/index.js +2 -2
- package/dist/map-library/Layers/index.js +2 -2
- package/dist/map-library/Map/index.js +5 -5
- package/dist/map-library/functions/index.js +1 -1
- package/dist/map-library/geoLocation/index.js +2 -2
- package/dist/map-library/ui/index.js +2 -2
- package/dist/{mapFunctions-Bj-QtX0N.js → mapFunctions-D63LqAPS.js} +1 -1
- package/dist/{mapFunctions-Bj-QtX0N.js.map → mapFunctions-D63LqAPS.js.map} +1 -1
- package/dist/{mapLayout-C-bB84bX.js → mapLayout-DXSAQKQp.js} +4 -4
- package/dist/{mapLayout-C-bB84bX.js.map → mapLayout-DXSAQKQp.js.map} +1 -1
- package/dist/maps/index.js +12 -12
- package/dist/maps/leafletMaps/index.js +4 -4
- package/dist/maps/leafletMaps/ui/index.js +2 -2
- package/dist/maps/openLayerMaps/Controls/index.js +2 -2
- package/dist/maps/openLayerMaps/Layers/index.js +2 -2
- package/dist/maps/openLayerMaps/Map/index.js +2 -2
- package/dist/maps/openLayerMaps/Source/index.js +1 -1
- package/dist/maps/openLayerMaps/ui/index.js +2 -2
- package/dist/menuPage/index.js +4 -4
- package/dist/{menuUtilities-8wivnoDW.js → menuUtilities-Cb70He2X.js} +19 -3
- package/dist/menuUtilities-Cb70He2X.js.map +1 -0
- package/dist/{newGrid-C5cV3hvO.js → newGrid-D9TY42ly.js} +2 -2
- package/dist/{newGrid-C5cV3hvO.js.map → newGrid-D9TY42ly.js.map} +1 -1
- package/dist/page/index.js +1 -1
- package/dist/{redirectToLink-CluBHXV_.js → redirectToLink-DUidqyQh.js} +1 -1
- package/dist/{redirectToLink-CluBHXV_.js.map → redirectToLink-DUidqyQh.js.map} +1 -1
- package/dist/{redirectToProduct-CajO9PkB.js → redirectToProduct-8RiwlOkw.js} +1 -1
- package/dist/{redirectToProduct-CajO9PkB.js.map → redirectToProduct-8RiwlOkw.js.map} +1 -1
- package/dist/reports/index.js +3 -3
- package/dist/routes/index.js +4 -4
- package/dist/{InquirySearchContainer-BJZlyWSv.js → search-CvKz7AKM.js} +1 -1
- package/dist/search-CvKz7AKM.js.map +1 -0
- package/dist/shell/index.js +34 -34
- package/dist/shell/ui/addUser/index.js +2 -2
- package/dist/shell/ui/appSwitcher/index.js +4 -4
- package/dist/shell/ui/index.js +19 -19
- package/dist/stores/index.js +1 -1
- package/dist/{tagEnums-K1z2SNKZ.js → tagEnums-BHtWD8NV.js} +1 -1
- package/dist/{tagEnums-K1z2SNKZ.js.map → tagEnums-BHtWD8NV.js.map} +1 -1
- package/dist/{templates-BQJBVScH.js → templates-BzHuN6Sp.js} +2 -2
- package/dist/{templates-BQJBVScH.js.map → templates-BzHuN6Sp.js.map} +1 -1
- package/dist/treeMenu/index.js +1 -1
- package/dist/types/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/udp/utilities/useDateStringColumnDef.d.ts +1 -1
- package/dist/types/utilities/menus/menuUtilities.d.ts +4 -0
- package/dist/udp/export/index.js +6 -6
- package/dist/udp/fileImportMapping/index.js +6 -6
- package/dist/udp/pages/index.js +58 -44
- package/dist/{udpPages-CmWJMQ6t.js → udpPages-Bvmlnzes.js} +12 -12
- package/dist/{udpPages-CmWJMQ6t.js.map → udpPages-Bvmlnzes.js.map} +1 -1
- package/dist/uploader/index.js +2 -2
- package/dist/{useAuthedUser-BRX-xjnS.js → useAuthedUser-CXowatE7.js} +1 -1
- package/dist/{useAuthedUser-BRX-xjnS.js.map → useAuthedUser-CXowatE7.js.map} +1 -1
- package/dist/{useDefaultFormValues-B55mvF77.js → useDefaultFormValues-DFnzUcHv.js} +1 -1
- package/dist/{useDefaultFormValues-B55mvF77.js.map → useDefaultFormValues-DFnzUcHv.js.map} +1 -1
- package/dist/{useGravatar-D5PYsAWb.js → useGravatar-CD9SN7Qi.js} +1 -1
- package/dist/{useGravatar-D5PYsAWb.js.map → useGravatar-CD9SN7Qi.js.map} +1 -1
- package/dist/{useIsUnityAuthenticated-BKhKxtov.js → useIsUnityAuthenticated-BQZPEwr1.js} +1 -1
- package/dist/{useIsUnityAuthenticated-BKhKxtov.js.map → useIsUnityAuthenticated-BQZPEwr1.js.map} +1 -1
- package/dist/{usePrevious-DcRHSVFh.js → usePrevious-DKfZQsm9.js} +1 -1
- package/dist/{usePrevious-DcRHSVFh.js.map → usePrevious-DKfZQsm9.js.map} +1 -1
- package/dist/{useSingleLogout-DIeeNNkW.js → useSingleLogout-DZf89uRJ.js} +4 -4
- package/dist/{useSingleLogout-DIeeNNkW.js.map → useSingleLogout-DZf89uRJ.js.map} +1 -1
- package/dist/{users-Be55HGkm.js → users-DpxNzxRw.js} +1 -1
- package/dist/{users-Be55HGkm.js.map → users-DpxNzxRw.js.map} +1 -1
- package/dist/utilities/DemoJuly/index.js +2 -2
- package/dist/utilities/aggrid/index.js +1 -1
- package/dist/utilities/auth/index.js +8 -8
- package/dist/utilities/catalog/index.js +2 -2
- package/dist/utilities/chatBot/index.js +2 -2
- package/dist/utilities/crud/index.js +2 -2
- package/dist/utilities/customIcons/index.js +2 -2
- package/dist/utilities/entities/index.js +1 -1
- package/dist/utilities/floorplanFunctions/index.js +1 -1
- package/dist/utilities/iconLibrary/index.js +1 -1
- package/dist/utilities/index.js +52 -52
- package/dist/utilities/input/index.js +1 -1
- package/dist/utilities/maintenanceEngine/index.js +1 -1
- package/dist/utilities/menus/index.js +4 -4
- package/dist/utilities/page/index.js +2 -2
- package/dist/utilities/provider/index.js +6 -6
- package/dist/utilities/redirect/index.js +3 -3
- package/dist/utilities/rules/index.js +1 -1
- package/dist/utilities/search/index.js +1 -1
- package/dist/utilities/storage/index.js +1 -1
- package/dist/utilities/style/index.js +1 -1
- package/dist/utilities/tenant/index.js +1 -1
- package/dist/utilities/tree/index.js +1 -1
- package/dist/utilities/uploader/index.js +2 -2
- package/dist/utilities/utilityBar/index.js +4 -4
- package/dist/utilities/workflow/index.js +3 -3
- package/dist/workflow/components/index.js +2 -2
- package/dist/workflow/index.js +14 -14
- package/dist/workflow/menus/index.js +2 -2
- package/dist/{workflowEnums-BPeGiQKg.js → workflowEnums-BOQUbwNm.js} +1 -1
- package/dist/{workflowEnums-BPeGiQKg.js.map → workflowEnums-BOQUbwNm.js.map} +1 -1
- package/dist/{workflowStore-CBcKriB2.js → workflowStore-D-NHniHF.js} +1 -1
- package/dist/{workflowStore-CBcKriB2.js.map → workflowStore-D-NHniHF.js.map} +1 -1
- package/dist/{workflowUtilities-DMsosjJ_.js → workflowUtilities-xEyO79d5.js} +2 -2
- package/dist/{workflowUtilities-DMsosjJ_.js.map → workflowUtilities-xEyO79d5.js.map} +1 -1
- package/export-map.json +3 -2
- package/package.json +2 -2
- package/dist/AmbientAutoComplete-09VfbDE4.js.map +0 -1
- package/dist/Inquiry-BmG2eye6.js.map +0 -1
- package/dist/InquiryDashboard-EoAeiIWK.js +0 -17
- package/dist/InquiryDashboard-EoAeiIWK.js.map +0 -1
- package/dist/InquiryNodeControls-NSUmP5z6.js.map +0 -1
- package/dist/InquirySearchContainer-BJZlyWSv.js.map +0 -1
- package/dist/RecentlyLoadedNodesTable-DnBy6AEU.js.map +0 -1
- package/dist/UdpMaintenanceEnginePage-BK9IdWlV.js +0 -59
- package/dist/UdpMaintenanceEnginePage-BPXeLhFN.js.map +0 -1
- package/dist/UdpRoutes-B4nogDAu.js.map +0 -1
- package/dist/inquiry/index.js.map +0 -1
- package/dist/menuUtilities-8wivnoDW.js.map +0 -1
- package/dist/virtualBrowser-BjGPv8Ks.js +0 -1
- package/dist/workflow-B3zdi9Fz.js +0 -1
- package/dist/wrappers-CLy_1LEL.js +0 -1
- /package/dist/{DemoJuly-46P2EFI7.js → DemoJuly-CIBuhheG.js} +0 -0
- /package/dist/{addUser-DdxKkJbW.js → addUser-CXeM67ys.js} +0 -0
- /package/dist/{aggrid-TPfO-kkM.js → aggrid-BOGlLEu1.js} +0 -0
- /package/dist/{appSwitcher-ERlag4rB.js → appSwitcher-BbbKY0qq.js} +0 -0
- /package/dist/{auth-BOzVI3A0.js → auth-BNJpOA6O.js} +0 -0
- /package/dist/{catalog-DoJ2_1fY.js → catalog-UNxalJg4.js} +0 -0
- /package/dist/{chatBot-flH0_FCC.js → chatBot-rvlTLli1.js} +0 -0
- /package/dist/{components-DqInG_Nm.js → components-BlwSZhpD.js} +0 -0
- /package/dist/{crud-BCrruPIb.js → crud-CKoJlzZC.js} +0 -0
- /package/dist/{crudBrowser-BG7BYo4m.js → crudBrowser-DX85rr54.js} +0 -0
- /package/dist/{customIcons-D0bpSyKS.js → customIcons-C708lO6o.js} +0 -0
- /package/dist/{dashboard-DfDQY2Uz.js → entities-Ciil7n1F.js} +0 -0
- /package/dist/{entities-B32Z17Rb.js → floorplanFunctions-CrklH06W.js} +0 -0
- /package/dist/{floorplanFunctions-QEXAOJwy.js → forms-80OJxgty.js} +0 -0
- /package/dist/{forms-DJnB4tsd.js → functions-Hd-GdWRI.js} +0 -0
- /package/dist/{functions-MWuMR-lY.js → hocs-BBwSfA6i.js} +0 -0
- /package/dist/{hocs-1cIHPs7M.js → hooks-BA76hHir.js} +0 -0
- /package/dist/{hooks-BJgvHLxQ.js → iconLibrary-CJx5yVFL.js} +0 -0
- /package/dist/{iconLibrary-C8sePp_X.js → input-Cjsjq3RH.js} +0 -0
- /package/dist/{input-B3JblbZF.js → leafletMaps-Dap7ksrP.js} +0 -0
- /package/dist/{inquiryBar-CTeb-8eD.js → maintenanceEngine--CHGMGJK.js} +0 -0
- /package/dist/{leafletMaps-DKJcEBvd.js → menus-CORA9-y-.js} +0 -0
- /package/dist/{maintenanceEngine-CpZ9tfB0.js → menus-F0wpxN7s.js} +0 -0
- /package/dist/{menus-B-Xz-Ggy.js → modified-CBLRolfb.js} +0 -0
- /package/dist/{menus-QHvrjl6w.js → mttMainTimeline-DM0dra3i.js} +0 -0
- /package/dist/{modified-Bg5LeKdV.js → mttSummary-BpsBHjLu.js} +0 -0
- /package/dist/{mttMainTimeline-DgGEegXs.js → page-CTPx1eMF.js} +0 -0
- /package/dist/{mttSummary-Dbl2ZLl1.js → provider-YG1Pp4jc.js} +0 -0
- /package/dist/{page-BGtqWrDb.js → redirect-DxcAuEfC.js} +0 -0
- /package/dist/{provider-D1EvAE26.js → rules-B-ksPdxk.js} +0 -0
- /package/dist/{redirect-DEombgSz.js → search-D_aYYsru.js} +0 -0
- /package/dist/{rules-Bbd-Yg6p.js → sidebar-CP5i0Zg7.js} +0 -0
- /package/dist/{search-D3z7GAO_.js → storage-C7L-23mT.js} +0 -0
- /package/dist/{search-YPsWhV_L.js → style-9iKHS-Wi.js} +0 -0
- /package/dist/{sidebar-C96Z7xFg.js → tableBrowser-W5DVnX-k.js} +0 -0
- /package/dist/{storage-Dxdn7n1x.js → tenant-DalfWrIm.js} +0 -0
- /package/dist/{style-C58TNESf.js → tree-TL7VR3tx.js} +0 -0
- /package/dist/{tableBrowser-_iJW5ftf.js → ui-HqpIaxXX.js} +0 -0
- /package/dist/{tenant-Dv4CtN1T.js → ui-en5KNlmI.js} +0 -0
- /package/dist/{tree-BE3grkxa.js → uploader-DcYXiktt.js} +0 -0
- /package/dist/{ui-Dk8IEfOq.js → utilityBar-CFHi-LbU.js} +0 -0
- /package/dist/{ui-_KR24HU9.js → utils-CCCTU1x9.js} +0 -0
- /package/dist/{uploader-CslKfeTU.js → utils-DNdEZ0qE.js} +0 -0
- /package/dist/{utilityBar-efXsIsm6.js → virtualBrowser-CCd9f5nk.js} +0 -0
- /package/dist/{utils-Ccah2Nvr.js → workflow-CTqF0deg.js} +0 -0
- /package/dist/{utils-K0OjqNhn.js → wrappers-DZvJVCmc.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileViewer-CZYbh-Ns.js","names":["useStyles","Typography","useStyles","PDFViewer: FC<PDFContainerProps>","numPages","ControlPanel","LinearProgress","useStyles","Typography","useStyles","defaultFieldMapping"],"sources":["../src/UI/fileViewer/pdfViewer/ControlPanel.tsx","../src/UI/fileViewer/pdfViewer/PDFViewer.tsx","../src/UI/fileViewer/utils/fileTypes.js","../src/UI/fileViewer/utils/fileUtils.js","../src/UI/fileViewer/imageSlider/ImageFooter.jsx","../src/UI/fileViewer/imageSlider/Image.jsx","../src/UI/fileViewer/imageSlider/ImageViewerSideSheet.jsx","../src/UI/fileViewer/imageSlider/ImageSlider.jsx","../src/UI/fileViewer/FileViewer.jsx"],"sourcesContent":["import React from 'react';\nimport { IconButton, makeStyles } from '@material-ui/core';\nimport FirstPageIcon from '@material-ui/icons/esm/FirstPage';\nimport NavigateBeforeIcon from '@material-ui/icons/esm/NavigateBefore';\nimport NavigateNextIcon from '@material-ui/icons/esm/NavigateNext';\nimport LastPageIcon from '@material-ui/icons/esm/LastPage';\nimport ZoomInIcon from '@material-ui/icons/esm/ZoomIn';\nimport ZoomOutIcon from '@material-ui/icons/esm/ZoomOut';\nimport CloudDownloadOutlinedIcon from '@material-ui/icons/esm/CloudDownloadOutlined';\nimport HighlightOffOutlinedIcon from '@material-ui/icons/esm/HighlightOffOutlined';\nimport { Typography } from '../../dataDisplay/typography/Typography';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n controlPanel: {\n fontSize: '16px',\n backgroundColor: theme.palette.background.paper,\n borderRadius: '5px',\n width: 'fit-content',\n padding: theme.spacing(1),\n margin: '8px auto',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '10px'\n },\n pageActions: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '10px'\n },\n pageNumber: {\n display: 'flex',\n gap: 5,\n minWidth: '125px'\n }\n}));\n\nconst ControlPanel = (props: any) => {\n const {\n pageNumber,\n numPages,\n setPageNumber,\n scale,\n setScale,\n file,\n closePDF,\n onClickDownload\n } = props;\n\n const isFirstPage = pageNumber === 1;\n const isLastPage = pageNumber === numPages;\n const { t } = useTranslation();\n const classes = useStyles();\n\n const goToFirstPage = () => {\n if (!isFirstPage) setPageNumber(1);\n };\n const goToPreviousPage = () => {\n if (!isFirstPage) setPageNumber(pageNumber - 1);\n };\n const goToNextPage = () => {\n if (!isLastPage) setPageNumber(pageNumber + 1);\n };\n const goToLastPage = () => {\n if (!isLastPage) setPageNumber(numPages);\n };\n\n const onPageChange = (e: any) => {\n const { value } = e.target;\n setPageNumber(Number(value));\n };\n\n const isMinZoom = scale < 0.6;\n const isMaxZoom = scale >= 2.0;\n\n const zoomOut = () => {\n if (!isMinZoom) setScale(scale - 0.1);\n };\n\n const zoomIn = () => {\n if (!isMaxZoom) setScale(scale + 0.1);\n };\n\n return (\n <div className={classes.controlPanel}>\n <div className={classes.pageActions}>\n <IconButton size='small' onClick={goToFirstPage} disabled={isFirstPage}>\n <FirstPageIcon />\n </IconButton>\n\n <IconButton\n size='small'\n onClick={goToPreviousPage}\n disabled={isFirstPage}\n >\n <NavigateBeforeIcon />\n </IconButton>\n\n <div>\n <div className={classes.pageNumber}>\n <Typography>{t('Page')} </Typography>\n <input\n name='pageNumber'\n type='number'\n min={1}\n max={numPages || 1}\n style={{\n padding: 0,\n paddingLeft: 1,\n margin: 0,\n textAlign: 'end'\n }}\n value={pageNumber}\n onChange={onPageChange}\n />{' '}\n <Typography>of {numPages}</Typography>\n </div>\n </div>\n\n <IconButton size='small' onClick={goToNextPage} disabled={isLastPage}>\n <NavigateNextIcon />\n </IconButton>\n\n <IconButton size='small' onClick={goToLastPage} disabled={isLastPage}>\n <LastPageIcon />\n </IconButton>\n </div>\n <div className={classes.pageActions}>\n <IconButton size='small' onClick={zoomOut} disabled={isMinZoom}>\n <ZoomOutIcon />\n </IconButton>\n\n <Typography>{(scale * 100).toFixed()}%</Typography>\n\n <IconButton size='small' onClick={zoomIn} disabled={isMaxZoom}>\n <ZoomInIcon />\n </IconButton>\n </div>\n\n <div>\n <IconButton href={file} size='small' onClick={onClickDownload}>\n <CloudDownloadOutlinedIcon />\n </IconButton>\n </div>\n\n <div>\n <IconButton size='small' onClick={closePDF}>\n <HighlightOffOutlinedIcon />\n </IconButton>\n </div>\n </div>\n );\n};\n\nexport default ControlPanel;\n","import React, { FC, useEffect, useState } from 'react';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport ControlPanel from './ControlPanel';\nimport { LinearProgress } from '../../loading/LinearProgress';\nimport { makeStyles } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n pdfSection: (props: PDFContainerProps) => ({\n minWidth: props?.minWidth,\n }),\n documentContainer: {\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n height: '100%',\n overflowX: 'auto',\n overflowY: 'hidden',\n },\n loadingBox: {\n width: '100%',\n },\n}));\n\ninterface PDFContainerProps {\n isPDFOpen?: boolean;\n fileUrl?: string;\n blobPDF?: Blob;\n closePDF?: () => void;\n onClickDownload?: () => void;\n minWidth?: number | string;\n}\n\nexport const PDFViewer: FC<PDFContainerProps> = ({\n isPDFOpen = true,\n fileUrl,\n blobPDF,\n closePDF,\n onClickDownload,\n minWidth\n}) => {\n const [scale, setScale] = useState(1.0);\n const [numPages, setNumPages] = useState(null);\n const [pageNumber, setPageNumber] = useState(1);\n const classes = useStyles({minWidth});\n\n useEffect(() => {\n pdfjs.GlobalWorkerOptions.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n });\n\n function onDocumentLoadSuccess({ numPages }: any) {\n setNumPages(numPages);\n }\n\n return (\n <div>\n {isPDFOpen && (\n <div id='pdf-section' className={classes.pdfSection}>\n <ControlPanel\n scale={scale}\n setScale={setScale}\n numPages={numPages}\n pageNumber={pageNumber}\n setPageNumber={setPageNumber}\n file={fileUrl ?? `data:application/pdf;base64,${blobPDF}`}\n closePDF={closePDF}\n onClickDownload={onClickDownload}\n />\n <div className={classes.documentContainer}>\n <Document\n file={fileUrl ?? `data:application/pdf;base64,${blobPDF}`}\n onLoadSuccess={onDocumentLoadSuccess}\n >\n <Page\n pageNumber={pageNumber}\n scale={scale}\n loading={\n <div className={classes.loadingBox}>\n <LinearProgress />\n </div>\n }\n />\n </Document>\n </div>\n </div>\n )}\n </div>\n );\n};\n","export const imageExtension = [\n 'png',\n 'jpeg',\n 'jpg',\n 'jpe',\n 'jif',\n 'jfif',\n 'jfi',\n 'gif',\n 'raw',\n 'svg',\n 'ttif',\n 'tif',\n 'webp',\n 'arw',\n 'sr2',\n 'nrw',\n 'k25',\n 'bmp',\n 'dib',\n 'heif',\n 'heic',\n 'ind',\n 'indd',\n 'indt',\n 'jp2',\n 'j2k',\n 'jpf',\n 'jpm',\n 'mj2',\n 'svgz',\n 'ai',\n 'eps',\n];\n","import { imageExtension } from './fileTypes';\n\nexport const handleDownloadFile = (fileUrl, fileName) => {\n const a = document.createElement('a');\n a.style.display = 'none';\n a.href = fileUrl;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(fileUrl);\n};\n\nexport const validateFilesImageType = (files = [], fileExtensionField) => {\n let type = \"image\";\n files.forEach(file => {\n if (!imageExtension.includes(file?.[fileExtensionField])) {\n type = 'invalid';\n return;\n }\n });\n return type;\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport { makeStyles } from '@material-ui/core';\nimport React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '../../dataDisplay/typography/Typography';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n secondaryText: {\n color: theme.palette.text.secondary,\n },\n description: {\n margin: theme.spacing(2),\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n },\n pageAction: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const ImageFooter = props => {\n const {\n images,\n currentImageObj,\n hidePrimaryText,\n hideSecondaryText,\n handleViewImage,\n currentImageIndex,\n } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n const showItem = useMemo(() => {\n const showPrimaryText = !hidePrimaryText && currentImageObj?.primaryText;\n const showSecondaryText =\n !hideSecondaryText && currentImageObj?.secondaryText;\n const showPageAction = images?.length > 1;\n return {\n footer: showPageAction || showPrimaryText || showSecondaryText,\n primaryText: showPrimaryText,\n secondaryText: showSecondaryText,\n pageAction: showPageAction,\n };\n }, [currentImageObj, hidePrimaryText, hideSecondaryText, images]);\n\n return (\n <>\n {showItem?.footer && (\n <div className={classes.description}>\n {showItem?.primaryText && (\n <Typography variant=\"h6\">{currentImageObj?.primaryText}</Typography>\n )}\n\n {showItem?.secondaryText && (\n <Typography variant=\"subtitle1\" className={classes.secondaryText}>\n {currentImageObj?.secondaryText}\n </Typography>\n )}\n {showItem?.pageAction && (\n <div className={classes.pageAction}>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronLeft')}\n title={t('Previous')}\n disabled={currentImageIndex == 0}\n onClick={() => {\n handleViewImage(true);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n\n <div>\n <Typography>\n {currentImageIndex + 1} {t('of')} {images?.length ?? 0}\n </Typography>\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronRight')}\n title={t('Next')}\n disabled={currentImageIndex === images?.length - 1}\n onClick={() => {\n handleViewImage();\n }}\n id=\"udpRecord-ImageSlider-NextBtn\"\n udprecordid=\"udpRecord-ImageSlider-NextBtn\"\n />\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { ImageFooter } from './ImageFooter';\n\nconst useStyles = makeStyles(theme => ({\n imageWrapper: {\n flex: '1 1 auto',\n overflow: 'hidden',\n position: 'relative',\n margin: theme.spacing(2)\n },\n image: {\n objectFit: 'contain',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n height: '100%',\n background: theme.palette.background.paper,\n },\n}));\n\nexport const Image = props => {\n const { imageObj, hidePrimaryText, hideSecondaryText } = props;\n const classes = useStyles();\n\n return (\n <div className={classes.cardContent}>\n <div className={classes.imageWrapper}>\n <img\n src={imageObj?.filePath}\n loading=\"lazy\"\n alt={`${imageObj?.fileName}`}\n className={classes.image}\n />\n </div>\n <ImageFooter\n currentImageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </div>\n );\n};\n","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { handleDownloadFile } from '../utils/fileUtils';\nimport { Image } from './Image';\nimport { SideSheet } from '../../surfaces/SideSheet';\n\nexport const ImageViewerSideSheet = (props) => {\n const {\n title,\n width,\n imageObj,\n open,\n onClose,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText\n } = props;\n const { t } = useTranslation();\n\n const handleDownloadImage = useCallback(() => {\n handleDownloadFile(imageObj?.filePath, imageObj?.fileName);\n }, [imageObj]);\n\n return (\n <SideSheet\n title={title ?? t('Image Viewer')}\n buttonLabel={hideDownload ? null : t('Download')}\n width={width ?? '90vw'}\n onSubmit={handleDownloadImage}\n open={open}\n onClose={onClose}\n contentHeight='100%'\n >\n <Image\n imageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </SideSheet>\n );\n};\n","import { Dialog, makeStyles } from '@material-ui/core';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ImageViewerSideSheet } from './ImageViewerSideSheet';\nimport { Image } from './Image';\nimport { ImageFooter } from './ImageFooter';\nimport { AmbientCard } from '../../surfaces/cards/AmbientCard';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.background.paper,\n },\n imagesWrapper: {\n display: 'flex',\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n alignItems: 'center',\n },\n imageSection: {\n width: '100%',\n height: '100%',\n },\n image: {\n objectFit: 'contain',\n display: 'block',\n flexShrink: 0,\n flexGrow: 0,\n transition: 'translate 300ms ease-in-out',\n },\n openSideSheetIcon: {\n display: 'block',\n position: 'absolute',\n top: props => (props?.title ? 64 : 8),\n right: 8,\n zIndex: 3,\n backgroundColor: theme.palette.background.paper,\n },\n dialogContent: {\n overflow: 'hidden',\n width: '100vw',\n height: '100vh',\n display: 'flex',\n flexDirection: 'column',\n },\n closeDialog: {\n margin: theme.spacing(1),\n },\n dialogImageSection: {\n flex: 2,\n height: '100%',\n },\n}));\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n fileName: 'fileName',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const ImageSlider = props => {\n const {\n title,\n images,\n fieldMapping = defaultFieldMapping,\n sideSheetTitle,\n sideSheetWidth,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText,\n hidePrimaryTextInExpandMode,\n hideSecondaryTextInExpandMode,\n expandInSideSheet = true,\n } = props;\n const classes = useStyles(props);\n const { t } = useTranslation();\n const [currentImageIndex, setCurrentImageIndex] = useState(0);\n const [openSideSheet, setOpenSideSheet] = useState(false);\n\n const handleViewImage = useCallback((previous = false) => {\n if (previous) {\n setCurrentImageIndex(prev => prev - 1);\n } else {\n setCurrentImageIndex(prev => prev + 1);\n }\n }, []);\n\n const handleExpandImage = useCallback(() => {\n setOpenSideSheet(true);\n }, []);\n\n const currentImageObj = useMemo(() => {\n const imgObj = images?.[currentImageIndex];\n if (!imgObj) return {};\n\n return {\n filePath: imgObj[fieldMapping?.filePath],\n fileName: imgObj[fieldMapping?.fileName],\n primaryText: imgObj[fieldMapping?.primaryText],\n secondaryText: imgObj[fieldMapping?.secondaryText],\n };\n }, [currentImageIndex, fieldMapping, images]);\n\n return (\n <AmbientCard\n fullWidth\n title={title}\n removePadding\n lastChildBottomPadding=\"0px\"\n removeTopLayoutUnit\n >\n <div className={classes.imagesWrapper}>\n {images?.map(image => (\n <img\n src={image?.[fieldMapping?.filePath]}\n alt={`${image?.[fieldMapping?.fileName]}`}\n loading=\"lazy\"\n width=\"100%\"\n height=\"auto\"\n className={classes.image}\n style={{ translate: `${-100 * currentImageIndex}%` }}\n />\n ))}\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('MiniExpand')}\n title={t('Expand Image')}\n onClick={handleExpandImage}\n id=\"udpRecord-ImageSlider-ExpandBtn\"\n udprecordid=\"udpRecord-ImageSlider-ExpandBtn\"\n className={classes.openSideSheetIcon}\n />\n <ImageFooter\n images={images}\n currentImageObj={currentImageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n handleViewImage={handleViewImage}\n currentImageIndex={currentImageIndex}\n />\n\n {expandInSideSheet ? (\n <ImageViewerSideSheet\n title={sideSheetTitle}\n open={openSideSheet}\n onClose={() => {\n setOpenSideSheet(false);\n }}\n imageObj={currentImageObj}\n width={sideSheetWidth}\n hideDownload={hideDownload}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n ) : (\n <Dialog\n onClose={() => {\n setOpenSideSheet(false);\n }}\n open={openSideSheet}\n fullScreen\n >\n <div className={classes.dialogContent}>\n <div className={classes.closeDialog}>\n <IconButtonWithTooltip\n icon={getIconFromName('Cancel')}\n title={t('Close')}\n onClick={() => {\n setOpenSideSheet(false);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n </div>\n <div className={classes.dialogImageSection}>\n <Image\n imageObj={currentImageObj}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n </div>\n </div>\n </Dialog>\n )}\n </AmbientCard>\n );\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport React, { useMemo } from 'react';\nimport { PDFViewer } from './pdfViewer/PDFViewer';\nimport { ImageSlider } from './imageSlider/ImageSlider';\nimport { validateFilesImageType } from './utils/fileUtils';\nimport { useTranslation } from 'react-i18next';\nimport { AmbientAlert } from '../feedback/AmbientAlert';\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n blobFile: 'blobFile',\n fileName: 'fileName',\n fileExtension: 'fileExtension',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const FileViewer = props => {\n const {\n data,\n fieldMapping = defaultFieldMapping,\n acceptedFileExtensions,\n ...otherProps\n } = props;\n const { t } = useTranslation();\n\n //filter data\n const filteredData = useMemo(() => {\n if (!acceptedFileExtensions || acceptedFileExtensions?.length === 0)\n return data;\n if (data instanceof Array && data?.length > 0) {\n return data?.filter(item =>\n acceptedFileExtensions?.includes(item?.[fieldMapping?.fileExtension])\n );\n } else {\n return acceptedFileExtensions?.includes(\n data?.[fieldMapping?.fileExtension]\n )\n ? data\n : null;\n }\n }, [acceptedFileExtensions, data, fieldMapping]);\n\n // check if the data is an array. If yes, currently only image viewer accept this list,\n // we need to validate if all the file in the list is image\n const fileType = useMemo(() => {\n if (filteredData instanceof Array) {\n const type = validateFilesImageType(\n filteredData,\n fieldMapping?.fileExtension\n );\n return type;\n }\n return filteredData?.[fieldMapping?.fileExtension];\n }, [fieldMapping, filteredData]);\n\n const viewer = useMemo(() => {\n switch (fileType) {\n case 'pdf':\n return (\n <PDFViewer\n fileUrl={filteredData?.[fieldMapping?.filePath]}\n blobPDF={filteredData?.[fieldMapping?.blobFile]}\n {...otherProps}\n />\n );\n case 'image':\n return (\n <ImageSlider\n images={filteredData}\n fieldMapping={fieldMapping}\n {...otherProps}\n />\n );\n default:\n return (\n <AmbientAlert\n alertMessage={t('Unable to view file')}\n showAlert\n alertSeverity=\"error\"\n />\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fileType, data, fieldMapping, otherProps]);\n\n return <>{viewer}</>;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fileViewer-CG0HJ-Ko.js","names":["useStyles","Typography","useStyles","PDFViewer: FC<PDFContainerProps>","numPages","ControlPanel","LinearProgress","useStyles","Typography","useStyles","defaultFieldMapping"],"sources":["../src/UI/fileViewer/pdfViewer/ControlPanel.tsx","../src/UI/fileViewer/pdfViewer/PDFViewer.tsx","../src/UI/fileViewer/utils/fileTypes.js","../src/UI/fileViewer/utils/fileUtils.js","../src/UI/fileViewer/imageSlider/ImageFooter.jsx","../src/UI/fileViewer/imageSlider/Image.jsx","../src/UI/fileViewer/imageSlider/ImageViewerSideSheet.jsx","../src/UI/fileViewer/imageSlider/ImageSlider.jsx","../src/UI/fileViewer/FileViewer.jsx"],"sourcesContent":["import React from 'react';\nimport { IconButton, makeStyles } from '@material-ui/core';\nimport FirstPageIcon from '@material-ui/icons/esm/FirstPage';\nimport NavigateBeforeIcon from '@material-ui/icons/esm/NavigateBefore';\nimport NavigateNextIcon from '@material-ui/icons/esm/NavigateNext';\nimport LastPageIcon from '@material-ui/icons/esm/LastPage';\nimport ZoomInIcon from '@material-ui/icons/esm/ZoomIn';\nimport ZoomOutIcon from '@material-ui/icons/esm/ZoomOut';\nimport CloudDownloadOutlinedIcon from '@material-ui/icons/esm/CloudDownloadOutlined';\nimport HighlightOffOutlinedIcon from '@material-ui/icons/esm/HighlightOffOutlined';\nimport { Typography } from '../../dataDisplay/typography/Typography';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n controlPanel: {\n fontSize: '16px',\n backgroundColor: theme.palette.background.paper,\n borderRadius: '5px',\n width: 'fit-content',\n padding: theme.spacing(1),\n margin: '8px auto',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '10px'\n },\n pageActions: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '10px'\n },\n pageNumber: {\n display: 'flex',\n gap: 5,\n minWidth: '125px'\n }\n}));\n\nconst ControlPanel = (props: any) => {\n const {\n pageNumber,\n numPages,\n setPageNumber,\n scale,\n setScale,\n file,\n closePDF,\n onClickDownload\n } = props;\n\n const isFirstPage = pageNumber === 1;\n const isLastPage = pageNumber === numPages;\n const { t } = useTranslation();\n const classes = useStyles();\n\n const goToFirstPage = () => {\n if (!isFirstPage) setPageNumber(1);\n };\n const goToPreviousPage = () => {\n if (!isFirstPage) setPageNumber(pageNumber - 1);\n };\n const goToNextPage = () => {\n if (!isLastPage) setPageNumber(pageNumber + 1);\n };\n const goToLastPage = () => {\n if (!isLastPage) setPageNumber(numPages);\n };\n\n const onPageChange = (e: any) => {\n const { value } = e.target;\n setPageNumber(Number(value));\n };\n\n const isMinZoom = scale < 0.6;\n const isMaxZoom = scale >= 2.0;\n\n const zoomOut = () => {\n if (!isMinZoom) setScale(scale - 0.1);\n };\n\n const zoomIn = () => {\n if (!isMaxZoom) setScale(scale + 0.1);\n };\n\n return (\n <div className={classes.controlPanel}>\n <div className={classes.pageActions}>\n <IconButton size='small' onClick={goToFirstPage} disabled={isFirstPage}>\n <FirstPageIcon />\n </IconButton>\n\n <IconButton\n size='small'\n onClick={goToPreviousPage}\n disabled={isFirstPage}\n >\n <NavigateBeforeIcon />\n </IconButton>\n\n <div>\n <div className={classes.pageNumber}>\n <Typography>{t('Page')} </Typography>\n <input\n name='pageNumber'\n type='number'\n min={1}\n max={numPages || 1}\n style={{\n padding: 0,\n paddingLeft: 1,\n margin: 0,\n textAlign: 'end'\n }}\n value={pageNumber}\n onChange={onPageChange}\n />{' '}\n <Typography>of {numPages}</Typography>\n </div>\n </div>\n\n <IconButton size='small' onClick={goToNextPage} disabled={isLastPage}>\n <NavigateNextIcon />\n </IconButton>\n\n <IconButton size='small' onClick={goToLastPage} disabled={isLastPage}>\n <LastPageIcon />\n </IconButton>\n </div>\n <div className={classes.pageActions}>\n <IconButton size='small' onClick={zoomOut} disabled={isMinZoom}>\n <ZoomOutIcon />\n </IconButton>\n\n <Typography>{(scale * 100).toFixed()}%</Typography>\n\n <IconButton size='small' onClick={zoomIn} disabled={isMaxZoom}>\n <ZoomInIcon />\n </IconButton>\n </div>\n\n <div>\n <IconButton href={file} size='small' onClick={onClickDownload}>\n <CloudDownloadOutlinedIcon />\n </IconButton>\n </div>\n\n <div>\n <IconButton size='small' onClick={closePDF}>\n <HighlightOffOutlinedIcon />\n </IconButton>\n </div>\n </div>\n );\n};\n\nexport default ControlPanel;\n","import React, { FC, useEffect, useState } from 'react';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport ControlPanel from './ControlPanel';\nimport { LinearProgress } from '../../loading/LinearProgress';\nimport { makeStyles } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n pdfSection: (props: PDFContainerProps) => ({\n minWidth: props?.minWidth,\n }),\n documentContainer: {\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n height: '100%',\n overflowX: 'auto',\n overflowY: 'hidden',\n },\n loadingBox: {\n width: '100%',\n },\n}));\n\ninterface PDFContainerProps {\n isPDFOpen?: boolean;\n fileUrl?: string;\n blobPDF?: Blob;\n closePDF?: () => void;\n onClickDownload?: () => void;\n minWidth?: number | string;\n}\n\nexport const PDFViewer: FC<PDFContainerProps> = ({\n isPDFOpen = true,\n fileUrl,\n blobPDF,\n closePDF,\n onClickDownload,\n minWidth\n}) => {\n const [scale, setScale] = useState(1.0);\n const [numPages, setNumPages] = useState(null);\n const [pageNumber, setPageNumber] = useState(1);\n const classes = useStyles({minWidth});\n\n useEffect(() => {\n pdfjs.GlobalWorkerOptions.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n });\n\n function onDocumentLoadSuccess({ numPages }: any) {\n setNumPages(numPages);\n }\n\n return (\n <div>\n {isPDFOpen && (\n <div id='pdf-section' className={classes.pdfSection}>\n <ControlPanel\n scale={scale}\n setScale={setScale}\n numPages={numPages}\n pageNumber={pageNumber}\n setPageNumber={setPageNumber}\n file={fileUrl ?? `data:application/pdf;base64,${blobPDF}`}\n closePDF={closePDF}\n onClickDownload={onClickDownload}\n />\n <div className={classes.documentContainer}>\n <Document\n file={fileUrl ?? `data:application/pdf;base64,${blobPDF}`}\n onLoadSuccess={onDocumentLoadSuccess}\n >\n <Page\n pageNumber={pageNumber}\n scale={scale}\n loading={\n <div className={classes.loadingBox}>\n <LinearProgress />\n </div>\n }\n />\n </Document>\n </div>\n </div>\n )}\n </div>\n );\n};\n","export const imageExtension = [\n 'png',\n 'jpeg',\n 'jpg',\n 'jpe',\n 'jif',\n 'jfif',\n 'jfi',\n 'gif',\n 'raw',\n 'svg',\n 'ttif',\n 'tif',\n 'webp',\n 'arw',\n 'sr2',\n 'nrw',\n 'k25',\n 'bmp',\n 'dib',\n 'heif',\n 'heic',\n 'ind',\n 'indd',\n 'indt',\n 'jp2',\n 'j2k',\n 'jpf',\n 'jpm',\n 'mj2',\n 'svgz',\n 'ai',\n 'eps',\n];\n","import { imageExtension } from './fileTypes';\n\nexport const handleDownloadFile = (fileUrl, fileName) => {\n const a = document.createElement('a');\n a.style.display = 'none';\n a.href = fileUrl;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(fileUrl);\n};\n\nexport const validateFilesImageType = (files = [], fileExtensionField) => {\n let type = \"image\";\n files.forEach(file => {\n if (!imageExtension.includes(file?.[fileExtensionField])) {\n type = 'invalid';\n return;\n }\n });\n return type;\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport { makeStyles } from '@material-ui/core';\nimport React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '../../dataDisplay/typography/Typography';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n secondaryText: {\n color: theme.palette.text.secondary,\n },\n description: {\n margin: theme.spacing(2),\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n },\n pageAction: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const ImageFooter = props => {\n const {\n images,\n currentImageObj,\n hidePrimaryText,\n hideSecondaryText,\n handleViewImage,\n currentImageIndex,\n } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n const showItem = useMemo(() => {\n const showPrimaryText = !hidePrimaryText && currentImageObj?.primaryText;\n const showSecondaryText =\n !hideSecondaryText && currentImageObj?.secondaryText;\n const showPageAction = images?.length > 1;\n return {\n footer: showPageAction || showPrimaryText || showSecondaryText,\n primaryText: showPrimaryText,\n secondaryText: showSecondaryText,\n pageAction: showPageAction,\n };\n }, [currentImageObj, hidePrimaryText, hideSecondaryText, images]);\n\n return (\n <>\n {showItem?.footer && (\n <div className={classes.description}>\n {showItem?.primaryText && (\n <Typography variant=\"h6\">{currentImageObj?.primaryText}</Typography>\n )}\n\n {showItem?.secondaryText && (\n <Typography variant=\"subtitle1\" className={classes.secondaryText}>\n {currentImageObj?.secondaryText}\n </Typography>\n )}\n {showItem?.pageAction && (\n <div className={classes.pageAction}>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronLeft')}\n title={t('Previous')}\n disabled={currentImageIndex == 0}\n onClick={() => {\n handleViewImage(true);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n\n <div>\n <Typography>\n {currentImageIndex + 1} {t('of')} {images?.length ?? 0}\n </Typography>\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronRight')}\n title={t('Next')}\n disabled={currentImageIndex === images?.length - 1}\n onClick={() => {\n handleViewImage();\n }}\n id=\"udpRecord-ImageSlider-NextBtn\"\n udprecordid=\"udpRecord-ImageSlider-NextBtn\"\n />\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { ImageFooter } from './ImageFooter';\n\nconst useStyles = makeStyles(theme => ({\n imageWrapper: {\n flex: '1 1 auto',\n overflow: 'hidden',\n position: 'relative',\n margin: theme.spacing(2)\n },\n image: {\n objectFit: 'contain',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n height: '100%',\n background: theme.palette.background.paper,\n },\n}));\n\nexport const Image = props => {\n const { imageObj, hidePrimaryText, hideSecondaryText } = props;\n const classes = useStyles();\n\n return (\n <div className={classes.cardContent}>\n <div className={classes.imageWrapper}>\n <img\n src={imageObj?.filePath}\n loading=\"lazy\"\n alt={`${imageObj?.fileName}`}\n className={classes.image}\n />\n </div>\n <ImageFooter\n currentImageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </div>\n );\n};\n","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { handleDownloadFile } from '../utils/fileUtils';\nimport { Image } from './Image';\nimport { SideSheet } from '../../surfaces/SideSheet';\n\nexport const ImageViewerSideSheet = (props) => {\n const {\n title,\n width,\n imageObj,\n open,\n onClose,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText\n } = props;\n const { t } = useTranslation();\n\n const handleDownloadImage = useCallback(() => {\n handleDownloadFile(imageObj?.filePath, imageObj?.fileName);\n }, [imageObj]);\n\n return (\n <SideSheet\n title={title ?? t('Image Viewer')}\n buttonLabel={hideDownload ? null : t('Download')}\n width={width ?? '90vw'}\n onSubmit={handleDownloadImage}\n open={open}\n onClose={onClose}\n contentHeight='100%'\n >\n <Image\n imageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </SideSheet>\n );\n};\n","import { Dialog, makeStyles } from '@material-ui/core';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ImageViewerSideSheet } from './ImageViewerSideSheet';\nimport { Image } from './Image';\nimport { ImageFooter } from './ImageFooter';\nimport { AmbientCard } from '../../surfaces/cards/AmbientCard';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.background.paper,\n },\n imagesWrapper: {\n display: 'flex',\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n alignItems: 'center',\n },\n imageSection: {\n width: '100%',\n height: '100%',\n },\n image: {\n objectFit: 'contain',\n display: 'block',\n flexShrink: 0,\n flexGrow: 0,\n transition: 'translate 300ms ease-in-out',\n },\n openSideSheetIcon: {\n display: 'block',\n position: 'absolute',\n top: props => (props?.title ? 64 : 8),\n right: 8,\n zIndex: 3,\n backgroundColor: theme.palette.background.paper,\n },\n dialogContent: {\n overflow: 'hidden',\n width: '100vw',\n height: '100vh',\n display: 'flex',\n flexDirection: 'column',\n },\n closeDialog: {\n margin: theme.spacing(1),\n },\n dialogImageSection: {\n flex: 2,\n height: '100%',\n },\n}));\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n fileName: 'fileName',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const ImageSlider = props => {\n const {\n title,\n images,\n fieldMapping = defaultFieldMapping,\n sideSheetTitle,\n sideSheetWidth,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText,\n hidePrimaryTextInExpandMode,\n hideSecondaryTextInExpandMode,\n expandInSideSheet = true,\n } = props;\n const classes = useStyles(props);\n const { t } = useTranslation();\n const [currentImageIndex, setCurrentImageIndex] = useState(0);\n const [openSideSheet, setOpenSideSheet] = useState(false);\n\n const handleViewImage = useCallback((previous = false) => {\n if (previous) {\n setCurrentImageIndex(prev => prev - 1);\n } else {\n setCurrentImageIndex(prev => prev + 1);\n }\n }, []);\n\n const handleExpandImage = useCallback(() => {\n setOpenSideSheet(true);\n }, []);\n\n const currentImageObj = useMemo(() => {\n const imgObj = images?.[currentImageIndex];\n if (!imgObj) return {};\n\n return {\n filePath: imgObj[fieldMapping?.filePath],\n fileName: imgObj[fieldMapping?.fileName],\n primaryText: imgObj[fieldMapping?.primaryText],\n secondaryText: imgObj[fieldMapping?.secondaryText],\n };\n }, [currentImageIndex, fieldMapping, images]);\n\n return (\n <AmbientCard\n fullWidth\n title={title}\n removePadding\n lastChildBottomPadding=\"0px\"\n removeTopLayoutUnit\n >\n <div className={classes.imagesWrapper}>\n {images?.map(image => (\n <img\n src={image?.[fieldMapping?.filePath]}\n alt={`${image?.[fieldMapping?.fileName]}`}\n loading=\"lazy\"\n width=\"100%\"\n height=\"auto\"\n className={classes.image}\n style={{ translate: `${-100 * currentImageIndex}%` }}\n />\n ))}\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('MiniExpand')}\n title={t('Expand Image')}\n onClick={handleExpandImage}\n id=\"udpRecord-ImageSlider-ExpandBtn\"\n udprecordid=\"udpRecord-ImageSlider-ExpandBtn\"\n className={classes.openSideSheetIcon}\n />\n <ImageFooter\n images={images}\n currentImageObj={currentImageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n handleViewImage={handleViewImage}\n currentImageIndex={currentImageIndex}\n />\n\n {expandInSideSheet ? (\n <ImageViewerSideSheet\n title={sideSheetTitle}\n open={openSideSheet}\n onClose={() => {\n setOpenSideSheet(false);\n }}\n imageObj={currentImageObj}\n width={sideSheetWidth}\n hideDownload={hideDownload}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n ) : (\n <Dialog\n onClose={() => {\n setOpenSideSheet(false);\n }}\n open={openSideSheet}\n fullScreen\n >\n <div className={classes.dialogContent}>\n <div className={classes.closeDialog}>\n <IconButtonWithTooltip\n icon={getIconFromName('Cancel')}\n title={t('Close')}\n onClick={() => {\n setOpenSideSheet(false);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n </div>\n <div className={classes.dialogImageSection}>\n <Image\n imageObj={currentImageObj}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n </div>\n </div>\n </Dialog>\n )}\n </AmbientCard>\n );\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport React, { useMemo } from 'react';\nimport { PDFViewer } from './pdfViewer/PDFViewer';\nimport { ImageSlider } from './imageSlider/ImageSlider';\nimport { validateFilesImageType } from './utils/fileUtils';\nimport { useTranslation } from 'react-i18next';\nimport { AmbientAlert } from '../feedback/AmbientAlert';\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n blobFile: 'blobFile',\n fileName: 'fileName',\n fileExtension: 'fileExtension',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const FileViewer = props => {\n const {\n data,\n fieldMapping = defaultFieldMapping,\n acceptedFileExtensions,\n ...otherProps\n } = props;\n const { t } = useTranslation();\n\n //filter data\n const filteredData = useMemo(() => {\n if (!acceptedFileExtensions || acceptedFileExtensions?.length === 0)\n return data;\n if (data instanceof Array && data?.length > 0) {\n return data?.filter(item =>\n acceptedFileExtensions?.includes(item?.[fieldMapping?.fileExtension])\n );\n } else {\n return acceptedFileExtensions?.includes(\n data?.[fieldMapping?.fileExtension]\n )\n ? data\n : null;\n }\n }, [acceptedFileExtensions, data, fieldMapping]);\n\n // check if the data is an array. If yes, currently only image viewer accept this list,\n // we need to validate if all the file in the list is image\n const fileType = useMemo(() => {\n if (filteredData instanceof Array) {\n const type = validateFilesImageType(\n filteredData,\n fieldMapping?.fileExtension\n );\n return type;\n }\n return filteredData?.[fieldMapping?.fileExtension];\n }, [fieldMapping, filteredData]);\n\n const viewer = useMemo(() => {\n switch (fileType) {\n case 'pdf':\n return (\n <PDFViewer\n fileUrl={filteredData?.[fieldMapping?.filePath]}\n blobPDF={filteredData?.[fieldMapping?.blobFile]}\n {...otherProps}\n />\n );\n case 'image':\n return (\n <ImageSlider\n images={filteredData}\n fieldMapping={fieldMapping}\n {...otherProps}\n />\n );\n default:\n return (\n <AmbientAlert\n alertMessage={t('Unable to view file')}\n showAlert\n alertSeverity=\"error\"\n />\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fileType, data, fieldMapping, otherProps]);\n\n return <>{viewer}</>;\n};\n"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { n as SideSheet } from "./SideSheet-t6uVFYIJ.js";
|
|
|
3
3
|
import { t as DraggableSidebarTemplate } from "./DraggableSidebarTemplate-BdTho2mK.js";
|
|
4
4
|
import { t as AmbientGridTemplate } from "./AmbientGridTemplate-Cbl9GXcd.js";
|
|
5
5
|
import { t as FluentDialog } from "./FluentDialog-CXnECDfH.js";
|
|
6
|
-
import { t as SubHeaderAction } from "./SubHeaderAction-
|
|
6
|
+
import { t as SubHeaderAction } from "./SubHeaderAction-F_GKrUBX.js";
|
|
7
7
|
import { t as HeaderExpander } from "./HeaderExpander-mfnLztCs.js";
|
|
8
8
|
import { t as AmbientToast } from "./AmbientToast-DBqmUyH-.js";
|
|
9
9
|
import { t as AmbientAlert } from "./AmbientAlert-gju6JVxW.js";
|
|
@@ -151,4 +151,4 @@ CoreLayoutFloorplan.propTypes = {
|
|
|
151
151
|
|
|
152
152
|
//#endregion
|
|
153
153
|
export { CoreLayoutFloorplan as t };
|
|
154
|
-
//# sourceMappingURL=floorplans-
|
|
154
|
+
//# sourceMappingURL=floorplans-bd5zEyHl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floorplans-t1AcjVJw.js","names":[],"sources":["../src/UI/floorplans/CoreLayoutFloorplan.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\n// MUI\nimport {\n Card,\n CardContent,\n useTheme,\n useMediaQuery,\n makeStyles,\n Slide\n} from '@material-ui/core';\n\n//FLuent library\nimport { SubHeaderAction } from '../../utilities/utilityBar/SubHeaderAction';\nimport { FluentDialog } from '../feedback/FluentDialog';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { AmbientGridTemplate } from '../templates/AmbientGridTemplate';\nimport { SideSheet } from '../surfaces/SideSheet';\nimport { HeaderExpander } from '../dataDisplay/HeaderExpander';\nimport { DraggableSidebarTemplate } from '../templates/DraggableSidebarTemplate';\nimport { AmbientToast } from '../feedback/AmbientToast';\nimport { AmbientAlert } from '../feedback/AmbientAlert';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {},\n cardDisplay: {\n marginBottom: theme.spacing(2)\n },\n padding: {\n padding: (props) => !props.noPadding && theme.spacing(1)\n },\n splitScreen: {\n width: '100%',\n height: '100%'\n }\n }),\n { name: 'CoreLayoutFloorplan' }\n);\n\nexport const CoreLayoutFloorplan = (props) => {\n const {\n PrimaryActionHeader,\n children,\n footer,\n gridData,\n groupData,\n columnDefinitions,\n expandedData,\n splitScreen,\n splitScreenContent,\n splitScreenWidth,\n setSplitScreenWidth,\n sideSheetTitle,\n sideSheetButton,\n sideSheetDisabled,\n sideSheetProgress,\n sideSheetOpen,\n setSideSheetOpen,\n setSideSheetClose,\n sideSheetContent,\n dialogActionOne,\n dialogActionTwo,\n dialogClose,\n dialogOpen,\n dialogTitle,\n dialogMessage,\n dialogLabelOne,\n dialogLabelTwo,\n notice,\n alertButton,\n alertMessage,\n alertType,\n closeNotice,\n noticeOpen,\n noticeAction,\n noticeType,\n noticeMessage,\n noticeButton,\n alertSeverity,\n showAlert,\n closeAlert,\n DialogLoadingvariant = 'determinate',\n disableDialogAction,\n compactHeader,\n headerExpanded,\n expanderLeftContainer,\n gridTemplateTitle,\n removePadding,\n removeHeader,\n hideSidebarButton,\n defaultAutoSize,\n hideGrid = false,\n useSubHeaderAction = true,\n ...otherProps\n } = props;\n const theme = useTheme();\n const desktop = useMediaQuery(theme.breakpoints.up('sm'));\n const mobile = useMediaQuery(theme.breakpoints.down('sm'));\n const classes = useStyles(props);\n\n const actionHeader = useMemo(\n () => (\n <>\n <AmbientAlert\n alertMessage={alertMessage}\n alertButton={alertButton}\n alertSeverity={alertSeverity}\n showAlert={showAlert}\n closeAlert={closeAlert}\n />\n {PrimaryActionHeader}\n </>\n ),\n [\n alertMessage,\n alertButton,\n alertSeverity,\n showAlert,\n closeAlert,\n PrimaryActionHeader\n ]\n );\n\n return (\n <div>\n <DraggableSidebarTemplate\n width={splitScreenWidth}\n setWidth={setSplitScreenWidth}\n // @todo: remove padding hack\n removePadding={removePadding}\n hide={hideSidebarButton}\n {...otherProps}\n body={\n <div>\n <div>\n {!useSubHeaderAction && !!PrimaryActionHeader && (\n <Card variant='outlined'>{actionHeader}</Card>\n )}\n {useSubHeaderAction && !!PrimaryActionHeader && (\n <SubHeaderAction>{actionHeader}</SubHeaderAction>\n )}\n {!removeHeader && (\n <HeaderExpander\n toggleLabel='Data Visualization'\n sectionOpen={headerExpanded}\n compact={compactHeader}\n options={expanderLeftContainer}\n >\n <div className={classes.padding}> {expandedData} </div>\n </HeaderExpander>\n )}\n\n {!removeHeader && <LayoutUnit unit='xxs' />}\n\n {children}\n {!hideGrid && (\n <AmbientGridTemplate\n {...otherProps}\n title={gridTemplateTitle}\n data={gridData}\n columnDefs={columnDefinitions}\n groupingData={groupData}\n defaultAutoSize={defaultAutoSize}\n />\n )}\n </div>\n </div>\n }\n sidebar={\n <Slide in={splitScreen && splitScreen} direction='left'>\n <div style={{ height: '100%' }}>\n {splitScreen && (\n <div className={classes.splitScreen}>\n <Card square style={{ height: '100%' }}>\n <CardContent>{splitScreenContent}</CardContent>\n </Card>\n </div>\n )}\n </div>\n </Slide>\n }\n />\n\n <SideSheet\n key={'sideSheet'}\n title={sideSheetTitle}\n width={!desktop ? 350 : 500}\n buttonLabel={sideSheetButton}\n open={sideSheetOpen}\n onClose={setSideSheetClose}\n disabled={sideSheetDisabled}\n progress={sideSheetProgress}\n buttonProgress\n children={sideSheetContent}\n />\n\n <FluentDialog\n title={dialogTitle}\n message={dialogMessage}\n labelOne={dialogLabelOne}\n actionOne={dialogActionOne}\n labelTwo={dialogLabelTwo}\n actionTwo={dialogActionTwo}\n open={dialogOpen}\n handleClose={dialogClose}\n progress={20}\n variant={DialogLoadingvariant}\n disableTwo={disableDialogAction}\n />\n <AmbientToast\n noticeType={noticeType}\n noticeMessage={noticeMessage}\n noticeButton={noticeButton}\n closeNotice={closeNotice}\n noticeOpen={noticeOpen}\n noticeAction={noticeAction}\n alertSeverity={alertSeverity}\n />\n {footer}\n </div>\n );\n};\n\nCoreLayoutFloorplan.propTypes = {\n /**\n * Container to add Primary Action Header to page\n */\n PrimaryActionHeader: PropTypes.node,\n /**\n * Additional open area on page to add content. Adds a space above the grid area.\n */\n children: PropTypes.object,\n /**\n * Content that shows up in the split screen area.\n */\n splitScreenContent: PropTypes.node,\n /**\n * Data for AgGrid.\n */\n gridData: PropTypes.array,\n /**\n * Accepts an array of data to build out the buttons and functions to group data on the grid.\n */\n groupData: PropTypes.array,\n /**\n * Grid definitions to define keys for AgGrid.\n */\n columnDefinitions: PropTypes.arrayOf(PropTypes.object),\n /**\n * Content area for top expanded section.\n */\n expandedData: PropTypes.string,\n /**\n * shows or hides split screen (default: false)\n */\n splitScreen: PropTypes.string,\n /**\n * The width the split screen displays at.\n */\n splitScreenWidth: PropTypes.string,\n /**\n * To connect function to update state for split screen width.\n */\n setSplitScreenWidth: PropTypes.string,\n /**\n * Used to set side sheet title.\n */\n sideSheetTitle: PropTypes.string,\n /**\n * Lable for the side sheet action button.\n */\n sideSheetButton: PropTypes.string,\n /**\n * Disable Toggle for the side sheet button.\n */\n sideSheetDisabled: PropTypes.string,\n /**\n * Allows progress indication for the side sheet.\n */\n sideSheetProgress: PropTypes.number,\n /**\n * When true sets the side sheet open (default: false)\n */\n sideSheetOpen: PropTypes.bool,\n /**\n * State function to set the side sheet state true or false.\n */\n setSideSheetOpen: PropTypes.string,\n /**\n * Function to set the side sheet closed.\n */\n setSideSheetClose: PropTypes.string,\n /**\n * Content that displays in the side sheet.\n */\n setSideSheetContent: PropTypes.string,\n /**\n * Action for the first button in the dialog.\n */\n dialogActionOne: PropTypes.string,\n /**\n * Action for the second button in the dialog.\n */\n dialogActionTwo: PropTypes.string,\n /**\n * Function to canel open dialog.\n */\n dialogClose: PropTypes.string,\n /**\n * If true will cause the dialog to open.\n */\n dialogOpen: PropTypes.string,\n /**\n * Main title of the dialog.\n */\n dialogTitle: PropTypes.string,\n /**\n * Dialog message.\n */\n dialogMessage: PropTypes.string,\n /**\n * Label for first button of dialog.\n */\n dialogLabelOne: PropTypes.string,\n /**\n * Label for second button of dialog.\n */\n dialogLableTwo: PropTypes.string,\n /**\n * If true will display the notice message.\n */\n notice: PropTypes.string,\n /**\n * Label for alert button.\n */\n alertButton: PropTypes.string,\n /**\n * Message that displays in alert.\n */\n alertMessage: PropTypes.string,\n /**\n * Sets the severity of the alert (info, warning, error, success).\n */\n alertType: PropTypes.string,\n /**\n * Function to close notice.\n */\n closeNotice: PropTypes.string,\n /**\n * If true the notice will be displayed.\n */\n noticeOpen: PropTypes.string,\n /**\n * Optional action assigned to notice.\n */\n noticeAction: PropTypes.string,\n /**\n * The type of notice: error, warning, success, info (toast).\n */\n noticeType: PropTypes.string,\n /**\n * The message contained in the notice (toast).\n */\n noticeMessage: PropTypes.string,\n /**\n * The label for the notice button (toast).\n */\n noticeButton: PropTypes.string,\n /**\n * Sets the severity of the alert (info, warning, error, success).\n */\n alertSeverity: PropTypes.string,\n /**\n * If true the alert will display.\n */\n showAlert: PropTypes.string,\n /**\n * Function to close alert.\n */\n closeAlert: PropTypes.string,\n /**\n * Sets the type of the progress indicator for the dialog.\n */\n DialogLoadingvariant: PropTypes.string,\n /**\n * sets the action button on the dialog to disabled.\n */\n disableDialogAction: PropTypes.string,\n /**\n * Allows for a smaller tab version of the expandable drawer.\n */\n compactHeader: PropTypes.string,\n /**\n * If true, the header expander will be open (default: true)\n */\n headerExpanded: PropTypes.string,\n /**\n * Section in expander to allow for additional content within the tab area.\n */\n expanderLeftContainer: PropTypes.string,\n /**\n * Sets the grid default to expaned size if true. The default is 'size to fit'.\n */\n defaultAutoSize: PropTypes.bool,\n /**\n * Sets the teleporter for primary action header if it's true\n */\n useSubHeaderAction: PropTypes.bool\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"floorplans-bd5zEyHl.js","names":[],"sources":["../src/UI/floorplans/CoreLayoutFloorplan.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\n// MUI\nimport {\n Card,\n CardContent,\n useTheme,\n useMediaQuery,\n makeStyles,\n Slide\n} from '@material-ui/core';\n\n//FLuent library\nimport { SubHeaderAction } from '../../utilities/utilityBar/SubHeaderAction';\nimport { FluentDialog } from '../feedback/FluentDialog';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { AmbientGridTemplate } from '../templates/AmbientGridTemplate';\nimport { SideSheet } from '../surfaces/SideSheet';\nimport { HeaderExpander } from '../dataDisplay/HeaderExpander';\nimport { DraggableSidebarTemplate } from '../templates/DraggableSidebarTemplate';\nimport { AmbientToast } from '../feedback/AmbientToast';\nimport { AmbientAlert } from '../feedback/AmbientAlert';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {},\n cardDisplay: {\n marginBottom: theme.spacing(2)\n },\n padding: {\n padding: (props) => !props.noPadding && theme.spacing(1)\n },\n splitScreen: {\n width: '100%',\n height: '100%'\n }\n }),\n { name: 'CoreLayoutFloorplan' }\n);\n\nexport const CoreLayoutFloorplan = (props) => {\n const {\n PrimaryActionHeader,\n children,\n footer,\n gridData,\n groupData,\n columnDefinitions,\n expandedData,\n splitScreen,\n splitScreenContent,\n splitScreenWidth,\n setSplitScreenWidth,\n sideSheetTitle,\n sideSheetButton,\n sideSheetDisabled,\n sideSheetProgress,\n sideSheetOpen,\n setSideSheetOpen,\n setSideSheetClose,\n sideSheetContent,\n dialogActionOne,\n dialogActionTwo,\n dialogClose,\n dialogOpen,\n dialogTitle,\n dialogMessage,\n dialogLabelOne,\n dialogLabelTwo,\n notice,\n alertButton,\n alertMessage,\n alertType,\n closeNotice,\n noticeOpen,\n noticeAction,\n noticeType,\n noticeMessage,\n noticeButton,\n alertSeverity,\n showAlert,\n closeAlert,\n DialogLoadingvariant = 'determinate',\n disableDialogAction,\n compactHeader,\n headerExpanded,\n expanderLeftContainer,\n gridTemplateTitle,\n removePadding,\n removeHeader,\n hideSidebarButton,\n defaultAutoSize,\n hideGrid = false,\n useSubHeaderAction = true,\n ...otherProps\n } = props;\n const theme = useTheme();\n const desktop = useMediaQuery(theme.breakpoints.up('sm'));\n const mobile = useMediaQuery(theme.breakpoints.down('sm'));\n const classes = useStyles(props);\n\n const actionHeader = useMemo(\n () => (\n <>\n <AmbientAlert\n alertMessage={alertMessage}\n alertButton={alertButton}\n alertSeverity={alertSeverity}\n showAlert={showAlert}\n closeAlert={closeAlert}\n />\n {PrimaryActionHeader}\n </>\n ),\n [\n alertMessage,\n alertButton,\n alertSeverity,\n showAlert,\n closeAlert,\n PrimaryActionHeader\n ]\n );\n\n return (\n <div>\n <DraggableSidebarTemplate\n width={splitScreenWidth}\n setWidth={setSplitScreenWidth}\n // @todo: remove padding hack\n removePadding={removePadding}\n hide={hideSidebarButton}\n {...otherProps}\n body={\n <div>\n <div>\n {!useSubHeaderAction && !!PrimaryActionHeader && (\n <Card variant='outlined'>{actionHeader}</Card>\n )}\n {useSubHeaderAction && !!PrimaryActionHeader && (\n <SubHeaderAction>{actionHeader}</SubHeaderAction>\n )}\n {!removeHeader && (\n <HeaderExpander\n toggleLabel='Data Visualization'\n sectionOpen={headerExpanded}\n compact={compactHeader}\n options={expanderLeftContainer}\n >\n <div className={classes.padding}> {expandedData} </div>\n </HeaderExpander>\n )}\n\n {!removeHeader && <LayoutUnit unit='xxs' />}\n\n {children}\n {!hideGrid && (\n <AmbientGridTemplate\n {...otherProps}\n title={gridTemplateTitle}\n data={gridData}\n columnDefs={columnDefinitions}\n groupingData={groupData}\n defaultAutoSize={defaultAutoSize}\n />\n )}\n </div>\n </div>\n }\n sidebar={\n <Slide in={splitScreen && splitScreen} direction='left'>\n <div style={{ height: '100%' }}>\n {splitScreen && (\n <div className={classes.splitScreen}>\n <Card square style={{ height: '100%' }}>\n <CardContent>{splitScreenContent}</CardContent>\n </Card>\n </div>\n )}\n </div>\n </Slide>\n }\n />\n\n <SideSheet\n key={'sideSheet'}\n title={sideSheetTitle}\n width={!desktop ? 350 : 500}\n buttonLabel={sideSheetButton}\n open={sideSheetOpen}\n onClose={setSideSheetClose}\n disabled={sideSheetDisabled}\n progress={sideSheetProgress}\n buttonProgress\n children={sideSheetContent}\n />\n\n <FluentDialog\n title={dialogTitle}\n message={dialogMessage}\n labelOne={dialogLabelOne}\n actionOne={dialogActionOne}\n labelTwo={dialogLabelTwo}\n actionTwo={dialogActionTwo}\n open={dialogOpen}\n handleClose={dialogClose}\n progress={20}\n variant={DialogLoadingvariant}\n disableTwo={disableDialogAction}\n />\n <AmbientToast\n noticeType={noticeType}\n noticeMessage={noticeMessage}\n noticeButton={noticeButton}\n closeNotice={closeNotice}\n noticeOpen={noticeOpen}\n noticeAction={noticeAction}\n alertSeverity={alertSeverity}\n />\n {footer}\n </div>\n );\n};\n\nCoreLayoutFloorplan.propTypes = {\n /**\n * Container to add Primary Action Header to page\n */\n PrimaryActionHeader: PropTypes.node,\n /**\n * Additional open area on page to add content. Adds a space above the grid area.\n */\n children: PropTypes.object,\n /**\n * Content that shows up in the split screen area.\n */\n splitScreenContent: PropTypes.node,\n /**\n * Data for AgGrid.\n */\n gridData: PropTypes.array,\n /**\n * Accepts an array of data to build out the buttons and functions to group data on the grid.\n */\n groupData: PropTypes.array,\n /**\n * Grid definitions to define keys for AgGrid.\n */\n columnDefinitions: PropTypes.arrayOf(PropTypes.object),\n /**\n * Content area for top expanded section.\n */\n expandedData: PropTypes.string,\n /**\n * shows or hides split screen (default: false)\n */\n splitScreen: PropTypes.string,\n /**\n * The width the split screen displays at.\n */\n splitScreenWidth: PropTypes.string,\n /**\n * To connect function to update state for split screen width.\n */\n setSplitScreenWidth: PropTypes.string,\n /**\n * Used to set side sheet title.\n */\n sideSheetTitle: PropTypes.string,\n /**\n * Lable for the side sheet action button.\n */\n sideSheetButton: PropTypes.string,\n /**\n * Disable Toggle for the side sheet button.\n */\n sideSheetDisabled: PropTypes.string,\n /**\n * Allows progress indication for the side sheet.\n */\n sideSheetProgress: PropTypes.number,\n /**\n * When true sets the side sheet open (default: false)\n */\n sideSheetOpen: PropTypes.bool,\n /**\n * State function to set the side sheet state true or false.\n */\n setSideSheetOpen: PropTypes.string,\n /**\n * Function to set the side sheet closed.\n */\n setSideSheetClose: PropTypes.string,\n /**\n * Content that displays in the side sheet.\n */\n setSideSheetContent: PropTypes.string,\n /**\n * Action for the first button in the dialog.\n */\n dialogActionOne: PropTypes.string,\n /**\n * Action for the second button in the dialog.\n */\n dialogActionTwo: PropTypes.string,\n /**\n * Function to canel open dialog.\n */\n dialogClose: PropTypes.string,\n /**\n * If true will cause the dialog to open.\n */\n dialogOpen: PropTypes.string,\n /**\n * Main title of the dialog.\n */\n dialogTitle: PropTypes.string,\n /**\n * Dialog message.\n */\n dialogMessage: PropTypes.string,\n /**\n * Label for first button of dialog.\n */\n dialogLabelOne: PropTypes.string,\n /**\n * Label for second button of dialog.\n */\n dialogLableTwo: PropTypes.string,\n /**\n * If true will display the notice message.\n */\n notice: PropTypes.string,\n /**\n * Label for alert button.\n */\n alertButton: PropTypes.string,\n /**\n * Message that displays in alert.\n */\n alertMessage: PropTypes.string,\n /**\n * Sets the severity of the alert (info, warning, error, success).\n */\n alertType: PropTypes.string,\n /**\n * Function to close notice.\n */\n closeNotice: PropTypes.string,\n /**\n * If true the notice will be displayed.\n */\n noticeOpen: PropTypes.string,\n /**\n * Optional action assigned to notice.\n */\n noticeAction: PropTypes.string,\n /**\n * The type of notice: error, warning, success, info (toast).\n */\n noticeType: PropTypes.string,\n /**\n * The message contained in the notice (toast).\n */\n noticeMessage: PropTypes.string,\n /**\n * The label for the notice button (toast).\n */\n noticeButton: PropTypes.string,\n /**\n * Sets the severity of the alert (info, warning, error, success).\n */\n alertSeverity: PropTypes.string,\n /**\n * If true the alert will display.\n */\n showAlert: PropTypes.string,\n /**\n * Function to close alert.\n */\n closeAlert: PropTypes.string,\n /**\n * Sets the type of the progress indicator for the dialog.\n */\n DialogLoadingvariant: PropTypes.string,\n /**\n * sets the action button on the dialog to disabled.\n */\n disableDialogAction: PropTypes.string,\n /**\n * Allows for a smaller tab version of the expandable drawer.\n */\n compactHeader: PropTypes.string,\n /**\n * If true, the header expander will be open (default: true)\n */\n headerExpanded: PropTypes.string,\n /**\n * Section in expander to allow for additional content within the tab area.\n */\n expanderLeftContainer: PropTypes.string,\n /**\n * Sets the grid default to expaned size if true. The default is 'size to fit'.\n */\n defaultAutoSize: PropTypes.bool,\n /**\n * Sets the teleporter for primary action header if it's true\n */\n useSubHeaderAction: PropTypes.bool\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatBytes-
|
|
1
|
+
{"version":3,"file":"formatBytes-BXxFuDvk.js","names":[],"sources":["../src/utilities/uploader/formatBytes.js"],"sourcesContent":["export const formatBytes = (bytes, decimals = 2) => {\n if (bytes === 0) return '0 Bytes'\n\n const k = 1024\n const dm = decimals < 0 ? 0 : decimals\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n\n const i = Math.floor(Math.log(bytes) / Math.log(k))\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]\n }"],"mappings":";AAAA,MAAa,eAAe,OAAO,WAAW,MAAM;AAChD,KAAI,UAAU,EAAG,QAAO;CAExB,MAAM,IAAI;CACV,MAAM,KAAK,WAAW,IAAI,IAAI;CAC9B,MAAM,QAAQ;EAAC;EAAS;EAAM;EAAM;EAAM;EAAM;EAAM;EAAM;EAAM;EAAK;CAEvE,MAAM,IAAI,KAAK,MAAM,KAAK,IAAI,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC;AAEnD,QAAO,YAAY,QAAQ,KAAK,IAAI,GAAG,EAAE,EAAE,QAAQ,GAAG,CAAC,GAAG,MAAM,MAAM"}
|
|
@@ -4,8 +4,8 @@ import { t as apiMutate$1 } from "./useAxiosMutate-C_CLzTKW.js";
|
|
|
4
4
|
import { t as Typography$1 } from "./Typography-CZuoQGNi.js";
|
|
5
5
|
import { t as LayoutUnit } from "./LayoutUnit-DBF2yb1h.js";
|
|
6
6
|
import { t as AmbientCard } from "./AmbientCard-Bl34OCRH.js";
|
|
7
|
-
import { t as LinearProgress$1 } from "./LinearProgress-
|
|
8
|
-
import { t as FluentTextField } from "./FluentTextField-
|
|
7
|
+
import { t as LinearProgress$1 } from "./LinearProgress-DvXOb1Ck.js";
|
|
8
|
+
import { t as FluentTextField } from "./FluentTextField-CPpViNni.js";
|
|
9
9
|
import { t as FluentCheckbox } from "./FluentCheckbox-BOUbx-K4.js";
|
|
10
10
|
import { n as FormControl$1, t as IndicatorChip } from "./IndicatorChip-DI1sRXXm.js";
|
|
11
11
|
import { t as FluentCardText } from "./FluentCardText-CsKUMJPn.js";
|
|
@@ -453,4 +453,4 @@ const PaymentReversalForm = ({ id, paymentData, onSubmitCompleted }) => {
|
|
|
453
453
|
|
|
454
454
|
//#endregion
|
|
455
455
|
export { LoginForm as i, ListCard as n, ListElement as r, PaymentReversalForm as t };
|
|
456
|
-
//# sourceMappingURL=forms-
|
|
456
|
+
//# sourceMappingURL=forms-D77JesD_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms-DcftP5g4.js","names":["useStyles","useStyles","apiMutate","Box","LinearProgress","Typography","Grid","FormControl"],"sources":["../src/UI/forms/LoginForm.jsx","../src/UI/mapLayout/ui/ListCard.jsx","../src/UI/forms/PaymentReversalForm.jsx"],"sourcesContent":["import React from 'react';\nimport {\n TextField,\n Paper,\n Typography,\n makeStyles,\n LinearProgress,\n useTheme\n} from '@material-ui/core';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { Form, FormButtons, SubmitButton, Field } from '../../utilities/form';\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n justifyContent: 'center',\n marginTop: theme.spacing(8)\n },\n loginWindow: {\n position: 'relative',\n flex: 1,\n padding: theme.spacing(3),\n width: 390\n },\n underline: {\n '&::after': {\n borderColor: 'black'\n }\n },\n label: {\n color: 'black'\n },\n logo: {\n width: 150\n },\n error: {\n color: theme.palette.error.main\n }\n}));\n\nexport const LoginForm = (props) => {\n const { onSubmit, logo, usernameLabel, passwordLabel, error, loading } =\n props;\n const classes = useStyles();\n const theme = useTheme();\n\n return (\n <div className={classes.root}>\n <Form onSubmit={onSubmit}>\n <Paper className={classes.loginWindow}>\n <Typography variant='h5' gutterBottom>\n Login\n </Typography>\n {error && (\n <Typography variant='body1' className={classes.error}>\n Your username or password is invalid\n </Typography>\n )}\n <Field\n component={TextField}\n margin='normal'\n type='email'\n name='username'\n InputProps={{\n classes: {\n underline: classes.underline\n }\n }}\n InputLabelProps={{\n focused: true,\n shrink: true,\n style: { color: theme.palette.grey[500] }\n }}\n label={usernameLabel || 'Sign in name'}\n fullWidth\n size='small'\n variant='standard'\n validate={(value) => {\n if (!value?.length) {\n return 'Please enter your sign in name';\n }\n }}\n />\n <Field\n component={TextField}\n margin='normal'\n type='password'\n name='password'\n InputProps={{\n classes: {\n underline: classes.underline\n }\n }}\n InputLabelProps={{\n focused: true,\n shrink: true,\n style: { color: theme.palette.grey[500] }\n }}\n label={passwordLabel || 'Password'}\n fullWidth\n size='small'\n variant='standard'\n validate={(value) => {\n if (!value?.length) {\n return 'Please enter your password';\n }\n }}\n />\n\n <FormButtons style={{ justifyContent: 'flex-end', marginBottom: 0 }}>\n <SubmitButton\n variant='contained'\n disablePristine={false}\n style={{\n margin: 0,\n backgroundColor: theme.palette.grey[800],\n color: '#fff'\n }}\n >\n Sign In\n </SubmitButton>\n </FormButtons>\n {logo && (\n <div>\n <img className={classes.logo} src={logo} alt='Unity' />\n </div>\n )}\n <LayoutUnit unit='xxs' />\n </Paper>\n {loading && <LinearProgress />}\n </Form>\n </div>\n );\n};\n","import React from 'react';\nimport {\n Card,\n CardContent,\n Divider,\n Typography,\n makeStyles\n} from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n labelRoot: {\n color: 'inherit',\n marginRight: theme.spacing(0.5),\n opacity: 0.6\n }\n}));\nexport const ListElement = ({ subject, value, style, hideDivider = false }) => {\n const classes = useStyles();\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n paddingTop: 8,\n ...style\n }}\n >\n <Typography className={classes.labelRoot}>{subject}</Typography>\n <Typography color='textPrimary'>{value}</Typography>\n {!hideDivider && <Divider />}\n </div>\n );\n};\n\nexport const ListCard = ({ children }) => {\n return (\n <Card elevation={0} style={{ height: '100%' }}>\n <CardContent style={{ height: '100%' }}>\n <div\n style={{\n display: 'flex',\n flexFlow: 'column wrap',\n height: '100%',\n columnGap: 8\n }}\n >\n {children}\n </div>\n </CardContent>\n </Card>\n );\n};\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { format } from 'date-fns';\nimport { FluentCardText } from '../surfaces/cards/FluentCardText';\nimport { IndicatorChip } from '../utilityDisplay/IndicatorChip';\nimport { makeStyles, Divider, FormControlLabel } from '@material-ui/core';\nimport { Box } from '../Box';\nimport { AmbientCard } from '../surfaces/cards/AmbientCard';\nimport { Typography } from '../dataDisplay/typography/Typography';\nimport { Grid } from '../Grid';\nimport { ListElement } from '../mapLayout/ui/ListCard';\nimport { useTranslation } from 'react-i18next';\nimport { FluentCheckbox } from '../inputs/checkbox/FluentCheckbox';\nimport { FormControl } from '../utilityDisplay/FormControl';\nimport { Field } from '../../utilities/form/Field';\nimport { FluentTextField } from '../inputs/textField/FluentTextField';\nimport { Form } from '../../utilities/form/Form';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { LinearProgress } from '../loading/LinearProgress';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useStyles = makeStyles((theme) => ({\n formControlHalf: {\n width: '40%'\n },\n formControl: {\n width: '100%'\n },\n formControlMargin: {\n width: '100%',\n marginTop: '5px'\n },\n formControlCheck: {\n width: '100%',\n marginTop: '5px',\n marginLeft: '3px'\n },\n submitControl: {\n marginTop: '35px'\n },\n assetTypeLabel: {\n top: theme.spacing(-0.7)\n },\n labelText: {\n color: 'rgba(0, 0, 0)',\n fontSize: '0.875rem'\n },\n main: {\n flexGrow: 1,\n padding: '0 24px',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n appIcon: {\n width: 24,\n height: 24,\n color: theme.palette.text.primary\n },\n arrowIcon: {\n width: 12,\n height: 12\n },\n linkTitle: {\n marginRight: theme.spacing(1)\n },\n formControlGeneral: {\n width: '100%',\n marginLeft: '5px',\n marginTop: '5px'\n },\n cardNumber: {\n width: '60%'\n },\n accordion: {\n width: '100%',\n margin: '0px',\n padding: '0px',\n boxShadow: 'none',\n backgroundColor: 'inherit',\n '&:before': {\n display: 'none'\n },\n '&$expanded': {\n margin: '0px'\n }\n },\n accordionSummary: {\n padding: '0px',\n paddingLeft: '5px',\n margin: '0px',\n minHeight: '0px',\n backgroundColor: 'inherit',\n flexDirection: 'row-reverse',\n '&$expanded': {\n margin: '0px',\n padding: '0px',\n minHeight: '0px'\n }\n },\n expanded: {\n margin: '0px',\n paddingLeft: '5px'\n },\n content: {\n margin: 0,\n backgroundColor: 'inherit',\n '&$expanded': {\n margin: 0\n }\n },\n accordionDetails: {\n padding: '0px',\n display: 'block',\n margin: '0px'\n },\n cardContent: {\n backgroundColor: '#FAFAFA'\n },\n listItem: {\n paddingTop: '3px',\n paddingBottom: '3px',\n fontSize: '0.875rem'\n },\n listItemDetail: {\n display: 'flex',\n justifyContent: 'flex-end'\n },\n listItemAccordion: {\n paddingTop: '3px',\n paddingBottom: '3px',\n paddingLeft: '0px'\n },\n divider: {\n margin: '0px 12px'\n },\n dividerBold: {\n margin: '0px 12px',\n backgroundColor: 'black'\n },\n itemCheckbox: {\n padding: '0px'\n },\n itemDescription: {\n color: 'grey'\n },\n list: {\n backgroundColor: '#FFF'\n },\n dropdown: {\n marginTop: theme.spacing(-1),\n backgroundColor: '#FFF'\n },\n locationDropDown: {\n margin: theme.spacing(0),\n marginTop: theme.spacing(-0.5),\n fontSize: '0.75rem'\n },\n box: {\n display: 'flex',\n justifyContent: 'space-around',\n flexDirection: 'row',\n paddingBottom: '15px',\n gap: '10px',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n flexWrap: 'wrap',\n alignItems: 'flex-start'\n }\n }\n}));\n\nconst PAYMENT_APPROVED = 1;\nconst PAYMENT_DENIED = 43;\nconst RESULT_SUCCESS = 200;\nconst RESULT_FAILURE = 401;\n\nexport const PaymentReversalForm = ({ id, paymentData, onSubmitCompleted }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n const [loading, setLoading] = useState(true);\n const [paymentTransaction, setPaymentTransaction] = useState(undefined);\n\n /**\n * API call to get the payment transaction details\n */\n const getPaymentTransaction = useCallback(\n async (payload) => {\n if (!payload) {\n return null;\n }\n\n return apiMutate(\n ConfigService.pgV1ApiUrl,\n `PaymentTransaction/search`,\n {\n method: 'POST',\n data: payload\n },\n {}\n );\n },\n []\n );\n\n /**\n * API call to get the account information by account number\n */\n const reverseTransactionExecute = useCallback(\n async (transactionID) => {\n if (!transactionID) {\n return null;\n }\n\n return apiMutate(\n ConfigService.pgV1ApiUrl,\n `PaymentTransaction/${transactionID}`,\n {\n method: 'DELETE',\n },\n {}\n );\n },\n []\n );\n\n /**\n * submitAccountDetailsForm\n * @param {*} formData\n * @return {*}\n */\n const handleSubmitPaymentReversal = (values) => {\n // const data = {\n // amountToReverse: values.amountToReverse,\n // isSendCustomerPaymentConfirmation:\n // values.isSendCustomerPaymentConfirmation\n // };\n\n if (!paymentData?.transactionId) {\n return;\n }\n\n reverseTransactionExecute(paymentData?.transactionId)\n .then(() => {\n onSubmitCompleted && onSubmitCompleted({ transactionId: paymentData?.transactionId, error: false });\n })\n .catch((error) => {\n onSubmitCompleted && onSubmitCompleted({ transactionId: paymentData?.transactionId, error });\n });\n }\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n setLoading(true);\n const response = await getPaymentTransaction({\n eagerLoad: true,\n pageNumber: 1,\n pageSize: 20,\n filterElements: [\n {\n searchField: 'transactionId',\n searchValue: paymentData?.transactionId,\n searchOperator: '=',\n },\n ],\n orderElements: [],\n });\n\n if (response?.data) {\n setPaymentTransaction(response?.data?.pageList?.[0]);\n }\n\n } catch (err) {\n console.error(err);\n } finally {\n setLoading(false);\n }\n };\n\n if (paymentData?.transactionId) {\n fetchData();\n }\n }, [getPaymentTransaction, paymentData]);\n\n const statusText = useMemo(() => {\n return (paymentTransaction?.responseCode === PAYMENT_APPROVED && paymentTransaction?.paymentResultID === RESULT_SUCCESS) ? 'Approved' :\n (paymentTransaction?.responseCode === PAYMENT_DENIED && paymentTransaction?.paymentResultID === RESULT_FAILURE) ? 'Declined' : 'Undetermined';\n }, [paymentTransaction]);\n\n const statusCode = useMemo(() => {\n return (paymentTransaction?.responseCode === PAYMENT_APPROVED && paymentTransaction?.paymentResultID === RESULT_SUCCESS) ? 'ok':\n (paymentTransaction?.responseCode === PAYMENT_DENIED && paymentTransaction?.paymentResultID === RESULT_FAILURE) ? 'error' : 'warning';\n }, [paymentTransaction]);\n\n return (\n <Box>\n {loading && (\n <Box sx={{ width: '100%' }}>\n <LinearProgress />\n </Box>\n )}\n <Box className={classes.box}>\n <FluentCardText title='Value' description={`$${paymentData?.amount}`} />\n <FluentCardText\n title='Status'\n description={\n <IndicatorChip\n text={statusText}\n status={statusCode}\n />\n }\n />\n </Box>\n <AmbientCard fullWidth={true}>\n <Typography\n variant='subtitle2'\n style={{ marginTop: '0px', marginBottom: '10px' }}\n >\n {t('Payment Details')}\n </Typography>\n\n <Box display='flex' flexDirection='column'>\n <Grid container spacing={1}>\n {[\n [t('Transaction ID'), paymentData?.transactionId || t('N/A')],\n [t('Date/Time'), paymentData?.transactionDate ? format(new Date(paymentData?.transactionDate), 'EEE, MMM d, yyyy') : t('N/A')],\n [t('Processor'), paymentData?.paymentSourceName || t('No Information found')],\n [t('Response Code'), paymentData?.authorizationNumber || t('N/A')]\n ].map(([k, v]) => (\n <Grid item xs={12} sm={6}>\n {/* @ts-ignore */}\n <ListElement subject={k} value={v} hideDivider={true} />\n </Grid>\n ))}\n </Grid>\n </Box>\n\n <Divider style={{ marginTop: '10px', marginBottom: '10px' }} />\n\n <Box display='flex' flexDirection='column'>\n <Grid container spacing={1}>\n {[\n [t('Customer Name'), paymentTransaction?.reference3 || t('N/A')],\n [t('Type'), paymentData?.tender || t('N/A')],\n [t('Card Holder Name'), t('N/A')],\n [t('CC Number'), paymentData?.cardLast4 || t('N/A')],\n [t('Company'), paymentTransaction?.applicationClient?.name || t('N/A')],\n [t('Expiration Date'), paymentData?.date || t('N/A')],\n [t('AVS'), t('N/A')],\n [t('Status'),paymentData?.authorizationNumber ? 'Approved' : 'Declined'],\n [t('Confirmation'), paymentData?.authorizationNumber || t('N/A')]\n ].map(([k, v]) => (\n <Grid item xs={12} sm={6}>\n {/* @ts-ignore */}\n <ListElement subject={k} value={v} hideDivider={true} />\n </Grid>\n ))}\n </Grid>\n </Box>\n\n <Divider style={{ marginTop: '10px', marginBottom: '10px' }} />\n\n <Box display='flex' flexDirection='column'>\n <Grid container spacing={1}>\n {[\n [t('First Attempt Date'), paymentData?.date || t('N/A')],\n [t('Initial Transaction'), paymentData?.date || t('N/A')],\n [t('Next Attempt Date'), paymentData?.date || t('N/A')],\n [t('Retry Count'), t('N/A')]\n ].map(([k, v]) => (\n <Grid item xs={12} sm={6}>\n {/* @ts-ignore */}\n <ListElement subject={k} value={v} hideDivider={true} />\n </Grid>\n ))}\n </Grid>\n </Box>\n\n <Divider style={{ marginTop: '10px', marginBottom: '10px' }} />\n\n <Form\n id={id}\n onSubmit={handleSubmitPaymentReversal}\n render={({ handleSubmit, form, values }) => {\n return (\n <>\n <FormControl className={classes.formControl}>\n <Field\n component={FluentTextField}\n ComponentProps={{\n label: t('Amount to Reverse'),\n variant: 'outlined',\n margin: 'normal',\n size: 'small',\n disabled: false,\n fullWidth: true,\n autoComplete: 'off',\n inputProps: {\n maxLength: 256,\n autocomplete: 'off'\n }\n }}\n name='amountToReverse'\n initialValue={paymentData?.amount}\n onChange={() => {}}\n required={true}\n />\n </FormControl>\n\n <FormControl className={classes.formControlGeneral}>\n <FormControlLabel\n control={\n <Field\n component={FluentCheckbox}\n name='isSendCustomerPaymentConfirmation'\n type='checkbox'\n defaultValue={false}\n required={false}\n onChange={() => {}}\n // @ts-ignore\n size='small'\n />\n }\n label={t('Send Customer Payment Confirmation')}\n />\n </FormControl>\n </>\n );\n }}\n />\n </AmbientCard>\n </Box>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forms-D77JesD_.js","names":["useStyles","useStyles","apiMutate","Box","LinearProgress","Typography","Grid","FormControl"],"sources":["../src/UI/forms/LoginForm.jsx","../src/UI/mapLayout/ui/ListCard.jsx","../src/UI/forms/PaymentReversalForm.jsx"],"sourcesContent":["import React from 'react';\nimport {\n TextField,\n Paper,\n Typography,\n makeStyles,\n LinearProgress,\n useTheme\n} from '@material-ui/core';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { Form, FormButtons, SubmitButton, Field } from '../../utilities/form';\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n justifyContent: 'center',\n marginTop: theme.spacing(8)\n },\n loginWindow: {\n position: 'relative',\n flex: 1,\n padding: theme.spacing(3),\n width: 390\n },\n underline: {\n '&::after': {\n borderColor: 'black'\n }\n },\n label: {\n color: 'black'\n },\n logo: {\n width: 150\n },\n error: {\n color: theme.palette.error.main\n }\n}));\n\nexport const LoginForm = (props) => {\n const { onSubmit, logo, usernameLabel, passwordLabel, error, loading } =\n props;\n const classes = useStyles();\n const theme = useTheme();\n\n return (\n <div className={classes.root}>\n <Form onSubmit={onSubmit}>\n <Paper className={classes.loginWindow}>\n <Typography variant='h5' gutterBottom>\n Login\n </Typography>\n {error && (\n <Typography variant='body1' className={classes.error}>\n Your username or password is invalid\n </Typography>\n )}\n <Field\n component={TextField}\n margin='normal'\n type='email'\n name='username'\n InputProps={{\n classes: {\n underline: classes.underline\n }\n }}\n InputLabelProps={{\n focused: true,\n shrink: true,\n style: { color: theme.palette.grey[500] }\n }}\n label={usernameLabel || 'Sign in name'}\n fullWidth\n size='small'\n variant='standard'\n validate={(value) => {\n if (!value?.length) {\n return 'Please enter your sign in name';\n }\n }}\n />\n <Field\n component={TextField}\n margin='normal'\n type='password'\n name='password'\n InputProps={{\n classes: {\n underline: classes.underline\n }\n }}\n InputLabelProps={{\n focused: true,\n shrink: true,\n style: { color: theme.palette.grey[500] }\n }}\n label={passwordLabel || 'Password'}\n fullWidth\n size='small'\n variant='standard'\n validate={(value) => {\n if (!value?.length) {\n return 'Please enter your password';\n }\n }}\n />\n\n <FormButtons style={{ justifyContent: 'flex-end', marginBottom: 0 }}>\n <SubmitButton\n variant='contained'\n disablePristine={false}\n style={{\n margin: 0,\n backgroundColor: theme.palette.grey[800],\n color: '#fff'\n }}\n >\n Sign In\n </SubmitButton>\n </FormButtons>\n {logo && (\n <div>\n <img className={classes.logo} src={logo} alt='Unity' />\n </div>\n )}\n <LayoutUnit unit='xxs' />\n </Paper>\n {loading && <LinearProgress />}\n </Form>\n </div>\n );\n};\n","import React from 'react';\nimport {\n Card,\n CardContent,\n Divider,\n Typography,\n makeStyles\n} from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n labelRoot: {\n color: 'inherit',\n marginRight: theme.spacing(0.5),\n opacity: 0.6\n }\n}));\nexport const ListElement = ({ subject, value, style, hideDivider = false }) => {\n const classes = useStyles();\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n paddingTop: 8,\n ...style\n }}\n >\n <Typography className={classes.labelRoot}>{subject}</Typography>\n <Typography color='textPrimary'>{value}</Typography>\n {!hideDivider && <Divider />}\n </div>\n );\n};\n\nexport const ListCard = ({ children }) => {\n return (\n <Card elevation={0} style={{ height: '100%' }}>\n <CardContent style={{ height: '100%' }}>\n <div\n style={{\n display: 'flex',\n flexFlow: 'column wrap',\n height: '100%',\n columnGap: 8\n }}\n >\n {children}\n </div>\n </CardContent>\n </Card>\n );\n};\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { format } from 'date-fns';\nimport { FluentCardText } from '../surfaces/cards/FluentCardText';\nimport { IndicatorChip } from '../utilityDisplay/IndicatorChip';\nimport { makeStyles, Divider, FormControlLabel } from '@material-ui/core';\nimport { Box } from '../Box';\nimport { AmbientCard } from '../surfaces/cards/AmbientCard';\nimport { Typography } from '../dataDisplay/typography/Typography';\nimport { Grid } from '../Grid';\nimport { ListElement } from '../mapLayout/ui/ListCard';\nimport { useTranslation } from 'react-i18next';\nimport { FluentCheckbox } from '../inputs/checkbox/FluentCheckbox';\nimport { FormControl } from '../utilityDisplay/FormControl';\nimport { Field } from '../../utilities/form/Field';\nimport { FluentTextField } from '../inputs/textField/FluentTextField';\nimport { Form } from '../../utilities/form/Form';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { LinearProgress } from '../loading/LinearProgress';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useStyles = makeStyles((theme) => ({\n formControlHalf: {\n width: '40%'\n },\n formControl: {\n width: '100%'\n },\n formControlMargin: {\n width: '100%',\n marginTop: '5px'\n },\n formControlCheck: {\n width: '100%',\n marginTop: '5px',\n marginLeft: '3px'\n },\n submitControl: {\n marginTop: '35px'\n },\n assetTypeLabel: {\n top: theme.spacing(-0.7)\n },\n labelText: {\n color: 'rgba(0, 0, 0)',\n fontSize: '0.875rem'\n },\n main: {\n flexGrow: 1,\n padding: '0 24px',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n appIcon: {\n width: 24,\n height: 24,\n color: theme.palette.text.primary\n },\n arrowIcon: {\n width: 12,\n height: 12\n },\n linkTitle: {\n marginRight: theme.spacing(1)\n },\n formControlGeneral: {\n width: '100%',\n marginLeft: '5px',\n marginTop: '5px'\n },\n cardNumber: {\n width: '60%'\n },\n accordion: {\n width: '100%',\n margin: '0px',\n padding: '0px',\n boxShadow: 'none',\n backgroundColor: 'inherit',\n '&:before': {\n display: 'none'\n },\n '&$expanded': {\n margin: '0px'\n }\n },\n accordionSummary: {\n padding: '0px',\n paddingLeft: '5px',\n margin: '0px',\n minHeight: '0px',\n backgroundColor: 'inherit',\n flexDirection: 'row-reverse',\n '&$expanded': {\n margin: '0px',\n padding: '0px',\n minHeight: '0px'\n }\n },\n expanded: {\n margin: '0px',\n paddingLeft: '5px'\n },\n content: {\n margin: 0,\n backgroundColor: 'inherit',\n '&$expanded': {\n margin: 0\n }\n },\n accordionDetails: {\n padding: '0px',\n display: 'block',\n margin: '0px'\n },\n cardContent: {\n backgroundColor: '#FAFAFA'\n },\n listItem: {\n paddingTop: '3px',\n paddingBottom: '3px',\n fontSize: '0.875rem'\n },\n listItemDetail: {\n display: 'flex',\n justifyContent: 'flex-end'\n },\n listItemAccordion: {\n paddingTop: '3px',\n paddingBottom: '3px',\n paddingLeft: '0px'\n },\n divider: {\n margin: '0px 12px'\n },\n dividerBold: {\n margin: '0px 12px',\n backgroundColor: 'black'\n },\n itemCheckbox: {\n padding: '0px'\n },\n itemDescription: {\n color: 'grey'\n },\n list: {\n backgroundColor: '#FFF'\n },\n dropdown: {\n marginTop: theme.spacing(-1),\n backgroundColor: '#FFF'\n },\n locationDropDown: {\n margin: theme.spacing(0),\n marginTop: theme.spacing(-0.5),\n fontSize: '0.75rem'\n },\n box: {\n display: 'flex',\n justifyContent: 'space-around',\n flexDirection: 'row',\n paddingBottom: '15px',\n gap: '10px',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n flexWrap: 'wrap',\n alignItems: 'flex-start'\n }\n }\n}));\n\nconst PAYMENT_APPROVED = 1;\nconst PAYMENT_DENIED = 43;\nconst RESULT_SUCCESS = 200;\nconst RESULT_FAILURE = 401;\n\nexport const PaymentReversalForm = ({ id, paymentData, onSubmitCompleted }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n const [loading, setLoading] = useState(true);\n const [paymentTransaction, setPaymentTransaction] = useState(undefined);\n\n /**\n * API call to get the payment transaction details\n */\n const getPaymentTransaction = useCallback(\n async (payload) => {\n if (!payload) {\n return null;\n }\n\n return apiMutate(\n ConfigService.pgV1ApiUrl,\n `PaymentTransaction/search`,\n {\n method: 'POST',\n data: payload\n },\n {}\n );\n },\n []\n );\n\n /**\n * API call to get the account information by account number\n */\n const reverseTransactionExecute = useCallback(\n async (transactionID) => {\n if (!transactionID) {\n return null;\n }\n\n return apiMutate(\n ConfigService.pgV1ApiUrl,\n `PaymentTransaction/${transactionID}`,\n {\n method: 'DELETE',\n },\n {}\n );\n },\n []\n );\n\n /**\n * submitAccountDetailsForm\n * @param {*} formData\n * @return {*}\n */\n const handleSubmitPaymentReversal = (values) => {\n // const data = {\n // amountToReverse: values.amountToReverse,\n // isSendCustomerPaymentConfirmation:\n // values.isSendCustomerPaymentConfirmation\n // };\n\n if (!paymentData?.transactionId) {\n return;\n }\n\n reverseTransactionExecute(paymentData?.transactionId)\n .then(() => {\n onSubmitCompleted && onSubmitCompleted({ transactionId: paymentData?.transactionId, error: false });\n })\n .catch((error) => {\n onSubmitCompleted && onSubmitCompleted({ transactionId: paymentData?.transactionId, error });\n });\n }\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n setLoading(true);\n const response = await getPaymentTransaction({\n eagerLoad: true,\n pageNumber: 1,\n pageSize: 20,\n filterElements: [\n {\n searchField: 'transactionId',\n searchValue: paymentData?.transactionId,\n searchOperator: '=',\n },\n ],\n orderElements: [],\n });\n\n if (response?.data) {\n setPaymentTransaction(response?.data?.pageList?.[0]);\n }\n\n } catch (err) {\n console.error(err);\n } finally {\n setLoading(false);\n }\n };\n\n if (paymentData?.transactionId) {\n fetchData();\n }\n }, [getPaymentTransaction, paymentData]);\n\n const statusText = useMemo(() => {\n return (paymentTransaction?.responseCode === PAYMENT_APPROVED && paymentTransaction?.paymentResultID === RESULT_SUCCESS) ? 'Approved' :\n (paymentTransaction?.responseCode === PAYMENT_DENIED && paymentTransaction?.paymentResultID === RESULT_FAILURE) ? 'Declined' : 'Undetermined';\n }, [paymentTransaction]);\n\n const statusCode = useMemo(() => {\n return (paymentTransaction?.responseCode === PAYMENT_APPROVED && paymentTransaction?.paymentResultID === RESULT_SUCCESS) ? 'ok':\n (paymentTransaction?.responseCode === PAYMENT_DENIED && paymentTransaction?.paymentResultID === RESULT_FAILURE) ? 'error' : 'warning';\n }, [paymentTransaction]);\n\n return (\n <Box>\n {loading && (\n <Box sx={{ width: '100%' }}>\n <LinearProgress />\n </Box>\n )}\n <Box className={classes.box}>\n <FluentCardText title='Value' description={`$${paymentData?.amount}`} />\n <FluentCardText\n title='Status'\n description={\n <IndicatorChip\n text={statusText}\n status={statusCode}\n />\n }\n />\n </Box>\n <AmbientCard fullWidth={true}>\n <Typography\n variant='subtitle2'\n style={{ marginTop: '0px', marginBottom: '10px' }}\n >\n {t('Payment Details')}\n </Typography>\n\n <Box display='flex' flexDirection='column'>\n <Grid container spacing={1}>\n {[\n [t('Transaction ID'), paymentData?.transactionId || t('N/A')],\n [t('Date/Time'), paymentData?.transactionDate ? format(new Date(paymentData?.transactionDate), 'EEE, MMM d, yyyy') : t('N/A')],\n [t('Processor'), paymentData?.paymentSourceName || t('No Information found')],\n [t('Response Code'), paymentData?.authorizationNumber || t('N/A')]\n ].map(([k, v]) => (\n <Grid item xs={12} sm={6}>\n {/* @ts-ignore */}\n <ListElement subject={k} value={v} hideDivider={true} />\n </Grid>\n ))}\n </Grid>\n </Box>\n\n <Divider style={{ marginTop: '10px', marginBottom: '10px' }} />\n\n <Box display='flex' flexDirection='column'>\n <Grid container spacing={1}>\n {[\n [t('Customer Name'), paymentTransaction?.reference3 || t('N/A')],\n [t('Type'), paymentData?.tender || t('N/A')],\n [t('Card Holder Name'), t('N/A')],\n [t('CC Number'), paymentData?.cardLast4 || t('N/A')],\n [t('Company'), paymentTransaction?.applicationClient?.name || t('N/A')],\n [t('Expiration Date'), paymentData?.date || t('N/A')],\n [t('AVS'), t('N/A')],\n [t('Status'),paymentData?.authorizationNumber ? 'Approved' : 'Declined'],\n [t('Confirmation'), paymentData?.authorizationNumber || t('N/A')]\n ].map(([k, v]) => (\n <Grid item xs={12} sm={6}>\n {/* @ts-ignore */}\n <ListElement subject={k} value={v} hideDivider={true} />\n </Grid>\n ))}\n </Grid>\n </Box>\n\n <Divider style={{ marginTop: '10px', marginBottom: '10px' }} />\n\n <Box display='flex' flexDirection='column'>\n <Grid container spacing={1}>\n {[\n [t('First Attempt Date'), paymentData?.date || t('N/A')],\n [t('Initial Transaction'), paymentData?.date || t('N/A')],\n [t('Next Attempt Date'), paymentData?.date || t('N/A')],\n [t('Retry Count'), t('N/A')]\n ].map(([k, v]) => (\n <Grid item xs={12} sm={6}>\n {/* @ts-ignore */}\n <ListElement subject={k} value={v} hideDivider={true} />\n </Grid>\n ))}\n </Grid>\n </Box>\n\n <Divider style={{ marginTop: '10px', marginBottom: '10px' }} />\n\n <Form\n id={id}\n onSubmit={handleSubmitPaymentReversal}\n render={({ handleSubmit, form, values }) => {\n return (\n <>\n <FormControl className={classes.formControl}>\n <Field\n component={FluentTextField}\n ComponentProps={{\n label: t('Amount to Reverse'),\n variant: 'outlined',\n margin: 'normal',\n size: 'small',\n disabled: false,\n fullWidth: true,\n autoComplete: 'off',\n inputProps: {\n maxLength: 256,\n autocomplete: 'off'\n }\n }}\n name='amountToReverse'\n initialValue={paymentData?.amount}\n onChange={() => {}}\n required={true}\n />\n </FormControl>\n\n <FormControl className={classes.formControlGeneral}>\n <FormControlLabel\n control={\n <Field\n component={FluentCheckbox}\n name='isSendCustomerPaymentConfirmation'\n type='checkbox'\n defaultValue={false}\n required={false}\n onChange={() => {}}\n // @ts-ignore\n size='small'\n />\n }\n label={t('Send Customer Payment Confirmation')}\n />\n </FormControl>\n </>\n );\n }}\n />\n </AmbientCard>\n </Box>\n );\n};\n"],"mappings":"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"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -37,7 +37,7 @@ import { t as useApiCatalog } from "../useApiCatalog-Dy3m4TZr.js";
|
|
|
37
37
|
import { t as useFluentIcon } from "../useFluentIcon-D3rSGz0m.js";
|
|
38
38
|
import "../QuickViewCard-BcHoQbEL.js";
|
|
39
39
|
import { t as useItemSubCard } from "../useItemSubCard-1iIzXY3b.js";
|
|
40
|
-
import { i as useOutlook, n as useDateLocale, r as useProductVersion, t as useWorkflow } from "../hooks-
|
|
40
|
+
import { i as useOutlook, n as useDateLocale, r as useProductVersion, t as useWorkflow } from "../hooks-BRJfLTY_.js";
|
|
41
41
|
import "../lookupsStore-JxZ8sd4A.js";
|
|
42
42
|
import { n as usePromotedLookupMethods, t as usePromotedMethodEntities } from "../usePromotedMethodEntities-CSH-aRof.js";
|
|
43
43
|
import "../QueryResult-BQJ4dTzM.js";
|
|
@@ -45,7 +45,7 @@ import { t as useQueryExecutors } from "../useQueryExecutors-BnxPVZ0p.js";
|
|
|
45
45
|
import "../searchEnums-BCjBowOK.js";
|
|
46
46
|
import { t as useSearchFilterParamsMap } from "../useSearchFilterParamsMap-D4anvndE.js";
|
|
47
47
|
import { t as useSplitDecimal } from "../useSplitDecimal-CXVfLuCT.js";
|
|
48
|
-
import "../workflowStore-
|
|
48
|
+
import "../workflowStore-D-NHniHF.js";
|
|
49
49
|
import { t as useVirtualActions } from "../virtualActions-CVQjzQ44.js";
|
|
50
50
|
import { t as useUpdateSearchParams } from "../useUpdateSearchParams-B6ZXT8Ck.js";
|
|
51
51
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as useUser } from "./useUser--tP6DN4i.js";
|
|
2
2
|
import { t as apiMutate$1 } from "./useAxiosMutate-C_CLzTKW.js";
|
|
3
|
-
import { t as useWorkflowStore } from "./workflowStore-
|
|
3
|
+
import { t as useWorkflowStore } from "./workflowStore-D-NHniHF.js";
|
|
4
4
|
import { useCallback, useEffect, useMemo } from "react";
|
|
5
5
|
import { ConfigService } from "udp-react-stencil-component-library";
|
|
6
6
|
import { DateTime } from "luxon";
|
|
@@ -157,4 +157,4 @@ const useWorkflow = () => {
|
|
|
157
157
|
|
|
158
158
|
//#endregion
|
|
159
159
|
export { useOutlook as i, useDateLocale as n, useProductVersion as r, useWorkflow as t };
|
|
160
|
-
//# sourceMappingURL=hooks-
|
|
160
|
+
//# sourceMappingURL=hooks-BRJfLTY_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-D1nzA6OI.js","names":["apiMutate","dateTimeOptions: Intl.DateTimeFormatOptions","localeString: string"],"sources":["../src/hooks/useOutlook.js","../src/hooks/useProductVersion.js","../src/hooks/useDateLocale.ts","../src/hooks/useWorkflow.js"],"sourcesContent":["import { apiMutate } from '../utilities/useAxiosMutate';\nimport { useEffect } from 'react';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nexport const useOutlook = (callbackUri, onLogin) => {\n\n const invalidateUserSession = async () => {\n try {\n // if (ConfigService.integrationV2ApiUrl === undefined) {\n // throw new Error('REACT_APP_INTEGRATION_V2_API_BASE is undefined')\n // }\n // const accessToken = localStorage.getItem('outlookAccessToken');\n // const response = await apiMutate(\n // ConfigService.integrationV2ApiUrl,\n // `OutlookIntegrationAccessToken/invalidateUserSession`,\n // {\n // method: \"post\",\n // headers : {\n // OutlookAccessToken: accessToken\n // }\n // }\n // )\n\n } catch (error) {\n console.error('Error refreshing access token:', error);\n return null;\n // }\n } finally {\n try {\n localStorage.removeItem('outlookAccessToken');\n } catch (error) {\n console.error('Error removing accessToken:', error);\n }\n\n try {\n localStorage.removeItem('outlookRefreshToken');\n } catch (error) {\n console.error('Error removing refreshToken:', error);\n }\n\n try {\n localStorage.removeItem('outlookExpiresAt');\n } catch (error) {\n console.error('Error removing expiresAt:', error);\n }\n\n }\n }\n\n const getAccessToken = async () => {\n let accessToken = localStorage.getItem('outlookAccessToken');\n\n if (!accessToken) {\n throw(new Error(\"No access token found\"));\n }\n\n const expiresAt = localStorage.getItem('outlookExpiresAt');\n if (expiresAt && !isBeforeCurrentTime(expiresAt)) {\n return accessToken;\n }\n\n const refreshToken = localStorage.getItem('outlookRefreshToken');\n if (!refreshToken) {\n throw(new Error(\"No refresh token found\"));\n }\n\n try {\n if (ConfigService.integrationV2ApiUrl === undefined) {\n throw new Error('REACT_APP_INTEGRATION_V2_API_BASE is undefined')\n }\n const response = await apiMutate(\n ConfigService.integrationV2ApiUrl,\n `OutlookIntegrationAccessToken/getAccessToken`,\n {\n method: \"post\",\n data: {\n option: \"refresh_token\",\n value: refreshToken,\n redirectUri: ConfigService.config.UNITY_URL + \"/aad_redirect\"\n }\n }\n )\n const data = response.data;\n if (data.accessToken != null && data.refreshToken != null && data.expiresIn != null) {\n localStorage.setItem('outlookAccessToken', data.accessToken);\n localStorage.setItem('outlookRefreshToken', data.refreshToken);\n localStorage.setItem('outlookExpiresAt', addSecondsToCurrentTimeUnix(data.expiresIn));\n return data.accessToken;\n } else {\n throw(new Error(\"Error: unable to get access token\"));\n }\n\n } catch (error) {\n console.error('Error refreshing access token:', error);\n return null;\n }\n };\n\n const login = () => {\n\n const baseUrl = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize';\n const clientId = process.env.REACT_APP_MSAL_API_CLIENT_ID;\n const responseType = 'code';\n const redirectUri = `${ConfigService.config.UNITY_URL}/aad_redirect`;\n const responseMode = 'query';\n const scope = [\n 'https://graph.microsoft.com/Calendars.ReadWrite',\n 'https://graph.microsoft.com/Calendars.ReadWrite.Shared',\n 'https://graph.microsoft.com/OnlineMeetingTranscript.Read.All',\n 'https://graph.microsoft.com/OnlineMeetings.Read',\n ].join('%20'); // Join scopes with URL-encoded space\n\n const authUrl = `${baseUrl}?client_id=${clientId}&response_type=${responseType}&redirect_uri=${redirectUri}&response_mode=${responseMode}&scope=${scope}&state=${callbackUri}`;\n openLoginPopup(authUrl)\n // window.location.href = authUrl;\n }\n\n\n function openLoginPopup(url) {\n var width = 600;\n var height = 600;\n var left = (screen.width - width) / 2;\n var top = (screen.height - height) / 2;\n var features = `width=${width},height=${height},top=${top},left=${left},status=no,toolbar=no,menubar=no,location=no`;\n\n var popup = window.open(url, 'LoginPopup', features);\n return popup;\n }\n function addSecondsToCurrentTimeUnix(seconds) {\n var now = new Date();\n now.setSeconds(now.getSeconds() + seconds);\n return now.getTime();\n }\n\n function isBeforeCurrentTime(unixTime) {\n var now = new Date().getTime();\n return unixTime < now;\n }\n\n const isUserSignedIn = () => {\n const accessToken = localStorage.getItem('outlookAccessToken');\n const refreshToken = localStorage.getItem('outlookRefreshToken');\n const expiresAt = localStorage.getItem('outlookExpiresAt');\n if (accessToken && refreshToken && expiresAt && !isBeforeCurrentTime(expiresAt)) {\n return true;\n } else {\n return false;\n }\n }\n\n useEffect(() => {\n const handleStorageChange = (event) => {\n if (event.key === 'outlookAccessToken') {\n onLogin();\n }\n };\n\n window.addEventListener('storage', handleStorageChange);\n\n // Clean up the event listener\n return () => {\n window.removeEventListener('storage', handleStorageChange);\n };\n }, []);\n return {getAccessToken, invalidateUserSession, login, isUserSignedIn};\n}\n","import { useUser } from '../utilities/auth/useUser';\n\nexport const useProductVersion = (productId) => {\n const user = useUser();\n\n const matchingProduct = user?.products?.find(\n (product) => product?.productId === productId\n );\n\n return matchingProduct?.currentProductVersionId || '';\n};\n","import React, { useMemo } from 'react'\nimport {DateTime} from 'luxon'\n\n// TODO: tie in datetime config at the user or tenant level\n\nexport interface UseDateLocaleReturn {\n convertISOStringToLocalDateTime: (date: string) => string | null;\n convertISOStringToLocalDate: (date: string) => string | null;\n getISODate: () => string;\n}\n\nexport const useDateLocale = (\n datetimeFormatOptions : Intl.DateTimeFormatOptions | null = null,\n locale: string | null = null\n): UseDateLocaleReturn => {\n\n const dateTimeOptions: Intl.DateTimeFormatOptions = useMemo(() => (datetimeFormatOptions ?? {\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n hour12: true,\n }), [datetimeFormatOptions]);\n\n const localeString: string = useMemo(() => locale ?? navigator.language,[locale]);\n\n const convertISOStringToLocalDateTime = (date: string): string | null => {\n const luxonDateTime = DateTime.fromISO(date, {zone: 'utc'});\n luxonDateTime.setZone(dateTimeOptions.timeZone);\n\n luxonDateTime.setLocale(localeString);\n\n if(!luxonDateTime.isValid)\n {\n return null;\n }\n return luxonDateTime.toLocaleString(dateTimeOptions);\n\n }\n\n const convertISOStringToLocalDate = (date: string): string | null => {\n const luxonDateTime = DateTime.fromISO(date);\n luxonDateTime.setZone(dateTimeOptions.timeZone);\n\n luxonDateTime.setLocale(localeString);\n if(!luxonDateTime.isValid)\n {\n return null;\n }\n const { hour, minute, ...dateOptions} = dateTimeOptions;\n return luxonDateTime.toLocaleString(dateOptions);\n }\n\n const getISODate = ():string => {\n return DateTime.now().toISO({includeOffset:true, suppressMilliseconds: true})\n }\n\n return {\n convertISOStringToLocalDateTime: convertISOStringToLocalDateTime,\n convertISOStringToLocalDate: convertISOStringToLocalDate,\n getISODate: getISODate\n };\n}\n","import { useCallback } from 'react';\nimport { useWorkflowStore } from '../stores/workflowStore';\n\nexport const useWorkflow = () => {\n const { updateTaskDataMap } = useWorkflowStore();\n\n const setWorkflowTaskPageData = useCallback(\n (taskId, pageId, data) => {\n updateTaskDataMap(taskId, pageId, data);\n },\n [updateTaskDataMap]\n );\n\n return {\n setWorkflowTaskPageData\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks-BRJfLTY_.js","names":["apiMutate","dateTimeOptions: Intl.DateTimeFormatOptions","localeString: string"],"sources":["../src/hooks/useOutlook.js","../src/hooks/useProductVersion.js","../src/hooks/useDateLocale.ts","../src/hooks/useWorkflow.js"],"sourcesContent":["import { apiMutate } from '../utilities/useAxiosMutate';\nimport { useEffect } from 'react';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nexport const useOutlook = (callbackUri, onLogin) => {\n\n const invalidateUserSession = async () => {\n try {\n // if (ConfigService.integrationV2ApiUrl === undefined) {\n // throw new Error('REACT_APP_INTEGRATION_V2_API_BASE is undefined')\n // }\n // const accessToken = localStorage.getItem('outlookAccessToken');\n // const response = await apiMutate(\n // ConfigService.integrationV2ApiUrl,\n // `OutlookIntegrationAccessToken/invalidateUserSession`,\n // {\n // method: \"post\",\n // headers : {\n // OutlookAccessToken: accessToken\n // }\n // }\n // )\n\n } catch (error) {\n console.error('Error refreshing access token:', error);\n return null;\n // }\n } finally {\n try {\n localStorage.removeItem('outlookAccessToken');\n } catch (error) {\n console.error('Error removing accessToken:', error);\n }\n\n try {\n localStorage.removeItem('outlookRefreshToken');\n } catch (error) {\n console.error('Error removing refreshToken:', error);\n }\n\n try {\n localStorage.removeItem('outlookExpiresAt');\n } catch (error) {\n console.error('Error removing expiresAt:', error);\n }\n\n }\n }\n\n const getAccessToken = async () => {\n let accessToken = localStorage.getItem('outlookAccessToken');\n\n if (!accessToken) {\n throw(new Error(\"No access token found\"));\n }\n\n const expiresAt = localStorage.getItem('outlookExpiresAt');\n if (expiresAt && !isBeforeCurrentTime(expiresAt)) {\n return accessToken;\n }\n\n const refreshToken = localStorage.getItem('outlookRefreshToken');\n if (!refreshToken) {\n throw(new Error(\"No refresh token found\"));\n }\n\n try {\n if (ConfigService.integrationV2ApiUrl === undefined) {\n throw new Error('REACT_APP_INTEGRATION_V2_API_BASE is undefined')\n }\n const response = await apiMutate(\n ConfigService.integrationV2ApiUrl,\n `OutlookIntegrationAccessToken/getAccessToken`,\n {\n method: \"post\",\n data: {\n option: \"refresh_token\",\n value: refreshToken,\n redirectUri: ConfigService.config.UNITY_URL + \"/aad_redirect\"\n }\n }\n )\n const data = response.data;\n if (data.accessToken != null && data.refreshToken != null && data.expiresIn != null) {\n localStorage.setItem('outlookAccessToken', data.accessToken);\n localStorage.setItem('outlookRefreshToken', data.refreshToken);\n localStorage.setItem('outlookExpiresAt', addSecondsToCurrentTimeUnix(data.expiresIn));\n return data.accessToken;\n } else {\n throw(new Error(\"Error: unable to get access token\"));\n }\n\n } catch (error) {\n console.error('Error refreshing access token:', error);\n return null;\n }\n };\n\n const login = () => {\n\n const baseUrl = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize';\n const clientId = process.env.REACT_APP_MSAL_API_CLIENT_ID;\n const responseType = 'code';\n const redirectUri = `${ConfigService.config.UNITY_URL}/aad_redirect`;\n const responseMode = 'query';\n const scope = [\n 'https://graph.microsoft.com/Calendars.ReadWrite',\n 'https://graph.microsoft.com/Calendars.ReadWrite.Shared',\n 'https://graph.microsoft.com/OnlineMeetingTranscript.Read.All',\n 'https://graph.microsoft.com/OnlineMeetings.Read',\n ].join('%20'); // Join scopes with URL-encoded space\n\n const authUrl = `${baseUrl}?client_id=${clientId}&response_type=${responseType}&redirect_uri=${redirectUri}&response_mode=${responseMode}&scope=${scope}&state=${callbackUri}`;\n openLoginPopup(authUrl)\n // window.location.href = authUrl;\n }\n\n\n function openLoginPopup(url) {\n var width = 600;\n var height = 600;\n var left = (screen.width - width) / 2;\n var top = (screen.height - height) / 2;\n var features = `width=${width},height=${height},top=${top},left=${left},status=no,toolbar=no,menubar=no,location=no`;\n\n var popup = window.open(url, 'LoginPopup', features);\n return popup;\n }\n function addSecondsToCurrentTimeUnix(seconds) {\n var now = new Date();\n now.setSeconds(now.getSeconds() + seconds);\n return now.getTime();\n }\n\n function isBeforeCurrentTime(unixTime) {\n var now = new Date().getTime();\n return unixTime < now;\n }\n\n const isUserSignedIn = () => {\n const accessToken = localStorage.getItem('outlookAccessToken');\n const refreshToken = localStorage.getItem('outlookRefreshToken');\n const expiresAt = localStorage.getItem('outlookExpiresAt');\n if (accessToken && refreshToken && expiresAt && !isBeforeCurrentTime(expiresAt)) {\n return true;\n } else {\n return false;\n }\n }\n\n useEffect(() => {\n const handleStorageChange = (event) => {\n if (event.key === 'outlookAccessToken') {\n onLogin();\n }\n };\n\n window.addEventListener('storage', handleStorageChange);\n\n // Clean up the event listener\n return () => {\n window.removeEventListener('storage', handleStorageChange);\n };\n }, []);\n return {getAccessToken, invalidateUserSession, login, isUserSignedIn};\n}\n","import { useUser } from '../utilities/auth/useUser';\n\nexport const useProductVersion = (productId) => {\n const user = useUser();\n\n const matchingProduct = user?.products?.find(\n (product) => product?.productId === productId\n );\n\n return matchingProduct?.currentProductVersionId || '';\n};\n","import React, { useMemo } from 'react'\nimport {DateTime} from 'luxon'\n\n// TODO: tie in datetime config at the user or tenant level\n\nexport interface UseDateLocaleReturn {\n convertISOStringToLocalDateTime: (date: string) => string | null;\n convertISOStringToLocalDate: (date: string) => string | null;\n getISODate: () => string;\n}\n\nexport const useDateLocale = (\n datetimeFormatOptions : Intl.DateTimeFormatOptions | null = null,\n locale: string | null = null\n): UseDateLocaleReturn => {\n\n const dateTimeOptions: Intl.DateTimeFormatOptions = useMemo(() => (datetimeFormatOptions ?? {\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n hour12: true,\n }), [datetimeFormatOptions]);\n\n const localeString: string = useMemo(() => locale ?? navigator.language,[locale]);\n\n const convertISOStringToLocalDateTime = (date: string): string | null => {\n const luxonDateTime = DateTime.fromISO(date, {zone: 'utc'});\n luxonDateTime.setZone(dateTimeOptions.timeZone);\n\n luxonDateTime.setLocale(localeString);\n\n if(!luxonDateTime.isValid)\n {\n return null;\n }\n return luxonDateTime.toLocaleString(dateTimeOptions);\n\n }\n\n const convertISOStringToLocalDate = (date: string): string | null => {\n const luxonDateTime = DateTime.fromISO(date);\n luxonDateTime.setZone(dateTimeOptions.timeZone);\n\n luxonDateTime.setLocale(localeString);\n if(!luxonDateTime.isValid)\n {\n return null;\n }\n const { hour, minute, ...dateOptions} = dateTimeOptions;\n return luxonDateTime.toLocaleString(dateOptions);\n }\n\n const getISODate = ():string => {\n return DateTime.now().toISO({includeOffset:true, suppressMilliseconds: true})\n }\n\n return {\n convertISOStringToLocalDateTime: convertISOStringToLocalDateTime,\n convertISOStringToLocalDate: convertISOStringToLocalDate,\n getISODate: getISODate\n };\n}\n","import { useCallback } from 'react';\nimport { useWorkflowStore } from '../stores/workflowStore';\n\nexport const useWorkflow = () => {\n const { updateTaskDataMap } = useWorkflowStore();\n\n const setWorkflowTaskPageData = useCallback(\n (taskId, pageId, data) => {\n updateTaskDataMap(taskId, pageId, data);\n },\n [updateTaskDataMap]\n );\n\n return {\n setWorkflowTaskPageData\n };\n};\n"],"mappings":"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"}
|