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":"UdpVerticalManagementSidesheet-DGL4dyia.js","names":["products","IconLibrary"],"sources":["../src/udp/pages/UdpVerticalManagementSidesheet/UdpVerticalManagementSidesheet.jsx"],"sourcesContent":["import React, {\n useCallback,\n useState,\n useMemo,\n useRef,\n useEffect,\n useLayoutEffect\n} from 'react';\nimport {\n TextField,\n Button,\n LinearProgress,\n IconButton\n} from '@material-ui/core';\nimport { Form } from '../../../utilities/form/Form';\nimport { Field } from '../../../utilities/form/Field';\nimport { SubmitButton } from '../../../utilities/form/SubmitButton';\nimport { SideSheet } from '../../../UI/surfaces/SideSheet';\nimport { AmbientGridTemplate } from '../../../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\nimport { useActionState } from '../../../hooks/useActions';\nimport { useTranslation } from 'react-i18next';\nimport { ActionsRenderer } from '../../../UI/templates/ui/renderers/ActionsRenderer';\nimport { FluentCheckbox } from '../../../UI/inputs/checkbox/FluentCheckbox';\nimport { UnityFluentIcon } from '../../../utilities/iconLibrary/UnityFluentIcon';\nimport {\n findAllParentIds,\n getIconFromName\n} from '../../../utilities/tree/TreeUtilities';\nimport { getUnityIconFromName } from '../../../utilities/iconLibrary/UnityIconLibrary';\nimport IconLibrary from '../../../utilities/iconLibrary/IconLibrary';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { FormButtons } from '../../../utilities/form';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { ConfigService } from '../../../configService';\n\nconst UdpVerticalManagementSidesheet = (props) => {\n const {\n selectedVertical,\n environment,\n associatedProducts,\n isEdit,\n deleteVertical,\n open,\n selectedCatalog,\n closeSidesheet,\n onSubmit,\n ...sheetProps\n } = props;\n const { t } = useTranslation();\n const [loading, setLoading] = useState(false);\n const actionState = useActionState();\n const [displayedIcon, setDisplayedIcon] = useState({\n name: 'StatusCircleQuestionMarkIcon',\n color: '',\n type: ''\n });\n const [products, setProducts] = useState([]);\n const [openIconLibrary, setOpenIconLibrary] = useState(false);\n\n const [selectedProductIds, setSelectedProductIds] = useState([]);\n const [checkboxValues, setCheckboxValues] = useState([]);\n const [submitButtonDisabled, setSubmitButtonDisabled] = useState(true);\n const selectedProductIdsRef = useRef();\n selectedProductIdsRef.current = selectedProductIds;\n const displayedIconRef = useRef();\n displayedIconRef.current = displayedIcon;\n const selectedVerticalRef = useRef();\n selectedVerticalRef.current = selectedVertical;\n const formRef = useRef();\n const nameRef = useRef();\n\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const CheckBoxRenderer = ({ onChange, value, id, defaultChecked }) => {\n const isAssociatedToVertical = useCallback(\n (productId) => {\n if (!isEdit) return false;\n for (let product of associatedProducts) {\n if (\n product.productId === productId &&\n product.verticalId === selectedVerticalRef.current.verticalId\n ) {\n return true;\n }\n }\n // console.log(selectedVerticalRef.current.icon)\n const icon = getIconFromName(selectedVerticalRef.current.icon);\n // console.log(\"🚀 ~ file: UdpVerticalManagementSidesheet.jsx:81 ~ isAssociatedToVertical ~ icon:\", icon)\n\n return false;\n },\n [associatedProducts, selectedVerticalRef]\n );\n\n const handleCheckboxChange = (e) => {\n if (e.target.checked) {\n setSelectedProductIds((prevState) => [...prevState, id]);\n } else {\n setSelectedProductIds((prevState) =>\n prevState.filter((item) => item !== id)\n );\n }\n };\n\n return (\n <FluentCheckbox\n // checked={value}\n defaultChecked={isAssociatedToVertical(id)}\n onChange={handleCheckboxChange}\n aria='column-active'\n />\n );\n };\n\n // const actionList = useMemo(\n // () => [\n // {\n // id: 1, // Must be unique\n // title: t('Edit'),\n // icon: EditIcon,\n // onClick: handleEditPage,\n // disabled: false\n // },\n // {\n // id: 2, // Must be unique\n // title: t('Delete'),\n // icon: DeleteIcon,\n // onClick: handleDelete,\n // disabled: false\n // }\n // ],\n // [t, handleEditPage, handleDelete]\n // );\n\n const gridOptions = useMemo(\n () => ({\n frameworkComponents: {\n actionsRenderer: ActionsRenderer,\n checkboxRenderer: CheckBoxRenderer\n },\n columnDefs: [\n {\n headerName: '',\n field: 'select',\n cellRenderer: 'checkboxRenderer',\n cellRendererParams: (params) => ({\n // onChange: onChange,\n // value: checked[params.data.productId] || false,\n id: params.data.productId\n })\n },\n {\n headerName: t('Product Name'),\n field: 'name',\n minWidth: 200\n }\n ]\n }),\n [isEdit, selectedVertical, associatedProducts]\n );\n\n const executeMutation = useCallback(\n async (endpoint, method, data) =>\n apiMutate(\n ConfigService.uemV1ApiUrl,\n endpoint,\n {\n method: method || 'post'\n },\n data\n ),\n []\n );\n\n const getProducts = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation('uem', 'post', data);\n if (response?.status === 200) {\n setProducts(response?.data);\n }\n setLoading(false);\n },\n [executeMutation, setProducts]\n );\n\n const createVertical = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation(\n 'vertical/uemCreate',\n 'post',\n data\n );\n if (response?.status === 201) {\n closeSidesheet();\n handleSuccessSnackbar('Vertical Created Successfully');\n } else {\n handleErrorSnackbar('Something went wrong');\n }\n setLoading(false);\n },\n [executeMutation]\n );\n\n const updateVertical = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation(\n `vertical/${selectedVertical.verticalId}/uemUpdate`,\n 'put',\n data\n );\n if (response?.status === 204) {\n closeSidesheet();\n handleSuccessSnackbar('Vertical Updated Successfully');\n } else {\n handleErrorSnackbar('Something went wrong');\n }\n setLoading(false);\n },\n [selectedVertical, executeMutation]\n );\n\n const handleSubmit = useCallback(\n (values) => {\n setLoading(true);\n const products = selectedProductIdsRef.current.map((productId) => ({\n productId\n }));\n\n !isEdit\n ? createVertical({\n data: {\n name: values.name,\n products: products,\n icon: displayedIconRef?.current.name,\n EnvironmentId: environment.environmentId,\n apiPath: 'api/v1/vertical/uemCreate'\n }\n })\n : updateVertical({\n data: {\n name: values.name,\n products: products,\n icon: displayedIconRef?.current.name,\n EnvironmentId: environment.environmentId,\n apiPath: `api/v1/vertical/${selectedVertical.verticalId}/uemUpdate`\n }\n });\n },\n [\n isEdit,\n createVertical,\n environment,\n updateVertical,\n selectedVertical,\n selectedProductIdsRef\n ]\n );\n\n useEffect(() => {\n if (environment && getProducts) {\n if (environment.environmentId) {\n const data = {\n data: {\n customerId: null,\n environmentId: environment.environmentId,\n apiPath: `tenantService/api/v2/product`\n }\n };\n getProducts(data);\n }\n }\n }, [environment, getProducts]);\n\n useEffect(() => {\n if (selectedVertical) {\n const associatedProductIds = selectedVertical.verticalProductVertical.map(\n (product) => product.productId\n );\n setSelectedProductIds((prevState) => [\n ...prevState,\n ...associatedProductIds\n ]);\n }\n }, [selectedVertical, setSelectedProductIds]);\n\n const setDisplayedIconCallback = useCallback(() => {\n setDisplayedIcon({\n name:\n isEdit && selectedVertical?.icon\n ? selectedVertical?.icon\n : 'StatusCircleQuestionMarkIcon'\n });\n }, [selectedVertical, isEdit]);\n\n useEffect(() => {\n setDisplayedIconCallback();\n }, [open]);\n\n const closeIconLibrary = () => {\n setOpenIconLibrary(false);\n };\n\n const onOpenLibrary = () => {\n setOpenIconLibrary(true);\n };\n\n const handleIconSelect = (icon) => {\n const updateddisplayedIcon = { ...props.displayedIcon };\n updateddisplayedIcon.name = icon.id;\n updateddisplayedIcon.type = icon.type || null;\n setDisplayedIcon(updateddisplayedIcon);\n closeIconLibrary();\n };\n\n const initialValues = useMemo(() => {\n return {\n name: isEdit ? selectedVertical?.name : ''\n };\n }, [associatedProducts, selectedVertical, isEdit]);\n\n return (\n <>\n <SideSheet\n open={open}\n onClose={() => closeSidesheet()}\n width={400}\n title={props.title}\n // buttonLabel={\"Create\"}\n // onSubmit={handleSubmit}\n >\n <Form\n ref={formRef}\n onSubmit={handleSubmit}\n initialValues={initialValues}\n >\n <div style={{ display: 'flex' }}>\n <Field\n ref={nameRef}\n component={TextField}\n label={t('Name')}\n id='name'\n name='name'\n variant='outlined'\n size='small'\n required={true}\n style={{ marginTop: 8 }}\n />\n\n <IconButton onClick={onOpenLibrary}>\n {displayedIcon && (\n <UnityFluentIcon\n type={displayedIcon?.type}\n icon={\n displayedIcon?.type === 'unity'\n ? getUnityIconFromName(displayedIcon?.name)\n : getIconFromName(displayedIcon?.name)\n }\n />\n )}\n </IconButton>\n </div>\n <AmbientGridTemplate\n data={products}\n title={t('Products')}\n loading={loading}\n height={'calc(100vh - 300px)'}\n hideGroupTab\n hideColumnTab\n disablePagination\n hideFitGrid\n hideExpandGrid\n hideExportGrid\n hideRemoveFilters\n hideFilterTab\n {...gridOptions}\n />\n <FormButtons>\n <SubmitButton\n variant='contained'\n color='secondary'\n marginTop={'50px'}\n disabled={false}\n disablePristine={false}\n >\n {t(isEdit ? 'Update' : 'Create')}\n </SubmitButton>\n </FormButtons>\n {loading && <LinearProgress />}\n </Form>\n </SideSheet>\n <SideSheet\n open={openIconLibrary}\n onClose={closeIconLibrary}\n title={t('Icon Library')}\n width={'100%'}\n anchor='bottom'\n >\n <IconLibrary\n addItem={handleIconSelect}\n selectedIconName={displayedIcon?.name}\n title={t('Select Icon')}\n />\n </SideSheet>\n </>\n );\n};\n\nexport default UdpVerticalManagementSidesheet;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UdpVerticalManagementSidesheet-heFj83jt.js","names":["products","IconLibrary"],"sources":["../src/udp/pages/UdpVerticalManagementSidesheet/UdpVerticalManagementSidesheet.jsx"],"sourcesContent":["import React, {\n useCallback,\n useState,\n useMemo,\n useRef,\n useEffect,\n useLayoutEffect\n} from 'react';\nimport {\n TextField,\n Button,\n LinearProgress,\n IconButton\n} from '@material-ui/core';\nimport { Form } from '../../../utilities/form/Form';\nimport { Field } from '../../../utilities/form/Field';\nimport { SubmitButton } from '../../../utilities/form/SubmitButton';\nimport { SideSheet } from '../../../UI/surfaces/SideSheet';\nimport { AmbientGridTemplate } from '../../../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\nimport { useActionState } from '../../../hooks/useActions';\nimport { useTranslation } from 'react-i18next';\nimport { ActionsRenderer } from '../../../UI/templates/ui/renderers/ActionsRenderer';\nimport { FluentCheckbox } from '../../../UI/inputs/checkbox/FluentCheckbox';\nimport { UnityFluentIcon } from '../../../utilities/iconLibrary/UnityFluentIcon';\nimport {\n findAllParentIds,\n getIconFromName\n} from '../../../utilities/tree/TreeUtilities';\nimport { getUnityIconFromName } from '../../../utilities/iconLibrary/UnityIconLibrary';\nimport IconLibrary from '../../../utilities/iconLibrary/IconLibrary';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { FormButtons } from '../../../utilities/form';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { ConfigService } from '../../../configService';\n\nconst UdpVerticalManagementSidesheet = (props) => {\n const {\n selectedVertical,\n environment,\n associatedProducts,\n isEdit,\n deleteVertical,\n open,\n selectedCatalog,\n closeSidesheet,\n onSubmit,\n ...sheetProps\n } = props;\n const { t } = useTranslation();\n const [loading, setLoading] = useState(false);\n const actionState = useActionState();\n const [displayedIcon, setDisplayedIcon] = useState({\n name: 'StatusCircleQuestionMarkIcon',\n color: '',\n type: ''\n });\n const [products, setProducts] = useState([]);\n const [openIconLibrary, setOpenIconLibrary] = useState(false);\n\n const [selectedProductIds, setSelectedProductIds] = useState([]);\n const [checkboxValues, setCheckboxValues] = useState([]);\n const [submitButtonDisabled, setSubmitButtonDisabled] = useState(true);\n const selectedProductIdsRef = useRef();\n selectedProductIdsRef.current = selectedProductIds;\n const displayedIconRef = useRef();\n displayedIconRef.current = displayedIcon;\n const selectedVerticalRef = useRef();\n selectedVerticalRef.current = selectedVertical;\n const formRef = useRef();\n const nameRef = useRef();\n\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const CheckBoxRenderer = ({ onChange, value, id, defaultChecked }) => {\n const isAssociatedToVertical = useCallback(\n (productId) => {\n if (!isEdit) return false;\n for (let product of associatedProducts) {\n if (\n product.productId === productId &&\n product.verticalId === selectedVerticalRef.current.verticalId\n ) {\n return true;\n }\n }\n // console.log(selectedVerticalRef.current.icon)\n const icon = getIconFromName(selectedVerticalRef.current.icon);\n // console.log(\"🚀 ~ file: UdpVerticalManagementSidesheet.jsx:81 ~ isAssociatedToVertical ~ icon:\", icon)\n\n return false;\n },\n [associatedProducts, selectedVerticalRef]\n );\n\n const handleCheckboxChange = (e) => {\n if (e.target.checked) {\n setSelectedProductIds((prevState) => [...prevState, id]);\n } else {\n setSelectedProductIds((prevState) =>\n prevState.filter((item) => item !== id)\n );\n }\n };\n\n return (\n <FluentCheckbox\n // checked={value}\n defaultChecked={isAssociatedToVertical(id)}\n onChange={handleCheckboxChange}\n aria='column-active'\n />\n );\n };\n\n // const actionList = useMemo(\n // () => [\n // {\n // id: 1, // Must be unique\n // title: t('Edit'),\n // icon: EditIcon,\n // onClick: handleEditPage,\n // disabled: false\n // },\n // {\n // id: 2, // Must be unique\n // title: t('Delete'),\n // icon: DeleteIcon,\n // onClick: handleDelete,\n // disabled: false\n // }\n // ],\n // [t, handleEditPage, handleDelete]\n // );\n\n const gridOptions = useMemo(\n () => ({\n frameworkComponents: {\n actionsRenderer: ActionsRenderer,\n checkboxRenderer: CheckBoxRenderer\n },\n columnDefs: [\n {\n headerName: '',\n field: 'select',\n cellRenderer: 'checkboxRenderer',\n cellRendererParams: (params) => ({\n // onChange: onChange,\n // value: checked[params.data.productId] || false,\n id: params.data.productId\n })\n },\n {\n headerName: t('Product Name'),\n field: 'name',\n minWidth: 200\n }\n ]\n }),\n [isEdit, selectedVertical, associatedProducts]\n );\n\n const executeMutation = useCallback(\n async (endpoint, method, data) =>\n apiMutate(\n ConfigService.uemV1ApiUrl,\n endpoint,\n {\n method: method || 'post'\n },\n data\n ),\n []\n );\n\n const getProducts = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation('uem', 'post', data);\n if (response?.status === 200) {\n setProducts(response?.data);\n }\n setLoading(false);\n },\n [executeMutation, setProducts]\n );\n\n const createVertical = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation(\n 'vertical/uemCreate',\n 'post',\n data\n );\n if (response?.status === 201) {\n closeSidesheet();\n handleSuccessSnackbar('Vertical Created Successfully');\n } else {\n handleErrorSnackbar('Something went wrong');\n }\n setLoading(false);\n },\n [executeMutation]\n );\n\n const updateVertical = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation(\n `vertical/${selectedVertical.verticalId}/uemUpdate`,\n 'put',\n data\n );\n if (response?.status === 204) {\n closeSidesheet();\n handleSuccessSnackbar('Vertical Updated Successfully');\n } else {\n handleErrorSnackbar('Something went wrong');\n }\n setLoading(false);\n },\n [selectedVertical, executeMutation]\n );\n\n const handleSubmit = useCallback(\n (values) => {\n setLoading(true);\n const products = selectedProductIdsRef.current.map((productId) => ({\n productId\n }));\n\n !isEdit\n ? createVertical({\n data: {\n name: values.name,\n products: products,\n icon: displayedIconRef?.current.name,\n EnvironmentId: environment.environmentId,\n apiPath: 'api/v1/vertical/uemCreate'\n }\n })\n : updateVertical({\n data: {\n name: values.name,\n products: products,\n icon: displayedIconRef?.current.name,\n EnvironmentId: environment.environmentId,\n apiPath: `api/v1/vertical/${selectedVertical.verticalId}/uemUpdate`\n }\n });\n },\n [\n isEdit,\n createVertical,\n environment,\n updateVertical,\n selectedVertical,\n selectedProductIdsRef\n ]\n );\n\n useEffect(() => {\n if (environment && getProducts) {\n if (environment.environmentId) {\n const data = {\n data: {\n customerId: null,\n environmentId: environment.environmentId,\n apiPath: `tenantService/api/v2/product`\n }\n };\n getProducts(data);\n }\n }\n }, [environment, getProducts]);\n\n useEffect(() => {\n if (selectedVertical) {\n const associatedProductIds = selectedVertical.verticalProductVertical.map(\n (product) => product.productId\n );\n setSelectedProductIds((prevState) => [\n ...prevState,\n ...associatedProductIds\n ]);\n }\n }, [selectedVertical, setSelectedProductIds]);\n\n const setDisplayedIconCallback = useCallback(() => {\n setDisplayedIcon({\n name:\n isEdit && selectedVertical?.icon\n ? selectedVertical?.icon\n : 'StatusCircleQuestionMarkIcon'\n });\n }, [selectedVertical, isEdit]);\n\n useEffect(() => {\n setDisplayedIconCallback();\n }, [open]);\n\n const closeIconLibrary = () => {\n setOpenIconLibrary(false);\n };\n\n const onOpenLibrary = () => {\n setOpenIconLibrary(true);\n };\n\n const handleIconSelect = (icon) => {\n const updateddisplayedIcon = { ...props.displayedIcon };\n updateddisplayedIcon.name = icon.id;\n updateddisplayedIcon.type = icon.type || null;\n setDisplayedIcon(updateddisplayedIcon);\n closeIconLibrary();\n };\n\n const initialValues = useMemo(() => {\n return {\n name: isEdit ? selectedVertical?.name : ''\n };\n }, [associatedProducts, selectedVertical, isEdit]);\n\n return (\n <>\n <SideSheet\n open={open}\n onClose={() => closeSidesheet()}\n width={400}\n title={props.title}\n // buttonLabel={\"Create\"}\n // onSubmit={handleSubmit}\n >\n <Form\n ref={formRef}\n onSubmit={handleSubmit}\n initialValues={initialValues}\n >\n <div style={{ display: 'flex' }}>\n <Field\n ref={nameRef}\n component={TextField}\n label={t('Name')}\n id='name'\n name='name'\n variant='outlined'\n size='small'\n required={true}\n style={{ marginTop: 8 }}\n />\n\n <IconButton onClick={onOpenLibrary}>\n {displayedIcon && (\n <UnityFluentIcon\n type={displayedIcon?.type}\n icon={\n displayedIcon?.type === 'unity'\n ? getUnityIconFromName(displayedIcon?.name)\n : getIconFromName(displayedIcon?.name)\n }\n />\n )}\n </IconButton>\n </div>\n <AmbientGridTemplate\n data={products}\n title={t('Products')}\n loading={loading}\n height={'calc(100vh - 300px)'}\n hideGroupTab\n hideColumnTab\n disablePagination\n hideFitGrid\n hideExpandGrid\n hideExportGrid\n hideRemoveFilters\n hideFilterTab\n {...gridOptions}\n />\n <FormButtons>\n <SubmitButton\n variant='contained'\n color='secondary'\n marginTop={'50px'}\n disabled={false}\n disablePristine={false}\n >\n {t(isEdit ? 'Update' : 'Create')}\n </SubmitButton>\n </FormButtons>\n {loading && <LinearProgress />}\n </Form>\n </SideSheet>\n <SideSheet\n open={openIconLibrary}\n onClose={closeIconLibrary}\n title={t('Icon Library')}\n width={'100%'}\n anchor='bottom'\n >\n <IconLibrary\n addItem={handleIconSelect}\n selectedIconName={displayedIcon?.name}\n title={t('Select Icon')}\n />\n </SideSheet>\n </>\n );\n};\n\nexport default UdpVerticalManagementSidesheet;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserForm-CBm_ZIJx.js","names":["useStyles","Field","PasswordValidator","Form","UserFormFields"],"sources":["../src/shell/ui/addUser/PasswordValidator.jsx","../src/shell/ui/addUser/UserFormFields.jsx","../src/shell/ui/addUser/UserForm.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nconst validatePassword = (\n password,\n lengthRestriction = 0,\n upperCaseRestriction = false,\n specialCharacterRestriction = false,\n numberRestriction = false,\n lowerCaseRestriction = false\n) => {\n let issues = [];\n if(!password) return [];\n if (lengthRestriction && password.length < lengthRestriction) {\n issues.push(\n `Password must be at least ${lengthRestriction} characters long.`\n );\n }\n if (upperCaseRestriction && !/[A-Z]/.test(password)) {\n issues.push('Password must contain at least one uppercase letter.');\n }\n if (specialCharacterRestriction && !/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n issues.push('Password must contain at least one special character.');\n }\n if (numberRestriction && !/\\d/.test(password)) {\n issues.push('Password must contain at least one number.');\n }\n if (lowerCaseRestriction && !/[a-z]/.test(password)) {\n issues.push('Password must contain at least one lowercase letter.');\n }\n return issues;\n};\nexport const isPasswordValid = (\n password,\n lengthRestriction = 0,\n upperCaseRestriction = false,\n specialCharacterRestriction = false,\n numberRestriction = false,\n lowerCaseRestriction = false\n) => {\n return (\n validatePassword(\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction\n ).length === 0\n );\n};\nconst PasswordValidator = ({\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction,\n}) => {\n const issues = useMemo(\n () =>\n validatePassword(\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction\n ),\n [password]\n );\n\n return issues?.length && password?.length ? (\n <div>\n <p style={{ color: 'red' }}>\n {issues.map((issue, index) => (\n <>\n {issue}\n <br />\n </>\n ))}\n </p>\n </div>\n ) : null;\n};\n\nexport default PasswordValidator;\n","import {\n Checkbox,\n FormControlLabel,\n makeStyles,\n TextField,\n RadioGroup,\n Radio,\n InputAdornment,\n IconButton,\n FormControl,\n FormLabel\n} from '@material-ui/core';\nimport React, { useState, useMemo, useCallback, useEffect } from 'react';\nimport { ADUserTypeEnums } from '../../../enums/unitySystemEnums';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { Field } from '../../../utilities/form/Field';\nimport { Visibility, VisibilityOff } from '@material-ui/icons';\nimport { useForm } from 'react-final-form';\nimport PasswordValidator, { isPasswordValid } from './PasswordValidator';\nimport { useTranslation } from 'react-i18next';\nimport { FluentTextFieldAutoComplete } from '../../../UI/inputs/textField/FluentTextFieldAutoComplete';\n\n\nconst removeWhiteSpace = str => {\n if (!str) {\n return '';\n }\n return str.replace(/\\s/g, '');\n};\n\n\n\nconst useStyles = makeStyles(theme => ({\n field: {\n marginBottom: theme.spacing(2),\n },\n selectors: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: theme.spacing(1),\n },\n alert: {\n marginTop: theme.spacing(-2),\n marginBottom: theme.spacing(2),\n },\n accountDisabledCheckbox: {\n height: 'auto',\n },\n accountDisabledCheckboxLabel: {\n marginTop: theme.spacing(1),\n },\n creationMethodGroup: {\n marginBottom: theme.spacing(2),\n flexDirection: 'row',\n },\n}));\n\n\nexport const UserFormFields = props => {\n const {\n editedUser,\n rolesData,\n showRolesField = true,\n handlePasswordTypeChange,\n passwordType,\n creationMethod,\n handleCreationMethodChange,\n } = props;\n const classes = useStyles();\n const user = useUser();\n const [showPassword, setShowPassword] = useState(false);\n const form = useForm();\n const { t } = useTranslation();\n\n const roles = useMemo(() => {\n if (!rolesData) {\n return [];\n }\n rolesData.forEach(r => {\n r.label = r.name;\n r.value = r.name;\n });\n return rolesData\n .sort((a, b) => a.label.localeCompare(b.label))\n .sort((a, b) => a.productName.localeCompare(b.productName));\n }, [rolesData]);\n\n\n const handleClickShowPassword = useCallback(() => {\n setShowPassword(!showPassword);\n }, [showPassword]);\n\n useEffect(() => {\n if (editedUser) {\n form.change('givenName', editedUser.givenName);\n form.change('surname', editedUser.surname);\n form.change('jobTitle', editedUser.jobTitle);\n form.change('location', editedUser.location);\n form.change('mobilePhone', editedUser.mobilePhone);\n form.change('officePhone', editedUser.officePhone);\n }\n }, [editedUser, form]);\n\n return (\n <>\n {editedUser && (\n <Field\n component={TextField}\n label={t(\"Unity ID\")}\n id=\"unity-id\"\n udprecordid=\"udpRecord-UserFormFields-unity-id\"\n name=\"unityId\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n editedUser?.userId\n }\n disabled={true}\n />\n )}\n\n {!editedUser && (\n <FormControl component=\"fieldset\" fullWidth>\n <FormLabel component=\"legend\">{t(\"Creation Method\")}</FormLabel>\n <RadioGroup\n aria-label=\"creation-method\"\n name=\"creation-method\"\n value={creationMethod}\n onChange={handleCreationMethodChange}\n className={classes.creationMethodGroup}\n >\n <FormControlLabel value=\"standard\" control={<Radio />} label={t(\"Standard (Email & Password)\")} />\n <FormControlLabel value=\"invite\" control={<Radio />} label={t(\"Invite Entra User (Secure Email Invite Link)\")} />\n </RadioGroup>\n </FormControl>\n )}\n\n <Field\n component={TextField}\n label={t(\"First Name\")}\n id=\"first-name\"\n udprecordid=\"udpRecord-UserFormFields-first-name\"\n name=\"givenName\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.givenName}\n disabled={!user.can.CAN_MANAGE_USERS}\n />\n <Field\n component={TextField}\n label={t(\"Last Name\")}\n id=\"last-name\"\n udprecordid=\"udpRecord-UserFormFields-last-name\"\n name=\"surname\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.surname}\n disabled={!user.can.CAN_MANAGE_USERS}\n />\n <Field\n component={TextField}\n label={t(\"Email\")}\n id=\"email\"\n udprecordid=\"udpRecord-UserFormFields-email\"\n name=\"email\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.email}\n disabled={editedUser && !user.can.CAN_MODIFY_EMAIL}\n validate={value => {\n if (\n !/^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n value\n ) ||\n 64 < value.split('@')[0].length\n ) {\n return t('Invalid email address');\n }\n }}\n />\n <Field\n component={TextField}\n label={t(\"Title\")}\n id=\"title\"\n udprecordid=\"udpRecord-UserFormFields-title\"\n name=\"jobTitle\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n typeof editedUser?.jobTitle === 'string'\n ? editedUser?.jobTitle.trim()\n : null\n }\n disabled={!user.can.CAN_MANAGE_USERS}\n parse={value => value} // makes empty string values get added to form submission object\n />\n <Field\n component={TextField}\n label={t(\"Location\")}\n id=\"location\"\n udprecordid=\"udpRecord-UserFormFields-location\"\n name=\"location\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n typeof editedUser?.location === 'string'\n ? editedUser?.location.trim()\n : null\n }\n disabled={!user.can.CAN_MANAGE_USERS}\n parse={value => value}\n />\n <Field\n component={TextField}\n label={t(\"Mobile Phone\")}\n id=\"mobile-phone\"\n udprecordid=\"udpRecord-UserFormFields-mobile-phone\"\n name=\"mobilePhone\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={removeWhiteSpace(editedUser?.mobilePhone)}\n disabled={\n !user.can.CAN_MANAGE_USERS ||\n editedUser?.userType === ADUserTypeEnums.Guest\n }\n parse={value => value}\n />\n <Field\n component={TextField}\n label={t(\"Office Phone\")}\n id=\"office-phone\"\n udprecordid=\"udpRecord-UserFormFields-office-phone\"\n name=\"officePhone\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={removeWhiteSpace(editedUser?.officePhone)}\n disabled={\n !user.can.CAN_MANAGE_USERS ||\n editedUser?.userType === ADUserTypeEnums.Guest\n }\n parse={value => value}\n />\n {showRolesField && (\n <Field\n component={FluentTextFieldAutoComplete}\n label={t(\"Select Role\")}\n id=\"roles\"\n udprecordid=\"udpRecord-UserFormFields-roles\"\n name=\"roles\"\n fullWidth\n options={roles || []}\n textFieldProps={{\n id: 'roles',\n name: 'roles',\n }}\n optionKey={'label'}\n isMultiple={true}\n groupBy={(option) => option.productName}\n required\n />\n )}\n {!editedUser && creationMethod !== 'invite' && (\n <>\n <RadioGroup\n aria-labelledby=\"password-type\"\n name=\"password-type\"\n value={passwordType}\n onChange={handlePasswordTypeChange}\n >\n <FormControlLabel\n value=\"autoGeneratePassword\"\n control={<Radio />}\n label={t(\"Auto-generate password\")}\n udprecordid=\"udpRecord-UserFormFields-auto-generate-password\"\n />\n <FormControlLabel\n value=\"createPassword\"\n control={<Radio />}\n label={t(\"Let me create the password\")}\n udprecordid=\"udpRecord-UserFormFields-create-password\"\n />\n </RadioGroup>\n {passwordType === 'createPassword' && (\n <Field\n component={TextField}\n label={t(\"Password\")}\n id=\"passwordProfile\"\n udprecordid=\"udpRecord-UserFormFields-passwordProfile\"\n name=\"passwordProfile\"\n type={showPassword ? 'text' : 'password'}\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n autoComplete=\"new-password\"\n validate={value =>\n !isPasswordValid(value, 8, true, true, true, true) && (\n <PasswordValidator\n password={value}\n numberRestriction\n lowerCaseRestriction\n upperCaseRestriction\n lengthRestriction={8}\n specialCharacterRestriction\n />\n )\n }\n InputProps={{\n // <-- This is where the toggle button is added.\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"toggle password visibility\"\n onClick={handleClickShowPassword}\n >\n {showPassword ? <Visibility /> : <VisibilityOff />}\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n )}\n </>\n )}\n {!editedUser && creationMethod !== 'invite' && (\n <FormControlLabel\n className={classes.accountDisabledCheckboxLabel}\n label={t('Do not activate account and do not send a welcome email.')}\n control={\n <Field\n component={Checkbox}\n id=\"account-disabled\"\n udprecordid=\"udpRecord-UserFormFields-account-disabled\"\n name={'locked'}\n type=\"checkbox\"\n disabled={!user.can.CAN_MANAGE_USERS}\n classes={classes}\n />\n }\n />\n )}\n </>\n );\n};\nexport default UserFormFields;\n","import { Divider, LinearProgress, makeStyles } from '@material-ui/core';\nimport React, { useCallback, useState } from 'react';\nimport { Form } from '../../../utilities/form/Form';\nimport { FormButtons } from '../../../utilities/form/FormButtons';\nimport { SubmitButton } from '../../../utilities/form/SubmitButton';\nimport { useAxiosGet } from '../../../../src/utilities/useAxiosGet';\nimport { useUser } from '../../../../src/utilities/auth/useUser';\nimport UserFormFields from './UserFormFields';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../../../configService';\n\n\nconst useStyles = makeStyles(theme => ({\n divider: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n loadingBar: {\n bottom: theme.spacing(-2),\n marginLeft: theme.spacing(-2),\n marginRight: theme.spacing(-2),\n },\n}));\n\nexport const UserForm = props => {\n const {\n submitUser,\n editedUser,\n creatingUser,\n tenant,\n updateCreatedUser,\n showRolesField = true,\n } = props;\n const classes = useStyles();\n const user = useUser();\n const [passwordType, setPasswordType] = useState('autoGeneratePassword');\n const [creationMethod, setCreationMethod] = useState('standard'); // 'standard' | 'invite'\n const { t } = useTranslation();\n\n\n // GET list of roles\n const [{ data: rolesData }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `roles?userId=${user.id}&tenantId=${tenant?.tenantId}`,\n {},\n !!!tenant,\n false\n );\n\n const handlePasswordTypeChange = useCallback(event => {\n setPasswordType(event.target.value);\n }, []);\n\n const handleCreationMethodChange = useCallback(event => {\n setCreationMethod(event.target.value);\n }, []);\n\n const handleSubmitUser = useCallback(\n values => {\n if (submitUser) {\n if (creationMethod === 'invite') {\n values.isInvite = true;\n values.passwordProfile = null;\n } else if (passwordType === 'autoGeneratePassword') {\n values.passwordProfile = null;\n }\n\n if (updateCreatedUser && editedUser) {\n updateCreatedUser(values);\n } else {\n submitUser(values);\n }\n }\n },\n [submitUser, passwordType, creationMethod, updateCreatedUser, editedUser]\n );\n\n return (\n <>\n <Form onSubmit={handleSubmitUser}>\n <UserFormFields\n rolesData={rolesData}\n editedUser={editedUser}\n showRolesField={showRolesField}\n handlePasswordTypeChange={handlePasswordTypeChange}\n passwordType={passwordType}\n creationMethod={creationMethod}\n handleCreationMethodChange={handleCreationMethodChange}\n />\n {user.can.CAN_MANAGE_USERS && (\n <>\n <div className={classes.divider}>\n <Divider />\n </div>\n <FormButtons>\n <SubmitButton\n variant=\"contained\"\n color=\"primary\"\n disablePristine={false}\n disabled={creatingUser}\n udprecordid=\"udpRecord-UserFormFields-submit\"\n >\n {editedUser ? t('Update') : (creationMethod === 'invite' ? t('Send Invite') : t('Create'))}\n </SubmitButton>\n </FormButtons>\n </>\n )}\n </Form>\n {creatingUser && (\n <LinearProgress className={classes.loadingBar} color=\"secondary\" />\n )}\n </>\n );\n};\nexport default UserForm;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserForm-DhBINx6I.js","names":["useStyles","Field","PasswordValidator","Form","UserFormFields"],"sources":["../src/shell/ui/addUser/PasswordValidator.jsx","../src/shell/ui/addUser/UserFormFields.jsx","../src/shell/ui/addUser/UserForm.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nconst validatePassword = (\n password,\n lengthRestriction = 0,\n upperCaseRestriction = false,\n specialCharacterRestriction = false,\n numberRestriction = false,\n lowerCaseRestriction = false\n) => {\n let issues = [];\n if(!password) return [];\n if (lengthRestriction && password.length < lengthRestriction) {\n issues.push(\n `Password must be at least ${lengthRestriction} characters long.`\n );\n }\n if (upperCaseRestriction && !/[A-Z]/.test(password)) {\n issues.push('Password must contain at least one uppercase letter.');\n }\n if (specialCharacterRestriction && !/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n issues.push('Password must contain at least one special character.');\n }\n if (numberRestriction && !/\\d/.test(password)) {\n issues.push('Password must contain at least one number.');\n }\n if (lowerCaseRestriction && !/[a-z]/.test(password)) {\n issues.push('Password must contain at least one lowercase letter.');\n }\n return issues;\n};\nexport const isPasswordValid = (\n password,\n lengthRestriction = 0,\n upperCaseRestriction = false,\n specialCharacterRestriction = false,\n numberRestriction = false,\n lowerCaseRestriction = false\n) => {\n return (\n validatePassword(\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction\n ).length === 0\n );\n};\nconst PasswordValidator = ({\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction,\n}) => {\n const issues = useMemo(\n () =>\n validatePassword(\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction\n ),\n [password]\n );\n\n return issues?.length && password?.length ? (\n <div>\n <p style={{ color: 'red' }}>\n {issues.map((issue, index) => (\n <>\n {issue}\n <br />\n </>\n ))}\n </p>\n </div>\n ) : null;\n};\n\nexport default PasswordValidator;\n","import {\n Checkbox,\n FormControlLabel,\n makeStyles,\n TextField,\n RadioGroup,\n Radio,\n InputAdornment,\n IconButton,\n FormControl,\n FormLabel\n} from '@material-ui/core';\nimport React, { useState, useMemo, useCallback, useEffect } from 'react';\nimport { ADUserTypeEnums } from '../../../enums/unitySystemEnums';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { Field } from '../../../utilities/form/Field';\nimport { Visibility, VisibilityOff } from '@material-ui/icons';\nimport { useForm } from 'react-final-form';\nimport PasswordValidator, { isPasswordValid } from './PasswordValidator';\nimport { useTranslation } from 'react-i18next';\nimport { FluentTextFieldAutoComplete } from '../../../UI/inputs/textField/FluentTextFieldAutoComplete';\n\n\nconst removeWhiteSpace = str => {\n if (!str) {\n return '';\n }\n return str.replace(/\\s/g, '');\n};\n\n\n\nconst useStyles = makeStyles(theme => ({\n field: {\n marginBottom: theme.spacing(2),\n },\n selectors: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: theme.spacing(1),\n },\n alert: {\n marginTop: theme.spacing(-2),\n marginBottom: theme.spacing(2),\n },\n accountDisabledCheckbox: {\n height: 'auto',\n },\n accountDisabledCheckboxLabel: {\n marginTop: theme.spacing(1),\n },\n creationMethodGroup: {\n marginBottom: theme.spacing(2),\n flexDirection: 'row',\n },\n}));\n\n\nexport const UserFormFields = props => {\n const {\n editedUser,\n rolesData,\n showRolesField = true,\n handlePasswordTypeChange,\n passwordType,\n creationMethod,\n handleCreationMethodChange,\n } = props;\n const classes = useStyles();\n const user = useUser();\n const [showPassword, setShowPassword] = useState(false);\n const form = useForm();\n const { t } = useTranslation();\n\n const roles = useMemo(() => {\n if (!rolesData) {\n return [];\n }\n rolesData.forEach(r => {\n r.label = r.name;\n r.value = r.name;\n });\n return rolesData\n .sort((a, b) => a.label.localeCompare(b.label))\n .sort((a, b) => a.productName.localeCompare(b.productName));\n }, [rolesData]);\n\n\n const handleClickShowPassword = useCallback(() => {\n setShowPassword(!showPassword);\n }, [showPassword]);\n\n useEffect(() => {\n if (editedUser) {\n form.change('givenName', editedUser.givenName);\n form.change('surname', editedUser.surname);\n form.change('jobTitle', editedUser.jobTitle);\n form.change('location', editedUser.location);\n form.change('mobilePhone', editedUser.mobilePhone);\n form.change('officePhone', editedUser.officePhone);\n }\n }, [editedUser, form]);\n\n return (\n <>\n {editedUser && (\n <Field\n component={TextField}\n label={t(\"Unity ID\")}\n id=\"unity-id\"\n udprecordid=\"udpRecord-UserFormFields-unity-id\"\n name=\"unityId\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n editedUser?.userId\n }\n disabled={true}\n />\n )}\n\n {!editedUser && (\n <FormControl component=\"fieldset\" fullWidth>\n <FormLabel component=\"legend\">{t(\"Creation Method\")}</FormLabel>\n <RadioGroup\n aria-label=\"creation-method\"\n name=\"creation-method\"\n value={creationMethod}\n onChange={handleCreationMethodChange}\n className={classes.creationMethodGroup}\n >\n <FormControlLabel value=\"standard\" control={<Radio />} label={t(\"Standard (Email & Password)\")} />\n <FormControlLabel value=\"invite\" control={<Radio />} label={t(\"Invite Entra User (Secure Email Invite Link)\")} />\n </RadioGroup>\n </FormControl>\n )}\n\n <Field\n component={TextField}\n label={t(\"First Name\")}\n id=\"first-name\"\n udprecordid=\"udpRecord-UserFormFields-first-name\"\n name=\"givenName\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.givenName}\n disabled={!user.can.CAN_MANAGE_USERS}\n />\n <Field\n component={TextField}\n label={t(\"Last Name\")}\n id=\"last-name\"\n udprecordid=\"udpRecord-UserFormFields-last-name\"\n name=\"surname\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.surname}\n disabled={!user.can.CAN_MANAGE_USERS}\n />\n <Field\n component={TextField}\n label={t(\"Email\")}\n id=\"email\"\n udprecordid=\"udpRecord-UserFormFields-email\"\n name=\"email\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.email}\n disabled={editedUser && !user.can.CAN_MODIFY_EMAIL}\n validate={value => {\n if (\n !/^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n value\n ) ||\n 64 < value.split('@')[0].length\n ) {\n return t('Invalid email address');\n }\n }}\n />\n <Field\n component={TextField}\n label={t(\"Title\")}\n id=\"title\"\n udprecordid=\"udpRecord-UserFormFields-title\"\n name=\"jobTitle\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n typeof editedUser?.jobTitle === 'string'\n ? editedUser?.jobTitle.trim()\n : null\n }\n disabled={!user.can.CAN_MANAGE_USERS}\n parse={value => value} // makes empty string values get added to form submission object\n />\n <Field\n component={TextField}\n label={t(\"Location\")}\n id=\"location\"\n udprecordid=\"udpRecord-UserFormFields-location\"\n name=\"location\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n typeof editedUser?.location === 'string'\n ? editedUser?.location.trim()\n : null\n }\n disabled={!user.can.CAN_MANAGE_USERS}\n parse={value => value}\n />\n <Field\n component={TextField}\n label={t(\"Mobile Phone\")}\n id=\"mobile-phone\"\n udprecordid=\"udpRecord-UserFormFields-mobile-phone\"\n name=\"mobilePhone\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={removeWhiteSpace(editedUser?.mobilePhone)}\n disabled={\n !user.can.CAN_MANAGE_USERS ||\n editedUser?.userType === ADUserTypeEnums.Guest\n }\n parse={value => value}\n />\n <Field\n component={TextField}\n label={t(\"Office Phone\")}\n id=\"office-phone\"\n udprecordid=\"udpRecord-UserFormFields-office-phone\"\n name=\"officePhone\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={removeWhiteSpace(editedUser?.officePhone)}\n disabled={\n !user.can.CAN_MANAGE_USERS ||\n editedUser?.userType === ADUserTypeEnums.Guest\n }\n parse={value => value}\n />\n {showRolesField && (\n <Field\n component={FluentTextFieldAutoComplete}\n label={t(\"Select Role\")}\n id=\"roles\"\n udprecordid=\"udpRecord-UserFormFields-roles\"\n name=\"roles\"\n fullWidth\n options={roles || []}\n textFieldProps={{\n id: 'roles',\n name: 'roles',\n }}\n optionKey={'label'}\n isMultiple={true}\n groupBy={(option) => option.productName}\n required\n />\n )}\n {!editedUser && creationMethod !== 'invite' && (\n <>\n <RadioGroup\n aria-labelledby=\"password-type\"\n name=\"password-type\"\n value={passwordType}\n onChange={handlePasswordTypeChange}\n >\n <FormControlLabel\n value=\"autoGeneratePassword\"\n control={<Radio />}\n label={t(\"Auto-generate password\")}\n udprecordid=\"udpRecord-UserFormFields-auto-generate-password\"\n />\n <FormControlLabel\n value=\"createPassword\"\n control={<Radio />}\n label={t(\"Let me create the password\")}\n udprecordid=\"udpRecord-UserFormFields-create-password\"\n />\n </RadioGroup>\n {passwordType === 'createPassword' && (\n <Field\n component={TextField}\n label={t(\"Password\")}\n id=\"passwordProfile\"\n udprecordid=\"udpRecord-UserFormFields-passwordProfile\"\n name=\"passwordProfile\"\n type={showPassword ? 'text' : 'password'}\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n autoComplete=\"new-password\"\n validate={value =>\n !isPasswordValid(value, 8, true, true, true, true) && (\n <PasswordValidator\n password={value}\n numberRestriction\n lowerCaseRestriction\n upperCaseRestriction\n lengthRestriction={8}\n specialCharacterRestriction\n />\n )\n }\n InputProps={{\n // <-- This is where the toggle button is added.\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"toggle password visibility\"\n onClick={handleClickShowPassword}\n >\n {showPassword ? <Visibility /> : <VisibilityOff />}\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n )}\n </>\n )}\n {!editedUser && creationMethod !== 'invite' && (\n <FormControlLabel\n className={classes.accountDisabledCheckboxLabel}\n label={t('Do not activate account and do not send a welcome email.')}\n control={\n <Field\n component={Checkbox}\n id=\"account-disabled\"\n udprecordid=\"udpRecord-UserFormFields-account-disabled\"\n name={'locked'}\n type=\"checkbox\"\n disabled={!user.can.CAN_MANAGE_USERS}\n classes={classes}\n />\n }\n />\n )}\n </>\n );\n};\nexport default UserFormFields;\n","import { Divider, LinearProgress, makeStyles } from '@material-ui/core';\nimport React, { useCallback, useState } from 'react';\nimport { Form } from '../../../utilities/form/Form';\nimport { FormButtons } from '../../../utilities/form/FormButtons';\nimport { SubmitButton } from '../../../utilities/form/SubmitButton';\nimport { useAxiosGet } from '../../../../src/utilities/useAxiosGet';\nimport { useUser } from '../../../../src/utilities/auth/useUser';\nimport UserFormFields from './UserFormFields';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../../../configService';\n\n\nconst useStyles = makeStyles(theme => ({\n divider: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n loadingBar: {\n bottom: theme.spacing(-2),\n marginLeft: theme.spacing(-2),\n marginRight: theme.spacing(-2),\n },\n}));\n\nexport const UserForm = props => {\n const {\n submitUser,\n editedUser,\n creatingUser,\n tenant,\n updateCreatedUser,\n showRolesField = true,\n } = props;\n const classes = useStyles();\n const user = useUser();\n const [passwordType, setPasswordType] = useState('autoGeneratePassword');\n const [creationMethod, setCreationMethod] = useState('standard'); // 'standard' | 'invite'\n const { t } = useTranslation();\n\n\n // GET list of roles\n const [{ data: rolesData }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `roles?userId=${user.id}&tenantId=${tenant?.tenantId}`,\n {},\n !!!tenant,\n false\n );\n\n const handlePasswordTypeChange = useCallback(event => {\n setPasswordType(event.target.value);\n }, []);\n\n const handleCreationMethodChange = useCallback(event => {\n setCreationMethod(event.target.value);\n }, []);\n\n const handleSubmitUser = useCallback(\n values => {\n if (submitUser) {\n if (creationMethod === 'invite') {\n values.isInvite = true;\n values.passwordProfile = null;\n } else if (passwordType === 'autoGeneratePassword') {\n values.passwordProfile = null;\n }\n\n if (updateCreatedUser && editedUser) {\n updateCreatedUser(values);\n } else {\n submitUser(values);\n }\n }\n },\n [submitUser, passwordType, creationMethod, updateCreatedUser, editedUser]\n );\n\n return (\n <>\n <Form onSubmit={handleSubmitUser}>\n <UserFormFields\n rolesData={rolesData}\n editedUser={editedUser}\n showRolesField={showRolesField}\n handlePasswordTypeChange={handlePasswordTypeChange}\n passwordType={passwordType}\n creationMethod={creationMethod}\n handleCreationMethodChange={handleCreationMethodChange}\n />\n {user.can.CAN_MANAGE_USERS && (\n <>\n <div className={classes.divider}>\n <Divider />\n </div>\n <FormButtons>\n <SubmitButton\n variant=\"contained\"\n color=\"primary\"\n disablePristine={false}\n disabled={creatingUser}\n udprecordid=\"udpRecord-UserFormFields-submit\"\n >\n {editedUser ? t('Update') : (creationMethod === 'invite' ? t('Send Invite') : t('Create'))}\n </SubmitButton>\n </FormButtons>\n </>\n )}\n </Form>\n {creatingUser && (\n <LinearProgress className={classes.loadingBar} color=\"secondary\" />\n )}\n </>\n );\n};\nexport default UserForm;\n"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { i as useHandleAxiosSnackbar } from "./apiHelpers-WIR8pqy0.js";
|
|
|
3
3
|
import { t as apiMutate } from "./useAxiosMutate-DeqKSi5z.js";
|
|
4
4
|
import { n as SideSheet } from "./SideSheet-CDXVa_Kr.js";
|
|
5
5
|
import { t as useTenant } from "./useTenant-CGaZEBEJ.js";
|
|
6
|
-
import { n as UserForm_default } from "./UserForm-
|
|
6
|
+
import { n as UserForm_default } from "./UserForm-DhBINx6I.js";
|
|
7
7
|
import React, { useCallback, useState } from "react";
|
|
8
8
|
import { useSnackbar } from "notistack";
|
|
9
9
|
import { cloneDeep } from "lodash";
|
|
@@ -98,4 +98,4 @@ var UserFormSideSheet_default = UserFormSideSheet;
|
|
|
98
98
|
|
|
99
99
|
//#endregion
|
|
100
100
|
export { UserFormSideSheet_default as t };
|
|
101
|
-
//# sourceMappingURL=UserFormSideSheet-
|
|
101
|
+
//# sourceMappingURL=UserFormSideSheet-Cj7IyfX1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserFormSideSheet-
|
|
1
|
+
{"version":3,"file":"UserFormSideSheet-Cj7IyfX1.js","names":["UserForm"],"sources":["../src/shell/ui/addUser/UserFormSideSheet.jsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { SideSheet } from '../../../UI/surfaces/SideSheet';\nimport UserForm from './UserForm';\nimport { useSnackbar } from 'notistack';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { useTenant } from '../../../utilities/tenant/useTenant';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../../../configService';\n\n\nconst UserFormSideSheet = ({\n open,\n onClose,\n}) => {\n const [loading, setLoading] = useState(false);\n const tenant = useTenant();\n const { t } = useTranslation();\n const { handleErrorSnackbar, handleSuccessSnackbar } = useHandleAxiosSnackbar();\n\n // Helper functions\n const getUserByEmail = useCallback(\n async email => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/email/${email}`,\n { method: 'get' }\n );\n },\n []\n );\n\n const createUser = useCallback(\n async data => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/${tenant?.activeTenant?.tenantId ?? ''}`,\n { method: 'post' },\n data\n );\n },\n [tenant]\n );\n\n const inviteUser = useCallback(\n async data => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/${tenant?.activeTenant?.tenantId ?? ''}/invite`,\n { method: 'post' },\n data\n );\n },\n [tenant]\n );\n\n const addUserToTenant = useCallback(\n async email => {\n return await apiMutate(\n ConfigService.tenantV1ApiUrl,\n `tenants/${tenant?.activeTenant?.tenantId ?? ''}/${email}`,\n { method: 'post' }\n );\n },\n [tenant]\n );\n\n const updateExistingUser = useCallback(\n async data => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/aad/${data.id}`,\n { method: 'patch' },\n data\n );\n },\n []\n );\n\n const fillInValues = (oldValues, newValues) => {\n const invalidFields = [\n 'id', 'displayName', 'mail', 'userType', 'email',\n 'accountEnabled', 'mailNickname', 'identities',\n 'password', 'passwordProfile', 'unityId',\n 'unityDefaultTenantId'\n ];\n for (let field in oldValues) {\n if (!invalidFields.includes(field)) {\n if (!oldValues[field]) {\n oldValues[field] = newValues[field];\n }\n }\n }\n return oldValues;\n };\n\n const handleSubmit = useCallback(\n async values => {\n setLoading(true);\n try {\n if (values.email) {\n values.email = values.email.toLowerCase().trim();\n }\n\n const userExistsResponse = await getUserByEmail(values.email);\n const userExists = userExistsResponse.data;\n\n if (userExists) {\n const existingUser = cloneDeep(userExists);\n const updatedValues = fillInValues(existingUser, values);\n\n // Update existing user and add to tenant\n await updateExistingUser({ data: updatedValues });\n await addUserToTenant(values.email);\n handleSuccessSnackbar(t('User has been updated and added to the tenant'))\n } else {\n // Check if this is an invite flow or standard create\n if (values.isInvite) {\n await inviteUser({ data: values });\n handleSuccessSnackbar(t('User invitation sent successfully'));\n } else {\n // Create a new user\n await createUser({ data: values });\n handleSuccessSnackbar(t('User has been created successfully'));\n }\n }\n\n onClose(); // Close the SideSheet after successful submission\n } catch (error) {\n handleErrorSnackbar(error.message || t('An error occurred, please ensure you are creating a new user'))\n } finally {\n setLoading(false);\n }\n },\n [\n getUserByEmail,\n createUser,\n inviteUser,\n addUserToTenant,\n updateExistingUser,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n onClose,\n t\n ]\n );\n\n return (\n <SideSheet\n open={open}\n onClose={onClose}\n title={t(\"Add User\")}\n width={600} // Adjust the width as needed\n >\n <UserForm\n submitUser={handleSubmit}\n creatingUser={loading}\n tenant={tenant?.activeTenant}\n />\n </SideSheet>\n );\n};\n\nexport default UserFormSideSheet;\n"],"mappings":";;;;;;;;;;;;AAYA,MAAM,qBAAqB,EACzB,MACA,cACI;CACJ,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAC7C,MAAM,SAAS,WAAW;CAC1B,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,qBAAqB,0BAA0B,wBAAwB;CAG/E,MAAM,iBAAiB,YACrB,OAAM,UAAS;AACb,SAAO,MAAM,UACX,cAAc,kBACd,eAAe,SACf,EAAE,QAAQ,OAAO,CAClB;IAEH,EAAE,CACH;CAED,MAAM,aAAa,YACjB,OAAM,SAAQ;AACZ,SAAO,MAAM,UACX,cAAc,kBACd,SAAS,QAAQ,cAAc,YAAY,MAC3C,EAAE,QAAQ,QAAQ,EAClB,KACD;IAEH,CAAC,OAAO,CACT;CAED,MAAM,aAAa,YACjB,OAAM,SAAQ;AACZ,SAAO,MAAM,UACX,cAAc,kBACd,SAAS,QAAQ,cAAc,YAAY,GAAG,UAC9C,EAAE,QAAQ,QAAQ,EAClB,KACD;IAEH,CAAC,OAAO,CACT;CAED,MAAM,kBAAkB,YACtB,OAAM,UAAS;AACb,SAAO,MAAM,UACX,cAAc,gBACd,WAAW,QAAQ,cAAc,YAAY,GAAG,GAAG,SACnD,EAAE,QAAQ,QAAQ,CACnB;IAEH,CAAC,OAAO,CACT;CAED,MAAM,qBAAqB,YACzB,OAAM,SAAQ;AACZ,SAAO,MAAM,UACX,cAAc,kBACd,aAAa,KAAK,MAClB,EAAE,QAAQ,SAAS,EACnB,KACD;IAEH,EAAE,CACH;CAED,MAAM,gBAAgB,WAAW,cAAc;EAC7C,MAAM,gBAAgB;GACpB;GAAM;GAAe;GAAQ;GAAY;GACzC;GAAkB;GAAgB;GAClC;GAAY;GAAmB;GAC/B;GACD;AACD,OAAK,IAAI,SAAS,UAChB,KAAI,CAAC,cAAc,SAAS,MAAM,EAChC;OAAI,CAAC,UAAU,OACb,WAAU,SAAS,UAAU;;AAInC,SAAO;;CAGT,MAAM,eAAe,YACnB,OAAM,WAAU;AACd,aAAW,KAAK;AAChB,MAAI;AACF,OAAI,OAAO,MACT,QAAO,QAAQ,OAAO,MAAM,aAAa,CAAC,MAAM;GAIlD,MAAM,cADqB,MAAM,eAAe,OAAO,MAAM,EACvB;AAEtC,OAAI,YAAY;AAKd,UAAM,mBAAmB,EAAE,MAHL,aADD,UAAU,WAAW,EACO,OAAO,EAGR,CAAC;AACjD,UAAM,gBAAgB,OAAO,MAAM;AACnC,0BAAsB,EAAE,gDAAgD,CAAC;cAGrE,OAAO,UAAU;AACnB,UAAM,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClC,0BAAsB,EAAE,oCAAoC,CAAC;UACxD;AAEL,UAAM,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClC,0BAAsB,EAAE,qCAAqC,CAAC;;AAIlE,YAAS;WACF,OAAO;AACd,uBAAoB,MAAM,WAAW,EAAE,+DAA+D,CAAC;YAC/F;AACR,cAAW,MAAM;;IAGrB;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QACE,oCAAC;EACO;EACG;EACT,OAAO,EAAE,WAAW;EACpB,OAAO;IAEP,oCAACA;EACC,YAAY;EACZ,cAAc;EACd,QAAQ,QAAQ;GAChB,CACQ;;AAIhB,gCAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetCard-
|
|
1
|
+
{"version":3,"file":"WidgetCard-CgZSNV38.js","names":["theme","FUICard","FUIMenuItem"],"sources":["../src/UI/widgets/WidgetCard.jsx"],"sourcesContent":["import React, { Fragment } from 'react';\nimport { DeleteIcon } from '@fluentui/react-icons';\nimport { makeStyles, CircularProgress } from '@material-ui/core';\nimport clsx from 'clsx';\nimport FUICard, { FUICardHeaderMenu } from '../surfaces/cards/fluentCards/FUICard';\nimport FUIMenuItem from './FluentComponents/FUIMenuItem';\n\n/**\n * Core component for dashboard widget cards\n */\nconst WidgetCard = (props) => {\n const {\n children,\n headerActions,\n className,\n widgetType,\n id,\n layout,\n params,\n setParam,\n onDelete,\n loading,\n errors,\n theme,\n ...other\n } = props;\n\n const useStyles = makeStyles((theme) => ({\n root: {\n '&.react-resizable-hide .react-resizable-handle': {\n display: 'none'\n }\n },\n darkRoot: {\n '&.react-resizable-hide .react-resizable-handle': {\n display: 'none'\n },\n background: '#424242',\n color: 'white'\n },\n anyRoot: {\n '& .MuiCardContent-root': {\n justifyContent: 'space-between',\n overflow: 'auto',\n padding: 0\n }\n },\n handle: {\n cursor: 'move',\n '&:hover': {\n backgroundColor: theme.palette.action.hover\n }\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n innerWidgetContentContainer: {\n height: '100%',\n minWidth: widgetType === 'ProgressBarWidget' ? 0 : 270,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n padding: theme.spacing(2)\n }\n }));\n const classes = useStyles();\n\n const raised = /(^|\\s)react-draggable-dragging(\\s|$)/.test(className ?? '');\n let body = children;\n if (loading) {\n body = (\n <div className={classes.loadingContent}>\n <CircularProgress color='secondary' size={64} />\n </div>\n );\n }\n if (errors && !body) {\n body = <div>Unexpected error</div>;\n }\n return (\n <FUICard\n {...other}\n className={clsx(\n className,\n theme === 'dark' ? classes.darkRoot : classes.root,\n classes.anyRoot\n )}\n raised={raised}\n CardHeaderProps={{\n className: classes.handle,\n 'data-handle': true\n }}\n headerActions={\n <>\n {headerActions}\n <FUICardHeaderMenu>\n <FUIMenuItem\n onClick={onDelete}\n fluentIcon={DeleteIcon}\n primary='Delete'\n />\n </FUICardHeaderMenu>\n </>\n }\n >\n <div className={classes.innerWidgetContentContainer}>{body}</div>\n </FUICard>\n );\n};\n\nexport default WidgetCard;\n"],"mappings":";;;;;;;;;;;AAUA,MAAM,cAAc,UAAU;CAC5B,MAAM,EACJ,UACA,eACA,WACA,YACA,IACA,QACA,QACA,UACA,UACA,SACA,QACA,OACA,GAAG,UACD;CA4CJ,MAAM,UA1CY,YAAY,aAAW;EACvC,MAAM,EACJ,kDAAkD,EAChD,SAAS,QACV,EACF;EACD,UAAU;GACR,kDAAkD,EAChD,SAAS,QACV;GACD,YAAY;GACZ,OAAO;GACR;EACD,SAAS,EACP,0BAA0B;GACxB,gBAAgB;GAChB,UAAU;GACV,SAAS;GACV,EACF;EACD,QAAQ;GACN,QAAQ;GACR,WAAW,EACT,iBAAiBA,QAAM,QAAQ,OAAO,OACvC;GACF;EACD,gBAAgB;GACd,MAAM;GACN,SAAS;GACT,eAAe;GACf,YAAY;GACZ,gBAAgB;GACjB;EACD,6BAA6B;GAC3B,QAAQ;GACR,UAAU,eAAe,sBAAsB,IAAI;GACnD,SAAS;GACT,eAAe;GACf,gBAAgB;GAChB,SAASA,QAAM,QAAQ,EAAE;GAC1B;EACF,EAAE,EACwB;CAE3B,MAAM,SAAS,uCAAuC,KAAK,aAAa,GAAG;CAC3E,IAAI,OAAO;AACX,KAAI,QACF,QACE,oCAAC,SAAI,WAAW,QAAQ,kBACtB,oCAAC;EAAiB,OAAM;EAAY,MAAM;GAAM,CAC5C;AAGV,KAAI,UAAU,CAAC,KACb,QAAO,oCAAC,aAAI,mBAAsB;AAEpC,QACE,oCAACC;EACC,GAAI;EACJ,WAAW,KACT,WACA,UAAU,SAAS,QAAQ,WAAW,QAAQ,MAC9C,QAAQ,QACT;EACO;EACR,iBAAiB;GACf,WAAW,QAAQ;GACnB,eAAe;GAChB;EACD,eACE,0DACG,eACD,oCAAC,yBACC,oCAACC;GACC,SAAS;GACT,YAAY;GACZ,SAAQ;IACR,CACgB,CACnB;IAGL,oCAAC,SAAI,WAAW,QAAQ,+BAA8B,KAAW,CACzD;;AAId,yBAAe"}
|
|
@@ -10,7 +10,7 @@ import { t as UtilitySideBar } from "./UtilitySideBar-BU3ppHrv.js";
|
|
|
10
10
|
import { t as WorkflowTreeMenu } from "./WorkflowTreeMenu-HHtwkDzu.js";
|
|
11
11
|
import { i as transformWorkflowPlayTree } from "./workflowUtilities-Brby0vts.js";
|
|
12
12
|
import { t as WorkflowContent } from "./WorkflowContent-HlBHhWl8.js";
|
|
13
|
-
import { t as useUpdateSearchParams } from "./useUpdateSearchParams-
|
|
13
|
+
import { t as useUpdateSearchParams } from "./useUpdateSearchParams-HVBDF-DL.js";
|
|
14
14
|
import React, { useCallback, useEffect, useState } from "react";
|
|
15
15
|
import { makeStyles } from "@material-ui/core";
|
|
16
16
|
import { useLocation } from "react-router-dom";
|
|
@@ -184,4 +184,4 @@ var WorkflowContainer_default = WorkflowContainer;
|
|
|
184
184
|
|
|
185
185
|
//#endregion
|
|
186
186
|
export { WorkflowContainer_default as n, WorkflowContainer as t };
|
|
187
|
-
//# sourceMappingURL=WorkflowContainer-
|
|
187
|
+
//# sourceMappingURL=WorkflowContainer-Cec3FFwP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowContainer-Drts8hsZ.js","names":[],"sources":["../src/workflow/WorkflowContainer.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { WorkflowTreeMenu } from './menus/WorkflowTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { WorkflowContent } from './WorkflowContent';\nimport {\n transformWorkflowPlayTree,\n updateWorkflowPlayNodeState\n} from '../utilities/workflow/workflowUtilities';\nimport { useUpdateSearchParams } from '../hooks/useUpdateSearchParams';\nimport { useUser } from '../utilities/auth/useUser';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flex: 1,\n minHeight: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n display: 'grid',\n gridTemplateAreas: ['sidebar content'].map((line) => `\"${line}\"`).join(' '),\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto 1fr'\n },\n sidebar: {\n gridArea: 'sidebar',\n marginRight: theme.spacing(1)\n },\n content: {\n gridArea: 'content',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n zIndex: 1,\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n overflowY: 'auto'\n },\n menuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 116}px)`,\n overflowX: 'hidden'\n },\n loader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n }\n}));\n\nexport const WorkflowContainer = (props) => {\n const { playId, taskId, autoCollapseNav = true } = props;\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const location = useLocation();\n const updateSearchParams = useUpdateSearchParams();\n const user = useUser();\n const setLocationState = useSetLocationState();\n const { t } = useTranslation();\n\n const [menuItemsList, setMenuItemsList] = useState([]); // holds a list of trees\n const [selectedNode, setSelectedNode] = useState(null);\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [reloadFromPage, setReloadFromPage] = useState(false);\n const [workflow, setWorkflow] = useState(false);\n\n const state = location.state;\n let searchParamStr = location.search;\n let searchParams = new URLSearchParams(searchParamStr);\n const urlPlayId = location.pathname.replace('/workflowtask/', '');\n const udpPlayId =\n playId ||\n urlPlayId ||\n (state\n ? state.playId\n : searchParams.has('playId') === true\n ? searchParams.get('playId')\n : '');\n\n const udpTaskId =\n taskId ||\n (state\n ? state.taskId\n : searchParams.has('taskId') === true\n ? searchParams.get('taskId')\n : '');\n\n const [{ data: workflowPlay, loading: workflowPlayLoading }, reloadWorkflow] =\n useAxiosGet(\n ConfigService.builderV1ApiUrl,\n `workflow/play/${udpPlayId}`,\n {},\n !!!udpPlayId,\n false\n );\n\n const [{ data: users }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users?tenantId=${user?.currentTenantId || ''}`,\n {},\n !!!user?.currentTenantId\n );\n\n const [{ data: groups }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `groups?tenantId=${user?.currentTenantId || ''}&productId=${\n ConfigService.config.UNITY_PRODUCT_ID\n }`,\n {},\n !!!user?.currentTenantId\n );\n\n // const getNodeState = useCallback(\n // async (nodeId) =>\n // apiMutate(\n // ConfigService.builderV1ApiUrl,\n // `workflow/play/${udpPlayId}/node/${nodeId}/state`,\n // {\n // method: 'get'\n // }\n // ),\n // [udpPlayId]\n // );\n\n const { setSubHeaderActionHasChildren, setNavigationExpanded } =\n useShellStore();\n\n const handleReloadWorkflow = useCallback(async () => {\n setReloadFromPage(true);\n await reloadWorkflow();\n setReloadFromPage(false);\n }, [reloadWorkflow]);\n\n const handleSelectedNode = useCallback(\n async (node, menuIndex) => {\n if (node.isSelectable) {\n setSelectedNode(node);\n await handleReloadWorkflow();\n if (node?.properties?.playSceneId) {\n updateSearchParams({ taskId: node.properties.playSceneId });\n }\n }\n },\n [updateSearchParams, handleReloadWorkflow]\n );\n\n const handleDropNode = useCallback(\n (sourceNode, targetNode, sourceNodeMenuIndex, targetNodeMenuIndex) => {\n // TODO: Implement if we need to for next Phase\n },\n []\n );\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n useEffect(() => {\n if (workflowPlay) {\n setWorkflow(workflowPlay);\n }\n }, [workflowPlay]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n setLocationState({ label: t('Workflow') });\n }, [setLocationState, t]);\n\n // this is used for updating the state node for page use\n useEffect(() => {\n if (workflow) {\n setSelectedNode((prevNode) => {\n if (!!prevNode) {\n const foundNode = workflow.workflowPlayNode?.children?.find(\n (child) => child.id === prevNode.id\n );\n if (!!foundNode) {\n const updatedNode = { ...prevNode };\n // TODO: using this to update state for now but may need to update\n // other properties of the selected node when we pull workflow tree\n updatedNode.properties.state = foundNode.state;\n return updatedNode;\n } else {\n return prevNode;\n }\n }\n });\n }\n }, [workflow]);\n\n useEffect(() => {\n if (workflow) {\n const list = [];\n const updatedMenu = transformWorkflowPlayTree(workflow.workflowPlayNode);\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n setMenuItemsList(list);\n }\n }, [workflow]);\n\n useEffect(() => {\n if (!selectedNode) {\n const menu = menuItemsList[0];\n // Use Task Id to find the first matching node in tree\n if (menu) {\n if (!!udpTaskId) {\n const matchingTaskNode = menu.children.find(\n (child) => child?.properties?.playSceneId === udpTaskId\n );\n setSelectedNode(matchingTaskNode || menu.children[0] || null);\n } else {\n const firstSelectableMenuItem = menu?.children?.find(\n (item) => item.isSelectable\n );\n setSelectedNode(firstSelectableMenuItem || null);\n }\n if (autoCollapseNav) {\n setNavigationExpanded(false);\n }\n }\n }\n }, [\n udpTaskId,\n menuItemsList,\n selectedNode,\n setNavigationExpanded,\n autoCollapseNav\n ]);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n // useEffect(() => {\n // if (selectedNode) {\n // const getState = async () => {\n // const response = await getNodeState(selectedNode.id);\n // if (response.status === 200) {\n // setMenuItemsList((prevMenuList) => {\n // let updatedList = [];\n // prevMenuList.forEach((menu) => {\n // const updatedMenu = updateWorkflowPlayNodeState(\n // menu,\n // selectedNode.id,\n // response.data\n // );\n // updatedList.push(updatedMenu);\n // });\n // return updatedList;\n // });\n // }\n // };\n // getState();\n // }\n // }, [selectedNode, getNodeState]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={'Workflow'}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={64}\n >\n <div className={classes.menuContent} key={playId}>\n {menuItemsList?.length > 0 &&\n (!workflowPlayLoading || reloadFromPage) &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <WorkflowTreeMenu\n menuItems={menuItems}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedNode?.id}\n selectedNodeParentId={selectedNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {workflowPlayLoading && !reloadFromPage && (\n <div className={classes.loader}>\n <NodeLoader loading={workflowPlayLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n <WorkflowContent\n selectedNode={selectedNode}\n workflow={workflow}\n reloadWorkflow={handleReloadWorkflow}\n users={users}\n groups={groups}\n />\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default WorkflowContainer;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkflowContainer-Cec3FFwP.js","names":[],"sources":["../src/workflow/WorkflowContainer.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { WorkflowTreeMenu } from './menus/WorkflowTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { WorkflowContent } from './WorkflowContent';\nimport {\n transformWorkflowPlayTree,\n updateWorkflowPlayNodeState\n} from '../utilities/workflow/workflowUtilities';\nimport { useUpdateSearchParams } from '../hooks/useUpdateSearchParams';\nimport { useUser } from '../utilities/auth/useUser';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flex: 1,\n minHeight: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n display: 'grid',\n gridTemplateAreas: ['sidebar content'].map((line) => `\"${line}\"`).join(' '),\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto 1fr'\n },\n sidebar: {\n gridArea: 'sidebar',\n marginRight: theme.spacing(1)\n },\n content: {\n gridArea: 'content',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n zIndex: 1,\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n overflowY: 'auto'\n },\n menuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 116}px)`,\n overflowX: 'hidden'\n },\n loader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n }\n}));\n\nexport const WorkflowContainer = (props) => {\n const { playId, taskId, autoCollapseNav = true } = props;\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const location = useLocation();\n const updateSearchParams = useUpdateSearchParams();\n const user = useUser();\n const setLocationState = useSetLocationState();\n const { t } = useTranslation();\n\n const [menuItemsList, setMenuItemsList] = useState([]); // holds a list of trees\n const [selectedNode, setSelectedNode] = useState(null);\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [reloadFromPage, setReloadFromPage] = useState(false);\n const [workflow, setWorkflow] = useState(false);\n\n const state = location.state;\n let searchParamStr = location.search;\n let searchParams = new URLSearchParams(searchParamStr);\n const urlPlayId = location.pathname.replace('/workflowtask/', '');\n const udpPlayId =\n playId ||\n urlPlayId ||\n (state\n ? state.playId\n : searchParams.has('playId') === true\n ? searchParams.get('playId')\n : '');\n\n const udpTaskId =\n taskId ||\n (state\n ? state.taskId\n : searchParams.has('taskId') === true\n ? searchParams.get('taskId')\n : '');\n\n const [{ data: workflowPlay, loading: workflowPlayLoading }, reloadWorkflow] =\n useAxiosGet(\n ConfigService.builderV1ApiUrl,\n `workflow/play/${udpPlayId}`,\n {},\n !!!udpPlayId,\n false\n );\n\n const [{ data: users }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users?tenantId=${user?.currentTenantId || ''}`,\n {},\n !!!user?.currentTenantId\n );\n\n const [{ data: groups }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `groups?tenantId=${user?.currentTenantId || ''}&productId=${\n ConfigService.config.UNITY_PRODUCT_ID\n }`,\n {},\n !!!user?.currentTenantId\n );\n\n // const getNodeState = useCallback(\n // async (nodeId) =>\n // apiMutate(\n // ConfigService.builderV1ApiUrl,\n // `workflow/play/${udpPlayId}/node/${nodeId}/state`,\n // {\n // method: 'get'\n // }\n // ),\n // [udpPlayId]\n // );\n\n const { setSubHeaderActionHasChildren, setNavigationExpanded } =\n useShellStore();\n\n const handleReloadWorkflow = useCallback(async () => {\n setReloadFromPage(true);\n await reloadWorkflow();\n setReloadFromPage(false);\n }, [reloadWorkflow]);\n\n const handleSelectedNode = useCallback(\n async (node, menuIndex) => {\n if (node.isSelectable) {\n setSelectedNode(node);\n await handleReloadWorkflow();\n if (node?.properties?.playSceneId) {\n updateSearchParams({ taskId: node.properties.playSceneId });\n }\n }\n },\n [updateSearchParams, handleReloadWorkflow]\n );\n\n const handleDropNode = useCallback(\n (sourceNode, targetNode, sourceNodeMenuIndex, targetNodeMenuIndex) => {\n // TODO: Implement if we need to for next Phase\n },\n []\n );\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n useEffect(() => {\n if (workflowPlay) {\n setWorkflow(workflowPlay);\n }\n }, [workflowPlay]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n setLocationState({ label: t('Workflow') });\n }, [setLocationState, t]);\n\n // this is used for updating the state node for page use\n useEffect(() => {\n if (workflow) {\n setSelectedNode((prevNode) => {\n if (!!prevNode) {\n const foundNode = workflow.workflowPlayNode?.children?.find(\n (child) => child.id === prevNode.id\n );\n if (!!foundNode) {\n const updatedNode = { ...prevNode };\n // TODO: using this to update state for now but may need to update\n // other properties of the selected node when we pull workflow tree\n updatedNode.properties.state = foundNode.state;\n return updatedNode;\n } else {\n return prevNode;\n }\n }\n });\n }\n }, [workflow]);\n\n useEffect(() => {\n if (workflow) {\n const list = [];\n const updatedMenu = transformWorkflowPlayTree(workflow.workflowPlayNode);\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n setMenuItemsList(list);\n }\n }, [workflow]);\n\n useEffect(() => {\n if (!selectedNode) {\n const menu = menuItemsList[0];\n // Use Task Id to find the first matching node in tree\n if (menu) {\n if (!!udpTaskId) {\n const matchingTaskNode = menu.children.find(\n (child) => child?.properties?.playSceneId === udpTaskId\n );\n setSelectedNode(matchingTaskNode || menu.children[0] || null);\n } else {\n const firstSelectableMenuItem = menu?.children?.find(\n (item) => item.isSelectable\n );\n setSelectedNode(firstSelectableMenuItem || null);\n }\n if (autoCollapseNav) {\n setNavigationExpanded(false);\n }\n }\n }\n }, [\n udpTaskId,\n menuItemsList,\n selectedNode,\n setNavigationExpanded,\n autoCollapseNav\n ]);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n // useEffect(() => {\n // if (selectedNode) {\n // const getState = async () => {\n // const response = await getNodeState(selectedNode.id);\n // if (response.status === 200) {\n // setMenuItemsList((prevMenuList) => {\n // let updatedList = [];\n // prevMenuList.forEach((menu) => {\n // const updatedMenu = updateWorkflowPlayNodeState(\n // menu,\n // selectedNode.id,\n // response.data\n // );\n // updatedList.push(updatedMenu);\n // });\n // return updatedList;\n // });\n // }\n // };\n // getState();\n // }\n // }, [selectedNode, getNodeState]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={'Workflow'}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={64}\n >\n <div className={classes.menuContent} key={playId}>\n {menuItemsList?.length > 0 &&\n (!workflowPlayLoading || reloadFromPage) &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <WorkflowTreeMenu\n menuItems={menuItems}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedNode?.id}\n selectedNodeParentId={selectedNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {workflowPlayLoading && !reloadFromPage && (\n <div className={classes.loader}>\n <NodeLoader loading={workflowPlayLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n <WorkflowContent\n selectedNode={selectedNode}\n workflow={workflow}\n reloadWorkflow={handleReloadWorkflow}\n users={users}\n groups={groups}\n />\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default WorkflowContainer;\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as WorkflowContainer_default, t as WorkflowContainer } from "./WorkflowContainer-
|
|
1
|
+
import { n as WorkflowContainer_default, t as WorkflowContainer } from "./WorkflowContainer-Cec3FFwP.js";
|
|
2
2
|
|
|
3
3
|
export { WorkflowContainer, WorkflowContainer_default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion-Ca8ECaw2.js","names":[],"sources":["../src/UI/accordion/Accordion.jsx"],"sourcesContent":["import {\n ButtonBase,\n Collapse,\n Tooltip,\n Typography,\n lighten,\n makeStyles\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport React, { useCallback } from 'react';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { IconButtonWithTooltip } from '../inputs/buttons/IconButtonWithToolTip';\nimport { ChevronUpIcon } from '@fluentui/react-icons';\nimport { FluentIconButton } from '../inputs/buttons/FluentIconButton';\nimport { getIconFromName } from '../../utilities/tree/TreeUtilities';\nimport { StatusChip } from '../dataDisplay/status/StatusChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n height: '100%'\n },\n rootBorder: {\n borderStyle: 'solid',\n borderColor: (props) => theme.palette[props?.color]?.main,\n borderWidth: '1px 1px 1px 6px'\n },\n headerWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n backgroundColor: (props) =>\n props?.simpleAccordion && props?.color && props?.color !== 'default'\n ? props?.color === 'paper'\n ? theme.palette.background.paper\n : lighten(theme.palette[props?.color]?.light, 0.8)\n : theme.palette.background.default,\n overflow: 'hidden',\n width: (props) => props?.headerWidth ?? '100%'\n },\n secondaryButtonsWrapper: {\n display: 'flex',\n gap: theme.spacing(2),\n borderRadius: theme.spacing(2),\n backgroundColor: 'white',\n padding: `2px ${theme.spacing(1)}px`,\n width: 'fit-content'\n },\n primaryButtonWrapper: {\n minWidth: '68px',\n maxWidth: (props) => props?.primaryActionMaxWidth,\n height: 'auto',\n color: 'white',\n backgroundColor: (props) => theme.palette[props?.color]?.main,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal'\n },\n headerColor: {\n backgroundColor: (props) =>\n props?.color !== 'default' &&\n props?.color !== 'paper' &&\n lighten(theme.palette[props?.color]?.light, 0.85)\n },\n buttonWrapper: {\n display: 'flex',\n gap: theme.spacing(0.5)\n },\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexGrow: 2,\n margin: (props) => (props.removeHeaderMargin ? '0px' : theme.spacing(0.8)),\n color: theme.palette.text.primary\n },\n closeButtonWrapper: {\n display: 'flex',\n justifyContent: 'flex-end',\n marginTop: theme.spacing(1)\n },\n unexpandedIconButton: {\n width: '68px',\n height: '40px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal',\n borderTop: `solid 1px lightgrey`,\n borderLeft: `solid 1px lightgrey`,\n overflow: 'hidden',\n border: (props) => props?.removeBorder && '0px'\n },\n rightIconButton: {\n backgroundColor: 'white',\n padding: theme.spacing(1),\n borderRadius: '50%'\n },\n primaryActionLabel: {\n marginRight: theme.spacing(0.5),\n marginLeft: theme.spacing(0.5)\n },\n expand: {\n transform: 'rotate(0deg)',\n marginLeft: 'auto',\n marginRight: theme.spacing(1),\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n })\n },\n expandOpen: {\n transform: 'rotate(180deg)'\n },\n titleStatusWrapper: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n }\n}));\n\nexport const Accordion = (props) => {\n const {\n title,\n subtitle,\n subtitleVariant,\n status,\n statusIcon,\n statusLabel,\n secondaryIconButtons,\n overriddenSecondaryContainer,\n rightIcon,\n rightIconAction,\n rightIconTooltip,\n disableRightIconButton = false,\n primaryActionIcon,\n primaryActionLabel,\n primaryAction,\n primaryActionMaxWidth,\n disablePrimaryActionButton = false,\n color = 'info',\n children,\n expand,\n setExpand,\n additionalEvent,\n hideCloseButton = false,\n hideRightIconButton = false,\n hidePrimaryAction = false,\n noWrapTitle = false,\n simpleAccordion = false,\n recordId = 0,\n removeBorder = false,\n headerWidth,\n removeHeaderMargin,\n titleVariant = 'subtitle2',\n chevronIconSize = 'medium',\n unmountOnExit = true\n } = props;\n const classes = useStyles({\n color,\n primaryActionMaxWidth,\n simpleAccordion,\n headerWidth,\n removeHeaderMargin,\n removeBorder,\n });\n\n const handleOnClickAccordion = useCallback(() => {\n if (setExpand) {\n setExpand(!expand);\n }\n\n if (additionalEvent) {\n additionalEvent();\n }\n }, [additionalEvent, expand, setExpand]);\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.rootBorder]: !simpleAccordion & !removeBorder\n })}\n >\n <div\n className={clsx(classes.headerWrapper, {\n [classes.headerColor]: simpleAccordion ? false : expand\n })}\n onClick={handleOnClickAccordion}\n >\n <div className={classes.titleWrapper}>\n <div>\n <div className={classes.titleStatusWrapper}>\n <Typography variant={titleVariant} noWrap={noWrapTitle}>\n {title}\n </Typography>\n {statusLabel && <StatusChip\n status={status ?? color}\n label={statusLabel}\n icon={statusIcon}\n />}\n </div>\n\n {subtitle && (\n <Typography variant={subtitleVariant} noWrap={noWrapTitle}>\n {subtitle}\n </Typography>\n )}\n\n {overriddenSecondaryContainer ? (\n { overriddenSecondaryContainer }\n ) : (\n <div>\n {secondaryIconButtons?.length > 0 && (\n <div className={classes.secondaryButtonsWrapper}>\n {secondaryIconButtons?.map((item) => (\n <div className={classes.buttonWrapper}>\n <IconButtonWithTooltip\n {...item}\n title={item?.title}\n icon={item.icon}\n onClick={(event) => {\n event.stopPropagation();\n item.onClick();\n }}\n size='small'\n id={`udpRecord-Accordion-${item?.title}-${recordId}`}\n udprecordid={`udpRecord-Accordion-${item?.title}-${recordId}`}\n />\n {item?.value && <Typography>{item?.value}</Typography>}\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n {!hideRightIconButton && !simpleAccordion && (\n <div>\n <IconButtonWithTooltip\n title={rightIconTooltip}\n icon={rightIcon}\n onClick={(event) => {\n event.stopPropagation();\n rightIconAction();\n }}\n className={classes.rightIconButton}\n size='small'\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-RightButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-RightButton-${recordId}`}\n />\n </div>\n )}\n </div>\n {!hidePrimaryAction && !simpleAccordion && (\n <div className={classes.primaryButtonWrapper}>\n {primaryActionIcon ? (\n <Tooltip title={primaryActionLabel}>\n <ButtonBase\n onClick={(event) => {\n event.stopPropagation();\n primaryAction();\n }}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n id={`udpRecord-Accordion-ButtonBase-${recordId}`}\n udprecordid={`udpRecord-Accordion-ButtonBase-${recordId}`}\n >\n <FluentIcon component={primaryActionIcon} />\n </ButtonBase>\n </Tooltip>\n ) : (\n <ButtonBase\n onClick={primaryAction}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n >\n <Typography className={classes.primaryActionLabel}>\n {primaryActionLabel}\n </Typography>\n </ButtonBase>\n )}\n </div>\n )}\n {simpleAccordion && (\n <FluentIconButton\n icon={getIconFromName('ChevronDownIcon')}\n onClick={handleOnClickAccordion}\n className={clsx(classes.expand, {\n [classes.expandOpen]: expand\n })}\n size={chevronIconSize}\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-ExpandButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-ExpandButton-${recordId}`}\n />\n )}\n </div>\n <Collapse in={expand} timeout='auto' unmountOnExit={unmountOnExit}>\n <div>\n <div>{children}</div>\n {!hideCloseButton && !simpleAccordion && (\n <div className={classes.closeButtonWrapper}>\n <ButtonBase\n onClick={() => {\n if (setExpand) {\n setExpand(false);\n }\n }}\n className={classes.unexpandedIconButton}\n id={`udpRecord-Accordion-CloseButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-CloseButton-${recordId}`}\n >\n <FluentIcon component={ChevronUpIcon} />\n </ButtonBase>\n </div>\n )}\n </div>\n </Collapse>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accordion-CQ1AqRla.js","names":[],"sources":["../src/UI/accordion/Accordion.jsx"],"sourcesContent":["import {\n ButtonBase,\n Collapse,\n Tooltip,\n Typography,\n lighten,\n makeStyles\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport React, { useCallback } from 'react';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { IconButtonWithTooltip } from '../inputs/buttons/IconButtonWithToolTip';\nimport { ChevronUpIcon } from '@fluentui/react-icons';\nimport { FluentIconButton } from '../inputs/buttons/FluentIconButton';\nimport { getIconFromName } from '../../utilities/tree/TreeUtilities';\nimport { StatusChip } from '../dataDisplay/status/StatusChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n height: '100%'\n },\n rootBorder: {\n borderStyle: 'solid',\n borderColor: (props) => theme.palette[props?.color]?.main,\n borderWidth: '1px 1px 1px 6px'\n },\n headerWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n backgroundColor: (props) =>\n props?.simpleAccordion && props?.color && props?.color !== 'default'\n ? props?.color === 'paper'\n ? theme.palette.background.paper\n : lighten(theme.palette[props?.color]?.light, 0.8)\n : theme.palette.background.default,\n overflow: 'hidden',\n width: (props) => props?.headerWidth ?? '100%'\n },\n secondaryButtonsWrapper: {\n display: 'flex',\n gap: theme.spacing(2),\n borderRadius: theme.spacing(2),\n backgroundColor: 'white',\n padding: `2px ${theme.spacing(1)}px`,\n width: 'fit-content'\n },\n primaryButtonWrapper: {\n minWidth: '68px',\n maxWidth: (props) => props?.primaryActionMaxWidth,\n height: 'auto',\n color: 'white',\n backgroundColor: (props) => theme.palette[props?.color]?.main,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal'\n },\n headerColor: {\n backgroundColor: (props) =>\n props?.color !== 'default' &&\n props?.color !== 'paper' &&\n lighten(theme.palette[props?.color]?.light, 0.85)\n },\n buttonWrapper: {\n display: 'flex',\n gap: theme.spacing(0.5)\n },\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexGrow: 2,\n margin: (props) => (props.removeHeaderMargin ? '0px' : theme.spacing(0.8)),\n color: theme.palette.text.primary\n },\n closeButtonWrapper: {\n display: 'flex',\n justifyContent: 'flex-end',\n marginTop: theme.spacing(1)\n },\n unexpandedIconButton: {\n width: '68px',\n height: '40px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal',\n borderTop: `solid 1px lightgrey`,\n borderLeft: `solid 1px lightgrey`,\n overflow: 'hidden',\n border: (props) => props?.removeBorder && '0px'\n },\n rightIconButton: {\n backgroundColor: 'white',\n padding: theme.spacing(1),\n borderRadius: '50%'\n },\n primaryActionLabel: {\n marginRight: theme.spacing(0.5),\n marginLeft: theme.spacing(0.5)\n },\n expand: {\n transform: 'rotate(0deg)',\n marginLeft: 'auto',\n marginRight: theme.spacing(1),\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n })\n },\n expandOpen: {\n transform: 'rotate(180deg)'\n },\n titleStatusWrapper: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n }\n}));\n\nexport const Accordion = (props) => {\n const {\n title,\n subtitle,\n subtitleVariant,\n status,\n statusIcon,\n statusLabel,\n secondaryIconButtons,\n overriddenSecondaryContainer,\n rightIcon,\n rightIconAction,\n rightIconTooltip,\n disableRightIconButton = false,\n primaryActionIcon,\n primaryActionLabel,\n primaryAction,\n primaryActionMaxWidth,\n disablePrimaryActionButton = false,\n color = 'info',\n children,\n expand,\n setExpand,\n additionalEvent,\n hideCloseButton = false,\n hideRightIconButton = false,\n hidePrimaryAction = false,\n noWrapTitle = false,\n simpleAccordion = false,\n recordId = 0,\n removeBorder = false,\n headerWidth,\n removeHeaderMargin,\n titleVariant = 'subtitle2',\n chevronIconSize = 'medium',\n unmountOnExit = true\n } = props;\n const classes = useStyles({\n color,\n primaryActionMaxWidth,\n simpleAccordion,\n headerWidth,\n removeHeaderMargin,\n removeBorder,\n });\n\n const handleOnClickAccordion = useCallback(() => {\n if (setExpand) {\n setExpand(!expand);\n }\n\n if (additionalEvent) {\n additionalEvent();\n }\n }, [additionalEvent, expand, setExpand]);\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.rootBorder]: !simpleAccordion & !removeBorder\n })}\n >\n <div\n className={clsx(classes.headerWrapper, {\n [classes.headerColor]: simpleAccordion ? false : expand\n })}\n onClick={handleOnClickAccordion}\n >\n <div className={classes.titleWrapper}>\n <div>\n <div className={classes.titleStatusWrapper}>\n <Typography variant={titleVariant} noWrap={noWrapTitle}>\n {title}\n </Typography>\n {statusLabel && <StatusChip\n status={status ?? color}\n label={statusLabel}\n icon={statusIcon}\n />}\n </div>\n\n {subtitle && (\n <Typography variant={subtitleVariant} noWrap={noWrapTitle}>\n {subtitle}\n </Typography>\n )}\n\n {overriddenSecondaryContainer ? (\n { overriddenSecondaryContainer }\n ) : (\n <div>\n {secondaryIconButtons?.length > 0 && (\n <div className={classes.secondaryButtonsWrapper}>\n {secondaryIconButtons?.map((item) => (\n <div className={classes.buttonWrapper}>\n <IconButtonWithTooltip\n {...item}\n title={item?.title}\n icon={item.icon}\n onClick={(event) => {\n event.stopPropagation();\n item.onClick();\n }}\n size='small'\n id={`udpRecord-Accordion-${item?.title}-${recordId}`}\n udprecordid={`udpRecord-Accordion-${item?.title}-${recordId}`}\n />\n {item?.value && <Typography>{item?.value}</Typography>}\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n {!hideRightIconButton && !simpleAccordion && (\n <div>\n <IconButtonWithTooltip\n title={rightIconTooltip}\n icon={rightIcon}\n onClick={(event) => {\n event.stopPropagation();\n rightIconAction();\n }}\n className={classes.rightIconButton}\n size='small'\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-RightButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-RightButton-${recordId}`}\n />\n </div>\n )}\n </div>\n {!hidePrimaryAction && !simpleAccordion && (\n <div className={classes.primaryButtonWrapper}>\n {primaryActionIcon ? (\n <Tooltip title={primaryActionLabel}>\n <ButtonBase\n onClick={(event) => {\n event.stopPropagation();\n primaryAction();\n }}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n id={`udpRecord-Accordion-ButtonBase-${recordId}`}\n udprecordid={`udpRecord-Accordion-ButtonBase-${recordId}`}\n >\n <FluentIcon component={primaryActionIcon} />\n </ButtonBase>\n </Tooltip>\n ) : (\n <ButtonBase\n onClick={primaryAction}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n >\n <Typography className={classes.primaryActionLabel}>\n {primaryActionLabel}\n </Typography>\n </ButtonBase>\n )}\n </div>\n )}\n {simpleAccordion && (\n <FluentIconButton\n icon={getIconFromName('ChevronDownIcon')}\n onClick={handleOnClickAccordion}\n className={clsx(classes.expand, {\n [classes.expandOpen]: expand\n })}\n size={chevronIconSize}\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-ExpandButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-ExpandButton-${recordId}`}\n />\n )}\n </div>\n <Collapse in={expand} timeout='auto' unmountOnExit={unmountOnExit}>\n <div>\n <div>{children}</div>\n {!hideCloseButton && !simpleAccordion && (\n <div className={classes.closeButtonWrapper}>\n <ButtonBase\n onClick={() => {\n if (setExpand) {\n setExpand(false);\n }\n }}\n className={classes.unexpandedIconButton}\n id={`udpRecord-Accordion-CloseButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-CloseButton-${recordId}`}\n >\n <FluentIcon component={ChevronUpIcon} />\n </ButtonBase>\n </div>\n )}\n </div>\n </Collapse>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;AAiBA,MAAM,YAAY,YAAY,WAAW;CACvC,MAAM;EACJ,OAAO;EACP,QAAQ;EACT;CACD,YAAY;EACV,aAAa;EACb,cAAc,UAAU,MAAM,QAAQ,OAAO,QAAQ;EACrD,aAAa;EACd;CACD,eAAe;EACb,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,kBAAkB,UAChB,OAAO,mBAAmB,OAAO,SAAS,OAAO,UAAU,YACvD,OAAO,UAAU,UACf,MAAM,QAAQ,WAAW,QACzB,QAAQ,MAAM,QAAQ,OAAO,QAAQ,OAAO,GAAI,GAClD,MAAM,QAAQ,WAAW;EAC/B,UAAU;EACV,QAAQ,UAAU,OAAO,eAAe;EACzC;CACD,yBAAyB;EACvB,SAAS;EACT,KAAK,MAAM,QAAQ,EAAE;EACrB,cAAc,MAAM,QAAQ,EAAE;EAC9B,iBAAiB;EACjB,SAAS,OAAO,MAAM,QAAQ,EAAE,CAAC;EACjC,OAAO;EACR;CACD,sBAAsB;EACpB,UAAU;EACV,WAAW,UAAU,OAAO;EAC5B,QAAQ;EACR,OAAO;EACP,kBAAkB,UAAU,MAAM,QAAQ,OAAO,QAAQ;EACzD,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,WAAW;EACZ;CACD,aAAa,EACX,kBAAkB,UAChB,OAAO,UAAU,aACjB,OAAO,UAAU,WACjB,QAAQ,MAAM,QAAQ,OAAO,QAAQ,OAAO,IAAK,EACpD;CACD,eAAe;EACb,SAAS;EACT,KAAK,MAAM,QAAQ,GAAI;EACxB;CACD,cAAc;EACZ,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,UAAU;EACV,SAAS,UAAW,MAAM,qBAAqB,QAAQ,MAAM,QAAQ,GAAI;EACzE,OAAO,MAAM,QAAQ,KAAK;EAC3B;CACD,oBAAoB;EAClB,SAAS;EACT,gBAAgB;EAChB,WAAW,MAAM,QAAQ,EAAE;EAC5B;CACD,sBAAsB;EACpB,OAAO;EACP,QAAQ;EACR,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,WAAW;EACX,WAAW;EACX,YAAY;EACZ,UAAU;EACV,SAAS,UAAU,OAAO,gBAAgB;EAC3C;CACD,iBAAiB;EACf,iBAAiB;EACjB,SAAS,MAAM,QAAQ,EAAE;EACzB,cAAc;EACf;CACD,oBAAoB;EAClB,aAAa,MAAM,QAAQ,GAAI;EAC/B,YAAY,MAAM,QAAQ,GAAI;EAC/B;CACD,QAAQ;EACN,WAAW;EACX,YAAY;EACZ,aAAa,MAAM,QAAQ,EAAE;EAC7B,YAAY,MAAM,YAAY,OAAO,aAAa,EAChD,UAAU,MAAM,YAAY,SAAS,UACtC,CAAC;EACH;CACD,YAAY,EACV,WAAW,kBACZ;CACD,oBAAoB;EAClB,SAAS;EACT,YAAY;EACZ,KAAK,MAAM,QAAQ,EAAE;EACtB;CACF,EAAE;AAEH,MAAa,aAAa,UAAU;CAClC,MAAM,EACJ,OACA,UACA,iBACA,QACA,YACA,aACA,sBACA,8BACA,WACA,iBACA,kBACA,yBAAyB,OACzB,mBACA,oBACA,eACA,uBACA,6BAA6B,OAC7B,QAAQ,QACR,UACA,QACA,WACA,iBACA,kBAAkB,OAClB,sBAAsB,OACtB,oBAAoB,OACpB,cAAc,OACd,kBAAkB,OAClB,WAAW,GACX,eAAe,OACf,aACA,oBACA,eAAe,aACf,kBAAkB,UAClB,gBAAgB,SACd;CACJ,MAAM,UAAU,UAAU;EACxB;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,yBAAyB,kBAAkB;AAC/C,MAAI,UACF,WAAU,CAAC,OAAO;AAGpB,MAAI,gBACF,kBAAiB;IAElB;EAAC;EAAiB;EAAQ;EAAU,CAAC;AAExC,QACE,oCAAC,SACC,WAAW,KAAK,QAAQ,MAAM,GAC3B,QAAQ,aAAa,CAAC,kBAAkB,CAAC,cAC3C,CAAC,IAEF,oCAAC;EACC,WAAW,KAAK,QAAQ,eAAe,GACpC,QAAQ,cAAc,kBAAkB,QAAQ,QAClD,CAAC;EACF,SAAS;IAET,oCAAC,SAAI,WAAW,QAAQ,gBACtB,oCAAC,aACC,oCAAC,SAAI,WAAW,QAAQ,sBACtB,oCAAC;EAAW,SAAS;EAAc,QAAQ;IACxC,MACU,EACZ,eAAe,oCAAC;EACf,QAAQ,UAAU;EAClB,OAAO;EACP,MAAM;GACN,CACE,EAEL,YACC,oCAAC;EAAW,SAAS;EAAiB,QAAQ;IAC3C,SACU,EAGd,+BACC,EAAE,8BAA8B,GAEhC,oCAAC,aACE,sBAAsB,SAAS,KAC9B,oCAAC,SAAI,WAAW,QAAQ,2BACrB,sBAAsB,KAAK,SAC1B,oCAAC,SAAI,WAAW,QAAQ,iBACtB,oCAAC;EACC,GAAI;EACJ,OAAO,MAAM;EACb,MAAM,KAAK;EACX,UAAU,UAAU;AAClB,SAAM,iBAAiB;AACvB,QAAK,SAAS;;EAEhB,MAAK;EACL,IAAI,uBAAuB,MAAM,MAAM,GAAG;EAC1C,aAAa,uBAAuB,MAAM,MAAM,GAAG;GACnD,EACD,MAAM,SAAS,oCAAC,kBAAY,MAAM,MAAmB,CAClD,CACN,CACE,CAEJ,CAEJ,EACL,CAAC,uBAAuB,CAAC,mBACxB,oCAAC,aACC,oCAAC;EACC,OAAO;EACP,MAAM;EACN,UAAU,UAAU;AAClB,SAAM,iBAAiB;AACvB,oBAAiB;;EAEnB,WAAW,QAAQ;EACnB,MAAK;EACL,UAAU;EACV,IAAI,mCAAmC;EACvC,aAAa,mCAAmC;GAChD,CACE,CAEJ,EACL,CAAC,qBAAqB,CAAC,mBACtB,oCAAC,SAAI,WAAW,QAAQ,wBACrB,oBACC,oCAAC,WAAQ,OAAO,sBACd,oCAAC;EACC,UAAU,UAAU;AAClB,SAAM,iBAAiB;AACvB,kBAAe;;EAEjB,WAAW,QAAQ;EACnB,UAAU;EACV,IAAI,kCAAkC;EACtC,aAAa,kCAAkC;IAE/C,oCAAC,cAAW,WAAW,oBAAqB,CACjC,CACL,GAEV,oCAAC;EACC,SAAS;EACT,WAAW,QAAQ;EACnB,UAAU;IAEV,oCAAC,cAAW,WAAW,QAAQ,sBAC5B,mBACU,CACF,CAEX,EAEP,mBACC,oCAAC;EACC,MAAM,gBAAgB,kBAAkB;EACxC,SAAS;EACT,WAAW,KAAK,QAAQ,QAAQ,GAC7B,QAAQ,aAAa,QACvB,CAAC;EACF,MAAM;EACN,UAAU;EACV,IAAI,oCAAoC;EACxC,aAAa,oCAAoC;GACjD,CAEA,EACN,oCAAC;EAAS,IAAI;EAAQ,SAAQ;EAAsB;IAClD,oCAAC,aACC,oCAAC,aAAK,SAAe,EACpB,CAAC,mBAAmB,CAAC,mBACpB,oCAAC,SAAI,WAAW,QAAQ,sBACtB,oCAAC;EACC,eAAe;AACb,OAAI,UACF,WAAU,MAAM;;EAGpB,WAAW,QAAQ;EACnB,IAAI,mCAAmC;EACvC,aAAa,mCAAmC;IAEhD,oCAAC,cAAW,WAAW,gBAAiB,CAC7B,CACT,CAEJ,CACG,CACP"}
|
package/dist/{advancedSearchBuilder-7ixhIwLW.js.map → advancedSearchBuilder-Dd4YO9zh.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advancedSearchBuilder-
|
|
1
|
+
{"version":3,"file":"advancedSearchBuilder-Dd4YO9zh.js","names":["UdpAdvancedSearchBuilder","UdpAdvancedSearchBuilderStencil"],"sources":["../src/UI/advancedSearchBuilder/UdpAdvancedSearchBuilder.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { UdpAdvancedSearchBuilder as UdpAdvancedSearchBuilderStencil } from 'udp-react-stencil-component-library';\nimport { useCatalogStore } from '../../stores/catalogStore';\n\nexport const UdpAdvancedSearchBuilder: React.FC<any> = (props) => {\n const { catalogsMap, currentApiCatalogId } = useCatalogStore();\n\n const catalogObjectList = useMemo(() => {\n if (\n catalogsMap &&\n currentApiCatalogId &&\n catalogsMap[currentApiCatalogId]\n ) {\n return catalogsMap[currentApiCatalogId]?.ctlg?.catalogObjectList;\n }\n }, [catalogsMap, currentApiCatalogId]);\n\n return (\n <div>\n {/* @ts-ignore */}\n <UdpAdvancedSearchBuilderStencil\n {...props}\n catalogObjectList={catalogObjectList}\n />\n </div>\n );\n};\n"],"mappings":";;;;;AAIA,MAAaA,8BAA2C,UAAU;CAChE,MAAM,EAAE,aAAa,wBAAwB,iBAAiB;CAE9D,MAAM,oBAAoB,cAAc;AACtC,MACE,eACA,uBACA,YAAY,qBAEZ,QAAO,YAAY,sBAAsB,MAAM;IAEhD,CAAC,aAAa,oBAAoB,CAAC;AAEtC,QACE,oCAAC,aAEC,oCAACC;EACC,GAAI;EACe;GACnB,CACE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./chunk-BN_g-Awi.js";
|
|
2
|
-
import { a as UdpDonutChart, i as UdpLineChart, n as UdpXYMultiSeriesChart, o as UdpDistributionChart, r as UdpSankeyChart, t as UdpBarChart } from "./UdpBarChart-
|
|
2
|
+
import { a as UdpDonutChart, i as UdpLineChart, n as UdpXYMultiSeriesChart, o as UdpDistributionChart, r as UdpSankeyChart, t as UdpBarChart } from "./UdpBarChart-D50QkZv0.js";
|
|
3
3
|
|
|
4
4
|
//#region src/UI/charts/amcharts/index.ts
|
|
5
5
|
var amcharts_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -13,4 +13,4 @@ var amcharts_exports = /* @__PURE__ */ __exportAll({
|
|
|
13
13
|
|
|
14
14
|
//#endregion
|
|
15
15
|
export { amcharts_exports as t };
|
|
16
|
-
//# sourceMappingURL=amcharts-
|
|
16
|
+
//# sourceMappingURL=amcharts-wdRwq2UE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amcharts-
|
|
1
|
+
{"version":3,"file":"amcharts-wdRwq2UE.js","names":[],"sources":["../src/UI/charts/amcharts/index.ts"],"sourcesContent":["\nexport * from \"./UdpDistributionChart\"\nexport * from \"./UdpDonutChart\"\nexport * from \"./UdpLineChart\"\nexport * from \"./UdpSankeyChart\"\nexport * from \"./UdpXYMultiSeriesChart\"\nexport * from \"./UdpBarChart\"\n"],"mappings":""}
|
|
@@ -156,4 +156,4 @@ const FluentUploadIconButton = (props) => {
|
|
|
156
156
|
|
|
157
157
|
//#endregion
|
|
158
158
|
export { FluentMenuListItem as a, FluentMenuListButton as i, FluentCompoundButton as n, FluentUploadButton as r, FluentUploadIconButton as t };
|
|
159
|
-
//# sourceMappingURL=buttons-
|
|
159
|
+
//# sourceMappingURL=buttons-BUWLNCFF.js.map
|