udp-react-enterprise-component-library 25.18.1-beta.35 → 25.18.1-beta.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ActionProvider-BiXGsnVD.js → ActionProvider-Baw1T6NO.js} +4 -4
- package/dist/{ActionProvider-BiXGsnVD.js.map → ActionProvider-Baw1T6NO.js.map} +1 -1
- package/dist/{ActionSplitScreen-B6CwvyKz.js → ActionSplitScreen-iHYpf5b3.js} +5 -5
- package/dist/{ActionSplitScreen-B6CwvyKz.js.map → ActionSplitScreen-iHYpf5b3.js.map} +1 -1
- package/dist/{ActionWrapper-D_kTqDlx.js → ActionWrapper-BFnTN0Yg.js} +8 -8
- package/dist/{ActionWrapper-D_kTqDlx.js.map → ActionWrapper-BFnTN0Yg.js.map} +1 -1
- package/dist/{AggregateChip-CMsjzRuS.js → AggregateChip-VJ-QIBJt.js} +3 -3
- package/dist/{AggregateChip-CMsjzRuS.js.map → AggregateChip-VJ-QIBJt.js.map} +1 -1
- package/dist/{AmChart-CGJv7thW.js → AmChart-CVhkLkUN.js} +1 -1
- package/dist/{AmChart-CGJv7thW.js.map → AmChart-CVhkLkUN.js.map} +1 -1
- package/dist/{AmbientGridTemplate-d8EoaQH7.js → AmbientGridTemplate-VCZhDcIf.js} +4 -4
- package/dist/{AmbientGridTemplate-d8EoaQH7.js.map → AmbientGridTemplate-VCZhDcIf.js.map} +1 -1
- package/dist/{AmbientSingleDateSelector-DwyiHvnP.js → AmbientSingleDateSelector-6GlRqv6f.js} +1 -1
- package/dist/{AmbientSingleDateSelector-DwyiHvnP.js.map → AmbientSingleDateSelector-6GlRqv6f.js.map} +1 -1
- package/dist/{AmbientStepper-D9NzCqa8.js → AmbientStepper-Dv1WH2x1.js} +6 -6
- package/dist/{AmbientStepper-D9NzCqa8.js.map → AmbientStepper-Dv1WH2x1.js.map} +1 -1
- package/dist/{AmbientVisualizationCard-Ci615JQM.js → AmbientVisualizationCard-BAGEKWJD.js} +3 -3
- package/dist/{AmbientVisualizationCard-Ci615JQM.js.map → AmbientVisualizationCard-BAGEKWJD.js.map} +1 -1
- package/dist/{AmbientVisualizer-B6kX3oPX.js → AmbientVisualizer-DQb7oRtt.js} +1 -1
- package/dist/{AmbientVisualizer-B6kX3oPX.js.map → AmbientVisualizer-DQb7oRtt.js.map} +1 -1
- package/dist/{AppMenu-umGrUP24.js → AppMenu-j_DFeCLT.js} +2 -2
- package/dist/{AppMenu-umGrUP24.js.map → AppMenu-j_DFeCLT.js.map} +1 -1
- package/dist/{BarChartWidget-Byhkw_b2.js → BarChartWidget-CBuIqMLi.js} +1 -1
- package/dist/{BarChartWidget-Byhkw_b2.js.map → BarChartWidget-CBuIqMLi.js.map} +1 -1
- package/dist/{BaseTreeMenu-BhAbJoRI.js → BaseTreeMenu-B4d--j95.js} +4 -4
- package/dist/{BaseTreeMenu-BhAbJoRI.js.map → BaseTreeMenu-B4d--j95.js.map} +1 -1
- package/dist/{BioCardWrapper-C6nBREs6.js → BioCardWrapper-BgaHtBHX.js} +2 -2
- package/dist/{BioCardWrapper-C6nBREs6.js.map → BioCardWrapper-BgaHtBHX.js.map} +1 -1
- package/dist/{BubbleWidget-DgZ62Qgp.js → BubbleWidget-Do4wzp65.js} +2 -2
- package/dist/{BubbleWidget-DgZ62Qgp.js.map → BubbleWidget-Do4wzp65.js.map} +1 -1
- package/dist/{BulkActionsGridButton-BqQVX9xA.js → BulkActionsGridButton-h4xG4HUd.js} +3 -3
- package/dist/{BulkActionsGridButton-BqQVX9xA.js.map → BulkActionsGridButton-h4xG4HUd.js.map} +1 -1
- package/dist/{CardList-FnAeVtYc.js → CardList-ClQJc1cb.js} +1 -1
- package/dist/{CardList-FnAeVtYc.js.map → CardList-ClQJc1cb.js.map} +1 -1
- package/dist/{CircleButton-DzJjhCYd.js → CircleButton-cl6mmDmn.js} +2 -2
- package/dist/{CircleButton-DzJjhCYd.js.map → CircleButton-cl6mmDmn.js.map} +1 -1
- package/dist/{CircleGaugeWidget-CmhDHqSL.js → CircleGaugeWidget-DpusOc7_.js} +1 -1
- package/dist/{CircleGaugeWidget-CmhDHqSL.js.map → CircleGaugeWidget-DpusOc7_.js.map} +1 -1
- package/dist/{ContentContainer-CIYq-KgJ.js → ContentContainer-BsADv-yT.js} +1 -1
- package/dist/{ContentContainer-CIYq-KgJ.js.map → ContentContainer-BsADv-yT.js.map} +1 -1
- package/dist/{CrudBrowserContainer-DI5Ad2Fs.js → CrudBrowserContainer-C9184dly.js} +2 -2
- package/dist/{CrudBrowserContainer-DI5Ad2Fs.js.map → CrudBrowserContainer-C9184dly.js.map} +1 -1
- package/dist/{CrudForm-DeevwuDd.js → CrudForm-CDbgz4Ki.js} +2 -2
- package/dist/{CrudForm-DeevwuDd.js.map → CrudForm-CDbgz4Ki.js.map} +1 -1
- package/dist/{CrudTableSidePanel-BNnuDNZS.js → CrudTableSidePanel-Bmw3Xftc.js} +3 -3
- package/dist/{CrudTableSidePanel-BNnuDNZS.js.map → CrudTableSidePanel-Bmw3Xftc.js.map} +1 -1
- package/dist/{DataBrowserContainer-nr4cDIBD.js → DataBrowserContainer-r-AWYMmq.js} +6 -6
- package/dist/{DataBrowserContainer-nr4cDIBD.js.map → DataBrowserContainer-r-AWYMmq.js.map} +1 -1
- package/dist/{DateTrendWidget-Di_sMLMg.js → DateTrendWidget-CWrblk64.js} +1 -1
- package/dist/{DateTrendWidget-Di_sMLMg.js.map → DateTrendWidget-CWrblk64.js.map} +1 -1
- package/dist/{DensePlotWidget-BjNgsZMp.js → DensePlotWidget-C6UlwnqI.js} +1 -1
- package/dist/{DensePlotWidget-BjNgsZMp.js.map → DensePlotWidget-C6UlwnqI.js.map} +1 -1
- package/dist/{Directory-BnhL-K3q.js → Directory-DvGh-Lfv.js} +1 -1
- package/dist/{Directory-BnhL-K3q.js.map → Directory-DvGh-Lfv.js.map} +1 -1
- package/dist/{EntityHeader-bK94krmA.js → EntityHeader-BPt9Q1cN.js} +4 -4
- package/dist/{EntityHeader-bK94krmA.js.map → EntityHeader-BPt9Q1cN.js.map} +1 -1
- package/dist/{FieldArrayCard-Dc9XMy05.js → FieldArrayCard-DhHMT4er.js} +3 -3
- package/dist/{FieldArrayCard-Dc9XMy05.js.map → FieldArrayCard-DhHMT4er.js.map} +1 -1
- package/dist/{FileUpload-CHoEtVre.js → FileUpload-BZxNg52V.js} +1 -1
- package/dist/{FileUpload-CHoEtVre.js.map → FileUpload-BZxNg52V.js.map} +1 -1
- package/dist/{FluentCardHeader-CsQtNtjK.js → FluentCardHeader-DhVrZpGP.js} +1 -1
- package/dist/{FluentCardHeader-CsQtNtjK.js.map → FluentCardHeader-DhVrZpGP.js.map} +1 -1
- package/dist/{FluentCell-Dm8aaWes.js → FluentCell-CedZugOG.js} +2 -2
- package/dist/{FluentCell-Dm8aaWes.js.map → FluentCell-CedZugOG.js.map} +1 -1
- package/dist/{FluentDataTable-n4F_YwWi.js → FluentDataTable-CfZvFZIp.js} +2 -2
- package/dist/{FluentDataTable-n4F_YwWi.js.map → FluentDataTable-CfZvFZIp.js.map} +1 -1
- package/dist/{FluentLink-ChTXAsZZ.js → FluentLink-DS45dlRc.js} +1 -1
- package/dist/{FluentLink-ChTXAsZZ.js.map → FluentLink-DS45dlRc.js.map} +1 -1
- package/dist/{FluentProfileMenuCard-BdLCpdPv.js → FluentProfileMenuCard-RU7wosYK.js} +5 -5
- package/dist/{FluentProfileMenuCard-BdLCpdPv.js.map → FluentProfileMenuCard-RU7wosYK.js.map} +1 -1
- package/dist/{FluentRadioGroup-CafyJl31.js → FluentRadioGroup-c7Gm4njz.js} +1 -1
- package/dist/{FluentRadioGroup-CafyJl31.js.map → FluentRadioGroup-c7Gm4njz.js.map} +1 -1
- package/dist/{FluentSelectMenu-BlGxxA1Z.js → FluentSelectMenu-DWwJk0Gh.js} +1 -1
- package/dist/{FluentSelectMenu-BlGxxA1Z.js.map → FluentSelectMenu-DWwJk0Gh.js.map} +1 -1
- package/dist/{FluentSimpleSelect-BxLwVTnc.js → FluentSimpleSelect-DCrJDofS.js} +2 -2
- package/dist/{FluentSimpleSelect-BxLwVTnc.js.map → FluentSimpleSelect-DCrJDofS.js.map} +1 -1
- package/dist/{FluentTimePicker-CtijxH02.js → FluentTimePicker-C9wwQ3wX.js} +1 -1
- package/dist/{FluentTimePicker-CtijxH02.js.map → FluentTimePicker-C9wwQ3wX.js.map} +1 -1
- package/dist/{FluentTimeline-B-6cg-o7.js → FluentTimeline--7ISkVOo.js} +1 -1
- package/dist/{FluentTimeline-B-6cg-o7.js.map → FluentTimeline--7ISkVOo.js.map} +1 -1
- package/dist/{GaugeWidget-BT7YuEQO.js → GaugeWidget-DFZwCzN6.js} +1 -1
- package/dist/{GaugeWidget-BT7YuEQO.js.map → GaugeWidget-DFZwCzN6.js.map} +1 -1
- package/dist/{GraphCard-TjBoeauz.js → GraphCard-C-nGs4y1.js} +1 -1
- package/dist/{GraphCard-TjBoeauz.js.map → GraphCard-C-nGs4y1.js.map} +1 -1
- package/dist/{GridFunctions-Chj_vcVe.js → GridFunctions-CRTDIOe0.js} +2 -2
- package/dist/{GridFunctions-Chj_vcVe.js.map → GridFunctions-CRTDIOe0.js.map} +1 -1
- package/dist/{GroupNode-D1aehQ7K.js → GroupNode-Djp62Urb.js} +2 -2
- package/dist/{GroupNode-D1aehQ7K.js.map → GroupNode-Djp62Urb.js.map} +1 -1
- package/dist/{IconKey-DKiQELkd.js → IconKey-CayWYYXb.js} +1 -1
- package/dist/{IconKey-DKiQELkd.js.map → IconKey-CayWYYXb.js.map} +1 -1
- package/dist/{IconRenderer-DFpfUgfn.js → IconRenderer-B6ZoqrTX.js} +2 -2
- package/dist/{IconRenderer-DFpfUgfn.js.map → IconRenderer-B6ZoqrTX.js.map} +1 -1
- package/dist/{ImportDataFromFileMapping-BL5MOAS-.js → ImportDataFromFileMapping-CZQe7oHY.js} +2 -2
- package/dist/{ImportDataFromFileMapping-BL5MOAS-.js.map → ImportDataFromFileMapping-CZQe7oHY.js.map} +1 -1
- package/dist/{LineAndSparklinesWidget-CWnA37yw.js → LineAndSparklinesWidget-CsbQ4V9K.js} +1 -1
- package/dist/{LineAndSparklinesWidget-CWnA37yw.js.map → LineAndSparklinesWidget-CsbQ4V9K.js.map} +1 -1
- package/dist/{LineGraphWidget-DOJF9RDB.js → LineGraphWidget-fMmDKCHt.js} +1 -1
- package/dist/{LineGraphWidget-DOJF9RDB.js.map → LineGraphWidget-fMmDKCHt.js.map} +1 -1
- package/dist/MenuPage-NcImSCbx.js +3 -0
- package/dist/{MenuPage-CEqDX-_3.js → MenuPage-l6jiWcbB.js} +4 -4
- package/dist/{MenuPage-CEqDX-_3.js.map → MenuPage-l6jiWcbB.js.map} +1 -1
- package/dist/{MttMainTimeline-rLgkgX8U.js → MttMainTimeline-CW0QNrZw.js} +2 -2
- package/dist/{MttMainTimeline-rLgkgX8U.js.map → MttMainTimeline-CW0QNrZw.js.map} +1 -1
- package/dist/{MttSummary-DeCFHat3.js → MttSummary-CGTFEyQB.js} +3 -3
- package/dist/{MttSummary-DeCFHat3.js.map → MttSummary-CGTFEyQB.js.map} +1 -1
- package/dist/MyExportsPage-CkmqBYdn.js +3 -0
- package/dist/{MyExportsPage-Aapj7fCZ.js → MyExportsPage-DKkxU7yl.js} +3 -3
- package/dist/{MyExportsPage-Aapj7fCZ.js.map → MyExportsPage-DKkxU7yl.js.map} +1 -1
- package/dist/{NewsCard-BBh7InGE.js → NewsCard-C4g0OUT_.js} +1 -1
- package/dist/{NewsCard-BBh7InGE.js.map → NewsCard-C4g0OUT_.js.map} +1 -1
- package/dist/{Notes-CKryM0aj.js → Notes-MpEDLM1w.js} +1 -1
- package/dist/{Notes-CKryM0aj.js.map → Notes-MpEDLM1w.js.map} +1 -1
- package/dist/{NotesScreen-9Y5eOiU1.js → NotesScreen-DWfxRWOF.js} +6 -6
- package/dist/{NotesScreen-9Y5eOiU1.js.map → NotesScreen-DWfxRWOF.js.map} +1 -1
- package/dist/{OutlookCallback-CnRfyIik.js → OutlookCallback-B4JgQHYB.js} +1 -1
- package/dist/{OutlookCallback-CnRfyIik.js.map → OutlookCallback-B4JgQHYB.js.map} +1 -1
- package/dist/{PageActionWrapper-QgeZfyDl.js → PageActionWrapper-D0NcrIw5.js} +3 -3
- package/dist/{PageActionWrapper-QgeZfyDl.js.map → PageActionWrapper-D0NcrIw5.js.map} +1 -1
- package/dist/{PageNotFoundRoute-BAlMpeF8.js → PageNotFoundRoute-CQzy18Sw.js} +1 -1
- package/dist/{PageNotFoundRoute-BAlMpeF8.js.map → PageNotFoundRoute-CQzy18Sw.js.map} +1 -1
- package/dist/{PageNotFoundRoute-CLhbx6VD.js → PageNotFoundRoute-CsgaQRPa.js} +1 -1
- package/dist/{PageRenderer-BDRCRdNS.js → PageRenderer-uHAdepVs.js} +2 -2
- package/dist/{PageRenderer-BDRCRdNS.js.map → PageRenderer-uHAdepVs.js.map} +1 -1
- package/dist/{PaymentForm-Cw-6-woy.js → PaymentForm-ErYvUdUC.js} +27 -27
- package/dist/{PaymentForm-Cw-6-woy.js.map → PaymentForm-ErYvUdUC.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesTable-B28Q8F1Y.js → RecentlyLoadedNodesTable-CK3mVYCX.js} +2 -2
- package/dist/{RecentlyLoadedNodesTable-B28Q8F1Y.js.map → RecentlyLoadedNodesTable-CK3mVYCX.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesWidget-BgdSOq6I.js → RecentlyLoadedNodesWidget-D-cwlG4S.js} +2 -2
- package/dist/{RecentlyLoadedNodesWidget-BgdSOq6I.js.map → RecentlyLoadedNodesWidget-D-cwlG4S.js.map} +1 -1
- package/dist/{RejectIcon-dXvOFAlm.js → RejectIcon-yYl-EGWG.js} +1 -1
- package/dist/{RejectIcon-dXvOFAlm.js.map → RejectIcon-yYl-EGWG.js.map} +1 -1
- package/dist/{RemindersCard-z4dtBhhT.js → RemindersCard-b0Z_AUu4.js} +4 -4
- package/dist/{RemindersCard-z4dtBhhT.js.map → RemindersCard-b0Z_AUu4.js.map} +1 -1
- package/dist/{RemindersScreen-DQD_XKIp.js → RemindersScreen-BOsf651X.js} +6 -6
- package/dist/{RemindersScreen-DQD_XKIp.js.map → RemindersScreen-BOsf651X.js.map} +1 -1
- package/dist/{RemindersWidget-DMWlbmbX.js → RemindersWidget-CMNGJkAt.js} +5 -5
- package/dist/{RemindersWidget-DMWlbmbX.js.map → RemindersWidget-CMNGJkAt.js.map} +1 -1
- package/dist/{SearchServiceDatasource-Ci4OIAl1.js → SearchServiceDatasource-DhJk0qU3.js} +3 -3
- package/dist/{SearchServiceDatasource-Ci4OIAl1.js.map → SearchServiceDatasource-DhJk0qU3.js.map} +1 -1
- package/dist/{SearchUtilities-On0QS5vE.js → SearchUtilities-CNz302LN.js} +2 -2
- package/dist/{SearchUtilities-On0QS5vE.js.map → SearchUtilities-CNz302LN.js.map} +1 -1
- package/dist/{Shell-CGogIHh_.js → Shell-D7FDH0KZ.js} +6 -6
- package/dist/{Shell-CGogIHh_.js.map → Shell-D7FDH0KZ.js.map} +1 -1
- package/dist/{ShortcutContentFinder-D52eFY1l.js → ShortcutContentFinder-DkWVHF1Q.js} +5 -5
- package/dist/{ShortcutContentFinder-D52eFY1l.js.map → ShortcutContentFinder-DkWVHF1Q.js.map} +1 -1
- package/dist/{SimpleTable-CqvnDTLl.js → SimpleTable-BI6LwXgh.js} +1 -1
- package/dist/{SimpleTable-CqvnDTLl.js.map → SimpleTable-BI6LwXgh.js.map} +1 -1
- package/dist/{SparsePlotWidget-H4lx8Kaz.js → SparsePlotWidget-DBAY2rX7.js} +1 -1
- package/dist/{SparsePlotWidget-H4lx8Kaz.js.map → SparsePlotWidget-DBAY2rX7.js.map} +1 -1
- package/dist/{Statistic-CBbuk5HT.js → Statistic-0UgK8lPL.js} +2 -2
- package/dist/{Statistic-CBbuk5HT.js.map → Statistic-0UgK8lPL.js.map} +1 -1
- package/dist/{StatusCellRenderer-CLU8uo3Q.js → StatusCellRenderer-DDWwna7U.js} +1 -1
- package/dist/{StatusCellRenderer-CLU8uo3Q.js.map → StatusCellRenderer-DDWwna7U.js.map} +1 -1
- package/dist/{TableContainer-CJe7qOlC.js → TableContainer-DugYuSJF.js} +3 -3
- package/dist/{TableContainer-CJe7qOlC.js.map → TableContainer-DugYuSJF.js.map} +1 -1
- package/dist/{TenantProvider-DL25tmB1.js → TenantProvider-ByI6uAoc.js} +2 -2
- package/dist/{TenantProvider-DL25tmB1.js.map → TenantProvider-ByI6uAoc.js.map} +1 -1
- package/dist/{TicketCard-DQGB9AgD.js → TicketCard-DBaKP94u.js} +1 -1
- package/dist/{TicketCard-DQGB9AgD.js.map → TicketCard-DBaKP94u.js.map} +1 -1
- package/dist/{TimelineCalendar-C0xE1Q04.js → TimelineCalendar-Wjv3XhN5.js} +1 -1
- package/dist/{TimelineCalendar-C0xE1Q04.js.map → TimelineCalendar-Wjv3XhN5.js.map} +1 -1
- package/dist/{TokenGroupItem-DLU0AK1S.js → TokenGroupItem-DBHuBDVC.js} +1 -1
- package/dist/{TokenGroupItem-DLU0AK1S.js.map → TokenGroupItem-DBHuBDVC.js.map} +1 -1
- package/dist/{TreeUtilities-CujOFOPm.js → TreeUtilities-kiPupulY.js} +4 -4
- package/dist/{TreeUtilities-CujOFOPm.js.map → TreeUtilities-kiPupulY.js.map} +1 -1
- package/dist/UI/accordion/index.js +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/FluentCell/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/calendar/index.js +1 -1
- package/dist/UI/dataDisplay/cardList/index.js +1 -1
- package/dist/UI/dataDisplay/directory/index.js +1 -1
- package/dist/UI/dataDisplay/entityHeader/index.js +1 -1
- package/dist/UI/dataDisplay/index.js +1 -1
- package/dist/UI/dataDisplay/map/index.js +1 -1
- package/dist/UI/dataDisplay/notes/index.js +1 -1
- package/dist/UI/dataDisplay/ticketCard/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/fileViewer/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 +14 -14
- package/dist/UI/inputs/calendar/index.js +1 -1
- package/dist/UI/inputs/dateRangeSelector/index.js +1 -1
- package/dist/UI/inputs/fieldArrayCard/index.js +1 -1
- package/dist/UI/inputs/link/index.js +1 -1
- package/dist/UI/inputs/menus/AmbientStepper/index.js +1 -1
- package/dist/UI/inputs/menus/index.js +2 -2
- package/dist/UI/inputs/pickers/index.js +2 -2
- package/dist/UI/inputs/radio/index.js +1 -1
- package/dist/UI/mapLayout/index.js +1 -1
- package/dist/UI/mapLayout/ui/index.js +1 -1
- package/dist/UI/navigation/index.js +1 -1
- package/dist/UI/navigation/menus/index.js +1 -1
- package/dist/UI/surfaces/cards/chartDisplayCards/index.js +1 -1
- package/dist/UI/surfaces/cards/fluentCards/index.js +1 -1
- package/dist/UI/surfaces/cards/newsCard/index.js +1 -1
- package/dist/UI/surfaces/cards/workOrderCard/index.js +1 -1
- package/dist/UI/templates/calendar/index.js +1 -1
- package/dist/UI/templates/deprecated/AmbientGridTemplate/index.js +1 -1
- package/dist/UI/templates/deprecated/UdpGridTemplate/index.js +1 -1
- package/dist/UI/templates/ui/index.js +1 -1
- package/dist/UI/templates/ui/renderers/index.js +2 -2
- package/dist/UI/timeline/fluentTimeline/index.js +1 -1
- package/dist/UI/timeline/index.js +1 -1
- package/dist/UI/utilityDisplay/alerts/index.js +1 -1
- package/dist/UI/utilityDisplay/index.js +5 -5
- package/dist/UI/utilityDisplay/utilities/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/CircleGaugeWidget/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/GaugeWidget/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/RecentlyLoadedNodesWidget/index.js +1 -1
- package/dist/UI/widgets/library/RemindersWidget/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/{UdpAlertsContainer-CsQfN0Cg.js → UdpAlertsContainer-CE63vJ1B.js} +4 -4
- package/dist/{UdpAlertsContainer-CsQfN0Cg.js.map → UdpAlertsContainer-CE63vJ1B.js.map} +1 -1
- package/dist/{UdpAuditEvents-CbCZ5ND-.js → UdpAuditEvents-CiPHLRN-.js} +2 -2
- package/dist/{UdpAuditEvents-CbCZ5ND-.js.map → UdpAuditEvents-CiPHLRN-.js.map} +1 -1
- package/dist/UdpAuditEventsPage-CGWixtmq.js +3 -0
- package/dist/{UdpAuditEventsPage-BfwuxYxk.js → UdpAuditEventsPage-CzgzFO4P.js} +3 -3
- package/dist/{UdpAuditEventsPage-BfwuxYxk.js.map → UdpAuditEventsPage-CzgzFO4P.js.map} +1 -1
- package/dist/{UdpCalendarYearView-TZowGC77.js → UdpCalendarYearView-Djr7YCT3.js} +1 -1
- package/dist/{UdpCalendarYearView-TZowGC77.js.map → UdpCalendarYearView-Djr7YCT3.js.map} +1 -1
- package/dist/{UdpDataBrowserPage-C746qBki.js → UdpDataBrowserPage-BsR670I7.js} +7 -7
- package/dist/{UdpDataBrowserPage-C746qBki.js.map → UdpDataBrowserPage-BsR670I7.js.map} +1 -1
- package/dist/{UdpDateRangeSelector-C5toPT2E.js → UdpDateRangeSelector-C0jEXHEQ.js} +1 -1
- package/dist/{UdpDateRangeSelector-C5toPT2E.js.map → UdpDateRangeSelector-C0jEXHEQ.js.map} +1 -1
- package/dist/UdpFormsBuilderPage-CoNaXBSz.js.map +1 -1
- package/dist/{UdpPrivateForm-Dhy6BBRl.js → UdpFormsPrivateForm-BCXlSJcR.js} +20 -8
- package/dist/UdpFormsPrivateForm-BCXlSJcR.js.map +1 -0
- package/dist/{UdpPublicForm-8v4_-QNd.js → UdpFormsPublicForm-DveT2KAy.js} +5 -5
- package/dist/UdpFormsPublicForm-DveT2KAy.js.map +1 -0
- package/dist/{UdpFormsSubmissionGrid-DQn0-17O.js → UdpFormsSubmissionGrid-3806WiQB.js} +72 -15
- package/dist/UdpFormsSubmissionGrid-3806WiQB.js.map +1 -0
- package/dist/{UdpGridPanelManagementPage-INlmheiF.js → UdpGridPanelManagementPage-Dzu7o8P5.js} +2 -2
- package/dist/{UdpGridPanelManagementPage-INlmheiF.js.map → UdpGridPanelManagementPage-Dzu7o8P5.js.map} +1 -1
- package/dist/{UdpGridTemplate-SGI-8dJX.js → UdpGridTemplate-BswnwevH.js} +1 -1
- package/dist/{UdpGridTemplate-SGI-8dJX.js.map → UdpGridTemplate-BswnwevH.js.map} +1 -1
- package/dist/{UdpImportFromFileMappingPage-v0D7v216.js → UdpImportFromFileMappingPage-CjCTzU9E.js} +2 -2
- package/dist/{UdpImportFromFileMappingPage-v0D7v216.js.map → UdpImportFromFileMappingPage-CjCTzU9E.js.map} +1 -1
- package/dist/{UdpInquiryMaintenanceEnginePage-BPZhmEmg.js → UdpInquiryMaintenanceEnginePage-4HYSYxGd.js} +2 -2
- package/dist/{UdpInquiryMaintenanceEnginePage-BPZhmEmg.js.map → UdpInquiryMaintenanceEnginePage-4HYSYxGd.js.map} +1 -1
- package/dist/{UdpMaintenanceEnginePage-CI3rZ6G9.js → UdpMaintenanceEnginePage-B8Tvv1dZ.js} +6 -6
- package/dist/{UdpMaintenanceEnginePage-CI3rZ6G9.js.map → UdpMaintenanceEnginePage-B8Tvv1dZ.js.map} +1 -1
- package/dist/{UdpNotesPage-Cbz2-Plp.js → UdpNotesPage-BGNZX-5s.js} +6 -6
- package/dist/{UdpNotesPage-Cbz2-Plp.js.map → UdpNotesPage-BGNZX-5s.js.map} +1 -1
- package/dist/{UdpPages-CdenUVIY.js → UdpPages-CMkb2m5F.js} +18 -18
- package/dist/UdpPages-CMkb2m5F.js.map +1 -0
- package/dist/{UdpRemindersPage-B8oGAjtR.js → UdpRemindersPage-J9vGaj3s.js} +6 -6
- package/dist/{UdpRemindersPage-B8oGAjtR.js.map → UdpRemindersPage-J9vGaj3s.js.map} +1 -1
- package/dist/{UdpRoutes-lY6lxxfc.js → UdpRoutes-D-muhX5C.js} +7 -7
- package/dist/UdpRoutes-D-muhX5C.js.map +1 -0
- package/dist/{UdpTransactionTypesPage-CmsWZHM4.js → UdpTransactionTypesPage-Do_tl8J2.js} +1898 -468
- package/dist/UdpTransactionTypesPage-Do_tl8J2.js.map +1 -0
- package/dist/{UdpTransactionsPage-D6lRI165.js → UdpTransactionsPage-DKF6PKUA.js} +779 -192
- package/dist/UdpTransactionsPage-DKF6PKUA.js.map +1 -0
- package/dist/{UdpVerticalManagementPage-BmQISa0N.js → UdpVerticalManagementPage-CR3YJwcI.js} +3 -3
- package/dist/{UdpVerticalManagementPage-BmQISa0N.js.map → UdpVerticalManagementPage-CR3YJwcI.js.map} +1 -1
- package/dist/{UdpVerticalManagementSidesheet-D4WSAtZC.js → UdpVerticalManagementSidesheet-CCSqaYq-.js} +4 -4
- package/dist/{UdpVerticalManagementSidesheet-D4WSAtZC.js.map → UdpVerticalManagementSidesheet-CCSqaYq-.js.map} +1 -1
- package/dist/{UserForm-Cvx0qyL6.js → UserForm-DQIJUkWW.js} +2 -2
- package/dist/{UserForm-Cvx0qyL6.js.map → UserForm-DQIJUkWW.js.map} +1 -1
- package/dist/UserFormSideSheet-Cki2zS9L.js +3 -0
- package/dist/{UserFormSideSheet-Bo1yZr01.js → UserFormSideSheet-yMExq77r.js} +2 -2
- package/dist/{UserFormSideSheet-Bo1yZr01.js.map → UserFormSideSheet-yMExq77r.js.map} +1 -1
- package/dist/{UtilityBar-O0baEBVj.js → UtilityBar-Ct7h6CJ4.js} +2 -2
- package/dist/{UtilityBar-O0baEBVj.js.map → UtilityBar-Ct7h6CJ4.js.map} +1 -1
- package/dist/VirtualBrowser-C1IP6rhy.js +3 -0
- package/dist/{VirtualBrowser-clYMlLAt.js → VirtualBrowser-CLXEdKAF.js} +3 -3
- package/dist/{VirtualBrowser-clYMlLAt.js.map → VirtualBrowser-CLXEdKAF.js.map} +1 -1
- package/dist/{WorkOrderCard-Wh1AkhfU.js → WorkOrderCard-CfvJtG69.js} +1 -1
- package/dist/{WorkOrderCard-Wh1AkhfU.js.map → WorkOrderCard-CfvJtG69.js.map} +1 -1
- package/dist/{WorkflowContainer-ClMZHFEd.js → WorkflowContainer-5of_2j2y.js} +3 -3
- package/dist/{WorkflowContainer-ClMZHFEd.js.map → WorkflowContainer-5of_2j2y.js.map} +1 -1
- package/dist/{WorkflowContainer-BBvEDJx3.js → WorkflowContainer-Bb0Amji_.js} +1 -1
- package/dist/{WorkflowTreeMenu-CdfX1Pv0.js → WorkflowTreeMenu-BudXOCOS.js} +4 -4
- package/dist/{WorkflowTreeMenu-CdfX1Pv0.js.map → WorkflowTreeMenu-BudXOCOS.js.map} +1 -1
- package/dist/{accordion-DT5LpWAW.js → accordion-Dh-tKkr0.js} +2 -2
- package/dist/{accordion-DT5LpWAW.js.map → accordion-Dh-tKkr0.js.map} +1 -1
- package/dist/{actionSummary-BrcS82Qz.js → actionSummary-8FhDX8uJ.js} +2 -2
- package/dist/{actionSummary-BrcS82Qz.js.map → actionSummary-8FhDX8uJ.js.map} +1 -1
- package/dist/{actionUtils-DylNlciX.js → actionUtils-DREj3J3H.js} +2 -2
- package/dist/{actionUtils-DylNlciX.js.map → actionUtils-DREj3J3H.js.map} +1 -1
- package/dist/actions/actionSummary/index.js +1 -1
- package/dist/actions/index.js +5 -5
- package/dist/actions/utils/index.js +1 -1
- package/dist/{aggregateUtils-BCO2GaVq.js → aggregateUtils-C5GwQct7.js} +2 -2
- package/dist/{aggregateUtils-BCO2GaVq.js.map → aggregateUtils-C5GwQct7.js.map} +1 -1
- package/dist/{aggridHelpers-Dj7ES7if.js → aggridHelpers-MdXm-qhS.js} +3 -3
- package/dist/{aggridHelpers-Dj7ES7if.js.map → aggridHelpers-MdXm-qhS.js.map} +1 -1
- package/dist/{auth-DQZDqD8X.js → auth-eDuSIJxU.js} +3 -3
- package/dist/{auth-DQZDqD8X.js.map → auth-eDuSIJxU.js.map} +1 -1
- package/dist/componentSystems/multiThreadTimeline/index.js +3 -3
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/index.js +1 -1
- package/dist/componentSystems/pageRenderer/hocs/index.js +1 -1
- package/dist/componentSystems/pageRenderer/index.js +3 -3
- package/dist/componentSystems/pageRenderer/wrappers/index.js +1 -1
- package/dist/dataBrowser/index.js +1 -1
- package/dist/{dateUtils-ChKgbJ9U.js → dateUtils-ftAbP-Mv.js} +18 -2
- package/dist/{dateUtils-ChKgbJ9U.js.map → dateUtils-ftAbP-Mv.js.map} +1 -1
- package/dist/enums/index.js +2 -2
- package/dist/{fileViewer-Dk6GMaSl.js → fileViewer-8-Eh4vLL.js} +2 -2
- package/dist/{fileViewer-Dk6GMaSl.js.map → fileViewer-8-Eh4vLL.js.map} +1 -1
- package/dist/{floorplans-BuvxGfwI.js → floorplans-CY6mR5bW.js} +2 -2
- package/dist/{floorplans-BuvxGfwI.js.map → floorplans-CY6mR5bW.js.map} +1 -1
- package/dist/{fluentTimeline-DceBN460.js → fluentTimeline-L0T1uOFm.js} +2 -2
- package/dist/{fluentTimeline-DceBN460.js.map → fluentTimeline-L0T1uOFm.js.map} +1 -1
- package/dist/{gridVisualizationFunctions-D5YZTZ7G.js → gridVisualizationFunctions-D83yg1AF.js} +1 -1
- package/dist/{gridVisualizationFunctions-D5YZTZ7G.js.map → gridVisualizationFunctions-D83yg1AF.js.map} +1 -1
- package/dist/hooks/index.js +3 -3
- package/dist/index.js +103 -101
- package/dist/inquiry/dashboard/index.js +1 -1
- package/dist/inquiry/index.js +4 -4
- package/dist/inquiry/inquiryBar/index.js +1 -1
- package/dist/inquiry/search/index.js +1 -1
- package/dist/{inquiry-DKgopy7F.js → inquiry-D-x5PZRJ.js} +12 -12
- package/dist/{inquiry-DKgopy7F.js.map → inquiry-D-x5PZRJ.js.map} +1 -1
- package/dist/{inquiryBar-CNAMeAq0.js → inquiryBar-lZ1qPFK6.js} +2 -2
- package/dist/{inquiryBar-CNAMeAq0.js.map → inquiryBar-lZ1qPFK6.js.map} +1 -1
- package/dist/layout/index.js +1 -1
- package/dist/{SideBarTemplate-B0lh7DDL.js → layout-BXuf6qmj.js} +1 -1
- package/dist/layout-BXuf6qmj.js.map +1 -0
- package/dist/maintenanceEngine/crudBrowser/index.js +2 -2
- package/dist/maintenanceEngine/index.js +4 -4
- package/dist/maintenanceEngine/tableBrowser/index.js +1 -1
- package/dist/maintenanceEngine/virtualBrowser/index.js +1 -1
- package/dist/{mapLayout-CZGgMWF6.js → mapLayout-BvKaPY3O.js} +2 -2
- package/dist/{mapLayout-CZGgMWF6.js.map → mapLayout-BvKaPY3O.js.map} +1 -1
- package/dist/menuPage/index.js +1 -1
- package/dist/{menuPage-DXMZEj8i.js → menuPage-BKRvZjzg.js} +2 -2
- package/dist/{menuPage-DXMZEj8i.js.map → menuPage-BKRvZjzg.js.map} +1 -1
- package/dist/{menuUtilities-cO3zYLVr.js → menuUtilities-BCPwOaeA.js} +2 -2
- package/dist/{menuUtilities-cO3zYLVr.js.map → menuUtilities-BCPwOaeA.js.map} +1 -1
- package/dist/notes/index.js +1 -1
- package/dist/{UdpTimeSelector-XsmTgOvP.js → pickers-DfIXzoW7.js} +1 -1
- package/dist/pickers-DfIXzoW7.js.map +1 -0
- package/dist/reminders/index.js +2 -2
- package/dist/routes/components/index.js +1 -1
- package/dist/routes/index.js +1 -1
- package/dist/{search-BGZwaCKb.js → search-DRxUjlyc.js} +5 -5
- package/dist/{search-BGZwaCKb.js.map → search-DRxUjlyc.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/stores/index.js +1 -1
- package/dist/{tenantStore-tBfq87CP.js → tenantStore-TgmV03z9.js} +2 -2
- package/dist/{tenantStore-tBfq87CP.js.map → tenantStore-TgmV03z9.js.map} +1 -1
- package/dist/treeMenu/index.js +1 -1
- package/dist/types/src/enums/unitySystemEnums.d.ts +4 -2
- package/dist/types/src/enums/unitySystemEnums.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +3 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpFormsPrivateForm/UdpPrivateForm.d.ts +3 -0
- package/dist/types/src/udp/pages/UdpFormsPrivateForm/UdpPrivateForm.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpFormsPrivateForm/index.d.ts +2 -0
- package/dist/types/src/udp/pages/UdpFormsPrivateForm/index.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpFormsPublicForm/UdpPublicForm.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpFormsPublicForm/index.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.d.ts +5 -1
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/index.d.ts +0 -1
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/index.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpPages/index.d.ts +2 -2
- package/dist/types/src/udp/pages/UdpPages/index.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpPagesLazy/index.d.ts +2 -2
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionAttachmentTypeForm.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionAttachmentTypeForm.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeConfigurationForm.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeConfigurationForm.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeConfigurationTransactionActionForm.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeConfigurationTransactionActionForm.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeStatusForm.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionAttachmentTypeCreateAndEditSidesheet.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionAttachmentTypeCreateAndEditSidesheet.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionAttachmentTypeSidesheet.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionAttachmentTypeSidesheet.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationCreateAndEditSidesheet.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationCreateAndEditSidesheet.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationSidesheet.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationSidesheet.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationTransactionActionCreateAndEditSidesheet.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationTransactionActionCreateAndEditSidesheet.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationTransactionActionSidesheet.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationTransactionActionSidesheet.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeStatusSidesheet.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeTransactionActionCreateAndEditSidesheet.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeTransactionActionSidesheet.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionUiActionCreateAndEditSidesheet.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionUiActionSidesheet.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionGrid.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/UdpTransactionsPage.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/AttachmentTransactionAttachmentList.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/AttachmentTransactionAttachmentList.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/EditTransactionDetailsFooterItem.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/EditTransactionDetailsForm.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/EditTransactionDetailsForm.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/EditTransactionDetailsFormFields.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/EditTransactionDetailsFormFields.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/UdpTransactionCustomPage.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionAttachment/TransactionAttachment.d.ts +3 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionAttachment/TransactionAttachment.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionAttachment/TransactionAttachments.d.ts +3 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionAttachment/TransactionAttachments.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionHistory/TransactionTimeline.d.ts +4 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionHistory/TransactionTimeline.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionHistory/TransactionTimelineItem.d.ts +3 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionHistory/TransactionTimelineItem.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/{sidesheets → components}/transactionNote/TransactionNote.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionNote/TransactionNoteForm.d.ts +3 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionNote/TransactionNoteForm.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionNote/TransactionNotes.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/sidesheets/AttachmentTransaction.d.ts +2 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/sidesheets/AttachmentTransaction.d.ts.map +1 -1
- 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 +2 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/sidesheets/WorkflowActions.d.ts.map +1 -1
- package/dist/types/src/uploader/Attachments.d.ts +18 -0
- package/dist/types/src/uploader/Attachments.d.ts.map +1 -0
- package/dist/types/src/uploader/enums/systemEnums.d.ts +17 -0
- package/dist/types/src/uploader/enums/systemEnums.d.ts.map +1 -0
- package/dist/types/src/uploader/index.d.ts +1 -0
- package/dist/types/src/uploader/index.d.ts.map +1 -1
- package/dist/types/src/uploader/utils/allowedFileProperties.d.ts +3 -0
- package/dist/types/src/uploader/utils/allowedFileProperties.d.ts.map +1 -0
- package/dist/types/src/uploader/utils/downloadAttachmentFiles.d.ts +4 -0
- package/dist/types/src/uploader/utils/downloadAttachmentFiles.d.ts.map +1 -0
- package/dist/types/src/utilities/transactions/useTransactionEngine.d.ts +2 -0
- package/dist/types/src/utilities/transactions/useTransactionEngine.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/udp/ShortcutContent/index.js +1 -1
- package/dist/udp/export/index.js +1 -1
- package/dist/udp/fileImportMapping/index.js +2 -2
- package/dist/udp/pages/UdpAuditEvents/index.js +1 -1
- package/dist/udp/pages/UdpDataBrowserPage/index.js +1 -1
- package/dist/udp/pages/UdpFormsPrivateForm/index.js +3 -0
- package/dist/udp/pages/UdpFormsPublicForm/index.js +3 -0
- package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +1 -1
- package/dist/udp/pages/UdpGridPanelManagementPage/index.js +1 -1
- package/dist/udp/pages/UdpImportFromFileMappingPage/index.js +1 -1
- package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +1 -1
- package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +1 -1
- package/dist/udp/pages/UdpNotesPage/index.js +1 -1
- package/dist/udp/pages/UdpPages/index.js +1 -1
- package/dist/udp/pages/UdpPagesLazy/index.js +3 -3
- package/dist/udp/pages/UdpPagesLazy/index.js.map +1 -1
- package/dist/udp/pages/UdpRemindersPage/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/udp/pages/index.js +1 -1
- package/dist/{unitySystemEnums-DM5vXR_m.js → unitySystemEnums-e5F9Jr7m.js} +5 -3
- package/dist/{unitySystemEnums-DM5vXR_m.js.map → unitySystemEnums-e5F9Jr7m.js.map} +1 -1
- package/dist/uploader/Attachments.css +29 -0
- package/dist/uploader/index.js +2 -102
- package/dist/uploader-C36UIFAF.js +314 -0
- package/dist/uploader-C36UIFAF.js.map +1 -0
- package/dist/{useActions-Db2P12NS.js → useActions-CxDs7v3s.js} +3 -3
- package/dist/{useActions-Db2P12NS.js.map → useActions-CxDs7v3s.js.map} +1 -1
- package/dist/{usePromotedMethodEntities-Dw_Z9GFX.js → usePromotedMethodEntities-B3xSrWmP.js} +2 -2
- package/dist/{usePromotedMethodEntities-Dw_Z9GFX.js.map → usePromotedMethodEntities-B3xSrWmP.js.map} +1 -1
- package/dist/{useSearchFilterParamsMap-CLAStwmE.js → useSearchFilterParamsMap-DPCfEY-N.js} +2 -2
- package/dist/{useSearchFilterParamsMap-CLAStwmE.js.map → useSearchFilterParamsMap-DPCfEY-N.js.map} +1 -1
- package/dist/utilities/aggrid/datasources/index.js +1 -1
- package/dist/utilities/aggrid/index.js +2 -2
- package/dist/utilities/auth/index.js +1 -1
- package/dist/utilities/customIcons/index.js +1 -1
- package/dist/utilities/floorplanFunctions/index.js +1 -1
- package/dist/utilities/form/paymentForm/index.js +1 -1
- package/dist/utilities/menus/index.js +1 -1
- package/dist/utilities/provider/index.js +1 -1
- package/dist/utilities/redirect/pages/index.js +1 -1
- package/dist/utilities/search/index.js +1 -1
- package/dist/utilities/style/index.js +1 -1
- package/dist/utilities/tenant/index.js +1 -1
- package/dist/utilities/tree/index.js +1 -1
- package/dist/utilities/uploader/index.js +1 -1
- package/dist/{withEngineComponent-s_zEZt7e.js → withEngineComponent-Css79hMi.js} +2 -2
- package/dist/{withEngineComponent-s_zEZt7e.js.map → withEngineComponent-Css79hMi.js.map} +1 -1
- package/dist/workflow/index.js +2 -2
- package/dist/workflow/menus/index.js +1 -1
- package/export-map.json +6 -3
- package/package.json +2 -2
- package/dist/MenuPage-BxZfgpHf.js +0 -3
- package/dist/MyExportsPage-BnDpxtTW.js +0 -3
- package/dist/SideBarTemplate-B0lh7DDL.js.map +0 -1
- package/dist/UdpAuditEventsPage-BGIcCG26.js +0 -3
- package/dist/UdpFormsSubmissionGrid-DQn0-17O.js.map +0 -1
- package/dist/UdpPages-CdenUVIY.js.map +0 -1
- package/dist/UdpPrivateForm-Dhy6BBRl.js.map +0 -1
- package/dist/UdpPublicForm-8v4_-QNd.js.map +0 -1
- package/dist/UdpRoutes-lY6lxxfc.js.map +0 -1
- package/dist/UdpTimeSelector-XsmTgOvP.js.map +0 -1
- package/dist/UdpTransactionTypesPage-CmsWZHM4.js.map +0 -1
- package/dist/UdpTransactionsPage-D6lRI165.js.map +0 -1
- package/dist/UserFormSideSheet-B6CT9SiQ.js +0 -3
- package/dist/VirtualBrowser-Cm-d-9ws.js +0 -3
- package/dist/types/src/udp/pages/UdpPrivateForm/UdpPrivateForm.d.ts +0 -4
- package/dist/types/src/udp/pages/UdpPrivateForm/UdpPrivateForm.d.ts.map +0 -1
- package/dist/types/src/udp/pages/UdpPrivateForm/index.d.ts +0 -3
- package/dist/types/src/udp/pages/UdpPrivateForm/index.d.ts.map +0 -1
- package/dist/types/src/udp/pages/UdpPublicForm/UdpPublicForm.d.ts.map +0 -1
- package/dist/types/src/udp/pages/UdpPublicForm/index.d.ts.map +0 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/sidesheets/AttachmentList.d.ts +0 -3
- package/dist/types/src/udp/pages/UdpTransactionsPage/sidesheets/AttachmentList.d.ts.map +0 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/sidesheets/transactionNote/TransactionNotes.d.ts.map +0 -1
- package/dist/udp/pages/UdpPrivateForm/index.js +0 -3
- package/dist/udp/pages/UdpPublicForm/index.js +0 -3
- package/dist/uploader/index.js.map +0 -1
- /package/dist/{addUser-C90pCSnT.js → addUser-ND44rh2U.js} +0 -0
- /package/dist/{appSwitcher-BVKuYNfi.js → appSwitcher-a9n2Iwje.js} +0 -0
- /package/dist/{components-B1RVyHlZ.js → components-DFnCokX4.js} +0 -0
- /package/dist/{crudBrowser-C4YqsRrl.js → crudBrowser-D2jkhTHL.js} +0 -0
- /package/dist/{forms-BHhy_qYQ.js → forms-Bqbd2PSS.js} +0 -0
- /package/dist/{functions-48UNDwct.js → functions-BsqJgCPf.js} +0 -0
- /package/dist/{hocs-CWPyxUPi.js → hocs-ffxbQsXq.js} +0 -0
- /package/dist/{hooks-CkNaVLLH.js → hooks-DZQTSvZa.js} +0 -0
- /package/dist/{menus-DRIHkeQr.js → menus-Bcz2WjML.js} +0 -0
- /package/dist/{modified-BHJzuqPC.js → modified-Bhd8wpcw.js} +0 -0
- /package/dist/{mttMainTimeline-CLFQyr-b.js → mttMainTimeline-4YnP9sFd.js} +0 -0
- /package/dist/{mttSummary-13x9tvMI.js → mttSummary-DUe99dle.js} +0 -0
- /package/dist/{renderers-B2fqkGT5.js → renderers-DMzVV_xu.js} +0 -0
- /package/dist/{sidebar-CM1ujsxj.js → sidebar-Wi8WckFO.js} +0 -0
- /package/dist/{tableBrowser-CSDLzrvz.js → tableBrowser-C1wXuOXy.js} +0 -0
- /package/dist/types/src/udp/pages/{UdpPublicForm → UdpFormsPublicForm}/UdpPublicForm.d.ts +0 -0
- /package/dist/types/src/udp/pages/{UdpPublicForm → UdpFormsPublicForm}/index.d.ts +0 -0
- /package/dist/types/src/udp/pages/UdpTransactionsPage/{sidesheets → components}/transactionNote/TransactionNote.d.ts +0 -0
- /package/dist/types/src/udp/pages/UdpTransactionsPage/{sidesheets → components}/transactionNote/TransactionNotes.d.ts +0 -0
- /package/dist/{ui-CPBXC1Ld.js → ui-BjpkPJO5.js} +0 -0
- /package/dist/{ui-DKHa8sM6.js → ui-DDD_eO_6.js} +0 -0
- /package/dist/{utils-D3uaSx1C.js → utils-DNwO498R.js} +0 -0
- /package/dist/{utils-mr65G560.js → utils-Drtwu1nG.js} +0 -0
- /package/dist/{virtualBrowser-DpJvv72S.js → virtualBrowser-zN1T60dc.js} +0 -0
- /package/dist/{wrappers-C7ViYUDV.js → wrappers-CQ2ylYPw.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserForm-Cvx0qyL6.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} 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}));\n\n\nconst UserFormFields = props => {\n const {\n editedUser,\n rolesData,\n showRolesField = true,\n handlePasswordTypeChange,\n passwordType,\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 <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 && (\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 && (\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 { 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 handleSubmitUser = useCallback(\n values => {\n if (submitUser) {\n if (passwordType === 'autoGeneratePassword') {\n values.passwordProfile = null;\n }\n updateCreatedUser && editedUser\n ? updateCreatedUser(values)\n : submitUser(values);\n }\n },\n [submitUser, passwordType, 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 />\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') : 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-DQIJUkWW.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} 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}));\n\n\nconst UserFormFields = props => {\n const {\n editedUser,\n rolesData,\n showRolesField = true,\n handlePasswordTypeChange,\n passwordType,\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 <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 && (\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 && (\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 { 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 handleSubmitUser = useCallback(\n values => {\n if (submitUser) {\n if (passwordType === 'autoGeneratePassword') {\n values.passwordProfile = null;\n }\n updateCreatedUser && editedUser\n ? updateCreatedUser(values)\n : submitUser(values);\n }\n },\n [submitUser, passwordType, 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 />\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') : 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":";;;;;;;;;;;;;;;AACA,MAAM,oBACJ,UACA,oBAAoB,GACpB,uBAAuB,OACvB,8BAA8B,OAC9B,oBAAoB,OACpB,uBAAuB,UACpB;CACH,IAAI,SAAS,EAAE;AACf,KAAG,CAAC,SAAU,QAAO,EAAE;AACvB,KAAI,qBAAqB,SAAS,SAAS,kBACzC,QAAO,KACL,6BAA6B,kBAAkB,mBAChD;AAEH,KAAI,wBAAwB,CAAC,QAAQ,KAAK,SAAS,CACjD,QAAO,KAAK,uDAAuD;AAErE,KAAI,+BAA+B,CAAC,yBAAyB,KAAK,SAAS,CACzE,QAAO,KAAK,wDAAwD;AAEtE,KAAI,qBAAqB,CAAC,KAAK,KAAK,SAAS,CAC3C,QAAO,KAAK,6CAA6C;AAE3D,KAAI,wBAAwB,CAAC,QAAQ,KAAK,SAAS,CACjD,QAAO,KAAK,uDAAuD;AAErE,QAAO;;AAET,MAAa,mBACX,UACA,oBAAoB,GACpB,uBAAuB,OACvB,8BAA8B,OAC9B,oBAAoB,OACpB,uBAAuB,UACpB;AACH,QACE,iBACE,UACA,mBACA,sBACA,6BACA,mBACA,qBACD,CAAC,WAAW;;AAGjB,MAAM,qBAAqB,EACzB,UACA,mBACA,sBACA,6BACA,mBACA,2BACI;CACJ,MAAM,SAAS,cAEX,iBACE,UACA,mBACA,sBACA,6BACA,mBACA,qBACD,EACH,CAAC,SAAS,CACX;AAED,QAAO,QAAQ,UAAU,UAAU,SACjC,oCAAC,aACC,oCAAC,OAAE,OAAO,EAAE,OAAO,OAAO,IACvB,OAAO,KAAK,OAAO,UAClB,0DACG,OACD,oCAAC,WAAK,CACL,CACH,CACA,CACA,GACJ;;AAGN,gCAAe;;;;AC/Df,MAAM,oBAAmB,QAAO;AAC9B,KAAI,CAAC,IACH,QAAO;AAET,QAAO,IAAI,QAAQ,OAAO,GAAG;;AAK/B,MAAMA,cAAY,YAAW,WAAU;CACrC,OAAO,EACL,cAAc,MAAM,QAAQ,EAAE,EAC/B;CACD,WAAW;EACT,SAAS;EACT,eAAe;EACf,cAAc,MAAM,QAAQ,EAAE;EAC/B;CACD,OAAO;EACL,WAAW,MAAM,QAAQ,GAAG;EAC5B,cAAc,MAAM,QAAQ,EAAE;EAC/B;CACD,yBAAyB,EACvB,QAAQ,QACT;CACD,8BAA8B,EAC5B,WAAW,MAAM,QAAQ,EAAE,EAC5B;CACF,EAAE;AAGH,MAAM,kBAAiB,UAAS;CAC9B,MAAM,EACJ,YACA,WACA,iBAAiB,MACjB,0BACA,iBACE;CACJ,MAAM,UAAUA,aAAW;CAC3B,MAAM,OAAO,SAAS;CACtB,MAAM,CAAC,cAAc,mBAAmB,SAAS,MAAM;CACvD,MAAM,OAAO,SAAS;CACtB,MAAM,EAAE,MAAM,gBAAgB;CAE9B,MAAM,QAAQ,cAAc;AAC1B,MAAI,CAAC,UACH,QAAO,EAAE;AAEX,YAAU,SAAQ,MAAK;AACrB,KAAE,QAAQ,EAAE;AACZ,KAAE,QAAQ,EAAE;IACZ;AACF,SAAO,UACJ,MAAM,GAAG,MAAM,EAAE,MAAM,cAAc,EAAE,MAAM,CAAC,CAC9C,MAAM,GAAG,MAAM,EAAE,YAAY,cAAc,EAAE,YAAY,CAAC;IAC5D,CAAC,UAAU,CAAC;CAGf,MAAM,0BAA0B,kBAAkB;AAChD,kBAAgB,CAAC,aAAa;IAC7B,CAAC,aAAa,CAAC;AAElB,iBAAgB;AACd,MAAI,YAAY;AACd,QAAK,OAAO,aAAa,WAAW,UAAU;AAC9C,QAAK,OAAO,WAAW,WAAW,QAAQ;AAC1C,QAAK,OAAO,YAAY,WAAW,SAAS;AAC5C,QAAK,OAAO,YAAY,WAAW,SAAS;AAC5C,QAAK,OAAO,eAAe,WAAW,YAAY;AAClD,QAAK,OAAO,eAAe,WAAW,YAAY;;IAEnD,CAAC,YAAY,KAAK,CAAC;AAEtB,QACE,0DACG,cACC,oCAACC;EACC,WAAW;EACX,OAAO,EAAE,WAAW;EACpB,IAAG;EACH,aAAY;EACZ,MAAK;EACL;EACA,SAAQ;EACR,QAAO;EACP,MAAK;EACL,cACG,YAAY;EAEf,UAAU;GACV,EAEJ,oCAACA;EACC,WAAW;EACX,OAAO,EAAE,aAAa;EACtB,IAAG;EACH,aAAY;EACZ,MAAK;EACL;EACA,SAAQ;EACR,QAAO;EACP,MAAK;EACL;EACA,cAAc,YAAY;EAC1B,UAAU,CAAC,KAAK,IAAI;GACpB,EACF,oCAACA;EACC,WAAW;EACX,OAAO,EAAE,YAAY;EACrB,IAAG;EACH,aAAY;EACZ,MAAK;EACL;EACA,SAAQ;EACR,QAAO;EACP,MAAK;EACL;EACA,cAAc,YAAY;EAC1B,UAAU,CAAC,KAAK,IAAI;GACpB,EACF,oCAACA;EACC,WAAW;EACX,OAAO,EAAE,QAAQ;EACjB,IAAG;EACH,aAAY;EACZ,MAAK;EACL;EACA,SAAQ;EACR,QAAO;EACP,MAAK;EACL;EACA,cAAc,YAAY;EAC1B,UAAU,cAAc,CAAC,KAAK,IAAI;EAClC,WAAU,UAAS;AACjB,OACE,CAAC,wJAAwJ,KACvJ,MACD,IACD,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,OAEzB,QAAO,EAAE,wBAAwB;;GAGrC,EACF,oCAACA;EACC,WAAW;EACX,OAAO,EAAE,QAAQ;EACjB,IAAG;EACH,aAAY;EACZ,MAAK;EACL;EACA,SAAQ;EACR,QAAO;EACP,MAAK;EACL,cACE,OAAO,YAAY,aAAa,WAC5B,YAAY,SAAS,MAAM,GAC3B;EAEN,UAAU,CAAC,KAAK,IAAI;EACpB,QAAO,UAAS;GAChB,EACF,oCAACA;EACC,WAAW;EACX,OAAO,EAAE,WAAW;EACpB,IAAG;EACH,aAAY;EACZ,MAAK;EACL;EACA,SAAQ;EACR,QAAO;EACP,MAAK;EACL,cACE,OAAO,YAAY,aAAa,WAC5B,YAAY,SAAS,MAAM,GAC3B;EAEN,UAAU,CAAC,KAAK,IAAI;EACpB,QAAO,UAAS;GAChB,EACF,oCAACA;EACC,WAAW;EACX,OAAO,EAAE,eAAe;EACxB,IAAG;EACH,aAAY;EACZ,MAAK;EACL;EACA,SAAQ;EACR,QAAO;EACP,MAAK;EACL,cAAc,iBAAiB,YAAY,YAAY;EACvD,UACE,CAAC,KAAK,IAAI,oBACV,YAAY,aAAa,gBAAgB;EAE3C,QAAO,UAAS;GAChB,EACF,oCAACA;EACC,WAAW;EACX,OAAO,EAAE,eAAe;EACxB,IAAG;EACH,aAAY;EACZ,MAAK;EACL;EACA,SAAQ;EACR,QAAO;EACP,MAAK;EACL,cAAc,iBAAiB,YAAY,YAAY;EACvD,UACE,CAAC,KAAK,IAAI,oBACV,YAAY,aAAa,gBAAgB;EAE3C,QAAO,UAAS;GAChB,EACD,kBACC,oCAACA;EACC,WAAW;EACX,OAAO,EAAE,cAAc;EACvB,IAAG;EACH,aAAY;EACZ,MAAK;EACL;EACA,SAAS,SAAS,EAAE;EACpB,gBAAgB;GACd,IAAI;GACJ,MAAM;GACP;EACD,WAAW;EACX,YAAY;EACZ,UAAU,WAAW,OAAO;EAC5B;GACA,EAEH,CAAC,cACA,0DACE,oCAAC;EACC,mBAAgB;EAChB,MAAK;EACL,OAAO;EACP,UAAU;IAEV,oCAAC;EACC,OAAM;EACN,SAAS,oCAAC,YAAQ;EAClB,OAAO,EAAE,yBAAyB;EAClC,aAAY;GACZ,EACF,oCAAC;EACC,OAAM;EACN,SAAS,oCAAC,YAAQ;EAClB,OAAO,EAAE,6BAA6B;EACtC,aAAY;GACZ,CACS,EACZ,iBAAiB,oBAChB,oCAACA;EACC,WAAW;EACX,OAAO,EAAE,WAAW;EACpB,IAAG;EACH,aAAY;EACZ,MAAK;EACL,MAAM,eAAe,SAAS;EAC9B;EACA,SAAQ;EACR,QAAO;EACP,MAAK;EACL,cAAa;EACb,WAAU,UACR,CAAC,gBAAgB,OAAO,GAAG,MAAM,MAAM,MAAM,KAAK,IAChD,oCAACC;GACC,UAAU;GACV;GACA;GACA;GACA,mBAAmB;GACnB;IACA;EAGN,YAAY,EAEV,cACE,oCAAC,kBAAe,UAAS,SACvB,oCAAC;GACC,cAAW;GACX,SAAS;KAER,eAAe,oCAAC,iBAAa,GAAG,oCAAC,oBAAgB,CACvC,CACE,EAEpB;GACD,CAEH,EAEJ,CAAC,cACA,oCAAC;EACC,WAAW,QAAQ;EACnB,OAAO,EAAE,2DAA2D;EACpE,SACE,oCAACD;GACC,WAAW;GACX,IAAG;GACH,aAAY;GACZ,MAAM;GACN,MAAK;GACL,UAAU,CAAC,KAAK,IAAI;GACX;IACT;GAEJ,CAEH;;AAGP,6BAAe;;;;ACtUf,MAAM,YAAY,YAAW,WAAU;CACrC,SAAS;EACP,WAAW,MAAM,QAAQ,EAAE;EAC3B,cAAc,MAAM,QAAQ,EAAE;EAC/B;CACD,YAAY;EACV,QAAQ,MAAM,QAAQ,GAAG;EACzB,YAAY,MAAM,QAAQ,GAAG;EAC7B,aAAa,MAAM,QAAQ,GAAG;EAC/B;CACF,EAAE;AAEH,MAAa,YAAW,UAAS;CAC/B,MAAM,EACJ,YACA,YACA,cACA,QACA,mBACA,iBAAiB,SACf;CACJ,MAAM,UAAU,WAAW;CAC3B,MAAM,OAAO,SAAS;CACtB,MAAM,CAAC,cAAc,mBAAmB,SAAS,uBAAuB;CACxE,MAAM,EAAE,MAAM,gBAAgB;CAI9B,MAAM,CAAC,EAAE,MAAM,eAAe,YAC5B,cAAc,gBACd,gBAAgB,KAAK,GAAG,YAAY,QAAQ,YAC5C,EAAE,EACF,CAAC,CAAC,CAAC,QACH,MACD;CAED,MAAM,2BAA2B,aAAY,UAAS;AACpD,kBAAgB,MAAM,OAAO,MAAM;IAClC,EAAE,CAAC;CAEN,MAAM,mBAAmB,aACvB,WAAU;AACR,MAAI,YAAY;AACd,OAAI,iBAAiB,uBACnB,QAAO,kBAAkB;AAE3B,wBAAqB,aACjB,kBAAkB,OAAO,GACzB,WAAW,OAAO;;IAG1B;EAAC;EAAY;EAAc;EAAmB;EAAW,CAC1D;AAED,QACE,0DACE,oCAACE,UAAK,UAAU,oBACd,oCAACC;EACY;EACC;EACI;EACU;EACZ;GACd,EACD,KAAK,IAAI,oBACR,0DACE,oCAAC,SAAI,WAAW,QAAQ,WACtB,oCAAC,cAAU,CACP,EACN,oCAAC,mBACC,oCAAC;EACC,SAAQ;EACR,OAAM;EACN,iBAAiB;EACjB,UAAU;EACV,aAAY;IAEX,aAAa,EAAE,SAAS,GAAG,EAAE,SAAS,CAC1B,CACH,CACb,CAEA,EACN,gBACC,oCAAC;EAAe,WAAW,QAAQ;EAAY,OAAM;GAAc,CAEpE;;AAGP,uBAAe"}
|
|
@@ -3,7 +3,7 @@ import { i as useHandleAxiosSnackbar } from "./apiHelpers-B_cn3sZo.js";
|
|
|
3
3
|
import { t as apiMutate } from "./useAxiosMutate-DcLxzykX.js";
|
|
4
4
|
import { n as SideSheet } from "./SideSheet-C-rILQqR.js";
|
|
5
5
|
import { t as useTenant } from "./useTenant-MqKOZve_.js";
|
|
6
|
-
import { n as UserForm_default } from "./UserForm-
|
|
6
|
+
import { n as UserForm_default } from "./UserForm-DQIJUkWW.js";
|
|
7
7
|
import React, { useCallback, useState } from "react";
|
|
8
8
|
import { useSnackbar } from "notistack";
|
|
9
9
|
import { cloneDeep } from "lodash";
|
|
@@ -90,4 +90,4 @@ var UserFormSideSheet_default = UserFormSideSheet;
|
|
|
90
90
|
|
|
91
91
|
//#endregion
|
|
92
92
|
export { UserFormSideSheet_default as t };
|
|
93
|
-
//# sourceMappingURL=UserFormSideSheet-
|
|
93
|
+
//# sourceMappingURL=UserFormSideSheet-yMExq77r.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserFormSideSheet-
|
|
1
|
+
{"version":3,"file":"UserFormSideSheet-yMExq77r.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 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 // Create a new user\n await createUser({ data: values });\n handleSuccessSnackbar(t('User has been created successfully'))\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 addUserToTenant,\n updateExistingUser,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n onClose,\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,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;UACpE;AAEL,UAAM,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClC,0BAAsB,EAAE,qCAAqC,CAAC;;AAGhE,YAAS;WACF,OAAO;AACd,uBAAoB,MAAM,WAAW,EAAE,+DAA+D,CAAC;YAC/F;AACR,cAAW,MAAM;;IAGrB;EACE;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,6 +1,6 @@
|
|
|
1
1
|
import { t as FluentIconButton } from "./FluentIconButton-Dc95mE3v.js";
|
|
2
2
|
import { n as useShellStore } from "./shellStore-C8zfPsZ-.js";
|
|
3
|
-
import { t as useActionState } from "./useActions-
|
|
3
|
+
import { t as useActionState } from "./useActions-CxDs7v3s.js";
|
|
4
4
|
import { i as InquiryHeaderSecondaryTarget, n as InquiryHeaderSecondaryAlertTarget } from "./InquiryHeaderSecondaryAlert-BO16fXvI.js";
|
|
5
5
|
import { n as SubHeaderActionsTarget } from "./SubHeaderAction-B9e4Fnrd.js";
|
|
6
6
|
import { i as InquiryHeaderTitleTarget, n as InquiryHeaderControlTarget } from "./InquiryHeaderControl-B3Er0Gy0.js";
|
|
@@ -95,4 +95,4 @@ const UtilityBar = (props) => {
|
|
|
95
95
|
|
|
96
96
|
//#endregion
|
|
97
97
|
export { UtilityBar as t };
|
|
98
|
-
//# sourceMappingURL=UtilityBar-
|
|
98
|
+
//# sourceMappingURL=UtilityBar-Ct7h6CJ4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UtilityBar-
|
|
1
|
+
{"version":3,"file":"UtilityBar-Ct7h6CJ4.js","names":[],"sources":["../src/UI/utilityDisplay/UtilityBar.jsx"],"sourcesContent":["import React from 'react';\nimport { makeStyles, Card, Collapse, Divider } from '@material-ui/core';\nimport { FluentIconButton } from '../inputs/buttons/FluentIconButton';\nimport { ChevronDownIcon, ChevronUpIcon } from '@fluentui/react-icons';\nimport clsx from 'clsx';\nimport { SubHeaderActionsTarget } from '../../utilities/utilityBar/SubHeaderAction';\nimport { InquiryHeaderTitleTarget } from '../../utilities/utilityBar/InquiryHeaderTitle';\nimport { InquiryHeaderControlTarget } from '../../utilities/utilityBar/InquiryHeaderControl';\nimport { InquiryHeaderSecondaryTarget } from '../../utilities/utilityBar/InquiryHeaderSecondary';\nimport { InquiryHeaderSecondaryAlertTarget } from '../../utilities/utilityBar/InquiryHeaderSecondaryAlert';\nimport { useActionState } from '../../hooks/useActions';\nimport { useShellStore } from '../../stores/shellStore';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {},\n bar: {\n display: 'flex',\n flexDirection: 'row'\n },\n gutters: {\n paddingLeft: theme.spacing(2)\n },\n content: {\n flex: 1,\n width: '100%'\n },\n collapsed: {\n height: 0,\n transition: theme.transitions.create('height', {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.leavingScreen\n })\n },\n expanded: {\n transition: theme.transitions.create('height', {\n easing: theme.transitions.easing.easeIn,\n duration: theme.transitions.duration.enteringScreen\n })\n },\n open: {\n display: 'flex',\n justifyContent: 'flex-end'\n },\n toggleButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1)\n },\n cardRoot: {\n '&:last-child': {\n paddingBottom: theme.spacing(1)\n }\n },\n chevronButtonOpen: {\n display: 'flex',\n justifyContent: 'center',\n marginLeft: 25,\n zIndex: theme.zIndex.appBar\n },\n chevronButtonClosed: {\n position: 'absolute',\n left: '50%',\n top: 11,\n zIndex: theme.zIndex.appBar\n },\n chevronButtonClosedLower: {\n display: 'flex',\n justifyContent: 'center',\n marginLeft: 25,\n zIndex: theme.zIndex.appBar\n },\n inquiryHeader: {\n display: 'flex',\n flexDirection: 'column'\n // alignItems: 'center'\n }\n }),\n\n { name: 'UtilityBar' }\n);\n\nexport const UtilityBar = (props) => {\n // const [expanded, setExpanded] = useState(false)\n // const [expandedSecondary, setExpandedSecondary] = useState(false)\n\n const classes = useStyles(props);\n // const { expanded = true, gutters = true, className } = props\n const {\n className,\n gutters = true,\n expander,\n toggleOne,\n toggleTwo,\n closePrimary = false,\n closeSecondary = false,\n expanded = true,\n expandedSecondary,\n setExpanded,\n setExpandedSecondary\n } = props;\n\n const actionState = useActionState();\n const { pageSplitScreen } = actionState || {};\n\n const shaHasChildren = useShellStore(\n (state) => state.subHeaderActionHasChildren\n );\n\n return (\n <div className={clsx(classes.bar, gutters && classes.gutters, className)}>\n <div\n className={classes.content}\n style={{ zIndex: pageSplitScreen?.open ? 1100 : '' }}\n >\n {!expander && (\n <Card variant={`${shaHasChildren ? 'outlined' : ''}`}>\n <SubHeaderActionsTarget className={classes.actions} />\n </Card>\n )}\n {expander && (\n <div>\n <Card className={classes.card} square>\n {/* <CardContent classes={{ root: classes.cardRoot }}> */}\n <div>\n <InquiryHeaderTitleTarget />\n\n {/* <Collapse in={expanded || closePrimary} timeout='auto'> */}\n <Collapse in={closePrimary} timeout='auto'>\n <SubHeaderActionsTarget className={classes.actions} />\n </Collapse>\n\n {toggleOne && (\n <div\n className={clsx(\n expanded\n ? classes.chevronButtonOpen\n : classes.chevronButtonClosed\n )}\n >\n <FluentIconButton\n // onClick={() => setExpanded(!expanded)}\n onClick={setExpanded}\n icon={expanded ? ChevronUpIcon : ChevronDownIcon}\n className={classes.icon}\n // rounded={!expanded}\n />\n </div>\n )}\n </div>\n <Divider />\n {/* </CardContent> */}\n {/* <Collapse in={expandedSecondary || closeSecondary} timeout='auto'> */}\n <Collapse in={closeSecondary} timeout='auto'>\n <div className={classes.inquiryHeader}>\n <InquiryHeaderSecondaryTarget className={classes.actions} />\n <InquiryHeaderSecondaryAlertTarget\n className={classes.actions}\n />\n </div>\n </Collapse>\n <InquiryHeaderControlTarget />\n {toggleTwo && (\n <div\n className={clsx(\n expandedSecondary\n ? classes.chevronButtonOpen\n : classes.chevronButtonClosedLower\n )}\n >\n <FluentIconButton\n // onClick={() => setExpandedSecondary(!expandedSecondary)}\n onClick={setExpandedSecondary}\n icon={expandedSecondary ? ChevronUpIcon : ChevronDownIcon}\n className={classes.icon}\n // rounded={!expandedSecondary}\n />\n </div>\n )}\n </Card>\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;AAaA,MAAM,YAAY,YACf,WAAW;CACV,MAAM,EAAE;CACR,KAAK;EACH,SAAS;EACT,eAAe;EAChB;CACD,SAAS,EACP,aAAa,MAAM,QAAQ,EAAE,EAC9B;CACD,SAAS;EACP,MAAM;EACN,OAAO;EACR;CACD,WAAW;EACT,QAAQ;EACR,YAAY,MAAM,YAAY,OAAO,UAAU;GAC7C,QAAQ,MAAM,YAAY,OAAO;GACjC,UAAU,MAAM,YAAY,SAAS;GACtC,CAAC;EACH;CACD,UAAU,EACR,YAAY,MAAM,YAAY,OAAO,UAAU;EAC7C,QAAQ,MAAM,YAAY,OAAO;EACjC,UAAU,MAAM,YAAY,SAAS;EACtC,CAAC,EACH;CACD,MAAM;EACJ,SAAS;EACT,gBAAgB;EACjB;CACD,cAAc;EACZ,UAAU;EACV,OAAO,MAAM,QAAQ,EAAE;EACvB,KAAK,MAAM,QAAQ,EAAE;EACtB;CACD,UAAU,EACR,gBAAgB,EACd,eAAe,MAAM,QAAQ,EAAE,EAChC,EACF;CACD,mBAAmB;EACjB,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,QAAQ,MAAM,OAAO;EACtB;CACD,qBAAqB;EACnB,UAAU;EACV,MAAM;EACN,KAAK;EACL,QAAQ,MAAM,OAAO;EACtB;CACD,0BAA0B;EACxB,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,QAAQ,MAAM,OAAO;EACtB;CACD,eAAe;EACb,SAAS;EACT,eAAe;EAEhB;CACF,GAED,EAAE,MAAM,cAAc,CACvB;AAED,MAAa,cAAc,UAAU;CAInC,MAAM,UAAU,UAAU,MAAM;CAEhC,MAAM,EACJ,WACA,UAAU,MACV,UACA,WACA,WACA,eAAe,OACf,iBAAiB,OACjB,WAAW,MACX,mBACA,aACA,yBACE;CAGJ,MAAM,EAAE,oBADY,gBAAgB,IACO,EAAE;CAE7C,MAAM,iBAAiB,eACpB,UAAU,MAAM,2BAClB;AAED,QACE,oCAAC,SAAI,WAAW,KAAK,QAAQ,KAAK,WAAW,QAAQ,SAAS,UAAU,IACtE,oCAAC;EACC,WAAW,QAAQ;EACnB,OAAO,EAAE,QAAQ,iBAAiB,OAAO,OAAO,IAAI;IAEnD,CAAC,YACA,oCAAC,QAAK,SAAS,GAAG,iBAAiB,aAAa,QAC9C,oCAAC,0BAAuB,WAAW,QAAQ,UAAW,CACjD,EAER,YACC,oCAAC,aACC,oCAAC;EAAK,WAAW,QAAQ;EAAM;IAE7B,oCAAC,aACC,oCAAC,+BAA2B,EAG5B,oCAAC;EAAS,IAAI;EAAc,SAAQ;IAClC,oCAAC,0BAAuB,WAAW,QAAQ,UAAW,CAC7C,EAEV,aACC,oCAAC,SACC,WAAW,KACT,WACI,QAAQ,oBACR,QAAQ,oBACb,IAED,oCAAC;EAEC,SAAS;EACT,MAAM,WAAW,gBAAgB;EACjC,WAAW,QAAQ;GAEnB,CACE,CAEJ,EACN,oCAAC,cAAU,EAGX,oCAAC;EAAS,IAAI;EAAgB,SAAQ;IACpC,oCAAC,SAAI,WAAW,QAAQ,iBACtB,oCAAC,gCAA6B,WAAW,QAAQ,UAAW,EAC5D,oCAAC,qCACC,WAAW,QAAQ,UACnB,CACE,CACG,EACX,oCAAC,iCAA6B,EAC7B,aACC,oCAAC,SACC,WAAW,KACT,oBACI,QAAQ,oBACR,QAAQ,yBACb,IAED,oCAAC;EAEC,SAAS;EACT,MAAM,oBAAoB,gBAAgB;EAC1C,WAAW,QAAQ;GAEnB,CACE,CAEH,CACH,CAEJ,CACF"}
|
|
@@ -5,7 +5,7 @@ import { t as useUser } from "./useUser-wpHGo6jU.js";
|
|
|
5
5
|
import { n as useAxiosMutate } from "./useAxiosMutate-DcLxzykX.js";
|
|
6
6
|
import { a as toTitleCase } from "./StringUtilities-u-cxAW6-.js";
|
|
7
7
|
import { r as getSanitizedName } from "./entityUtilities-_8w-Zjs3.js";
|
|
8
|
-
import {
|
|
8
|
+
import { L as UdpEnums } from "./unitySystemEnums-e5F9Jr7m.js";
|
|
9
9
|
import { n as PrimaryActionButton_default } from "./PrimaryActionButton-Dk8zvDAW.js";
|
|
10
10
|
import { t as LayoutUnit } from "./LayoutUnit-D4jJvonh.js";
|
|
11
11
|
import { n as SideSheet } from "./SideSheet-C-rILQqR.js";
|
|
@@ -14,7 +14,7 @@ import { t as useSetLocationState } from "./useSetLocationState-Kvcc9BTb.js";
|
|
|
14
14
|
import { t as PageContainer } from "./PageContainer-CT3n_ngH.js";
|
|
15
15
|
import { i as executeQueryWithParameters } from "./methodUtils-Cwo_kmVX.js";
|
|
16
16
|
import { n as useBuildEnvironment } from "./useBuildEnvironment-2gdqpmBX.js";
|
|
17
|
-
import { t as AmbientGridTemplate } from "./AmbientGridTemplate-
|
|
17
|
+
import { t as AmbientGridTemplate } from "./AmbientGridTemplate-VCZhDcIf.js";
|
|
18
18
|
import { t as ActionsRenderer } from "./ActionsRenderer-B1ImXko3.js";
|
|
19
19
|
import { t as VirtualForm } from "./VirtualForm-DhXIovkC.js";
|
|
20
20
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
@@ -424,4 +424,4 @@ var VirtualBrowser_default = VirtualBrowser;
|
|
|
424
424
|
|
|
425
425
|
//#endregion
|
|
426
426
|
export { defaultColActionsDef as a, VirtualTableColumnDefs as i, VirtualBrowser_default as n, VirtualTableSidePanel as r, VirtualBrowser as t };
|
|
427
|
-
//# sourceMappingURL=VirtualBrowser-
|
|
427
|
+
//# sourceMappingURL=VirtualBrowser-CLXEdKAF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualBrowser-clYMlLAt.js","names":["value","PrimaryActionButton"],"sources":["../src/maintenanceEngine/virtualBrowser/VirtualTableColumnDefs.js","../src/maintenanceEngine/virtualBrowser/VirtualTableSidePanel.jsx","../src/maintenanceEngine/virtualBrowser/VirtualBrowser.jsx"],"sourcesContent":["import { toTitleCase } from '../../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n headerName: '',\n field: '',\n minWidth: 80,\n autoHeight: false,\n sortable: true\n};\n\nexport const VirtualTableColumnDefs = (\n tableDescription,\n actionList,\n columnName = 'Actions',\n crudTableActionRenderName = 'actionsRenderer',\n panelDirection = 'right'\n) => {\n let columnDefs =\n tableDescription?.reduce((defs, element) => {\n defs.push({\n ...defaultGridColumn,\n headerName: toTitleCase(element?.name || ''),\n field: element?.name\n });\n return defs;\n }, []) || [];\n\n columnDefs.push({\n headerName:\n crudTableActionRenderName === 'actionsRenderer' ? 'Actions' : columnName,\n filter: false,\n pinned: panelDirection,\n width: 150,\n maxWidth: 180,\n cellRenderer: crudTableActionRenderName,\n cellRendererParams: {\n actionList\n },\n valueGetter: (params) => params.data,\n suppressMenu: true,\n sortable: false,\n cellStyle: { display: 'flex', alignItems: 'center' }\n });\n\n return columnDefs;\n};\n\nexport const defaultColActionsDef = {\n resizable: true,\n editable: false,\n sortable: true,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true\n};\n","import { Divider, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { PageContainer } from '../../page/PageContainer';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { Skeleton } from '@material-ui/lab';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { VirtualForm } from '../../UI/forms/VirtualForm';\nimport { ConfigService } from '../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n divider: {\n marginTop: theme.spacing(2)\n }\n}));\n\nconst FIELD_NUMBER = 10;\n\nexport const VirtualTableSidePanel = (props) => {\n const {\n tableDescription,\n value,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps\n } = props;\n const user = useUser();\n const classes = useStyles();\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageId}`,\n {},\n !!!pageId,\n false\n );\n\n const skeleton = useMemo(() => {\n const skeletonArr = [];\n for (let i = 0; i < FIELD_NUMBER; i++) {\n skeletonArr.push(\n <>\n <Skeleton key={i} variant='rect' className={classes.skeleton} />\n <LayoutUnit unit='xxs' />\n </>\n );\n }\n return skeletonArr;\n }, [classes]);\n\n const sideSheetContent = useMemo(() => {\n if (page) {\n return (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={pageId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n nodeObj: crudTableEditionData,\n setSideSheetWidth: setSideSheetWidth,\n setSideSheetButtonLabel: setSideSheetButtonLabel,\n setSideSheetOnSubmit: setSideSheetOnSubmit,\n closeSideSheet: closeSideSheet,\n setSideSheetProps: setSideSheetProps,\n onCreate: onCreate,\n onUpdate: onUpdate\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else {\n return (\n <>\n <VirtualForm\n tableDescription={tableDescription}\n rowValue={value}\n closeSideSheet={closeSideSheet}\n onCreate={onCreate}\n onUpdate={onUpdate}\n />\n <div className={classes.divider}>\n <Divider />\n </div>\n </>\n );\n }\n }, [\n page,\n user,\n pageId,\n crudTableEditionData,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n closeSideSheet,\n onCreate,\n onUpdate,\n classes,\n tableDescription,\n value\n ]);\n\n return (\n <div>\n {loadingPage ? (\n <>\n {skeleton.map((sk) => sk)}\n <LayoutUnit unit='md' />\n <Skeleton variant='rect' className={classes.skeletonButton} />\n </>\n ) : (\n sideSheetContent\n )}\n </div>\n );\n};\n\nVirtualTableSidePanel.propTypes = {\n /**\n * Description of the table\n */\n tableDescription: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport PrimaryActionButton from '../../UI/inputs/buttons/PrimaryActionButton';\nimport { AmbientGridTemplate } from '../../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { ActionsRenderer } from '../../UI/templates/ui/renderers/ActionsRenderer';\nimport { VirtualTableColumnDefs } from './VirtualTableColumnDefs';\nimport { AddIcon, DeleteIcon, EditIcon } from '@fluentui/react-icons';\nimport { Typography } from '@material-ui/core';\nimport { format } from 'date-fns';\nimport { getPathObject } from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { executeQueryWithParameters } from '../../udp/utilities/methodUtils';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { useLocation } from 'react-router-dom';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { VirtualTableSidePanel } from './VirtualTableSidePanel';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { useBuildEnvironment } from '../../shell/ui/useBuildEnvironment';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useSetLocationState } from '../../hooks/useSetLocationState';\nimport { ConfigService } from '../../configService';\n\nconst useSearchParams = () => {\n const { search } = useLocation();\n return useMemo(() => new URLSearchParams(search), [search]);\n};\n\nexport const VirtualBrowser = (props) => {\n const { ...other } = props;\n const urlSearchParams = useSearchParams();\n const location = useLocation();\n const { value, promotedEntity } = location.state || {};\n const parts = location?.pathname?.split('/');\n const virtualId = value\n ? value?.id\n : '' || parts\n ? parts[parts.length - 1]\n : null;\n\n const user = useUser();\n const buildEnv = useBuildEnvironment();\n const [isSheetOpen, setSheetOpen] = useState(false);\n const [sideSheetWidth, setSideSheetWidth] = useState(600);\n const [sideSheetButtonLabel, setSideSheetButtonLabel] = useState('');\n const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n const [sideSheetOnSubmit, setSideSheetOnSubmit] = useState(\n () => () => console.warn('onSubmit not set')\n );\n const [selectedEntity, setSelectedEntity] = useState(promotedEntity);\n const { t } = useTranslation();\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n const setLocationState = useSetLocationState();\n\n const closeSheet = useCallback(() => {\n setSheetOpen(false);\n }, []);\n\n const entityName = useMemo(() => {\n if (selectedEntity) {\n return selectedEntity.entityName || '';\n } else {\n return urlSearchParams.has('entityName') === true\n ? urlSearchParams.get('entityName')\n : '';\n }\n }, [selectedEntity, urlSearchParams]);\n\n const createApiMethodPageId = useMemo(() => {\n return selectedEntity?.unityBaseCreateMethod?.pageId;\n }, [selectedEntity]);\n\n const [{ data: tpacb, loading: loadingTpacb, error: tpacbError }] =\n useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!user || !!promotedEntity,\n false\n );\n\n const [{ data: promotedMethodEntities }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${tpacb?.apiCatalogId}/promotedMethodEntities/${entityName}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!tpacb || !!!user || !!!entityName,\n false\n );\n\n // Get all rows of an entity\n const [{ data: entityData, loading: isLoading }, fetchEntityData] =\n useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseGetDataMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n // Get all rows of an entity\n const [\n { data: tableDescription, loading: tableDescriptionLoading },\n fetchTableDescription\n ] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseDescribeMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const constructVirtualValuesForRequest = useCallback(\n (values) => {\n if (!tableDescription) {\n return [];\n }\n const bodyArr = [];\n tableDescription.forEach((column) => {\n const valueExist =\n typeof values[column.name] == 'boolean' || values[column.name];\n if (column.name || valueExist) {\n switch (getSanitizedName(entityName?.toLowerCase())) {\n case UdpEnums.Udp_Lookup.toLowerCase():\n bodyArr.push({\n lookupColumnId: column.id,\n value: values[column.name]\n });\n break;\n default:\n }\n }\n });\n return bodyArr;\n },\n [tableDescription, entityName]\n );\n\n const handleOnCreate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualCreateMethod) {\n const requestArr = constructVirtualValuesForRequest(values);\n const data = { requestBody: requestArr, id: virtualId };\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualCreateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been created`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnUpdate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualUpdateMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, values.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity.unityBaseVirtualUpdateMethod.pathParameters,\n primaryKeyValues\n );\n const requestArr = constructVirtualValuesForRequest(values);\n let data = { requestBody: requestArr };\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject, requestBody: requestArr };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualUpdateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been updated`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\n if (selectedEntity?.unityBaseVirtualDeleteMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, value.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity?.unityBaseVirtualDeleteMethod.pathParameters,\n primaryKeyValues\n );\n let data = {};\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualDeleteMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been deleted`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId\n ]\n );\n\n const actionList = useMemo(() => {\n if (!selectedEntity) {\n return;\n }\n\n return [\n {\n id: 1, // Must be unique\n title: selectedEntity?.unityBaseVirtualUpdateMethod\n ? t('Edit')\n : t('Edit Method Not Accessible'),\n icon: EditIcon,\n onClick: null,\n opens: 'sideSheet',\n view: {\n component: VirtualTableSidePanel,\n properties: {\n tableDescription: tableDescription,\n onUpdate: handleOnUpdate,\n valuePropName: 'value',\n closeSideSheet: null,\n closeSideSheetPropName: 'closeSideSheet',\n pageId: selectedEntity?.unityBaseVirtualUpdateMethod?.pageId,\n isNewEntry: false\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualUpdateMethod\n },\n {\n id: 2, // Must be unique\n title: selectedEntity?.unityBaseVirtualDeleteMethod\n ? t('Delete')\n : t('Delete Method Not Accessible'),\n icon: DeleteIcon,\n onClick: null,\n opens: 'dialog',\n view: {\n component: null,\n properties: {\n title: t('Delete'),\n message: t('Are you sure you want to delete this row?'),\n labelOne: t('Cancel'),\n actionTwo: handleOnDelete,\n labelTwo: t('Confirm')\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualDeleteMethod\n }\n ];\n }, [selectedEntity, t, handleOnUpdate, handleOnDelete, tableDescription]);\n\n const columnDefs = useMemo(() => {\n if (tableDescription?.length) {\n return VirtualTableColumnDefs(tableDescription, actionList);\n }\n return [];\n }, [actionList, tableDescription]);\n\n const groupData = useMemo(() => {\n return columnDefs?.map((item) => {\n return {\n groupItem: item.field,\n label: item.headerName,\n value: item.field\n };\n });\n }, [columnDefs]);\n\n useEffect(() => {\n if (promotedMethodEntities) {\n setSelectedEntity(promotedMethodEntities);\n }\n }, [promotedMethodEntities]);\n\n useEffect(() => {\n if (virtualId) {\n const queryData = { id: virtualId };\n if (selectedEntity?.unityBaseGetDataMethod?.apiMethodId) {\n fetchEntityData({ data: queryData });\n }\n if (selectedEntity?.unityBaseDescribeMethod?.apiMethodId) {\n fetchTableDescription({ data: queryData });\n }\n }\n }, [selectedEntity, fetchEntityData, virtualId, fetchTableDescription]);\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(value?.name) || t('Virtual Lookup') });\n }, [setLocationState, t, value]);\n\n const pab = (\n <PrimaryActionButton onClick={() => setSheetOpen && setSheetOpen(true)}>\n <Typography style={{ marginRight: 5 }}>Add</Typography>\n <AddIcon />\n </PrimaryActionButton>\n );\n\n const SideOptionList = useMemo(\n () => (\n <SideSheet\n open={isSheetOpen}\n onClose={closeSheet}\n title={`Add new ${entityName}`}\n width={sideSheetWidth}\n buttonLabel={sideSheetButtonLabel}\n onSubmit={sideSheetOnSubmit}\n {...otherSideSheetProps}\n >\n <VirtualTableSidePanel\n onCreate={handleOnCreate}\n closeSideSheet={closeSheet}\n pageId={createApiMethodPageId}\n setSideSheetWidth={setSideSheetWidth}\n setSideSheetButtonLabel={setSideSheetButtonLabel}\n setSideSheetOnSubmit={setSideSheetOnSubmit}\n setSideSheetProps={setOtherSideSheetProps}\n tableDescription={tableDescription}\n />\n </SideSheet>\n ),\n [\n isSheetOpen,\n closeSheet,\n entityName,\n sideSheetWidth,\n sideSheetButtonLabel,\n sideSheetOnSubmit,\n handleOnCreate,\n createApiMethodPageId,\n otherSideSheetProps,\n tableDescription\n ]\n );\n\n const formatData = useCallback(() => {\n if (entityData?.data && tableDescription) {\n let formattedEntityData = cloneDeep(entityData?.data);\n\n // get list of attributes that are datetime\n const datetimeFields = tableDescription?.reduce((fields, element) => {\n if (element?.type === 'datetime') {\n fields.push(element?.name);\n }\n return fields;\n }, []);\n\n if (datetimeFields.length) {\n formattedEntityData.forEach((e) => {\n Object.keys(e).forEach((key) => {\n // format all datetime fields\n if (datetimeFields.find((field) => field === key)) {\n // LAA UNT-2977: add null check to prevent default date from being added when null\n if (e[key] === null) return;\n e[key] = format(new Date(e[key]), 'yyyy/MM/dd kk:mm:ss');\n }\n });\n });\n }\n\n return formattedEntityData;\n }\n return [];\n }, [entityData, tableDescription]);\n\n return (\n <>\n <AmbientGridTemplate\n title={value?.name || entityData?.name}\n data={entityData ? formatData(entityData?.data) : []}\n columnDefs={columnDefs}\n groupingData={groupData}\n primaryActionButton={pab}\n frameworkComponents={{ actionsRenderer: ActionsRenderer }}\n height={`calc(100vh - ${buildEnv ? '139px' : '114px'})`}\n disableRowSelection={true}\n loading={isLoading}\n {...other}\n />\n {SideOptionList}\n </>\n );\n};\n\n\nexport default VirtualBrowser;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VirtualBrowser-CLXEdKAF.js","names":["value","PrimaryActionButton"],"sources":["../src/maintenanceEngine/virtualBrowser/VirtualTableColumnDefs.js","../src/maintenanceEngine/virtualBrowser/VirtualTableSidePanel.jsx","../src/maintenanceEngine/virtualBrowser/VirtualBrowser.jsx"],"sourcesContent":["import { toTitleCase } from '../../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n headerName: '',\n field: '',\n minWidth: 80,\n autoHeight: false,\n sortable: true\n};\n\nexport const VirtualTableColumnDefs = (\n tableDescription,\n actionList,\n columnName = 'Actions',\n crudTableActionRenderName = 'actionsRenderer',\n panelDirection = 'right'\n) => {\n let columnDefs =\n tableDescription?.reduce((defs, element) => {\n defs.push({\n ...defaultGridColumn,\n headerName: toTitleCase(element?.name || ''),\n field: element?.name\n });\n return defs;\n }, []) || [];\n\n columnDefs.push({\n headerName:\n crudTableActionRenderName === 'actionsRenderer' ? 'Actions' : columnName,\n filter: false,\n pinned: panelDirection,\n width: 150,\n maxWidth: 180,\n cellRenderer: crudTableActionRenderName,\n cellRendererParams: {\n actionList\n },\n valueGetter: (params) => params.data,\n suppressMenu: true,\n sortable: false,\n cellStyle: { display: 'flex', alignItems: 'center' }\n });\n\n return columnDefs;\n};\n\nexport const defaultColActionsDef = {\n resizable: true,\n editable: false,\n sortable: true,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true\n};\n","import { Divider, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { PageContainer } from '../../page/PageContainer';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { Skeleton } from '@material-ui/lab';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { VirtualForm } from '../../UI/forms/VirtualForm';\nimport { ConfigService } from '../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n divider: {\n marginTop: theme.spacing(2)\n }\n}));\n\nconst FIELD_NUMBER = 10;\n\nexport const VirtualTableSidePanel = (props) => {\n const {\n tableDescription,\n value,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps\n } = props;\n const user = useUser();\n const classes = useStyles();\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageId}`,\n {},\n !!!pageId,\n false\n );\n\n const skeleton = useMemo(() => {\n const skeletonArr = [];\n for (let i = 0; i < FIELD_NUMBER; i++) {\n skeletonArr.push(\n <>\n <Skeleton key={i} variant='rect' className={classes.skeleton} />\n <LayoutUnit unit='xxs' />\n </>\n );\n }\n return skeletonArr;\n }, [classes]);\n\n const sideSheetContent = useMemo(() => {\n if (page) {\n return (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={pageId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n nodeObj: crudTableEditionData,\n setSideSheetWidth: setSideSheetWidth,\n setSideSheetButtonLabel: setSideSheetButtonLabel,\n setSideSheetOnSubmit: setSideSheetOnSubmit,\n closeSideSheet: closeSideSheet,\n setSideSheetProps: setSideSheetProps,\n onCreate: onCreate,\n onUpdate: onUpdate\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else {\n return (\n <>\n <VirtualForm\n tableDescription={tableDescription}\n rowValue={value}\n closeSideSheet={closeSideSheet}\n onCreate={onCreate}\n onUpdate={onUpdate}\n />\n <div className={classes.divider}>\n <Divider />\n </div>\n </>\n );\n }\n }, [\n page,\n user,\n pageId,\n crudTableEditionData,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n closeSideSheet,\n onCreate,\n onUpdate,\n classes,\n tableDescription,\n value\n ]);\n\n return (\n <div>\n {loadingPage ? (\n <>\n {skeleton.map((sk) => sk)}\n <LayoutUnit unit='md' />\n <Skeleton variant='rect' className={classes.skeletonButton} />\n </>\n ) : (\n sideSheetContent\n )}\n </div>\n );\n};\n\nVirtualTableSidePanel.propTypes = {\n /**\n * Description of the table\n */\n tableDescription: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport PrimaryActionButton from '../../UI/inputs/buttons/PrimaryActionButton';\nimport { AmbientGridTemplate } from '../../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { ActionsRenderer } from '../../UI/templates/ui/renderers/ActionsRenderer';\nimport { VirtualTableColumnDefs } from './VirtualTableColumnDefs';\nimport { AddIcon, DeleteIcon, EditIcon } from '@fluentui/react-icons';\nimport { Typography } from '@material-ui/core';\nimport { format } from 'date-fns';\nimport { getPathObject } from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { executeQueryWithParameters } from '../../udp/utilities/methodUtils';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { useLocation } from 'react-router-dom';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { VirtualTableSidePanel } from './VirtualTableSidePanel';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { useBuildEnvironment } from '../../shell/ui/useBuildEnvironment';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useSetLocationState } from '../../hooks/useSetLocationState';\nimport { ConfigService } from '../../configService';\n\nconst useSearchParams = () => {\n const { search } = useLocation();\n return useMemo(() => new URLSearchParams(search), [search]);\n};\n\nexport const VirtualBrowser = (props) => {\n const { ...other } = props;\n const urlSearchParams = useSearchParams();\n const location = useLocation();\n const { value, promotedEntity } = location.state || {};\n const parts = location?.pathname?.split('/');\n const virtualId = value\n ? value?.id\n : '' || parts\n ? parts[parts.length - 1]\n : null;\n\n const user = useUser();\n const buildEnv = useBuildEnvironment();\n const [isSheetOpen, setSheetOpen] = useState(false);\n const [sideSheetWidth, setSideSheetWidth] = useState(600);\n const [sideSheetButtonLabel, setSideSheetButtonLabel] = useState('');\n const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n const [sideSheetOnSubmit, setSideSheetOnSubmit] = useState(\n () => () => console.warn('onSubmit not set')\n );\n const [selectedEntity, setSelectedEntity] = useState(promotedEntity);\n const { t } = useTranslation();\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n const setLocationState = useSetLocationState();\n\n const closeSheet = useCallback(() => {\n setSheetOpen(false);\n }, []);\n\n const entityName = useMemo(() => {\n if (selectedEntity) {\n return selectedEntity.entityName || '';\n } else {\n return urlSearchParams.has('entityName') === true\n ? urlSearchParams.get('entityName')\n : '';\n }\n }, [selectedEntity, urlSearchParams]);\n\n const createApiMethodPageId = useMemo(() => {\n return selectedEntity?.unityBaseCreateMethod?.pageId;\n }, [selectedEntity]);\n\n const [{ data: tpacb, loading: loadingTpacb, error: tpacbError }] =\n useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!user || !!promotedEntity,\n false\n );\n\n const [{ data: promotedMethodEntities }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${tpacb?.apiCatalogId}/promotedMethodEntities/${entityName}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!tpacb || !!!user || !!!entityName,\n false\n );\n\n // Get all rows of an entity\n const [{ data: entityData, loading: isLoading }, fetchEntityData] =\n useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseGetDataMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n // Get all rows of an entity\n const [\n { data: tableDescription, loading: tableDescriptionLoading },\n fetchTableDescription\n ] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseDescribeMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const constructVirtualValuesForRequest = useCallback(\n (values) => {\n if (!tableDescription) {\n return [];\n }\n const bodyArr = [];\n tableDescription.forEach((column) => {\n const valueExist =\n typeof values[column.name] == 'boolean' || values[column.name];\n if (column.name || valueExist) {\n switch (getSanitizedName(entityName?.toLowerCase())) {\n case UdpEnums.Udp_Lookup.toLowerCase():\n bodyArr.push({\n lookupColumnId: column.id,\n value: values[column.name]\n });\n break;\n default:\n }\n }\n });\n return bodyArr;\n },\n [tableDescription, entityName]\n );\n\n const handleOnCreate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualCreateMethod) {\n const requestArr = constructVirtualValuesForRequest(values);\n const data = { requestBody: requestArr, id: virtualId };\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualCreateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been created`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnUpdate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualUpdateMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, values.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity.unityBaseVirtualUpdateMethod.pathParameters,\n primaryKeyValues\n );\n const requestArr = constructVirtualValuesForRequest(values);\n let data = { requestBody: requestArr };\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject, requestBody: requestArr };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualUpdateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been updated`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\n if (selectedEntity?.unityBaseVirtualDeleteMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, value.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity?.unityBaseVirtualDeleteMethod.pathParameters,\n primaryKeyValues\n );\n let data = {};\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualDeleteMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been deleted`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId\n ]\n );\n\n const actionList = useMemo(() => {\n if (!selectedEntity) {\n return;\n }\n\n return [\n {\n id: 1, // Must be unique\n title: selectedEntity?.unityBaseVirtualUpdateMethod\n ? t('Edit')\n : t('Edit Method Not Accessible'),\n icon: EditIcon,\n onClick: null,\n opens: 'sideSheet',\n view: {\n component: VirtualTableSidePanel,\n properties: {\n tableDescription: tableDescription,\n onUpdate: handleOnUpdate,\n valuePropName: 'value',\n closeSideSheet: null,\n closeSideSheetPropName: 'closeSideSheet',\n pageId: selectedEntity?.unityBaseVirtualUpdateMethod?.pageId,\n isNewEntry: false\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualUpdateMethod\n },\n {\n id: 2, // Must be unique\n title: selectedEntity?.unityBaseVirtualDeleteMethod\n ? t('Delete')\n : t('Delete Method Not Accessible'),\n icon: DeleteIcon,\n onClick: null,\n opens: 'dialog',\n view: {\n component: null,\n properties: {\n title: t('Delete'),\n message: t('Are you sure you want to delete this row?'),\n labelOne: t('Cancel'),\n actionTwo: handleOnDelete,\n labelTwo: t('Confirm')\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualDeleteMethod\n }\n ];\n }, [selectedEntity, t, handleOnUpdate, handleOnDelete, tableDescription]);\n\n const columnDefs = useMemo(() => {\n if (tableDescription?.length) {\n return VirtualTableColumnDefs(tableDescription, actionList);\n }\n return [];\n }, [actionList, tableDescription]);\n\n const groupData = useMemo(() => {\n return columnDefs?.map((item) => {\n return {\n groupItem: item.field,\n label: item.headerName,\n value: item.field\n };\n });\n }, [columnDefs]);\n\n useEffect(() => {\n if (promotedMethodEntities) {\n setSelectedEntity(promotedMethodEntities);\n }\n }, [promotedMethodEntities]);\n\n useEffect(() => {\n if (virtualId) {\n const queryData = { id: virtualId };\n if (selectedEntity?.unityBaseGetDataMethod?.apiMethodId) {\n fetchEntityData({ data: queryData });\n }\n if (selectedEntity?.unityBaseDescribeMethod?.apiMethodId) {\n fetchTableDescription({ data: queryData });\n }\n }\n }, [selectedEntity, fetchEntityData, virtualId, fetchTableDescription]);\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(value?.name) || t('Virtual Lookup') });\n }, [setLocationState, t, value]);\n\n const pab = (\n <PrimaryActionButton onClick={() => setSheetOpen && setSheetOpen(true)}>\n <Typography style={{ marginRight: 5 }}>Add</Typography>\n <AddIcon />\n </PrimaryActionButton>\n );\n\n const SideOptionList = useMemo(\n () => (\n <SideSheet\n open={isSheetOpen}\n onClose={closeSheet}\n title={`Add new ${entityName}`}\n width={sideSheetWidth}\n buttonLabel={sideSheetButtonLabel}\n onSubmit={sideSheetOnSubmit}\n {...otherSideSheetProps}\n >\n <VirtualTableSidePanel\n onCreate={handleOnCreate}\n closeSideSheet={closeSheet}\n pageId={createApiMethodPageId}\n setSideSheetWidth={setSideSheetWidth}\n setSideSheetButtonLabel={setSideSheetButtonLabel}\n setSideSheetOnSubmit={setSideSheetOnSubmit}\n setSideSheetProps={setOtherSideSheetProps}\n tableDescription={tableDescription}\n />\n </SideSheet>\n ),\n [\n isSheetOpen,\n closeSheet,\n entityName,\n sideSheetWidth,\n sideSheetButtonLabel,\n sideSheetOnSubmit,\n handleOnCreate,\n createApiMethodPageId,\n otherSideSheetProps,\n tableDescription\n ]\n );\n\n const formatData = useCallback(() => {\n if (entityData?.data && tableDescription) {\n let formattedEntityData = cloneDeep(entityData?.data);\n\n // get list of attributes that are datetime\n const datetimeFields = tableDescription?.reduce((fields, element) => {\n if (element?.type === 'datetime') {\n fields.push(element?.name);\n }\n return fields;\n }, []);\n\n if (datetimeFields.length) {\n formattedEntityData.forEach((e) => {\n Object.keys(e).forEach((key) => {\n // format all datetime fields\n if (datetimeFields.find((field) => field === key)) {\n // LAA UNT-2977: add null check to prevent default date from being added when null\n if (e[key] === null) return;\n e[key] = format(new Date(e[key]), 'yyyy/MM/dd kk:mm:ss');\n }\n });\n });\n }\n\n return formattedEntityData;\n }\n return [];\n }, [entityData, tableDescription]);\n\n return (\n <>\n <AmbientGridTemplate\n title={value?.name || entityData?.name}\n data={entityData ? formatData(entityData?.data) : []}\n columnDefs={columnDefs}\n groupingData={groupData}\n primaryActionButton={pab}\n frameworkComponents={{ actionsRenderer: ActionsRenderer }}\n height={`calc(100vh - ${buildEnv ? '139px' : '114px'})`}\n disableRowSelection={true}\n loading={isLoading}\n {...other}\n />\n {SideOptionList}\n </>\n );\n};\n\n\nexport default VirtualBrowser;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkOrderCard-
|
|
1
|
+
{"version":3,"file":"WorkOrderCard-CfvJtG69.js","names":["useStyles"],"sources":["../src/UI/surfaces/cards/workOrderCard/WorkOrderHeader.jsx","../src/UI/surfaces/cards/workOrderCard/WorkOrderCard.jsx"],"sourcesContent":["import React from 'react'\nimport { makeStyles, Typography, Divider } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n wrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n width: '75%'\n }\n}))\n\nexport const WorkOrderHeader = ({ cost, hours }) => {\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n <div className={classes.wrapper}>\n <div>\n <Typography variant='h3'> ${cost} </Typography>\n <Typography variant='caption'> Total Cost </Typography>\n </div>\n <div>\n <Divider variant='vertical' />\n </div>\n <div>\n <Typography variant='h3'> {hours} </Typography>\n <Typography variant='caption'> Total Hours </Typography>\n </div>\n </div>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport { makeStyles, Collapse } from '@material-ui/core'\nimport { AmbientCard } from '../AmbientCard'\nimport { FluentIconButton } from '../../../inputs/buttons/FluentIconButton'\nimport { LayoutUnit } from '../../../../layout/LayoutUnit'\nimport { ChevronDownIcon, ChevronUpIcon } from '@fluentui/react-icons'\nimport { WorkOrderHeader } from './WorkOrderHeader'\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n moreButton: {\n display: 'flex',\n // justifyContent: 'flex-end',\n },\n}));\n\nexport const WorkOrderCard = ({\n title,\n onClick,\n status,\n label,\n cost,\n hours,\n service,\n list,\n extendedList,\n launch,\n}) => {\n const classes = useStyles();\n const [expanded, setExpanded] = useState(false);\n\n return (\n <div className={classes.root}>\n <AmbientCard\n title={title}\n onClick={onClick}\n ariaLabel=\"launch\"\n fullWidth\n status={status}\n label={label}\n launch={launch}\n extendedContent={expanded}\n >\n {cost && (\n <div>\n <div>\n <WorkOrderHeader cost={cost} hours={hours} />\n </div>\n <LayoutUnit unit=\"sm\" />\n {service}\n <LayoutUnit unit=\"sm\" />\n </div>\n )}\n {!cost && <div> {service}</div>}\n\n <div>\n {list}\n <LayoutUnit unit=\"xxs\" />\n {extendedList && (\n <div className={classes.moreButton}>\n <FluentIconButton\n onClick={() => setExpanded(!expanded)}\n icon={expanded ? ChevronUpIcon : ChevronDownIcon}\n className={classes.icon}\n />\n </div>\n )}\n <Collapse in={expanded} timeout=\"auto\">\n <div>{extendedList}</div>\n </Collapse>\n </div>\n </AmbientCard>\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAGA,MAAMA,cAAY,YAAY,WAAW;CACvC,MAAM,EAAE;CACR,SAAS;EACP,SAAS;EACT,gBAAgB;EAChB,OAAO;EACR;CACF,EAAE;AAEH,MAAa,mBAAmB,EAAE,MAAM,YAAY;CAClD,MAAM,UAAUA,aAAW;AAE3B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC,SAAI,WAAW,QAAQ,WACtB,oCAAC,aACC,oCAAC,cAAW,SAAQ,QAAK,MAAG,MAAK,IAAc,EAC/C,oCAAC,cAAW,SAAQ,aAAU,eAAyB,CACnD,EACN,oCAAC,aACC,oCAAC,WAAQ,SAAQ,aAAa,CAC1B,EACN,oCAAC,aACC,oCAAC,cAAW,SAAQ,QAAK,KAAE,OAAM,IAAc,EAC/C,oCAAC,cAAW,SAAQ,aAAU,gBAA0B,CACpD,CACF,CACF;;;;;ACtBV,MAAM,YAAY,YAAW,WAAU;CACrC,MAAM,EAAE;CACR,YAAY,EACV,SAAS,QAEV;CACF,EAAE;AAEH,MAAa,iBAAiB,EAC5B,OACA,SACA,QACA,OACA,MACA,OACA,SACA,MACA,cACA,aACI;CACJ,MAAM,UAAU,WAAW;CAC3B,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;AAE/C,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC;EACQ;EACE;EACT,WAAU;EACV;EACQ;EACD;EACC;EACR,iBAAiB;IAEhB,QACC,oCAAC,aACC,oCAAC,aACC,oCAAC;EAAsB;EAAa;GAAS,CACzC,EACN,oCAAC,cAAW,MAAK,OAAO,EACvB,SACD,oCAAC,cAAW,MAAK,OAAO,CACpB,EAEP,CAAC,QAAQ,oCAAC,aAAI,KAAE,QAAc,EAE/B,oCAAC,aACE,MACD,oCAAC,cAAW,MAAK,QAAQ,EACxB,gBACC,oCAAC,SAAI,WAAW,QAAQ,cACtB,oCAAC;EACC,eAAe,YAAY,CAAC,SAAS;EACrC,MAAM,WAAW,gBAAgB;EACjC,WAAW,QAAQ;GACnB,CACE,EAER,oCAAC;EAAS,IAAI;EAAU,SAAQ;IAC9B,oCAAC,aAAK,aAAmB,CAChB,CACP,CACM,CACV"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { t as ConfigService } from "./configService-C4uoG3wj.js";
|
|
2
2
|
import { t as useUser } from "./useUser-wpHGo6jU.js";
|
|
3
|
-
import {
|
|
3
|
+
import { I as TreeViewModeEnums } from "./unitySystemEnums-e5F9Jr7m.js";
|
|
4
4
|
import { n as useShellStore } from "./shellStore-C8zfPsZ-.js";
|
|
5
5
|
import { t as useAxiosGet } from "./useAxiosGet-vvPjwB4W.js";
|
|
6
6
|
import { t as useSetLocationState } from "./useSetLocationState-Kvcc9BTb.js";
|
|
7
7
|
import { n as useBuildEnvironment, t as APP_RIBBON_SPACE } from "./useBuildEnvironment-2gdqpmBX.js";
|
|
8
8
|
import { t as NodeLoader } from "./NodeLoader-BtOQQiwA.js";
|
|
9
9
|
import { t as UtilitySideBar } from "./UtilitySideBar-N84D3gCu.js";
|
|
10
|
-
import { t as WorkflowTreeMenu } from "./WorkflowTreeMenu-
|
|
10
|
+
import { t as WorkflowTreeMenu } from "./WorkflowTreeMenu-BudXOCOS.js";
|
|
11
11
|
import { i as transformWorkflowPlayTree } from "./workflowUtilities-Y2J2_Bcx.js";
|
|
12
12
|
import { t as WorkflowContent } from "./WorkflowContent-D4EIUyFl.js";
|
|
13
13
|
import { t as useUpdateSearchParams } from "./useUpdateSearchParams-LJeXfDsp.js";
|
|
@@ -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-5of_2j2y.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowContainer-ClMZHFEd.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-5of_2j2y.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-5of_2j2y.js";
|
|
2
2
|
|
|
3
3
|
export { WorkflowContainer, WorkflowContainer_default as default };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as FluentIcon } from "./FluentIcon-DQ6nSDJg.js";
|
|
2
|
-
import {
|
|
2
|
+
import { I as TreeViewModeEnums, v as NodeActionTriggerEnums } from "./unitySystemEnums-e5F9Jr7m.js";
|
|
3
3
|
import { t as UnityFluentIcon } from "./UnityFluentIcon-DrASIcTF.js";
|
|
4
|
-
import { S as getIconFromName, V as searchTree, d as findAllParentIds, w as getNodeIdForRightBorder } from "./TreeUtilities-
|
|
4
|
+
import { S as getIconFromName, V as searchTree, d as findAllParentIds, w as getNodeIdForRightBorder } from "./TreeUtilities-kiPupulY.js";
|
|
5
5
|
import { t as getUnityIconFromName } from "./UnityIconLibrary-CjIwzfjv.js";
|
|
6
|
-
import { t as AggregateChip } from "./AggregateChip-
|
|
6
|
+
import { t as AggregateChip } from "./AggregateChip-VJ-QIBJt.js";
|
|
7
7
|
import React, { useCallback, useEffect, useState } from "react";
|
|
8
8
|
import { CircularProgress, Tooltip, Typography, darken, lighten, makeStyles, useTheme } from "@material-ui/core";
|
|
9
9
|
import clsx from "clsx";
|
|
@@ -343,4 +343,4 @@ const WorkflowTreeMenu = (props) => {
|
|
|
343
343
|
|
|
344
344
|
//#endregion
|
|
345
345
|
export { WorkflowTreeMenuItem as n, WorkflowTreeMenu as t };
|
|
346
|
-
//# sourceMappingURL=WorkflowTreeMenu-
|
|
346
|
+
//# sourceMappingURL=WorkflowTreeMenu-BudXOCOS.js.map
|