udp-react-enterprise-component-library 25.18.1-beta.40 → 25.18.1-beta.42
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/{AadCallback-DL4V3BBL.js → AadCallback-DI_SnmOU.js} +1 -1
- package/dist/{AadCallback-DL4V3BBL.js.map → AadCallback-DI_SnmOU.js.map} +1 -1
- package/dist/{ActionProvider-2AAAOm9H.js → ActionProvider-C_rohJIr.js} +2 -2
- package/dist/{ActionProvider-2AAAOm9H.js.map → ActionProvider-C_rohJIr.js.map} +1 -1
- package/dist/{ActionSplitScreen-DeU-9YQb.js → ActionSplitScreen-OFqIncG9.js} +3 -3
- package/dist/{ActionSplitScreen-DeU-9YQb.js.map → ActionSplitScreen-OFqIncG9.js.map} +1 -1
- package/dist/{ActionWrapper-Btbpz4rx.js → ActionWrapper-d9dIOSYB.js} +4 -4
- package/dist/{ActionWrapper-Btbpz4rx.js.map → ActionWrapper-d9dIOSYB.js.map} +1 -1
- package/dist/{AmChart-BM2HoPa4.js → AmChart-WvmHsOdz.js} +1 -1
- package/dist/{AmChart-BM2HoPa4.js.map → AmChart-WvmHsOdz.js.map} +1 -1
- package/dist/{AmbientSingleDateSelector-BQY1Nals.js → AmbientSingleDateSelector-8uylQ-tc.js} +1 -1
- package/dist/{AmbientSingleDateSelector-BQY1Nals.js.map → AmbientSingleDateSelector-8uylQ-tc.js.map} +1 -1
- package/dist/{AmbientVisualizationCard-Dig-Mh_G.js → AmbientVisualizationCard-Cov8RODG.js} +3 -3
- package/dist/{AmbientVisualizationCard-Dig-Mh_G.js.map → AmbientVisualizationCard-Cov8RODG.js.map} +1 -1
- package/dist/{AmbientVisualizer-B1Xwwe0J.js → AmbientVisualizer-Bo7NLGfw.js} +1 -1
- package/dist/{AmbientVisualizer-B1Xwwe0J.js.map → AmbientVisualizer-Bo7NLGfw.js.map} +1 -1
- package/dist/{BarChartWidget-Dwav8_8e.js → BarChartWidget-D-_ZVpMh.js} +1 -1
- package/dist/{BarChartWidget-Dwav8_8e.js.map → BarChartWidget-D-_ZVpMh.js.map} +1 -1
- package/dist/{BaseTreeMenu-koW5kjhb.js → BaseTreeMenu-nKjw3cil.js} +2 -2
- package/dist/{BaseTreeMenu-koW5kjhb.js.map → BaseTreeMenu-nKjw3cil.js.map} +1 -1
- package/dist/{BubbleWidget-CsIheJTW.js → BubbleWidget-SplMEBJm.js} +2 -2
- package/dist/{BubbleWidget-CsIheJTW.js.map → BubbleWidget-SplMEBJm.js.map} +1 -1
- package/dist/{CardList-BPNGTxsh.js → CardList-B_F1Qgqh.js} +1 -1
- package/dist/{CardList-BPNGTxsh.js.map → CardList-B_F1Qgqh.js.map} +1 -1
- package/dist/{CircleButton-cl6mmDmn.js → CircleButton-B9JAMG53.js} +2 -2
- package/dist/{CircleButton-cl6mmDmn.js.map → CircleButton-B9JAMG53.js.map} +1 -1
- package/dist/{ContentContainer-DmKz5kvq.js → ContentContainer-DuDrf5lL.js} +1 -1
- package/dist/{ContentContainer-DmKz5kvq.js.map → ContentContainer-DuDrf5lL.js.map} +1 -1
- package/dist/{DataBrowserContainer-DPB12XVR.js → DataBrowserContainer-DZGhEt9N.js} +3 -3
- package/dist/{DataBrowserContainer-DPB12XVR.js.map → DataBrowserContainer-DZGhEt9N.js.map} +1 -1
- package/dist/{DateTrendWidget-DzqqUeZv.js → DateTrendWidget-F6hBnYej.js} +1 -1
- package/dist/{DateTrendWidget-DzqqUeZv.js.map → DateTrendWidget-F6hBnYej.js.map} +1 -1
- package/dist/{DensePlotWidget-CsRmVbqu.js → DensePlotWidget-BEhHNh53.js} +1 -1
- package/dist/{DensePlotWidget-CsRmVbqu.js.map → DensePlotWidget-BEhHNh53.js.map} +1 -1
- package/dist/{Directory-CoEKdRkU.js → Directory-CFTCLxWZ.js} +1 -1
- package/dist/{Directory-CoEKdRkU.js.map → Directory-CFTCLxWZ.js.map} +1 -1
- package/dist/{EntityHeader-CuiVOsA7.js → EntityHeader-D_gYzj76.js} +2 -2
- package/dist/{EntityHeader-CuiVOsA7.js.map → EntityHeader-D_gYzj76.js.map} +1 -1
- package/dist/{FieldArrayCard-CgM6q87c.js → FieldArrayCard-Bv9h9akG.js} +1 -1
- package/dist/{FieldArrayCard-CgM6q87c.js.map → FieldArrayCard-Bv9h9akG.js.map} +1 -1
- package/dist/{FileUpload-t3PZx_yE.js → FileUpload-BCxrOds_.js} +1 -1
- package/dist/{FileUpload-t3PZx_yE.js.map → FileUpload-BCxrOds_.js.map} +1 -1
- package/dist/{FluentCardHeader-CRJaqkV3.js → FluentCardHeader-BdMB2qzK.js} +1 -1
- package/dist/{FluentCardHeader-CRJaqkV3.js.map → FluentCardHeader-BdMB2qzK.js.map} +1 -1
- package/dist/{FluentCell-C1d53Ct2.js → FluentCell-D2lpxw4O.js} +2 -2
- package/dist/{FluentCell-C1d53Ct2.js.map → FluentCell-D2lpxw4O.js.map} +1 -1
- package/dist/{FluentDataTable-C1rFIP0M.js → FluentDataTable-ChpZUwal.js} +2 -2
- package/dist/{FluentDataTable-C1rFIP0M.js.map → FluentDataTable-ChpZUwal.js.map} +1 -1
- package/dist/{FluentLink-D-gKioCQ.js → FluentLink-DP2eDAH2.js} +1 -1
- package/dist/{FluentLink-D-gKioCQ.js.map → FluentLink-DP2eDAH2.js.map} +1 -1
- package/dist/{FluentRadioGroup-Cfldr9dO.js → FluentRadioGroup-CCKelZVk.js} +1 -1
- package/dist/{FluentRadioGroup-Cfldr9dO.js.map → FluentRadioGroup-CCKelZVk.js.map} +1 -1
- package/dist/{FluentSelectMenu-BEREJbe-.js → FluentSelectMenu-yQMFZWEg.js} +1 -1
- package/dist/{FluentSelectMenu-BEREJbe-.js.map → FluentSelectMenu-yQMFZWEg.js.map} +1 -1
- package/dist/{FluentSimpleSelect-Djff-up8.js → FluentSimpleSelect-DxxbQV37.js} +2 -2
- package/dist/{FluentSimpleSelect-Djff-up8.js.map → FluentSimpleSelect-DxxbQV37.js.map} +1 -1
- package/dist/{FluentTimeline-D8sfgLj1.js → FluentTimeline-BEPJHsgi.js} +1 -1
- package/dist/{FluentTimeline-D8sfgLj1.js.map → FluentTimeline-BEPJHsgi.js.map} +1 -1
- package/dist/{GraphCard-Dv4a99wo.js → GraphCard-CcXwOERk.js} +1 -1
- package/dist/{GraphCard-Dv4a99wo.js.map → GraphCard-CcXwOERk.js.map} +1 -1
- package/dist/{IconKey-D7fZ_U4O.js → IconKey-CbK8_rol.js} +1 -1
- package/dist/{IconKey-D7fZ_U4O.js.map → IconKey-CbK8_rol.js.map} +1 -1
- package/dist/{IconRenderer-B6ZoqrTX.js → IconRenderer-JdCm70xC.js} +2 -2
- package/dist/{IconRenderer-B6ZoqrTX.js.map → IconRenderer-JdCm70xC.js.map} +1 -1
- package/dist/Inquiry-C1q14Yyd.js +3 -0
- package/dist/{Inquiry-CeZgX9ls.js → Inquiry-Cjz91wf_.js} +7 -7
- package/dist/{Inquiry-CeZgX9ls.js.map → Inquiry-Cjz91wf_.js.map} +1 -1
- package/dist/{InquirySearchContainer-BIpngula.js → InquirySearchContainer-BnHwUWFC.js} +2 -2
- package/dist/{InquirySearchContainer-BIpngula.js.map → InquirySearchContainer-BnHwUWFC.js.map} +1 -1
- package/dist/{LineAndSparklinesWidget-B7U_tk1Y.js → LineAndSparklinesWidget-KVAnvpKl.js} +1 -1
- package/dist/{LineAndSparklinesWidget-B7U_tk1Y.js.map → LineAndSparklinesWidget-KVAnvpKl.js.map} +1 -1
- package/dist/{LineGraphWidget-vAqCb_aI.js → LineGraphWidget-CYjLiV5B.js} +1 -1
- package/dist/{LineGraphWidget-vAqCb_aI.js.map → LineGraphWidget-CYjLiV5B.js.map} +1 -1
- package/dist/{MenuPage-CkV002Ni.js → MenuPage-BS8ti9lx.js} +3 -3
- package/dist/{MenuPage-CkV002Ni.js.map → MenuPage-BS8ti9lx.js.map} +1 -1
- package/dist/MenuPage-DV20TjmL.js +3 -0
- package/dist/{MttMainTimeline-DIzQDgmK.js → MttMainTimeline-nusYDWg_.js} +2 -2
- package/dist/{MttMainTimeline-DIzQDgmK.js.map → MttMainTimeline-nusYDWg_.js.map} +1 -1
- package/dist/{MttSummary-Ctibq7Eu.js → MttSummary-DWESRW7k.js} +3 -3
- package/dist/{MttSummary-Ctibq7Eu.js.map → MttSummary-DWESRW7k.js.map} +1 -1
- package/dist/MyExportsPage-B3A6lwaV.js +3 -0
- package/dist/{MyExportsPage-DAYh16lE.js → MyExportsPage-BwcVZASe.js} +3 -3
- package/dist/{MyExportsPage-DAYh16lE.js.map → MyExportsPage-BwcVZASe.js.map} +1 -1
- package/dist/{NewsCard-C3y9a_OJ.js → NewsCard-Y-exMCuK.js} +1 -1
- package/dist/{NewsCard-C3y9a_OJ.js.map → NewsCard-Y-exMCuK.js.map} +1 -1
- package/dist/{Notes-UkwV2z4D.js → Notes-i2G6Ugsq.js} +1 -1
- package/dist/{Notes-UkwV2z4D.js.map → Notes-i2G6Ugsq.js.map} +1 -1
- package/dist/{NotesScreen-Xj0vl0v1.js → NotesScreen-DE3fhpjW.js} +4 -4
- package/dist/{NotesScreen-Xj0vl0v1.js.map → NotesScreen-DE3fhpjW.js.map} +1 -1
- package/dist/{OutlookCallback-ClSfPtyN.js → OutlookCallback-teOtztm6.js} +1 -1
- package/dist/{OutlookCallback-ClSfPtyN.js.map → OutlookCallback-teOtztm6.js.map} +1 -1
- package/dist/{PageActionWrapper-DonuC2VZ.js → PageActionWrapper-C-irIPLE.js} +2 -2
- package/dist/{PageActionWrapper-DonuC2VZ.js.map → PageActionWrapper-C-irIPLE.js.map} +1 -1
- package/dist/{PageNotFoundRoute-BfkErQJB.js → PageNotFoundRoute-B_mbfK8s.js} +1 -1
- package/dist/{PageNotFoundRoute-dmLyzuH3.js → PageNotFoundRoute-i_Tf23jB.js} +1 -1
- package/dist/{PageNotFoundRoute-dmLyzuH3.js.map → PageNotFoundRoute-i_Tf23jB.js.map} +1 -1
- package/dist/{PaymentForm-jJcVd3Du.js → PaymentForm-BTLh5bXJ.js} +3 -3
- package/dist/{PaymentForm-jJcVd3Du.js.map → PaymentForm-BTLh5bXJ.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesTable-CIR8D1c4.js → RecentlyLoadedNodesTable-8WQBaAl4.js} +2 -2
- package/dist/{RecentlyLoadedNodesTable-CIR8D1c4.js.map → RecentlyLoadedNodesTable-8WQBaAl4.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesWidget-D0lhioMn.js → RecentlyLoadedNodesWidget--NDwNQQF.js} +2 -2
- package/dist/{RecentlyLoadedNodesWidget-D0lhioMn.js.map → RecentlyLoadedNodesWidget--NDwNQQF.js.map} +1 -1
- package/dist/{RejectIcon-lx34XeEL.js → RejectIcon-CNSkW92y.js} +1 -1
- package/dist/{RejectIcon-lx34XeEL.js.map → RejectIcon-CNSkW92y.js.map} +1 -1
- package/dist/{RemindersCard-rF51zmWF.js → RemindersCard-CSJ8buYt.js} +2 -2
- package/dist/{RemindersCard-rF51zmWF.js.map → RemindersCard-CSJ8buYt.js.map} +1 -1
- package/dist/{RemindersScreen-Cg6_SGJI.js → RemindersScreen-CyT18piP.js} +4 -4
- package/dist/{RemindersScreen-Cg6_SGJI.js.map → RemindersScreen-CyT18piP.js.map} +1 -1
- package/dist/{RemindersWidget-BcLn4sdk.js → RemindersWidget-B3qlh8K-.js} +3 -3
- package/dist/{RemindersWidget-BcLn4sdk.js.map → RemindersWidget-B3qlh8K-.js.map} +1 -1
- package/dist/Reports-CLowSLq9.js +3 -0
- package/dist/{Reports-CxRaLcxr.js → Reports-Cz5Pl1rM.js} +1 -1
- package/dist/{Reports-CxRaLcxr.js.map → Reports-Cz5Pl1rM.js.map} +1 -1
- package/dist/{SearchServiceDatasource-CeBOfTB0.js → SearchServiceDatasource-BrfkHkEq.js} +2 -2
- package/dist/{SearchServiceDatasource-CeBOfTB0.js.map → SearchServiceDatasource-BrfkHkEq.js.map} +1 -1
- package/dist/{SearchUtilities-CNz302LN.js → SearchUtilities-B1TCyppF.js} +20 -2
- package/dist/SearchUtilities-B1TCyppF.js.map +1 -0
- package/dist/{Shell-9TXRPvXM.js → Shell-CAPPm490.js} +5 -5
- package/dist/{Shell-9TXRPvXM.js.map → Shell-CAPPm490.js.map} +1 -1
- package/dist/{ShortcutContentFinder-B66kZQLM.js → ShortcutContentFinder-DTkqEgtI.js} +2 -2
- package/dist/{ShortcutContentFinder-B66kZQLM.js.map → ShortcutContentFinder-DTkqEgtI.js.map} +1 -1
- package/dist/{SimpleTable-lLaKKBvn.js → SimpleTable-z8tz6B0B.js} +1 -1
- package/dist/{SimpleTable-lLaKKBvn.js.map → SimpleTable-z8tz6B0B.js.map} +1 -1
- package/dist/{SiteHeader-DUNj1MrC.js → SiteHeader-wIcmMhx9.js} +3 -3
- package/dist/{SiteHeader-DUNj1MrC.js.map → SiteHeader-wIcmMhx9.js.map} +1 -1
- package/dist/{SparsePlotWidget-Ct-6iTAs.js → SparsePlotWidget-B3wtNHo2.js} +1 -1
- package/dist/{SparsePlotWidget-Ct-6iTAs.js.map → SparsePlotWidget-B3wtNHo2.js.map} +1 -1
- package/dist/{Statistic-CllW32VF.js → Statistic-IWynWCev.js} +2 -2
- package/dist/{Statistic-CllW32VF.js.map → Statistic-IWynWCev.js.map} +1 -1
- package/dist/{StatusCellRenderer-CVOARrth.js → StatusCellRenderer-BuPuvngw.js} +1 -1
- package/dist/{StatusCellRenderer-CVOARrth.js.map → StatusCellRenderer-BuPuvngw.js.map} +1 -1
- package/dist/{TableContainer-CcBkqd33.js → TableContainer-CcHjtMCa.js} +2 -2
- package/dist/{TableContainer-CcBkqd33.js.map → TableContainer-CcHjtMCa.js.map} +1 -1
- package/dist/{TicketCard-IqCCKSc0.js → TicketCard-D-FtADsb.js} +1 -1
- package/dist/{TicketCard-IqCCKSc0.js.map → TicketCard-D-FtADsb.js.map} +1 -1
- package/dist/{TimelineCalendar-D7T32gIH.js → TimelineCalendar-Mi4baqsg.js} +1 -1
- package/dist/{TimelineCalendar-D7T32gIH.js.map → TimelineCalendar-Mi4baqsg.js.map} +1 -1
- package/dist/{TokenGroupItem-BK0dx4cD.js → TokenGroupItem-DKbm__Kc.js} +1 -1
- package/dist/{TokenGroupItem-BK0dx4cD.js.map → TokenGroupItem-DKbm__Kc.js.map} +1 -1
- package/dist/{TreeUtilities-kiPupulY.js → TreeUtilities-VCy2z4Qv.js} +2 -2
- package/dist/{TreeUtilities-kiPupulY.js.map → TreeUtilities-VCy2z4Qv.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/forms/index.js +1 -1
- package/dist/UI/index.js +5 -5
- 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/index.js +2 -2
- package/dist/UI/inputs/radio/index.js +1 -1
- package/dist/UI/mapLayout/ui/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/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/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 +110 -2
- package/dist/UI/widgets/library/CircleGaugeWidget/index.js.map +1 -0
- 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 +381 -2
- package/dist/UI/widgets/library/GaugeWidget/index.js.map +1 -0
- 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/{UdpAppProvider-C6fH--WD.js → UdpAppProvider-BRyRY8zN.js} +2 -2
- package/dist/{UdpAppProvider-C6fH--WD.js.map → UdpAppProvider-BRyRY8zN.js.map} +1 -1
- package/dist/{UdpCalendarYearView-BEdW-myL.js → UdpCalendarYearView-BSR8CGHt.js} +1 -1
- package/dist/{UdpCalendarYearView-BEdW-myL.js.map → UdpCalendarYearView-BSR8CGHt.js.map} +1 -1
- package/dist/{UdpDataBrowserPage-CQ0vS2GN.js → UdpDataBrowserPage-B-afkKoz.js} +4 -4
- package/dist/{UdpDataBrowserPage-CQ0vS2GN.js.map → UdpDataBrowserPage-B-afkKoz.js.map} +1 -1
- package/dist/{UdpDateRangeSelector-BivfBlPa.js → UdpDateRangeSelector-C_gpkHul.js} +1 -1
- package/dist/{UdpDateRangeSelector-BivfBlPa.js.map → UdpDateRangeSelector-C_gpkHul.js.map} +1 -1
- package/dist/{UdpFormsSubmissionGrid-i3P4ZwQx.js → UdpFormsSubmissionGrid-BTg1Ktrn.js} +2 -2
- package/dist/{UdpFormsSubmissionGrid-i3P4ZwQx.js.map → UdpFormsSubmissionGrid-BTg1Ktrn.js.map} +1 -1
- package/dist/{UdpGridTemplate-OsS_O6jR.js → UdpGridTemplate-U9YcYLUf.js} +1 -1
- package/dist/{UdpGridTemplate-OsS_O6jR.js.map → UdpGridTemplate-U9YcYLUf.js.map} +1 -1
- package/dist/{UdpInquiryMaintenanceEnginePage-D7HFcJQu.js → UdpInquiryMaintenanceEnginePage-BiKDpo6a.js} +2 -2
- package/dist/{UdpInquiryMaintenanceEnginePage-D7HFcJQu.js.map → UdpInquiryMaintenanceEnginePage-BiKDpo6a.js.map} +1 -1
- package/dist/{UdpMaintenanceEnginePage-CX5L5k-E.js → UdpMaintenanceEnginePage-C1UcnDlL.js} +3 -3
- package/dist/{UdpMaintenanceEnginePage-CX5L5k-E.js.map → UdpMaintenanceEnginePage-C1UcnDlL.js.map} +1 -1
- package/dist/{UdpNotesPage-CgIdQgVV.js → UdpNotesPage-Deug2da_.js} +3 -3
- package/dist/{UdpNotesPage-CgIdQgVV.js.map → UdpNotesPage-Deug2da_.js.map} +1 -1
- package/dist/{UdpRemindersPage-CfLAOWP_.js → UdpRemindersPage-B8vCglBX.js} +3 -3
- package/dist/{UdpRemindersPage-CfLAOWP_.js.map → UdpRemindersPage-B8vCglBX.js.map} +1 -1
- package/dist/{UdpTransactionTypesPage-Su-Z5Yjd.js → UdpTransactionTypesPage-CUpHKA6y.js} +149 -65
- package/dist/UdpTransactionTypesPage-CUpHKA6y.js.map +1 -0
- package/dist/{UdpTransactionsPage-DqSVtTyb.js → UdpTransactionsPage-B5uhMoFg.js} +51 -31
- package/dist/UdpTransactionsPage-B5uhMoFg.js.map +1 -0
- package/dist/{UdpVerticalManagementPage-ndwqxjDI.js → UdpVerticalManagementPage-DHK7-w0K.js} +2 -2
- package/dist/{UdpVerticalManagementPage-ndwqxjDI.js.map → UdpVerticalManagementPage-DHK7-w0K.js.map} +1 -1
- package/dist/{UdpVerticalManagementSidesheet-DomJyrvo.js → UdpVerticalManagementSidesheet-C2kuDXac.js} +2 -2
- package/dist/{UdpVerticalManagementSidesheet-DomJyrvo.js.map → UdpVerticalManagementSidesheet-C2kuDXac.js.map} +1 -1
- package/dist/{UserFormSideSheet-Bzw3AVnY.js → UserFormSideSheet-B6Mn3bZ0.js} +1 -1
- package/dist/{UserFormSideSheet-Bzw3AVnY.js.map → UserFormSideSheet-B6Mn3bZ0.js.map} +1 -1
- package/dist/UserFormSideSheet-C1G_jBcu.js +3 -0
- package/dist/VirtualBrowser-BoHR4EBJ.js +3 -0
- package/dist/{VirtualBrowser-BWflR1ah.js → VirtualBrowser-C2oPh3YY.js} +1 -1
- package/dist/{VirtualBrowser-BWflR1ah.js.map → VirtualBrowser-C2oPh3YY.js.map} +1 -1
- package/dist/{WorkOrderCard-s-6QK3Re.js → WorkOrderCard-Ce5WrpnX.js} +1 -1
- package/dist/{WorkOrderCard-s-6QK3Re.js.map → WorkOrderCard-Ce5WrpnX.js.map} +1 -1
- package/dist/{WorkflowContainer-CA0eMzMU.js → WorkflowContainer-Cd5H4mpf.js} +2 -2
- package/dist/{WorkflowContainer-CA0eMzMU.js.map → WorkflowContainer-Cd5H4mpf.js.map} +1 -1
- package/dist/{WorkflowContainer-LP2LBBn6.js → WorkflowContainer-Iq8fmnGR.js} +1 -1
- package/dist/{WorkflowTreeMenu-CTxpL6vb.js → WorkflowTreeMenu-D2Uc09jP.js} +2 -2
- package/dist/{WorkflowTreeMenu-CTxpL6vb.js.map → WorkflowTreeMenu-D2Uc09jP.js.map} +1 -1
- package/dist/{accordion-SICjF7Th.js → accordion-CT8euUVM.js} +2 -2
- package/dist/{accordion-SICjF7Th.js.map → accordion-CT8euUVM.js.map} +1 -1
- package/dist/actions/index.js +5 -3
- package/dist/{aggridHelpers-af9idKBD.js → aggridHelpers-BeUZvPIv.js} +2 -2
- package/dist/{aggridHelpers-af9idKBD.js.map → aggridHelpers-BeUZvPIv.js.map} +1 -1
- package/dist/componentSystems/multiThreadTimeline/index.js +7 -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/index.js +4 -0
- package/dist/dataBrowser/index.js +2 -1
- package/dist/{fileViewer-BmTE1zuM.js → fileViewer-BVzlhb3g.js} +2 -2
- package/dist/{fileViewer-BmTE1zuM.js.map → fileViewer-BVzlhb3g.js.map} +1 -1
- package/dist/{fluentTimeline-BCLxH23f.js → fluentTimeline-BWoLOxF_.js} +2 -2
- package/dist/{fluentTimeline-BCLxH23f.js.map → fluentTimeline-BWoLOxF_.js.map} +1 -1
- package/dist/{forms-CuTE3vcQ.js → forms-Eqr3TUUl.js} +2 -1
- package/dist/{forms-CuTE3vcQ.js.map → forms-Eqr3TUUl.js.map} +1 -1
- package/dist/{gridVisualizationFunctions-D4fd_Ceb.js → gridVisualizationFunctions-jnvPACJD.js} +1 -1
- package/dist/{gridVisualizationFunctions-D4fd_Ceb.js.map → gridVisualizationFunctions-jnvPACJD.js.map} +1 -1
- package/dist/index.js +79 -79
- package/dist/inquiry/dashboard/index.js +1 -1
- package/dist/inquiry/index.js +3 -3
- package/dist/inquiry/search/index.js +1 -1
- package/dist/maintenanceEngine/index.js +5 -2
- package/dist/maintenanceEngine/tableBrowser/index.js +1 -1
- package/dist/maintenanceEngine/virtualBrowser/index.js +1 -1
- package/dist/menuPage/index.js +1 -1
- package/dist/{menuPage-C0cuD8I3.js → menuPage-B9NwQJVt.js} +2 -2
- package/dist/{menuPage-C0cuD8I3.js.map → menuPage-B9NwQJVt.js.map} +1 -1
- package/dist/notes/index.js +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/reminders/index.js +2 -2
- package/dist/routes/components/index.js +1 -1
- package/dist/routes/index.js +1 -1
- package/dist/{routes-C-KBRkwM.js → routes-DG4NLFP9.js} +9 -9
- package/dist/{routes-C-KBRkwM.js.map → routes-DG4NLFP9.js.map} +1 -1
- package/dist/shell/index.js +3 -2
- package/dist/shell/ui/index.js +1 -1
- package/dist/{theme-C-5VosEn.js → theme-IKiRfNgl.js} +1 -1
- package/dist/{theme-C-5VosEn.js.map → theme-IKiRfNgl.js.map} +1 -1
- package/dist/treeMenu/index.js +1 -1
- package/dist/types/src/UI/forms/UdpTransactionEmailForm.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.d.ts.map +1 -1
- 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/UdpTransactionAttachmentTypeSidesheet.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationSidesheet.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationTransactionActionSidesheet.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeStatusSidesheet.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/UdpTransactionsPage/UdpTransactionGrid.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionsPage.d.ts +21 -0
- package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionsPage.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionAttachment/TransactionAttachments.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpTransactionsPage/sidesheets/EditTransaction.d.ts.map +1 -1
- package/dist/types/src/udp/utilities/transactionConstants.d.ts +5 -0
- package/dist/types/src/udp/utilities/transactionConstants.d.ts.map +1 -0
- package/dist/types/src/utilities/search/Search.d.ts +3 -1
- package/dist/types/src/utilities/search/Search.d.ts.map +1 -1
- package/dist/types/src/utilities/search/SearchUtilities.d.ts +4 -1
- package/dist/types/src/utilities/search/SearchUtilities.d.ts.map +1 -1
- package/dist/types/src/utilities/transactions/useTransactionEngine.d.ts +1 -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 +1 -1
- package/dist/udp/pages/UdpDataBrowserPage/index.js +1 -1
- package/dist/udp/pages/UdpFormsSubmissionGrid/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 +51 -2
- package/dist/udp/pages/UdpPages/index.js.map +1 -0
- package/dist/udp/pages/UdpPagesLazy/index.js +55 -2
- package/dist/udp/pages/UdpPagesLazy/index.js.map +1 -0
- 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/utilities/aggrid/datasources/index.js +1 -1
- package/dist/utilities/aggrid/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/provider/index.js +1 -1
- package/dist/utilities/redirect/pages/index.js +1 -1
- package/dist/utilities/search/index.js +2 -2
- package/dist/utilities/style/index.js +1 -1
- package/dist/utilities/theme/index.js +1 -1
- package/dist/utilities/tree/index.js +1 -1
- package/dist/utilities/uploader/index.js +1 -1
- package/dist/workflow/index.js +4 -2
- package/dist/workflow/menus/index.js +1 -1
- package/export-map.json +3 -2
- package/package.json +2 -2
- package/dist/CircleGaugeWidget-Dbn-Hfs9.js +0 -111
- package/dist/CircleGaugeWidget-Dbn-Hfs9.js.map +0 -1
- package/dist/GaugeWidget-GvHtWlDn.js +0 -382
- package/dist/GaugeWidget-GvHtWlDn.js.map +0 -1
- package/dist/Inquiry-Cs1kj7m_.js +0 -3
- package/dist/MenuPage-IThq2ihD.js +0 -3
- package/dist/MyExportsPage-DMLtTRuJ.js +0 -3
- package/dist/Reports-Dsm8UDrt.js +0 -3
- package/dist/SearchUtilities-CNz302LN.js.map +0 -1
- package/dist/UdpPages-9KtA1yex.js +0 -52
- package/dist/UdpPages-9KtA1yex.js.map +0 -1
- package/dist/UdpPagesLazy-DAB_UwLn.js +0 -56
- package/dist/UdpPagesLazy-DAB_UwLn.js.map +0 -1
- package/dist/UdpTransactionTypesPage-Su-Z5Yjd.js.map +0 -1
- package/dist/UdpTransactionsPage-DqSVtTyb.js.map +0 -1
- package/dist/UserFormSideSheet-D6a35hXn.js +0 -3
- package/dist/VirtualBrowser-BLWKTPvM.js +0 -3
- package/dist/hocs-CyRt-7I7.js +0 -1
- package/dist/hooks-CZjs7TAZ.js +0 -1
- package/dist/menus-CETPr-Rz.js +0 -1
- package/dist/modified-BJdpgdkg.js +0 -1
- package/dist/mttMainTimeline-8er52lk7.js +0 -1
- package/dist/mttSummary-DjO6x1z3.js +0 -1
- package/dist/redirect-CiRW3aom.js +0 -1
- package/dist/renderers-CWJe-F-V.js +0 -1
- package/dist/sidebar-D6ohji9U.js +0 -1
- package/dist/storage-BH6-5v7t.js +0 -1
- package/dist/tableBrowser-DOXhQA7W.js +0 -1
- package/dist/ui-C4kNul8N.js +0 -1
- package/dist/ui-DKHa8sM6.js +0 -1
- package/dist/utils-DfHe3cg_.js +0 -1
- package/dist/utils-kACkfC1q.js +0 -1
- package/dist/virtualBrowser-CGrDP18C.js +0 -1
- package/dist/wrappers-RliXkfVO.js +0 -1
- /package/dist/{addUser-dW2T5ebz.js → addUser-B8dGyltZ.js} +0 -0
- /package/dist/{appSwitcher-Cc_raXX2.js → appSwitcher-Bcd4Cwcx.js} +0 -0
- /package/dist/{components-C06UZfZG.js → modified-BZxg92lm.js} +0 -0
- /package/dist/{crudBrowser-lDw1oxV2.js → redirect-dbCS_8ib.js} +0 -0
- /package/dist/{forms-CywZzmBr.js → renderers-DTo5-0ZY.js} +0 -0
- /package/dist/{functions-XSah-gNz.js → storage-C9onsVtI.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowTreeMenu-CTxpL6vb.js","names":["useStyles","other","tree","expanded"],"sources":["../src/workflow/menus/WorkflowTreeMenuItem.jsx","../src/workflow/menus/WorkflowTreeMenu.jsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n makeStyles,\n lighten,\n Typography,\n CircularProgress,\n darken,\n useTheme,\n Tooltip\n} from '@material-ui/core';\nimport TreeItem from '@material-ui/lab/TreeItem';\nimport { getIconFromName } from '../../utilities/tree/TreeUtilities';\nimport clsx from 'clsx';\nimport { UnityFluentIcon } from '../../utilities/iconLibrary/UnityFluentIcon';\nimport { getUnityIconFromName } from '../../utilities/iconLibrary/UnityIconLibrary';\nimport { useDrag, useDrop } from 'react-dnd';\nimport {\n NodeActionTriggerEnums,\n TreeViewModeEnums\n} from '../../enums/unitySystemEnums.ts';\nimport { AggregateChip } from '../../UI/utilityDisplay/AggregateChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n '&.Mui-selected > .MuiTreeItem-content': {\n backgroundColor:\n theme?.getThemeData()?.mode === 'dark'\n ? theme.palette.grey[700]\n : theme.palette.grey[300],\n borderRight: `4px solid ${theme.palette.primary.main}`\n },\n '&.Mui-selected > .MuiTreeItem-content .MuiTreeItem-label': {\n backgroundColor: 'transparent',\n paddingLeft: 0\n },\n '&.Mui-selected > .MuiTreeItem-content > .MuiCollapse-wrapperInner': {\n backgroundColor:\n theme?.getThemeData()?.mode !== 'dark' && theme.palette.grey[50]\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer': {\n display: (props) => (props.sidebarExpanded ? 'flex' : 'none')\n }\n },\n content: {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' &&\n !props.sidebarExpanded &&\n props.conditionalIconName &&\n props.conditionalIconColor\n ? lighten(props.conditionalIconColor, 0.92)\n : ''\n },\n labelRoot: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: (props) => (props.sidebarExpanded ? 0 : theme.spacing(1.5)),\n width: '100%'\n },\n labelContainer: {\n display: (props) => (!props.sidebarExpanded ? 'none' : ''),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `calc(100% - ${theme.spacing(6.25)}px)`\n : `calc(100% - ${theme.spacing(7.75)}px)`\n },\n conditionalIconContainer: {\n display: 'inline-flex'\n },\n labelText: {\n fontSize: '0.75rem',\n fontWeight: 600,\n lineHeight: '1rem',\n letterSpacing: 0.1\n },\n captionText: {\n marginLeft: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact ? theme.spacing(1) : '',\n fontSize: '0.65rem',\n fontWeight: 400,\n lineHeight: 1,\n letterSpacing: 0.4\n },\n labelOverflow: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginTop: `-${theme.spacing(0.25)}px`\n },\n group: {\n width: '100%',\n '& .MuiTreeItem-group': {\n marginLeft: 0\n },\n '& .MuiTreeItem-content': {\n paddingLeft: (props) =>\n props.sidebarExpanded ? (props.depth || 1) * theme.spacing(1) : 0,\n borderRight: (props) =>\n props.showRightBorderColor\n ? `4px solid ${theme.palette.primary.main}`\n : '',\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n '& .MuiTreeItem-content .MuiTreeItem-label': {\n paddingLeft: 0,\n width: (props) =>\n props.sidebarExpanded && `calc(100% - ${theme.spacing(2.5)}px)`\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer span': {\n display: (props) => (props.hideExpansion ? 'none' : '')\n },\n '& .MuiCollapse-wrapperInner': {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' && props.isSelectedNode\n ? theme.palette.grey[50]\n : ''\n }\n },\n iconContainer: {\n display: 'flex',\n // alignItems: 'center',\n justifyContent: 'center',\n // borderRadius: 50,\n marginTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginRight: theme.spacing(1),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4),\n height: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4)\n // border: (props) =>\n // props.iconColor\n // ? `1px solid ${darken(props.iconColor, 0.1)}`\n // : `1px solid ${theme.palette.secondary.main}`,\n // backgroundColor: '#ffffff'\n }\n}));\n\nexport const WorkflowTreeMenuItem = (props) => {\n const {\n parentId,\n nodeId,\n iconName,\n iconType,\n conditionalIconName,\n conditionalIconType,\n conditionalIconColor,\n label,\n iconColor,\n onNodeSelect,\n isSelectedNode,\n subLabel,\n sidebarExpanded,\n isLastNode,\n loading,\n node,\n onDropNode,\n treeViewMode,\n menuIndex,\n aggregateThresholdId,\n ...other\n } = props;\n const classes = useStyles(props);\n const theme = useTheme();\n\n const [{ isDragging }, dragRef] = useDrag({\n type: 'BaseTreeMenuItem',\n item: { ...node, sourceNodeMenuIndex: menuIndex },\n collect: (monitor) => ({\n isDragging: monitor.isDragging()\n })\n });\n\n const handleOnDrop = useCallback(\n (sourceNode, monitor) => {\n if (!monitor.didDrop()) {\n if (onDropNode) {\n const { sourceNodeMenuIndex, ...other } = sourceNode;\n onDropNode({ ...other }, node, sourceNodeMenuIndex, menuIndex);\n }\n }\n },\n [onDropNode, node, menuIndex]\n );\n\n const [{ canDrop, isOver }, dropRef] = useDrop(\n () => ({\n accept: ['BaseTreeMenuItem'],\n drop: (sourceNode, monitor) => {\n // condition to only handle first drop\n handleOnDrop(sourceNode, monitor);\n },\n canDrop: (sourceNode) => checkCanDrop(sourceNode),\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n canDrop: !!monitor.canDrop()\n })\n }),\n [handleOnDrop]\n );\n\n const checkCanDrop = useCallback(\n (sourceNode) => {\n if (sourceNode) {\n const onDropActions = node?.properties?.nodeActions?.filter(\n (na) => na?.triggerType === NodeActionTriggerEnums.On_Node_Drop\n );\n if (!onDropActions) {\n return false;\n }\n const nodeDragEntities = onDropActions?.map(\n (action) => action?.dragEntityName\n );\n return nodeDragEntities.includes(\n sourceNode?.properties?.catalogReturnObject\n );\n }\n },\n [node]\n );\n\n const handleOnLabelClick = useCallback(\n (e) => {\n e.preventDefault();\n onNodeSelect(e, nodeId);\n },\n [onNodeSelect, nodeId]\n );\n\n return (\n <TreeItem\n className={classes.group}\n key={nodeId}\n nodeId={nodeId}\n label={\n <div ref={dropRef}>\n <Tooltip title={sidebarExpanded ? '' : label}>\n <div\n ref={(node?.properties?.isDraggable && dragRef) || null}\n style={{ opacity: isDragging ? 0.5 : 1 }}\n >\n {loading ? (\n <CircularProgress size={12} />\n ) : (\n <div\n id={\n 'udpRecord-BaseTreeMenuItem-' + label?.replace(/\\s+/g, '')\n }\n udprecordid={\n 'udpRecord-BaseTreeMenuItem-' + label?.replace(/\\s+/g, '')\n }\n className={classes.labelRoot}\n style={{\n fontWeight: isSelectedNode ? 'bold' : ''\n }}\n >\n {iconName && (\n <div className={classes.iconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'large'\n }\n color={iconColor}\n type={iconType}\n icon={\n iconType === 'unity'\n ? getUnityIconFromName(iconName)\n : getIconFromName(iconName)\n }\n style={{\n color: iconColor\n ? darken(iconColor, 0.1)\n : theme.palette.secondary.main\n }}\n />\n </div>\n )}\n <div className={classes.labelContainer}>\n <Typography\n variant='subtitle2'\n className={clsx(classes.labelText, classes.labelOverflow)}\n >\n {label}\n {subLabel &&\n treeViewMode === TreeViewModeEnums.Compact && (\n <Typography\n variant='caption'\n className={clsx(\n classes.captionText,\n classes.labelOverflow\n )}\n >\n {subLabel}\n </Typography>\n )}\n </Typography>\n {subLabel && treeViewMode === TreeViewModeEnums.Classic && (\n <div className={classes.labelOverflow}>\n <Typography\n variant='caption'\n className={clsx(classes.captionText)}\n >\n {subLabel}\n </Typography>\n </div>\n )}\n </div>\n <AggregateChip aggregateThresholdId={aggregateThresholdId} />\n {conditionalIconName && sidebarExpanded && (\n <div className={classes.conditionalIconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'default'\n }\n color={conditionalIconColor}\n type={conditionalIconType}\n icon={\n conditionalIconType === 'unity'\n ? getUnityIconFromName(conditionalIconName)\n : getIconFromName(conditionalIconName)\n }\n style={{\n color: conditionalIconColor\n }}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </Tooltip>\n </div>\n }\n onLabelClick={handleOnLabelClick}\n classes={{ root: classes.root, content: classes.content }}\n {...other}\n />\n );\n};\n","import React, { useCallback, useState, useEffect } from 'react';\nimport {\n makeStyles,\n useTheme,\n lighten,\n CircularProgress,\n Typography\n} from '@material-ui/core';\nimport TreeView from '@material-ui/lab/TreeView';\nimport { WorkflowTreeMenuItem } from './WorkflowTreeMenuItem';\nimport {\n searchTree,\n findAllParentIds,\n getNodeIdForRightBorder\n} from '../../utilities/tree/TreeUtilities';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { CaretUpSolid8Icon, CaretDownSolid8Icon } from '@fluentui/react-icons';\nimport { cloneDeep } from 'lodash';\nimport { TreeViewModeEnums } from '../../enums/unitySystemEnums.ts';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginBottom: theme.spacing(1.75),\n borderTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n noChildrenContainer: {\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n }\n}));\n\nexport const WorkflowTreeMenu = (props) => {\n const {\n menuItems,\n onSelectNode,\n onDropNode,\n menuIndex,\n selectedNodeId,\n selectedNodeParentId,\n sidebarExpanded,\n treeViewMode,\n childrenKey = 'children'\n } = props;\n const [expanded, setExpanded] = useState(null);\n const [isCurrentActiveTree, setIsCurrentActiveTree] = useState(false);\n const [selectedNodeIsHidden, setSelectedNodeIsHidden] = useState(false);\n const [tree, setTree] = useState(menuItems);\n const theme = useTheme();\n const classes = useStyles(props);\n\n const handleSelectedNode = useCallback(\n (e, value) => {\n const selectedNode = searchTree(tree, value);\n if (onSelectNode) {\n onSelectNode(selectedNode, menuIndex);\n setSelectedNodeIsHidden(false);\n }\n },\n [tree, menuIndex, onSelectNode]\n );\n\n const renderTree = useCallback(\n (node, depth = 1) => {\n let label = node.properties?.nodeLabel || node.properties?.name;\n let subLabel = node.properties?.nodeSubLabel;\n let iconName = node.properties?.defaultIcon?.name;\n let iconType = node.properties?.defaultIcon?.type;\n let conditionalIconName = node.properties?.conditionalIcon?.name || '';\n let conditionalIconType = node.properties?.conditionalIcon?.name\n ? node.properties.conditionalIcon?.type\n : '';\n let conditionalIconColor = node.properties?.conditionalIcon?.name\n ? node.properties?.conditionalIcon?.color\n : '';\n let nodeId = node.id;\n let iconColor = node.properties?.conditionalIconName\n ? node.properties?.conditionalIconColor\n : node.properties?.defaultIcon?.color?.hex;\n let aggregateThresholdId = node.properties?.aggregateThresholdId || '';\n\n if (node.isGroupNode) {\n label = node.properties?.label;\n subLabel = node.properties?.subLabel;\n iconName = node.properties?.icon?.name;\n iconType = node.properties?.icon?.type;\n iconColor = node.properties?.icon?.color?.hex;\n }\n\n return (\n <WorkflowTreeMenuItem\n key={nodeId}\n nodeId={nodeId}\n label={label}\n subLabel={subLabel}\n iconName={iconName}\n iconType={iconType}\n conditionalIconName={conditionalIconName}\n conditionalIconType={conditionalIconType}\n conditionalIconColor={conditionalIconColor}\n parentId={node.parentId}\n iconColor={iconColor}\n onNodeSelect={handleSelectedNode}\n selectedNodeId={selectedNodeId}\n isSelectedNode={selectedNodeId === node.id}\n showRightBorderColor={\n selectedNodeIsHidden &&\n isCurrentActiveTree &&\n getNodeIdForRightBorder(expanded, tree, selectedNodeParentId) ===\n node.id\n }\n isCurrentActiveTree={isCurrentActiveTree}\n sidebarExpanded={sidebarExpanded}\n depth={depth}\n hideExpansion={!!!node[childrenKey]?.length}\n node={node}\n onDropNode={onDropNode}\n treeViewMode={treeViewMode}\n menuIndex={menuIndex}\n aggregateThresholdId={aggregateThresholdId}\n >\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n !node.completedLoadingChildren && (\n <CircularProgress\n size={12}\n style={{ marginLeft: (depth || 1) * theme.spacing(1) }}\n />\n )}\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n !node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n No Children\n </Typography>\n </div>\n )}\n {node.properties?.lazyLoad &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n {`Error Retrieving ${\n !!node[childrenKey]?.length ? `Additional ` : ''\n }Children`}\n </Typography>\n </div>\n )}\n {Array.isArray(node[childrenKey])\n ? node[childrenKey].map((n, i) => renderTree(n, depth + 1))\n : null}\n </WorkflowTreeMenuItem>\n );\n },\n [\n handleSelectedNode,\n selectedNodeId,\n selectedNodeIsHidden,\n isCurrentActiveTree,\n sidebarExpanded,\n expanded,\n tree,\n selectedNodeParentId,\n theme,\n classes,\n onDropNode,\n treeViewMode,\n menuIndex,\n childrenKey\n ]\n );\n\n const handleNodeExpansion = useCallback(\n async (evt, nodeIds) => {\n const treeCopy = cloneDeep(tree);\n setExpanded(nodeIds);\n\n const parentNode = searchTree(treeCopy, selectedNodeParentId);\n const initialAllParentNodeIds = selectedNodeParentId\n ? [selectedNodeParentId]\n : [];\n const allParentNodeIds = findAllParentIds(\n treeCopy,\n parentNode,\n initialAllParentNodeIds\n );\n const selectedNodeShown = allParentNodeIds.every((id) =>\n nodeIds.includes(id)\n );\n if (\n isCurrentActiveTree &&\n allParentNodeIds.length &&\n !selectedNodeShown\n ) {\n setSelectedNodeIsHidden(true);\n } else {\n setSelectedNodeIsHidden(false);\n }\n },\n [isCurrentActiveTree, tree, selectedNodeParentId]\n );\n\n const getExpandedRecursively = useCallback(\n (tree) => {\n if (!tree) return [];\n return tree.reduce((expandedIds, item) => {\n if (item?.isExpanded) {\n expandedIds.push(item.id);\n }\n if (item && item[childrenKey]?.length) {\n expandedIds = expandedIds.concat(\n getExpandedRecursively(item[childrenKey])\n );\n }\n return expandedIds;\n }, []);\n },\n [childrenKey]\n );\n\n useEffect(() => {\n setTree(menuItems);\n }, [menuItems]);\n\n useEffect(() => {\n if (!tree) {\n return;\n }\n let expanded = [];\n if (tree?.isExpanded) {\n expanded.push(tree.id);\n }\n expanded = expanded.concat(getExpandedRecursively(tree[childrenKey]));\n setExpanded(expanded);\n }, [getExpandedRecursively, tree, childrenKey]);\n\n useEffect(() => {\n if (!!searchTree(tree, selectedNodeId)) {\n setIsCurrentActiveTree(true);\n } else {\n setIsCurrentActiveTree(false);\n }\n }, [tree, selectedNodeId]);\n\n if (!expanded) {\n return null;\n }\n\n return (\n <TreeView\n key={tree}\n className={classes.root}\n defaultCollapseIcon={\n <FluentIcon\n size='small'\n component={CaretUpSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n expanded={expanded || []}\n onNodeToggle={handleNodeExpansion}\n defaultExpandIcon={\n <FluentIcon\n size='small'\n component={CaretDownSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n selected={selectedNodeId}\n >\n {tree && renderTree(tree)}\n </TreeView>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkflowTreeMenu-D2Uc09jP.js","names":["useStyles","other","tree","expanded"],"sources":["../src/workflow/menus/WorkflowTreeMenuItem.jsx","../src/workflow/menus/WorkflowTreeMenu.jsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n makeStyles,\n lighten,\n Typography,\n CircularProgress,\n darken,\n useTheme,\n Tooltip\n} from '@material-ui/core';\nimport TreeItem from '@material-ui/lab/TreeItem';\nimport { getIconFromName } from '../../utilities/tree/TreeUtilities';\nimport clsx from 'clsx';\nimport { UnityFluentIcon } from '../../utilities/iconLibrary/UnityFluentIcon';\nimport { getUnityIconFromName } from '../../utilities/iconLibrary/UnityIconLibrary';\nimport { useDrag, useDrop } from 'react-dnd';\nimport {\n NodeActionTriggerEnums,\n TreeViewModeEnums\n} from '../../enums/unitySystemEnums.ts';\nimport { AggregateChip } from '../../UI/utilityDisplay/AggregateChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n '&.Mui-selected > .MuiTreeItem-content': {\n backgroundColor:\n theme?.getThemeData()?.mode === 'dark'\n ? theme.palette.grey[700]\n : theme.palette.grey[300],\n borderRight: `4px solid ${theme.palette.primary.main}`\n },\n '&.Mui-selected > .MuiTreeItem-content .MuiTreeItem-label': {\n backgroundColor: 'transparent',\n paddingLeft: 0\n },\n '&.Mui-selected > .MuiTreeItem-content > .MuiCollapse-wrapperInner': {\n backgroundColor:\n theme?.getThemeData()?.mode !== 'dark' && theme.palette.grey[50]\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer': {\n display: (props) => (props.sidebarExpanded ? 'flex' : 'none')\n }\n },\n content: {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' &&\n !props.sidebarExpanded &&\n props.conditionalIconName &&\n props.conditionalIconColor\n ? lighten(props.conditionalIconColor, 0.92)\n : ''\n },\n labelRoot: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: (props) => (props.sidebarExpanded ? 0 : theme.spacing(1.5)),\n width: '100%'\n },\n labelContainer: {\n display: (props) => (!props.sidebarExpanded ? 'none' : ''),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `calc(100% - ${theme.spacing(6.25)}px)`\n : `calc(100% - ${theme.spacing(7.75)}px)`\n },\n conditionalIconContainer: {\n display: 'inline-flex'\n },\n labelText: {\n fontSize: '0.75rem',\n fontWeight: 600,\n lineHeight: '1rem',\n letterSpacing: 0.1\n },\n captionText: {\n marginLeft: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact ? theme.spacing(1) : '',\n fontSize: '0.65rem',\n fontWeight: 400,\n lineHeight: 1,\n letterSpacing: 0.4\n },\n labelOverflow: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginTop: `-${theme.spacing(0.25)}px`\n },\n group: {\n width: '100%',\n '& .MuiTreeItem-group': {\n marginLeft: 0\n },\n '& .MuiTreeItem-content': {\n paddingLeft: (props) =>\n props.sidebarExpanded ? (props.depth || 1) * theme.spacing(1) : 0,\n borderRight: (props) =>\n props.showRightBorderColor\n ? `4px solid ${theme.palette.primary.main}`\n : '',\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n '& .MuiTreeItem-content .MuiTreeItem-label': {\n paddingLeft: 0,\n width: (props) =>\n props.sidebarExpanded && `calc(100% - ${theme.spacing(2.5)}px)`\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer span': {\n display: (props) => (props.hideExpansion ? 'none' : '')\n },\n '& .MuiCollapse-wrapperInner': {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' && props.isSelectedNode\n ? theme.palette.grey[50]\n : ''\n }\n },\n iconContainer: {\n display: 'flex',\n // alignItems: 'center',\n justifyContent: 'center',\n // borderRadius: 50,\n marginTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginRight: theme.spacing(1),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4),\n height: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4)\n // border: (props) =>\n // props.iconColor\n // ? `1px solid ${darken(props.iconColor, 0.1)}`\n // : `1px solid ${theme.palette.secondary.main}`,\n // backgroundColor: '#ffffff'\n }\n}));\n\nexport const WorkflowTreeMenuItem = (props) => {\n const {\n parentId,\n nodeId,\n iconName,\n iconType,\n conditionalIconName,\n conditionalIconType,\n conditionalIconColor,\n label,\n iconColor,\n onNodeSelect,\n isSelectedNode,\n subLabel,\n sidebarExpanded,\n isLastNode,\n loading,\n node,\n onDropNode,\n treeViewMode,\n menuIndex,\n aggregateThresholdId,\n ...other\n } = props;\n const classes = useStyles(props);\n const theme = useTheme();\n\n const [{ isDragging }, dragRef] = useDrag({\n type: 'BaseTreeMenuItem',\n item: { ...node, sourceNodeMenuIndex: menuIndex },\n collect: (monitor) => ({\n isDragging: monitor.isDragging()\n })\n });\n\n const handleOnDrop = useCallback(\n (sourceNode, monitor) => {\n if (!monitor.didDrop()) {\n if (onDropNode) {\n const { sourceNodeMenuIndex, ...other } = sourceNode;\n onDropNode({ ...other }, node, sourceNodeMenuIndex, menuIndex);\n }\n }\n },\n [onDropNode, node, menuIndex]\n );\n\n const [{ canDrop, isOver }, dropRef] = useDrop(\n () => ({\n accept: ['BaseTreeMenuItem'],\n drop: (sourceNode, monitor) => {\n // condition to only handle first drop\n handleOnDrop(sourceNode, monitor);\n },\n canDrop: (sourceNode) => checkCanDrop(sourceNode),\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n canDrop: !!monitor.canDrop()\n })\n }),\n [handleOnDrop]\n );\n\n const checkCanDrop = useCallback(\n (sourceNode) => {\n if (sourceNode) {\n const onDropActions = node?.properties?.nodeActions?.filter(\n (na) => na?.triggerType === NodeActionTriggerEnums.On_Node_Drop\n );\n if (!onDropActions) {\n return false;\n }\n const nodeDragEntities = onDropActions?.map(\n (action) => action?.dragEntityName\n );\n return nodeDragEntities.includes(\n sourceNode?.properties?.catalogReturnObject\n );\n }\n },\n [node]\n );\n\n const handleOnLabelClick = useCallback(\n (e) => {\n e.preventDefault();\n onNodeSelect(e, nodeId);\n },\n [onNodeSelect, nodeId]\n );\n\n return (\n <TreeItem\n className={classes.group}\n key={nodeId}\n nodeId={nodeId}\n label={\n <div ref={dropRef}>\n <Tooltip title={sidebarExpanded ? '' : label}>\n <div\n ref={(node?.properties?.isDraggable && dragRef) || null}\n style={{ opacity: isDragging ? 0.5 : 1 }}\n >\n {loading ? (\n <CircularProgress size={12} />\n ) : (\n <div\n id={\n 'udpRecord-BaseTreeMenuItem-' + label?.replace(/\\s+/g, '')\n }\n udprecordid={\n 'udpRecord-BaseTreeMenuItem-' + label?.replace(/\\s+/g, '')\n }\n className={classes.labelRoot}\n style={{\n fontWeight: isSelectedNode ? 'bold' : ''\n }}\n >\n {iconName && (\n <div className={classes.iconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'large'\n }\n color={iconColor}\n type={iconType}\n icon={\n iconType === 'unity'\n ? getUnityIconFromName(iconName)\n : getIconFromName(iconName)\n }\n style={{\n color: iconColor\n ? darken(iconColor, 0.1)\n : theme.palette.secondary.main\n }}\n />\n </div>\n )}\n <div className={classes.labelContainer}>\n <Typography\n variant='subtitle2'\n className={clsx(classes.labelText, classes.labelOverflow)}\n >\n {label}\n {subLabel &&\n treeViewMode === TreeViewModeEnums.Compact && (\n <Typography\n variant='caption'\n className={clsx(\n classes.captionText,\n classes.labelOverflow\n )}\n >\n {subLabel}\n </Typography>\n )}\n </Typography>\n {subLabel && treeViewMode === TreeViewModeEnums.Classic && (\n <div className={classes.labelOverflow}>\n <Typography\n variant='caption'\n className={clsx(classes.captionText)}\n >\n {subLabel}\n </Typography>\n </div>\n )}\n </div>\n <AggregateChip aggregateThresholdId={aggregateThresholdId} />\n {conditionalIconName && sidebarExpanded && (\n <div className={classes.conditionalIconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'default'\n }\n color={conditionalIconColor}\n type={conditionalIconType}\n icon={\n conditionalIconType === 'unity'\n ? getUnityIconFromName(conditionalIconName)\n : getIconFromName(conditionalIconName)\n }\n style={{\n color: conditionalIconColor\n }}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </Tooltip>\n </div>\n }\n onLabelClick={handleOnLabelClick}\n classes={{ root: classes.root, content: classes.content }}\n {...other}\n />\n );\n};\n","import React, { useCallback, useState, useEffect } from 'react';\nimport {\n makeStyles,\n useTheme,\n lighten,\n CircularProgress,\n Typography\n} from '@material-ui/core';\nimport TreeView from '@material-ui/lab/TreeView';\nimport { WorkflowTreeMenuItem } from './WorkflowTreeMenuItem';\nimport {\n searchTree,\n findAllParentIds,\n getNodeIdForRightBorder\n} from '../../utilities/tree/TreeUtilities';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { CaretUpSolid8Icon, CaretDownSolid8Icon } from '@fluentui/react-icons';\nimport { cloneDeep } from 'lodash';\nimport { TreeViewModeEnums } from '../../enums/unitySystemEnums.ts';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginBottom: theme.spacing(1.75),\n borderTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n noChildrenContainer: {\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n }\n}));\n\nexport const WorkflowTreeMenu = (props) => {\n const {\n menuItems,\n onSelectNode,\n onDropNode,\n menuIndex,\n selectedNodeId,\n selectedNodeParentId,\n sidebarExpanded,\n treeViewMode,\n childrenKey = 'children'\n } = props;\n const [expanded, setExpanded] = useState(null);\n const [isCurrentActiveTree, setIsCurrentActiveTree] = useState(false);\n const [selectedNodeIsHidden, setSelectedNodeIsHidden] = useState(false);\n const [tree, setTree] = useState(menuItems);\n const theme = useTheme();\n const classes = useStyles(props);\n\n const handleSelectedNode = useCallback(\n (e, value) => {\n const selectedNode = searchTree(tree, value);\n if (onSelectNode) {\n onSelectNode(selectedNode, menuIndex);\n setSelectedNodeIsHidden(false);\n }\n },\n [tree, menuIndex, onSelectNode]\n );\n\n const renderTree = useCallback(\n (node, depth = 1) => {\n let label = node.properties?.nodeLabel || node.properties?.name;\n let subLabel = node.properties?.nodeSubLabel;\n let iconName = node.properties?.defaultIcon?.name;\n let iconType = node.properties?.defaultIcon?.type;\n let conditionalIconName = node.properties?.conditionalIcon?.name || '';\n let conditionalIconType = node.properties?.conditionalIcon?.name\n ? node.properties.conditionalIcon?.type\n : '';\n let conditionalIconColor = node.properties?.conditionalIcon?.name\n ? node.properties?.conditionalIcon?.color\n : '';\n let nodeId = node.id;\n let iconColor = node.properties?.conditionalIconName\n ? node.properties?.conditionalIconColor\n : node.properties?.defaultIcon?.color?.hex;\n let aggregateThresholdId = node.properties?.aggregateThresholdId || '';\n\n if (node.isGroupNode) {\n label = node.properties?.label;\n subLabel = node.properties?.subLabel;\n iconName = node.properties?.icon?.name;\n iconType = node.properties?.icon?.type;\n iconColor = node.properties?.icon?.color?.hex;\n }\n\n return (\n <WorkflowTreeMenuItem\n key={nodeId}\n nodeId={nodeId}\n label={label}\n subLabel={subLabel}\n iconName={iconName}\n iconType={iconType}\n conditionalIconName={conditionalIconName}\n conditionalIconType={conditionalIconType}\n conditionalIconColor={conditionalIconColor}\n parentId={node.parentId}\n iconColor={iconColor}\n onNodeSelect={handleSelectedNode}\n selectedNodeId={selectedNodeId}\n isSelectedNode={selectedNodeId === node.id}\n showRightBorderColor={\n selectedNodeIsHidden &&\n isCurrentActiveTree &&\n getNodeIdForRightBorder(expanded, tree, selectedNodeParentId) ===\n node.id\n }\n isCurrentActiveTree={isCurrentActiveTree}\n sidebarExpanded={sidebarExpanded}\n depth={depth}\n hideExpansion={!!!node[childrenKey]?.length}\n node={node}\n onDropNode={onDropNode}\n treeViewMode={treeViewMode}\n menuIndex={menuIndex}\n aggregateThresholdId={aggregateThresholdId}\n >\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n !node.completedLoadingChildren && (\n <CircularProgress\n size={12}\n style={{ marginLeft: (depth || 1) * theme.spacing(1) }}\n />\n )}\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n !node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n No Children\n </Typography>\n </div>\n )}\n {node.properties?.lazyLoad &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n {`Error Retrieving ${\n !!node[childrenKey]?.length ? `Additional ` : ''\n }Children`}\n </Typography>\n </div>\n )}\n {Array.isArray(node[childrenKey])\n ? node[childrenKey].map((n, i) => renderTree(n, depth + 1))\n : null}\n </WorkflowTreeMenuItem>\n );\n },\n [\n handleSelectedNode,\n selectedNodeId,\n selectedNodeIsHidden,\n isCurrentActiveTree,\n sidebarExpanded,\n expanded,\n tree,\n selectedNodeParentId,\n theme,\n classes,\n onDropNode,\n treeViewMode,\n menuIndex,\n childrenKey\n ]\n );\n\n const handleNodeExpansion = useCallback(\n async (evt, nodeIds) => {\n const treeCopy = cloneDeep(tree);\n setExpanded(nodeIds);\n\n const parentNode = searchTree(treeCopy, selectedNodeParentId);\n const initialAllParentNodeIds = selectedNodeParentId\n ? [selectedNodeParentId]\n : [];\n const allParentNodeIds = findAllParentIds(\n treeCopy,\n parentNode,\n initialAllParentNodeIds\n );\n const selectedNodeShown = allParentNodeIds.every((id) =>\n nodeIds.includes(id)\n );\n if (\n isCurrentActiveTree &&\n allParentNodeIds.length &&\n !selectedNodeShown\n ) {\n setSelectedNodeIsHidden(true);\n } else {\n setSelectedNodeIsHidden(false);\n }\n },\n [isCurrentActiveTree, tree, selectedNodeParentId]\n );\n\n const getExpandedRecursively = useCallback(\n (tree) => {\n if (!tree) return [];\n return tree.reduce((expandedIds, item) => {\n if (item?.isExpanded) {\n expandedIds.push(item.id);\n }\n if (item && item[childrenKey]?.length) {\n expandedIds = expandedIds.concat(\n getExpandedRecursively(item[childrenKey])\n );\n }\n return expandedIds;\n }, []);\n },\n [childrenKey]\n );\n\n useEffect(() => {\n setTree(menuItems);\n }, [menuItems]);\n\n useEffect(() => {\n if (!tree) {\n return;\n }\n let expanded = [];\n if (tree?.isExpanded) {\n expanded.push(tree.id);\n }\n expanded = expanded.concat(getExpandedRecursively(tree[childrenKey]));\n setExpanded(expanded);\n }, [getExpandedRecursively, tree, childrenKey]);\n\n useEffect(() => {\n if (!!searchTree(tree, selectedNodeId)) {\n setIsCurrentActiveTree(true);\n } else {\n setIsCurrentActiveTree(false);\n }\n }, [tree, selectedNodeId]);\n\n if (!expanded) {\n return null;\n }\n\n return (\n <TreeView\n key={tree}\n className={classes.root}\n defaultCollapseIcon={\n <FluentIcon\n size='small'\n component={CaretUpSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n expanded={expanded || []}\n onNodeToggle={handleNodeExpansion}\n defaultExpandIcon={\n <FluentIcon\n size='small'\n component={CaretDownSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n selected={selectedNodeId}\n >\n {tree && renderTree(tree)}\n </TreeView>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as FluentIcon } from "./FluentIcon-DQ6nSDJg.js";
|
|
2
2
|
import { t as FluentIconButton } from "./FluentIconButton-Dc95mE3v.js";
|
|
3
|
-
import { S as getIconFromName } from "./TreeUtilities-
|
|
3
|
+
import { S as getIconFromName } from "./TreeUtilities-VCy2z4Qv.js";
|
|
4
4
|
import { t as StatusChip } from "./StatusChip-DZAN88VU.js";
|
|
5
5
|
import { t as IconButtonWithTooltip } from "./IconButtonWithToolTip-DswviiJB.js";
|
|
6
6
|
import React, { useCallback } from "react";
|
|
@@ -189,4 +189,4 @@ const Accordion = (props) => {
|
|
|
189
189
|
|
|
190
190
|
//#endregion
|
|
191
191
|
export { Accordion as t };
|
|
192
|
-
//# sourceMappingURL=accordion-
|
|
192
|
+
//# sourceMappingURL=accordion-CT8euUVM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion-SICjF7Th.js","names":[],"sources":["../src/UI/accordion/Accordion.jsx"],"sourcesContent":["import {\n ButtonBase,\n Collapse,\n Tooltip,\n Typography,\n lighten,\n makeStyles\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport React, { useCallback } from 'react';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { IconButtonWithTooltip } from '../inputs/buttons/IconButtonWithToolTip';\nimport { ChevronUpIcon } from '@fluentui/react-icons';\nimport { FluentIconButton } from '../inputs/buttons/FluentIconButton';\nimport { getIconFromName } from '../../utilities/tree/TreeUtilities';\nimport { StatusChip } from '../dataDisplay/status/StatusChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n height: '100%'\n },\n rootBorder: {\n borderStyle: 'solid',\n borderColor: (props) => theme.palette[props?.color]?.main,\n borderWidth: '1px 1px 1px 6px'\n },\n headerWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n backgroundColor: (props) =>\n props?.simpleAccordion && props?.color && props?.color !== 'default'\n ? props?.color === 'paper'\n ? theme.palette.background.paper\n : lighten(theme.palette[props?.color]?.light, 0.8)\n : theme.palette.background.default,\n overflow: 'hidden',\n width: (props) => props?.headerWidth ?? '100%'\n },\n secondaryButtonsWrapper: {\n display: 'flex',\n gap: theme.spacing(2),\n borderRadius: theme.spacing(2),\n backgroundColor: 'white',\n padding: `2px ${theme.spacing(1)}px`,\n width: 'fit-content'\n },\n primaryButtonWrapper: {\n minWidth: '68px',\n maxWidth: (props) => props?.primaryActionMaxWidth,\n height: 'auto',\n color: 'white',\n backgroundColor: (props) => theme.palette[props?.color]?.main,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal'\n },\n headerColor: {\n backgroundColor: (props) =>\n props?.color !== 'default' &&\n props?.color !== 'paper' &&\n lighten(theme.palette[props?.color]?.light, 0.85)\n },\n buttonWrapper: {\n display: 'flex',\n gap: theme.spacing(0.5)\n },\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexGrow: 2,\n margin: (props) => (props.removeHeaderMargin ? '0px' : theme.spacing(0.8)),\n color: theme.palette.text.primary\n },\n closeButtonWrapper: {\n display: 'flex',\n justifyContent: 'flex-end',\n marginTop: theme.spacing(1)\n },\n unexpandedIconButton: {\n width: '68px',\n height: '40px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal',\n borderTop: `solid 1px lightgrey`,\n borderLeft: `solid 1px lightgrey`,\n overflow: 'hidden',\n border: (props) => props?.removeBorder && '0px'\n },\n rightIconButton: {\n backgroundColor: 'white',\n padding: theme.spacing(1),\n borderRadius: '50%'\n },\n primaryActionLabel: {\n marginRight: theme.spacing(0.5),\n marginLeft: theme.spacing(0.5)\n },\n expand: {\n transform: 'rotate(0deg)',\n marginLeft: 'auto',\n marginRight: theme.spacing(1),\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n })\n },\n expandOpen: {\n transform: 'rotate(180deg)'\n },\n titleStatusWrapper: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n }\n}));\n\nexport const Accordion = (props) => {\n const {\n title,\n subtitle,\n subtitleVariant,\n status,\n statusIcon,\n statusLabel,\n secondaryIconButtons,\n overriddenSecondaryContainer,\n rightIcon,\n rightIconAction,\n rightIconTooltip,\n disableRightIconButton = false,\n primaryActionIcon,\n primaryActionLabel,\n primaryAction,\n primaryActionMaxWidth,\n disablePrimaryActionButton = false,\n color = 'info',\n children,\n expand,\n setExpand,\n additionalEvent,\n hideCloseButton = false,\n hideRightIconButton = false,\n hidePrimaryAction = false,\n noWrapTitle = false,\n simpleAccordion = false,\n recordId = 0,\n removeBorder = false,\n headerWidth,\n removeHeaderMargin,\n titleVariant = 'subtitle2',\n chevronIconSize = 'medium'\n } = props;\n const classes = useStyles({\n color,\n primaryActionMaxWidth,\n simpleAccordion,\n headerWidth,\n removeHeaderMargin,\n removeBorder,\n });\n\n const handleOnClickAccordion = useCallback(() => {\n if (setExpand) {\n setExpand(!expand);\n }\n\n if (additionalEvent) {\n additionalEvent();\n }\n }, [additionalEvent, expand, setExpand]);\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.rootBorder]: !simpleAccordion & !removeBorder\n })}\n >\n <div\n className={clsx(classes.headerWrapper, {\n [classes.headerColor]: simpleAccordion ? false : expand\n })}\n onClick={handleOnClickAccordion}\n >\n <div className={classes.titleWrapper}>\n <div>\n <div className={classes.titleStatusWrapper}>\n <Typography variant={titleVariant} noWrap={noWrapTitle}>\n {title}\n </Typography>\n {statusLabel && <StatusChip\n status={status ?? color}\n label={statusLabel}\n icon={statusIcon}\n />}\n </div>\n\n {subtitle && (\n <Typography variant={subtitleVariant} noWrap={noWrapTitle}>\n {subtitle}\n </Typography>\n )}\n\n {overriddenSecondaryContainer ? (\n { overriddenSecondaryContainer }\n ) : (\n <div>\n {secondaryIconButtons?.length > 0 && (\n <div className={classes.secondaryButtonsWrapper}>\n {secondaryIconButtons?.map((item) => (\n <div className={classes.buttonWrapper}>\n <IconButtonWithTooltip\n {...item}\n title={item?.title}\n icon={item.icon}\n onClick={(event) => {\n event.stopPropagation();\n item.onClick();\n }}\n size='small'\n id={`udpRecord-Accordion-${item?.title}-${recordId}`}\n udprecordid={`udpRecord-Accordion-${item?.title}-${recordId}`}\n />\n {item?.value && <Typography>{item?.value}</Typography>}\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n {!hideRightIconButton && !simpleAccordion && (\n <div>\n <IconButtonWithTooltip\n title={rightIconTooltip}\n icon={rightIcon}\n onClick={(event) => {\n event.stopPropagation();\n rightIconAction();\n }}\n className={classes.rightIconButton}\n size='small'\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-RightButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-RightButton-${recordId}`}\n />\n </div>\n )}\n </div>\n {!hidePrimaryAction && !simpleAccordion && (\n <div className={classes.primaryButtonWrapper}>\n {primaryActionIcon ? (\n <Tooltip title={primaryActionLabel}>\n <ButtonBase\n onClick={(event) => {\n event.stopPropagation();\n primaryAction();\n }}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n id={`udpRecord-Accordion-ButtonBase-${recordId}`}\n udprecordid={`udpRecord-Accordion-ButtonBase-${recordId}`}\n >\n <FluentIcon component={primaryActionIcon} />\n </ButtonBase>\n </Tooltip>\n ) : (\n <ButtonBase\n onClick={primaryAction}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n >\n <Typography className={classes.primaryActionLabel}>\n {primaryActionLabel}\n </Typography>\n </ButtonBase>\n )}\n </div>\n )}\n {simpleAccordion && (\n <FluentIconButton\n icon={getIconFromName('ChevronDownIcon')}\n onClick={handleOnClickAccordion}\n className={clsx(classes.expand, {\n [classes.expandOpen]: expand\n })}\n size={chevronIconSize}\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-ExpandButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-ExpandButton-${recordId}`}\n />\n )}\n </div>\n <Collapse in={expand} timeout='auto' unmountOnExit>\n <div>\n <div>{children}</div>\n {!hideCloseButton && !simpleAccordion && (\n <div className={classes.closeButtonWrapper}>\n <ButtonBase\n onClick={() => {\n if (setExpand) {\n setExpand(false);\n }\n }}\n className={classes.unexpandedIconButton}\n id={`udpRecord-Accordion-CloseButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-CloseButton-${recordId}`}\n >\n <FluentIcon component={ChevronUpIcon} />\n </ButtonBase>\n </div>\n )}\n </div>\n </Collapse>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accordion-CT8euUVM.js","names":[],"sources":["../src/UI/accordion/Accordion.jsx"],"sourcesContent":["import {\n ButtonBase,\n Collapse,\n Tooltip,\n Typography,\n lighten,\n makeStyles\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport React, { useCallback } from 'react';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { IconButtonWithTooltip } from '../inputs/buttons/IconButtonWithToolTip';\nimport { ChevronUpIcon } from '@fluentui/react-icons';\nimport { FluentIconButton } from '../inputs/buttons/FluentIconButton';\nimport { getIconFromName } from '../../utilities/tree/TreeUtilities';\nimport { StatusChip } from '../dataDisplay/status/StatusChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n height: '100%'\n },\n rootBorder: {\n borderStyle: 'solid',\n borderColor: (props) => theme.palette[props?.color]?.main,\n borderWidth: '1px 1px 1px 6px'\n },\n headerWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n backgroundColor: (props) =>\n props?.simpleAccordion && props?.color && props?.color !== 'default'\n ? props?.color === 'paper'\n ? theme.palette.background.paper\n : lighten(theme.palette[props?.color]?.light, 0.8)\n : theme.palette.background.default,\n overflow: 'hidden',\n width: (props) => props?.headerWidth ?? '100%'\n },\n secondaryButtonsWrapper: {\n display: 'flex',\n gap: theme.spacing(2),\n borderRadius: theme.spacing(2),\n backgroundColor: 'white',\n padding: `2px ${theme.spacing(1)}px`,\n width: 'fit-content'\n },\n primaryButtonWrapper: {\n minWidth: '68px',\n maxWidth: (props) => props?.primaryActionMaxWidth,\n height: 'auto',\n color: 'white',\n backgroundColor: (props) => theme.palette[props?.color]?.main,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal'\n },\n headerColor: {\n backgroundColor: (props) =>\n props?.color !== 'default' &&\n props?.color !== 'paper' &&\n lighten(theme.palette[props?.color]?.light, 0.85)\n },\n buttonWrapper: {\n display: 'flex',\n gap: theme.spacing(0.5)\n },\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexGrow: 2,\n margin: (props) => (props.removeHeaderMargin ? '0px' : theme.spacing(0.8)),\n color: theme.palette.text.primary\n },\n closeButtonWrapper: {\n display: 'flex',\n justifyContent: 'flex-end',\n marginTop: theme.spacing(1)\n },\n unexpandedIconButton: {\n width: '68px',\n height: '40px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal',\n borderTop: `solid 1px lightgrey`,\n borderLeft: `solid 1px lightgrey`,\n overflow: 'hidden',\n border: (props) => props?.removeBorder && '0px'\n },\n rightIconButton: {\n backgroundColor: 'white',\n padding: theme.spacing(1),\n borderRadius: '50%'\n },\n primaryActionLabel: {\n marginRight: theme.spacing(0.5),\n marginLeft: theme.spacing(0.5)\n },\n expand: {\n transform: 'rotate(0deg)',\n marginLeft: 'auto',\n marginRight: theme.spacing(1),\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n })\n },\n expandOpen: {\n transform: 'rotate(180deg)'\n },\n titleStatusWrapper: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n }\n}));\n\nexport const Accordion = (props) => {\n const {\n title,\n subtitle,\n subtitleVariant,\n status,\n statusIcon,\n statusLabel,\n secondaryIconButtons,\n overriddenSecondaryContainer,\n rightIcon,\n rightIconAction,\n rightIconTooltip,\n disableRightIconButton = false,\n primaryActionIcon,\n primaryActionLabel,\n primaryAction,\n primaryActionMaxWidth,\n disablePrimaryActionButton = false,\n color = 'info',\n children,\n expand,\n setExpand,\n additionalEvent,\n hideCloseButton = false,\n hideRightIconButton = false,\n hidePrimaryAction = false,\n noWrapTitle = false,\n simpleAccordion = false,\n recordId = 0,\n removeBorder = false,\n headerWidth,\n removeHeaderMargin,\n titleVariant = 'subtitle2',\n chevronIconSize = 'medium'\n } = props;\n const classes = useStyles({\n color,\n primaryActionMaxWidth,\n simpleAccordion,\n headerWidth,\n removeHeaderMargin,\n removeBorder,\n });\n\n const handleOnClickAccordion = useCallback(() => {\n if (setExpand) {\n setExpand(!expand);\n }\n\n if (additionalEvent) {\n additionalEvent();\n }\n }, [additionalEvent, expand, setExpand]);\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.rootBorder]: !simpleAccordion & !removeBorder\n })}\n >\n <div\n className={clsx(classes.headerWrapper, {\n [classes.headerColor]: simpleAccordion ? false : expand\n })}\n onClick={handleOnClickAccordion}\n >\n <div className={classes.titleWrapper}>\n <div>\n <div className={classes.titleStatusWrapper}>\n <Typography variant={titleVariant} noWrap={noWrapTitle}>\n {title}\n </Typography>\n {statusLabel && <StatusChip\n status={status ?? color}\n label={statusLabel}\n icon={statusIcon}\n />}\n </div>\n\n {subtitle && (\n <Typography variant={subtitleVariant} noWrap={noWrapTitle}>\n {subtitle}\n </Typography>\n )}\n\n {overriddenSecondaryContainer ? (\n { overriddenSecondaryContainer }\n ) : (\n <div>\n {secondaryIconButtons?.length > 0 && (\n <div className={classes.secondaryButtonsWrapper}>\n {secondaryIconButtons?.map((item) => (\n <div className={classes.buttonWrapper}>\n <IconButtonWithTooltip\n {...item}\n title={item?.title}\n icon={item.icon}\n onClick={(event) => {\n event.stopPropagation();\n item.onClick();\n }}\n size='small'\n id={`udpRecord-Accordion-${item?.title}-${recordId}`}\n udprecordid={`udpRecord-Accordion-${item?.title}-${recordId}`}\n />\n {item?.value && <Typography>{item?.value}</Typography>}\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n {!hideRightIconButton && !simpleAccordion && (\n <div>\n <IconButtonWithTooltip\n title={rightIconTooltip}\n icon={rightIcon}\n onClick={(event) => {\n event.stopPropagation();\n rightIconAction();\n }}\n className={classes.rightIconButton}\n size='small'\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-RightButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-RightButton-${recordId}`}\n />\n </div>\n )}\n </div>\n {!hidePrimaryAction && !simpleAccordion && (\n <div className={classes.primaryButtonWrapper}>\n {primaryActionIcon ? (\n <Tooltip title={primaryActionLabel}>\n <ButtonBase\n onClick={(event) => {\n event.stopPropagation();\n primaryAction();\n }}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n id={`udpRecord-Accordion-ButtonBase-${recordId}`}\n udprecordid={`udpRecord-Accordion-ButtonBase-${recordId}`}\n >\n <FluentIcon component={primaryActionIcon} />\n </ButtonBase>\n </Tooltip>\n ) : (\n <ButtonBase\n onClick={primaryAction}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n >\n <Typography className={classes.primaryActionLabel}>\n {primaryActionLabel}\n </Typography>\n </ButtonBase>\n )}\n </div>\n )}\n {simpleAccordion && (\n <FluentIconButton\n icon={getIconFromName('ChevronDownIcon')}\n onClick={handleOnClickAccordion}\n className={clsx(classes.expand, {\n [classes.expandOpen]: expand\n })}\n size={chevronIconSize}\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-ExpandButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-ExpandButton-${recordId}`}\n />\n )}\n </div>\n <Collapse in={expand} timeout='auto' unmountOnExit>\n <div>\n <div>{children}</div>\n {!hideCloseButton && !simpleAccordion && (\n <div className={classes.closeButtonWrapper}>\n <ButtonBase\n onClick={() => {\n if (setExpand) {\n setExpand(false);\n }\n }}\n className={classes.unexpandedIconButton}\n id={`udpRecord-Accordion-CloseButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-CloseButton-${recordId}`}\n >\n <FluentIcon component={ChevronUpIcon} />\n </ButtonBase>\n </div>\n )}\n </div>\n </Collapse>\n </div>\n );\n};\n"],"mappings":"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"}
|
package/dist/actions/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { a as ActionModal, i as ActionSpeedDial, n as ActionSideSheet, o as ActionForm, r as ActionPanelPlacement, t as ActionWrapper } from "../ActionWrapper-
|
|
1
|
+
import { a as ActionModal, i as ActionSpeedDial, n as ActionSideSheet, o as ActionForm, r as ActionPanelPlacement, t as ActionWrapper } from "../ActionWrapper-d9dIOSYB.js";
|
|
2
2
|
import { a as ActionSummaryCard, i as ActionSummaryListContainer, n as ActionSummaryListItem, r as ActionSummaryHeader, t as ActionSummaryPopover } from "../actionSummary-BEOW5B3h.js";
|
|
3
3
|
import { t as useHandleAction } from "../actionUtils-Bj5-851p.js";
|
|
4
4
|
import { t as EntitySideBarContent } from "../EntitySideBarContent-Bl_8gI69.js";
|
|
5
|
-
import { t as ActionSplitScreen } from "../ActionSplitScreen-
|
|
6
|
-
import { t as PageActionWrapper } from "../PageActionWrapper-
|
|
5
|
+
import { t as ActionSplitScreen } from "../ActionSplitScreen-OFqIncG9.js";
|
|
6
|
+
import { t as PageActionWrapper } from "../PageActionWrapper-C-irIPLE.js";
|
|
7
|
+
import "./utils/index.js";
|
|
8
|
+
import "./sidebar/index.js";
|
|
7
9
|
|
|
8
10
|
export { ActionForm, ActionModal, ActionPanelPlacement, ActionSideSheet, ActionSpeedDial, ActionSplitScreen, ActionSummaryCard, ActionSummaryHeader, ActionSummaryListContainer, ActionSummaryListItem, ActionSummaryPopover, ActionWrapper, EntitySideBarContent, PageActionWrapper, useHandleAction };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { D as SearchGroupingType } from "./unitySystemEnums-e5F9Jr7m.js";
|
|
2
|
-
import {
|
|
2
|
+
import { a as useConvertFilterModelToSearchFilters } from "./SearchUtilities-B1TCyppF.js";
|
|
3
3
|
import { useMemo } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/utilities/aggrid/aggridHelpers.ts
|
|
@@ -100,4 +100,4 @@ const useServerSideDatasource = (refetchData, refetchGroupData, filterChanged, s
|
|
|
100
100
|
|
|
101
101
|
//#endregion
|
|
102
102
|
export { useServerSideDatasource as t };
|
|
103
|
-
//# sourceMappingURL=aggridHelpers-
|
|
103
|
+
//# sourceMappingURL=aggridHelpers-BeUZvPIv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggridHelpers-
|
|
1
|
+
{"version":3,"file":"aggridHelpers-BeUZvPIv.js","names":["sortInfo: any","searchFilters: any","element","search: any"],"sources":["../src/utilities/aggrid/aggridHelpers.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n IServerSideDatasource,\n IServerSideGetRowsParams\n} from '@ag-grid-community/core';\nimport { SearchGroupingType } from '../../enums/unitySystemEnums';\nimport { useConvertFilterModelToSearchFilters } from '../search/SearchUtilities';\n\nexport const useServerSideDatasource = (\n refetchData: Function,\n refetchGroupData: any,\n filterChanged: any, // a ref (from useRef()) for detecting when a grid's filters have been changed\n setFilterChanged: any\n) => {\n const convertFilterModelToSearchFilters =\n useConvertFilterModelToSearchFilters();\n\n const dataSource = useMemo(() => {\n const ds: IServerSideDatasource = {\n async getRows(params: IServerSideGetRowsParams) {\n if (!params) return;\n const {\n startRow,\n endRow,\n sortModel,\n filterModel,\n rowGroupCols,\n groupKeys\n } = params?.request || {};\n let refetch = refetchData;\n const pageSize = params?.api?.paginationGetPageSize();\n let pageNumber =\n filterChanged.current === true ? 1 : (endRow as number) / pageSize;\n if (isNaN(pageNumber)) {\n pageNumber = 1;\n }\n\n // Sorting\n let column = sortModel[0]?.colId ?? '';\n let sortDirection = sortModel[0]?.sort ?? '';\n let sortInfo: any = [];\n if (column && sortDirection) {\n sortInfo.push({ sortColumn: column, sortDirection: sortDirection });\n }\n\n // Filtering\n let searchFilters: any = [];\n searchFilters = convertFilterModelToSearchFilters(filterModel);\n\n // Grouping\n const groupingColumns = rowGroupCols?.map((col) => col.id);\n let groupingType = '';\n // As we are attempting to mimic the grouping functionality of the unity-fluent-library component AmbientGridTemplate which allows\n // grouping on only one column/property at a time, the following logic is to ensure the appropriate grouping endpoint is hit\n // and that the grouping portion of the query in the back-end is added (setting groupingType = AGGREGATE or DISTINCT takes care of this)\n // only when selecting a column to group by. Then, expanding that group would hit a different endpoint to retrieve all rows using the grouping\n // value as a filter value.\n if (groupingColumns.length > 0 && groupKeys.length === 0) {\n groupingType = SearchGroupingType.Distinct;\n refetch = refetchGroupData ? refetchGroupData : refetchData;\n }\n\n // Create the filter for the grouped column\n if (groupKeys.length) {\n if (groupKeys.length === rowGroupCols.length) {\n groupKeys.forEach((key, index) => {\n const rowGroupCol = rowGroupCols[index];\n const element = searchFilters.find(\n (element: any) => element.searchField === rowGroupCol.field\n );\n if (element) {\n element.searchValue = key;\n element.searchOperator = '=';\n } else {\n searchFilters.push({\n searchField: rowGroupCol.field ?? rowGroupCol.id,\n searchValue: key,\n searchOperator: '=',\n searchValueType: 0\n });\n }\n });\n }\n }\n\n let search: any;\n search = {\n eagerLoad: groupingType ? false : true,\n pageNumber: pageNumber,\n pageSize: pageSize,\n orderElements: sortInfo,\n filterElements: searchFilters,\n groupingType: groupingType,\n groupProperty: groupingColumns\n };\n\n params.api.hideOverlay();\n\n const response = await refetch({ data: search }).catch(() => {\n params.success({ rowData: [], rowCount: 0 });\n params.api.showNoRowsOverlay();\n });\n\n if (response) {\n const rowData = response.data;\n if (rowData) {\n // we are expecting response of type Univerus.Unity.Commons.Api.Model.Page, but need to maintain support for MDM\n if (typeof rowData === 'object' && rowData.pageList) {\n params.success({\n rowData: rowData.pageList,\n rowCount: parseInt(rowData.total)\n });\n } else if (rowData.length > 0) {\n params.success({\n rowData: rowData,\n rowCount: parseInt(response.headers['totalrows'])\n });\n } else {\n params.success({ rowData: [], rowCount: 0 });\n }\n if (filterChanged.current === true) {\n params.api.paginationGoToFirstPage();\n setFilterChanged(false);\n }\n } else {\n params.success({ rowData: [], rowCount: 0 });\n params.api.showNoRowsOverlay();\n }\n } else {\n params.fail();\n }\n }\n };\n return ds;\n }, [\n convertFilterModelToSearchFilters,\n filterChanged,\n refetchData,\n refetchGroupData,\n setFilterChanged\n ]);\n return dataSource;\n};\n"],"mappings":";;;;;AAQA,MAAa,2BACX,aACA,kBACA,eACA,qBACG;CACH,MAAM,oCACJ,sCAAsC;AA8HxC,QA5HmB,cAAc;AAoH/B,SAnHkC,EAChC,MAAM,QAAQ,QAAkC;AAC9C,OAAI,CAAC,OAAQ;GACb,MAAM,EACJ,UACA,QACA,WACA,aACA,cACA,cACE,QAAQ,WAAW,EAAE;GACzB,IAAI,UAAU;GACd,MAAM,WAAW,QAAQ,KAAK,uBAAuB;GACrD,IAAI,aACF,cAAc,YAAY,OAAO,IAAK,SAAoB;AAC5D,OAAI,MAAM,WAAW,CACnB,cAAa;GAIf,IAAI,SAAS,UAAU,IAAI,SAAS;GACpC,IAAI,gBAAgB,UAAU,IAAI,QAAQ;GAC1C,IAAIA,WAAgB,EAAE;AACtB,OAAI,UAAU,cACZ,UAAS,KAAK;IAAE,YAAY;IAAuB;IAAe,CAAC;GAIrE,IAAIC,gBAAqB,EAAE;AAC3B,mBAAgB,kCAAkC,YAAY;GAG9D,MAAM,kBAAkB,cAAc,KAAK,QAAQ,IAAI,GAAG;GAC1D,IAAI,eAAe;AAMnB,OAAI,gBAAgB,SAAS,KAAK,UAAU,WAAW,GAAG;AACxD,mBAAe,mBAAmB;AAClC,cAAU,mBAAmB,mBAAmB;;AAIlD,OAAI,UAAU,QACZ;QAAI,UAAU,WAAW,aAAa,OACpC,WAAU,SAAS,KAAK,UAAU;KAChC,MAAM,cAAc,aAAa;KACjC,MAAM,UAAU,cAAc,MAC3B,cAAiBC,UAAQ,gBAAgB,YAAY,MACvD;AACD,SAAI,SAAS;AACX,cAAQ,cAAc;AACtB,cAAQ,iBAAiB;WAEzB,eAAc,KAAK;MACjB,aAAa,YAAY,SAAS,YAAY;MAC9C,aAAa;MACb,gBAAgB;MAChB,iBAAiB;MAClB,CAAC;MAEJ;;GAIN,IAAIC;AACJ,YAAS;IACP,WAAW,eAAe,QAAQ;IACtB;IACF;IACV,eAAe;IACf,gBAAgB;IACF;IACd,eAAe;IAChB;AAED,UAAO,IAAI,aAAa;GAExB,MAAM,WAAW,MAAM,QAAQ,EAAE,MAAM,QAAQ,CAAC,CAAC,YAAY;AAC3D,WAAO,QAAQ;KAAE,SAAS,EAAE;KAAE,UAAU;KAAG,CAAC;AAC5C,WAAO,IAAI,mBAAmB;KAC9B;AAEF,OAAI,UAAU;IACZ,MAAM,UAAU,SAAS;AACzB,QAAI,SAAS;AAEX,SAAI,OAAO,YAAY,YAAY,QAAQ,SACzC,QAAO,QAAQ;MACb,SAAS,QAAQ;MACjB,UAAU,SAAS,QAAQ,MAAM;MAClC,CAAC;cACO,QAAQ,SAAS,EAC1B,QAAO,QAAQ;MACJ;MACT,UAAU,SAAS,SAAS,QAAQ,aAAa;MAClD,CAAC;SAEF,QAAO,QAAQ;MAAE,SAAS,EAAE;MAAE,UAAU;MAAG,CAAC;AAE9C,SAAI,cAAc,YAAY,MAAM;AAClC,aAAO,IAAI,yBAAyB;AACpC,uBAAiB,MAAM;;WAEpB;AACL,YAAO,QAAQ;MAAE,SAAS,EAAE;MAAE,UAAU;MAAG,CAAC;AAC5C,YAAO,IAAI,mBAAmB;;SAGhC,QAAO,MAAM;KAGlB;IAEA;EACD;EACA;EACA;EACA;EACA;EACD,CAAC"}
|
|
@@ -2,8 +2,12 @@ import { a as plotX, i as plotCategoryBar, n as formatDataWithTimelineCategoryNa
|
|
|
2
2
|
import { n as TimelineStatus, r as TimelineDateBar, t as MttYearTag } from "../../MttYearTag-Cw8OyKTy.js";
|
|
3
3
|
import { t as TimelineToken } from "../../TimelineToken-nU7fdgjR.js";
|
|
4
4
|
import { a as TimelineWrapper, c as TimelineDot, i as MultiDot, l as TimelineHoverCard, n as TimelinePreloaderNode, o as TimelineNode, r as VisualizationDot, s as TimelineTokenSummary, t as DynamicRangeSlider } from "../../DynamicRangeSlider-prr4fg8d.js";
|
|
5
|
-
import { n as MttTimeline, r as HeightAdjuster, t as MttMainTimeline } from "../../MttMainTimeline-
|
|
6
|
-
import { n as createTimeline, t as MttSummary } from "../../MttSummary-
|
|
7
|
-
import { a as useStyles, i as TimelineToggleButton, n as DateWrapper, o as SummaryToken, r as TimelineTopRowFilter, t as CircleButton } from "../../CircleButton-
|
|
5
|
+
import { n as MttTimeline, r as HeightAdjuster, t as MttMainTimeline } from "../../MttMainTimeline-nusYDWg_.js";
|
|
6
|
+
import { n as createTimeline, t as MttSummary } from "../../MttSummary-DWESRW7k.js";
|
|
7
|
+
import { a as useStyles, i as TimelineToggleButton, n as DateWrapper, o as SummaryToken, r as TimelineTopRowFilter, t as CircleButton } from "../../CircleButton-B9JAMG53.js";
|
|
8
|
+
import "./functions/index.js";
|
|
9
|
+
import "./mttSummary/index.js";
|
|
10
|
+
import "./ui/index.js";
|
|
11
|
+
import "./mttMainTimeline/index.js";
|
|
8
12
|
|
|
9
13
|
export { CircleButton, DateWrapper, DynamicRangeSlider, HeightAdjuster, MttMainTimeline, MttSummary, MttTimeline, MttYearTag, MultiDot, SummaryToken, TimelineDateBar, TimelineDot, TimelineHoverCard, TimelineNode, TimelinePreloaderNode, TimelineStatus, TimelineToggleButton, TimelineToken, TimelineTokenSummary, TimelineTopRowFilter, TimelineWrapper, VisualizationDot, createTimeline, formatDataWithTimelineCategoryName, formatDataWithTimelineCategoryNameOrderedByDate, plotCategoryBar, plotX, plotY, useStyles };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as MttTimeline, r as HeightAdjuster, t as MttMainTimeline } from "../../../MttMainTimeline-
|
|
1
|
+
import { n as MttTimeline, r as HeightAdjuster, t as MttMainTimeline } from "../../../MttMainTimeline-nusYDWg_.js";
|
|
2
2
|
|
|
3
3
|
export { HeightAdjuster, MttMainTimeline, MttTimeline };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as TimelineStatus, r as TimelineDateBar, t as MttYearTag } from "../../../MttYearTag-Cw8OyKTy.js";
|
|
2
2
|
import { t as TimelineToken } from "../../../TimelineToken-nU7fdgjR.js";
|
|
3
3
|
import { a as TimelineWrapper, c as TimelineDot, i as MultiDot, l as TimelineHoverCard, n as TimelinePreloaderNode, o as TimelineNode, r as VisualizationDot, s as TimelineTokenSummary, t as DynamicRangeSlider } from "../../../DynamicRangeSlider-prr4fg8d.js";
|
|
4
|
-
import { a as useStyles, i as TimelineToggleButton, n as DateWrapper, o as SummaryToken, r as TimelineTopRowFilter, t as CircleButton } from "../../../CircleButton-
|
|
4
|
+
import { a as useStyles, i as TimelineToggleButton, n as DateWrapper, o as SummaryToken, r as TimelineTopRowFilter, t as CircleButton } from "../../../CircleButton-B9JAMG53.js";
|
|
5
5
|
|
|
6
6
|
export { CircleButton, DateWrapper, DynamicRangeSlider, MttYearTag, MultiDot, SummaryToken, TimelineDateBar, TimelineDot, TimelineHoverCard, TimelineNode, TimelinePreloaderNode, TimelineStatus, TimelineToggleButton, TimelineToken, TimelineTokenSummary, TimelineTopRowFilter, TimelineWrapper, VisualizationDot, useStyles };
|
|
@@ -3,5 +3,9 @@ import { a as DonutWrapper, c as BarChartWrapper, i as LineGraphWrapper, l as Di
|
|
|
3
3
|
import { n as defaultColActionsDef, t as TableColumnDefs } from "../../TableColumnDefs-BpaOx60h.js";
|
|
4
4
|
import { t as withEngineComponent } from "../../withEngineComponent-JSgAYpSg.js";
|
|
5
5
|
import { t as PageRenderer } from "../../PageRenderer-AfVo1f0z.js";
|
|
6
|
+
import "./wrappers/index.js";
|
|
7
|
+
import "./utils/index.js";
|
|
8
|
+
import "./hocs/index.js";
|
|
9
|
+
import "./hooks/index.js";
|
|
6
10
|
|
|
7
11
|
export { AgGridSimpleWrapper, BarChartWrapper, BioCardWrapper, DisplayCardWrapper, DonutWrapper, HistogramWrapper, LineGraphWrapper, PageRenderer, PrimaryActionHeaderWrapper, TableColumnDefs, barChartWrapperProps, data, defaultColActionsDef, useReadMetaData, withEngineComponent };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { i as ParamsMappingFields, n as RequiredFieldsMappingField, r as ParamsMappingForm, t as RequiredFieldsMappingForm } from "../RequiredFieldsMappingForm-rstcZ1W0.js";
|
|
2
|
-
import { n as DataBrowserColumnDefs, r as defaultColActionsDef, t as DataBrowserContainer } from "../DataBrowserContainer-
|
|
2
|
+
import { n as DataBrowserColumnDefs, r as defaultColActionsDef, t as DataBrowserContainer } from "../DataBrowserContainer-DZGhEt9N.js";
|
|
3
|
+
import "./forms/index.js";
|
|
3
4
|
|
|
4
5
|
export { DataBrowserColumnDefs, DataBrowserContainer, ParamsMappingFields, ParamsMappingForm, RequiredFieldsMappingField, RequiredFieldsMappingForm, defaultColActionsDef };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as Typography$1 } from "./Typography-BMsa1JYd.js";
|
|
2
|
-
import { S as getIconFromName } from "./TreeUtilities-
|
|
2
|
+
import { S as getIconFromName } from "./TreeUtilities-VCy2z4Qv.js";
|
|
3
3
|
import { n as SideSheet } from "./SideSheet-CDXVa_Kr.js";
|
|
4
4
|
import { t as AmbientCard } from "./AmbientCard-CLW4bPCu.js";
|
|
5
5
|
import { t as IconButtonWithTooltip } from "./IconButtonWithToolTip-DswviiJB.js";
|
|
@@ -382,4 +382,4 @@ const FileViewer = (props) => {
|
|
|
382
382
|
|
|
383
383
|
//#endregion
|
|
384
384
|
export { FileViewer as t };
|
|
385
|
-
//# sourceMappingURL=fileViewer-
|
|
385
|
+
//# sourceMappingURL=fileViewer-BVzlhb3g.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileViewer-BmTE1zuM.js","names":["useStyles","Typography","useStyles","defaultFieldMapping"],"sources":["../src/UI/fileViewer/utils/fileTypes.js","../src/UI/fileViewer/utils/fileUtils.js","../src/UI/fileViewer/imageSlider/ImageFooter.jsx","../src/UI/fileViewer/imageSlider/Image.jsx","../src/UI/fileViewer/imageSlider/ImageViewerSideSheet.jsx","../src/UI/fileViewer/imageSlider/ImageSlider.jsx","../src/UI/fileViewer/FileViewer.jsx"],"sourcesContent":["export const imageExtension = [\n 'png',\n 'jpeg',\n 'jpg',\n 'jpe',\n 'jif',\n 'jfif',\n 'jfi',\n 'gif',\n 'raw',\n 'svg',\n 'ttif',\n 'tif',\n 'webp',\n 'arw',\n 'sr2',\n 'nrw',\n 'k25',\n 'bmp',\n 'dib',\n 'heif',\n 'heic',\n 'ind',\n 'indd',\n 'indt',\n 'jp2',\n 'j2k',\n 'jpf',\n 'jpm',\n 'mj2',\n 'svgz',\n 'ai',\n 'eps',\n];\n","import { imageExtension } from './fileTypes';\n\nexport const handleDownloadFile = (fileUrl, fileName) => {\n const a = document.createElement('a');\n a.style.display = 'none';\n a.href = fileUrl;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(fileUrl);\n};\n\nexport const validateFilesImageType = (files = [], fileExtensionField) => {\n let type = \"image\";\n files.forEach(file => {\n if (!imageExtension.includes(file?.[fileExtensionField])) {\n type = 'invalid';\n return;\n }\n });\n return type;\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport { makeStyles } from '@material-ui/core';\nimport React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '../../dataDisplay/typography/Typography';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n secondaryText: {\n color: theme.palette.text.secondary,\n },\n description: {\n margin: theme.spacing(2),\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n },\n pageAction: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const ImageFooter = props => {\n const {\n images,\n currentImageObj,\n hidePrimaryText,\n hideSecondaryText,\n handleViewImage,\n currentImageIndex,\n } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n const showItem = useMemo(() => {\n const showPrimaryText = !hidePrimaryText && currentImageObj?.primaryText;\n const showSecondaryText =\n !hideSecondaryText && currentImageObj?.secondaryText;\n const showPageAction = images?.length > 1;\n return {\n footer: showPageAction || showPrimaryText || showSecondaryText,\n primaryText: showPrimaryText,\n secondaryText: showSecondaryText,\n pageAction: showPageAction,\n };\n }, [currentImageObj, hidePrimaryText, hideSecondaryText, images]);\n\n return (\n <>\n {showItem?.footer && (\n <div className={classes.description}>\n {showItem?.primaryText && (\n <Typography variant=\"h6\">{currentImageObj?.primaryText}</Typography>\n )}\n\n {showItem?.secondaryText && (\n <Typography variant=\"subtitle1\" className={classes.secondaryText}>\n {currentImageObj?.secondaryText}\n </Typography>\n )}\n {showItem?.pageAction && (\n <div className={classes.pageAction}>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronLeft')}\n title={t('Previous')}\n disabled={currentImageIndex == 0}\n onClick={() => {\n handleViewImage(true);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n\n <div>\n <Typography>\n {currentImageIndex + 1} {t('of')} {images?.length ?? 0}\n </Typography>\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronRight')}\n title={t('Next')}\n disabled={currentImageIndex === images?.length - 1}\n onClick={() => {\n handleViewImage();\n }}\n id=\"udpRecord-ImageSlider-NextBtn\"\n udprecordid=\"udpRecord-ImageSlider-NextBtn\"\n />\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { ImageFooter } from './ImageFooter';\n\nconst useStyles = makeStyles(theme => ({\n imageWrapper: {\n flex: '1 1 auto',\n overflow: 'hidden',\n position: 'relative',\n margin: theme.spacing(2)\n },\n image: {\n objectFit: 'contain',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n height: '100%',\n background: theme.palette.background.paper,\n },\n}));\n\nexport const Image = props => {\n const { imageObj, hidePrimaryText, hideSecondaryText } = props;\n const classes = useStyles();\n\n return (\n <div className={classes.cardContent}>\n <div className={classes.imageWrapper}>\n <img\n src={imageObj?.filePath}\n loading=\"lazy\"\n alt={`${imageObj?.fileName}`}\n className={classes.image}\n />\n </div>\n <ImageFooter\n currentImageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </div>\n );\n};\n","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { handleDownloadFile } from '../utils/fileUtils';\nimport { Image } from './Image';\nimport { SideSheet } from '../../surfaces/SideSheet';\n\nexport const ImageViewerSideSheet = (props) => {\n const {\n title,\n width,\n imageObj,\n open,\n onClose,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText\n } = props;\n const { t } = useTranslation();\n\n const handleDownloadImage = useCallback(() => {\n handleDownloadFile(imageObj?.filePath, imageObj?.fileName);\n }, [imageObj]);\n\n return (\n <SideSheet\n title={title ?? t('Image Viewer')}\n buttonLabel={hideDownload ? null : t('Download')}\n width={width ?? '90vw'}\n onSubmit={handleDownloadImage}\n open={open}\n onClose={onClose}\n contentHeight='100%'\n >\n <Image\n imageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </SideSheet>\n );\n};\n","import { Dialog, makeStyles } from '@material-ui/core';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ImageViewerSideSheet } from './ImageViewerSideSheet';\nimport { Image } from './Image';\nimport { ImageFooter } from './ImageFooter';\nimport { AmbientCard } from '../../surfaces/cards/AmbientCard';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.background.paper,\n },\n imagesWrapper: {\n display: 'flex',\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n alignItems: 'center',\n },\n imageSection: {\n width: '100%',\n height: '100%',\n },\n image: {\n objectFit: 'contain',\n display: 'block',\n flexShrink: 0,\n flexGrow: 0,\n transition: 'translate 300ms ease-in-out',\n },\n openSideSheetIcon: {\n display: 'block',\n position: 'absolute',\n top: props => (props?.title ? 64 : 8),\n right: 8,\n zIndex: 3,\n backgroundColor: theme.palette.background.paper,\n },\n dialogContent: {\n overflow: 'hidden',\n width: '100vw',\n height: '100vh',\n display: 'flex',\n flexDirection: 'column',\n },\n closeDialog: {\n margin: theme.spacing(1),\n },\n dialogImageSection: {\n flex: 2,\n height: '100%',\n },\n}));\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n fileName: 'fileName',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const ImageSlider = props => {\n const {\n title,\n images,\n fieldMapping = defaultFieldMapping,\n sideSheetTitle,\n sideSheetWidth,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText,\n hidePrimaryTextInExpandMode,\n hideSecondaryTextInExpandMode,\n expandInSideSheet = true,\n } = props;\n const classes = useStyles(props);\n const { t } = useTranslation();\n const [currentImageIndex, setCurrentImageIndex] = useState(0);\n const [openSideSheet, setOpenSideSheet] = useState(false);\n\n const handleViewImage = useCallback((previous = false) => {\n if (previous) {\n setCurrentImageIndex(prev => prev - 1);\n } else {\n setCurrentImageIndex(prev => prev + 1);\n }\n }, []);\n\n const handleExpandImage = useCallback(() => {\n setOpenSideSheet(true);\n }, []);\n\n const currentImageObj = useMemo(() => {\n const imgObj = images?.[currentImageIndex];\n if (!imgObj) return {};\n\n return {\n filePath: imgObj[fieldMapping?.filePath],\n fileName: imgObj[fieldMapping?.fileName],\n primaryText: imgObj[fieldMapping?.primaryText],\n secondaryText: imgObj[fieldMapping?.secondaryText],\n };\n }, [currentImageIndex, fieldMapping, images]);\n\n return (\n <AmbientCard\n fullWidth\n title={title}\n removePadding\n lastChildBottomPadding=\"0px\"\n removeTopLayoutUnit\n >\n <div className={classes.imagesWrapper}>\n {images?.map(image => (\n <img\n src={image?.[fieldMapping?.filePath]}\n alt={`${image?.[fieldMapping?.fileName]}`}\n loading=\"lazy\"\n width=\"100%\"\n height=\"auto\"\n className={classes.image}\n style={{ translate: `${-100 * currentImageIndex}%` }}\n />\n ))}\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('MiniExpand')}\n title={t('Expand Image')}\n onClick={handleExpandImage}\n id=\"udpRecord-ImageSlider-ExpandBtn\"\n udprecordid=\"udpRecord-ImageSlider-ExpandBtn\"\n className={classes.openSideSheetIcon}\n />\n <ImageFooter\n images={images}\n currentImageObj={currentImageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n handleViewImage={handleViewImage}\n currentImageIndex={currentImageIndex}\n />\n\n {expandInSideSheet ? (\n <ImageViewerSideSheet\n title={sideSheetTitle}\n open={openSideSheet}\n onClose={() => {\n setOpenSideSheet(false);\n }}\n imageObj={currentImageObj}\n width={sideSheetWidth}\n hideDownload={hideDownload}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n ) : (\n <Dialog\n onClose={() => {\n setOpenSideSheet(false);\n }}\n open={openSideSheet}\n fullScreen\n >\n <div className={classes.dialogContent}>\n <div className={classes.closeDialog}>\n <IconButtonWithTooltip\n icon={getIconFromName('Cancel')}\n title={t('Close')}\n onClick={() => {\n setOpenSideSheet(false);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n </div>\n <div className={classes.dialogImageSection}>\n <Image\n imageObj={currentImageObj}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n </div>\n </div>\n </Dialog>\n )}\n </AmbientCard>\n );\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport React, { useMemo } from 'react';\nimport { PDFViewer } from './pdfViewer/PDFViewer';\nimport { ImageSlider } from './imageSlider/ImageSlider';\nimport { validateFilesImageType } from './utils/fileUtils';\nimport { useTranslation } from 'react-i18next';\nimport { AmbientAlert } from '../feedback/AmbientAlert';\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n blobFile: 'blobFile',\n fileName: 'fileName',\n fileExtension: 'fileExtension',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const FileViewer = props => {\n const {\n data,\n fieldMapping = defaultFieldMapping,\n acceptedFileExtensions,\n ...otherProps\n } = props;\n const { t } = useTranslation();\n\n //filter data\n const filteredData = useMemo(() => {\n if (!acceptedFileExtensions || acceptedFileExtensions?.length === 0)\n return data;\n if (data instanceof Array && data?.length > 0) {\n return data?.filter(item =>\n acceptedFileExtensions?.includes(item?.[fieldMapping?.fileExtension])\n );\n } else {\n return acceptedFileExtensions?.includes(\n data?.[fieldMapping?.fileExtension]\n )\n ? data\n : null;\n }\n }, [acceptedFileExtensions, data, fieldMapping]);\n\n // check if the data is an array. If yes, currently only image viewer accept this list,\n // we need to validate if all the file in the list is image\n const fileType = useMemo(() => {\n if (filteredData instanceof Array) {\n const type = validateFilesImageType(\n filteredData,\n fieldMapping?.fileExtension\n );\n return type;\n }\n return filteredData?.[fieldMapping?.fileExtension];\n }, [fieldMapping, filteredData]);\n\n const viewer = useMemo(() => {\n switch (fileType) {\n case 'pdf':\n return (\n <PDFViewer\n fileUrl={filteredData?.[fieldMapping?.filePath]}\n blobPDF={filteredData?.[fieldMapping?.blobFile]}\n {...otherProps}\n />\n );\n case 'image':\n return (\n <ImageSlider\n images={filteredData}\n fieldMapping={fieldMapping}\n {...otherProps}\n />\n );\n default:\n return (\n <AmbientAlert\n alertMessage={t('Unable to view file')}\n showAlert\n alertSeverity=\"error\"\n />\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fileType, data, fieldMapping, otherProps]);\n\n return <>{viewer}</>;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fileViewer-BVzlhb3g.js","names":["useStyles","Typography","useStyles","defaultFieldMapping"],"sources":["../src/UI/fileViewer/utils/fileTypes.js","../src/UI/fileViewer/utils/fileUtils.js","../src/UI/fileViewer/imageSlider/ImageFooter.jsx","../src/UI/fileViewer/imageSlider/Image.jsx","../src/UI/fileViewer/imageSlider/ImageViewerSideSheet.jsx","../src/UI/fileViewer/imageSlider/ImageSlider.jsx","../src/UI/fileViewer/FileViewer.jsx"],"sourcesContent":["export const imageExtension = [\n 'png',\n 'jpeg',\n 'jpg',\n 'jpe',\n 'jif',\n 'jfif',\n 'jfi',\n 'gif',\n 'raw',\n 'svg',\n 'ttif',\n 'tif',\n 'webp',\n 'arw',\n 'sr2',\n 'nrw',\n 'k25',\n 'bmp',\n 'dib',\n 'heif',\n 'heic',\n 'ind',\n 'indd',\n 'indt',\n 'jp2',\n 'j2k',\n 'jpf',\n 'jpm',\n 'mj2',\n 'svgz',\n 'ai',\n 'eps',\n];\n","import { imageExtension } from './fileTypes';\n\nexport const handleDownloadFile = (fileUrl, fileName) => {\n const a = document.createElement('a');\n a.style.display = 'none';\n a.href = fileUrl;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(fileUrl);\n};\n\nexport const validateFilesImageType = (files = [], fileExtensionField) => {\n let type = \"image\";\n files.forEach(file => {\n if (!imageExtension.includes(file?.[fileExtensionField])) {\n type = 'invalid';\n return;\n }\n });\n return type;\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport { makeStyles } from '@material-ui/core';\nimport React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '../../dataDisplay/typography/Typography';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n secondaryText: {\n color: theme.palette.text.secondary,\n },\n description: {\n margin: theme.spacing(2),\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n },\n pageAction: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const ImageFooter = props => {\n const {\n images,\n currentImageObj,\n hidePrimaryText,\n hideSecondaryText,\n handleViewImage,\n currentImageIndex,\n } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n const showItem = useMemo(() => {\n const showPrimaryText = !hidePrimaryText && currentImageObj?.primaryText;\n const showSecondaryText =\n !hideSecondaryText && currentImageObj?.secondaryText;\n const showPageAction = images?.length > 1;\n return {\n footer: showPageAction || showPrimaryText || showSecondaryText,\n primaryText: showPrimaryText,\n secondaryText: showSecondaryText,\n pageAction: showPageAction,\n };\n }, [currentImageObj, hidePrimaryText, hideSecondaryText, images]);\n\n return (\n <>\n {showItem?.footer && (\n <div className={classes.description}>\n {showItem?.primaryText && (\n <Typography variant=\"h6\">{currentImageObj?.primaryText}</Typography>\n )}\n\n {showItem?.secondaryText && (\n <Typography variant=\"subtitle1\" className={classes.secondaryText}>\n {currentImageObj?.secondaryText}\n </Typography>\n )}\n {showItem?.pageAction && (\n <div className={classes.pageAction}>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronLeft')}\n title={t('Previous')}\n disabled={currentImageIndex == 0}\n onClick={() => {\n handleViewImage(true);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n\n <div>\n <Typography>\n {currentImageIndex + 1} {t('of')} {images?.length ?? 0}\n </Typography>\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronRight')}\n title={t('Next')}\n disabled={currentImageIndex === images?.length - 1}\n onClick={() => {\n handleViewImage();\n }}\n id=\"udpRecord-ImageSlider-NextBtn\"\n udprecordid=\"udpRecord-ImageSlider-NextBtn\"\n />\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { ImageFooter } from './ImageFooter';\n\nconst useStyles = makeStyles(theme => ({\n imageWrapper: {\n flex: '1 1 auto',\n overflow: 'hidden',\n position: 'relative',\n margin: theme.spacing(2)\n },\n image: {\n objectFit: 'contain',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n height: '100%',\n background: theme.palette.background.paper,\n },\n}));\n\nexport const Image = props => {\n const { imageObj, hidePrimaryText, hideSecondaryText } = props;\n const classes = useStyles();\n\n return (\n <div className={classes.cardContent}>\n <div className={classes.imageWrapper}>\n <img\n src={imageObj?.filePath}\n loading=\"lazy\"\n alt={`${imageObj?.fileName}`}\n className={classes.image}\n />\n </div>\n <ImageFooter\n currentImageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </div>\n );\n};\n","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { handleDownloadFile } from '../utils/fileUtils';\nimport { Image } from './Image';\nimport { SideSheet } from '../../surfaces/SideSheet';\n\nexport const ImageViewerSideSheet = (props) => {\n const {\n title,\n width,\n imageObj,\n open,\n onClose,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText\n } = props;\n const { t } = useTranslation();\n\n const handleDownloadImage = useCallback(() => {\n handleDownloadFile(imageObj?.filePath, imageObj?.fileName);\n }, [imageObj]);\n\n return (\n <SideSheet\n title={title ?? t('Image Viewer')}\n buttonLabel={hideDownload ? null : t('Download')}\n width={width ?? '90vw'}\n onSubmit={handleDownloadImage}\n open={open}\n onClose={onClose}\n contentHeight='100%'\n >\n <Image\n imageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </SideSheet>\n );\n};\n","import { Dialog, makeStyles } from '@material-ui/core';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ImageViewerSideSheet } from './ImageViewerSideSheet';\nimport { Image } from './Image';\nimport { ImageFooter } from './ImageFooter';\nimport { AmbientCard } from '../../surfaces/cards/AmbientCard';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.background.paper,\n },\n imagesWrapper: {\n display: 'flex',\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n alignItems: 'center',\n },\n imageSection: {\n width: '100%',\n height: '100%',\n },\n image: {\n objectFit: 'contain',\n display: 'block',\n flexShrink: 0,\n flexGrow: 0,\n transition: 'translate 300ms ease-in-out',\n },\n openSideSheetIcon: {\n display: 'block',\n position: 'absolute',\n top: props => (props?.title ? 64 : 8),\n right: 8,\n zIndex: 3,\n backgroundColor: theme.palette.background.paper,\n },\n dialogContent: {\n overflow: 'hidden',\n width: '100vw',\n height: '100vh',\n display: 'flex',\n flexDirection: 'column',\n },\n closeDialog: {\n margin: theme.spacing(1),\n },\n dialogImageSection: {\n flex: 2,\n height: '100%',\n },\n}));\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n fileName: 'fileName',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const ImageSlider = props => {\n const {\n title,\n images,\n fieldMapping = defaultFieldMapping,\n sideSheetTitle,\n sideSheetWidth,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText,\n hidePrimaryTextInExpandMode,\n hideSecondaryTextInExpandMode,\n expandInSideSheet = true,\n } = props;\n const classes = useStyles(props);\n const { t } = useTranslation();\n const [currentImageIndex, setCurrentImageIndex] = useState(0);\n const [openSideSheet, setOpenSideSheet] = useState(false);\n\n const handleViewImage = useCallback((previous = false) => {\n if (previous) {\n setCurrentImageIndex(prev => prev - 1);\n } else {\n setCurrentImageIndex(prev => prev + 1);\n }\n }, []);\n\n const handleExpandImage = useCallback(() => {\n setOpenSideSheet(true);\n }, []);\n\n const currentImageObj = useMemo(() => {\n const imgObj = images?.[currentImageIndex];\n if (!imgObj) return {};\n\n return {\n filePath: imgObj[fieldMapping?.filePath],\n fileName: imgObj[fieldMapping?.fileName],\n primaryText: imgObj[fieldMapping?.primaryText],\n secondaryText: imgObj[fieldMapping?.secondaryText],\n };\n }, [currentImageIndex, fieldMapping, images]);\n\n return (\n <AmbientCard\n fullWidth\n title={title}\n removePadding\n lastChildBottomPadding=\"0px\"\n removeTopLayoutUnit\n >\n <div className={classes.imagesWrapper}>\n {images?.map(image => (\n <img\n src={image?.[fieldMapping?.filePath]}\n alt={`${image?.[fieldMapping?.fileName]}`}\n loading=\"lazy\"\n width=\"100%\"\n height=\"auto\"\n className={classes.image}\n style={{ translate: `${-100 * currentImageIndex}%` }}\n />\n ))}\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('MiniExpand')}\n title={t('Expand Image')}\n onClick={handleExpandImage}\n id=\"udpRecord-ImageSlider-ExpandBtn\"\n udprecordid=\"udpRecord-ImageSlider-ExpandBtn\"\n className={classes.openSideSheetIcon}\n />\n <ImageFooter\n images={images}\n currentImageObj={currentImageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n handleViewImage={handleViewImage}\n currentImageIndex={currentImageIndex}\n />\n\n {expandInSideSheet ? (\n <ImageViewerSideSheet\n title={sideSheetTitle}\n open={openSideSheet}\n onClose={() => {\n setOpenSideSheet(false);\n }}\n imageObj={currentImageObj}\n width={sideSheetWidth}\n hideDownload={hideDownload}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n ) : (\n <Dialog\n onClose={() => {\n setOpenSideSheet(false);\n }}\n open={openSideSheet}\n fullScreen\n >\n <div className={classes.dialogContent}>\n <div className={classes.closeDialog}>\n <IconButtonWithTooltip\n icon={getIconFromName('Cancel')}\n title={t('Close')}\n onClick={() => {\n setOpenSideSheet(false);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n </div>\n <div className={classes.dialogImageSection}>\n <Image\n imageObj={currentImageObj}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n </div>\n </div>\n </Dialog>\n )}\n </AmbientCard>\n );\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport React, { useMemo } from 'react';\nimport { PDFViewer } from './pdfViewer/PDFViewer';\nimport { ImageSlider } from './imageSlider/ImageSlider';\nimport { validateFilesImageType } from './utils/fileUtils';\nimport { useTranslation } from 'react-i18next';\nimport { AmbientAlert } from '../feedback/AmbientAlert';\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n blobFile: 'blobFile',\n fileName: 'fileName',\n fileExtension: 'fileExtension',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const FileViewer = props => {\n const {\n data,\n fieldMapping = defaultFieldMapping,\n acceptedFileExtensions,\n ...otherProps\n } = props;\n const { t } = useTranslation();\n\n //filter data\n const filteredData = useMemo(() => {\n if (!acceptedFileExtensions || acceptedFileExtensions?.length === 0)\n return data;\n if (data instanceof Array && data?.length > 0) {\n return data?.filter(item =>\n acceptedFileExtensions?.includes(item?.[fieldMapping?.fileExtension])\n );\n } else {\n return acceptedFileExtensions?.includes(\n data?.[fieldMapping?.fileExtension]\n )\n ? data\n : null;\n }\n }, [acceptedFileExtensions, data, fieldMapping]);\n\n // check if the data is an array. If yes, currently only image viewer accept this list,\n // we need to validate if all the file in the list is image\n const fileType = useMemo(() => {\n if (filteredData instanceof Array) {\n const type = validateFilesImageType(\n filteredData,\n fieldMapping?.fileExtension\n );\n return type;\n }\n return filteredData?.[fieldMapping?.fileExtension];\n }, [fieldMapping, filteredData]);\n\n const viewer = useMemo(() => {\n switch (fileType) {\n case 'pdf':\n return (\n <PDFViewer\n fileUrl={filteredData?.[fieldMapping?.filePath]}\n blobPDF={filteredData?.[fieldMapping?.blobFile]}\n {...otherProps}\n />\n );\n case 'image':\n return (\n <ImageSlider\n images={filteredData}\n fieldMapping={fieldMapping}\n {...otherProps}\n />\n );\n default:\n return (\n <AmbientAlert\n alertMessage={t('Unable to view file')}\n showAlert\n alertSeverity=\"error\"\n />\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fileType, data, fieldMapping, otherProps]);\n\n return <>{viewer}</>;\n};\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as FluentIcon } from "./FluentIcon-DQ6nSDJg.js";
|
|
2
2
|
import { t as FluentIconButton } from "./FluentIconButton-Dc95mE3v.js";
|
|
3
3
|
import { t as UnityFluentIcon } from "./UnityFluentIcon-DrASIcTF.js";
|
|
4
|
-
import { S as getIconFromName } from "./TreeUtilities-
|
|
4
|
+
import { S as getIconFromName } from "./TreeUtilities-VCy2z4Qv.js";
|
|
5
5
|
import React, { useState } from "react";
|
|
6
6
|
import { Avatar, MenuItem, Popover, Typography, alpha, makeStyles } from "@material-ui/core";
|
|
7
7
|
import { MoreVerticalIcon } from "@fluentui/react-icons";
|
|
@@ -153,4 +153,4 @@ const FluentTimeline = (props) => {
|
|
|
153
153
|
|
|
154
154
|
//#endregion
|
|
155
155
|
export { FluentTimelineContent as n, FluentTimelineHeader as r, FluentTimeline as t };
|
|
156
|
-
//# sourceMappingURL=fluentTimeline-
|
|
156
|
+
//# sourceMappingURL=fluentTimeline-BWoLOxF_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluentTimeline-
|
|
1
|
+
{"version":3,"file":"fluentTimeline-BWoLOxF_.js","names":["useStyles"],"sources":["../src/UI/timeline/fluentTimeline/FluentTimelineHeader.jsx","../src/UI/timeline/fluentTimeline/FluentTimelineContent.jsx","../src/UI/timeline/fluentTimeline/FluentTimeline.jsx"],"sourcesContent":["import React from 'react';\nimport { Typography, Avatar, makeStyles, alpha } from '@material-ui/core';\nimport { UnityFluentIcon } from '../../../utilities/iconLibrary/UnityFluentIcon';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles((theme) => ({\n customTimelineHeader: {\n backgroundColor: alpha(theme.palette.secondary.main, 0.1),\n borderRadius: theme.spacing(4),\n padding: theme.spacing(0.5, 2, 0.5, 0.5),\n display: 'flex',\n alignItems: 'center'\n },\n customTimelineHeaderAvatar: {\n marginRight: theme.spacing(1),\n height: theme.spacing(4),\n width: theme.spacing(4)\n },\n flexDescription: {\n fontSize: '0.875rem',\n marginLeft: theme.spacing(2)\n }\n}));\n\nexport const FluentTimelineHeader = (props) => {\n const { title, date, iconName } = props;\n const classes = useStyles();\n\n return (\n <div className={classes.customTimelineHeader}>\n <Avatar className={classes.customTimelineHeaderAvatar}>\n <UnityFluentIcon\n size='medium'\n icon={getIconFromName(iconName ?? 'PageListIcon')}\n type=''\n />\n </Avatar>\n <Typography variant='subtitle2'>{title}</Typography>\n <Typography\n variant='caption'\n color='textSecondary'\n className={classes.flexDescription}\n >\n {date}\n </Typography>\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport { Typography, makeStyles, Popover, MenuItem } from '@material-ui/core';\nimport { FluentIconButton } from '../../inputs/buttons/FluentIconButton';\nimport { MoreVerticalIcon } from '@fluentui/react-icons';\nimport { FluentIcon } from '../../../utilities/iconLibrary/FluentIcon';\n\nconst useStyles = makeStyles(theme => ({\n flexCol: {\n flexGrow: 1,\n fontSize: '0.875rem',\n marginLeft: theme.spacing(1),\n },\n customTimelineContent: {\n display: 'flex',\n borderLeft: '1px solid ' + theme.palette.grey[300],\n paddingLeft: theme.spacing(3),\n paddingTop: theme.spacing(0.5),\n paddingBottom: theme.spacing(0.5),\n marginLeft: theme.spacing(2.5),\n alignItems: 'center',\n },\n customTimelineContentDate: {\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(2),\n minWidth: theme.spacing(5),\n fontWeight: 400,\n textAlign: 'right',\n fontSize: '12px',\n },\n customTimelineDot: {\n marginLeft: theme.spacing(-3.55),\n width: theme.spacing(1),\n height: theme.spacing(1),\n backgroundColor: theme.palette.grey[400],\n borderRadius: '100%',\n },\n flexDescription: {\n fontSize: '0.875rem',\n },\n}));\n\nexport const FluentTimelineContent = props => {\n const { data, title, description, date, actions, category } = props;\n const classes = useStyles();\n const [openMenu, setOpenMenu] = useState(false);\n const [anchorEl, setAnchorEl] = useState(null);\n\n const handlePopoverClick = event => {\n setOpenMenu(true);\n setAnchorEl(event.currentTarget);\n };\n\n const handlePopoverClose = event => {\n setOpenMenu(false);\n setAnchorEl(null);\n };\n\n return (\n <div className={classes.customTimelineContent}>\n <div className={classes.customTimelineDot} />\n <Typography variant='body2' noWrap className={classes.flexCol}>\n {title}\n </Typography>\n <Typography variant='body2' noWrap className={classes.flexDescription}>\n {description}\n </Typography>\n <Typography\n variant='caption'\n color='textSecondary'\n className={classes.customTimelineContentDate}\n >\n {date}\n </Typography>\n {actions?.length > 0 && (\n <FluentIconButton\n icon={MoreVerticalIcon}\n size='small'\n onClick={handlePopoverClick}\n id={\n 'udpRecord-FluentTimelineContent-MoreAction-' +\n category +\n '-' +\n typeof title === 'string' && title.replace(/\\s+/g, '')\n }\n udprecordid={\n 'udpRecord-FluentTimelineContent-MoreAction-' +\n category +\n '-' +\n typeof title === 'string' && title.replace(/\\s+/g, '')\n }\n />\n )}\n\n <Popover\n id='fluentTimelineContentPopover'\n open={openMenu}\n anchorEl={anchorEl}\n onClose={handlePopoverClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n {actions?.map((action) => (\n <MenuItem\n id={\n 'udpRecord-FluentTimelineContent-MenuItem-' +\n action?.label?.replace(/ /g, '-')\n }\n udprecordid={\n 'udpRecord-FluentTimelineContent-MenuItem-' +\n action?.label?.replace(/ /g, '-')\n }\n onClick={() => {\n if (action.onClick) {\n action.onClick(data);\n }\n }}\n style={{\n display: 'flex',\n justifyContent: 'space-between'\n }}\n >\n <Typography>{action?.label}</Typography>\n {action?.icon && (\n <FluentIcon component={action?.icon} style={{ marginLeft: 7 }} />\n )}\n </MenuItem>\n ))}\n </Popover>\n </div>\n );\n};\n","import React from 'react';\nimport { FluentTimelineHeader } from './FluentTimelineHeader';\nimport { FluentTimelineContent } from './FluentTimelineContent';\n\nexport const FluentTimeline = (props) => {\n const { data, dataConfig, actions } = props;\n\n return (\n <div>\n {data?.map((timeline) => (\n <>\n <FluentTimelineHeader\n title={timeline?.[dataConfig?.type]}\n date={timeline?.[dataConfig?.typeDate]}\n iconName={timeline?.[dataConfig?.typeIconName]}\n />\n {timeline?.[dataConfig?.events]?.map((item) => (\n <FluentTimelineContent\n data={item}\n title={item?.[dataConfig?.eventTitle]}\n description={item?.[dataConfig?.eventDescription]}\n date={item?.[dataConfig?.eventDate]}\n actions={actions}\n category={timeline?.[dataConfig?.type]}\n />\n ))}\n </>\n ))}\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -470,6 +470,7 @@ const UdpTransactionEmailForm = ({ existingTransactionAttachments, toOptions, cc
|
|
|
470
470
|
component: AmbientTextField,
|
|
471
471
|
name: "subject",
|
|
472
472
|
margin: "normal",
|
|
473
|
+
variant: "outlined",
|
|
473
474
|
label: i18n("Subject"),
|
|
474
475
|
required: true
|
|
475
476
|
}), /* @__PURE__ */ React.createElement(LayoutUnit, { unit: "nudge" }), /* @__PURE__ */ React.createElement(CkRichEditor, {
|
|
@@ -480,4 +481,4 @@ const UdpTransactionEmailForm = ({ existingTransactionAttachments, toOptions, cc
|
|
|
480
481
|
|
|
481
482
|
//#endregion
|
|
482
483
|
export { PaymentReversalForm as n, LoginForm as r, UdpTransactionEmailForm as t };
|
|
483
|
-
//# sourceMappingURL=forms-
|
|
484
|
+
//# sourceMappingURL=forms-Eqr3TUUl.js.map
|