udp-react-enterprise-component-library 25.18.1-beta.83 → 25.18.1-beta.85
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/{ActionsRenderer-Cu0RVs9v.js → ActionsRenderer-CeKVHKrO.js} +4 -4
- package/dist/{ActionsRenderer-Cu0RVs9v.js.map → ActionsRenderer-CeKVHKrO.js.map} +1 -1
- package/dist/{AmChart-CTixft8X.js → AmChart-CITPijYq.js} +2 -2
- package/dist/{AmChart-CTixft8X.js.map → AmChart-CITPijYq.js.map} +1 -1
- package/dist/{AmbientAlert-DcYkGCUm.js → AmbientAlert-Ba_vefUx.js} +1 -1
- package/dist/{AmbientAlert-DcYkGCUm.js.map → AmbientAlert-Ba_vefUx.js.map} +1 -1
- package/dist/{AmbientStepper-BkhoDtpx.js → AmbientStepper-DSpZnJog.js} +1 -1
- package/dist/{AmbientStepper-BkhoDtpx.js.map → AmbientStepper-DSpZnJog.js.map} +1 -1
- package/dist/{AmbientToast-iliGNjGA.js → AmbientToast-CiI6QsTm.js} +1 -1
- package/dist/{AmbientToast-iliGNjGA.js.map → AmbientToast-CiI6QsTm.js.map} +1 -1
- package/dist/{AmbientToggleButtonGroup-DgFod3VK.js → AmbientToggleButtonGroup-CqtJnv9Z.js} +1 -1
- package/dist/{AmbientToggleButtonGroup-DgFod3VK.js.map → AmbientToggleButtonGroup-CqtJnv9Z.js.map} +1 -1
- package/dist/{AmbientVisualizationCard-CivQRhmD.js → AmbientVisualizationCard-Dt07i5W-.js} +4 -4
- package/dist/{AmbientVisualizationCard-CivQRhmD.js.map → AmbientVisualizationCard-Dt07i5W-.js.map} +1 -1
- package/dist/{AmbientVisualizer-buICwVdO.js → AmbientVisualizer-DqNCW3vX.js} +2 -2
- package/dist/{AmbientVisualizer-buICwVdO.js.map → AmbientVisualizer-DqNCW3vX.js.map} +1 -1
- package/dist/{AvatarAlphabet-D5klbFfJ.js → AvatarAlphabet-1xHvx7P6.js} +1 -1
- package/dist/{AvatarAlphabet-D5klbFfJ.js.map → AvatarAlphabet-1xHvx7P6.js.map} +1 -1
- package/dist/{BarChartWidget-BYJS3vMQ.js → BarChartWidget-u-8fxMn5.js} +4 -4
- package/dist/{BarChartWidget-BYJS3vMQ.js.map → BarChartWidget-u-8fxMn5.js.map} +1 -1
- package/dist/{BubbleWidget-FNCYe8So.js → BubbleWidget-CMJYN-7J.js} +3 -3
- package/dist/{BubbleWidget-FNCYe8So.js.map → BubbleWidget-CMJYN-7J.js.map} +1 -1
- package/dist/{CatalogUtilities-CAPPpjBH.js → CatalogUtilities-God-FM1u.js} +1 -1
- package/dist/{CatalogUtilities-CAPPpjBH.js.map → CatalogUtilities-God-FM1u.js.map} +1 -1
- package/dist/{ChartSummaryToggle-BxJXaJO8.js → ChartSummaryToggle-U4alJS0G.js} +1 -1
- package/dist/{ChartSummaryToggle-BxJXaJO8.js.map → ChartSummaryToggle-U4alJS0G.js.map} +1 -1
- package/dist/{ChatUDP-BHtX1Ipw.js → ChatUDP-DYAsqqXk.js} +1 -1
- package/dist/{ChatUDP-BHtX1Ipw.js.map → ChatUDP-DYAsqqXk.js.map} +1 -1
- package/dist/{ChipAlphabet-DCU1DsB-.js → ChipAlphabet-9xlSgNha.js} +2 -2
- package/dist/{ChipAlphabet-DCU1DsB-.js.map → ChipAlphabet-9xlSgNha.js.map} +1 -1
- package/dist/{ClientSideUdpGrid-D5fGumO-.js → ClientSideUdpGrid-BfhRDgKV.js} +1 -1
- package/dist/{ClientSideUdpGrid-D5fGumO-.js.map → ClientSideUdpGrid-BfhRDgKV.js.map} +1 -1
- package/dist/{CompactDataList-j2xAs8-I.js → CompactDataList-CFI63cvg.js} +1 -1
- package/dist/{CompactDataList-j2xAs8-I.js.map → CompactDataList-CFI63cvg.js.map} +1 -1
- package/dist/{CompactDataListItem-BB0gf0JD.js → CompactDataListItem-C3_Ro16-.js} +1 -1
- package/dist/{CompactDataListItem-BB0gf0JD.js.map → CompactDataListItem-C3_Ro16-.js.map} +1 -1
- package/dist/{ConvertISODate-C640-_Cm.js → ConvertISODate-C6RoXn_x.js} +1 -1
- package/dist/{ConvertISODate-C640-_Cm.js.map → ConvertISODate-C6RoXn_x.js.map} +1 -1
- package/dist/{CrudBrowserContainer-DJHq5ILl.js → CrudBrowserContainer-UJvAMHYL.js} +2 -2
- package/dist/{CrudBrowserContainer-DJHq5ILl.js.map → CrudBrowserContainer-UJvAMHYL.js.map} +1 -1
- package/dist/{CrudTableSidePanel-Dw8gZSqR.js → CrudTableSidePanel-D8UYaXhS.js} +1 -1
- package/dist/{CrudTableSidePanel-Dw8gZSqR.js.map → CrudTableSidePanel-D8UYaXhS.js.map} +1 -1
- package/dist/{DataBrowserContainer-D4gJ66IC.js → DataBrowserContainer-DGEL52Un.js} +2 -2
- package/dist/{DataBrowserContainer-D4gJ66IC.js.map → DataBrowserContainer-DGEL52Un.js.map} +1 -1
- package/dist/{DateTrendWidget-CbhpScrj.js → DateTrendWidget-CeJydQNr.js} +3 -3
- package/dist/{DateTrendWidget-CbhpScrj.js.map → DateTrendWidget-CeJydQNr.js.map} +1 -1
- package/dist/{DensePlotWidget-CsrA6oiC.js → DensePlotWidget-lJW-uzdQ.js} +2 -2
- package/dist/{DensePlotWidget-CsrA6oiC.js.map → DensePlotWidget-lJW-uzdQ.js.map} +1 -1
- package/dist/{DonutChartWidget-C0XsTjF9.js → DonutChartWidget-C6HPYg7I.js} +5 -5
- package/dist/{DonutChartWidget-C0XsTjF9.js.map → DonutChartWidget-C6HPYg7I.js.map} +1 -1
- package/dist/{DragDropFileUpload-CVnUu-6f.js → DragDropFileUpload-C0Jho_xA.js} +2 -2
- package/dist/{DragDropFileUpload-CVnUu-6f.js.map → DragDropFileUpload-C0Jho_xA.js.map} +1 -1
- package/dist/{EmptyStateDisplay-YOwCw38_.js → EmptyStateDisplay-CyINqvWU.js} +1 -1
- package/dist/{EmptyStateDisplay-YOwCw38_.js.map → EmptyStateDisplay-CyINqvWU.js.map} +1 -1
- package/dist/{EntityHeader-C3Ae5BLK.js → EntityHeader-CPvUEp7i.js} +2 -2
- package/dist/{EntityHeader-C3Ae5BLK.js.map → EntityHeader-CPvUEp7i.js.map} +1 -1
- package/dist/{ExportSidesheet-BQiNzxN9.js → ExportSidesheet-eHGdT42e.js} +4 -4
- package/dist/{ExportSidesheet-BQiNzxN9.js.map → ExportSidesheet-eHGdT42e.js.map} +1 -1
- package/dist/{ExtenderToggle-DAaajb90.js → ExtenderToggle-H2x6PXmn.js} +1 -1
- package/dist/{ExtenderToggle-DAaajb90.js.map → ExtenderToggle-H2x6PXmn.js.map} +1 -1
- package/dist/{FieldArrayCard-sEe2pmg7.js → FieldArrayCard-CkVvDF-N.js} +2 -2
- package/dist/{FieldArrayCard-sEe2pmg7.js.map → FieldArrayCard-CkVvDF-N.js.map} +1 -1
- package/dist/{FluentActivity-CQQeL7Qe.js → FluentActivity-D4CnqD1a.js} +2 -2
- package/dist/{FluentActivity-CQQeL7Qe.js.map → FluentActivity-D4CnqD1a.js.map} +1 -1
- package/dist/{FluentBody-CBqwLzTG.js → FluentBody-C_2uP08Y.js} +1 -1
- package/dist/{FluentBody-CBqwLzTG.js.map → FluentBody-C_2uP08Y.js.map} +1 -1
- package/dist/{FluentCell-F9eits6u.js → FluentCell-CuJJAwCD.js} +1 -1
- package/dist/{FluentCell-F9eits6u.js.map → FluentCell-CuJJAwCD.js.map} +1 -1
- package/dist/{FluentDataTable-BSQ_EHJX.js → FluentDataTable-CYNp3-qT.js} +5 -5
- package/dist/{FluentDataTable-BSQ_EHJX.js.map → FluentDataTable-CYNp3-qT.js.map} +1 -1
- package/dist/{FluentDisplayNumbers-C-zCWHot.js → FluentDisplayNumbers-BR-gZN5l.js} +1 -1
- package/dist/{FluentDisplayNumbers-C-zCWHot.js.map → FluentDisplayNumbers-BR-gZN5l.js.map} +1 -1
- package/dist/{FluentHead-C1bs_iJK.js → FluentHead-B9oIMLR1.js} +1 -1
- package/dist/{FluentHead-C1bs_iJK.js.map → FluentHead-B9oIMLR1.js.map} +1 -1
- package/dist/{FluentIconKey-BWCFV9Qs.js → FluentIconKey-D8jK0HK5.js} +1 -1
- package/dist/{FluentIconKey-BWCFV9Qs.js.map → FluentIconKey-D8jK0HK5.js.map} +1 -1
- package/dist/{FluentListItem-1fzW--Dq.js → FluentListItem-CSkJhTK-.js} +1 -1
- package/dist/{FluentListItem-1fzW--Dq.js.map → FluentListItem-CSkJhTK-.js.map} +1 -1
- package/dist/{FluentRow-C_YJYbQ5.js → FluentRow-BDiPXAgx.js} +1 -1
- package/dist/{FluentRow-C_YJYbQ5.js.map → FluentRow-BDiPXAgx.js.map} +1 -1
- package/dist/{FluentSecondaryStatNumber-CDTlsa6u.js → FluentSecondaryStatNumber-DaeGuXtJ.js} +2 -2
- package/dist/{FluentSecondaryStatNumber-CDTlsa6u.js.map → FluentSecondaryStatNumber-DaeGuXtJ.js.map} +1 -1
- package/dist/{FluentStatNumber-BYwIRVrE.js → FluentStatNumber-BN-HWfVM.js} +2 -2
- package/dist/{FluentStatNumber-BYwIRVrE.js.map → FluentStatNumber-BN-HWfVM.js.map} +1 -1
- package/dist/{FluentStatsSnippet-BN9VkqNq.js → FluentStatsSnippet-DKMsXSfg.js} +1 -1
- package/dist/{FluentStatsSnippet-BN9VkqNq.js.map → FluentStatsSnippet-DKMsXSfg.js.map} +1 -1
- package/dist/{FluentTabPanel-DZPtDTkV.js → FluentTabPanel-C8kO8Xo-.js} +1 -1
- package/dist/{FluentTabPanel-DZPtDTkV.js.map → FluentTabPanel-C8kO8Xo-.js.map} +1 -1
- package/dist/{GraphCard-Bdh6VeDb.js → GraphCard-oEpMu8jY.js} +2 -2
- package/dist/{GraphCard-Bdh6VeDb.js.map → GraphCard-oEpMu8jY.js.map} +1 -1
- package/dist/{HeaderExpander-Coexy8dm.js → HeaderExpander-DYt8poQf.js} +2 -2
- package/dist/{HeaderExpander-Coexy8dm.js.map → HeaderExpander-DYt8poQf.js.map} +1 -1
- package/dist/{IconLibrary-BcnAXrDy.js → IconLibrary-BXrFjEOe.js} +2 -2
- package/dist/{IconLibrary-BcnAXrDy.js.map → IconLibrary-BXrFjEOe.js.map} +1 -1
- package/dist/{ImportDataFromFileMapping-BIcQmKll.js → ImportDataFromFileMapping-Dy1iJMkI.js} +4 -4
- package/dist/{ImportDataFromFileMapping-BIcQmKll.js.map → ImportDataFromFileMapping-Dy1iJMkI.js.map} +1 -1
- package/dist/Inquiry-C6fDp46v.js +3 -0
- package/dist/{Inquiry-1o8EuckI.js → Inquiry-D6nWpzu2.js} +2 -2
- package/dist/{Inquiry-1o8EuckI.js.map → Inquiry-D6nWpzu2.js.map} +1 -1
- package/dist/{LineAndSparklinesWidget-J0kTiLt2.js → LineAndSparklinesWidget-DSWVrhFG.js} +4 -4
- package/dist/{LineAndSparklinesWidget-J0kTiLt2.js.map → LineAndSparklinesWidget-DSWVrhFG.js.map} +1 -1
- package/dist/{LineGraphWidget-OkrYlfsd.js → LineGraphWidget-Ly1fmTyr.js} +4 -4
- package/dist/{LineGraphWidget-OkrYlfsd.js.map → LineGraphWidget-Ly1fmTyr.js.map} +1 -1
- package/dist/{MapUtilities-BgKuNV8y.js → MapUtilities-BIMHy5V-.js} +1 -1
- package/dist/{MapUtilities-BgKuNV8y.js.map → MapUtilities-BIMHy5V-.js.map} +1 -1
- package/dist/{MyExportsPage-Ckti0gqK.js → MyExportsPage-C-pr-R0K.js} +3 -3
- package/dist/{MyExportsPage-Ckti0gqK.js.map → MyExportsPage-C-pr-R0K.js.map} +1 -1
- package/dist/MyExportsPage-DNvL1_1X.js +3 -0
- package/dist/{NestedGrid-BPb_PuxN.js → NestedGrid-DAqsZ216.js} +1 -1
- package/dist/{NestedGrid-BPb_PuxN.js.map → NestedGrid-DAqsZ216.js.map} +1 -1
- package/dist/{Notes-BPaEmexk.js → Notes-DrFq-1gt.js} +3 -3
- package/dist/{Notes-BPaEmexk.js.map → Notes-DrFq-1gt.js.map} +1 -1
- package/dist/{PDFViewer-BvaqCfIS.js → PDFViewer-aOheQArE.js} +1 -1
- package/dist/{PDFViewer-BvaqCfIS.js.map → PDFViewer-aOheQArE.js.map} +1 -1
- package/dist/{PaymentForm-BdWY9dEt.js → PaymentForm-C4IXoROF.js} +2 -2
- package/dist/{PaymentForm-BdWY9dEt.js.map → PaymentForm-C4IXoROF.js.map} +1 -1
- package/dist/{ProgressBarWidget-gY0_iFB-.js → ProgressBarWidget-BOzkpd0C.js} +4 -4
- package/dist/{ProgressBarWidget-gY0_iFB-.js.map → ProgressBarWidget-BOzkpd0C.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesWidget-Kt5BElrK.js → RecentlyLoadedNodesWidget-7c9IngMR.js} +2 -2
- package/dist/{RecentlyLoadedNodesWidget-Kt5BElrK.js.map → RecentlyLoadedNodesWidget-7c9IngMR.js.map} +1 -1
- package/dist/{RemindersCard-BOSGv9pc.js → RemindersCard-C1_GeqUW.js} +1 -1
- package/dist/{RemindersCard-BOSGv9pc.js.map → RemindersCard-C1_GeqUW.js.map} +1 -1
- package/dist/{RemindersWidget-u_oonyMf.js → RemindersWidget-u_d6RoVv.js} +3 -3
- package/dist/{RemindersWidget-u_oonyMf.js.map → RemindersWidget-u_d6RoVv.js.map} +1 -1
- package/dist/{SearchMethodUdpGrid-CWYZUOx-.js → SearchMethodUdpGrid-BMHWSjf5.js} +1 -1
- package/dist/{SearchMethodUdpGrid-CWYZUOx-.js.map → SearchMethodUdpGrid-BMHWSjf5.js.map} +1 -1
- package/dist/{Shell-Bf26jefp.js → Shell-n8SMDgV0.js} +3 -3
- package/dist/{Shell-Bf26jefp.js.map → Shell-n8SMDgV0.js.map} +1 -1
- package/dist/{SiteHeader-CQSKBolX.js → SiteHeader-DaL_Dy45.js} +5 -5
- package/dist/{SiteHeader-CQSKBolX.js.map → SiteHeader-DaL_Dy45.js.map} +1 -1
- package/dist/{SparklineWidget-Bbeyk07x.js → SparklineWidget-BHV5aN9E.js} +4 -4
- package/dist/{SparklineWidget-Bbeyk07x.js.map → SparklineWidget-BHV5aN9E.js.map} +1 -1
- package/dist/{SparsePlotWidget-DSjCtlMJ.js → SparsePlotWidget-DuHbmEom.js} +3 -3
- package/dist/{SparsePlotWidget-DSjCtlMJ.js.map → SparsePlotWidget-DuHbmEom.js.map} +1 -1
- package/dist/{Statistic-CB8UpsW4.js → Statistic-DWW8GxYI.js} +4 -4
- package/dist/{Statistic-CB8UpsW4.js.map → Statistic-DWW8GxYI.js.map} +1 -1
- package/dist/{SupportCaseSideSheet-CT15Dg8h.js → SupportCaseSideSheet-6P8CVloZ.js} +2 -2
- package/dist/{SupportCaseSideSheet-CT15Dg8h.js.map → SupportCaseSideSheet-6P8CVloZ.js.map} +1 -1
- package/dist/{SupportCaseSideSheet-9iAiZyOu.js → SupportCaseSideSheet-BKAsjpN1.js} +1 -1
- package/dist/{TrimForAvatar-BP1gZWd5.js → TrimForAvatar-DazacBHv.js} +1 -1
- package/dist/{TrimForAvatar-BP1gZWd5.js.map → TrimForAvatar-DazacBHv.js.map} +1 -1
- package/dist/UI/accordion/index.js +1 -1
- package/dist/UI/advancedSearchBuilder/index.js +1 -1
- package/dist/UI/charts/amcharts/index.js +1 -1
- package/dist/UI/charts/index.js +1 -1
- package/dist/UI/components/dataDisplay/index.js +1 -1
- package/dist/UI/components/index.js +1 -1
- package/dist/UI/dataDisplay/FluentActivity/index.js +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/FluentBody/index.js +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/FluentCell/index.js +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/FluentHead/index.js +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/FluentRow/index.js +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/index.js +1 -1
- package/dist/UI/dataDisplay/GraphCard/index.js +1 -1
- package/dist/UI/dataDisplay/entityHeader/index.js +1 -1
- package/dist/UI/dataDisplay/index.js +10 -10
- package/dist/UI/dataDisplay/notes/index.js +1 -1
- package/dist/UI/dataDisplay/visualization/amCharts/index.js +1 -1
- package/dist/UI/dataDisplay/visualization/index.js +1 -1
- package/dist/UI/feedback/index.js +2 -2
- package/dist/UI/fileViewer/index.js +1 -1
- package/dist/UI/fileViewer/pdfViewer/index.js +1 -1
- package/dist/UI/floorplans/index.js +1 -1
- package/dist/UI/forms/index.js +1 -1
- package/dist/UI/index.js +36 -36
- package/dist/UI/inputs/buttons/UdpActionCard/index.js +1 -1
- package/dist/UI/inputs/buttons/index.js +3 -3
- package/dist/UI/inputs/fieldArrayCard/index.js +1 -1
- package/dist/UI/inputs/menus/AmbientStepper/index.js +1 -1
- package/dist/UI/mapLayout/index.js +1 -1
- package/dist/UI/mapLayout/ui/index.js +2 -2
- package/dist/UI/mapLayout/utilities/index.js +1 -1
- package/dist/UI/maps/index.js +2 -2
- package/dist/UI/navigation/index.js +5 -5
- package/dist/UI/navigation/menus/index.js +1 -1
- package/dist/UI/navigation/tabs/defaultTabs/index.js +2 -2
- package/dist/UI/navigation/tabs/index.js +3 -3
- package/dist/UI/support/index.js +1 -1
- package/dist/UI/surfaces/NestedGrid/index.js +2 -2
- package/dist/UI/surfaces/NestedGrid/ui/index.js +1 -1
- package/dist/UI/surfaces/cards/chartDisplayCards/index.js +1 -1
- package/dist/UI/surfaces/cards/index.js +1 -1
- package/dist/UI/surfaces/index.js +3 -3
- package/dist/UI/templates/deprecated/UdpGridTemplate/index.js +1 -1
- package/dist/UI/templates/index.js +1 -1
- package/dist/UI/templates/newGrid/index.js +3 -3
- package/dist/UI/templates/ui/index.js +1 -1
- package/dist/UI/timeline/fluentTimeline/index.js +1 -1
- package/dist/UI/timeline/index.js +2 -2
- package/dist/UI/widgets/index.js +1 -1
- package/dist/UI/widgets/library/BarChartWidget/index.js +1 -1
- package/dist/UI/widgets/library/BubbleWidget/index.js +1 -1
- package/dist/UI/widgets/library/DateTrendWidget/index.js +1 -1
- package/dist/UI/widgets/library/DensePlotWidget/index.js +1 -1
- package/dist/UI/widgets/library/DonutChartWidget/index.js +1 -1
- package/dist/UI/widgets/library/LineAndSparklinesWidget/index.js +1 -1
- package/dist/UI/widgets/library/LineGraphWidget/index.js +1 -1
- package/dist/UI/widgets/library/ProgressBarWidget/index.js +1 -1
- package/dist/UI/widgets/library/RecentlyLoadedNodesWidget/index.js +1 -1
- package/dist/UI/widgets/library/RemindersWidget/index.js +1 -1
- package/dist/UI/widgets/library/SparklineWidget/index.js +1 -1
- package/dist/UI/widgets/library/SparsePlotWidget/index.js +1 -1
- package/dist/UI/widgets/library/TableWidget/index.js +1 -1
- package/dist/{UI-Baviuqz7.js → UI-sxwE9QQR.js} +1 -1
- package/dist/{UI-Baviuqz7.js.map → UI-sxwE9QQR.js.map} +1 -1
- package/dist/{UdpActionCard-VtAacuCM.js → UdpActionCard-De4UAFah.js} +1 -1
- package/dist/{UdpActionCard-VtAacuCM.js.map → UdpActionCard-De4UAFah.js.map} +1 -1
- package/dist/{UdpAuditEvents-DotSR4R9.js → UdpAuditEvents-CoD2y2CV.js} +2 -2
- package/dist/{UdpAuditEvents-DotSR4R9.js.map → UdpAuditEvents-CoD2y2CV.js.map} +1 -1
- package/dist/{UdpAuditEventsPage-BZ5fMCYW.js → UdpAuditEventsPage-B0yZyLfH.js} +3 -3
- package/dist/{UdpAuditEventsPage-BZ5fMCYW.js.map → UdpAuditEventsPage-B0yZyLfH.js.map} +1 -1
- package/dist/UdpAuditEventsPage-u7pIg9Z9.js +3 -0
- package/dist/{UdpBarChart-D2bfgm7n.js → UdpBarChart-D50QkZv0.js} +1 -1
- package/dist/{UdpBarChart-D2bfgm7n.js.map → UdpBarChart-D50QkZv0.js.map} +1 -1
- package/dist/{UdpDataBrowserPage-3fiOCSkx.js → UdpDataBrowserPage-Br0DJTMq.js} +3 -3
- package/dist/{UdpDataBrowserPage-3fiOCSkx.js.map → UdpDataBrowserPage-Br0DJTMq.js.map} +1 -1
- package/dist/{UdpFormsBuilderPage-BobXHgd_.js → UdpFormsBuilderPage-Pjd7wOKV.js} +1 -1
- package/dist/{UdpFormsBuilderPage-BobXHgd_.js.map → UdpFormsBuilderPage-Pjd7wOKV.js.map} +1 -1
- package/dist/{UdpFormsListPage-BuoLTPWK.js → UdpFormsListPage-AUcfVY2K.js} +1 -1
- package/dist/{UdpFormsListPage-BuoLTPWK.js.map → UdpFormsListPage-AUcfVY2K.js.map} +1 -1
- package/dist/{UdpFormsPrivateForm-Cy3PXVju.js → UdpFormsPrivateForm-ip2aj9xl.js} +1 -1
- package/dist/{UdpFormsPrivateForm-Cy3PXVju.js.map → UdpFormsPrivateForm-ip2aj9xl.js.map} +1 -1
- package/dist/{UdpFormsPublicForm-DDCpLG6l.js → UdpFormsPublicForm-YjrVSCGi.js} +1 -1
- package/dist/{UdpFormsPublicForm-DDCpLG6l.js.map → UdpFormsPublicForm-YjrVSCGi.js.map} +1 -1
- package/dist/{UdpFormsSubmissionGrid-Qj-ti4hh.js → UdpFormsSubmissionGrid-fhcfXjlD.js} +2 -2
- package/dist/{UdpFormsSubmissionGrid-Qj-ti4hh.js.map → UdpFormsSubmissionGrid-fhcfXjlD.js.map} +1 -1
- package/dist/{UdpGridPanelManagementPage-BYdQNWN3.js → UdpGridPanelManagementPage-CkeP9nO-.js} +2 -2
- package/dist/{UdpGridPanelManagementPage-BYdQNWN3.js.map → UdpGridPanelManagementPage-CkeP9nO-.js.map} +1 -1
- package/dist/{UdpGridPanelManagementSidesheet-CSGsefRn.js → UdpGridPanelManagementSidesheet-DAPOQmuk.js} +1 -1
- package/dist/{UdpGridPanelManagementSidesheet-CSGsefRn.js.map → UdpGridPanelManagementSidesheet-DAPOQmuk.js.map} +1 -1
- package/dist/{UdpGridTemplate-xen0Fvww.js → UdpGridTemplate-BjsxZFOQ.js} +2 -2
- package/dist/{UdpGridTemplate-xen0Fvww.js.map → UdpGridTemplate-BjsxZFOQ.js.map} +1 -1
- package/dist/{UdpImportFromFileMappingPage-BxGvGFua.js → UdpImportFromFileMappingPage-xfq_3nOx.js} +2 -2
- package/dist/{UdpImportFromFileMappingPage-BxGvGFua.js.map → UdpImportFromFileMappingPage-xfq_3nOx.js.map} +1 -1
- package/dist/{UdpInquiryMaintenanceEnginePage-CSf7jB35.js → UdpInquiryMaintenanceEnginePage-WRu7l1i_.js} +2 -2
- package/dist/{UdpInquiryMaintenanceEnginePage-CSf7jB35.js.map → UdpInquiryMaintenanceEnginePage-WRu7l1i_.js.map} +1 -1
- package/dist/{UdpMaintenanceEnginePage-C8NLZSPb.js → UdpMaintenanceEnginePage-D5pCaMao.js} +4 -4
- package/dist/{UdpMaintenanceEnginePage-C8NLZSPb.js.map → UdpMaintenanceEnginePage-D5pCaMao.js.map} +1 -1
- package/dist/{UdpMapToolbar-B410Zi_h.js → UdpMapToolbar-Bp3rryHY.js} +1 -1
- package/dist/{UdpMapToolbar-B410Zi_h.js.map → UdpMapToolbar-Bp3rryHY.js.map} +1 -1
- package/dist/{UdpNotesPage-BABI4D2S.js → UdpNotesPage-Bc1J9jHc.js} +1 -1
- package/dist/{UdpNotesPage-BABI4D2S.js.map → UdpNotesPage-Bc1J9jHc.js.map} +1 -1
- package/dist/{UdpRemindersPage-DuS3aPUk.js → UdpRemindersPage-BmNTjbO_.js} +1 -1
- package/dist/{UdpRemindersPage-DuS3aPUk.js.map → UdpRemindersPage-BmNTjbO_.js.map} +1 -1
- package/dist/{UdpReportsPage-CO1460ws.js → UdpReportsPage-ljtdb45L.js} +1 -1
- package/dist/{UdpReportsPage-CO1460ws.js.map → UdpReportsPage-ljtdb45L.js.map} +1 -1
- package/dist/{UdpTransactionTypesPage-CksJs2fe.js → UdpTransactionTypesPage-Uk2cRhpd.js} +2 -2
- package/dist/{UdpTransactionTypesPage-CksJs2fe.js.map → UdpTransactionTypesPage-Uk2cRhpd.js.map} +1 -1
- package/dist/{UdpTransactionsPage-B6OV3w81.js → UdpTransactionsPage-RiMTr1cK.js} +135 -70
- package/dist/UdpTransactionsPage-RiMTr1cK.js.map +1 -0
- package/dist/{UdpVerticalManagementPage-CQeGGUyp.js → UdpVerticalManagementPage-DQAI1xe3.js} +2 -2
- package/dist/{UdpVerticalManagementPage-CQeGGUyp.js.map → UdpVerticalManagementPage-DQAI1xe3.js.map} +1 -1
- package/dist/{UdpVerticalManagementSidesheet-DGL4dyia.js → UdpVerticalManagementSidesheet-heFj83jt.js} +2 -2
- package/dist/{UdpVerticalManagementSidesheet-DGL4dyia.js.map → UdpVerticalManagementSidesheet-heFj83jt.js.map} +1 -1
- package/dist/{UserForm-CBm_ZIJx.js → UserForm-DhBINx6I.js} +1 -1
- package/dist/{UserForm-CBm_ZIJx.js.map → UserForm-DhBINx6I.js.map} +1 -1
- package/dist/{UserFormSideSheet-7fHGhAER.js → UserFormSideSheet-Cj7IyfX1.js} +2 -2
- package/dist/{UserFormSideSheet-7fHGhAER.js.map → UserFormSideSheet-Cj7IyfX1.js.map} +1 -1
- package/dist/UserFormSideSheet-LAR4fJpW.js +3 -0
- package/dist/{WidgetCard-U1XoSuoz.js → WidgetCard-CgZSNV38.js} +1 -1
- package/dist/{WidgetCard-U1XoSuoz.js.map → WidgetCard-CgZSNV38.js.map} +1 -1
- package/dist/{WorkflowContainer-Drts8hsZ.js → WorkflowContainer-Cec3FFwP.js} +2 -2
- package/dist/{WorkflowContainer-Drts8hsZ.js.map → WorkflowContainer-Cec3FFwP.js.map} +1 -1
- package/dist/{WorkflowContainer-BxBxnHEY.js → WorkflowContainer-DecC3Yux.js} +1 -1
- package/dist/{accordion-Ca8ECaw2.js → accordion-CQ1AqRla.js} +1 -1
- package/dist/{accordion-Ca8ECaw2.js.map → accordion-CQ1AqRla.js.map} +1 -1
- package/dist/{advancedSearchBuilder-7ixhIwLW.js → advancedSearchBuilder-Dd4YO9zh.js} +1 -1
- package/dist/{advancedSearchBuilder-7ixhIwLW.js.map → advancedSearchBuilder-Dd4YO9zh.js.map} +1 -1
- package/dist/{amcharts-aenA6giA.js → amcharts-wdRwq2UE.js} +2 -2
- package/dist/{amcharts-aenA6giA.js.map → amcharts-wdRwq2UE.js.map} +1 -1
- package/dist/{buttons-DyKpA2qY.js → buttons-BUWLNCFF.js} +1 -1
- package/dist/{buttons-DyKpA2qY.js.map → buttons-BUWLNCFF.js.map} +1 -1
- package/dist/{cards-Z72cvAh5.js → cards-XHzWNKeW.js} +1 -1
- package/dist/{cards-Z72cvAh5.js.map → cards-XHzWNKeW.js.map} +1 -1
- package/dist/{charts-pX01x8rO.js → charts--rJXTRtu.js} +2 -2
- package/dist/{charts-pX01x8rO.js.map → charts--rJXTRtu.js.map} +1 -1
- package/dist/dataBrowser/index.js +1 -1
- package/dist/{dataDisplay-CTkvIsCs.js → dataDisplay-BxCyWi8C.js} +2 -2
- package/dist/{dataDisplay-CTkvIsCs.js.map → dataDisplay-BxCyWi8C.js.map} +1 -1
- package/dist/{dataDisplay-BP3z7lU0.js → dataDisplay-C4q3aVrK.js} +1 -1
- package/dist/{dataDisplay-BP3z7lU0.js.map → dataDisplay-C4q3aVrK.js.map} +1 -1
- package/dist/{dateUtils-COj9Xpy9.js → dateUtils-DgLgnaVn.js} +1 -1
- package/dist/{dateUtils-COj9Xpy9.js.map → dateUtils-DgLgnaVn.js.map} +1 -1
- package/dist/{defaultTabs-B4clt2kH.js → defaultTabs-DBL-GFKY.js} +2 -2
- package/dist/{defaultTabs-B4clt2kH.js.map → defaultTabs-DBL-GFKY.js.map} +1 -1
- package/dist/{fileViewer-C_Q-hFda.js → fileViewer-CtY7cOmL.js} +3 -3
- package/dist/{fileViewer-C_Q-hFda.js.map → fileViewer-CtY7cOmL.js.map} +1 -1
- package/dist/{floorplans-DNUFP5-n.js → floorplans-9voWXvF2.js} +4 -4
- package/dist/{floorplans-DNUFP5-n.js.map → floorplans-9voWXvF2.js.map} +1 -1
- package/dist/{fluentTimeline-DpnUZabY.js → fluentTimeline-CiONGsTd.js} +1 -1
- package/dist/{fluentTimeline-DpnUZabY.js.map → fluentTimeline-CiONGsTd.js.map} +1 -1
- package/dist/{formatBytes-Bt-B_Lo8.js → formatBytes-I1Y1rO8O.js} +1 -1
- package/dist/{formatBytes-Bt-B_Lo8.js.map → formatBytes-I1Y1rO8O.js.map} +1 -1
- package/dist/{forms-sRKithEr.js → forms-DsdldFST.js} +23 -1
- package/dist/{forms-sRKithEr.js.map → forms-DsdldFST.js.map} +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/index.js +88 -88
- package/dist/inquiry/index.js +1 -1
- package/dist/maintenanceEngine/crudBrowser/index.js +2 -2
- package/dist/maintenanceEngine/index.js +2 -2
- package/dist/{mapLayout-BlHtCf7p.js → mapLayout-DNtsBpcK.js} +4 -4
- package/dist/{mapLayout-BlHtCf7p.js.map → mapLayout-DNtsBpcK.js.map} +1 -1
- package/dist/{maps-BgmvNpkU.js → maps-7u6S7Nmo.js} +1 -1
- package/dist/{maps-BgmvNpkU.js.map → maps-7u6S7Nmo.js.map} +1 -1
- package/dist/{menus-Ci9KI_c_.js → menus-BQAeLNPW.js} +1 -1
- package/dist/{menus-Ci9KI_c_.js.map → menus-BQAeLNPW.js.map} +1 -1
- package/dist/{navigation-CDXE3AXd.js → navigation-_C_WqWkh.js} +1 -1
- package/dist/{navigation-CDXE3AXd.js.map → navigation-_C_WqWkh.js.map} +1 -1
- package/dist/{newGrid-Cx_UGQS8.js → newGrid-B6oyV5FZ.js} +2 -2
- package/dist/{newGrid-Cx_UGQS8.js.map → newGrid-B6oyV5FZ.js.map} +1 -1
- package/dist/reminders/index.js +1 -1
- package/dist/routes/index.js +1 -1
- package/dist/{routes-Cep1JMTf.js → routes-BC24z6ls.js} +4 -4
- package/dist/{routes-Cep1JMTf.js.map → routes-BC24z6ls.js.map} +1 -1
- package/dist/shell/index.js +3 -3
- package/dist/shell/ui/addUser/index.js +1 -1
- package/dist/shell/ui/index.js +2 -2
- package/dist/{stringUtils-CLVoXAz_.js → stringUtils-BX3ShXYe.js} +1 -1
- package/dist/{stringUtils-CLVoXAz_.js.map → stringUtils-BX3ShXYe.js.map} +1 -1
- package/dist/{tabs-CAaJhUt5.js → tabs-BtNJ9qmZ.js} +1 -1
- package/dist/{tabs-CAaJhUt5.js.map → tabs-BtNJ9qmZ.js.map} +1 -1
- package/dist/{templates-2r09nl9N.js → templates-C4i4bo29.js} +2 -2
- package/dist/{templates-2r09nl9N.js.map → templates-C4i4bo29.js.map} +1 -1
- package/dist/{timeline-CdeAJqvB.js → timeline-D2r_peIB.js} +1 -1
- package/dist/{timeline-CdeAJqvB.js.map → timeline-D2r_peIB.js.map} +1 -1
- package/dist/types/src/UI/forms/UdpTransactionEmailForm.d.ts.map +1 -1
- package/dist/types/src/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts +1 -1
- package/dist/types/src/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionSidesheet.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/DynamicTransactionDomainForm.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/DynamicTransactionDomainForm.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/{EditTransactionDetailsFormFields.d.ts → DynamicTransactionDomainFormFields.d.ts} +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/DynamicTransactionDomainFormFields.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/sidesheets/EditTransaction.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/sidesheets/WorkflowActions.d.ts.map +1 -1
- package/dist/types/src/udp/utilities/useDateStringColumnDef.d.ts +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/udp/export/index.js +2 -2
- package/dist/udp/fileImportMapping/index.js +1 -1
- package/dist/udp/pages/ChatUDP/index.js +1 -1
- package/dist/udp/pages/UdpAuditEvents/index.js +1 -1
- package/dist/udp/pages/UdpDataBrowserPage/index.js +1 -1
- package/dist/udp/pages/UdpFormsBuilderPage/index.js +1 -1
- package/dist/udp/pages/UdpFormsListPage/index.js +1 -1
- package/dist/udp/pages/UdpFormsPrivateForm/index.js +1 -1
- package/dist/udp/pages/UdpFormsPublicForm/index.js +1 -1
- package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +1 -1
- package/dist/udp/pages/UdpGridPanelManagementPage/index.js +1 -1
- package/dist/udp/pages/UdpGridPanelManagementSidesheet/index.js +1 -1
- package/dist/udp/pages/UdpImportFromFileMappingPage/index.js +1 -1
- package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +1 -1
- package/dist/udp/pages/UdpMaintenanceConfigPage/index.js +1 -1
- package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +1 -1
- package/dist/udp/pages/UdpNotesPage/index.js +1 -1
- package/dist/udp/pages/UdpPages/index.js +22 -22
- package/dist/udp/pages/UdpPagesLazy/index.js +1 -1
- package/dist/udp/pages/UdpRemindersPage/index.js +1 -1
- package/dist/udp/pages/UdpReportsPage/index.js +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/index.js +1 -1
- package/dist/udp/pages/UdpTransactionsPage/index.js +1 -1
- package/dist/udp/pages/UdpVerticalManagementPage/index.js +1 -1
- package/dist/udp/pages/UdpVerticalManagementSidesheet/index.js +1 -1
- package/dist/{ui-BcqvpQOG.js → ui-cGgMb3k8.js} +1 -1
- package/dist/{ui-BcqvpQOG.js.map → ui-cGgMb3k8.js.map} +1 -1
- package/dist/uploader/index.js +2 -2
- package/dist/{uploader-BdeUKdYW.js → uploader-D_e-kKhB.js} +2 -2
- package/dist/{uploader-BdeUKdYW.js.map → uploader-D_e-kKhB.js.map} +1 -1
- package/dist/{useUpdateSearchParams-en3_FDTj.js → useUpdateSearchParams-HVBDF-DL.js} +1 -1
- package/dist/{useUpdateSearchParams-en3_FDTj.js.map → useUpdateSearchParams-HVBDF-DL.js.map} +1 -1
- package/dist/utilities/catalog/index.js +1 -1
- package/dist/utilities/form/paymentForm/index.js +1 -1
- package/dist/utilities/index.js +2 -2
- package/dist/utilities/uploader/index.js +1 -1
- package/dist/{widgets-Bwklnxz1.js → widgets-BfY2a7Qn.js} +2 -2
- package/dist/{widgets-Bwklnxz1.js.map → widgets-BfY2a7Qn.js.map} +1 -1
- package/dist/workflow/index.js +1 -1
- package/export-map.json +1 -1
- package/package.json +1 -1
- package/dist/Inquiry-B9U7e2Iu.js +0 -3
- package/dist/MyExportsPage-C79id2As.js +0 -3
- package/dist/UdpAuditEventsPage-BtsmPFyR.js +0 -3
- package/dist/UdpTransactionsPage-B6OV3w81.js.map +0 -1
- package/dist/UserFormSideSheet-DEGPuhUQ.js +0 -3
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/EditTransactionDetailsForm.d.ts +0 -4
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/EditTransactionDetailsForm.d.ts.map +0 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/EditTransactionDetailsFormFields.d.ts.map +0 -1
- /package/dist/{components-DXieFr09.js → components-ZTvNO-ad.js} +0 -0
- /package/dist/{dashboard-6lb19b9R.js → dashboard-CDs0PtKv.js} +0 -0
- /package/dist/{enums-zIzLNnIf.js → enums-rtBpU3Km.js} +0 -0
- /package/dist/{feedback-CDEuTrd1.js → feedback-BHy3TZSH.js} +0 -0
- /package/dist/{feedback-DjaFcNGB.js → feedback-xwtgVkbx.js} +0 -0
- /package/dist/{iconLibrary-CMA3TPMW.js → iconLibrary-DoQA8Ecj.js} +0 -0
- /package/dist/{iframe-BTRj5Yrs.js → iframe-BTq_sXq0.js} +0 -0
- /package/dist/{inquiryBar-DEauNeV_.js → inquiryBar-DRJOW9pv.js} +0 -0
- /package/dist/{property-Bg_7rXXd.js → property-BGkw2Mt2.js} +0 -0
- /package/dist/{search-13JgAzQB.js → search-CbbTUgoq.js} +0 -0
- /package/dist/{stores-By3z7NWI.js → stores-DaL_nIaZ.js} +0 -0
- /package/dist/{support-B2_VCz-r.js → support-DLcRA-7Z.js} +0 -0
- /package/dist/{surfaces-BGrfgkLD.js → surfaces-BkYeHndP.js} +0 -0
- /package/dist/{utilities-WN7twALD.js → utilities-DT_KPrgX.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SiteHeader-CQSKBolX.js","names":["useStyles","useStyles","expanded","MiniCollapsibleSidebar","useStyles","useStyles","useStyles","prevOpen","useStyles","productId","HelpOutlineIcon","CloseIcon","ChatIcon","useStyles","Typography","ShellDropdown"],"sources":["../src/shell/ui/MiniCollapsibleSidebar.jsx","../src/shell/ui/NavigationSidebar.jsx","../src/shell/ui/AmbientProjectSwitcher.jsx","../src/shell/ui/ShellDropdown.jsx","../src/shell/ui/LanguageSwitcher.jsx","../src/shell/ui/HelpCenter.jsx","../src/shell/ui/EnvironmentRibbon.tsx","../src/shell/ui/SiteHeader.jsx"],"sourcesContent":["import { Drawer, makeStyles } from '@material-ui/core'\nimport clsx from 'clsx'\nimport React from 'react'\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n width: theme?.dimensions?.drawerWidth,\n flexShrink: 0,\n whiteSpace: 'nowrap'\n },\n expanded: {\n '&, & > $paper': {\n // width: theme.dimensions.drawerWidth,\n width: theme.spacing(32),\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen\n })\n }\n },\n collapsed: {\n '&, & > $paper': {\n overflowX: 'hidden',\n width: theme.spacing(7) + 1,\n transition: theme?.transitions?.create('width', {\n easing: theme?.transitions?.easing?.sharp,\n duration: theme?.transitions?.duration?.leavingScreen\n })\n }\n },\n paper: {}\n }),\n { name: 'MiniCollapsibleSidebar' }\n)\n\nconst MiniCollapsibleSidebar = (props) => {\n const classes = useStyles(props)\n const { expanded = true, className, children, ...other } = props\n\n return (\n <Drawer\n variant='permanent'\n open\n {...other}\n className={clsx(\n className,\n classes.root,\n expanded ? classes.expanded : classes.collapsed\n )}\n classes={{\n root: classes.root,\n paper: classes.paper\n }}\n >\n {children}\n </Drawer>\n )\n}\n\nexport default MiniCollapsibleSidebar\n","import React, { useState, useCallback } from 'react';\nimport { makeStyles, Toolbar, lighten } from '@material-ui/core';\nimport MiniCollapsibleSidebar from './MiniCollapsibleSidebar';\nimport { SidebarCollapseButton } from './SidebarCollapseButton';\nimport { AppMenu } from '../../UI/navigation/menus/AppMenu';\nimport { useShellStore } from '../../stores/shellStore';\nimport { useBuildEnvironment, APP_RIBBON_SPACE } from './useBuildEnvironment';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n marginTop: 400\n },\n paper: {\n backgroundColor:\n theme?.getThemeData()?.mode === 'dark'\n ? ''\n : lighten(theme?.palette?.primary?.main, 0.9),\n overflowX: 'hidden'\n },\n list: {\n flex: 1,\n paddingTop: 0,\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch'\n },\n spacer: {\n flex: 1,\n minHeight: theme.spacing(2)\n },\n footer: {},\n toolbar: {\n padding: 0,\n minHeight: ({appRibbonSpace}) => theme.spacing(6) + appRibbonSpace\n }\n }),\n { name: 'NavigationSidebar' }\n);\n\nconst NavigationSidebar = (props) => {\n const buildEnv = useBuildEnvironment()\n const classes = useStyles({appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0});\n const {\n data,\n toggleExpandClick,\n navMenuHoverOn,\n user,\n toggle = true,\n useGlobalState = false,\n ...other\n } = props;\n const [expanded, setExpanded] = useState(true);\n const { navigationExpanded, setNavigationExpanded } = useShellStore();\n\n let navExpanded = useGlobalState ? navigationExpanded : expanded;\n\n const [hoverExpand, setHoverExpand] = useState(false);\n\n // ** Remove for now to deal with programmatic toggle **\n // const wide = useMediaQuery(theme.breakpoints.up('sm'))\n // useEffect(() => {\n // // Set the bar to be expanded/collapsed depending on the breakpoint size\n // // This works on load and also when resizing crosses the breakpoint\n // setExpanded(wide)\n // }, [wide])\n\n const handleHoverToggle = () => {\n if (!navExpanded && navMenuHoverOn) {\n setHoverExpand(true);\n }\n };\n const handleHoverLeave = () => {\n if (!navExpanded && navMenuHoverOn) {\n setHoverExpand(false);\n }\n };\n\n const handleToggleClick = useCallback(() => {\n if (useGlobalState) {\n setNavigationExpanded(!navigationExpanded);\n } else {\n setExpanded((expanded) => !expanded);\n }\n }, [setNavigationExpanded, useGlobalState, navigationExpanded]);\n\n return (\n <MiniCollapsibleSidebar\n classes={{ root: classes.root, paper: classes.paper }}\n expanded={navExpanded || hoverExpand}\n onMouseEnter={handleHoverToggle}\n onMouseLeave={handleHoverLeave}\n PaperProps={{ elevation: 0, variant: 'outlined' }}\n {...other}\n >\n <Toolbar className={classes.toolbar} />\n\n {toggle && (\n <SidebarCollapseButton\n id='udpRecord-NavigationSidebar'\n udprecordid='udpRecord-NavigationSidebar'\n expanded={navExpanded}\n onClick={handleToggleClick}\n />\n )}\n {data && <AppMenu menuItems={data} sidebarExpanded={navExpanded} user={user} />}\n </MiniCollapsibleSidebar>\n );\n};\n\nexport default NavigationSidebar;\n","import React, { useState } from 'react'\nimport { makeStyles, Popover, Typography, useTheme } from '@material-ui/core'\nimport { ChevronDownIcon } from '@fluentui/react-icons'\nimport { FluentIconButton } from '../../UI/inputs/buttons/FluentIconButton'\nimport {AmbientPopoverMenuItem} from '../../UI/inputs/buttons/AmbientPopoverMenuItem'\nimport PropTypes from 'prop-types'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n // border: '1px solid white',\n background: props => props.backgroundColor ? props.backgroundColor : theme.palette.secondary.main,\n borderRadius: 50,\n padding: 6,\n paddingLeft:16\n },\n popoverRoot: {},\n icon: {\n color: theme.palette.primary.main,\n borderRadius: 50\n }, \n label: {\n display: 'block',\n width: props => props.width ? props.width : 100,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n }, \n listWrapper: {\n marginRight: theme.spacing(2)\n }\n}))\n\nexport const AmbientProjectSwitcher = (props) => {\n \n const classes = useStyles(props)\n\n const theme = useTheme()\n\n const { data, selectedItem } = props\n\n const [anchorEl, setAnchorEl] = useState(null)\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n const id = open ? 'open' : undefined\n\n return (\n <div className={classes.root}>\n <div className={classes.listWrapper}>\n <Typography className={classes.label} > \n {selectedItem} \n </Typography>\n </div>\n \n <FluentIconButton\n className={classes.icon}\n icon={ChevronDownIcon}\n onClick={handleClick}\n style={{background: theme.palette.common.white}}\n />\n\n <Popover\n classes={{ root: classes.popoverRoot }}\n square\n elevation={6}\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n <div >\n <div>\n {data && data.map((item) => {\n return (\n <AmbientPopoverMenuItem\n label={item.label}\n component={ChevronDownIcon}\n click={()=>item.click(item.label)}\n />\n )\n })}\n </div>\n </div>\n </Popover>\n </div>\n )\n}\n\nAmbientProjectSwitcher.propTypes = {\n /**\n * The array used to map for label and functions to list items. (array).\n */\n data: PropTypes.array,\n /**\n * The active label displayed.\n */\n selectedItem: PropTypes.string,\n /**\n * Change the background color on the project switcher (default: theme secondary)\n */\n backgroundColor: PropTypes.string\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\nimport { FluentTextFieldAutoComplete } from '../../UI/inputs/textField/FluentTextFieldAutoComplete';\n\nconst useStyles = makeStyles(theme => ({\n root: { display: 'flex', alignItems: 'center' },\n field: {\n minWidth: 300,\n maxWidth: 400,\n width: '100%',\n alignSelf: 'left',\n color: '#fff',\n '& .MuiOutlinedInput-root': {\n color: '#fff',\n backgroundColor: 'transparent',\n '& fieldset': {\n borderColor: 'rgba(255,255,255,0.6)',\n },\n '&:hover fieldset': {\n borderColor: 'rgba(255,255,255,0.85)',\n },\n '&.Mui-focused fieldset': {\n borderColor: '#fff',\n },\n '& input': {\n paddingTop: 4,\n paddingBottom: 4,\n height: 20,\n boxSizing: 'border-box',\n color: '#fff',\n },\n '& .MuiAutocomplete-input': {\n color: '#fff',\n },\n },\n '& .MuiInputBase-root': {\n color: '#fff',\n },\n '& .MuiAutocomplete-popupIndicator, & .MuiAutocomplete-clearIndicator': {\n color: '#fff',\n opacity: 0.95,\n },\n '& input::placeholder': {\n color: 'rgba(255,255,255,0.7)',\n },\n },\n}));\n\nfunction getDisplayName(item) {\n if (!item && item !== 0) return '';\n if (typeof item === 'string' || typeof item === 'number') return String(item);\n if (typeof item === 'object') {\n const name = item.name ?? item.label ?? item.title ?? item.displayName;\n return name !== undefined && name !== null ? String(name) : '';\n }\n return String(item);\n}\n\nexport const ShellDropdown = (props) => {\n const classes = useStyles();\n const {\n componentName = 'Item',\n data = [],\n value = null,\n onChange,\n optionLabelDisplayFunction = getDisplayName,\n placeholder,\n className,\n classProps,\n ...other\n } = props;\n\n const placeholderText = placeholder ?? (!value ? `All ${componentName}s` : undefined);\n\n return (\n <div className={`${classes.root} ${className || ''}`}>\n <FluentTextFieldAutoComplete\n className={classes.field}\n classProps={{ autocompleteRoot: classes.field, ...classProps }}\n options={data}\n optionLabelDisplayFunction={optionLabelDisplayFunction}\n onChange={onChange}\n value={value}\n placeholder={placeholderText}\n {...other}\n />\n </div>\n );\n};\n\nShellDropdown.propTypes = {\n componentName: PropTypes.string,\n data: PropTypes.array,\n value: PropTypes.any,\n onChange: PropTypes.func,\n optionLabelDisplayFunction: PropTypes.func,\n placeholder: PropTypes.string,\n className: PropTypes.string,\n classProps: PropTypes.object,\n};\n\nexport default ShellDropdown;\n","import React, { useState, useRef, useEffect } from 'react'\nimport {\n ClickAwayListener,\n Grow,\n Paper,\n Popper,\n MenuList,\n makeStyles,\n IconButton,\n MenuItem\n} from '@material-ui/core'\nimport { TranslateIcon } from '@fluentui/react-icons'\nimport i18n from 'i18next';\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n paper: {\n marginRight: theme.spacing(2)\n }\n}))\n\nexport const LanguageSwitcher = (props) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n const anchorRef = useRef(null)\n const { languages } = props\n\n const handleToggle = () => {\n setOpen((prevOpen) => !prevOpen)\n }\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return\n }\n setOpen(false)\n }\n\n function handleListKeyDown(event) {\n if (event.key === 'Tab') {\n event.preventDefault()\n setOpen(false)\n }\n }\n\n // return focus to the button when we transitioned from !open -> open\n const prevOpen = useRef(open)\n useEffect(() => {\n if (prevOpen.current === true && open === false) {\n anchorRef.current.focus()\n }\n prevOpen.current = open\n }, [open])\n\n const handleLanguageChange = (event) => {\n const currentLanguage = event;\n //setLangKey(currentLanguage.languageCode);\n languageSelector(currentLanguage.languageCode);\n };\n\n const languageSelector = (defaultLang) => {\n i18n.changeLanguage(defaultLang);\n }\n\n if (languages != null) {\n return (\n <div id='udpRecord-LanguageSwitcher' className={classes.root}>\n <div>\n <IconButton\n id='udpRecord-LanguageSwitcher-IconButton'\n udprecordid='udpRecord-LanguageSwitcher-IconButton'\n ref={anchorRef}\n aria-controls={open ? 'menu-list-grow' : undefined}\n aria-haspopup='true'\n onClick={handleToggle}\n >\n <TranslateIcon style={{ color: 'white', opacity: 0.8 }} />\n </IconButton>\n <Popper\n open={open}\n anchorEl={anchorRef.current}\n role={undefined}\n transition\n disablePortal\n >\n {({ TransitionProps, placement }) => (\n <Grow\n {...TransitionProps}\n style={{\n transformOrigin:\n placement === 'bottom' ? 'center top' : 'center bottom'\n }}\n >\n <Paper>\n <ClickAwayListener \n id='udpRecord-LanguageSwitcher-ClickAway' \n udprecordid='udpRecord-LanguageSwitcher-ClickAway' \n onClickAway={handleClose}\n >\n <MenuList\n autoFocusItem={open}\n id='menu-list-grow'\n udprecordid='udpRecord-LanguageSwitcher-MenuList'\n onKeyDown={handleListKeyDown}\n onClick={() => setOpen(false)}\n >\n {languages.map((data) =>\n <MenuItem\n id={'udpRecord-LanguageSwitcher-MenuItem-'+data.languageLabel}\n udprecordid={'udpRecord-LanguageSwitcher-MenuItem-'+data.languageLabel}\n onClick={() => handleLanguageChange(data)}\n value={data.languageCode}\n key={data.languageId}\n >\n {data.languageLabel}\n </MenuItem>)}\n </MenuList>\n </ClickAwayListener>\n </Paper>\n </Grow>\n )}\n </Popper>\n </div>\n </div>\n )\n } else {\n return (\n null\n )\n }\n\n}","import React, { useState, useCallback, useEffect, useRef, Suspense, lazy } from 'react';\nimport {\n makeStyles,\n IconButton,\n Popover,\n Typography,\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n Dialog,\n DialogTitle,\n DialogContent\n} from '@material-ui/core';\nimport {HelpOutline as HelpOutlineIcon, Chat as ChatIcon, Close as CloseIcon} from '@material-ui/icons';\nimport { useActions } from '../../hooks/useActions';\nimport { useTranslation } from 'react-i18next';\nimport { useUser } from '../../../src/utilities/auth/useUser';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { ConfigService } from '../../configService';\n\n// Lazy-load side sheets so they aren't imported until needed. Keep\n// module-level lazy declarations so the imports are deduped and cached.\nconst UserFormSideSheet = lazy(() => import('./addUser/UserFormSideSheet'));\nconst SupportCaseSideSheet = lazy(() => import('../../UI/support/SupportCaseSideSheet'));\n\n// Preload helpers (return the dynamic import promise). Calling these\n// will start fetching the chunk in the background and populate the\n// module cache so React.lazy resolves quickly later.\nconst preloadUserFormSideSheet = () => import('./addUser/UserFormSideSheet');\nconst preloadSupportCaseSideSheet = () => import('../../UI/support/SupportCaseSideSheet');\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n popover: {\n padding: theme.spacing(2),\n maxWidth: 300\n },\n icon: {\n minWidth: 40\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500]\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n dialog: {\n minWidth: '80vw',\n minHeight: '80vh'\n }\n}));\n\nexport const HelpCenter = () => {\n const classes = useStyles();\n const { t } = useTranslation();\n const { triggerAction } = useActions();\n const user = useUser();\n const productId = Number(ConfigService.config.UNITY_PRODUCT_ID);\n\n const udpaiAPI = ConfigService.config.UDPAI_API_BASE;\n const udpaisearch = ConfigService.config.AI_SEARCH_URL;\n const udpaisearchkey = ConfigService.config.AI_SEARCH_KEY;\n const udpaisearchindex = ConfigService.config.AI_SEARCH_INDEX_NAME;\n\n const [anchorEl, setAnchorEl] = useState(null);\n const [isSupportCaseSideSheetOpen, setSupportCaseSideSheetOpen] =\n useState(false);\n const [isUserFormOpen, setUserFormOpen] = useState(false);\n const [supportCaseHealthOk, setSupportCaseHealthOk] = useState(false);\n\n const hasPreloadedRef = useRef(false);\n\n const handleOpenPopover = (event) => {\n setAnchorEl(event.currentTarget);\n\n // Preload both side sheets in the background the first time the popover opens.\n // We assume that if the user opened the popover, they might open one of the sheets.\n if (!hasPreloadedRef.current) {\n hasPreloadedRef.current = true;\n // Start background fetches but don't await them.\n try {\n preloadUserFormSideSheet();\n } catch (e) {\n // ignore preload errors\n }\n try {\n preloadSupportCaseSideSheet();\n } catch (e) {\n // ignore preload errors\n }\n }\n };\n\n const handleClosePopover = () => {\n setAnchorEl(null);\n };\n\n const handleLaunchAction = useCallback(() => {\n setAnchorEl(null);\n triggerAction('CEE75B36-01B0-4FAC-9AE7-C1AC8A2A194F');\n }, [triggerAction]);\n\n const handleOpenSupportCaseSideSheet = () => {\n setSupportCaseSideSheetOpen(true);\n setAnchorEl(null);\n };\n\n const handleCloseSupportCaseSideSheet = () => {\n setSupportCaseSideSheetOpen(false);\n };\n\n const handleOpenUserForm = () => {\n setUserFormOpen(true); // Open UserForm modal\n setAnchorEl(null);\n };\n\n const handleCloseUserForm = () => {\n setUserFormOpen(false); // Close UserForm modal\n };\n\n const open = Boolean(anchorEl);\n const id = open ? 'help-center-popover' : undefined;\n\n // Conditions for rendering buttons\n // 2 assets, 41 sandbox, 51 assets, 53 mm, 68 timesheets\n const shouldShowAddUsers = (productId) => {\n const isValidProduct = [41, 53].includes(productId);\n const isSecurityApiConfigured = !!ConfigService.securityV1ApiUrl;\n const isValidUser =\n user.can.CAN_MANAGE_ROLES_USERS &&\n user.can.CAN_MANAGE_USERS &&\n user.can.CAN_VIEW_USERS;\n return isValidProduct && isSecurityApiConfigured && isValidUser;\n };\n\n const getSupportCaseStatus = useCallback(\n async () =>\n apiMutate(\n ConfigService.productV1ApiUrl,\n `udpunitysupport/healthCheck`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n const getSupportCaseStatusUnity = useCallback(\n async () =>\n apiMutate(\n ConfigService.supportV1ApiUrl,\n `ServiceHealth/Support`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n const showAddUsers = shouldShowAddUsers(productId);\n const shouldShowChatAssistant =\n [2, 41, 51, 68].includes(productId) &&\n udpaiAPI &&\n udpaisearch &&\n udpaisearchkey &&\n udpaisearchindex;\n const shouldShowSupportTicket = productId && supportCaseHealthOk;\n\n useEffect(() => {\n const supportCaseStatus = async () => {\n try {\n if (ConfigService.config.UNITY_PRODUCT_ID === \"1\") {\n const response = await getSupportCaseStatusUnity();\n setSupportCaseHealthOk(response?.status === 200);\n } else {\n const response = await getSupportCaseStatus();\n setSupportCaseHealthOk(response?.status === 200);\n }\n } catch (error) {\n setSupportCaseHealthOk(false);\n }\n };\n supportCaseStatus();\n }, [getSupportCaseStatus, getSupportCaseStatusUnity]);\n\n // Hide the entire help center if neither button should be rendered\n if (!showAddUsers && !shouldShowChatAssistant && !shouldShowSupportTicket) {\n return <div id='udpRecord-HelpCenter' />;\n }\n\n return (\n <div id='udpRecord-HelpCenter' className={classes.root}>\n <IconButton\n id='udpRecord-HelpCenter-IconButton'\n aria-controls={id}\n aria-haspopup='true'\n onClick={handleOpenPopover}\n >\n <HelpOutlineIcon style={{ color: 'white', opacity: 0.8 }} />\n </IconButton>\n <Popover\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClosePopover}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'center'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'center'\n }}\n >\n <div className={classes.popover}>\n <div className={classes.header}>\n <Typography variant='h6'>{t('Help')}</Typography>\n <IconButton\n size='small'\n className={classes.closeButton}\n onClick={handleClosePopover}\n >\n <CloseIcon />\n </IconButton>\n </div>\n <List component='nav' aria-label='Help options'>\n {/* First Button: Add User */}\n {showAddUsers && (\n <ListItem\n button\n id='udpRecord-HelpCenter-AddUsers'\n onClick={handleOpenUserForm}\n >\n <ListItemIcon className={classes.icon}>\n <HelpOutlineIcon />\n </ListItemIcon>\n <ListItemText primary={t('Add User')} />\n </ListItem>\n )}\n\n {/* Second Button: Chat Assistant */}\n {shouldShowChatAssistant && (\n <ListItem\n button\n id='udpRecord-HelpCenter-ChatAssistant'\n onClick={handleLaunchAction}\n >\n <ListItemIcon className={classes.icon}>\n <ChatIcon />\n </ListItemIcon>\n <ListItemText primary={t('Chat Assistant')} />\n </ListItem>\n )}\n\n {/* Third Button: Submit Support Ticket */}\n {shouldShowSupportTicket && (\n <ListItem\n button\n id='udpRecord-HelpCenter-SupportTicket'\n onClick={handleOpenSupportCaseSideSheet}\n >\n <ListItemIcon className={classes.icon}>\n <HelpOutlineIcon />\n </ListItemIcon>\n <ListItemText primary={t('Submit Support Ticket')} />\n </ListItem>\n )}\n </List>\n </div>\n </Popover>\n\n {/* Modal for UserForm (lazy-loaded) */}\n <Suspense fallback={null}>\n <UserFormSideSheet open={isUserFormOpen} onClose={handleCloseUserForm} />\n </Suspense>\n\n {/* Side Sheet for Support Ticket (lazy-loaded) */}\n <Suspense fallback={null}>\n <SupportCaseSideSheet\n open={isSupportCaseSideSheetOpen}\n onClose={handleCloseSupportCaseSideSheet}\n handleCloseSupportCaseSideSheet={handleCloseSupportCaseSideSheet}\n onSubmit={(values) => {\n console.log('Form submitted', values);\n }}\n initialValues={{}}\n />\n </Suspense>\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\n// @ts-ignore\nimport { makeStyles } from '@material-ui/core';\nimport { useTenant } from '../../utilities/tenant/useTenant';\nimport { Typography } from '../../UI/dataDisplay/typography/Typography';\nimport { APP_RIBBON_SPACE, useBuildEnvironment } from './useBuildEnvironment';\n\n\n\nconst useStyles = makeStyles({\n root: {\n width: '100vw',\n height: APP_RIBBON_SPACE,\n backgroundColor: ({environment}: {environment: string | undefined}) => `var(--env-ribbon-${environment})`,\n color: '#ffffff', // Default white text\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n // Use CSS to handle staging text color\n '&.staging': {\n color: '#000000'\n }\n },\n\tcenterText: {\n position: 'absolute',\n left: '50%',\n transform: 'translateX(-50%)',\n fontWeight: 600\n\t},\n\trightText: {\n position: 'absolute',\n right: '10px',\n fontWeight: 500\n\t}\n});\n\nexport const EnvironmentRibbon = () => {\n\tconst tenantInfo = useTenant()\n\tconst buildEnvironment = useBuildEnvironment()\n\n const classes = useStyles({environment: buildEnvironment});\n if(!buildEnvironment) return null;\n\n return (\n <div\n className={`${classes.root} ${buildEnvironment === 'staging' ? 'staging' : ''}`}\n id='udp-environment-banner'\n >\n <Typography className={classes.centerText}>\n {buildEnvironment?.charAt(0).toUpperCase()+buildEnvironment?.slice(1) || ''}\n </Typography>\n\t\t\t<Typography className={classes.rightText}>\n {tenantInfo?.activeTenant?.tenantName}\n </Typography>\n </div>\n );\n};\n","import React from 'react';\nimport {\n AppBar,\n makeStyles,\n Toolbar,\n Typography,\n IconButton,\n useMediaQuery,\n useTheme\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport { WaffleIcon, CollapseMenuIcon } from '@fluentui/react-icons';\nimport { BreadCrumbMenu } from '../../UI/inputs/link/BreadCrumbMenu';\nimport { AmbientProjectSwitcher } from './AmbientProjectSwitcher';\nimport ShellDropdown from './ShellDropdown';\nimport { LanguageSwitcher } from './LanguageSwitcher';\nimport { HelpCenter } from './HelpCenter';\nimport { SiteHeaderRightComponentTarget } from './SiteHeaderRightComponent';\nimport PropTypes from 'prop-types';\nimport {\n useBuildEnvironment,\n APP_RIBBON_SPACE\n} from './useBuildEnvironment';\nimport { EnvironmentRibbon } from './EnvironmentRibbon';\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n color: theme?.palette?.appBar?.contrastText,\n zIndex: theme?.zIndex?.drawer + 1\n // Assume the drawer is always expanded unless the screen is too small for it and inset the left to account for it\n },\n spacer: {\n flex: 1\n },\n headerSpacer: {\n padding: 0,\n minHeight: ({ appRibbonSpace }) => 56 + appRibbonSpace\n },\n toolbar: {\n padding: 0,\n minHeight: theme.spacing(6)\n },\n appLaunch: {\n color: theme?.palette?.getContrastText(theme?.palette?.primary?.main)\n },\n avatar: {\n width: 25,\n height: 25,\n backgroundColor: theme?.palette?.secondary?.main\n },\n search: {\n marginLeft: theme.spacing(2),\n marginTop: theme.spacing(-1.35)\n },\n children: {\n flex: 1,\n minWidth: 5\n }\n }),\n { name: 'SiteHeader' }\n);\n\n/**\n * A spacing component with the same height as the SiteHeader\n */\nexport const SiteHeaderSpacer = (props) => {\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const { className } = props;\n\n return <div className={clsx(className, classes.headerSpacer)} />;\n};\n\n/**\n * Site header including app bar\n */\nconst SiteHeader = (props) => {\n const classes = useStyles(props);\n const {\n className,\n returnTo,\n appContent,\n userAvatar,\n siteName,\n breadCrumbRoot = 'home',\n color = 'primary',\n setAppSwitcherOpen,\n breadCrumbAltLabelList,\n currentLocation,\n switcherData,\n selectedItem,\n switcherWidth,\n hideAppLaunch,\n languages,\n backgroundColor,\n hideLanguageSwitcher =false,\n hideHelpCenter = false,\n ...other\n } = props;\n\n const theme = useTheme();\n const mobile = useMediaQuery(theme.breakpoints.up('sm'));\n\n return (\n <>\n <AppBar\n elevation={0}\n position='fixed'\n color={color}\n {...other}\n className={className}\n classes={{ root: classes.root }}\n >\n <EnvironmentRibbon />\n <Toolbar className={classes.toolbar}>\n {mobile && !hideAppLaunch && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('desktop', true)}\n >\n <WaffleIcon />\n </IconButton>\n )}\n {!mobile && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('desktop', true)}\n >\n <CollapseMenuIcon />\n </IconButton>\n )}\n\n <Typography\n component='h1'\n variant='h6'\n style={{ marginLeft: hideAppLaunch && 16 }}\n >\n {siteName}\n </Typography>\n\n {mobile && (\n <div style={{ marginLeft: 70 }}>\n {React.isValidElement(breadCrumbRoot) ? (\n breadCrumbRoot\n ) : breadCrumbRoot && typeof breadCrumbRoot === 'object' && (breadCrumbRoot.data || breadCrumbRoot.componentName) ? (\n <ShellDropdown\n componentName={breadCrumbRoot.componentName}\n data={breadCrumbRoot.data}\n value={breadCrumbRoot.value}\n onChange={breadCrumbRoot.onChange}\n optionLabelDisplayFunction={breadCrumbRoot.optionLabelDisplayFunction}\n placeholder={breadCrumbRoot.placeholder}\n className={breadCrumbRoot.className}\n classProps={breadCrumbRoot.classProps}\n />\n ) : (\n <BreadCrumbMenu\n color='primary'\n root={breadCrumbRoot}\n breadCrumbAltLabelList={breadCrumbAltLabelList}\n />\n )}\n </div>\n )}\n <div className={classes.children}>{appContent}</div>\n {switcherData && (\n <AmbientProjectSwitcher\n data={switcherData}\n selectedItem={selectedItem}\n width={switcherWidth}\n backgroundColor={backgroundColor}\n />\n )}\n\n {!mobile && !hideAppLaunch && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('mobile', true)}\n >\n <WaffleIcon />\n </IconButton>\n )}\n <div className={classes.additionalRightComponent}>\n <SiteHeaderRightComponentTarget />\n </div>\n {!hideHelpCenter && <HelpCenter />}\n {!hideLanguageSwitcher && <LanguageSwitcher languages={languages} />}\n <div>{userAvatar}</div>\n </Toolbar>\n </AppBar>\n <SiteHeaderSpacer className={className} />\n </>\n );\n};\n\nexport default SiteHeader;\n\nSiteHeader.propTypes = {\n breadCrumbRoot: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n PropTypes.object\n ]),\n /**\n * Passes the background color on the project switcher (default: theme secondary)\n */\n backgroundColor: PropTypes.string\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAMA,cAAY,YACf,WAAW;CACV,MAAM;EACJ,OAAO,OAAO,YAAY;EAC1B,YAAY;EACZ,YAAY;EACb;CACD,UAAU,EACR,iBAAiB;EAEf,OAAO,MAAM,QAAQ,GAAG;EACxB,YAAY,MAAM,YAAY,OAAO,SAAS;GAC5C,QAAQ,MAAM,YAAY,OAAO;GACjC,UAAU,MAAM,YAAY,SAAS;GACtC,CAAC;EACH,EACF;CACD,WAAW,EACT,iBAAiB;EACf,WAAW;EACX,OAAO,MAAM,QAAQ,EAAE,GAAG;EAC1B,YAAY,OAAO,aAAa,OAAO,SAAS;GAC9C,QAAQ,OAAO,aAAa,QAAQ;GACpC,UAAU,OAAO,aAAa,UAAU;GACzC,CAAC;EACH,EACF;CACD,OAAO,EAAE;CACV,GACD,EAAE,MAAM,0BAA0B,CACnC;AAED,MAAM,0BAA0B,UAAU;CACxC,MAAM,UAAUA,YAAU,MAAM;CAChC,MAAM,EAAE,WAAW,MAAM,WAAW,UAAU,GAAG,UAAU;AAE3D,QACE,oCAAC;EACC,SAAQ;EACR;EACA,GAAI;EACJ,WAAW,KACT,WACA,QAAQ,MACR,WAAW,QAAQ,WAAW,QAAQ,UACvC;EACD,SAAS;GACP,MAAM,QAAQ;GACd,OAAO,QAAQ;GAChB;IAEA,SACM;;AAIb,qCAAe;;;;ACpDf,MAAMC,cAAY,YACf,WAAW;CACV,MAAM,EACJ,WAAW,KACZ;CACD,OAAO;EACL,iBACE,OAAO,cAAc,EAAE,SAAS,SAC5B,KACA,QAAQ,OAAO,SAAS,SAAS,MAAM,GAAI;EACjD,WAAW;EACZ;CACD,MAAM;EACJ,MAAM;EACN,YAAY;EACZ,WAAW;EACX,yBAAyB;EAC1B;CACD,QAAQ;EACN,MAAM;EACN,WAAW,MAAM,QAAQ,EAAE;EAC5B;CACD,QAAQ,EAAE;CACV,SAAS;EACP,SAAS;EACT,YAAY,EAAC,qBAAoB,MAAM,QAAQ,EAAE,GAAG;EACrD;CACF,GACD,EAAE,MAAM,qBAAqB,CAC9B;AAED,MAAM,qBAAqB,UAAU;CAEnC,MAAM,UAAUA,YAAU,EAAC,gBADV,qBAAqB,GACgB,mBAAmB,GAAE,CAAC;CAC5E,MAAM,EACJ,MACA,mBACA,gBACA,MACA,SAAS,MACT,iBAAiB,OACjB,GAAG,UACD;CACJ,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAC9C,MAAM,EAAE,oBAAoB,0BAA0B,eAAe;CAErE,IAAI,cAAc,iBAAiB,qBAAqB;CAExD,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;CAUrD,MAAM,0BAA0B;AAC9B,MAAI,CAAC,eAAe,eAClB,gBAAe,KAAK;;CAGxB,MAAM,yBAAyB;AAC7B,MAAI,CAAC,eAAe,eAClB,gBAAe,MAAM;;CAIzB,MAAM,oBAAoB,kBAAkB;AAC1C,MAAI,eACF,uBAAsB,CAAC,mBAAmB;MAE1C,cAAa,eAAa,CAACC,WAAS;IAErC;EAAC;EAAuB;EAAgB;EAAmB,CAAC;AAE/D,QACE,oCAACC;EACC,SAAS;GAAE,MAAM,QAAQ;GAAM,OAAO,QAAQ;GAAO;EACrD,UAAU,eAAe;EACzB,cAAc;EACd,cAAc;EACd,YAAY;GAAE,WAAW;GAAG,SAAS;GAAY;EACjD,GAAI;IAEJ,oCAAC,WAAQ,WAAW,QAAQ,UAAW,EAEtC,UACC,oCAAC;EACC,IAAG;EACH,aAAY;EACZ,UAAU;EACV,SAAS;GACT,EAEH,QAAQ,oCAAC;EAAQ,WAAW;EAAM,iBAAiB;EAAmB;GAAQ,CACxD;;AAI7B,gCAAe;;;;ACtGf,MAAMC,cAAY,YAAY,WAAW;CACvC,MAAM;EACJ,SAAS;EAET,aAAY,UAAS,MAAM,kBAAkB,MAAM,kBAAkB,MAAM,QAAQ,UAAU;EAC7F,cAAc;EACd,SAAS;EACT,aAAY;EACb;CACD,aAAa,EAAE;CACf,MAAM;EACJ,OAAO,MAAM,QAAQ,QAAQ;EAC7B,cAAc;EACf;CACD,OAAO;EACL,SAAS;EACT,QAAO,UAAS,MAAM,QAAQ,MAAM,QAAQ;EAC5C,UAAU;EACV,YAAY;EACZ,cAAc;EACf;CACD,aAAa,EACX,aAAa,MAAM,QAAQ,EAAE,EAC9B;CACF,EAAE;AAEH,MAAa,0BAA0B,UAAU;CAE/C,MAAM,UAAUA,YAAU,MAAM;CAEhC,MAAM,QAAQ,UAAU;CAExB,MAAM,EAAE,MAAM,iBAAiB;CAE/B,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAE9C,MAAM,eAAe,UAAU;AAC7B,cAAY,MAAM,cAAc;;CAGlC,MAAM,oBAAoB;AACxB,cAAY,KAAK;;CAGnB,MAAM,OAAO,QAAQ,SAAS;CAC9B,MAAM,KAAK,OAAO,SAAS;AAE3B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC,SAAI,WAAW,QAAQ,eACtB,oCAAC,cAAW,WAAW,QAAQ,SAC5B,aACU,CACT,EAEN,oCAAC;EACC,WAAW,QAAQ;EACnB,MAAM;EACN,SAAS;EACT,OAAO,EAAC,YAAY,MAAM,QAAQ,OAAO,OAAM;GAC/C,EAEF,oCAAC;EACC,SAAS,EAAE,MAAM,QAAQ,aAAa;EACtC;EACA,WAAW;EACP;EACE;EACI;EACV,SAAS;EACT,cAAc;GACZ,UAAU;GACV,YAAY;GACb;EACD,iBAAiB;GACf,UAAU;GACV,YAAY;GACb;IAED,oCAAC,aACC,oCAAC,aACE,QAAQ,KAAK,KAAK,SAAS;AAC1B,SACE,oCAAC;GACC,OAAO,KAAK;GACZ,WAAW;GACX,aAAW,KAAK,MAAM,KAAK,MAAM;IACjC;GAEJ,CACE,CACF,CACE,CACN;;AAIV,uBAAuB,YAAY;CAIjC,MAAM,UAAU;CAIhB,cAAc,UAAU;CAIxB,iBAAiB,UAAU;;;;;AC/G7B,MAAMC,cAAY,YAAW,WAAU;CACrC,MAAM;EAAE,SAAS;EAAQ,YAAY;EAAU;CAC/C,OAAO;EACL,UAAU;EACV,UAAU;EACV,OAAO;EACP,WAAW;EACX,OAAO;EACP,4BAA4B;GAC1B,OAAO;GACP,iBAAiB;GACjB,cAAc,EACZ,aAAa,yBACd;GACD,oBAAoB,EAClB,aAAa,0BACd;GACD,0BAA0B,EACxB,aAAa,QACd;GACD,WAAW;IACT,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,WAAW;IACX,OAAO;IACR;GACD,4BAA4B,EAC1B,OAAO,QACR;GACF;EACD,wBAAwB,EACtB,OAAO,QACR;EACD,wEAAwE;GACtE,OAAO;GACP,SAAS;GACV;EACD,wBAAwB,EACtB,OAAO,yBACR;EACF;CACF,EAAE;AAEH,SAAS,eAAe,MAAM;AAC5B,KAAI,CAAC,QAAQ,SAAS,EAAG,QAAO;AAChC,KAAI,OAAO,SAAS,YAAY,OAAO,SAAS,SAAU,QAAO,OAAO,KAAK;AAC7E,KAAI,OAAO,SAAS,UAAU;EAC5B,MAAM,OAAO,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK;AAC3D,SAAO,SAAS,UAAa,SAAS,OAAO,OAAO,KAAK,GAAG;;AAE9D,QAAO,OAAO,KAAK;;AAGrB,MAAa,iBAAiB,UAAU;CACtC,MAAM,UAAUA,aAAW;CAC3B,MAAM,EACJ,gBAAgB,QAChB,OAAO,EAAE,EACT,QAAQ,MACR,UACA,6BAA6B,gBAC7B,aACA,WACA,YACA,GAAG,UACD;CAEJ,MAAM,kBAAkB,gBAAgB,CAAC,QAAQ,OAAO,cAAc,KAAK;AAE3E,QACE,oCAAC,SAAI,WAAW,GAAG,QAAQ,KAAK,GAAG,aAAa,QAC9C,oCAAC;EACC,WAAW,QAAQ;EACnB,YAAY;GAAE,kBAAkB,QAAQ;GAAO,GAAG;GAAY;EAC9D,SAAS;EACmB;EAClB;EACH;EACP,aAAa;EACb,GAAI;GACJ,CACE;;AAIV,cAAc,YAAY;CACxB,eAAe,UAAU;CACzB,MAAM,UAAU;CAChB,OAAO,UAAU;CACjB,UAAU,UAAU;CACpB,4BAA4B,UAAU;CACtC,aAAa,UAAU;CACvB,WAAW,UAAU;CACrB,YAAY,UAAU;CACvB;AAED,4BAAe;;;;ACvFf,MAAMC,cAAY,YAAY,WAAW;CACvC,MAAM,EACJ,SAAS,QACV;CACD,OAAO,EACL,aAAa,MAAM,QAAQ,EAAE,EAC9B;CACF,EAAE;AAEH,MAAa,oBAAoB,UAAU;CACzC,MAAM,UAAUA,aAAW;CAC3B,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,YAAY,OAAO,KAAK;CAC9B,MAAM,EAAE,cAAc;CAEtB,MAAM,qBAAqB;AACzB,WAAS,eAAa,CAACC,WAAS;;CAGlC,MAAM,eAAe,UAAU;AAC7B,MAAI,UAAU,WAAW,UAAU,QAAQ,SAAS,MAAM,OAAO,CAC/D;AAEF,UAAQ,MAAM;;CAGhB,SAAS,kBAAkB,OAAO;AAChC,MAAI,MAAM,QAAQ,OAAO;AACvB,SAAM,gBAAgB;AACtB,WAAQ,MAAM;;;CAKlB,MAAM,WAAW,OAAO,KAAK;AAC7B,iBAAgB;AACd,MAAI,SAAS,YAAY,QAAQ,SAAS,MACxC,WAAU,QAAQ,OAAO;AAE3B,WAAS,UAAU;IAClB,CAAC,KAAK,CAAC;CAEV,MAAM,wBAAwB,UAAU;AAGtC,mBAFwB,MAES,aAAa;;CAGhD,MAAM,oBAAoB,gBAAgB;AACxC,OAAK,eAAe,YAAY;;AAGlC,KAAI,aAAa,KACf,QACE,oCAAC;EAAI,IAAG;EAA6B,WAAW,QAAQ;IACtD,oCAAC,aACC,oCAAC;EACC,IAAG;EACH,aAAY;EACZ,KAAK;EACL,iBAAe,OAAO,mBAAmB;EACzC,iBAAc;EACd,SAAS;IAET,oCAAC,iBAAc,OAAO;EAAE,OAAO;EAAS,SAAS;EAAK,GAAI,CAC/C,EACb,oCAAC;EACO;EACN,UAAU,UAAU;EACpB,MAAM;EACN;EACA;KAEE,EAAE,iBAAiB,gBACnB,oCAAC;EACC,GAAI;EACJ,OAAO,EACL,iBACE,cAAc,WAAW,eAAe,iBAC3C;IAED,oCAAC,aACC,oCAAC;EACC,IAAG;EACH,aAAY;EACZ,aAAa;IAEb,oCAAC;EACC,eAAe;EACf,IAAG;EACH,aAAY;EACZ,WAAW;EACX,eAAe,QAAQ,MAAM;IAE5B,UAAU,KAAK,SACd,oCAAC;EACC,IAAI,yCAAuC,KAAK;EAChD,aAAa,yCAAuC,KAAK;EACzD,eAAe,qBAAqB,KAAK;EACzC,OAAO,KAAK;EACZ,KAAK,KAAK;IAET,KAAK,cACG,CAAC,CACL,CACO,CACd,CACH,CAEF,CACL,CACF;KAGR,QACE;;;;;AC3GN,MAAM,oBAAoB,WAAW,OAAO,mCAA+B;AAC3E,MAAM,uBAAuB,WAAW,OAAO,sCAAyC;AAKxF,MAAM,iCAAiC,OAAO;AAC9C,MAAM,oCAAoC,OAAO;AAEjD,MAAMC,cAAY,YAAY,WAAW;CACvC,MAAM,EACJ,SAAS,QACV;CACD,SAAS;EACP,SAAS,MAAM,QAAQ,EAAE;EACzB,UAAU;EACX;CACD,MAAM,EACJ,UAAU,IACX;CACD,aAAa;EACX,UAAU;EACV,OAAO,MAAM,QAAQ,EAAE;EACvB,KAAK,MAAM,QAAQ,EAAE;EACrB,OAAO,MAAM,QAAQ,KAAK;EAC3B;CACD,QAAQ;EACN,SAAS;EACT,YAAY;EACZ,gBAAgB;EACjB;CACD,QAAQ;EACN,UAAU;EACV,WAAW;EACZ;CACF,EAAE;AAEH,MAAa,mBAAmB;CAC9B,MAAM,UAAUA,aAAW;CAC3B,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,kBAAkB,YAAY;CACtC,MAAM,OAAO,SAAS;CACtB,MAAM,YAAY,OAAO,cAAc,OAAO,iBAAiB;CAE/D,MAAM,WAAW,cAAc,OAAO;CACtC,MAAM,cAAc,cAAc,OAAO;CACzC,MAAM,iBAAiB,cAAc,OAAO;CAC5C,MAAM,mBAAmB,cAAc,OAAO;CAE9C,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAC9C,MAAM,CAAC,4BAA4B,+BACjC,SAAS,MAAM;CACjB,MAAM,CAAC,gBAAgB,mBAAmB,SAAS,MAAM;CACzD,MAAM,CAAC,qBAAqB,0BAA0B,SAAS,MAAM;CAErE,MAAM,kBAAkB,OAAO,MAAM;CAErC,MAAM,qBAAqB,UAAU;AACnC,cAAY,MAAM,cAAc;AAIhC,MAAI,CAAC,gBAAgB,SAAS;AAC5B,mBAAgB,UAAU;AAE1B,OAAI;AACF,8BAA0B;YACnB,GAAG;AAGZ,OAAI;AACF,iCAA6B;YACtB,GAAG;;;CAMhB,MAAM,2BAA2B;AAC/B,cAAY,KAAK;;CAGnB,MAAM,qBAAqB,kBAAkB;AAC3C,cAAY,KAAK;AACjB,gBAAc,uCAAuC;IACpD,CAAC,cAAc,CAAC;CAEnB,MAAM,uCAAuC;AAC3C,8BAA4B,KAAK;AACjC,cAAY,KAAK;;CAGnB,MAAM,wCAAwC;AAC5C,8BAA4B,MAAM;;CAGpC,MAAM,2BAA2B;AAC/B,kBAAgB,KAAK;AACrB,cAAY,KAAK;;CAGnB,MAAM,4BAA4B;AAChC,kBAAgB,MAAM;;CAGxB,MAAM,OAAO,QAAQ,SAAS;CAC9B,MAAM,KAAK,OAAO,wBAAwB;CAI1C,MAAM,sBAAsB,gBAAc;EACxC,MAAM,iBAAiB,CAAC,IAAI,GAAG,CAAC,SAASC,YAAU;EACnD,MAAM,0BAA0B,CAAC,CAAC,cAAc;EAChD,MAAM,cACJ,KAAK,IAAI,0BACT,KAAK,IAAI,oBACT,KAAK,IAAI;AACX,SAAO,kBAAkB,2BAA2B;;CAGtD,MAAM,uBAAuB,YAC3B,YACE,UACE,cAAc,iBACd,+BACA;EACE,QAAQ;EACR,SAAS,EACP,iBAAiB,MAAM,iBACxB;EACF,CACF,EACH,CAAC,MAAM,gBAAgB,CACxB;CAED,MAAM,4BAA4B,YAChC,YACE,UACE,cAAc,iBACd,yBACA;EACE,QAAQ;EACR,SAAS,EACP,iBAAiB,MAAM,iBACxB;EACF,CACF,EACH,CAAC,MAAM,gBAAgB,CACxB;CAED,MAAM,eAAe,mBAAmB,UAAU;CAClD,MAAM,0BACJ;EAAC;EAAG;EAAI;EAAI;EAAG,CAAC,SAAS,UAAU,IACnC,YACA,eACA,kBACA;CACF,MAAM,0BAA0B,aAAa;AAE7C,iBAAgB;EACd,MAAM,oBAAoB,YAAY;AACpC,OAAI;AACF,QAAI,cAAc,OAAO,qBAAqB,IAE5C,yBADiB,MAAM,2BAA2B,GACjB,WAAW,IAAI;QAGhD,yBADiB,MAAM,sBAAsB,GACZ,WAAW,IAAI;YAE3C,OAAO;AACd,2BAAuB,MAAM;;;AAGjC,qBAAmB;IAClB,CAAC,sBAAsB,0BAA0B,CAAC;AAGrD,KAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,wBAChD,QAAO,oCAAC,SAAI,IAAG,yBAAyB;AAG1C,QACE,oCAAC;EAAI,IAAG;EAAuB,WAAW,QAAQ;IAChD,oCAAC;EACC,IAAG;EACH,iBAAe;EACf,iBAAc;EACd,SAAS;IAET,oCAACC,eAAgB,OAAO;EAAE,OAAO;EAAS,SAAS;EAAK,GAAI,CACjD,EACb,oCAAC;EACK;EACE;EACI;EACV,SAAS;EACT,cAAc;GACZ,UAAU;GACV,YAAY;GACb;EACD,iBAAiB;GACf,UAAU;GACV,YAAY;GACb;IAED,oCAAC,SAAI,WAAW,QAAQ,WACtB,oCAAC,SAAI,WAAW,QAAQ,UACtB,oCAAC,cAAW,SAAQ,QAAM,EAAE,OAAO,CAAc,EACjD,oCAAC;EACC,MAAK;EACL,WAAW,QAAQ;EACnB,SAAS;IAET,oCAACC,YAAY,CACF,CACT,EACN,oCAAC;EAAK,WAAU;EAAM,cAAW;IAE9B,gBACC,oCAAC;EACC;EACA,IAAG;EACH,SAAS;IAET,oCAAC,gBAAa,WAAW,QAAQ,QAC/B,oCAACD,kBAAkB,CACN,EACf,oCAAC,gBAAa,SAAS,EAAE,WAAW,GAAI,CAC/B,EAIZ,2BACC,oCAAC;EACC;EACA,IAAG;EACH,SAAS;IAET,oCAAC,gBAAa,WAAW,QAAQ,QAC/B,oCAACE,WAAW,CACC,EACf,oCAAC,gBAAa,SAAS,EAAE,iBAAiB,GAAI,CACrC,EAIZ,2BACC,oCAAC;EACC;EACA,IAAG;EACH,SAAS;IAET,oCAAC,gBAAa,WAAW,QAAQ,QAC/B,oCAACF,kBAAkB,CACN,EACf,oCAAC,gBAAa,SAAS,EAAE,wBAAwB,GAAI,CAC5C,CAER,CACH,CACE,EAGV,oCAAC,YAAS,UAAU,QAClB,oCAAC;EAAkB,MAAM;EAAgB,SAAS;GAAuB,CAChE,EAGX,oCAAC,YAAS,UAAU,QAClB,oCAAC;EACC,MAAM;EACN,SAAS;EACwB;EACjC,WAAW,WAAW;AACpB,WAAQ,IAAI,kBAAkB,OAAO;;EAEvC,eAAe,EAAE;GACjB,CACO,CACP;;;;;ACpSV,MAAMG,cAAY,WAAW;CAC3B,MAAM;EACJ,OAAO;EACP,QAAQ;EACR,kBAAkB,EAAC,kBAAoD,oBAAoB,YAAY;EACvG,OAAO;EACP,SAAS;EACT,YAAY;EACZ,UAAU;EAEV,aAAa,EACX,OAAO,WACR;EACF;CACF,YAAY;EACT,UAAU;EACV,MAAM;EACN,WAAW;EACX,YAAY;EACd;CACD,WAAW;EACR,UAAU;EACV,OAAO;EACP,YAAY;EACd;CACD,CAAC;AAEF,MAAa,0BAA0B;CACtC,MAAM,aAAa,WAAW;CAC9B,MAAM,mBAAmB,qBAAqB;CAE7C,MAAM,UAAUA,YAAU,EAAC,aAAa,kBAAiB,CAAC;AAC1D,KAAG,CAAC,iBAAmB,QAAO;AAE9B,QACE,oCAAC;EACC,WAAW,GAAG,QAAQ,KAAK,GAAG,qBAAqB,YAAY,YAAY;EAC3E,IAAG;IAEH,oCAACC,gBAAW,WAAW,QAAQ,cAC5B,kBAAkB,OAAO,EAAE,CAAC,aAAa,GAAC,kBAAkB,MAAM,EAAE,IAAI,GAC9D,EAChB,oCAACA,gBAAW,WAAW,QAAQ,aACzB,YAAY,cAAc,WAChB,CACT;;;;;AC/BV,MAAM,YAAY,YACf,WAAW;CACV,MAAM;EACJ,OAAO,OAAO,SAAS,QAAQ;EAC/B,QAAQ,OAAO,QAAQ,SAAS;EAEjC;CACD,QAAQ,EACN,MAAM,GACP;CACD,cAAc;EACZ,SAAS;EACT,YAAY,EAAE,qBAAqB,KAAK;EACzC;CACD,SAAS;EACP,SAAS;EACT,WAAW,MAAM,QAAQ,EAAE;EAC5B;CACD,WAAW,EACT,OAAO,OAAO,SAAS,gBAAgB,OAAO,SAAS,SAAS,KAAK,EACtE;CACD,QAAQ;EACN,OAAO;EACP,QAAQ;EACR,iBAAiB,OAAO,SAAS,WAAW;EAC7C;CACD,QAAQ;EACN,YAAY,MAAM,QAAQ,EAAE;EAC5B,WAAW,MAAM,QAAQ,MAAM;EAChC;CACD,UAAU;EACR,MAAM;EACN,UAAU;EACX;CACF,GACD,EAAE,MAAM,cAAc,CACvB;;;;AAKD,MAAa,oBAAoB,UAAU;CAEzC,MAAM,UAAU,UAAU,EACxB,gBAFe,qBAAqB,GAET,mBAAmB,GAC/C,CAAC;CACF,MAAM,EAAE,cAAc;AAEtB,QAAO,oCAAC,SAAI,WAAW,KAAK,WAAW,QAAQ,aAAa,GAAI;;;;;AAMlE,MAAM,cAAc,UAAU;CAC5B,MAAM,UAAU,UAAU,MAAM;CAChC,MAAM,EACJ,WACA,UACA,YACA,YACA,UACA,iBAAiB,QACjB,QAAQ,WACR,oBACA,wBACA,iBACA,cACA,cACA,eACA,eACA,WACA,iBACA,uBAAsB,OACtB,iBAAiB,OACjB,GAAG,UACD;CAGJ,MAAM,SAAS,cADD,UAAU,CACW,YAAY,GAAG,KAAK,CAAC;AAExD,QACE,0DACE,oCAAC;EACC,WAAW;EACX,UAAS;EACF;EACP,GAAI;EACO;EACX,SAAS,EAAE,MAAM,QAAQ,MAAM;IAE/B,oCAAC,wBAAoB,EACrB,oCAAC,WAAQ,WAAW,QAAQ,WACzB,UAAU,CAAC,iBACV,oCAAC;EACC,WAAW,QAAQ;EACnB,cAAW;EACX,eAAe,mBAAmB,WAAW,KAAK;IAElD,oCAAC,iBAAa,CACH,EAEd,CAAC,UACA,oCAAC;EACC,WAAW,QAAQ;EACnB,cAAW;EACX,eAAe,mBAAmB,WAAW,KAAK;IAElD,oCAAC,uBAAmB,CACT,EAGf,oCAAC;EACC,WAAU;EACV,SAAQ;EACR,OAAO,EAAE,YAAY,iBAAiB,IAAI;IAEzC,SACU,EAEZ,UACC,oCAAC,SAAI,OAAO,EAAE,YAAY,IAAI,IAC3B,MAAM,eAAe,eAAe,GACnC,iBACE,kBAAkB,OAAO,mBAAmB,aAAa,eAAe,QAAQ,eAAe,iBACjG,oCAACC;EACC,eAAe,eAAe;EAC9B,MAAM,eAAe;EACrB,OAAO,eAAe;EACtB,UAAU,eAAe;EACzB,4BAA4B,eAAe;EAC3C,aAAa,eAAe;EAC5B,WAAW,eAAe;EAC1B,YAAY,eAAe;GAC3B,GAEF,oCAAC;EACC,OAAM;EACN,MAAM;EACkB;GACxB,CAEA,EAER,oCAAC,SAAI,WAAW,QAAQ,YAAW,WAAiB,EACnD,gBACC,oCAAC;EACC,MAAM;EACQ;EACd,OAAO;EACU;GACjB,EAGH,CAAC,UAAU,CAAC,iBACX,oCAAC;EACC,WAAW,QAAQ;EACnB,cAAW;EACX,eAAe,mBAAmB,UAAU,KAAK;IAEjD,oCAAC,iBAAa,CACH,EAEf,oCAAC,SAAI,WAAW,QAAQ,4BACtB,oCAAC,qCAAiC,CAC9B,EACL,CAAC,kBAAkB,oCAAC,iBAAa,EACjC,CAAC,wBAAwB,oCAAC,oBAA4B,YAAa,EACpE,oCAAC,aAAK,WAAiB,CACf,CACH,EACT,oCAAC,oBAA4B,YAAa,CACzC;;AAIP,yBAAe;AAEf,WAAW,YAAY;CACrB,gBAAgB,UAAU,UAAU;EAClC,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACX,CAAC;CAIF,iBAAiB,UAAU;CAC5B"}
|
|
1
|
+
{"version":3,"file":"SiteHeader-DaL_Dy45.js","names":["useStyles","useStyles","expanded","MiniCollapsibleSidebar","useStyles","useStyles","useStyles","prevOpen","useStyles","productId","HelpOutlineIcon","CloseIcon","ChatIcon","useStyles","Typography","ShellDropdown"],"sources":["../src/shell/ui/MiniCollapsibleSidebar.jsx","../src/shell/ui/NavigationSidebar.jsx","../src/shell/ui/AmbientProjectSwitcher.jsx","../src/shell/ui/ShellDropdown.jsx","../src/shell/ui/LanguageSwitcher.jsx","../src/shell/ui/HelpCenter.jsx","../src/shell/ui/EnvironmentRibbon.tsx","../src/shell/ui/SiteHeader.jsx"],"sourcesContent":["import { Drawer, makeStyles } from '@material-ui/core'\nimport clsx from 'clsx'\nimport React from 'react'\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n width: theme?.dimensions?.drawerWidth,\n flexShrink: 0,\n whiteSpace: 'nowrap'\n },\n expanded: {\n '&, & > $paper': {\n // width: theme.dimensions.drawerWidth,\n width: theme.spacing(32),\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen\n })\n }\n },\n collapsed: {\n '&, & > $paper': {\n overflowX: 'hidden',\n width: theme.spacing(7) + 1,\n transition: theme?.transitions?.create('width', {\n easing: theme?.transitions?.easing?.sharp,\n duration: theme?.transitions?.duration?.leavingScreen\n })\n }\n },\n paper: {}\n }),\n { name: 'MiniCollapsibleSidebar' }\n)\n\nconst MiniCollapsibleSidebar = (props) => {\n const classes = useStyles(props)\n const { expanded = true, className, children, ...other } = props\n\n return (\n <Drawer\n variant='permanent'\n open\n {...other}\n className={clsx(\n className,\n classes.root,\n expanded ? classes.expanded : classes.collapsed\n )}\n classes={{\n root: classes.root,\n paper: classes.paper\n }}\n >\n {children}\n </Drawer>\n )\n}\n\nexport default MiniCollapsibleSidebar\n","import React, { useState, useCallback } from 'react';\nimport { makeStyles, Toolbar, lighten } from '@material-ui/core';\nimport MiniCollapsibleSidebar from './MiniCollapsibleSidebar';\nimport { SidebarCollapseButton } from './SidebarCollapseButton';\nimport { AppMenu } from '../../UI/navigation/menus/AppMenu';\nimport { useShellStore } from '../../stores/shellStore';\nimport { useBuildEnvironment, APP_RIBBON_SPACE } from './useBuildEnvironment';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n marginTop: 400\n },\n paper: {\n backgroundColor:\n theme?.getThemeData()?.mode === 'dark'\n ? ''\n : lighten(theme?.palette?.primary?.main, 0.9),\n overflowX: 'hidden'\n },\n list: {\n flex: 1,\n paddingTop: 0,\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch'\n },\n spacer: {\n flex: 1,\n minHeight: theme.spacing(2)\n },\n footer: {},\n toolbar: {\n padding: 0,\n minHeight: ({appRibbonSpace}) => theme.spacing(6) + appRibbonSpace\n }\n }),\n { name: 'NavigationSidebar' }\n);\n\nconst NavigationSidebar = (props) => {\n const buildEnv = useBuildEnvironment()\n const classes = useStyles({appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0});\n const {\n data,\n toggleExpandClick,\n navMenuHoverOn,\n user,\n toggle = true,\n useGlobalState = false,\n ...other\n } = props;\n const [expanded, setExpanded] = useState(true);\n const { navigationExpanded, setNavigationExpanded } = useShellStore();\n\n let navExpanded = useGlobalState ? navigationExpanded : expanded;\n\n const [hoverExpand, setHoverExpand] = useState(false);\n\n // ** Remove for now to deal with programmatic toggle **\n // const wide = useMediaQuery(theme.breakpoints.up('sm'))\n // useEffect(() => {\n // // Set the bar to be expanded/collapsed depending on the breakpoint size\n // // This works on load and also when resizing crosses the breakpoint\n // setExpanded(wide)\n // }, [wide])\n\n const handleHoverToggle = () => {\n if (!navExpanded && navMenuHoverOn) {\n setHoverExpand(true);\n }\n };\n const handleHoverLeave = () => {\n if (!navExpanded && navMenuHoverOn) {\n setHoverExpand(false);\n }\n };\n\n const handleToggleClick = useCallback(() => {\n if (useGlobalState) {\n setNavigationExpanded(!navigationExpanded);\n } else {\n setExpanded((expanded) => !expanded);\n }\n }, [setNavigationExpanded, useGlobalState, navigationExpanded]);\n\n return (\n <MiniCollapsibleSidebar\n classes={{ root: classes.root, paper: classes.paper }}\n expanded={navExpanded || hoverExpand}\n onMouseEnter={handleHoverToggle}\n onMouseLeave={handleHoverLeave}\n PaperProps={{ elevation: 0, variant: 'outlined' }}\n {...other}\n >\n <Toolbar className={classes.toolbar} />\n\n {toggle && (\n <SidebarCollapseButton\n id='udpRecord-NavigationSidebar'\n udprecordid='udpRecord-NavigationSidebar'\n expanded={navExpanded}\n onClick={handleToggleClick}\n />\n )}\n {data && <AppMenu menuItems={data} sidebarExpanded={navExpanded} user={user} />}\n </MiniCollapsibleSidebar>\n );\n};\n\nexport default NavigationSidebar;\n","import React, { useState } from 'react'\nimport { makeStyles, Popover, Typography, useTheme } from '@material-ui/core'\nimport { ChevronDownIcon } from '@fluentui/react-icons'\nimport { FluentIconButton } from '../../UI/inputs/buttons/FluentIconButton'\nimport {AmbientPopoverMenuItem} from '../../UI/inputs/buttons/AmbientPopoverMenuItem'\nimport PropTypes from 'prop-types'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n // border: '1px solid white',\n background: props => props.backgroundColor ? props.backgroundColor : theme.palette.secondary.main,\n borderRadius: 50,\n padding: 6,\n paddingLeft:16\n },\n popoverRoot: {},\n icon: {\n color: theme.palette.primary.main,\n borderRadius: 50\n }, \n label: {\n display: 'block',\n width: props => props.width ? props.width : 100,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n }, \n listWrapper: {\n marginRight: theme.spacing(2)\n }\n}))\n\nexport const AmbientProjectSwitcher = (props) => {\n \n const classes = useStyles(props)\n\n const theme = useTheme()\n\n const { data, selectedItem } = props\n\n const [anchorEl, setAnchorEl] = useState(null)\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n const id = open ? 'open' : undefined\n\n return (\n <div className={classes.root}>\n <div className={classes.listWrapper}>\n <Typography className={classes.label} > \n {selectedItem} \n </Typography>\n </div>\n \n <FluentIconButton\n className={classes.icon}\n icon={ChevronDownIcon}\n onClick={handleClick}\n style={{background: theme.palette.common.white}}\n />\n\n <Popover\n classes={{ root: classes.popoverRoot }}\n square\n elevation={6}\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n <div >\n <div>\n {data && data.map((item) => {\n return (\n <AmbientPopoverMenuItem\n label={item.label}\n component={ChevronDownIcon}\n click={()=>item.click(item.label)}\n />\n )\n })}\n </div>\n </div>\n </Popover>\n </div>\n )\n}\n\nAmbientProjectSwitcher.propTypes = {\n /**\n * The array used to map for label and functions to list items. (array).\n */\n data: PropTypes.array,\n /**\n * The active label displayed.\n */\n selectedItem: PropTypes.string,\n /**\n * Change the background color on the project switcher (default: theme secondary)\n */\n backgroundColor: PropTypes.string\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\nimport { FluentTextFieldAutoComplete } from '../../UI/inputs/textField/FluentTextFieldAutoComplete';\n\nconst useStyles = makeStyles(theme => ({\n root: { display: 'flex', alignItems: 'center' },\n field: {\n minWidth: 300,\n maxWidth: 400,\n width: '100%',\n alignSelf: 'left',\n color: '#fff',\n '& .MuiOutlinedInput-root': {\n color: '#fff',\n backgroundColor: 'transparent',\n '& fieldset': {\n borderColor: 'rgba(255,255,255,0.6)',\n },\n '&:hover fieldset': {\n borderColor: 'rgba(255,255,255,0.85)',\n },\n '&.Mui-focused fieldset': {\n borderColor: '#fff',\n },\n '& input': {\n paddingTop: 4,\n paddingBottom: 4,\n height: 20,\n boxSizing: 'border-box',\n color: '#fff',\n },\n '& .MuiAutocomplete-input': {\n color: '#fff',\n },\n },\n '& .MuiInputBase-root': {\n color: '#fff',\n },\n '& .MuiAutocomplete-popupIndicator, & .MuiAutocomplete-clearIndicator': {\n color: '#fff',\n opacity: 0.95,\n },\n '& input::placeholder': {\n color: 'rgba(255,255,255,0.7)',\n },\n },\n}));\n\nfunction getDisplayName(item) {\n if (!item && item !== 0) return '';\n if (typeof item === 'string' || typeof item === 'number') return String(item);\n if (typeof item === 'object') {\n const name = item.name ?? item.label ?? item.title ?? item.displayName;\n return name !== undefined && name !== null ? String(name) : '';\n }\n return String(item);\n}\n\nexport const ShellDropdown = (props) => {\n const classes = useStyles();\n const {\n componentName = 'Item',\n data = [],\n value = null,\n onChange,\n optionLabelDisplayFunction = getDisplayName,\n placeholder,\n className,\n classProps,\n ...other\n } = props;\n\n const placeholderText = placeholder ?? (!value ? `All ${componentName}s` : undefined);\n\n return (\n <div className={`${classes.root} ${className || ''}`}>\n <FluentTextFieldAutoComplete\n className={classes.field}\n classProps={{ autocompleteRoot: classes.field, ...classProps }}\n options={data}\n optionLabelDisplayFunction={optionLabelDisplayFunction}\n onChange={onChange}\n value={value}\n placeholder={placeholderText}\n {...other}\n />\n </div>\n );\n};\n\nShellDropdown.propTypes = {\n componentName: PropTypes.string,\n data: PropTypes.array,\n value: PropTypes.any,\n onChange: PropTypes.func,\n optionLabelDisplayFunction: PropTypes.func,\n placeholder: PropTypes.string,\n className: PropTypes.string,\n classProps: PropTypes.object,\n};\n\nexport default ShellDropdown;\n","import React, { useState, useRef, useEffect } from 'react'\nimport {\n ClickAwayListener,\n Grow,\n Paper,\n Popper,\n MenuList,\n makeStyles,\n IconButton,\n MenuItem\n} from '@material-ui/core'\nimport { TranslateIcon } from '@fluentui/react-icons'\nimport i18n from 'i18next';\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n paper: {\n marginRight: theme.spacing(2)\n }\n}))\n\nexport const LanguageSwitcher = (props) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n const anchorRef = useRef(null)\n const { languages } = props\n\n const handleToggle = () => {\n setOpen((prevOpen) => !prevOpen)\n }\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return\n }\n setOpen(false)\n }\n\n function handleListKeyDown(event) {\n if (event.key === 'Tab') {\n event.preventDefault()\n setOpen(false)\n }\n }\n\n // return focus to the button when we transitioned from !open -> open\n const prevOpen = useRef(open)\n useEffect(() => {\n if (prevOpen.current === true && open === false) {\n anchorRef.current.focus()\n }\n prevOpen.current = open\n }, [open])\n\n const handleLanguageChange = (event) => {\n const currentLanguage = event;\n //setLangKey(currentLanguage.languageCode);\n languageSelector(currentLanguage.languageCode);\n };\n\n const languageSelector = (defaultLang) => {\n i18n.changeLanguage(defaultLang);\n }\n\n if (languages != null) {\n return (\n <div id='udpRecord-LanguageSwitcher' className={classes.root}>\n <div>\n <IconButton\n id='udpRecord-LanguageSwitcher-IconButton'\n udprecordid='udpRecord-LanguageSwitcher-IconButton'\n ref={anchorRef}\n aria-controls={open ? 'menu-list-grow' : undefined}\n aria-haspopup='true'\n onClick={handleToggle}\n >\n <TranslateIcon style={{ color: 'white', opacity: 0.8 }} />\n </IconButton>\n <Popper\n open={open}\n anchorEl={anchorRef.current}\n role={undefined}\n transition\n disablePortal\n >\n {({ TransitionProps, placement }) => (\n <Grow\n {...TransitionProps}\n style={{\n transformOrigin:\n placement === 'bottom' ? 'center top' : 'center bottom'\n }}\n >\n <Paper>\n <ClickAwayListener \n id='udpRecord-LanguageSwitcher-ClickAway' \n udprecordid='udpRecord-LanguageSwitcher-ClickAway' \n onClickAway={handleClose}\n >\n <MenuList\n autoFocusItem={open}\n id='menu-list-grow'\n udprecordid='udpRecord-LanguageSwitcher-MenuList'\n onKeyDown={handleListKeyDown}\n onClick={() => setOpen(false)}\n >\n {languages.map((data) =>\n <MenuItem\n id={'udpRecord-LanguageSwitcher-MenuItem-'+data.languageLabel}\n udprecordid={'udpRecord-LanguageSwitcher-MenuItem-'+data.languageLabel}\n onClick={() => handleLanguageChange(data)}\n value={data.languageCode}\n key={data.languageId}\n >\n {data.languageLabel}\n </MenuItem>)}\n </MenuList>\n </ClickAwayListener>\n </Paper>\n </Grow>\n )}\n </Popper>\n </div>\n </div>\n )\n } else {\n return (\n null\n )\n }\n\n}","import React, { useState, useCallback, useEffect, useRef, Suspense, lazy } from 'react';\nimport {\n makeStyles,\n IconButton,\n Popover,\n Typography,\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n Dialog,\n DialogTitle,\n DialogContent\n} from '@material-ui/core';\nimport {HelpOutline as HelpOutlineIcon, Chat as ChatIcon, Close as CloseIcon} from '@material-ui/icons';\nimport { useActions } from '../../hooks/useActions';\nimport { useTranslation } from 'react-i18next';\nimport { useUser } from '../../../src/utilities/auth/useUser';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { ConfigService } from '../../configService';\n\n// Lazy-load side sheets so they aren't imported until needed. Keep\n// module-level lazy declarations so the imports are deduped and cached.\nconst UserFormSideSheet = lazy(() => import('./addUser/UserFormSideSheet'));\nconst SupportCaseSideSheet = lazy(() => import('../../UI/support/SupportCaseSideSheet'));\n\n// Preload helpers (return the dynamic import promise). Calling these\n// will start fetching the chunk in the background and populate the\n// module cache so React.lazy resolves quickly later.\nconst preloadUserFormSideSheet = () => import('./addUser/UserFormSideSheet');\nconst preloadSupportCaseSideSheet = () => import('../../UI/support/SupportCaseSideSheet');\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n popover: {\n padding: theme.spacing(2),\n maxWidth: 300\n },\n icon: {\n minWidth: 40\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500]\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n dialog: {\n minWidth: '80vw',\n minHeight: '80vh'\n }\n}));\n\nexport const HelpCenter = () => {\n const classes = useStyles();\n const { t } = useTranslation();\n const { triggerAction } = useActions();\n const user = useUser();\n const productId = Number(ConfigService.config.UNITY_PRODUCT_ID);\n\n const udpaiAPI = ConfigService.config.UDPAI_API_BASE;\n const udpaisearch = ConfigService.config.AI_SEARCH_URL;\n const udpaisearchkey = ConfigService.config.AI_SEARCH_KEY;\n const udpaisearchindex = ConfigService.config.AI_SEARCH_INDEX_NAME;\n\n const [anchorEl, setAnchorEl] = useState(null);\n const [isSupportCaseSideSheetOpen, setSupportCaseSideSheetOpen] =\n useState(false);\n const [isUserFormOpen, setUserFormOpen] = useState(false);\n const [supportCaseHealthOk, setSupportCaseHealthOk] = useState(false);\n\n const hasPreloadedRef = useRef(false);\n\n const handleOpenPopover = (event) => {\n setAnchorEl(event.currentTarget);\n\n // Preload both side sheets in the background the first time the popover opens.\n // We assume that if the user opened the popover, they might open one of the sheets.\n if (!hasPreloadedRef.current) {\n hasPreloadedRef.current = true;\n // Start background fetches but don't await them.\n try {\n preloadUserFormSideSheet();\n } catch (e) {\n // ignore preload errors\n }\n try {\n preloadSupportCaseSideSheet();\n } catch (e) {\n // ignore preload errors\n }\n }\n };\n\n const handleClosePopover = () => {\n setAnchorEl(null);\n };\n\n const handleLaunchAction = useCallback(() => {\n setAnchorEl(null);\n triggerAction('CEE75B36-01B0-4FAC-9AE7-C1AC8A2A194F');\n }, [triggerAction]);\n\n const handleOpenSupportCaseSideSheet = () => {\n setSupportCaseSideSheetOpen(true);\n setAnchorEl(null);\n };\n\n const handleCloseSupportCaseSideSheet = () => {\n setSupportCaseSideSheetOpen(false);\n };\n\n const handleOpenUserForm = () => {\n setUserFormOpen(true); // Open UserForm modal\n setAnchorEl(null);\n };\n\n const handleCloseUserForm = () => {\n setUserFormOpen(false); // Close UserForm modal\n };\n\n const open = Boolean(anchorEl);\n const id = open ? 'help-center-popover' : undefined;\n\n // Conditions for rendering buttons\n // 2 assets, 41 sandbox, 51 assets, 53 mm, 68 timesheets\n const shouldShowAddUsers = (productId) => {\n const isValidProduct = [41, 53].includes(productId);\n const isSecurityApiConfigured = !!ConfigService.securityV1ApiUrl;\n const isValidUser =\n user.can.CAN_MANAGE_ROLES_USERS &&\n user.can.CAN_MANAGE_USERS &&\n user.can.CAN_VIEW_USERS;\n return isValidProduct && isSecurityApiConfigured && isValidUser;\n };\n\n const getSupportCaseStatus = useCallback(\n async () =>\n apiMutate(\n ConfigService.productV1ApiUrl,\n `udpunitysupport/healthCheck`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n const getSupportCaseStatusUnity = useCallback(\n async () =>\n apiMutate(\n ConfigService.supportV1ApiUrl,\n `ServiceHealth/Support`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n const showAddUsers = shouldShowAddUsers(productId);\n const shouldShowChatAssistant =\n [2, 41, 51, 68].includes(productId) &&\n udpaiAPI &&\n udpaisearch &&\n udpaisearchkey &&\n udpaisearchindex;\n const shouldShowSupportTicket = productId && supportCaseHealthOk;\n\n useEffect(() => {\n const supportCaseStatus = async () => {\n try {\n if (ConfigService.config.UNITY_PRODUCT_ID === \"1\") {\n const response = await getSupportCaseStatusUnity();\n setSupportCaseHealthOk(response?.status === 200);\n } else {\n const response = await getSupportCaseStatus();\n setSupportCaseHealthOk(response?.status === 200);\n }\n } catch (error) {\n setSupportCaseHealthOk(false);\n }\n };\n supportCaseStatus();\n }, [getSupportCaseStatus, getSupportCaseStatusUnity]);\n\n // Hide the entire help center if neither button should be rendered\n if (!showAddUsers && !shouldShowChatAssistant && !shouldShowSupportTicket) {\n return <div id='udpRecord-HelpCenter' />;\n }\n\n return (\n <div id='udpRecord-HelpCenter' className={classes.root}>\n <IconButton\n id='udpRecord-HelpCenter-IconButton'\n aria-controls={id}\n aria-haspopup='true'\n onClick={handleOpenPopover}\n >\n <HelpOutlineIcon style={{ color: 'white', opacity: 0.8 }} />\n </IconButton>\n <Popover\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClosePopover}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'center'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'center'\n }}\n >\n <div className={classes.popover}>\n <div className={classes.header}>\n <Typography variant='h6'>{t('Help')}</Typography>\n <IconButton\n size='small'\n className={classes.closeButton}\n onClick={handleClosePopover}\n >\n <CloseIcon />\n </IconButton>\n </div>\n <List component='nav' aria-label='Help options'>\n {/* First Button: Add User */}\n {showAddUsers && (\n <ListItem\n button\n id='udpRecord-HelpCenter-AddUsers'\n onClick={handleOpenUserForm}\n >\n <ListItemIcon className={classes.icon}>\n <HelpOutlineIcon />\n </ListItemIcon>\n <ListItemText primary={t('Add User')} />\n </ListItem>\n )}\n\n {/* Second Button: Chat Assistant */}\n {shouldShowChatAssistant && (\n <ListItem\n button\n id='udpRecord-HelpCenter-ChatAssistant'\n onClick={handleLaunchAction}\n >\n <ListItemIcon className={classes.icon}>\n <ChatIcon />\n </ListItemIcon>\n <ListItemText primary={t('Chat Assistant')} />\n </ListItem>\n )}\n\n {/* Third Button: Submit Support Ticket */}\n {shouldShowSupportTicket && (\n <ListItem\n button\n id='udpRecord-HelpCenter-SupportTicket'\n onClick={handleOpenSupportCaseSideSheet}\n >\n <ListItemIcon className={classes.icon}>\n <HelpOutlineIcon />\n </ListItemIcon>\n <ListItemText primary={t('Submit Support Ticket')} />\n </ListItem>\n )}\n </List>\n </div>\n </Popover>\n\n {/* Modal for UserForm (lazy-loaded) */}\n <Suspense fallback={null}>\n <UserFormSideSheet open={isUserFormOpen} onClose={handleCloseUserForm} />\n </Suspense>\n\n {/* Side Sheet for Support Ticket (lazy-loaded) */}\n <Suspense fallback={null}>\n <SupportCaseSideSheet\n open={isSupportCaseSideSheetOpen}\n onClose={handleCloseSupportCaseSideSheet}\n handleCloseSupportCaseSideSheet={handleCloseSupportCaseSideSheet}\n onSubmit={(values) => {\n console.log('Form submitted', values);\n }}\n initialValues={{}}\n />\n </Suspense>\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\n// @ts-ignore\nimport { makeStyles } from '@material-ui/core';\nimport { useTenant } from '../../utilities/tenant/useTenant';\nimport { Typography } from '../../UI/dataDisplay/typography/Typography';\nimport { APP_RIBBON_SPACE, useBuildEnvironment } from './useBuildEnvironment';\n\n\n\nconst useStyles = makeStyles({\n root: {\n width: '100vw',\n height: APP_RIBBON_SPACE,\n backgroundColor: ({environment}: {environment: string | undefined}) => `var(--env-ribbon-${environment})`,\n color: '#ffffff', // Default white text\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n // Use CSS to handle staging text color\n '&.staging': {\n color: '#000000'\n }\n },\n\tcenterText: {\n position: 'absolute',\n left: '50%',\n transform: 'translateX(-50%)',\n fontWeight: 600\n\t},\n\trightText: {\n position: 'absolute',\n right: '10px',\n fontWeight: 500\n\t}\n});\n\nexport const EnvironmentRibbon = () => {\n\tconst tenantInfo = useTenant()\n\tconst buildEnvironment = useBuildEnvironment()\n\n const classes = useStyles({environment: buildEnvironment});\n if(!buildEnvironment) return null;\n\n return (\n <div\n className={`${classes.root} ${buildEnvironment === 'staging' ? 'staging' : ''}`}\n id='udp-environment-banner'\n >\n <Typography className={classes.centerText}>\n {buildEnvironment?.charAt(0).toUpperCase()+buildEnvironment?.slice(1) || ''}\n </Typography>\n\t\t\t<Typography className={classes.rightText}>\n {tenantInfo?.activeTenant?.tenantName}\n </Typography>\n </div>\n );\n};\n","import React from 'react';\nimport {\n AppBar,\n makeStyles,\n Toolbar,\n Typography,\n IconButton,\n useMediaQuery,\n useTheme\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport { WaffleIcon, CollapseMenuIcon } from '@fluentui/react-icons';\nimport { BreadCrumbMenu } from '../../UI/inputs/link/BreadCrumbMenu';\nimport { AmbientProjectSwitcher } from './AmbientProjectSwitcher';\nimport ShellDropdown from './ShellDropdown';\nimport { LanguageSwitcher } from './LanguageSwitcher';\nimport { HelpCenter } from './HelpCenter';\nimport { SiteHeaderRightComponentTarget } from './SiteHeaderRightComponent';\nimport PropTypes from 'prop-types';\nimport {\n useBuildEnvironment,\n APP_RIBBON_SPACE\n} from './useBuildEnvironment';\nimport { EnvironmentRibbon } from './EnvironmentRibbon';\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n color: theme?.palette?.appBar?.contrastText,\n zIndex: theme?.zIndex?.drawer + 1\n // Assume the drawer is always expanded unless the screen is too small for it and inset the left to account for it\n },\n spacer: {\n flex: 1\n },\n headerSpacer: {\n padding: 0,\n minHeight: ({ appRibbonSpace }) => 56 + appRibbonSpace\n },\n toolbar: {\n padding: 0,\n minHeight: theme.spacing(6)\n },\n appLaunch: {\n color: theme?.palette?.getContrastText(theme?.palette?.primary?.main)\n },\n avatar: {\n width: 25,\n height: 25,\n backgroundColor: theme?.palette?.secondary?.main\n },\n search: {\n marginLeft: theme.spacing(2),\n marginTop: theme.spacing(-1.35)\n },\n children: {\n flex: 1,\n minWidth: 5\n }\n }),\n { name: 'SiteHeader' }\n);\n\n/**\n * A spacing component with the same height as the SiteHeader\n */\nexport const SiteHeaderSpacer = (props) => {\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const { className } = props;\n\n return <div className={clsx(className, classes.headerSpacer)} />;\n};\n\n/**\n * Site header including app bar\n */\nconst SiteHeader = (props) => {\n const classes = useStyles(props);\n const {\n className,\n returnTo,\n appContent,\n userAvatar,\n siteName,\n breadCrumbRoot = 'home',\n color = 'primary',\n setAppSwitcherOpen,\n breadCrumbAltLabelList,\n currentLocation,\n switcherData,\n selectedItem,\n switcherWidth,\n hideAppLaunch,\n languages,\n backgroundColor,\n hideLanguageSwitcher =false,\n hideHelpCenter = false,\n ...other\n } = props;\n\n const theme = useTheme();\n const mobile = useMediaQuery(theme.breakpoints.up('sm'));\n\n return (\n <>\n <AppBar\n elevation={0}\n position='fixed'\n color={color}\n {...other}\n className={className}\n classes={{ root: classes.root }}\n >\n <EnvironmentRibbon />\n <Toolbar className={classes.toolbar}>\n {mobile && !hideAppLaunch && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('desktop', true)}\n >\n <WaffleIcon />\n </IconButton>\n )}\n {!mobile && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('desktop', true)}\n >\n <CollapseMenuIcon />\n </IconButton>\n )}\n\n <Typography\n component='h1'\n variant='h6'\n style={{ marginLeft: hideAppLaunch && 16 }}\n >\n {siteName}\n </Typography>\n\n {mobile && (\n <div style={{ marginLeft: 70 }}>\n {React.isValidElement(breadCrumbRoot) ? (\n breadCrumbRoot\n ) : breadCrumbRoot && typeof breadCrumbRoot === 'object' && (breadCrumbRoot.data || breadCrumbRoot.componentName) ? (\n <ShellDropdown\n componentName={breadCrumbRoot.componentName}\n data={breadCrumbRoot.data}\n value={breadCrumbRoot.value}\n onChange={breadCrumbRoot.onChange}\n optionLabelDisplayFunction={breadCrumbRoot.optionLabelDisplayFunction}\n placeholder={breadCrumbRoot.placeholder}\n className={breadCrumbRoot.className}\n classProps={breadCrumbRoot.classProps}\n />\n ) : (\n <BreadCrumbMenu\n color='primary'\n root={breadCrumbRoot}\n breadCrumbAltLabelList={breadCrumbAltLabelList}\n />\n )}\n </div>\n )}\n <div className={classes.children}>{appContent}</div>\n {switcherData && (\n <AmbientProjectSwitcher\n data={switcherData}\n selectedItem={selectedItem}\n width={switcherWidth}\n backgroundColor={backgroundColor}\n />\n )}\n\n {!mobile && !hideAppLaunch && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('mobile', true)}\n >\n <WaffleIcon />\n </IconButton>\n )}\n <div className={classes.additionalRightComponent}>\n <SiteHeaderRightComponentTarget />\n </div>\n {!hideHelpCenter && <HelpCenter />}\n {!hideLanguageSwitcher && <LanguageSwitcher languages={languages} />}\n <div>{userAvatar}</div>\n </Toolbar>\n </AppBar>\n <SiteHeaderSpacer className={className} />\n </>\n );\n};\n\nexport default SiteHeader;\n\nSiteHeader.propTypes = {\n breadCrumbRoot: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n PropTypes.object\n ]),\n /**\n * Passes the background color on the project switcher (default: theme secondary)\n */\n backgroundColor: PropTypes.string\n};\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./chunk-BN_g-Awi.js";
|
|
2
|
-
import { t as WidgetCard_default } from "./WidgetCard-
|
|
3
|
-
import { t as FluentStatsSnippet_default } from "./FluentStatsSnippet-
|
|
4
|
-
import { t as convertISODate } from "./ConvertISODate-
|
|
2
|
+
import { t as WidgetCard_default } from "./WidgetCard-CgZSNV38.js";
|
|
3
|
+
import { t as FluentStatsSnippet_default } from "./FluentStatsSnippet-DKMsXSfg.js";
|
|
4
|
+
import { t as convertISODate } from "./ConvertISODate-C6RoXn_x.js";
|
|
5
5
|
import React, { Fragment, forwardRef } from "react";
|
|
6
6
|
import { Grid, Typography, makeStyles } from "@material-ui/core";
|
|
7
7
|
import { Sparklines, SparklinesLine } from "react-sparklines";
|
|
@@ -62,4 +62,4 @@ var SparklineWidget_exports = /* @__PURE__ */ __exportAll({
|
|
|
62
62
|
|
|
63
63
|
//#endregion
|
|
64
64
|
export { SparklineWidget_default as n, layout as r, SparklineWidget_exports as t };
|
|
65
|
-
//# sourceMappingURL=SparklineWidget-
|
|
65
|
+
//# sourceMappingURL=SparklineWidget-BHV5aN9E.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SparklineWidget-
|
|
1
|
+
{"version":3,"file":"SparklineWidget-BHV5aN9E.js","names":["WidgetCard","FluentStatsSnippet"],"sources":["../src/UI/widgets/library/SparklineWidget/SparklineWidget.jsx","../src/UI/widgets/library/SparklineWidget/index.ts"],"sourcesContent":["import React, { forwardRef, Fragment } from 'react'\nimport { Grid, Typography, makeStyles } from '@material-ui/core'\nimport WidgetCard from '../../WidgetCard'\nimport { Sparklines, SparklinesLine } from 'react-sparklines'\nimport FluentStatsSnippet from '../../FluentComponents/atoms/FluentStatsSnippet'\nimport { convertISODate } from '../../utils/ConvertISODate'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nconst useStyles = makeStyles((theme) => ({\n statList: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between'\n }\n}))\n\nconst SparklineWidget = (props, ref) => {\n const classes = useStyles()\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme, dateRange } = params\n\n return (\n <WidgetCard\n className={classes.root}\n theme={theme}\n ref={ref}\n {...other}\n title={mockData?.title}\n >\n {mockData ? (\n <Fragment>\n {dateRange && (\n <Typography gutterBottom variant='caption' component='h3'>\n From: {convertISODate(dateRange.from)} to:{' '}\n {convertISODate(dateRange.to)}\n </Typography>\n )}\n <div className={classes.statList}>\n {mockData?.stats?.map((stat) => (\n <Grid item key={stat.label}>\n <FluentStatsSnippet\n label={stat.label}\n amount={stat.amount}\n percent={stat.percent && stat.percent}\n trend={stat.trend}\n />\n </Grid>\n ))}\n </div>\n\n <Sparklines data={mockData?.data} strokeWidth={0.5}>\n <SparklinesLine color='#067e7e' />\n </Sparklines>\n {children}\n </Fragment>\n ) : (\n <Typography variant='subtitle2'>\n Could not retrieve widget data. Please contact support.\n </Typography>\n )}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(SparklineWidget)\n","export * from './SparklineWidget';\nexport {default} from './SparklineWidget';\n"],"mappings":";;;;;;;;;AAOA,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAM,YAAY,YAAY,WAAW,EACvC,UAAU;CACR,SAAS;CACT,eAAe;CACf,gBAAgB;CACjB,EACF,EAAE;AAEH,MAAM,mBAAmB,OAAO,QAAQ;CACtC,MAAM,UAAU,WAAW;CAC3B,MAAM,EAAE,UAAU,QAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,OAAO,cAAc;AAE/C,QACE,oCAACA;EACC,WAAW,QAAQ;EACZ;EACF;EACL,GAAI;EACJ,OAAO,UAAU;IAEhB,WACC,oCAAC,gBACE,aACC,oCAAC;EAAW;EAAa,SAAQ;EAAU,WAAU;IAAK,UACjD,eAAe,UAAU,KAAK,EAAC,QAAK,KAC1C,eAAe,UAAU,GAAG,CAClB,EAEf,oCAAC,SAAI,WAAW,QAAQ,YACrB,UAAU,OAAO,KAAK,SACrB,oCAAC;EAAK;EAAK,KAAK,KAAK;IACnB,oCAACC;EACC,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,SAAS,KAAK,WAAW,KAAK;EAC9B,OAAO,KAAK;GACZ,CACG,CACP,CACE,EAEN,oCAAC;EAAW,MAAM,UAAU;EAAM,aAAa;IAC7C,oCAAC,kBAAe,OAAM,YAAY,CACvB,EACZ,SACQ,GAEX,oCAAC,cAAW,SAAQ,eAAY,0DAEnB,CAEJ;;AAIjB,8BAAe,WAAW,gBAAgB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./chunk-BN_g-Awi.js";
|
|
2
|
-
import { t as WidgetCard_default } from "./WidgetCard-
|
|
3
|
-
import { t as FluentStatsSnippet_default } from "./FluentStatsSnippet-
|
|
2
|
+
import { t as WidgetCard_default } from "./WidgetCard-CgZSNV38.js";
|
|
3
|
+
import { t as FluentStatsSnippet_default } from "./FluentStatsSnippet-DKMsXSfg.js";
|
|
4
4
|
import React, { forwardRef } from "react";
|
|
5
5
|
import { Box, Grid } from "@material-ui/core";
|
|
6
6
|
import { MuiVegaLite } from "@material-vega/material-ui";
|
|
@@ -79,4 +79,4 @@ var SparsePlotWidget_exports = /* @__PURE__ */ __exportAll({
|
|
|
79
79
|
|
|
80
80
|
//#endregion
|
|
81
81
|
export { params as i, SparsePlotWidget_default as n, layout as r, SparsePlotWidget_exports as t };
|
|
82
|
-
//# sourceMappingURL=SparsePlotWidget-
|
|
82
|
+
//# sourceMappingURL=SparsePlotWidget-DuHbmEom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SparsePlotWidget-
|
|
1
|
+
{"version":3,"file":"SparsePlotWidget-DuHbmEom.js","names":["params","WidgetCard","FluentStatsSnippet"],"sources":["../src/UI/widgets/library/SparsePlotWidget/SparsePlotWidget.jsx","../src/UI/widgets/library/SparsePlotWidget/index.ts"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { Grid, Box } from '@material-ui/core'\nimport { MuiVegaLite } from '@material-vega/material-ui'\nimport WidgetCard from '../../WidgetCard'\nimport FluentStatsSnippet from '../../FluentComponents/atoms/FluentStatsSnippet'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nexport const params = {\n mode: {\n defaultValue: 'chart'\n }\n}\n\nconst SparsePlotWidget = (props, ref) => {\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme } = params\n\n return (\n <WidgetCard ref={ref} {...other} title={mockData?.title} theme={theme}>\n <Grid container>\n {mockData?.stats.map((stat) => (\n <Grid item xs={3} key={stat.label}>\n <FluentStatsSnippet\n label={stat.label}\n amount={stat.currentValue}\n prevAmount={stat.previousValue}\n />\n </Grid>\n ))}\n </Grid>\n <Box clone flex={1} mt={1} overflow='hidden'>\n <MuiVegaLite\n spec={{\n $schema: 'https://vega.github.io/schema/vega-lite/v4.json',\n width: 'container',\n height: 'container',\n data: mockData?.data,\n mark: { type: 'point', line: true, point: true },\n encoding: {\n x: { field: 'xAxis', type: mockData?.xAxisType },\n y: { field: 'yAxis', type: mockData?.yAxisType }\n }\n }}\n variant='scatterplotChart'\n autoResize\n actions={false}\n />\n </Box>\n {children}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(SparsePlotWidget)\n","export * from './SparsePlotWidget';\nexport {default} from './SparsePlotWidget';\n"],"mappings":";;;;;;;;AAMA,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAa,SAAS,EACpB,MAAM,EACJ,cAAc,SACf,EACF;AAED,MAAM,oBAAoB,OAAO,QAAQ;CACvC,MAAM,EAAE,UAAU,kBAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,UAAUA;AAEpC,QACE,oCAACC;EAAgB;EAAK,GAAI;EAAO,OAAO,UAAU;EAAc;IAC9D,oCAAC,QAAK,mBACH,UAAU,MAAM,KAAK,SACpB,oCAAC;EAAK;EAAK,IAAI;EAAG,KAAK,KAAK;IAC1B,oCAACC;EACC,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,YAAY,KAAK;GACjB,CACG,CACP,CACG,EACP,oCAAC;EAAI;EAAM,MAAM;EAAG,IAAI;EAAG,UAAS;IAClC,oCAAC;EACC,MAAM;GACJ,SAAS;GACT,OAAO;GACP,QAAQ;GACR,MAAM,UAAU;GAChB,MAAM;IAAE,MAAM;IAAS,MAAM;IAAM,OAAO;IAAM;GAChD,UAAU;IACR,GAAG;KAAE,OAAO;KAAS,MAAM,UAAU;KAAW;IAChD,GAAG;KAAE,OAAO;KAAS,MAAM,UAAU;KAAW;IACjD;GACF;EACD,SAAQ;EACR;EACA,SAAS;GACT,CACE,EACL,SACU;;AAIjB,+BAAe,WAAW,iBAAiB"}
|
|
@@ -4,9 +4,9 @@ import { t as FluentIconButton } from "./FluentIconButton-Dc95mE3v.js";
|
|
|
4
4
|
import { S as getIconFromName } from "./TreeUtilities-jEhtZNg5.js";
|
|
5
5
|
import { t as Adornment } from "./Adornment-Ciq1X7he.js";
|
|
6
6
|
import { t as FluentCheckbox } from "./FluentCheckbox-CX7XgoFz.js";
|
|
7
|
-
import { t as CompactDataList } from "./CompactDataList-
|
|
8
|
-
import { t as CompactDataListItem } from "./CompactDataListItem-
|
|
9
|
-
import { r as getChildrenObjectsWithNoChildren } from "./MapUtilities-
|
|
7
|
+
import { t as CompactDataList } from "./CompactDataList-CFI63cvg.js";
|
|
8
|
+
import { t as CompactDataListItem } from "./CompactDataListItem-C3_Ro16-.js";
|
|
9
|
+
import { r as getChildrenObjectsWithNoChildren } from "./MapUtilities-BIMHy5V-.js";
|
|
10
10
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
11
11
|
import { Card, CardContent, Divider, FormControlLabel, FormGroup, Grid, IconButton, ListItemIcon, Menu, MenuItem, Tooltip, Typography, darken, lighten, makeStyles, useTheme } from "@material-ui/core";
|
|
12
12
|
import clsx from "clsx";
|
|
@@ -320,4 +320,4 @@ const Statistic = (props) => {
|
|
|
320
320
|
|
|
321
321
|
//#endregion
|
|
322
322
|
export { CheckboxGroup as i, PopoverCard as n, CheckboxList as r, Statistic as t };
|
|
323
|
-
//# sourceMappingURL=Statistic-
|
|
323
|
+
//# sourceMappingURL=Statistic-DWW8GxYI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Statistic-CB8UpsW4.js","names":["useStyles","useStyles"],"sources":["../src/UI/mapLayout/ui/CheckboxGroup.jsx","../src/UI/mapLayout/ui/CheckboxList.jsx","../src/UI/mapLayout/ui/PopoverCard.jsx","../src/UI/mapLayout/ui/Statistic.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport clsx from 'clsx';\nimport { ChevronDownIcon } from '@fluentui/react-icons';\nimport { FormControlLabel, FormGroup, makeStyles } from '@material-ui/core';\nimport { isEmpty } from 'lodash';\nimport { FluentCheckbox } from '../../inputs/checkbox/FluentCheckbox';\nimport { FluentIconButton } from '../../inputs/buttons/FluentIconButton';\nimport { getChildrenObjectsWithNoChildren } from '../utilities/MapUtilities';\n\nconst useStyles = makeStyles((theme) => ({\n expand: {\n transform: 'rotate(0deg)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n })\n },\n expandOpen: {\n transform: 'rotate(180deg)'\n },\n iconButtonWrapper: {\n borderRadius: 2,\n margin: 'auto 0px'\n },\n expandedList: {\n marginLeft: theme.spacing(4),\n display: 'flex',\n flexDirection: 'column'\n },\n checkboxGroup: {\n display: 'flex',\n justifyContent: 'space-between'\n }\n}));\n\nexport const CheckboxGroup = (props) => {\n const {\n title,\n options,\n onChange,\n defaultExpandedListState = true,\n values,\n valueKey\n } = props;\n const [checkedItems, setCheckedItems] = useState({});\n const [checkedParent, setCheckedParent] = useState(false);\n const [expanded, setExpanded] = useState(defaultExpandedListState);\n const [parentIndeterminate, setParentIndeterminate] = useState(false);\n const classes = useStyles();\n\n useEffect(() => {\n let preCheckedItems = {};\n options?.forEach((option) => {\n if(!!!option?.options || option?.options?.length === 0) {\n preCheckedItems[option.value] = values?.includes(option.value);\n }\n });\n setCheckedItems(preCheckedItems);\n }, [options, values]);\n\n //get a list of child values\n const childrenValues = useMemo(() => {\n return getChildrenObjectsWithNoChildren(options ?? [], 'value');\n }, [options]);\n\n useEffect(() => {\n const checkedAll = isEmpty(checkedItems)\n ? (childrenValues?.length > 0 &&\n childrenValues?.every((val) => values.includes(val))) ??\n false\n : Object.values(checkedItems)?.every((checked) => checked);\n\n setCheckedParent(checkedAll);\n\n setParentIndeterminate(\n !checkedAll &&\n (isEmpty(checkedItems)\n ? childrenValues?.some((val) => values.includes(val))\n : Object.values(checkedItems)?.some((checked) => checked))\n );\n }, [checkedItems, childrenValues, title, values]);\n\n const handleOnClickChildCheckboxOnChange = useCallback(\n (event) => {\n setCheckedItems((preVal) => ({\n ...preVal,\n [event?.target?.name]: event?.target?.checked\n }));\n\n if (!event?.target?.checked) {\n onChange(values?.filter((val) => val !== event?.target?.name));\n } else {\n onChange([...values, event?.target?.name]);\n }\n },\n [onChange, values]\n );\n\n const handleParentCheckboxOnChange = useCallback(\n (event) => {\n setCheckedParent(event?.target?.checked);\n if (!event?.target?.checked) {\n setCheckedItems({});\n\n onChange(\n values?.filter((val) => {\n return !childrenValues?.includes(val);\n })\n );\n }\n\n let newItemToAdd = [];\n childrenValues.forEach((option) => {\n if (event?.target?.checked && option && !values?.includes(option)) {\n newItemToAdd.push(option);\n }\n });\n\n if (newItemToAdd.length > 0) {\n onChange([...values, ...newItemToAdd]);\n }\n setExpanded(true);\n setParentIndeterminate(false);\n },\n [childrenValues, onChange, values]\n );\n\n const childrenList = useMemo(() => {\n if (options?.length > 0) {\n return options?.map((option) => {\n if (option?.options?.length > 0) {\n return (\n <CheckboxGroup\n key={option?.value}\n title={option?.title}\n options={option?.options}\n values={values}\n valueKey={option?.value}\n onChange={onChange}\n />\n );\n }\n\n return (\n <FormControlLabel\n label={option?.title}\n control={\n <FluentCheckbox\n checked={checkedItems[option?.value] || false}\n onChange={handleOnClickChildCheckboxOnChange}\n />\n }\n name={option?.value}\n />\n );\n });\n }\n return [];\n }, [\n checkedItems,\n handleOnClickChildCheckboxOnChange,\n onChange,\n options,\n values\n ]);\n\n return (\n <FormGroup>\n {options?.length > 0 ? (\n <div className={classes.checkboxGroup}>\n <FormControlLabel\n label={title}\n control={\n <FluentCheckbox\n checked={checkedParent}\n indeterminate={parentIndeterminate}\n onChange={handleParentCheckboxOnChange}\n />\n }\n />\n\n <FluentIconButton\n className={clsx(\n classes.expand,\n {\n [classes.expandOpen]: expanded\n },\n classes.iconButtonWrapper\n )}\n onClick={() => setExpanded(!expanded)}\n icon={ChevronDownIcon}\n />\n </div>\n ) : (\n <div>\n <FormControlLabel\n label={title}\n control={\n <FluentCheckbox\n checked={checkedItems[valueKey] || false}\n onChange={handleOnClickChildCheckboxOnChange}\n name={valueKey}\n />\n }\n />\n </div>\n )}\n {expanded && options?.length > 0 && (\n <div className={classes.expandedList}>{childrenList}</div>\n )}\n </FormGroup>\n );\n};\n","import React from 'react';\nimport { CheckboxGroup } from './CheckboxGroup';\n\nexport const CheckboxList = (props) => {\n const { itemGroups, values, onChange } = props;\n\n return (\n <div>\n {itemGroups?.length > 0 &&\n itemGroups?.map((item) => (\n <CheckboxGroup\n title={item?.title}\n options={item?.options}\n values={values}\n onChange={onChange}\n />\n ))}\n </div>\n );\n};\n","import React, { useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n CaretDownSolid8Icon,\n ChromeCloseIcon,\n CompletedIcon,\n ErrorIcon,\n InfoIcon,\n MoreVerticalIcon,\n ViewIcon,\n WarningIcon\n} from '@fluentui/react-icons';\nimport {\n Card,\n CardContent,\n darken,\n IconButton,\n lighten,\n ListItemIcon,\n makeStyles,\n Menu,\n MenuItem,\n Tooltip,\n Typography,\n useTheme\n} from '@material-ui/core';\nimport { Adornment } from '../../components/feedback/Adornment';\nimport { FluentButton } from '../../inputs/buttons/FluentButton';\nimport { FluentIcon } from '../../../utilities/iconLibrary/FluentIcon';\nimport { FluentIconButton } from '../../inputs/buttons/FluentIconButton';\nimport { CompactDataList } from '../../dataDisplay/CompactDataList';\nimport { CompactDataListItem } from '../../dataDisplay/CompactDataListItem';\n\nconst useStyles = makeStyles((theme) => ({\n contentWrapper: {\n display: 'flex',\n height: '100%',\n width: (props) => props?.width ?? '100%'\n },\n titleWrapper: {\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center'\n },\n iconButtonWrapper: {\n borderRadius: 2\n },\n avatar: {\n width: '80px',\n height: '80px'\n },\n iconButtonsWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n primaryButtonContainer: {\n display: 'flex',\n justifyContent: 'flex-end',\n gap: theme.spacing(1)\n },\n actionButton: {\n color: '#FFFFFF'\n },\n fullHeight: {\n height: '100%'\n },\n fullWidth: {\n width: '100%'\n },\n messageWrapper: {\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n padding: theme.spacing(1),\n backgroundColor: (props) =>\n props?.status\n ? lighten(theme.palette[props.status]?.main, 0.9)\n : lighten(theme.palette.info.main, 0.9)\n },\n iconMessage: {\n color: (props) => (props?.status ? theme.palette[props.status]?.main : null)\n },\n message: {\n color: (props) =>\n props?.status ? darken(theme.palette[props.status]?.main, 0.6) : null\n },\n}));\n\nexport const PopoverCard = (props) => {\n const {\n data,\n title,\n listData,\n showAdornment = true,\n status = 'info',\n detailsEvent,\n primaryActions,\n moreIconActions,\n message,\n messageIcon,\n hideMessageIcon = false,\n onClose,\n width\n } = props;\n const [moreIconAnchor, setMoreIconAnchor] = useState(null);\n const [primaryActionAnchor, setPrimaryActionAnchor] = useState(null);\n const { t } = useTranslation();\n const classes = useStyles({ width, status });\n const theme = useTheme();\n\n const handleOnClickMoreIcon = (event) => {\n setMoreIconAnchor(event?.currentTarget);\n };\n\n const handleOnClickPrimaryAction = (event) => {\n setPrimaryActionAnchor(event?.currentTarget);\n };\n\n const headerBackgroundColor = useMemo(() => {\n switch (status) {\n case 'success':\n return lighten(theme.palette.success.main, 0.7);\n case 'error':\n return lighten(theme.palette.error.main, 0.7);\n case 'warning':\n return lighten(theme.palette.warning.main, 0.7);\n default:\n return lighten(theme.palette.info.main, 0.7);\n }\n }, [status, theme]);\n\n const defaultMessageIcon = useMemo(() => {\n switch (status) {\n case 'success':\n return CompletedIcon;\n case 'error':\n return ErrorIcon;\n case 'warning':\n return WarningIcon;\n default:\n return InfoIcon;\n }\n }, [status]);\n\n return (\n <div>\n <div className={classes.contentWrapper}>\n {showAdornment && status && (\n <div>\n <Adornment color={status} />\n </div>\n )}\n <Card className={classes.fullWidth}>\n <CardContent style={{ backgroundColor: headerBackgroundColor }}>\n <div className={classes.iconButtonsWrapper}>\n <div className={classes.titleWrapper}>\n <FluentIconButton onClick={onClose} icon={ChromeCloseIcon} />\n <Typography variant='h6'>{title}</Typography>\n </div>\n <div>\n {moreIconActions?.length > 0 && (\n <>\n <Tooltip title={t('More') ?? ''}>\n <IconButton\n className={classes.iconButtonWrapper}\n onClick={handleOnClickMoreIcon}\n size='small'\n >\n <MoreVerticalIcon />\n </IconButton>\n </Tooltip>\n <Menu\n open={moreIconAnchor ? true : false}\n onClose={() => {\n setMoreIconAnchor(null);\n }}\n anchorEl={moreIconAnchor}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left'\n }}\n >\n {moreIconActions?.map((action) => (\n <MenuItem onClick={() => {action.onClick(data)}}>\n {action?.icon && (\n <ListItemIcon>{action.icon}</ListItemIcon>\n )}\n {action?.name}\n </MenuItem>\n ))}\n </Menu>\n </>\n )}\n </div>\n </div>\n </CardContent>\n {message && (\n <div className={classes.messageWrapper}>\n {!hideMessageIcon && (\n <div className={classes.iconMessage}>\n <FluentIcon component={messageIcon ?? defaultMessageIcon} />\n </div>\n )}\n <div className={classes.message}>{message}</div>\n </div>\n )}\n <CardContent style={{ flex: 1 }}>\n <CompactDataList disableSeparator={false}>\n {listData?.map(({ subject, value }) => {\n return <CompactDataListItem label={subject} value={value} />;\n })}\n </CompactDataList>\n </CardContent>\n <CardContent style={{ flex: 1, paddingTop: 0, paddingBottom: 16 }}>\n <div className={classes.primaryButtonContainer}>\n {detailsEvent && (\n <FluentButton\n variant='outlined'\n endIcon={<ViewIcon />}\n onClick={detailsEvent}\n >\n {t('Details')}\n </FluentButton>\n )}\n\n <div>\n {primaryActions?.length > 0 && (\n <FluentButton\n variant='contained'\n color='secondary'\n endIcon={<CaretDownSolid8Icon />}\n onClick={handleOnClickPrimaryAction}\n className={classes.actionButton}\n >\n {t('Actions')}\n </FluentButton>\n )}\n <Menu\n open={primaryActionAnchor ? true : false}\n onClose={() => {\n setPrimaryActionAnchor(null);\n }}\n anchorEl={primaryActionAnchor}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left'\n }}\n >\n {primaryActions?.map((action) => (\n <MenuItem onClick={() => {action.onClick(data)}}>\n {action?.icon && (\n <ListItemIcon>{action.icon}</ListItemIcon>\n )}\n {action?.name}\n </MenuItem>\n ))}\n </Menu>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport {\n Divider,\n Grid,\n lighten,\n makeStyles,\n Typography,\n} from '@material-ui/core';\nimport { FluentIconButton } from '../../inputs/buttons/FluentIconButton';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n icon: {\n margin: 'auto 5px auto 0',\n padding: theme.spacing(1),\n backgroundColor: (props) =>\n lighten(props?.color ? props.color : theme.palette.info.main, 0.9),\n borderRadius: theme.spacing(3),\n },\n valueContainer: {\n marginRight: theme.spacing(1),\n },\n iconColor: {\n color: (props) => props?.color,\n borderRadius: theme.spacing(3),\n },\n}));\n\nexport const Statistic = (props) => {\n const { icon, value, title, color, onClick, hideDivider = false } = props;\n const classes = useStyles({ color: color });\n\n return (\n <div>\n <Grid container>\n {!hideDivider && (\n <Grid item>\n <Divider orientation=\"vertical\" variant=\"middle\" />\n </Grid>\n )}\n {icon && (\n <Grid item className={classes.icon}>\n <FluentIconButton\n icon={getIconFromName(icon)}\n className={classes.iconColor}\n onClick={onClick}\n />\n </Grid>\n )}\n <Grid item className={classes.valueContainer}>\n <Typography variant=\"h5\">{value}</Typography>\n <Typography variant=\"caption\">{title}</Typography>\n </Grid>\n </Grid>\n </div>\n );\n};"],"mappings":";;;;;;;;;;;;;;;;;AASA,MAAMA,cAAY,YAAY,WAAW;CACvC,QAAQ;EACN,WAAW;EACX,YAAY,MAAM,YAAY,OAAO,aAAa,EAChD,UAAU,MAAM,YAAY,SAAS,UACtC,CAAC;EACH;CACD,YAAY,EACV,WAAW,kBACZ;CACD,mBAAmB;EACjB,cAAc;EACd,QAAQ;EACT;CACD,cAAc;EACZ,YAAY,MAAM,QAAQ,EAAE;EAC5B,SAAS;EACT,eAAe;EAChB;CACD,eAAe;EACb,SAAS;EACT,gBAAgB;EACjB;CACF,EAAE;AAEH,MAAa,iBAAiB,UAAU;CACtC,MAAM,EACJ,OACA,SACA,UACA,2BAA2B,MAC3B,QACA,aACE;CACJ,MAAM,CAAC,cAAc,mBAAmB,SAAS,EAAE,CAAC;CACpD,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;CACzD,MAAM,CAAC,UAAU,eAAe,SAAS,yBAAyB;CAClE,MAAM,CAAC,qBAAqB,0BAA0B,SAAS,MAAM;CACrE,MAAM,UAAUA,aAAW;AAE3B,iBAAgB;EACZ,IAAI,kBAAkB,EAAE;AACxB,WAAS,SAAS,WAAW;AAC3B,OAAG,CAAC,CAAC,CAAC,QAAQ,WAAW,QAAQ,SAAS,WAAW,EACnD,iBAAgB,OAAO,SAAS,QAAQ,SAAS,OAAO,MAAM;IAEhE;AACF,kBAAgB,gBAAgB;IACjC,CAAC,SAAS,OAAO,CAAC;CAGrB,MAAM,iBAAiB,cAAc;AACnC,SAAO,iCAAiC,WAAW,EAAE,EAAE,QAAQ;IAC9D,CAAC,QAAQ,CAAC;AAEb,iBAAgB;EACd,MAAM,aAAa,QAAQ,aAAa,IACnC,gBAAgB,SAAS,KACxB,gBAAgB,OAAO,QAAQ,OAAO,SAAS,IAAI,CAAC,KACtD,QACA,OAAO,OAAO,aAAa,EAAE,OAAO,YAAY,QAAQ;AAE5D,mBAAiB,WAAW;AAE5B,yBACE,CAAC,eACE,QAAQ,aAAa,GAClB,gBAAgB,MAAM,QAAQ,OAAO,SAAS,IAAI,CAAC,GACnD,OAAO,OAAO,aAAa,EAAE,MAAM,YAAY,QAAQ,EAC9D;IACA;EAAC;EAAc;EAAgB;EAAO;EAAO,CAAC;CAEjD,MAAM,qCAAqC,aACxC,UAAU;AACT,mBAAiB,YAAY;GAC3B,GAAG;IACF,OAAO,QAAQ,OAAO,OAAO,QAAQ;GACvC,EAAE;AAEH,MAAI,CAAC,OAAO,QAAQ,QAClB,UAAS,QAAQ,QAAQ,QAAQ,QAAQ,OAAO,QAAQ,KAAK,CAAC;MAE9D,UAAS,CAAC,GAAG,QAAQ,OAAO,QAAQ,KAAK,CAAC;IAG9C,CAAC,UAAU,OAAO,CACnB;CAED,MAAM,+BAA+B,aAClC,UAAU;AACT,mBAAiB,OAAO,QAAQ,QAAQ;AACxC,MAAI,CAAC,OAAO,QAAQ,SAAS;AAC3B,mBAAgB,EAAE,CAAC;AAEnB,YACE,QAAQ,QAAQ,QAAQ;AACtB,WAAO,CAAC,gBAAgB,SAAS,IAAI;KACrC,CACH;;EAGH,IAAI,eAAe,EAAE;AACrB,iBAAe,SAAS,WAAW;AACjC,OAAI,OAAO,QAAQ,WAAW,UAAU,CAAC,QAAQ,SAAS,OAAO,CAC/D,cAAa,KAAK,OAAO;IAE3B;AAEF,MAAI,aAAa,SAAS,EACxB,UAAS,CAAC,GAAG,QAAQ,GAAG,aAAa,CAAC;AAExC,cAAY,KAAK;AACjB,yBAAuB,MAAM;IAE/B;EAAC;EAAgB;EAAU;EAAO,CACnC;CAED,MAAM,eAAe,cAAc;AACjC,MAAI,SAAS,SAAS,EACpB,QAAO,SAAS,KAAK,WAAW;AAC9B,OAAI,QAAQ,SAAS,SAAS,EAC5B,QACE,oCAAC;IACC,KAAK,QAAQ;IACb,OAAO,QAAQ;IACf,SAAS,QAAQ;IACT;IACR,UAAU,QAAQ;IACR;KACV;AAIN,UACE,oCAAC;IACC,OAAO,QAAQ;IACf,SACE,oCAAC;KACC,SAAS,aAAa,QAAQ,UAAU;KACxC,UAAU;MACV;IAEJ,MAAM,QAAQ;KACd;IAEJ;AAEJ,SAAO,EAAE;IACR;EACD;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,oCAAC,iBACE,SAAS,SAAS,IACjB,oCAAC,SAAI,WAAW,QAAQ,iBACtB,oCAAC;EACC,OAAO;EACP,SACE,oCAAC;GACC,SAAS;GACT,eAAe;GACf,UAAU;IACV;GAEJ,EAEF,oCAAC;EACC,WAAW,KACT,QAAQ,QACR,GACG,QAAQ,aAAa,UACvB,EACD,QAAQ,kBACT;EACD,eAAe,YAAY,CAAC,SAAS;EACrC,MAAM;GACN,CACE,GAEN,oCAAC,aACC,oCAAC;EACC,OAAO;EACP,SACE,oCAAC;GACC,SAAS,aAAa,aAAa;GACnC,UAAU;GACV,MAAM;IACN;GAEJ,CACE,EAEP,YAAY,SAAS,SAAS,KAC7B,oCAAC,SAAI,WAAW,QAAQ,gBAAe,aAAmB,CAElD;;;;;AC9MhB,MAAa,gBAAgB,UAAU;CACrC,MAAM,EAAE,YAAY,QAAQ,aAAa;AAEzC,QACE,oCAAC,aACE,YAAY,SAAS,KACpB,YAAY,KAAK,SACf,oCAAC;EACC,OAAO,MAAM;EACb,SAAS,MAAM;EACP;EACE;GACV,CACF,CACA;;;;;ACgBV,MAAMC,cAAY,YAAY,WAAW;CACvC,gBAAgB;EACd,SAAS;EACT,QAAQ;EACR,QAAQ,UAAU,OAAO,SAAS;EACnC;CACD,cAAc;EACZ,SAAS;EACT,KAAK,MAAM,QAAQ,EAAE;EACrB,YAAY;EACb;CACD,mBAAmB,EACjB,cAAc,GACf;CACD,QAAQ;EACN,OAAO;EACP,QAAQ;EACT;CACD,oBAAoB;EAClB,SAAS;EACT,gBAAgB;EAChB,YAAY;EACb;CACD,wBAAwB;EACtB,SAAS;EACT,gBAAgB;EAChB,KAAK,MAAM,QAAQ,EAAE;EACtB;CACD,cAAc,EACZ,OAAO,WACR;CACD,YAAY,EACV,QAAQ,QACT;CACD,WAAW,EACT,OAAO,QACR;CACD,gBAAgB;EACd,SAAS;EACT,KAAK,MAAM,QAAQ,EAAE;EACrB,YAAY;EACZ,SAAS,MAAM,QAAQ,EAAE;EACzB,kBAAkB,UAChB,OAAO,SACH,QAAQ,MAAM,QAAQ,MAAM,SAAS,MAAM,GAAI,GAC/C,QAAQ,MAAM,QAAQ,KAAK,MAAM,GAAI;EAC5C;CACD,aAAa,EACX,QAAQ,UAAW,OAAO,SAAS,MAAM,QAAQ,MAAM,SAAS,OAAO,MACxE;CACD,SAAS,EACP,QAAQ,UACN,OAAO,SAAS,OAAO,MAAM,QAAQ,MAAM,SAAS,MAAM,GAAI,GAAG,MACpE;CACF,EAAE;AAEH,MAAa,eAAe,UAAU;CACpC,MAAM,EACJ,MACA,OACA,UACA,gBAAgB,MAChB,SAAS,QACT,cACA,gBACA,iBACA,SACA,aACA,kBAAkB,OAClB,SACA,UACE;CACJ,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,KAAK;CAC1D,MAAM,CAAC,qBAAqB,0BAA0B,SAAS,KAAK;CACpE,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,UAAUA,YAAU;EAAE;EAAO;EAAQ,CAAC;CAC5C,MAAM,QAAQ,UAAU;CAExB,MAAM,yBAAyB,UAAU;AACvC,oBAAkB,OAAO,cAAc;;CAGzC,MAAM,8BAA8B,UAAU;AAC5C,yBAAuB,OAAO,cAAc;;CAG9C,MAAM,wBAAwB,cAAc;AAC1C,UAAQ,QAAR;GACE,KAAK,UACH,QAAO,QAAQ,MAAM,QAAQ,QAAQ,MAAM,GAAI;GACjD,KAAK,QACH,QAAO,QAAQ,MAAM,QAAQ,MAAM,MAAM,GAAI;GAC/C,KAAK,UACH,QAAO,QAAQ,MAAM,QAAQ,QAAQ,MAAM,GAAI;GACjD,QACE,QAAO,QAAQ,MAAM,QAAQ,KAAK,MAAM,GAAI;;IAE/C,CAAC,QAAQ,MAAM,CAAC;CAEnB,MAAM,qBAAqB,cAAc;AACvC,UAAQ,QAAR;GACE,KAAK,UACH,QAAO;GACT,KAAK,QACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,QACE,QAAO;;IAEV,CAAC,OAAO,CAAC;AAEZ,QACE,oCAAC,aACC,oCAAC,SAAI,WAAW,QAAQ,kBACrB,iBAAiB,UAChB,oCAAC,aACC,oCAAC,aAAU,OAAO,SAAU,CACxB,EAER,oCAAC,QAAK,WAAW,QAAQ,aACvB,oCAAC,eAAY,OAAO,EAAE,iBAAiB,uBAAuB,IAC5D,oCAAC,SAAI,WAAW,QAAQ,sBACtB,oCAAC,SAAI,WAAW,QAAQ,gBACtB,oCAAC;EAAiB,SAAS;EAAS,MAAM;GAAmB,EAC7D,oCAAC,cAAW,SAAQ,QAAM,MAAmB,CACzC,EACN,oCAAC,aACE,iBAAiB,SAAS,KACzB,0DACE,oCAAC,WAAQ,OAAO,EAAE,OAAO,IAAI,MAC3B,oCAAC;EACC,WAAW,QAAQ;EACnB,SAAS;EACT,MAAK;IAEL,oCAAC,uBAAmB,CACT,CACL,EACV,oCAAC;EACC,MAAM,iBAAiB,OAAO;EAC9B,eAAe;AACb,qBAAkB,KAAK;;EAEzB,UAAU;EACV,cAAc;GACZ,UAAU;GACV,YAAY;GACb;EACD,iBAAiB;GACf,UAAU;GACV,YAAY;GACb;IAEA,iBAAiB,KAAK,WACrB,oCAAC,YAAS,eAAe;AAAC,SAAO,QAAQ,KAAK;MAC3C,QAAQ,QACP,oCAAC,oBAAc,OAAO,KAAoB,EAE3C,QAAQ,KACA,CACX,CACG,CACN,CAED,CACF,CACM,EACb,WACC,oCAAC,SAAI,WAAW,QAAQ,kBACrB,CAAC,mBACA,oCAAC,SAAI,WAAW,QAAQ,eACtB,oCAAC,cAAW,WAAW,eAAe,qBAAsB,CACxD,EAER,oCAAC,SAAI,WAAW,QAAQ,WAAU,QAAc,CAC5C,EAER,oCAAC,eAAY,OAAO,EAAE,MAAM,GAAG,IAC7B,oCAAC,mBAAgB,kBAAkB,SAChC,UAAU,KAAK,EAAE,SAAS,YAAY;AACrC,SAAO,oCAAC;GAAoB,OAAO;GAAgB;IAAS;GAC5D,CACc,CACN,EACd,oCAAC,eAAY,OAAO;EAAE,MAAM;EAAG,YAAY;EAAG,eAAe;EAAI,IAC/D,oCAAC,SAAI,WAAW,QAAQ,0BACrB,gBACC,oCAAC;EACC,SAAQ;EACR,SAAS,oCAAC,eAAW;EACrB,SAAS;IAER,EAAE,UAAU,CACA,EAGjB,oCAAC,aACE,gBAAgB,SAAS,KACxB,oCAAC;EACC,SAAQ;EACR,OAAM;EACN,SAAS,oCAAC,0BAAsB;EAChC,SAAS;EACT,WAAW,QAAQ;IAElB,EAAE,UAAU,CACA,EAEjB,oCAAC;EACC,MAAM,sBAAsB,OAAO;EACnC,eAAe;AACb,0BAAuB,KAAK;;EAE9B,UAAU;EACV,cAAc;GACZ,UAAU;GACV,YAAY;GACb;EACD,iBAAiB;GACf,UAAU;GACV,YAAY;GACb;IAEA,gBAAgB,KAAK,WACpB,oCAAC,YAAS,eAAe;AAAC,SAAO,QAAQ,KAAK;MAC3C,QAAQ,QACP,oCAAC,oBAAc,OAAO,KAAoB,EAE3C,QAAQ,KACA,CACX,CACG,CACH,CACF,CACM,CACT,CACH,CACF;;;;;ACpQV,MAAM,YAAY,YAAW,WAAU;CACrC,MAAM;EACJ,QAAQ;EACR,SAAS,MAAM,QAAQ,EAAE;EACzB,kBAAkB,UAChB,QAAQ,OAAO,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,MAAM,GAAI;EACpE,cAAc,MAAM,QAAQ,EAAE;EAC/B;CACD,gBAAgB,EACd,aAAa,MAAM,QAAQ,EAAE,EAC9B;CACD,WAAW;EACT,QAAQ,UAAU,OAAO;EACzB,cAAc,MAAM,QAAQ,EAAE;EAC/B;CACF,EAAE;AAEH,MAAa,aAAa,UAAU;CAClC,MAAM,EAAE,MAAM,OAAO,OAAO,OAAO,SAAS,cAAc,UAAU;CACpE,MAAM,UAAU,UAAU,EAAS,OAAO,CAAC;AAE3C,QACE,oCAAC,aACC,oCAAC,QAAK,mBACH,CAAC,eACA,oCAAC,QAAK,cACJ,oCAAC;EAAQ,aAAY;EAAW,SAAQ;GAAW,CAC9C,EAER,QACC,oCAAC;EAAK;EAAK,WAAW,QAAQ;IAC5B,oCAAC;EACC,MAAM,gBAAgB,KAAK;EAC3B,WAAW,QAAQ;EACV;GACT,CACG,EAET,oCAAC;EAAK;EAAK,WAAW,QAAQ;IAC5B,oCAAC,cAAW,SAAQ,QAAM,MAAmB,EAC7C,oCAAC,cAAW,SAAQ,aAAW,MAAmB,CAC7C,CACF,CACH"}
|
|
1
|
+
{"version":3,"file":"Statistic-DWW8GxYI.js","names":["useStyles","useStyles"],"sources":["../src/UI/mapLayout/ui/CheckboxGroup.jsx","../src/UI/mapLayout/ui/CheckboxList.jsx","../src/UI/mapLayout/ui/PopoverCard.jsx","../src/UI/mapLayout/ui/Statistic.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport clsx from 'clsx';\nimport { ChevronDownIcon } from '@fluentui/react-icons';\nimport { FormControlLabel, FormGroup, makeStyles } from '@material-ui/core';\nimport { isEmpty } from 'lodash';\nimport { FluentCheckbox } from '../../inputs/checkbox/FluentCheckbox';\nimport { FluentIconButton } from '../../inputs/buttons/FluentIconButton';\nimport { getChildrenObjectsWithNoChildren } from '../utilities/MapUtilities';\n\nconst useStyles = makeStyles((theme) => ({\n expand: {\n transform: 'rotate(0deg)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n })\n },\n expandOpen: {\n transform: 'rotate(180deg)'\n },\n iconButtonWrapper: {\n borderRadius: 2,\n margin: 'auto 0px'\n },\n expandedList: {\n marginLeft: theme.spacing(4),\n display: 'flex',\n flexDirection: 'column'\n },\n checkboxGroup: {\n display: 'flex',\n justifyContent: 'space-between'\n }\n}));\n\nexport const CheckboxGroup = (props) => {\n const {\n title,\n options,\n onChange,\n defaultExpandedListState = true,\n values,\n valueKey\n } = props;\n const [checkedItems, setCheckedItems] = useState({});\n const [checkedParent, setCheckedParent] = useState(false);\n const [expanded, setExpanded] = useState(defaultExpandedListState);\n const [parentIndeterminate, setParentIndeterminate] = useState(false);\n const classes = useStyles();\n\n useEffect(() => {\n let preCheckedItems = {};\n options?.forEach((option) => {\n if(!!!option?.options || option?.options?.length === 0) {\n preCheckedItems[option.value] = values?.includes(option.value);\n }\n });\n setCheckedItems(preCheckedItems);\n }, [options, values]);\n\n //get a list of child values\n const childrenValues = useMemo(() => {\n return getChildrenObjectsWithNoChildren(options ?? [], 'value');\n }, [options]);\n\n useEffect(() => {\n const checkedAll = isEmpty(checkedItems)\n ? (childrenValues?.length > 0 &&\n childrenValues?.every((val) => values.includes(val))) ??\n false\n : Object.values(checkedItems)?.every((checked) => checked);\n\n setCheckedParent(checkedAll);\n\n setParentIndeterminate(\n !checkedAll &&\n (isEmpty(checkedItems)\n ? childrenValues?.some((val) => values.includes(val))\n : Object.values(checkedItems)?.some((checked) => checked))\n );\n }, [checkedItems, childrenValues, title, values]);\n\n const handleOnClickChildCheckboxOnChange = useCallback(\n (event) => {\n setCheckedItems((preVal) => ({\n ...preVal,\n [event?.target?.name]: event?.target?.checked\n }));\n\n if (!event?.target?.checked) {\n onChange(values?.filter((val) => val !== event?.target?.name));\n } else {\n onChange([...values, event?.target?.name]);\n }\n },\n [onChange, values]\n );\n\n const handleParentCheckboxOnChange = useCallback(\n (event) => {\n setCheckedParent(event?.target?.checked);\n if (!event?.target?.checked) {\n setCheckedItems({});\n\n onChange(\n values?.filter((val) => {\n return !childrenValues?.includes(val);\n })\n );\n }\n\n let newItemToAdd = [];\n childrenValues.forEach((option) => {\n if (event?.target?.checked && option && !values?.includes(option)) {\n newItemToAdd.push(option);\n }\n });\n\n if (newItemToAdd.length > 0) {\n onChange([...values, ...newItemToAdd]);\n }\n setExpanded(true);\n setParentIndeterminate(false);\n },\n [childrenValues, onChange, values]\n );\n\n const childrenList = useMemo(() => {\n if (options?.length > 0) {\n return options?.map((option) => {\n if (option?.options?.length > 0) {\n return (\n <CheckboxGroup\n key={option?.value}\n title={option?.title}\n options={option?.options}\n values={values}\n valueKey={option?.value}\n onChange={onChange}\n />\n );\n }\n\n return (\n <FormControlLabel\n label={option?.title}\n control={\n <FluentCheckbox\n checked={checkedItems[option?.value] || false}\n onChange={handleOnClickChildCheckboxOnChange}\n />\n }\n name={option?.value}\n />\n );\n });\n }\n return [];\n }, [\n checkedItems,\n handleOnClickChildCheckboxOnChange,\n onChange,\n options,\n values\n ]);\n\n return (\n <FormGroup>\n {options?.length > 0 ? (\n <div className={classes.checkboxGroup}>\n <FormControlLabel\n label={title}\n control={\n <FluentCheckbox\n checked={checkedParent}\n indeterminate={parentIndeterminate}\n onChange={handleParentCheckboxOnChange}\n />\n }\n />\n\n <FluentIconButton\n className={clsx(\n classes.expand,\n {\n [classes.expandOpen]: expanded\n },\n classes.iconButtonWrapper\n )}\n onClick={() => setExpanded(!expanded)}\n icon={ChevronDownIcon}\n />\n </div>\n ) : (\n <div>\n <FormControlLabel\n label={title}\n control={\n <FluentCheckbox\n checked={checkedItems[valueKey] || false}\n onChange={handleOnClickChildCheckboxOnChange}\n name={valueKey}\n />\n }\n />\n </div>\n )}\n {expanded && options?.length > 0 && (\n <div className={classes.expandedList}>{childrenList}</div>\n )}\n </FormGroup>\n );\n};\n","import React from 'react';\nimport { CheckboxGroup } from './CheckboxGroup';\n\nexport const CheckboxList = (props) => {\n const { itemGroups, values, onChange } = props;\n\n return (\n <div>\n {itemGroups?.length > 0 &&\n itemGroups?.map((item) => (\n <CheckboxGroup\n title={item?.title}\n options={item?.options}\n values={values}\n onChange={onChange}\n />\n ))}\n </div>\n );\n};\n","import React, { useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n CaretDownSolid8Icon,\n ChromeCloseIcon,\n CompletedIcon,\n ErrorIcon,\n InfoIcon,\n MoreVerticalIcon,\n ViewIcon,\n WarningIcon\n} from '@fluentui/react-icons';\nimport {\n Card,\n CardContent,\n darken,\n IconButton,\n lighten,\n ListItemIcon,\n makeStyles,\n Menu,\n MenuItem,\n Tooltip,\n Typography,\n useTheme\n} from '@material-ui/core';\nimport { Adornment } from '../../components/feedback/Adornment';\nimport { FluentButton } from '../../inputs/buttons/FluentButton';\nimport { FluentIcon } from '../../../utilities/iconLibrary/FluentIcon';\nimport { FluentIconButton } from '../../inputs/buttons/FluentIconButton';\nimport { CompactDataList } from '../../dataDisplay/CompactDataList';\nimport { CompactDataListItem } from '../../dataDisplay/CompactDataListItem';\n\nconst useStyles = makeStyles((theme) => ({\n contentWrapper: {\n display: 'flex',\n height: '100%',\n width: (props) => props?.width ?? '100%'\n },\n titleWrapper: {\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center'\n },\n iconButtonWrapper: {\n borderRadius: 2\n },\n avatar: {\n width: '80px',\n height: '80px'\n },\n iconButtonsWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n primaryButtonContainer: {\n display: 'flex',\n justifyContent: 'flex-end',\n gap: theme.spacing(1)\n },\n actionButton: {\n color: '#FFFFFF'\n },\n fullHeight: {\n height: '100%'\n },\n fullWidth: {\n width: '100%'\n },\n messageWrapper: {\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n padding: theme.spacing(1),\n backgroundColor: (props) =>\n props?.status\n ? lighten(theme.palette[props.status]?.main, 0.9)\n : lighten(theme.palette.info.main, 0.9)\n },\n iconMessage: {\n color: (props) => (props?.status ? theme.palette[props.status]?.main : null)\n },\n message: {\n color: (props) =>\n props?.status ? darken(theme.palette[props.status]?.main, 0.6) : null\n },\n}));\n\nexport const PopoverCard = (props) => {\n const {\n data,\n title,\n listData,\n showAdornment = true,\n status = 'info',\n detailsEvent,\n primaryActions,\n moreIconActions,\n message,\n messageIcon,\n hideMessageIcon = false,\n onClose,\n width\n } = props;\n const [moreIconAnchor, setMoreIconAnchor] = useState(null);\n const [primaryActionAnchor, setPrimaryActionAnchor] = useState(null);\n const { t } = useTranslation();\n const classes = useStyles({ width, status });\n const theme = useTheme();\n\n const handleOnClickMoreIcon = (event) => {\n setMoreIconAnchor(event?.currentTarget);\n };\n\n const handleOnClickPrimaryAction = (event) => {\n setPrimaryActionAnchor(event?.currentTarget);\n };\n\n const headerBackgroundColor = useMemo(() => {\n switch (status) {\n case 'success':\n return lighten(theme.palette.success.main, 0.7);\n case 'error':\n return lighten(theme.palette.error.main, 0.7);\n case 'warning':\n return lighten(theme.palette.warning.main, 0.7);\n default:\n return lighten(theme.palette.info.main, 0.7);\n }\n }, [status, theme]);\n\n const defaultMessageIcon = useMemo(() => {\n switch (status) {\n case 'success':\n return CompletedIcon;\n case 'error':\n return ErrorIcon;\n case 'warning':\n return WarningIcon;\n default:\n return InfoIcon;\n }\n }, [status]);\n\n return (\n <div>\n <div className={classes.contentWrapper}>\n {showAdornment && status && (\n <div>\n <Adornment color={status} />\n </div>\n )}\n <Card className={classes.fullWidth}>\n <CardContent style={{ backgroundColor: headerBackgroundColor }}>\n <div className={classes.iconButtonsWrapper}>\n <div className={classes.titleWrapper}>\n <FluentIconButton onClick={onClose} icon={ChromeCloseIcon} />\n <Typography variant='h6'>{title}</Typography>\n </div>\n <div>\n {moreIconActions?.length > 0 && (\n <>\n <Tooltip title={t('More') ?? ''}>\n <IconButton\n className={classes.iconButtonWrapper}\n onClick={handleOnClickMoreIcon}\n size='small'\n >\n <MoreVerticalIcon />\n </IconButton>\n </Tooltip>\n <Menu\n open={moreIconAnchor ? true : false}\n onClose={() => {\n setMoreIconAnchor(null);\n }}\n anchorEl={moreIconAnchor}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left'\n }}\n >\n {moreIconActions?.map((action) => (\n <MenuItem onClick={() => {action.onClick(data)}}>\n {action?.icon && (\n <ListItemIcon>{action.icon}</ListItemIcon>\n )}\n {action?.name}\n </MenuItem>\n ))}\n </Menu>\n </>\n )}\n </div>\n </div>\n </CardContent>\n {message && (\n <div className={classes.messageWrapper}>\n {!hideMessageIcon && (\n <div className={classes.iconMessage}>\n <FluentIcon component={messageIcon ?? defaultMessageIcon} />\n </div>\n )}\n <div className={classes.message}>{message}</div>\n </div>\n )}\n <CardContent style={{ flex: 1 }}>\n <CompactDataList disableSeparator={false}>\n {listData?.map(({ subject, value }) => {\n return <CompactDataListItem label={subject} value={value} />;\n })}\n </CompactDataList>\n </CardContent>\n <CardContent style={{ flex: 1, paddingTop: 0, paddingBottom: 16 }}>\n <div className={classes.primaryButtonContainer}>\n {detailsEvent && (\n <FluentButton\n variant='outlined'\n endIcon={<ViewIcon />}\n onClick={detailsEvent}\n >\n {t('Details')}\n </FluentButton>\n )}\n\n <div>\n {primaryActions?.length > 0 && (\n <FluentButton\n variant='contained'\n color='secondary'\n endIcon={<CaretDownSolid8Icon />}\n onClick={handleOnClickPrimaryAction}\n className={classes.actionButton}\n >\n {t('Actions')}\n </FluentButton>\n )}\n <Menu\n open={primaryActionAnchor ? true : false}\n onClose={() => {\n setPrimaryActionAnchor(null);\n }}\n anchorEl={primaryActionAnchor}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left'\n }}\n >\n {primaryActions?.map((action) => (\n <MenuItem onClick={() => {action.onClick(data)}}>\n {action?.icon && (\n <ListItemIcon>{action.icon}</ListItemIcon>\n )}\n {action?.name}\n </MenuItem>\n ))}\n </Menu>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport {\n Divider,\n Grid,\n lighten,\n makeStyles,\n Typography,\n} from '@material-ui/core';\nimport { FluentIconButton } from '../../inputs/buttons/FluentIconButton';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n icon: {\n margin: 'auto 5px auto 0',\n padding: theme.spacing(1),\n backgroundColor: (props) =>\n lighten(props?.color ? props.color : theme.palette.info.main, 0.9),\n borderRadius: theme.spacing(3),\n },\n valueContainer: {\n marginRight: theme.spacing(1),\n },\n iconColor: {\n color: (props) => props?.color,\n borderRadius: theme.spacing(3),\n },\n}));\n\nexport const Statistic = (props) => {\n const { icon, value, title, color, onClick, hideDivider = false } = props;\n const classes = useStyles({ color: color });\n\n return (\n <div>\n <Grid container>\n {!hideDivider && (\n <Grid item>\n <Divider orientation=\"vertical\" variant=\"middle\" />\n </Grid>\n )}\n {icon && (\n <Grid item className={classes.icon}>\n <FluentIconButton\n icon={getIconFromName(icon)}\n className={classes.iconColor}\n onClick={onClick}\n />\n </Grid>\n )}\n <Grid item className={classes.valueContainer}>\n <Typography variant=\"h5\">{value}</Typography>\n <Typography variant=\"caption\">{title}</Typography>\n </Grid>\n </Grid>\n </div>\n );\n};"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { n as SideSheet } from "./SideSheet-CDXVa_Kr.js";
|
|
|
10
10
|
import { t as AmbientCard } from "./AmbientCard-DhAiVDYD.js";
|
|
11
11
|
import { t as LinearProgress$1 } from "./LinearProgress-CpJeIaEP.js";
|
|
12
12
|
import { t as FluentTextField } from "./FluentTextField-WfFk-koa.js";
|
|
13
|
-
import { t as DragDropFileUpload } from "./DragDropFileUpload-
|
|
13
|
+
import { t as DragDropFileUpload } from "./DragDropFileUpload-C0Jho_xA.js";
|
|
14
14
|
import React, { useCallback, useEffect, useState } from "react";
|
|
15
15
|
import { Button } from "@material-ui/core";
|
|
16
16
|
import { useSnackbar } from "notistack";
|
|
@@ -373,4 +373,4 @@ var SupportCaseSideSheet_default = SupportCaseSideSheet;
|
|
|
373
373
|
|
|
374
374
|
//#endregion
|
|
375
375
|
export { SupportCaseSideSheet_default as n, SupportCaseSideSheet as t };
|
|
376
|
-
//# sourceMappingURL=SupportCaseSideSheet-
|
|
376
|
+
//# sourceMappingURL=SupportCaseSideSheet-6P8CVloZ.js.map
|