udp-react-enterprise-component-library 25.18.1-beta.41 → 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/{UdpTransactionsPage-llP_6pYr.js → UdpTransactionsPage-B5uhMoFg.js} +32 -26
- 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/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/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/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/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-iGKLrxEq.js +0 -52
- package/dist/UdpPages-iGKLrxEq.js.map +0 -1
- package/dist/UdpPagesLazy-DAB_UwLn.js +0 -56
- package/dist/UdpPagesLazy-DAB_UwLn.js.map +0 -1
- package/dist/UdpTransactionsPage-llP_6pYr.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
|
@@ -8,7 +8,7 @@ import { t as camelToPascalCaseWithSpace } from "./StringUtilities-u-cxAW6-.js";
|
|
|
8
8
|
import { t as FluentIconButton } from "./FluentIconButton-Dc95mE3v.js";
|
|
9
9
|
import { r as getSanitizedName } from "./entityUtilities-_8w-Zjs3.js";
|
|
10
10
|
import { D as SearchGroupingType, O as SearchSortDirection, f as LogicalSearchOperatorEnums, p as LookupTypeEnums } from "./unitySystemEnums-e5F9Jr7m.js";
|
|
11
|
-
import { n as getSearchIdentifiers, r as getSearchObject } from "./SearchUtilities-
|
|
11
|
+
import { n as getSearchIdentifiers, r as getSearchObject } from "./SearchUtilities-B1TCyppF.js";
|
|
12
12
|
import { t as PrimaryActionHeader } from "./PrimaryActionHeader-DBJpROPu.js";
|
|
13
13
|
import { t as AmbientCard } from "./AmbientCard-CLW4bPCu.js";
|
|
14
14
|
import { c as useGridFormat, o as useExport } from "./GridFunctions-CRTDIOe0.js";
|
|
@@ -832,4 +832,4 @@ const InquirySearchContainer = (props) => {
|
|
|
832
832
|
|
|
833
833
|
//#endregion
|
|
834
834
|
export { InquiryAdvancedSearchForm as a, InquiryAdvancedSearch as i, InquirySearchTable as n, InquirySearchDatasource as r, InquirySearchContainer as t };
|
|
835
|
-
//# sourceMappingURL=InquirySearchContainer-
|
|
835
|
+
//# sourceMappingURL=InquirySearchContainer-BnHwUWFC.js.map
|
package/dist/{InquirySearchContainer-BIpngula.js.map → InquirySearchContainer-BnHwUWFC.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InquirySearchContainer-BIpngula.js","names":["useStyles","uuid","useStyles","Form","element","useStyles"],"sources":["../src/inquiry/search/InquiryAdvancedSearchForm.jsx","../src/inquiry/search/InquiryAdvancedSearch.jsx","../src/inquiry/search/InquirySearchDatasource.js","../src/inquiry/search/InquirySearchTable.jsx","../src/inquiry/search/InquirySearchContainer.jsx"],"sourcesContent":["import React, { useMemo, useCallback, useEffect } from 'react';\nimport { makeStyles, Divider, Typography } from '@material-ui/core';\nimport { FluentTextFieldAutoComplete } from '../../UI/inputs/textField/FluentTextFieldAutoComplete';\nimport { SearchOperators } from '../../models/SearchOperator.ts';\nimport clsx from 'clsx';\nimport { v4 as uuid } from 'uuid';\nimport { PropertyTypeEnum } from '../../enums/propertyTypeEnums.ts';\nimport { PropertyField } from '../../UI/property/PropertyFields';\nimport { LookupTypeEnums } from '../../enums/unitySystemEnums.ts';\nimport { csvStrToArrayOfObjects } from '../../utilities/input/SelectUtilities';\nimport { useForm } from 'react-final-form';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1),\n overflowX: 'auto'\n },\n fieldRow: { display: 'flex', alignItems: 'center' },\n dividerContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%'\n },\n divider: { width: '100%', marginTop: theme.spacing(1) },\n autocompleteRoot: {\n width: '38%',\n marginRight: theme.spacing(1)\n }\n}));\n\nexport const InquiryAdvancedSearchForm = (props) => {\n const {\n advancedSearchFields,\n selectedSearchOperators,\n setSelectedSearchOperators,\n catalogProperties,\n entityType,\n lookupPropertyNames,\n classes: classProps,\n executeQueryWithParameters,\n setForm\n } = props;\n const { root } = classProps || {};\n const classes = useStyles();\n\n const form = useForm();\n\n const handleSearchOperatorChange = useCallback(\n (value, fieldName) => {\n if (fieldName) {\n let updatedSelectedSearchOps = {};\n if (selectedSearchOperators) {\n updatedSelectedSearchOps = { ...selectedSearchOperators };\n }\n updatedSelectedSearchOps[fieldName] = value;\n setSelectedSearchOperators(updatedSelectedSearchOps);\n }\n },\n [selectedSearchOperators, setSelectedSearchOperators]\n );\n\n const getPropertyWidgetType = (type, useLookup) => {\n if (!type) {\n return null;\n }\n let propertyWidgetType = '';\n switch (type) {\n case PropertyTypeEnum.Int:\n case PropertyTypeEnum.Long:\n propertyWidgetType = 'IntegerWidget';\n break;\n case PropertyTypeEnum.DateTime:\n propertyWidgetType = 'DateTimeWidget';\n break;\n case PropertyTypeEnum.Boolean:\n propertyWidgetType = 'BooleanWidget';\n break;\n default:\n propertyWidgetType = 'TextWidget';\n }\n\n if (\n useLookup === LookupTypeEnums.Api ||\n useLookup === LookupTypeEnums.Csv\n ) {\n propertyWidgetType = 'AutoCompleteWidget';\n }\n\n return propertyWidgetType;\n };\n\n const getPropertyTypeSearchOperators = useCallback((type) => {\n if (!type) {\n return [];\n }\n switch (type) {\n case PropertyTypeEnum.Boolean:\n return SearchOperators.filter((operator) => operator.value === '=');\n default:\n return SearchOperators;\n }\n }, []);\n\n const fieldRows = useMemo(() => {\n if (!advancedSearchFields || !catalogProperties) {\n return [];\n }\n const keys = Object.keys(advancedSearchFields);\n\n const arrayOfFields = keys.reduce((list, key) => {\n const groupedItems = advancedSearchFields[key];\n let groupHeader = '';\n const foundGroupItem = groupedItems.find((item) => !!item.groupHeader);\n if (foundGroupItem) {\n groupHeader = foundGroupItem.groupHeader;\n }\n list.push({ groupHeader: groupHeader, isDivider: true, id: uuid() });\n groupedItems.forEach(async (item) => {\n const foundProperty = catalogProperties.find(\n (property) => property.name === item.name\n );\n const propertyWidgetType = getPropertyWidgetType(\n foundProperty?.type,\n foundProperty?.extendedProperties?.useLookup\n );\n let apiLookupOptions = null;\n if (\n !item.searchable &&\n !foundProperty?.extendedProperties?.searchable\n ) {\n return;\n }\n if (\n lookupPropertyNames.includes(foundProperty?.name) &&\n foundProperty?.extendedProperties?.useLookup === LookupTypeEnums.Api\n ) {\n // TODO: handle getting lookup data with api call\n // const response = await executeQueryWithParameters(\n // 'aa5d1fe1-1128-4d08-9ddb-58ad4fcf00e4'\n // );\n // console.log(response?.data);\n }\n list.push({\n ...item,\n isDivider: false,\n type: foundProperty?.type,\n propertyWidgetType: propertyWidgetType,\n useLookup: foundProperty?.extendedProperties?.useLookup,\n lookup: foundProperty?.extendedProperties?.lookup,\n apiLookupOptions: apiLookupOptions\n });\n });\n return list;\n }, []);\n return arrayOfFields;\n }, [advancedSearchFields, catalogProperties, lookupPropertyNames]);\n\n const getPropertyFields = useCallback(\n (config) => {\n const searchOperator = selectedSearchOperators\n ? selectedSearchOperators[config?.name]?.value\n : null;\n let options = [];\n if (config?.useLookup === LookupTypeEnums.Csv) {\n options = csvStrToArrayOfObjects(config?.lookup);\n }\n if (searchOperator === 'BETWEEN') {\n return (\n <div style={{ display: 'block', width: '100%' }}>\n <PropertyField\n propertyType={entityType}\n property={{\n key: config?.name,\n label: `${config?.columnName} (From)`,\n type: config?.propertyWidgetType,\n options: options || [],\n valueName: 'value'\n }}\n />\n <PropertyField\n propertyType={entityType}\n property={{\n key: `${config?.name}:between`,\n label: `${config?.columnName} (To)`,\n type: config?.propertyWidgetType,\n options: options || [],\n valueName: 'value'\n }}\n />\n </div>\n );\n }\n\n return (\n <PropertyField\n propertyType={entityType}\n property={{\n key: config?.name,\n label: config?.columnName,\n type: config?.propertyWidgetType,\n options: options || [],\n valueName: 'value'\n }}\n />\n );\n },\n [entityType, selectedSearchOperators]\n );\n\n const fieldComponents = useMemo(() => {\n if (!fieldRows || !fieldRows.length) {\n return null;\n }\n return fieldRows.map((config) => {\n return (\n <div key={config?.id}>\n {!config?.isDivider && (\n <div className={classes.fieldRow}>\n <FluentTextFieldAutoComplete\n id='udpRecord-InquiryAdvancedSearchForm-Text'\n udprecordid='udpRecord-InquiryAdvancedSearchForm-Text'\n label='Operator'\n name='searchOperator'\n variant='outlined'\n margin='dense'\n size='small'\n options={getPropertyTypeSearchOperators(config?.type) || []}\n optionKey='label'\n value={\n (selectedSearchOperators &&\n selectedSearchOperators[config?.name]) ||\n ''\n }\n onChange={(value) =>\n handleSearchOperatorChange(value, config?.name)\n }\n classes={{ autocompleteRoot: classes.autocompleteRoot }}\n />\n {getPropertyFields(config)}\n </div>\n )}\n {config?.isDivider && (\n <div className={classes.dividerContainer}>\n <div className={classes.divider}>\n <Divider orientation='horizontal' />\n </div>\n {config?.groupHeader && (\n <div\n style={{\n marginRight: 8,\n marginLeft: 8,\n textAlign: 'center',\n whiteSpace: 'nowrap'\n }}\n >\n <Typography variant='caption'>\n {config?.groupHeader}\n </Typography>\n </div>\n )}\n <div className={classes.divider}>\n <Divider orientation='horizontal' />\n </div>\n </div>\n )}\n </div>\n );\n });\n }, [\n fieldRows,\n classes,\n handleSearchOperatorChange,\n selectedSearchOperators,\n getPropertyTypeSearchOperators,\n getPropertyFields\n ]);\n\n useEffect(() => {\n if (form) {\n setForm(form);\n }\n }, [form, setForm]);\n\n return <div className={clsx(classes.root, root)}>{fieldComponents}</div>;\n};\n","import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport { makeStyles, Divider, Typography } from '@material-ui/core';\nimport { SubmitButton } from '../../utilities/form/SubmitButton.tsx';\nimport { Form } from '../../utilities/form/Form.tsx';\nimport { FormButtons } from '../../utilities/form/FormButtons.tsx';\nimport { FluentTextFieldAutoComplete } from '../../UI/inputs/textField/FluentTextFieldAutoComplete';\nimport { orderBy } from 'lodash';\nimport { InquiryAdvancedSearchForm } from './InquiryAdvancedSearchForm';\nimport { LookupTypeEnums } from '../../enums/unitySystemEnums.ts';\nimport { SearchOperators } from '../../models/SearchOperator.ts';\nimport { FluentIconButton } from '../../UI/inputs/buttons/FluentIconButton';\nimport { FluentButton } from '../../UI/inputs/buttons/FluentButton';\nimport { ClearIcon } from '@fluentui/react-icons';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities.js';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n entitySelect: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n fieldsRoot: {\n height: (props) => 'calc(100vh - 288px)'\n },\n title: {\n display: 'flex',\n justifyContent: 'space-between',\n margin: theme.spacing(1)\n },\n buttonWrapper: {\n textAlign: 'center'\n },\n button: {\n textTransform: 'none',\n padding: 0,\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0)'\n },\n color: theme.palette.secondary\n }\n}));\n\nexport const InquiryAdvancedSearch = (props) => {\n const {\n entityList,\n onSubmit,\n currentNodeCatalogReturnObject,\n catalogObjects,\n entityValue,\n setEntityValue,\n changeSideBarView,\n tree,\n executeQueryWithParameters\n } = props;\n const classes = useStyles(props);\n\n const [initialSelectedSearchOperators, setInitialSelectedSearchOperators] =\n useState(null);\n const [selectedSearchOperators, setSelectedSearchOperators] = useState(null);\n const [form, setForm] = useState(null);\n\n const entityTree = useMemo(() => {\n if (!entityValue || !tree) {\n return null;\n }\n const matchingEntityTree = tree.treeStructure.find(\n (node) => node.properties.catalogReturnObject === entityValue.value\n );\n let nodeTree = tree;\n if (matchingEntityTree?.properties?.associatedInquiryTree) {\n nodeTree = matchingEntityTree?.properties?.associatedInquiryTree;\n }\n return nodeTree;\n }, [tree, entityValue]);\n\n const catalogProperties = useMemo(() => {\n if (!entityValue || !catalogObjects) {\n return [];\n }\n const foundCatalogObject = catalogObjects.find(\n (catalog) => catalog.catalogObjectName === entityValue.value\n );\n return foundCatalogObject?.properties || [];\n }, [catalogObjects, entityValue]);\n\n const advancedSearchFields = useMemo(() => {\n if (!entityTree) {\n return null;\n }\n const parentNode = entityTree.treeStructure.find((node) => !node.parentId);\n const advancedSearchConfiguration =\n parentNode?.properties?.searchConfiguration?.filter(\n (config) => config.advancedSearch\n );\n advancedSearchConfiguration?.forEach(\n (config) =>\n (config.advancedSearch = Number.parseFloat(config.advancedSearch))\n );\n const orderedSearchConfiguration = orderBy(\n advancedSearchConfiguration,\n ['advancedSearch'],\n ['asc']\n );\n\n const groupedAndOrderdFields = {};\n\n orderedSearchConfiguration.forEach((config) => {\n const wholeInt = Math.floor(config.advancedSearch);\n if (!groupedAndOrderdFields[wholeInt]) {\n groupedAndOrderdFields[wholeInt] = [config];\n } else {\n groupedAndOrderdFields[wholeInt].push(config);\n }\n });\n return groupedAndOrderdFields;\n }, [entityTree]);\n\n const asCatalogLookupPropertyNames = useMemo(() => {\n if (!entityTree) {\n return [];\n }\n const parentNode = entityTree.treeStructure.find((node) => !node.parentId);\n const advancedSearchPropertyName =\n parentNode?.properties?.searchConfiguration\n ?.filter((config) => config.advancedSearch)\n .map((asConfig) => asConfig.name);\n const filteredProperties = catalogProperties.filter((property) =>\n advancedSearchPropertyName?.includes(property.name)\n );\n const lookupPropertyNames = [];\n filteredProperties.forEach((property) => {\n if (\n property?.extendedProperties?.useLookup !== LookupTypeEnums.No_Lookup ||\n !property?.extendedProperties?.useLookup\n ) {\n lookupPropertyNames.push(property.name);\n }\n });\n return lookupPropertyNames;\n }, [catalogProperties, entityTree]);\n\n const handleEntityChange = (value) => {\n setEntityValue(value);\n };\n\n const handleOnSubmit = useCallback(\n (values) => {\n if (onSubmit) {\n onSubmit(\n values,\n selectedSearchOperators,\n entityValue?.value,\n asCatalogLookupPropertyNames\n );\n }\n },\n [\n onSubmit,\n selectedSearchOperators,\n entityValue,\n asCatalogLookupPropertyNames\n ]\n );\n\n const handleClearFilter = useCallback(() => {\n if (form) {\n form.reset();\n }\n setSelectedSearchOperators(initialSelectedSearchOperators);\n }, [initialSelectedSearchOperators, form]);\n\n useEffect(() => {\n if (entityList?.length) {\n const foundEntity = entityList.find(\n (entity) => entity.value === currentNodeCatalogReturnObject\n );\n if (foundEntity) {\n setEntityValue(foundEntity);\n }\n }\n }, [entityList, currentNodeCatalogReturnObject, setEntityValue]);\n\n useEffect(() => {\n if (advancedSearchFields) {\n const mergedFields = [].concat.apply(\n [],\n Object.values(advancedSearchFields)\n );\n const initialSearchOperators = mergedFields.reduce((operators, field) => {\n if (field.advancedSearchOperator) {\n const foundOperator = SearchOperators.find(\n (op) => op.value === field.advancedSearchOperator\n );\n operators[field.name] = foundOperator ?? SearchOperators[0];\n } else {\n operators[field.name] = SearchOperators[0];\n }\n return operators;\n }, {});\n\n setInitialSelectedSearchOperators(initialSearchOperators);\n setSelectedSearchOperators(initialSearchOperators);\n }\n }, [advancedSearchFields]);\n\n return (\n <div className={classes.root}>\n <div>\n <Divider />\n </div>\n <div className={classes.title}>\n <Typography variant='subtitle1'>Advanced Search</Typography>\n <FluentIconButton\n id='udpRecord-InquiryAdvancedSearch-ClearIcon'\n udprecordid='udpRecord-InquiryAdvancedSearch-ClearIcon'\n icon={ClearIcon}\n onClick={() => changeSideBarView(0)}\n />\n </div>\n <div className={classes.entitySelect}>\n <FluentTextFieldAutoComplete\n id='udpRecord-InquiryAdvancedSearch-TextField'\n udprecordid='udpRecord-InquiryAdvancedSearch-TextField'\n label='Entity'\n variant='outlined'\n margin='normal'\n size='small'\n fullWidth\n options={entityList}\n optionKey='label'\n value={entityValue}\n onChange={handleEntityChange}\n />\n </div>\n <Form onSubmit={handleOnSubmit}>\n <InquiryAdvancedSearchForm\n advancedSearchFields={advancedSearchFields}\n selectedSearchOperators={selectedSearchOperators}\n setSelectedSearchOperators={setSelectedSearchOperators}\n catalogProperties={catalogProperties}\n entityType={getSanitizedName(entityValue?.value)}\n lookupPropertyNames={asCatalogLookupPropertyNames}\n classes={{ root: classes.fieldsRoot }}\n executeQueryWithParameters={executeQueryWithParameters}\n setForm={setForm}\n />\n <div className={classes.submitWrapper}>\n <div className={classes.buttonWrapper}>\n <FluentButton\n id='udpRecord-InquiryAdvancedSearch-ClearFilter'\n udprecordid='udpRecord-InquiryAdvancedSearch-ClearFilter'\n onClick={handleClearFilter}\n className={classes.button}\n >\n <Typography variant='subtitle1'>Clear Filter</Typography>\n </FluentButton>\n <FormButtons>\n <SubmitButton\n id='udpRecord-InquiryAdvancedSearch-Search'\n udprecordid='udpRecord-InquiryAdvancedSearch-Search'\n variant='contained'\n color='primary'\n disablePristine={false}\n disabled={!entityValue}\n fullWidth\n style={{ marginRight: 8, marginLeft: 8 }}\n >\n Search\n </SubmitButton>\n </FormButtons>\n </div>\n </div>\n </Form>\n </div>\n );\n};\n","import { getSearchObject } from '../../utilities/search/SearchUtilities';\nimport { FilterOperators } from '../../models/SearchOperator.ts';\nimport {\n SearchGroupingType,\n SearchSortDirection,\n LogicalSearchOperatorEnums\n} from '../../enums/unitySystemEnums.ts';\n\nexport const InquirySearchDatasource = (\n queryData,\n apiMethodId,\n searchFilterElements,\n logicalSearchOperator = LogicalSearchOperatorEnums.And,\n executeQuery,\n searchFilterGroups\n) => {\n return {\n async getRows(params) {\n const {\n startRow,\n endRow,\n rowGroupCols,\n groupKeys,\n valueCols,\n filterModel,\n sortModel\n } = params.request;\n const page = endRow / 20;\n const searchObject = getSearchObject(\n searchFilterElements,\n page,\n null,\n false,\n logicalSearchOperator,\n searchFilterGroups\n );\n\n // handle server-side sorting on ag-grid\n if (sortModel.length) {\n const orderElements = searchObject.orderElements;\n sortModel.forEach((sortItem) => {\n const formattedPropertyName =\n sortItem.colId.charAt(0).toUpperCase() + sortItem.colId.slice(1);\n\n const element = orderElements.find(\n (element) => element.sortColumn === formattedPropertyName\n );\n if (element) {\n element.sortDirection = sortItem.sort.toUpperCase();\n } else {\n orderElements.push({\n sortColumn: formattedPropertyName,\n sortDirection: sortItem.sort.toUpperCase()\n });\n }\n });\n }\n\n // handle server-side filtering on ag-grid\n if (Object.keys(filterModel).length) {\n const filterElements = searchObject.filterElements;\n Object.keys(filterModel).forEach((key) => {\n const filterItem = filterModel[key];\n const formattedPropertyName =\n key.charAt(0).toUpperCase() + key.slice(1);\n\n const element = filterElements.find(\n (element) => element.searchField === formattedPropertyName\n );\n if (element) {\n element.searchValue = filterItem.filter;\n element.searchOperator = FilterOperators[filterItem.type];\n } else {\n filterElements.push({\n searchField: formattedPropertyName,\n searchValue: filterItem.filter,\n searchOperator: FilterOperators[filterItem.type]\n });\n }\n });\n }\n\n // construct search for initial grouping\n if (rowGroupCols.length && !groupKeys.length) {\n const formattedPropertyName =\n rowGroupCols[0].field.charAt(0).toUpperCase() +\n rowGroupCols[0].field.slice(1);\n\n searchObject.groupingType = SearchGroupingType.Distinct;\n if (!searchObject.groupProperty.includes(formattedPropertyName)) {\n searchObject.groupProperty.push(formattedPropertyName);\n\n const orderElements = searchObject.orderElements;\n const element = orderElements.find(\n (element) => element.sortColumn === formattedPropertyName\n );\n if (!element) {\n orderElements.push({\n sortColumn: formattedPropertyName,\n sortDirection: SearchSortDirection.Asc\n });\n }\n }\n }\n\n // construct the filter for grouped columns\n if (groupKeys.length) {\n // construct search for last grouped element\n if (groupKeys.length === rowGroupCols.length) {\n searchObject.groupingType = '';\n const filterElements = searchObject.filterElements;\n groupKeys.forEach((key, index) => {\n const rowGroupCol = rowGroupCols[index];\n const formattedPropertyName =\n rowGroupCol.field.charAt(0).toUpperCase() +\n rowGroupCol.field.slice(1);\n\n const element = filterElements.find(\n (element) => element.searchField === formattedPropertyName\n );\n if (element) {\n element.searchValue = key;\n element.searchOperator = '=';\n } else {\n filterElements.push({\n searchField: formattedPropertyName,\n searchValue: key,\n searchOperator: '='\n });\n }\n });\n } else {\n // construct search for the next grouped element\n groupKeys.forEach((key, index) => {\n const formattedPropertyNameForSearch =\n rowGroupCols[index].field.charAt(0).toUpperCase() +\n rowGroupCols[index].field.slice(1);\n\n searchObject.filterElements.push({\n searchField: formattedPropertyNameForSearch,\n searchValue: key,\n searchOperator: '='\n });\n });\n\n searchObject.groupingType = SearchGroupingType.Distinct;\n const searchIndex = groupKeys.length;\n const rowGroupCol = rowGroupCols[searchIndex];\n const formattedPropertyName =\n rowGroupCol.field.charAt(0).toUpperCase() +\n rowGroupCol.field.slice(1);\n\n if (!searchObject.groupProperty.includes(formattedPropertyName)) {\n searchObject.groupProperty.push(formattedPropertyName);\n\n const orderElements = searchObject.orderElements;\n const element = orderElements.find(\n (element) => element.sortColumn === formattedPropertyName\n );\n if (!element) {\n orderElements.push({\n sortColumn: formattedPropertyName,\n sortDirection: SearchSortDirection.Asc\n });\n }\n }\n }\n }\n\n if (\n !startRow &&\n rowGroupCols.length === 0 &&\n !sortModel.length &&\n !Object.keys(filterModel).length &&\n !groupKeys.length &&\n queryData\n ) {\n if (queryData.pageList && queryData.pageList) {\n params.successCallback(queryData.pageList, queryData.total);\n } else {\n // TODO: add an overlay to display no rows\n params.successCallback([], 0);\n }\n } else {\n let response = null;\n if (executeQuery) {\n const data = { data: searchObject };\n response = await executeQuery(data, apiMethodId);\n }\n const rowData = response?.data;\n if (rowData) {\n if (rowData?.pageList?.length > 0) {\n params.successCallback(rowData.pageList, rowData.total);\n } else {\n params.successCallback([], 0);\n }\n } else {\n params.successCallback([], 0);\n }\n }\n }\n };\n};\n","import React, { useState, useEffect, useMemo, useCallback } from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useAgGridApi, AgTable } from '../../utilities/aggrid/AgTable.tsx';\nimport {\n useGridFormat,\n useExport\n} from '../../utilities/aggrid/GridFunctions.js';\nimport { PrimaryActionHeader } from '../../UI/utilityDisplay/utilityHeader/PrimaryActionHeader';\nimport { ServerSideRowModelModule } from '@ag-grid-enterprise/server-side-row-model';\nimport { camelToPascalCaseWithSpace } from '../../utilities/input/StringUtilities';\nimport { InquirySearchDatasource } from './InquirySearchDatasource';\nimport { getSearchIdentifiers } from '../../utilities/search/SearchUtilities';\nimport { LogicalSearchOperatorEnums } from '../../enums/unitySystemEnums.ts';\nimport { sortBy } from 'lodash';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: (props) => {\n const rowCount =\n props?.queryData?.pageList?.length > 10\n ? 10\n : props?.queryData?.pageList?.length ?? 0;\n const topResultsOnlyHeight = rowCount * 48 + 60;\n const moreResultsHeight = rowCount * 48 + 116;\n return props.topResultsOnly ? topResultsOnlyHeight : moreResultsHeight;\n }\n }\n}));\n\nexport const InquirySearchTable = (props) => {\n const {\n apiMethodId,\n associatedInquiryTree,\n catalogReturnObject,\n catalogObjects,\n columns,\n executeQuery,\n queryColumnsData,\n isAdvancedSearch,\n onRowDoubleClick,\n queryData,\n searchFilterElements,\n searchFilterGroups,\n setSelectedSearchRows,\n treeStructure,\n topResultsOnly = false,\n topResultsSize = 50\n } = props;\n\n const classes = useStyles(props);\n const { gridApi, onGridReady } = useAgGridApi();\n const [agGridOptions] = useState({});\n const [gridFormat] = useGridFormat();\n const [exportGrid] = useExport();\n\n const searchIdentifier = useMemo(() => {\n const identifiers =\n getSearchIdentifiers(catalogObjects, catalogReturnObject) || [];\n return identifiers.toString();\n }, [catalogObjects, catalogReturnObject]);\n\n const columnDefs = useMemo(() => {\n let commonCols = columns.map((column) => {\n let matchingColumnIndex = null;\n const matchingColumn = queryColumnsData.find((c, index) => {\n if (c.name === column?.name) {\n matchingColumnIndex = index;\n }\n return c.name === column?.name;\n });\n\n let def = {\n headerName: column.alias || camelToPascalCaseWithSpace(column.name),\n field: column.name\n // cellStyle: (params) => ValidateCellStylesByConditionals(params, column)\n };\n if (matchingColumn) {\n def = {\n headerName:\n matchingColumn.alias ||\n camelToPascalCaseWithSpace(matchingColumn.name),\n field: matchingColumn.name\n };\n }\n\n if (column?.extendedProperties?.searchable) {\n def = {\n ...def,\n filter: 'agTextColumnFilter',\n filterParams: {\n suppressAndOrCondition: true,\n filterOptions: [\n 'equals',\n 'contains',\n 'notEqual',\n 'greaterThan',\n 'lessThan',\n 'greaterThanOrEqual',\n 'lessThanOrEqual'\n ]\n },\n enableRowGroup: true\n };\n }\n if (column?.extendedProperties?.orderable) {\n def = {\n ...def,\n sortable: true\n };\n }\n def.hide = !matchingColumn;\n def.index = matchingColumnIndex;\n return def;\n });\n\n const currentNode = treeStructure.find(\n (node) => node.properties?.catalogReturnObject === catalogReturnObject\n );\n const searchConfiguration =\n currentNode?.properties?.searchConfiguration || null;\n let requiresOrdering = false;\n if (searchConfiguration) {\n requiresOrdering = searchConfiguration.some(\n (config) => !!config.results.trim()\n );\n }\n if (requiresOrdering) {\n // Sort columns using the searchConfiguration results\n const searchConfigWithResults = searchConfiguration.filter(\n (config) => !!config.results\n );\n commonCols.forEach((col) => {\n col.index = null;\n const foundSearchConfig = searchConfigWithResults.find(\n (config) => config.name === col.field\n );\n if (foundSearchConfig) {\n col.index = parseFloat(foundSearchConfig.results);\n }\n });\n }\n // Sort columns\n commonCols = sortBy(commonCols, (col) => col.index);\n return commonCols;\n }, [columns, queryColumnsData, treeStructure, catalogReturnObject]);\n\n const defaultColDef = useMemo(\n () => ({\n resizable: true,\n editable: false,\n // filter: true,\n enableValue: true,\n allowedAggFuncs: ['sum', 'min', 'max', 'count', 'avg', 'first', 'last']\n }),\n []\n );\n\n const rowData = useMemo(() => {\n if (!queryData) return [];\n return queryData?.pageList?.slice(0, topResultsSize);\n }, [queryData, topResultsSize]);\n\n const handleSelectionChanged = useCallback(() => {\n const selectedRows = gridApi.getSelectedRows();\n setSelectedSearchRows(\n catalogReturnObject,\n selectedRows,\n searchIdentifier,\n apiMethodId,\n treeStructure,\n associatedInquiryTree\n );\n }, [\n gridApi,\n catalogReturnObject,\n setSelectedSearchRows,\n searchIdentifier,\n apiMethodId,\n treeStructure,\n associatedInquiryTree\n ]);\n\n const handleRowDoubleClicked = useCallback(\n (event) => {\n if (!gridApi) return;\n if (onRowDoubleClick) {\n onRowDoubleClick(event.node.data, catalogReturnObject);\n }\n },\n [gridApi, onRowDoubleClick, catalogReturnObject]\n );\n\n useEffect(() => {\n if (!gridApi) return;\n gridApi.sizeColumnsToFit();\n let datasource = InquirySearchDatasource(\n queryData,\n apiMethodId,\n searchFilterElements,\n isAdvancedSearch\n ? LogicalSearchOperatorEnums.And\n : LogicalSearchOperatorEnums.Or,\n executeQuery,\n searchFilterGroups\n );\n // eslint-disable-next-line no-unused-expressions\n gridApi?.setServerSideDatasource(datasource);\n }, [\n gridApi,\n apiMethodId,\n searchFilterElements,\n queryData,\n isAdvancedSearch,\n executeQuery,\n searchFilterGroups\n ]);\n\n return (\n <div>\n {!topResultsOnly && (\n <>\n <PrimaryActionHeader\n hidePAB={true}\n // LAA UNT-2624: remove whitespace caused by the action row\n hideActionRow={true}\n expandAllItems={() => gridFormat(gridApi, 'expand')}\n collapse={() => gridFormat(gridApi, 'collapse')}\n resizeGrid={() => gridFormat(gridApi, 'resize')}\n exportGrid={() => exportGrid(gridApi, 'csv')}\n grid\n // value={value}\n // altInputs={value === 0 && childrenTabSwitcher}\n />\n <AgTable\n className={classes.root}\n modules={[ServerSideRowModelModule]}\n rowModelType={'serverSide'}\n serverSideStoreType={'partial'}\n pagination={true}\n paginationPageSize={20}\n cacheOverflowSize={2}\n maxConcurrentDatasourceRequests={1}\n cacheBlockSize={20}\n onGridReady={onGridReady}\n columnDefs={columnDefs}\n defaultColDef={defaultColDef}\n // getRowNodeId={row => row.channelConfigurationID}\n onRowDoubleClicked={handleRowDoubleClicked}\n rowSelection='multiple'\n rowMultiSelectWithClick={true}\n onSelectionChanged={handleSelectionChanged}\n // animateRows={true}\n api={gridApi}\n dynamicSizing\n {...agGridOptions}\n />\n </>\n )}\n {topResultsOnly && (\n <AgTable\n className={classes.root}\n rowData={rowData || []}\n onGridReady={onGridReady}\n columnDefs={columnDefs}\n defaultColDef={defaultColDef}\n // getRowNodeId={row => row.channelConfigurationID}\n onRowDoubleClicked={handleRowDoubleClicked}\n rowSelection='multiple'\n rowMultiSelectWithClick={true}\n onSelectionChanged={handleSelectionChanged}\n animateRows={true}\n api={gridApi}\n dynamicSizing\n {...agGridOptions}\n />\n )}\n </div>\n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { makeStyles, LinearProgress } from '@material-ui/core';\nimport {\n getSearchObject,\n getSearchIdentifiers\n} from '../../utilities/search/SearchUtilities';\nimport { AmbientCard } from '../../UI/surfaces/cards/AmbientCard';\nimport { InquirySearchTable } from './InquirySearchTable';\nimport clsx from 'clsx';\nimport { LogicalSearchOperatorEnums } from '../../enums/unitySystemEnums.ts';\nimport { useSearchFilterParamsMap } from '../../hooks/useSearchFilterParamsMap';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n overflowX: 'auto'\n },\n searchCard: {\n paddingBottom: theme.spacing(2)\n },\n emptyStateWrapper: {\n display: 'flex',\n justifyContent: 'center',\n paddingTop: '25vh'\n }\n}));\n\nexport const InquirySearchContainer = (props) => {\n const {\n advancedSearchItems,\n catalogObjects,\n classes: classProps,\n executeQueryAdHoc,\n isAdvancedSearch,\n loadSingleNode,\n onRowDoubleClick,\n searchItems,\n setSelectedSearchRows,\n apiMethodInstanceId\n } = props;\n const { root } = classProps || {};\n const classes = useStyles();\n const [searchList, setSearchList] = useState(null);\n const [loading, setLoading] = useState(false);\n const {\n getQueryFilterElements,\n getQueryFilterGroups,\n getQuerySearchOperator\n } = useSearchFilterParamsMap();\n\n const getQueryColumnsData = useCallback((apiMethodInstance) => {\n if (!apiMethodInstance) return [];\n let catalogMods = [];\n try {\n const catalogModificationStr = apiMethodInstance.catalogModification;\n const catalogModification = JSON.parse(catalogModificationStr);\n catalogMods = catalogModification;\n } catch {\n console.warn('Error parsing apiMethodInstance catalogModification');\n }\n return catalogMods;\n }, []);\n\n useEffect(() => {\n if (!catalogObjects) {\n setLoading(true);\n }\n if (!searchItems || !catalogObjects?.length) return;\n setLoading(true);\n const promises = [];\n let list = [];\n const promiseIndexMap = {};\n const itemsList = !isAdvancedSearch\n ? searchItems\n : advancedSearchItems || [];\n itemsList.forEach((item, index) => {\n //Get filter elements, filter groups, and operator from query\n let filterElementsFromQuery = getQueryFilterElements(\n item.apiMethodInstance\n ); //will this handle groups? if there is group within data builder\n let filterGroups = getQueryFilterGroups(item.apiMethodInstance);\n const logicalOperatorFromQuery = getQuerySearchOperator(\n item.apiMethodInstance\n );\n // Assigning queryColumnsData object here to know which columns are hidden based on\n // data browser query\n item.queryColumnsData = getQueryColumnsData(item.apiMethodInstance);\n\n //create new outer filter group to contain all filters in data builder query\n let outerQueryGroupId = 0;\n let queryOuterGroup = null;\n if (!!filterElementsFromQuery.length) {\n outerQueryGroupId = filterGroups.length + 1;\n queryOuterGroup = {\n groupId: outerQueryGroupId,\n logicalSearchOperator: logicalOperatorFromQuery\n };\n }\n\n //create new outer filter group to contain all filters from tree builder\n let outerTreeBuilderGroupId = 0;\n let inquiryOuterGroup = null;\n if (!!item?.searchFilterElements?.length) {\n outerTreeBuilderGroupId = outerQueryGroupId + 1;\n inquiryOuterGroup = {\n groupId: outerTreeBuilderGroupId,\n logicalSearchOperator: isAdvancedSearch\n ? LogicalSearchOperatorEnums.And\n : LogicalSearchOperatorEnums.Or\n };\n }\n\n //make the new outer query group the parent of non parent query groups (top level groups)\n filterGroups = filterGroups.map((group) => {\n if (!group.parentGroupId) {\n group.parentGroupId = outerQueryGroupId;\n }\n return group;\n });\n\n //make the new outer group the group of filter elements with no group (top level filter elements)\n filterElementsFromQuery = filterElementsFromQuery.map((element) => {\n if (!element.groupId) {\n element.groupId = outerQueryGroupId;\n }\n return element;\n });\n\n //add outer tree builder group Id to all tree builder filter elements\n item.searchFilterElements = item.searchFilterElements.map((element) => {\n element.groupId = outerTreeBuilderGroupId;\n return element;\n });\n\n //combine data builder query filters and tree builder filters\n const searchFilterElements = filterElementsFromQuery.concat(\n item.searchFilterElements || []\n );\n\n // Reassigning searchFilterElements to use the data browser filter elements\n // and the searched one\n item.searchFilterElements = searchFilterElements;\n\n //add new outer filter groups to filter group array\n if (!!inquiryOuterGroup) {\n filterGroups.push(inquiryOuterGroup);\n }\n if (!!queryOuterGroup) {\n filterGroups.push(queryOuterGroup);\n }\n\n item.searchFilterGroups = filterGroups;\n\n const searchObject = getSearchObject(\n searchFilterElements,\n 1,\n null,\n false,\n LogicalSearchOperatorEnums.And,\n filterGroups\n );\n let shouldSearch = true;\n if (!searchFilterElements.some((sfe) => sfe.searchOperator !== '=')) {\n const equalsSearchFilterElements = searchFilterElements.filter(\n (sfe) => sfe.searchOperator === '='\n );\n if (!!equalsSearchFilterElements.length) {\n const catalogObject = catalogObjects.find(\n (co) => co.catalogObjectName === item.catalogReturnObject\n );\n const coProperties = catalogObject?.properties || [];\n if (!!coProperties.length) {\n equalsSearchFilterElements.forEach((esfe) => {\n if (!shouldSearch) {\n return;\n }\n const matchingProperty = coProperties.find(\n (cop) =>\n cop.name?.toLowerCase() === esfe.searchField?.toLowerCase()\n );\n\n if (matchingProperty?.type) {\n let compareNumber = true;\n let parsedValue = esfe.searchValue;\n switch (matchingProperty.type) {\n case 'int':\n const intRegex = /[^0-9]/;\n if (intRegex.test(esfe.searchValue)) {\n parsedValue = NaN;\n } else {\n parsedValue = parseInt(esfe.searchValue);\n }\n break;\n case 'double':\n case 'decimal':\n case 'float':\n const floatRegex = /[^0-9.]/;\n if (floatRegex.test(esfe.searchValue)) {\n parsedValue = NaN;\n } else {\n parsedValue = parseFloat(esfe.searchValue);\n }\n break;\n // Add additional handling for different types below\n default:\n compareNumber = false;\n break;\n }\n if (compareNumber && isNaN(parsedValue)) {\n shouldSearch = false;\n }\n }\n });\n }\n }\n }\n if (shouldSearch && executeQueryAdHoc) {\n const data = { data: searchObject };\n promiseIndexMap[promises.length] = index;\n promises.push(executeQueryAdHoc(data, item.apiMethodId));\n }\n list.push({ queryData: null, searchItem: item });\n });\n Promise.all(promises.map((p) => p.catch((e) => e))).then((responses) => {\n responses.forEach((response, i) => {\n const index = promiseIndexMap[i];\n if (response.status === 200) {\n const querySearchObj = list[index];\n querySearchObj.queryData = response.data;\n } else if (!response.status) {\n // handle response error\n const querySearchObj = list[index];\n console.error(\n `Retrieval Error Occured for ${querySearchObj?.searchItem?.catalogReturnObject}`\n );\n }\n });\n let matchingItem = list.find(\n (item) =>\n item?.searchItem?.apiMethodInstance?.apiMethodInstanceId ===\n apiMethodInstanceId && item?.queryData?.pageList?.length === 1\n );\n\n // Fallback to first item with single entry\n if (!matchingItem) {\n matchingItem = list.find(\n (item) => item?.queryData?.pageList?.length === 1\n );\n }\n\n if (matchingItem) {\n const querySearchObj = matchingItem;\n const node = {};\n const searchItem = querySearchObj?.searchItem;\n const identifiers =\n getSearchIdentifiers(\n catalogObjects,\n searchItem.catalogReturnObject\n ) || [];\n node[searchItem.catalogReturnObject] = {\n rows: matchingItem?.queryData?.pageList,\n apiMethodId: searchItem.apiMethodId,\n searchIdentifier: identifiers.toString(),\n treeStructure: searchItem.treeStructure\n };\n\n loadSingleNode(node);\n }\n\n setSearchList(list);\n setLoading(false);\n });\n }, [\n searchItems,\n isAdvancedSearch,\n advancedSearchItems,\n loadSingleNode,\n catalogObjects,\n executeQueryAdHoc,\n getQueryFilterElements,\n getQueryColumnsData,\n getQueryFilterGroups,\n getQuerySearchOperator,\n apiMethodInstanceId\n ]);\n\n return (\n <div className={clsx(classes.root, root)}>\n {loading && <LinearProgress />}\n {searchList?.map((searchObj) => {\n return (\n <div\n key={searchObj.searchItem.catalogReturnObject}\n className={classes.searchCard}\n >\n <AmbientCard\n key={`${searchObj.searchItem.catalogReturnObject}-${searchObj?.queryData?.total}`}\n title={`${getSanitizedName(\n searchObj.searchItem.catalogReturnObject\n )} - ${\n searchObj.error\n ? searchObj.error\n : searchObj?.queryData?.total || '0'\n }`}\n moreMessage='Top 10 results...'\n moreButton='Load More'\n moreButtonExpanded='Minimize'\n more={!!searchObj?.queryData?.pageList?.length}\n header\n fullWidth\n globalToggle\n collapseChildrenWhenExpanded\n toggleGlobalExpanded={!!searchObj?.queryData?.total}\n extendedList={\n <InquirySearchTable\n key={searchObj.searchItem.id}\n queryData={searchObj.queryData || []}\n columns={searchObj.searchItem.columns}\n apiMethodId={searchObj.searchItem.apiMethodId}\n searchFilterElements={\n searchObj.searchItem.searchFilterElements\n }\n searchFilterGroups={searchObj.searchItem.searchFilterGroups}\n catalogReturnObject={searchObj.searchItem.catalogReturnObject}\n setSelectedSearchRows={setSelectedSearchRows}\n catalogObjects={catalogObjects}\n treeStructure={searchObj.searchItem.treeStructure}\n associatedInquiryTree={\n searchObj.searchItem.associatedInquiryTree || null\n }\n onRowDoubleClick={onRowDoubleClick}\n isAdvancedSearch={isAdvancedSearch}\n executeQuery={executeQueryAdHoc}\n queryColumnsData={searchObj.searchItem.queryColumnsData}\n />\n }\n >\n {!!searchObj?.queryData?.pageList?.length && (\n <InquirySearchTable\n key={searchObj.searchItem.id}\n queryData={searchObj.queryData || []}\n columns={searchObj.searchItem.columns}\n apiMethodId={searchObj.searchItem.apiMethodId}\n searchFilterElements={\n searchObj.searchItem.searchFilterElements\n }\n searchFilterGroups={searchObj.searchItem.searchFilterGroups}\n catalogReturnObject={searchObj.searchItem.catalogReturnObject}\n setSelectedSearchRows={setSelectedSearchRows}\n catalogObjects={catalogObjects}\n treeStructure={searchObj.searchItem.treeStructure}\n associatedInquiryTree={\n searchObj.searchItem.associatedInquiryTree || null\n }\n onRowDoubleClick={onRowDoubleClick}\n topResultsOnly={true}\n topResultsSize={10}\n isAdvancedSearch={isAdvancedSearch}\n executeQuery={executeQueryAdHoc}\n queryColumnsData={searchObj.searchItem.queryColumnsData}\n />\n )}\n </AmbientCard>\n </div>\n );\n })}\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InquirySearchContainer-BnHwUWFC.js","names":["useStyles","uuid","useStyles","Form","element","useStyles"],"sources":["../src/inquiry/search/InquiryAdvancedSearchForm.jsx","../src/inquiry/search/InquiryAdvancedSearch.jsx","../src/inquiry/search/InquirySearchDatasource.js","../src/inquiry/search/InquirySearchTable.jsx","../src/inquiry/search/InquirySearchContainer.jsx"],"sourcesContent":["import React, { useMemo, useCallback, useEffect } from 'react';\nimport { makeStyles, Divider, Typography } from '@material-ui/core';\nimport { FluentTextFieldAutoComplete } from '../../UI/inputs/textField/FluentTextFieldAutoComplete';\nimport { SearchOperators } from '../../models/SearchOperator.ts';\nimport clsx from 'clsx';\nimport { v4 as uuid } from 'uuid';\nimport { PropertyTypeEnum } from '../../enums/propertyTypeEnums.ts';\nimport { PropertyField } from '../../UI/property/PropertyFields';\nimport { LookupTypeEnums } from '../../enums/unitySystemEnums.ts';\nimport { csvStrToArrayOfObjects } from '../../utilities/input/SelectUtilities';\nimport { useForm } from 'react-final-form';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1),\n overflowX: 'auto'\n },\n fieldRow: { display: 'flex', alignItems: 'center' },\n dividerContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%'\n },\n divider: { width: '100%', marginTop: theme.spacing(1) },\n autocompleteRoot: {\n width: '38%',\n marginRight: theme.spacing(1)\n }\n}));\n\nexport const InquiryAdvancedSearchForm = (props) => {\n const {\n advancedSearchFields,\n selectedSearchOperators,\n setSelectedSearchOperators,\n catalogProperties,\n entityType,\n lookupPropertyNames,\n classes: classProps,\n executeQueryWithParameters,\n setForm\n } = props;\n const { root } = classProps || {};\n const classes = useStyles();\n\n const form = useForm();\n\n const handleSearchOperatorChange = useCallback(\n (value, fieldName) => {\n if (fieldName) {\n let updatedSelectedSearchOps = {};\n if (selectedSearchOperators) {\n updatedSelectedSearchOps = { ...selectedSearchOperators };\n }\n updatedSelectedSearchOps[fieldName] = value;\n setSelectedSearchOperators(updatedSelectedSearchOps);\n }\n },\n [selectedSearchOperators, setSelectedSearchOperators]\n );\n\n const getPropertyWidgetType = (type, useLookup) => {\n if (!type) {\n return null;\n }\n let propertyWidgetType = '';\n switch (type) {\n case PropertyTypeEnum.Int:\n case PropertyTypeEnum.Long:\n propertyWidgetType = 'IntegerWidget';\n break;\n case PropertyTypeEnum.DateTime:\n propertyWidgetType = 'DateTimeWidget';\n break;\n case PropertyTypeEnum.Boolean:\n propertyWidgetType = 'BooleanWidget';\n break;\n default:\n propertyWidgetType = 'TextWidget';\n }\n\n if (\n useLookup === LookupTypeEnums.Api ||\n useLookup === LookupTypeEnums.Csv\n ) {\n propertyWidgetType = 'AutoCompleteWidget';\n }\n\n return propertyWidgetType;\n };\n\n const getPropertyTypeSearchOperators = useCallback((type) => {\n if (!type) {\n return [];\n }\n switch (type) {\n case PropertyTypeEnum.Boolean:\n return SearchOperators.filter((operator) => operator.value === '=');\n default:\n return SearchOperators;\n }\n }, []);\n\n const fieldRows = useMemo(() => {\n if (!advancedSearchFields || !catalogProperties) {\n return [];\n }\n const keys = Object.keys(advancedSearchFields);\n\n const arrayOfFields = keys.reduce((list, key) => {\n const groupedItems = advancedSearchFields[key];\n let groupHeader = '';\n const foundGroupItem = groupedItems.find((item) => !!item.groupHeader);\n if (foundGroupItem) {\n groupHeader = foundGroupItem.groupHeader;\n }\n list.push({ groupHeader: groupHeader, isDivider: true, id: uuid() });\n groupedItems.forEach(async (item) => {\n const foundProperty = catalogProperties.find(\n (property) => property.name === item.name\n );\n const propertyWidgetType = getPropertyWidgetType(\n foundProperty?.type,\n foundProperty?.extendedProperties?.useLookup\n );\n let apiLookupOptions = null;\n if (\n !item.searchable &&\n !foundProperty?.extendedProperties?.searchable\n ) {\n return;\n }\n if (\n lookupPropertyNames.includes(foundProperty?.name) &&\n foundProperty?.extendedProperties?.useLookup === LookupTypeEnums.Api\n ) {\n // TODO: handle getting lookup data with api call\n // const response = await executeQueryWithParameters(\n // 'aa5d1fe1-1128-4d08-9ddb-58ad4fcf00e4'\n // );\n // console.log(response?.data);\n }\n list.push({\n ...item,\n isDivider: false,\n type: foundProperty?.type,\n propertyWidgetType: propertyWidgetType,\n useLookup: foundProperty?.extendedProperties?.useLookup,\n lookup: foundProperty?.extendedProperties?.lookup,\n apiLookupOptions: apiLookupOptions\n });\n });\n return list;\n }, []);\n return arrayOfFields;\n }, [advancedSearchFields, catalogProperties, lookupPropertyNames]);\n\n const getPropertyFields = useCallback(\n (config) => {\n const searchOperator = selectedSearchOperators\n ? selectedSearchOperators[config?.name]?.value\n : null;\n let options = [];\n if (config?.useLookup === LookupTypeEnums.Csv) {\n options = csvStrToArrayOfObjects(config?.lookup);\n }\n if (searchOperator === 'BETWEEN') {\n return (\n <div style={{ display: 'block', width: '100%' }}>\n <PropertyField\n propertyType={entityType}\n property={{\n key: config?.name,\n label: `${config?.columnName} (From)`,\n type: config?.propertyWidgetType,\n options: options || [],\n valueName: 'value'\n }}\n />\n <PropertyField\n propertyType={entityType}\n property={{\n key: `${config?.name}:between`,\n label: `${config?.columnName} (To)`,\n type: config?.propertyWidgetType,\n options: options || [],\n valueName: 'value'\n }}\n />\n </div>\n );\n }\n\n return (\n <PropertyField\n propertyType={entityType}\n property={{\n key: config?.name,\n label: config?.columnName,\n type: config?.propertyWidgetType,\n options: options || [],\n valueName: 'value'\n }}\n />\n );\n },\n [entityType, selectedSearchOperators]\n );\n\n const fieldComponents = useMemo(() => {\n if (!fieldRows || !fieldRows.length) {\n return null;\n }\n return fieldRows.map((config) => {\n return (\n <div key={config?.id}>\n {!config?.isDivider && (\n <div className={classes.fieldRow}>\n <FluentTextFieldAutoComplete\n id='udpRecord-InquiryAdvancedSearchForm-Text'\n udprecordid='udpRecord-InquiryAdvancedSearchForm-Text'\n label='Operator'\n name='searchOperator'\n variant='outlined'\n margin='dense'\n size='small'\n options={getPropertyTypeSearchOperators(config?.type) || []}\n optionKey='label'\n value={\n (selectedSearchOperators &&\n selectedSearchOperators[config?.name]) ||\n ''\n }\n onChange={(value) =>\n handleSearchOperatorChange(value, config?.name)\n }\n classes={{ autocompleteRoot: classes.autocompleteRoot }}\n />\n {getPropertyFields(config)}\n </div>\n )}\n {config?.isDivider && (\n <div className={classes.dividerContainer}>\n <div className={classes.divider}>\n <Divider orientation='horizontal' />\n </div>\n {config?.groupHeader && (\n <div\n style={{\n marginRight: 8,\n marginLeft: 8,\n textAlign: 'center',\n whiteSpace: 'nowrap'\n }}\n >\n <Typography variant='caption'>\n {config?.groupHeader}\n </Typography>\n </div>\n )}\n <div className={classes.divider}>\n <Divider orientation='horizontal' />\n </div>\n </div>\n )}\n </div>\n );\n });\n }, [\n fieldRows,\n classes,\n handleSearchOperatorChange,\n selectedSearchOperators,\n getPropertyTypeSearchOperators,\n getPropertyFields\n ]);\n\n useEffect(() => {\n if (form) {\n setForm(form);\n }\n }, [form, setForm]);\n\n return <div className={clsx(classes.root, root)}>{fieldComponents}</div>;\n};\n","import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport { makeStyles, Divider, Typography } from '@material-ui/core';\nimport { SubmitButton } from '../../utilities/form/SubmitButton.tsx';\nimport { Form } from '../../utilities/form/Form.tsx';\nimport { FormButtons } from '../../utilities/form/FormButtons.tsx';\nimport { FluentTextFieldAutoComplete } from '../../UI/inputs/textField/FluentTextFieldAutoComplete';\nimport { orderBy } from 'lodash';\nimport { InquiryAdvancedSearchForm } from './InquiryAdvancedSearchForm';\nimport { LookupTypeEnums } from '../../enums/unitySystemEnums.ts';\nimport { SearchOperators } from '../../models/SearchOperator.ts';\nimport { FluentIconButton } from '../../UI/inputs/buttons/FluentIconButton';\nimport { FluentButton } from '../../UI/inputs/buttons/FluentButton';\nimport { ClearIcon } from '@fluentui/react-icons';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities.js';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n entitySelect: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n fieldsRoot: {\n height: (props) => 'calc(100vh - 288px)'\n },\n title: {\n display: 'flex',\n justifyContent: 'space-between',\n margin: theme.spacing(1)\n },\n buttonWrapper: {\n textAlign: 'center'\n },\n button: {\n textTransform: 'none',\n padding: 0,\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0)'\n },\n color: theme.palette.secondary\n }\n}));\n\nexport const InquiryAdvancedSearch = (props) => {\n const {\n entityList,\n onSubmit,\n currentNodeCatalogReturnObject,\n catalogObjects,\n entityValue,\n setEntityValue,\n changeSideBarView,\n tree,\n executeQueryWithParameters\n } = props;\n const classes = useStyles(props);\n\n const [initialSelectedSearchOperators, setInitialSelectedSearchOperators] =\n useState(null);\n const [selectedSearchOperators, setSelectedSearchOperators] = useState(null);\n const [form, setForm] = useState(null);\n\n const entityTree = useMemo(() => {\n if (!entityValue || !tree) {\n return null;\n }\n const matchingEntityTree = tree.treeStructure.find(\n (node) => node.properties.catalogReturnObject === entityValue.value\n );\n let nodeTree = tree;\n if (matchingEntityTree?.properties?.associatedInquiryTree) {\n nodeTree = matchingEntityTree?.properties?.associatedInquiryTree;\n }\n return nodeTree;\n }, [tree, entityValue]);\n\n const catalogProperties = useMemo(() => {\n if (!entityValue || !catalogObjects) {\n return [];\n }\n const foundCatalogObject = catalogObjects.find(\n (catalog) => catalog.catalogObjectName === entityValue.value\n );\n return foundCatalogObject?.properties || [];\n }, [catalogObjects, entityValue]);\n\n const advancedSearchFields = useMemo(() => {\n if (!entityTree) {\n return null;\n }\n const parentNode = entityTree.treeStructure.find((node) => !node.parentId);\n const advancedSearchConfiguration =\n parentNode?.properties?.searchConfiguration?.filter(\n (config) => config.advancedSearch\n );\n advancedSearchConfiguration?.forEach(\n (config) =>\n (config.advancedSearch = Number.parseFloat(config.advancedSearch))\n );\n const orderedSearchConfiguration = orderBy(\n advancedSearchConfiguration,\n ['advancedSearch'],\n ['asc']\n );\n\n const groupedAndOrderdFields = {};\n\n orderedSearchConfiguration.forEach((config) => {\n const wholeInt = Math.floor(config.advancedSearch);\n if (!groupedAndOrderdFields[wholeInt]) {\n groupedAndOrderdFields[wholeInt] = [config];\n } else {\n groupedAndOrderdFields[wholeInt].push(config);\n }\n });\n return groupedAndOrderdFields;\n }, [entityTree]);\n\n const asCatalogLookupPropertyNames = useMemo(() => {\n if (!entityTree) {\n return [];\n }\n const parentNode = entityTree.treeStructure.find((node) => !node.parentId);\n const advancedSearchPropertyName =\n parentNode?.properties?.searchConfiguration\n ?.filter((config) => config.advancedSearch)\n .map((asConfig) => asConfig.name);\n const filteredProperties = catalogProperties.filter((property) =>\n advancedSearchPropertyName?.includes(property.name)\n );\n const lookupPropertyNames = [];\n filteredProperties.forEach((property) => {\n if (\n property?.extendedProperties?.useLookup !== LookupTypeEnums.No_Lookup ||\n !property?.extendedProperties?.useLookup\n ) {\n lookupPropertyNames.push(property.name);\n }\n });\n return lookupPropertyNames;\n }, [catalogProperties, entityTree]);\n\n const handleEntityChange = (value) => {\n setEntityValue(value);\n };\n\n const handleOnSubmit = useCallback(\n (values) => {\n if (onSubmit) {\n onSubmit(\n values,\n selectedSearchOperators,\n entityValue?.value,\n asCatalogLookupPropertyNames\n );\n }\n },\n [\n onSubmit,\n selectedSearchOperators,\n entityValue,\n asCatalogLookupPropertyNames\n ]\n );\n\n const handleClearFilter = useCallback(() => {\n if (form) {\n form.reset();\n }\n setSelectedSearchOperators(initialSelectedSearchOperators);\n }, [initialSelectedSearchOperators, form]);\n\n useEffect(() => {\n if (entityList?.length) {\n const foundEntity = entityList.find(\n (entity) => entity.value === currentNodeCatalogReturnObject\n );\n if (foundEntity) {\n setEntityValue(foundEntity);\n }\n }\n }, [entityList, currentNodeCatalogReturnObject, setEntityValue]);\n\n useEffect(() => {\n if (advancedSearchFields) {\n const mergedFields = [].concat.apply(\n [],\n Object.values(advancedSearchFields)\n );\n const initialSearchOperators = mergedFields.reduce((operators, field) => {\n if (field.advancedSearchOperator) {\n const foundOperator = SearchOperators.find(\n (op) => op.value === field.advancedSearchOperator\n );\n operators[field.name] = foundOperator ?? SearchOperators[0];\n } else {\n operators[field.name] = SearchOperators[0];\n }\n return operators;\n }, {});\n\n setInitialSelectedSearchOperators(initialSearchOperators);\n setSelectedSearchOperators(initialSearchOperators);\n }\n }, [advancedSearchFields]);\n\n return (\n <div className={classes.root}>\n <div>\n <Divider />\n </div>\n <div className={classes.title}>\n <Typography variant='subtitle1'>Advanced Search</Typography>\n <FluentIconButton\n id='udpRecord-InquiryAdvancedSearch-ClearIcon'\n udprecordid='udpRecord-InquiryAdvancedSearch-ClearIcon'\n icon={ClearIcon}\n onClick={() => changeSideBarView(0)}\n />\n </div>\n <div className={classes.entitySelect}>\n <FluentTextFieldAutoComplete\n id='udpRecord-InquiryAdvancedSearch-TextField'\n udprecordid='udpRecord-InquiryAdvancedSearch-TextField'\n label='Entity'\n variant='outlined'\n margin='normal'\n size='small'\n fullWidth\n options={entityList}\n optionKey='label'\n value={entityValue}\n onChange={handleEntityChange}\n />\n </div>\n <Form onSubmit={handleOnSubmit}>\n <InquiryAdvancedSearchForm\n advancedSearchFields={advancedSearchFields}\n selectedSearchOperators={selectedSearchOperators}\n setSelectedSearchOperators={setSelectedSearchOperators}\n catalogProperties={catalogProperties}\n entityType={getSanitizedName(entityValue?.value)}\n lookupPropertyNames={asCatalogLookupPropertyNames}\n classes={{ root: classes.fieldsRoot }}\n executeQueryWithParameters={executeQueryWithParameters}\n setForm={setForm}\n />\n <div className={classes.submitWrapper}>\n <div className={classes.buttonWrapper}>\n <FluentButton\n id='udpRecord-InquiryAdvancedSearch-ClearFilter'\n udprecordid='udpRecord-InquiryAdvancedSearch-ClearFilter'\n onClick={handleClearFilter}\n className={classes.button}\n >\n <Typography variant='subtitle1'>Clear Filter</Typography>\n </FluentButton>\n <FormButtons>\n <SubmitButton\n id='udpRecord-InquiryAdvancedSearch-Search'\n udprecordid='udpRecord-InquiryAdvancedSearch-Search'\n variant='contained'\n color='primary'\n disablePristine={false}\n disabled={!entityValue}\n fullWidth\n style={{ marginRight: 8, marginLeft: 8 }}\n >\n Search\n </SubmitButton>\n </FormButtons>\n </div>\n </div>\n </Form>\n </div>\n );\n};\n","import { getSearchObject } from '../../utilities/search/SearchUtilities';\nimport { FilterOperators } from '../../models/SearchOperator.ts';\nimport {\n SearchGroupingType,\n SearchSortDirection,\n LogicalSearchOperatorEnums\n} from '../../enums/unitySystemEnums.ts';\n\nexport const InquirySearchDatasource = (\n queryData,\n apiMethodId,\n searchFilterElements,\n logicalSearchOperator = LogicalSearchOperatorEnums.And,\n executeQuery,\n searchFilterGroups\n) => {\n return {\n async getRows(params) {\n const {\n startRow,\n endRow,\n rowGroupCols,\n groupKeys,\n valueCols,\n filterModel,\n sortModel\n } = params.request;\n const page = endRow / 20;\n const searchObject = getSearchObject(\n searchFilterElements,\n page,\n null,\n false,\n logicalSearchOperator,\n searchFilterGroups\n );\n\n // handle server-side sorting on ag-grid\n if (sortModel.length) {\n const orderElements = searchObject.orderElements;\n sortModel.forEach((sortItem) => {\n const formattedPropertyName =\n sortItem.colId.charAt(0).toUpperCase() + sortItem.colId.slice(1);\n\n const element = orderElements.find(\n (element) => element.sortColumn === formattedPropertyName\n );\n if (element) {\n element.sortDirection = sortItem.sort.toUpperCase();\n } else {\n orderElements.push({\n sortColumn: formattedPropertyName,\n sortDirection: sortItem.sort.toUpperCase()\n });\n }\n });\n }\n\n // handle server-side filtering on ag-grid\n if (Object.keys(filterModel).length) {\n const filterElements = searchObject.filterElements;\n Object.keys(filterModel).forEach((key) => {\n const filterItem = filterModel[key];\n const formattedPropertyName =\n key.charAt(0).toUpperCase() + key.slice(1);\n\n const element = filterElements.find(\n (element) => element.searchField === formattedPropertyName\n );\n if (element) {\n element.searchValue = filterItem.filter;\n element.searchOperator = FilterOperators[filterItem.type];\n } else {\n filterElements.push({\n searchField: formattedPropertyName,\n searchValue: filterItem.filter,\n searchOperator: FilterOperators[filterItem.type]\n });\n }\n });\n }\n\n // construct search for initial grouping\n if (rowGroupCols.length && !groupKeys.length) {\n const formattedPropertyName =\n rowGroupCols[0].field.charAt(0).toUpperCase() +\n rowGroupCols[0].field.slice(1);\n\n searchObject.groupingType = SearchGroupingType.Distinct;\n if (!searchObject.groupProperty.includes(formattedPropertyName)) {\n searchObject.groupProperty.push(formattedPropertyName);\n\n const orderElements = searchObject.orderElements;\n const element = orderElements.find(\n (element) => element.sortColumn === formattedPropertyName\n );\n if (!element) {\n orderElements.push({\n sortColumn: formattedPropertyName,\n sortDirection: SearchSortDirection.Asc\n });\n }\n }\n }\n\n // construct the filter for grouped columns\n if (groupKeys.length) {\n // construct search for last grouped element\n if (groupKeys.length === rowGroupCols.length) {\n searchObject.groupingType = '';\n const filterElements = searchObject.filterElements;\n groupKeys.forEach((key, index) => {\n const rowGroupCol = rowGroupCols[index];\n const formattedPropertyName =\n rowGroupCol.field.charAt(0).toUpperCase() +\n rowGroupCol.field.slice(1);\n\n const element = filterElements.find(\n (element) => element.searchField === formattedPropertyName\n );\n if (element) {\n element.searchValue = key;\n element.searchOperator = '=';\n } else {\n filterElements.push({\n searchField: formattedPropertyName,\n searchValue: key,\n searchOperator: '='\n });\n }\n });\n } else {\n // construct search for the next grouped element\n groupKeys.forEach((key, index) => {\n const formattedPropertyNameForSearch =\n rowGroupCols[index].field.charAt(0).toUpperCase() +\n rowGroupCols[index].field.slice(1);\n\n searchObject.filterElements.push({\n searchField: formattedPropertyNameForSearch,\n searchValue: key,\n searchOperator: '='\n });\n });\n\n searchObject.groupingType = SearchGroupingType.Distinct;\n const searchIndex = groupKeys.length;\n const rowGroupCol = rowGroupCols[searchIndex];\n const formattedPropertyName =\n rowGroupCol.field.charAt(0).toUpperCase() +\n rowGroupCol.field.slice(1);\n\n if (!searchObject.groupProperty.includes(formattedPropertyName)) {\n searchObject.groupProperty.push(formattedPropertyName);\n\n const orderElements = searchObject.orderElements;\n const element = orderElements.find(\n (element) => element.sortColumn === formattedPropertyName\n );\n if (!element) {\n orderElements.push({\n sortColumn: formattedPropertyName,\n sortDirection: SearchSortDirection.Asc\n });\n }\n }\n }\n }\n\n if (\n !startRow &&\n rowGroupCols.length === 0 &&\n !sortModel.length &&\n !Object.keys(filterModel).length &&\n !groupKeys.length &&\n queryData\n ) {\n if (queryData.pageList && queryData.pageList) {\n params.successCallback(queryData.pageList, queryData.total);\n } else {\n // TODO: add an overlay to display no rows\n params.successCallback([], 0);\n }\n } else {\n let response = null;\n if (executeQuery) {\n const data = { data: searchObject };\n response = await executeQuery(data, apiMethodId);\n }\n const rowData = response?.data;\n if (rowData) {\n if (rowData?.pageList?.length > 0) {\n params.successCallback(rowData.pageList, rowData.total);\n } else {\n params.successCallback([], 0);\n }\n } else {\n params.successCallback([], 0);\n }\n }\n }\n };\n};\n","import React, { useState, useEffect, useMemo, useCallback } from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useAgGridApi, AgTable } from '../../utilities/aggrid/AgTable.tsx';\nimport {\n useGridFormat,\n useExport\n} from '../../utilities/aggrid/GridFunctions.js';\nimport { PrimaryActionHeader } from '../../UI/utilityDisplay/utilityHeader/PrimaryActionHeader';\nimport { ServerSideRowModelModule } from '@ag-grid-enterprise/server-side-row-model';\nimport { camelToPascalCaseWithSpace } from '../../utilities/input/StringUtilities';\nimport { InquirySearchDatasource } from './InquirySearchDatasource';\nimport { getSearchIdentifiers } from '../../utilities/search/SearchUtilities';\nimport { LogicalSearchOperatorEnums } from '../../enums/unitySystemEnums.ts';\nimport { sortBy } from 'lodash';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: (props) => {\n const rowCount =\n props?.queryData?.pageList?.length > 10\n ? 10\n : props?.queryData?.pageList?.length ?? 0;\n const topResultsOnlyHeight = rowCount * 48 + 60;\n const moreResultsHeight = rowCount * 48 + 116;\n return props.topResultsOnly ? topResultsOnlyHeight : moreResultsHeight;\n }\n }\n}));\n\nexport const InquirySearchTable = (props) => {\n const {\n apiMethodId,\n associatedInquiryTree,\n catalogReturnObject,\n catalogObjects,\n columns,\n executeQuery,\n queryColumnsData,\n isAdvancedSearch,\n onRowDoubleClick,\n queryData,\n searchFilterElements,\n searchFilterGroups,\n setSelectedSearchRows,\n treeStructure,\n topResultsOnly = false,\n topResultsSize = 50\n } = props;\n\n const classes = useStyles(props);\n const { gridApi, onGridReady } = useAgGridApi();\n const [agGridOptions] = useState({});\n const [gridFormat] = useGridFormat();\n const [exportGrid] = useExport();\n\n const searchIdentifier = useMemo(() => {\n const identifiers =\n getSearchIdentifiers(catalogObjects, catalogReturnObject) || [];\n return identifiers.toString();\n }, [catalogObjects, catalogReturnObject]);\n\n const columnDefs = useMemo(() => {\n let commonCols = columns.map((column) => {\n let matchingColumnIndex = null;\n const matchingColumn = queryColumnsData.find((c, index) => {\n if (c.name === column?.name) {\n matchingColumnIndex = index;\n }\n return c.name === column?.name;\n });\n\n let def = {\n headerName: column.alias || camelToPascalCaseWithSpace(column.name),\n field: column.name\n // cellStyle: (params) => ValidateCellStylesByConditionals(params, column)\n };\n if (matchingColumn) {\n def = {\n headerName:\n matchingColumn.alias ||\n camelToPascalCaseWithSpace(matchingColumn.name),\n field: matchingColumn.name\n };\n }\n\n if (column?.extendedProperties?.searchable) {\n def = {\n ...def,\n filter: 'agTextColumnFilter',\n filterParams: {\n suppressAndOrCondition: true,\n filterOptions: [\n 'equals',\n 'contains',\n 'notEqual',\n 'greaterThan',\n 'lessThan',\n 'greaterThanOrEqual',\n 'lessThanOrEqual'\n ]\n },\n enableRowGroup: true\n };\n }\n if (column?.extendedProperties?.orderable) {\n def = {\n ...def,\n sortable: true\n };\n }\n def.hide = !matchingColumn;\n def.index = matchingColumnIndex;\n return def;\n });\n\n const currentNode = treeStructure.find(\n (node) => node.properties?.catalogReturnObject === catalogReturnObject\n );\n const searchConfiguration =\n currentNode?.properties?.searchConfiguration || null;\n let requiresOrdering = false;\n if (searchConfiguration) {\n requiresOrdering = searchConfiguration.some(\n (config) => !!config.results.trim()\n );\n }\n if (requiresOrdering) {\n // Sort columns using the searchConfiguration results\n const searchConfigWithResults = searchConfiguration.filter(\n (config) => !!config.results\n );\n commonCols.forEach((col) => {\n col.index = null;\n const foundSearchConfig = searchConfigWithResults.find(\n (config) => config.name === col.field\n );\n if (foundSearchConfig) {\n col.index = parseFloat(foundSearchConfig.results);\n }\n });\n }\n // Sort columns\n commonCols = sortBy(commonCols, (col) => col.index);\n return commonCols;\n }, [columns, queryColumnsData, treeStructure, catalogReturnObject]);\n\n const defaultColDef = useMemo(\n () => ({\n resizable: true,\n editable: false,\n // filter: true,\n enableValue: true,\n allowedAggFuncs: ['sum', 'min', 'max', 'count', 'avg', 'first', 'last']\n }),\n []\n );\n\n const rowData = useMemo(() => {\n if (!queryData) return [];\n return queryData?.pageList?.slice(0, topResultsSize);\n }, [queryData, topResultsSize]);\n\n const handleSelectionChanged = useCallback(() => {\n const selectedRows = gridApi.getSelectedRows();\n setSelectedSearchRows(\n catalogReturnObject,\n selectedRows,\n searchIdentifier,\n apiMethodId,\n treeStructure,\n associatedInquiryTree\n );\n }, [\n gridApi,\n catalogReturnObject,\n setSelectedSearchRows,\n searchIdentifier,\n apiMethodId,\n treeStructure,\n associatedInquiryTree\n ]);\n\n const handleRowDoubleClicked = useCallback(\n (event) => {\n if (!gridApi) return;\n if (onRowDoubleClick) {\n onRowDoubleClick(event.node.data, catalogReturnObject);\n }\n },\n [gridApi, onRowDoubleClick, catalogReturnObject]\n );\n\n useEffect(() => {\n if (!gridApi) return;\n gridApi.sizeColumnsToFit();\n let datasource = InquirySearchDatasource(\n queryData,\n apiMethodId,\n searchFilterElements,\n isAdvancedSearch\n ? LogicalSearchOperatorEnums.And\n : LogicalSearchOperatorEnums.Or,\n executeQuery,\n searchFilterGroups\n );\n // eslint-disable-next-line no-unused-expressions\n gridApi?.setServerSideDatasource(datasource);\n }, [\n gridApi,\n apiMethodId,\n searchFilterElements,\n queryData,\n isAdvancedSearch,\n executeQuery,\n searchFilterGroups\n ]);\n\n return (\n <div>\n {!topResultsOnly && (\n <>\n <PrimaryActionHeader\n hidePAB={true}\n // LAA UNT-2624: remove whitespace caused by the action row\n hideActionRow={true}\n expandAllItems={() => gridFormat(gridApi, 'expand')}\n collapse={() => gridFormat(gridApi, 'collapse')}\n resizeGrid={() => gridFormat(gridApi, 'resize')}\n exportGrid={() => exportGrid(gridApi, 'csv')}\n grid\n // value={value}\n // altInputs={value === 0 && childrenTabSwitcher}\n />\n <AgTable\n className={classes.root}\n modules={[ServerSideRowModelModule]}\n rowModelType={'serverSide'}\n serverSideStoreType={'partial'}\n pagination={true}\n paginationPageSize={20}\n cacheOverflowSize={2}\n maxConcurrentDatasourceRequests={1}\n cacheBlockSize={20}\n onGridReady={onGridReady}\n columnDefs={columnDefs}\n defaultColDef={defaultColDef}\n // getRowNodeId={row => row.channelConfigurationID}\n onRowDoubleClicked={handleRowDoubleClicked}\n rowSelection='multiple'\n rowMultiSelectWithClick={true}\n onSelectionChanged={handleSelectionChanged}\n // animateRows={true}\n api={gridApi}\n dynamicSizing\n {...agGridOptions}\n />\n </>\n )}\n {topResultsOnly && (\n <AgTable\n className={classes.root}\n rowData={rowData || []}\n onGridReady={onGridReady}\n columnDefs={columnDefs}\n defaultColDef={defaultColDef}\n // getRowNodeId={row => row.channelConfigurationID}\n onRowDoubleClicked={handleRowDoubleClicked}\n rowSelection='multiple'\n rowMultiSelectWithClick={true}\n onSelectionChanged={handleSelectionChanged}\n animateRows={true}\n api={gridApi}\n dynamicSizing\n {...agGridOptions}\n />\n )}\n </div>\n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { makeStyles, LinearProgress } from '@material-ui/core';\nimport {\n getSearchObject,\n getSearchIdentifiers\n} from '../../utilities/search/SearchUtilities';\nimport { AmbientCard } from '../../UI/surfaces/cards/AmbientCard';\nimport { InquirySearchTable } from './InquirySearchTable';\nimport clsx from 'clsx';\nimport { LogicalSearchOperatorEnums } from '../../enums/unitySystemEnums.ts';\nimport { useSearchFilterParamsMap } from '../../hooks/useSearchFilterParamsMap';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n overflowX: 'auto'\n },\n searchCard: {\n paddingBottom: theme.spacing(2)\n },\n emptyStateWrapper: {\n display: 'flex',\n justifyContent: 'center',\n paddingTop: '25vh'\n }\n}));\n\nexport const InquirySearchContainer = (props) => {\n const {\n advancedSearchItems,\n catalogObjects,\n classes: classProps,\n executeQueryAdHoc,\n isAdvancedSearch,\n loadSingleNode,\n onRowDoubleClick,\n searchItems,\n setSelectedSearchRows,\n apiMethodInstanceId\n } = props;\n const { root } = classProps || {};\n const classes = useStyles();\n const [searchList, setSearchList] = useState(null);\n const [loading, setLoading] = useState(false);\n const {\n getQueryFilterElements,\n getQueryFilterGroups,\n getQuerySearchOperator\n } = useSearchFilterParamsMap();\n\n const getQueryColumnsData = useCallback((apiMethodInstance) => {\n if (!apiMethodInstance) return [];\n let catalogMods = [];\n try {\n const catalogModificationStr = apiMethodInstance.catalogModification;\n const catalogModification = JSON.parse(catalogModificationStr);\n catalogMods = catalogModification;\n } catch {\n console.warn('Error parsing apiMethodInstance catalogModification');\n }\n return catalogMods;\n }, []);\n\n useEffect(() => {\n if (!catalogObjects) {\n setLoading(true);\n }\n if (!searchItems || !catalogObjects?.length) return;\n setLoading(true);\n const promises = [];\n let list = [];\n const promiseIndexMap = {};\n const itemsList = !isAdvancedSearch\n ? searchItems\n : advancedSearchItems || [];\n itemsList.forEach((item, index) => {\n //Get filter elements, filter groups, and operator from query\n let filterElementsFromQuery = getQueryFilterElements(\n item.apiMethodInstance\n ); //will this handle groups? if there is group within data builder\n let filterGroups = getQueryFilterGroups(item.apiMethodInstance);\n const logicalOperatorFromQuery = getQuerySearchOperator(\n item.apiMethodInstance\n );\n // Assigning queryColumnsData object here to know which columns are hidden based on\n // data browser query\n item.queryColumnsData = getQueryColumnsData(item.apiMethodInstance);\n\n //create new outer filter group to contain all filters in data builder query\n let outerQueryGroupId = 0;\n let queryOuterGroup = null;\n if (!!filterElementsFromQuery.length) {\n outerQueryGroupId = filterGroups.length + 1;\n queryOuterGroup = {\n groupId: outerQueryGroupId,\n logicalSearchOperator: logicalOperatorFromQuery\n };\n }\n\n //create new outer filter group to contain all filters from tree builder\n let outerTreeBuilderGroupId = 0;\n let inquiryOuterGroup = null;\n if (!!item?.searchFilterElements?.length) {\n outerTreeBuilderGroupId = outerQueryGroupId + 1;\n inquiryOuterGroup = {\n groupId: outerTreeBuilderGroupId,\n logicalSearchOperator: isAdvancedSearch\n ? LogicalSearchOperatorEnums.And\n : LogicalSearchOperatorEnums.Or\n };\n }\n\n //make the new outer query group the parent of non parent query groups (top level groups)\n filterGroups = filterGroups.map((group) => {\n if (!group.parentGroupId) {\n group.parentGroupId = outerQueryGroupId;\n }\n return group;\n });\n\n //make the new outer group the group of filter elements with no group (top level filter elements)\n filterElementsFromQuery = filterElementsFromQuery.map((element) => {\n if (!element.groupId) {\n element.groupId = outerQueryGroupId;\n }\n return element;\n });\n\n //add outer tree builder group Id to all tree builder filter elements\n item.searchFilterElements = item.searchFilterElements.map((element) => {\n element.groupId = outerTreeBuilderGroupId;\n return element;\n });\n\n //combine data builder query filters and tree builder filters\n const searchFilterElements = filterElementsFromQuery.concat(\n item.searchFilterElements || []\n );\n\n // Reassigning searchFilterElements to use the data browser filter elements\n // and the searched one\n item.searchFilterElements = searchFilterElements;\n\n //add new outer filter groups to filter group array\n if (!!inquiryOuterGroup) {\n filterGroups.push(inquiryOuterGroup);\n }\n if (!!queryOuterGroup) {\n filterGroups.push(queryOuterGroup);\n }\n\n item.searchFilterGroups = filterGroups;\n\n const searchObject = getSearchObject(\n searchFilterElements,\n 1,\n null,\n false,\n LogicalSearchOperatorEnums.And,\n filterGroups\n );\n let shouldSearch = true;\n if (!searchFilterElements.some((sfe) => sfe.searchOperator !== '=')) {\n const equalsSearchFilterElements = searchFilterElements.filter(\n (sfe) => sfe.searchOperator === '='\n );\n if (!!equalsSearchFilterElements.length) {\n const catalogObject = catalogObjects.find(\n (co) => co.catalogObjectName === item.catalogReturnObject\n );\n const coProperties = catalogObject?.properties || [];\n if (!!coProperties.length) {\n equalsSearchFilterElements.forEach((esfe) => {\n if (!shouldSearch) {\n return;\n }\n const matchingProperty = coProperties.find(\n (cop) =>\n cop.name?.toLowerCase() === esfe.searchField?.toLowerCase()\n );\n\n if (matchingProperty?.type) {\n let compareNumber = true;\n let parsedValue = esfe.searchValue;\n switch (matchingProperty.type) {\n case 'int':\n const intRegex = /[^0-9]/;\n if (intRegex.test(esfe.searchValue)) {\n parsedValue = NaN;\n } else {\n parsedValue = parseInt(esfe.searchValue);\n }\n break;\n case 'double':\n case 'decimal':\n case 'float':\n const floatRegex = /[^0-9.]/;\n if (floatRegex.test(esfe.searchValue)) {\n parsedValue = NaN;\n } else {\n parsedValue = parseFloat(esfe.searchValue);\n }\n break;\n // Add additional handling for different types below\n default:\n compareNumber = false;\n break;\n }\n if (compareNumber && isNaN(parsedValue)) {\n shouldSearch = false;\n }\n }\n });\n }\n }\n }\n if (shouldSearch && executeQueryAdHoc) {\n const data = { data: searchObject };\n promiseIndexMap[promises.length] = index;\n promises.push(executeQueryAdHoc(data, item.apiMethodId));\n }\n list.push({ queryData: null, searchItem: item });\n });\n Promise.all(promises.map((p) => p.catch((e) => e))).then((responses) => {\n responses.forEach((response, i) => {\n const index = promiseIndexMap[i];\n if (response.status === 200) {\n const querySearchObj = list[index];\n querySearchObj.queryData = response.data;\n } else if (!response.status) {\n // handle response error\n const querySearchObj = list[index];\n console.error(\n `Retrieval Error Occured for ${querySearchObj?.searchItem?.catalogReturnObject}`\n );\n }\n });\n let matchingItem = list.find(\n (item) =>\n item?.searchItem?.apiMethodInstance?.apiMethodInstanceId ===\n apiMethodInstanceId && item?.queryData?.pageList?.length === 1\n );\n\n // Fallback to first item with single entry\n if (!matchingItem) {\n matchingItem = list.find(\n (item) => item?.queryData?.pageList?.length === 1\n );\n }\n\n if (matchingItem) {\n const querySearchObj = matchingItem;\n const node = {};\n const searchItem = querySearchObj?.searchItem;\n const identifiers =\n getSearchIdentifiers(\n catalogObjects,\n searchItem.catalogReturnObject\n ) || [];\n node[searchItem.catalogReturnObject] = {\n rows: matchingItem?.queryData?.pageList,\n apiMethodId: searchItem.apiMethodId,\n searchIdentifier: identifiers.toString(),\n treeStructure: searchItem.treeStructure\n };\n\n loadSingleNode(node);\n }\n\n setSearchList(list);\n setLoading(false);\n });\n }, [\n searchItems,\n isAdvancedSearch,\n advancedSearchItems,\n loadSingleNode,\n catalogObjects,\n executeQueryAdHoc,\n getQueryFilterElements,\n getQueryColumnsData,\n getQueryFilterGroups,\n getQuerySearchOperator,\n apiMethodInstanceId\n ]);\n\n return (\n <div className={clsx(classes.root, root)}>\n {loading && <LinearProgress />}\n {searchList?.map((searchObj) => {\n return (\n <div\n key={searchObj.searchItem.catalogReturnObject}\n className={classes.searchCard}\n >\n <AmbientCard\n key={`${searchObj.searchItem.catalogReturnObject}-${searchObj?.queryData?.total}`}\n title={`${getSanitizedName(\n searchObj.searchItem.catalogReturnObject\n )} - ${\n searchObj.error\n ? searchObj.error\n : searchObj?.queryData?.total || '0'\n }`}\n moreMessage='Top 10 results...'\n moreButton='Load More'\n moreButtonExpanded='Minimize'\n more={!!searchObj?.queryData?.pageList?.length}\n header\n fullWidth\n globalToggle\n collapseChildrenWhenExpanded\n toggleGlobalExpanded={!!searchObj?.queryData?.total}\n extendedList={\n <InquirySearchTable\n key={searchObj.searchItem.id}\n queryData={searchObj.queryData || []}\n columns={searchObj.searchItem.columns}\n apiMethodId={searchObj.searchItem.apiMethodId}\n searchFilterElements={\n searchObj.searchItem.searchFilterElements\n }\n searchFilterGroups={searchObj.searchItem.searchFilterGroups}\n catalogReturnObject={searchObj.searchItem.catalogReturnObject}\n setSelectedSearchRows={setSelectedSearchRows}\n catalogObjects={catalogObjects}\n treeStructure={searchObj.searchItem.treeStructure}\n associatedInquiryTree={\n searchObj.searchItem.associatedInquiryTree || null\n }\n onRowDoubleClick={onRowDoubleClick}\n isAdvancedSearch={isAdvancedSearch}\n executeQuery={executeQueryAdHoc}\n queryColumnsData={searchObj.searchItem.queryColumnsData}\n />\n }\n >\n {!!searchObj?.queryData?.pageList?.length && (\n <InquirySearchTable\n key={searchObj.searchItem.id}\n queryData={searchObj.queryData || []}\n columns={searchObj.searchItem.columns}\n apiMethodId={searchObj.searchItem.apiMethodId}\n searchFilterElements={\n searchObj.searchItem.searchFilterElements\n }\n searchFilterGroups={searchObj.searchItem.searchFilterGroups}\n catalogReturnObject={searchObj.searchItem.catalogReturnObject}\n setSelectedSearchRows={setSelectedSearchRows}\n catalogObjects={catalogObjects}\n treeStructure={searchObj.searchItem.treeStructure}\n associatedInquiryTree={\n searchObj.searchItem.associatedInquiryTree || null\n }\n onRowDoubleClick={onRowDoubleClick}\n topResultsOnly={true}\n topResultsSize={10}\n isAdvancedSearch={isAdvancedSearch}\n executeQuery={executeQueryAdHoc}\n queryColumnsData={searchObj.searchItem.queryColumnsData}\n />\n )}\n </AmbientCard>\n </div>\n );\n })}\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -98,4 +98,4 @@ var LineAndSparklinesWidget_exports = /* @__PURE__ */ __export({
|
|
|
98
98
|
|
|
99
99
|
//#endregion
|
|
100
100
|
export { LineAndSparklinesWidget_default as n, layout as r, LineAndSparklinesWidget_exports as t };
|
|
101
|
-
//# sourceMappingURL=LineAndSparklinesWidget-
|
|
101
|
+
//# sourceMappingURL=LineAndSparklinesWidget-KVAnvpKl.js.map
|
package/dist/{LineAndSparklinesWidget-B7U_tk1Y.js.map → LineAndSparklinesWidget-KVAnvpKl.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineAndSparklinesWidget-
|
|
1
|
+
{"version":3,"file":"LineAndSparklinesWidget-KVAnvpKl.js","names":["WidgetCard","FluentStatNumber"],"sources":["../src/UI/widgets/library/LineAndSparklinesWidget/LineAndSparklinesWidget.jsx","../src/UI/widgets/library/LineAndSparklinesWidget/index.ts"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport {\n makeStyles,\n Typography,\n useTheme,\n Divider,\n Box\n} from '@material-ui/core'\nimport { MuiVegaLite } from '@material-vega/material-ui'\nimport { Sparklines, SparklinesLine } from 'react-sparklines'\nimport WidgetCard from '../../WidgetCard'\nimport FluentStatNumber from '../../FluentComponents/molecules/FluentStatNumber'\nimport { convertISODate } from '../../utils/ConvertISODate'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\n// export const params = {\n// mode: {\n// defaultValue: 'chart',\n// },\n// };\n\nconst useStyles = makeStyles((theme) => ({\n displayItems: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%'\n },\n visualCaption: {\n marginTop: theme.spacing(-1)\n },\n lineGraph: {\n width: '100%',\n '& svg': { width: '100%' }\n }\n}))\n\nconst LineAndSparklinesWidget = (props, ref) => {\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme, dateRange } = params\n const classes = useStyles()\n const mainTheme = useTheme()\n\n return (\n <WidgetCard ref={ref} title={mockData?.title} theme={theme} {...other}>\n {mockData ? (\n <div>\n {dateRange && (\n <Typography gutterBottom variant='caption' component='h3'>\n From: {convertISODate(dateRange.from)} to:{' '}\n {convertISODate(dateRange.to)}\n </Typography>\n )}\n <div className={classes.displayItems}>\n <div>\n <FluentStatNumber number={mockData?.value} trend='up' />\n </div>\n <div style={{ width: '100%' }}>\n <Sparklines\n data={mockData?.sparklinesData}\n strokeWidth={1}\n style={{ width: '100%', height: 45, marginTop: 10 }}\n >\n <SparklinesLine color={mainTheme.palette.secondary.main} />\n </Sparklines>\n <div className={classes.visualCaption}>\n <div>\n <Divider />\n </div>\n\n <Typography variant='caption'>{mockData?.label}</Typography>\n </div>\n </div>\n </div>\n\n <Box clone flex={1} mt={1} overflow='hidden'>\n <MuiVegaLite\n variant='areaLineChart'\n style={{\n width: '100%'\n }}\n spec={{\n $schema: 'https://vega.github.io/schema/vega-lite/v4.json',\n height: 150,\n data: { values: mockData?.data },\n mark: 'area',\n encoding: {\n x: {\n field: 'xAxis',\n type: mockData?.xAxisType\n },\n y: {\n aggregate: 'sum',\n field: 'yAxis',\n type: mockData?.yAxisType,\n scale: { domain: mockData?.domain || '' }\n }\n }\n }}\n autoResize='true'\n width='container'\n />\n </Box>\n {children}\n </div>\n ) : (\n <Typography variant='subtitle2'>\n Could not retrieve widget data. Please contact support.\n </Typography>\n )}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(LineAndSparklinesWidget)\n","export * from './LineAndSparklinesWidget';\nexport {default } from './LineAndSparklinesWidget';\n"],"mappings":";;;;;;;;;;AAcA,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAQD,MAAM,YAAY,YAAY,WAAW;CACvC,cAAc;EACZ,SAAS;EACT,eAAe;EACf,OAAO;EACR;CACD,eAAe,EACb,WAAW,MAAM,QAAQ,GAAG,EAC7B;CACD,WAAW;EACT,OAAO;EACP,SAAS,EAAE,OAAO,QAAQ;EAC3B;CACF,EAAE;AAEH,MAAM,2BAA2B,OAAO,QAAQ;CAC9C,MAAM,EAAE,UAAU,QAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,OAAO,cAAc;CAC/C,MAAM,UAAU,WAAW;CAC3B,MAAM,YAAY,UAAU;AAE5B,QACE,oCAACA;EAAgB;EAAK,OAAO,UAAU;EAAc;EAAO,GAAI;IAC7D,WACC,oCAAC,aACE,aACC,oCAAC;EAAW;EAAa,SAAQ;EAAU,WAAU;IAAK,UACjD,eAAe,UAAU,KAAK,EAAC,QAAK,KAC1C,eAAe,UAAU,GAAG,CAClB,EAEf,oCAAC,SAAI,WAAW,QAAQ,gBACtB,oCAAC,aACC,oCAACC;EAAiB,QAAQ,UAAU;EAAO,OAAM;GAAO,CACpD,EACN,oCAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,IAC3B,oCAAC;EACC,MAAM,UAAU;EAChB,aAAa;EACb,OAAO;GAAE,OAAO;GAAQ,QAAQ;GAAI,WAAW;GAAI;IAEnD,oCAAC,kBAAe,OAAO,UAAU,QAAQ,UAAU,OAAQ,CAChD,EACb,oCAAC,SAAI,WAAW,QAAQ,iBACtB,oCAAC,aACC,oCAAC,cAAU,CACP,EAEN,oCAAC,cAAW,SAAQ,aAAW,UAAU,MAAmB,CACxD,CACF,CACF,EAEN,oCAAC;EAAI;EAAM,MAAM;EAAG,IAAI;EAAG,UAAS;IAClC,oCAAC;EACC,SAAQ;EACR,OAAO,EACL,OAAO,QACR;EACD,MAAM;GACJ,SAAS;GACT,QAAQ;GACR,MAAM,EAAE,QAAQ,UAAU,MAAM;GAChC,MAAM;GACN,UAAU;IACR,GAAG;KACD,OAAO;KACP,MAAM,UAAU;KACjB;IACD,GAAG;KACD,WAAW;KACX,OAAO;KACP,MAAM,UAAU;KAChB,OAAO,EAAE,QAAQ,UAAU,UAAU,IAAI;KAC1C;IACF;GACF;EACD,YAAW;EACX,OAAM;GACN,CACE,EACL,SACG,GAEN,oCAAC,cAAW,SAAQ,eAAY,0DAEnB,CAEJ;;AAIjB,sCAAe,WAAW,wBAAwB"}
|
|
@@ -89,4 +89,4 @@ var LineGraphWidget_exports = /* @__PURE__ */ __export({
|
|
|
89
89
|
|
|
90
90
|
//#endregion
|
|
91
91
|
export { params as i, LineGraphWidget_default as n, layout as r, LineGraphWidget_exports as t };
|
|
92
|
-
//# sourceMappingURL=LineGraphWidget-
|
|
92
|
+
//# sourceMappingURL=LineGraphWidget-CYjLiV5B.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineGraphWidget-
|
|
1
|
+
{"version":3,"file":"LineGraphWidget-CYjLiV5B.js","names":["params","WidgetCard","FluentStatsSnippet"],"sources":["../src/UI/widgets/library/LineGraphWidget/LineGraphWidget.jsx","../src/UI/widgets/library/LineGraphWidget/index.ts"],"sourcesContent":["import React, { forwardRef, Fragment } from 'react'\nimport { Grid, Box, Typography } from '@material-ui/core'\nimport { MuiVegaLite } from '@material-vega/material-ui'\nimport WidgetCard from '../../WidgetCard'\nimport FluentStatsSnippet from '../../FluentComponents/atoms/FluentStatsSnippet'\nimport { convertISODate } from '../../utils/ConvertISODate'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nexport const params = {\n mode: {\n defaultValue: 'chart'\n }\n}\n\nconst LineGraphWidget = (props, ref) => {\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme, dateRange } = params\n\n return (\n <WidgetCard ref={ref} {...other} title={mockData?.title} theme={theme}>\n {mockData ? (\n <Fragment>\n {dateRange && (\n <Typography gutterBottom variant='caption' component='h3'>\n From: {convertISODate(dateRange.from)} to:{' '}\n {convertISODate(dateRange.to)}{' '}\n </Typography>\n )}\n {mockData?.stats && (\n <Grid container>\n {mockData?.stats.map((stat) => (\n <Grid item xs={3} key={stat.label}>\n <FluentStatsSnippet\n label={stat.label}\n amount={stat.currentValue}\n prevAmount={stat.previousValue}\n />\n </Grid>\n ))}\n </Grid>\n )}\n <Box clone flex={1} mt={1} overflow='hidden'>\n <MuiVegaLite\n variant='lineChart'\n color='secondary'\n spec={{\n $schema: 'https://vega.github.io/schema/vega-lite/v4.json',\n description: mockData?.description,\n data: {\n values: mockData?.data\n },\n mark: 'line',\n encoding: {\n x: { field: 'xAxis', type: mockData?.xAxisType },\n y: {\n field: 'yAxis',\n type: mockData?.yAxisType\n },\n color: {\n field: 'label',\n type: 'nominal',\n legend: { direction: 'vertical', orient: 'right' }\n }\n }\n }}\n width='container'\n height='container'\n autoResize='true'\n />\n </Box>\n {children}\n </Fragment>\n ) : (\n <Typography variant='subtitle2'>\n Could not retrieve widget data. Please contact support.\n </Typography>\n )}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(LineGraphWidget)\n","export * from './LineGraphWidget';\nexport {default} from './LineGraphWidget';\n"],"mappings":";;;;;;;;;AAOA,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAa,SAAS,EACpB,MAAM,EACJ,cAAc,SACf,EACF;AAED,MAAM,mBAAmB,OAAO,QAAQ;CACtC,MAAM,EAAE,UAAU,kBAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,OAAO,cAAcA;AAE/C,QACE,oCAACC;EAAgB;EAAK,GAAI;EAAO,OAAO,UAAU;EAAc;IAC7D,WACC,oCAAC,gBACE,aACC,oCAAC;EAAW;EAAa,SAAQ;EAAU,WAAU;IAAK,UACjD,eAAe,UAAU,KAAK,EAAC,QAAK,KAC1C,eAAe,UAAU,GAAG,EAAE,IACpB,EAEd,UAAU,SACT,oCAAC,QAAK,mBACH,UAAU,MAAM,KAAK,SACpB,oCAAC;EAAK;EAAK,IAAI;EAAG,KAAK,KAAK;IAC1B,oCAACC;EACC,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,YAAY,KAAK;GACjB,CACG,CACP,CACG,EAET,oCAAC;EAAI;EAAM,MAAM;EAAG,IAAI;EAAG,UAAS;IAClC,oCAAC;EACC,SAAQ;EACR,OAAM;EACN,MAAM;GACJ,SAAS;GACT,aAAa,UAAU;GACvB,MAAM,EACJ,QAAQ,UAAU,MACnB;GACD,MAAM;GACN,UAAU;IACR,GAAG;KAAE,OAAO;KAAS,MAAM,UAAU;KAAW;IAChD,GAAG;KACD,OAAO;KACP,MAAM,UAAU;KACjB;IACD,OAAO;KACL,OAAO;KACP,MAAM;KACN,QAAQ;MAAE,WAAW;MAAY,QAAQ;MAAS;KACnD;IACF;GACF;EACD,OAAM;EACN,QAAO;EACP,YAAW;GACX,CACE,EACL,SACQ,GAEX,oCAAC,cAAW,SAAQ,eAAY,0DAEnB,CAEJ;;AAIjB,8BAAe,WAAW,gBAAgB"}
|
|
@@ -2,14 +2,14 @@ import { t as ConfigService } from "./configService-C4uoG3wj.js";
|
|
|
2
2
|
import { t as useUser } from "./useUser-wpHGo6jU.js";
|
|
3
3
|
import { I as TreeViewModeEnums } from "./unitySystemEnums-e5F9Jr7m.js";
|
|
4
4
|
import { n as useShellStore } from "./shellStore-C8zfPsZ-.js";
|
|
5
|
-
import { H as transformMenuPageTree } from "./TreeUtilities-
|
|
5
|
+
import { H as transformMenuPageTree } from "./TreeUtilities-VCy2z4Qv.js";
|
|
6
6
|
import { t as useAxiosGet } from "./useAxiosGet-CYnt6Hd0.js";
|
|
7
7
|
import { t as useSetLocationState } from "./useSetLocationState-Kvcc9BTb.js";
|
|
8
8
|
import { t as PageContainer } from "./PageContainer-DTXNLt_2.js";
|
|
9
9
|
import { n as useBuildEnvironment, t as APP_RIBBON_SPACE } from "./useBuildEnvironment-2gdqpmBX.js";
|
|
10
10
|
import { t as NodeLoader } from "./NodeLoader-6vxxLuHg.js";
|
|
11
11
|
import { t as UtilitySideBar } from "./UtilitySideBar-wvrocDGI.js";
|
|
12
|
-
import { t as BaseTreeMenu } from "./BaseTreeMenu-
|
|
12
|
+
import { t as BaseTreeMenu } from "./BaseTreeMenu-nKjw3cil.js";
|
|
13
13
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
14
14
|
import { makeStyles } from "@material-ui/core";
|
|
15
15
|
import { Prompt, useHistory, useLocation } from "react-router-dom";
|
|
@@ -237,4 +237,4 @@ var MenuPage_default = MenuPage;
|
|
|
237
237
|
|
|
238
238
|
//#endregion
|
|
239
239
|
export { MenuPage_default as t };
|
|
240
|
-
//# sourceMappingURL=MenuPage-
|
|
240
|
+
//# sourceMappingURL=MenuPage-BS8ti9lx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuPage-CkV002Ni.js","names":[],"sources":["../src/menuPage/MenuPage.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useHistory, useLocation, Prompt } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { PageContainer } from '../page/PageContainer';\nimport { transformMenuPageTree } from '../utilities/tree/TreeUtilities';\nimport { BaseTreeMenu } from '../treeMenu/BaseTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useUser } from '../utilities/auth/useUser';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flex: 1,\n minHeight: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n display: 'grid',\n gridTemplateAreas: ['sidebar content'].map((line) => `\"${line}\"`).join(' '),\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto 1fr'\n },\n sidebar: {\n gridArea: 'sidebar',\n marginRight: theme.spacing(1)\n },\n content: {\n gridArea: 'content',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n zIndex: 1,\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n overflowY: 'auto'\n },\n menuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 116}px)`,\n overflowX: 'hidden'\n },\n loader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n }\n}));\n\n// Define a stable constant for empty headers to prevent useEffect loops\nconst EMPTY_HEADERS = {};\n\n// Helper to find a node deep in the tree (Moved outside to ensure stability)\nconst findNodeById = (nodes, id) => {\n if (!nodes || !id) return null;\n for (const node of nodes) {\n if (String(node.id) === String(id)) return node;\n if (node.children) {\n const found = findNodeById(node.children, id);\n if (found) return found;\n }\n }\n return null;\n};\n\nconst MenuPage = (props) => {\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const history = useHistory();\n const location = useLocation();\n const user = useUser();\n const { t } = useTranslation();\n const setLocationState = useSetLocationState();\n\n const {\n innerMenuOverride,\n mainContent,\n menuTitle,\n allowMissingPageParam = false,\n searchParamsTransformer\n } = props;\n\n // --- STATE ---\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);\n const { setSubHeaderActionHasChildren, setNavigationExpanded } = useShellStore();\n\n // --- DATA FETCHING ---\n const innerMenuId = location.pathname.replace('/menupage/', '');\n\n const [{ data: fetchedInnerMenu, loading: menuLoading }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `menus/${innerMenuId}`,\n EMPTY_HEADERS,\n !innerMenuId,\n false\n );\n\n const innerMenu = innerMenuOverride ?? fetchedInnerMenu;\n\n // --- MEMOIZED DATA ---\n const menuItemsList = useMemo(() => {\n if (!innerMenu) return [];\n\n return innerMenu.menuItemInstanceStructureViews?.reduce((acc, menuInstance) => {\n const updatedMenu = transformMenuPageTree(menuInstance);\n if (updatedMenu) acc.push(updatedMenu);\n return acc;\n }, []) ?? [];\n }, [innerMenu]);\n\n // --- CORE REFACTOR: DERIVE SELECTED NODE ---\n const pageId = new URLSearchParams(location.search).get('page');\n\n const selectedNode = useMemo(() => {\n if (!menuItemsList.length) return null;\n\n // 1. Try to find the node requested in URL\n const found = findNodeById(menuItemsList, pageId);\n if (found) return found;\n\n // 2. Default to first item\n // Even if allowMissingPageParam is true, we still want to RETURN the node for rendering,\n // we just don't want the Redirector useEffect to force it into the URL.\n return menuItemsList[0];\n }, [menuItemsList, pageId]);\n\n // Fetch Page Data based on the derived node\n const [{ data: pageData, loading: pageLoading }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${selectedNode?.properties?.page?.id}`,\n EMPTY_HEADERS,\n !selectedNode?.properties?.page?.id,\n false\n );\n\n // --- ACTIONS ---\n\n const buildSearchString = useCallback((params, node, menuIndex) => {\n if (typeof searchParamsTransformer === 'function') {\n const result = searchParamsTransformer({\n searchParams: params,\n node,\n menuIndex,\n location\n });\n if (result === null) return '';\n if (result instanceof URLSearchParams) return result.toString();\n if (typeof result === 'string') return result;\n if (result !== undefined) return String(result);\n }\n return params.toString();\n }, [location, searchParamsTransformer]);\n\n const handleSelectedNode = useCallback((node, menuIndex) => {\n // 1. Check if we are \"selecting\" the current node to clear query params if needed\n if (allowMissingPageParam) {\n const firstNode = menuItemsList?.[0];\n if (firstNode && String(node?.id) === String(firstNode.id)) {\n if (location.search) {\n history.replace({ pathname: location.pathname, search: '' });\n }\n setHasUnsavedChanges(false);\n return;\n }\n }\n\n // 2. Build URL\n const searchParams = new URLSearchParams(location.search);\n searchParams.set('page', node.id);\n const searchString = buildSearchString(searchParams, node, menuIndex);\n\n // 3. Navigate (The URL change will trigger the re-render & selectedNode update)\n history.push({\n pathname: location.pathname,\n search: searchString\n });\n\n // Note: We don't set 'selectedNode' manually anymore. It is derived.\n }, [history, location, allowMissingPageParam, menuItemsList, buildSearchString]);\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n const handleDropNode = useCallback(() => {\n // TODO: Implement if we need to for next Phase\n }, []);\n\n // --- EFFECTS ---\n\n // 1. URL SYNCHRONIZATION (The \"Redirector\")\n // Ensures URL matches the selected node (e.g. on initial load or default selection)\n useEffect(() => {\n if (selectedNode && !allowMissingPageParam) {\n const currentUrlId = new URLSearchParams(location.search).get('page');\n\n if (String(selectedNode.id) !== String(currentUrlId)) {\n const newParams = new URLSearchParams(location.search);\n newParams.set('page', selectedNode.id);\n\n history.replace({\n pathname: location.pathname,\n search: newParams.toString()\n });\n }\n }\n }, [selectedNode?.id, location.search, history, allowMissingPageParam]);\n\n // 2. UI CLEANUP (The \"Reactor\")\n // Runs only when the ACTUAL selected ID changes to reset UI state\n useEffect(() => {\n if (selectedNode?.id) {\n setNavigationExpanded(false);\n setHasUnsavedChanges(false);\n setSubHeaderActionHasChildren(false);\n }\n }, [selectedNode?.id, setNavigationExpanded, setSubHeaderActionHasChildren]);\n\n // 3. BREADCRUMB / LABEL SYNC\n useEffect(() => {\n if (innerMenu && location.state?.label !== t(innerMenu?.name)) {\n setLocationState({ label: t(innerMenu?.name) });\n }\n }, [setLocationState, t, innerMenu, location.state?.label]);\n\n\n // --- RENDER ---\n return (\n <DndProvider backend={HTML5Backend}>\n <Prompt\n when={hasUnsavedChanges}\n message='You have unsaved changes. Are you sure you want to leave this page?'\n />\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={innerMenu?.name || menuTitle}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={64}\n >\n <div className={classes.menuContent} key={innerMenuId}>\n {menuItemsList?.length > 0 && !menuLoading &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <BaseTreeMenu\n menuItems={menuItems}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedNode?.id}\n selectedNodeParentId={selectedNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {menuLoading && (\n <div className={classes.loader}>\n <NodeLoader loading={menuLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n {mainContent ? (\n typeof mainContent === 'function'\n ? mainContent({ selectedNode, menuItemsList })\n : mainContent\n ) : (\n selectedNode?.properties?.page?.id && (\n <PageContainer\n user={user}\n key={selectedNode?.id}\n pageData={pageData}\n pageLoading={pageLoading}\n widgetParams={{\n pageId: pageData?.pageId,\n entityName: selectedNode?.properties?.page?.entity?.entityName,\n pbiReportCode: selectedNode?.properties?.page?.pbiReportCode,\n requiredFieldsMap: selectedNode?.properties?.page?.requiredFieldMapping,\n udpTagId: selectedNode?.properties?.page?.udpTagId,\n queryId: selectedNode?.properties?.page?.queryId,\n inquiryTreeId: selectedNode?.properties?.page?.inquiryTreeId,\n setHasUnsavedChanges: setHasUnsavedChanges\n }}\n disableMargins={true}\n fromMenu={true}\n />\n )\n )}\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default MenuPage;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,YAAY,YAAY,WAAW;CACvC,MAAM;EACJ,MAAM;EACN,YAAY,EAAE,qBAAqB,gBAAgB,iBAAiB,GAAG;EACvE,SAAS;EACT,mBAAmB,CAAC,kBAAkB,CAAC,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,KAAK,IAAI;EAC3E,qBAAqB;EACrB,kBAAkB;EACnB;CACD,SAAS;EACP,UAAU;EACV,aAAa,MAAM,QAAQ,EAAE;EAC9B;CACD,SAAS;EACP,UAAU;EACV,SAAS;EACT,eAAe;EACf,UAAU;EACV,QAAQ;EACR,SAAS,EAAE,qBAAqB,gBAAgB,iBAAiB,GAAG;EACpE,WAAW;EACZ;CACD,aAAa;EACX,WAAW,MAAM,QAAQ,EAAE;EAC3B,SAAS,EAAE,qBAAqB,gBAAgB,iBAAiB,IAAI;EACrE,WAAW;EACZ;CACD,QAAQ;EACN,aAAa,MAAM,QAAQ,EAAE;EAC7B,YAAY,MAAM,QAAQ,EAAE;EAC7B;CACD,gBAAgB;EACd,MAAM;EACN,SAAS;EACT,eAAe;EACf,YAAY;EACZ,gBAAgB;EACjB;CACF,EAAE;AAGH,MAAM,gBAAgB,EAAE;AAGxB,MAAM,gBAAgB,OAAO,OAAO;AAClC,KAAI,CAAC,SAAS,CAAC,GAAI,QAAO;AAC1B,MAAK,MAAM,QAAQ,OAAO;AACxB,MAAI,OAAO,KAAK,GAAG,KAAK,OAAO,GAAG,CAAE,QAAO;AAC3C,MAAI,KAAK,UAAU;GACjB,MAAM,QAAQ,aAAa,KAAK,UAAU,GAAG;AAC7C,OAAI,MAAO,QAAO;;;AAGtB,QAAO;;AAGT,MAAM,YAAY,UAAU;CAC1B,MAAM,WAAW,qBAAqB;CACtC,MAAM,UAAU,UAAU;EACxB,GAAG;EACH,gBAAgB,WAAW,mBAAmB;EAC/C,CAAC;CACF,MAAM,UAAU,YAAY;CAC5B,MAAM,WAAW,aAAa;CAC9B,MAAM,OAAO,SAAS;CACtB,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,mBAAmB,qBAAqB;CAE9C,MAAM,EACJ,mBACA,aACA,WACA,wBAAwB,OACxB,4BACE;CAGJ,MAAM,CAAC,iBAAiB,sBAAsB,SAAS,KAAK;CAC5D,MAAM,CAAC,mBAAmB,wBAAwB,SAAS,MAAM;CACjE,MAAM,EAAE,+BAA+B,0BAA0B,eAAe;CAGhF,MAAM,cAAc,SAAS,SAAS,QAAQ,cAAc,GAAG;CAE/D,MAAM,CAAC,EAAE,MAAM,kBAAkB,SAAS,iBAAiB,YACzD,cAAc,gBACd,SAAS,eACT,eACA,CAAC,aACD,MACD;CAED,MAAM,YAAY,qBAAqB;CAGvC,MAAM,gBAAgB,cAAc;AAClC,MAAI,CAAC,UAAW,QAAO,EAAE;AAEzB,SAAO,UAAU,gCAAgC,QAAQ,KAAK,iBAAiB;GAC7E,MAAM,cAAc,sBAAsB,aAAa;AACvD,OAAI,YAAa,KAAI,KAAK,YAAY;AACtC,UAAO;KACN,EAAE,CAAC,IAAI,EAAE;IACX,CAAC,UAAU,CAAC;CAGf,MAAM,SAAS,IAAI,gBAAgB,SAAS,OAAO,CAAC,IAAI,OAAO;CAE/D,MAAM,eAAe,cAAc;AACjC,MAAI,CAAC,cAAc,OAAQ,QAAO;EAGlC,MAAM,QAAQ,aAAa,eAAe,OAAO;AACjD,MAAI,MAAO,QAAO;AAKlB,SAAO,cAAc;IACpB,CAAC,eAAe,OAAO,CAAC;CAG3B,MAAM,CAAC,EAAE,MAAM,UAAU,SAAS,iBAAiB,YACjD,cAAc,gBACd,QAAQ,cAAc,YAAY,MAAM,MACxC,eACA,CAAC,cAAc,YAAY,MAAM,IACjC,MACD;CAID,MAAM,oBAAoB,aAAa,QAAQ,MAAM,cAAc;AACjE,MAAI,OAAO,4BAA4B,YAAY;GACjD,MAAM,SAAS,wBAAwB;IACrC,cAAc;IACd;IACA;IACA;IACD,CAAC;AACF,OAAI,WAAW,KAAM,QAAO;AAC5B,OAAI,kBAAkB,gBAAiB,QAAO,OAAO,UAAU;AAC/D,OAAI,OAAO,WAAW,SAAU,QAAO;AACvC,OAAI,WAAW,OAAW,QAAO,OAAO,OAAO;;AAEjD,SAAO,OAAO,UAAU;IACvB,CAAC,UAAU,wBAAwB,CAAC;CAEvC,MAAM,qBAAqB,aAAa,MAAM,cAAc;AAE1D,MAAI,uBAAuB;GACzB,MAAM,YAAY,gBAAgB;AAClC,OAAI,aAAa,OAAO,MAAM,GAAG,KAAK,OAAO,UAAU,GAAG,EAAE;AAC1D,QAAI,SAAS,OACX,SAAQ,QAAQ;KAAE,UAAU,SAAS;KAAU,QAAQ;KAAI,CAAC;AAE9D,yBAAqB,MAAM;AAC3B;;;EAKJ,MAAM,eAAe,IAAI,gBAAgB,SAAS,OAAO;AACzD,eAAa,IAAI,QAAQ,KAAK,GAAG;EACjC,MAAM,eAAe,kBAAkB,cAAc,MAAM,UAAU;AAGrE,UAAQ,KAAK;GACX,UAAU,SAAS;GACnB,QAAQ;GACT,CAAC;IAGD;EAAC;EAAS;EAAU;EAAuB;EAAe;EAAkB,CAAC;CAEhF,MAAM,2BAA2B,kBAAkB;AACjD,sBAAoB,aAAa,CAAC,SAAS;IAC1C,EAAE,CAAC;CAEN,MAAM,iBAAiB,kBAAkB,IAEtC,EAAE,CAAC;AAMN,iBAAgB;AACd,MAAI,gBAAgB,CAAC,uBAAuB;GAC1C,MAAM,eAAe,IAAI,gBAAgB,SAAS,OAAO,CAAC,IAAI,OAAO;AAErE,OAAI,OAAO,aAAa,GAAG,KAAK,OAAO,aAAa,EAAE;IACpD,MAAM,YAAY,IAAI,gBAAgB,SAAS,OAAO;AACtD,cAAU,IAAI,QAAQ,aAAa,GAAG;AAEtC,YAAQ,QAAQ;KACd,UAAU,SAAS;KACnB,QAAQ,UAAU,UAAU;KAC7B,CAAC;;;IAGL;EAAC,cAAc;EAAI,SAAS;EAAQ;EAAS;EAAsB,CAAC;AAIvE,iBAAgB;AACd,MAAI,cAAc,IAAI;AACpB,yBAAsB,MAAM;AAC5B,wBAAqB,MAAM;AAC3B,iCAA8B,MAAM;;IAErC;EAAC,cAAc;EAAI;EAAuB;EAA8B,CAAC;AAG5E,iBAAgB;AACd,MAAI,aAAa,SAAS,OAAO,UAAU,EAAE,WAAW,KAAK,CAC3D,kBAAiB,EAAE,OAAO,EAAE,WAAW,KAAK,EAAE,CAAC;IAEhD;EAAC;EAAkB;EAAG;EAAW,SAAS,OAAO;EAAM,CAAC;AAI3D,QACE,oCAAC,eAAY,SAAS,gBACpB,oCAAC;EACC,MAAM;EACN,SAAQ;GACR,EACF,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC,SAAI,WAAW,QAAQ,WACtB,oCAAC;EACC,OAAO,WAAW,QAAQ;EAC1B,iBAAiB;EACjB,WAAW;EACX,eAAe;EACf,qBAAqB;EACrB,mCAAmC;EACnC,gBAAgB;IAEhB,oCAAC;EAAI,WAAW,QAAQ;EAAa,KAAK;IACvC,eAAe,SAAS,KAAK,CAAC,eAC7B,cAAc,KAAK,WAAW,UAC5B,oCAAC;EAAI,KAAK,UAAU;EAAI,WAAW,QAAQ;IACzC,oCAAC;EACY;EACX,cAAc;EACd,YAAY;EACZ,WAAW;EACX,gBAAgB,cAAc;EAC9B,sBAAsB,cAAc;EACnB;EACjB,cAAc,kBAAkB;GAChC,CACE,CACN,EACH,eACC,oCAAC,SAAI,WAAW,QAAQ,UACtB,oCAAC,cAAW,SAAS,cAAe,CAChC,CAEJ,CACS,CACb,EACN,oCAAC,SAAI,WAAW,QAAQ,WACrB,cACC,OAAO,gBAAgB,aACnB,YAAY;EAAE;EAAc;EAAe,CAAC,GAC5C,cAEJ,cAAc,YAAY,MAAM,MAC9B,oCAAC;EACO;EACN,KAAK,cAAc;EACT;EACG;EACb,cAAc;GACZ,QAAQ,UAAU;GAClB,YAAY,cAAc,YAAY,MAAM,QAAQ;GACpD,eAAe,cAAc,YAAY,MAAM;GAC/C,mBAAmB,cAAc,YAAY,MAAM;GACnD,UAAU,cAAc,YAAY,MAAM;GAC1C,SAAS,cAAc,YAAY,MAAM;GACzC,eAAe,cAAc,YAAY,MAAM;GACzB;GACvB;EACD,gBAAgB;EAChB,UAAU;GACV,CAGF,CACF,CACM;;AAIlB,uBAAe"}
|
|
1
|
+
{"version":3,"file":"MenuPage-BS8ti9lx.js","names":[],"sources":["../src/menuPage/MenuPage.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useHistory, useLocation, Prompt } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { PageContainer } from '../page/PageContainer';\nimport { transformMenuPageTree } from '../utilities/tree/TreeUtilities';\nimport { BaseTreeMenu } from '../treeMenu/BaseTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useUser } from '../utilities/auth/useUser';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flex: 1,\n minHeight: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n display: 'grid',\n gridTemplateAreas: ['sidebar content'].map((line) => `\"${line}\"`).join(' '),\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto 1fr'\n },\n sidebar: {\n gridArea: 'sidebar',\n marginRight: theme.spacing(1)\n },\n content: {\n gridArea: 'content',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n zIndex: 1,\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n overflowY: 'auto'\n },\n menuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 116}px)`,\n overflowX: 'hidden'\n },\n loader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n }\n}));\n\n// Define a stable constant for empty headers to prevent useEffect loops\nconst EMPTY_HEADERS = {};\n\n// Helper to find a node deep in the tree (Moved outside to ensure stability)\nconst findNodeById = (nodes, id) => {\n if (!nodes || !id) return null;\n for (const node of nodes) {\n if (String(node.id) === String(id)) return node;\n if (node.children) {\n const found = findNodeById(node.children, id);\n if (found) return found;\n }\n }\n return null;\n};\n\nconst MenuPage = (props) => {\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const history = useHistory();\n const location = useLocation();\n const user = useUser();\n const { t } = useTranslation();\n const setLocationState = useSetLocationState();\n\n const {\n innerMenuOverride,\n mainContent,\n menuTitle,\n allowMissingPageParam = false,\n searchParamsTransformer\n } = props;\n\n // --- STATE ---\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);\n const { setSubHeaderActionHasChildren, setNavigationExpanded } = useShellStore();\n\n // --- DATA FETCHING ---\n const innerMenuId = location.pathname.replace('/menupage/', '');\n\n const [{ data: fetchedInnerMenu, loading: menuLoading }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `menus/${innerMenuId}`,\n EMPTY_HEADERS,\n !innerMenuId,\n false\n );\n\n const innerMenu = innerMenuOverride ?? fetchedInnerMenu;\n\n // --- MEMOIZED DATA ---\n const menuItemsList = useMemo(() => {\n if (!innerMenu) return [];\n\n return innerMenu.menuItemInstanceStructureViews?.reduce((acc, menuInstance) => {\n const updatedMenu = transformMenuPageTree(menuInstance);\n if (updatedMenu) acc.push(updatedMenu);\n return acc;\n }, []) ?? [];\n }, [innerMenu]);\n\n // --- CORE REFACTOR: DERIVE SELECTED NODE ---\n const pageId = new URLSearchParams(location.search).get('page');\n\n const selectedNode = useMemo(() => {\n if (!menuItemsList.length) return null;\n\n // 1. Try to find the node requested in URL\n const found = findNodeById(menuItemsList, pageId);\n if (found) return found;\n\n // 2. Default to first item\n // Even if allowMissingPageParam is true, we still want to RETURN the node for rendering,\n // we just don't want the Redirector useEffect to force it into the URL.\n return menuItemsList[0];\n }, [menuItemsList, pageId]);\n\n // Fetch Page Data based on the derived node\n const [{ data: pageData, loading: pageLoading }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${selectedNode?.properties?.page?.id}`,\n EMPTY_HEADERS,\n !selectedNode?.properties?.page?.id,\n false\n );\n\n // --- ACTIONS ---\n\n const buildSearchString = useCallback((params, node, menuIndex) => {\n if (typeof searchParamsTransformer === 'function') {\n const result = searchParamsTransformer({\n searchParams: params,\n node,\n menuIndex,\n location\n });\n if (result === null) return '';\n if (result instanceof URLSearchParams) return result.toString();\n if (typeof result === 'string') return result;\n if (result !== undefined) return String(result);\n }\n return params.toString();\n }, [location, searchParamsTransformer]);\n\n const handleSelectedNode = useCallback((node, menuIndex) => {\n // 1. Check if we are \"selecting\" the current node to clear query params if needed\n if (allowMissingPageParam) {\n const firstNode = menuItemsList?.[0];\n if (firstNode && String(node?.id) === String(firstNode.id)) {\n if (location.search) {\n history.replace({ pathname: location.pathname, search: '' });\n }\n setHasUnsavedChanges(false);\n return;\n }\n }\n\n // 2. Build URL\n const searchParams = new URLSearchParams(location.search);\n searchParams.set('page', node.id);\n const searchString = buildSearchString(searchParams, node, menuIndex);\n\n // 3. Navigate (The URL change will trigger the re-render & selectedNode update)\n history.push({\n pathname: location.pathname,\n search: searchString\n });\n\n // Note: We don't set 'selectedNode' manually anymore. It is derived.\n }, [history, location, allowMissingPageParam, menuItemsList, buildSearchString]);\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n const handleDropNode = useCallback(() => {\n // TODO: Implement if we need to for next Phase\n }, []);\n\n // --- EFFECTS ---\n\n // 1. URL SYNCHRONIZATION (The \"Redirector\")\n // Ensures URL matches the selected node (e.g. on initial load or default selection)\n useEffect(() => {\n if (selectedNode && !allowMissingPageParam) {\n const currentUrlId = new URLSearchParams(location.search).get('page');\n\n if (String(selectedNode.id) !== String(currentUrlId)) {\n const newParams = new URLSearchParams(location.search);\n newParams.set('page', selectedNode.id);\n\n history.replace({\n pathname: location.pathname,\n search: newParams.toString()\n });\n }\n }\n }, [selectedNode?.id, location.search, history, allowMissingPageParam]);\n\n // 2. UI CLEANUP (The \"Reactor\")\n // Runs only when the ACTUAL selected ID changes to reset UI state\n useEffect(() => {\n if (selectedNode?.id) {\n setNavigationExpanded(false);\n setHasUnsavedChanges(false);\n setSubHeaderActionHasChildren(false);\n }\n }, [selectedNode?.id, setNavigationExpanded, setSubHeaderActionHasChildren]);\n\n // 3. BREADCRUMB / LABEL SYNC\n useEffect(() => {\n if (innerMenu && location.state?.label !== t(innerMenu?.name)) {\n setLocationState({ label: t(innerMenu?.name) });\n }\n }, [setLocationState, t, innerMenu, location.state?.label]);\n\n\n // --- RENDER ---\n return (\n <DndProvider backend={HTML5Backend}>\n <Prompt\n when={hasUnsavedChanges}\n message='You have unsaved changes. Are you sure you want to leave this page?'\n />\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={innerMenu?.name || menuTitle}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={64}\n >\n <div className={classes.menuContent} key={innerMenuId}>\n {menuItemsList?.length > 0 && !menuLoading &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <BaseTreeMenu\n menuItems={menuItems}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedNode?.id}\n selectedNodeParentId={selectedNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {menuLoading && (\n <div className={classes.loader}>\n <NodeLoader loading={menuLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n {mainContent ? (\n typeof mainContent === 'function'\n ? mainContent({ selectedNode, menuItemsList })\n : mainContent\n ) : (\n selectedNode?.properties?.page?.id && (\n <PageContainer\n user={user}\n key={selectedNode?.id}\n pageData={pageData}\n pageLoading={pageLoading}\n widgetParams={{\n pageId: pageData?.pageId,\n entityName: selectedNode?.properties?.page?.entity?.entityName,\n pbiReportCode: selectedNode?.properties?.page?.pbiReportCode,\n requiredFieldsMap: selectedNode?.properties?.page?.requiredFieldMapping,\n udpTagId: selectedNode?.properties?.page?.udpTagId,\n queryId: selectedNode?.properties?.page?.queryId,\n inquiryTreeId: selectedNode?.properties?.page?.inquiryTreeId,\n setHasUnsavedChanges: setHasUnsavedChanges\n }}\n disableMargins={true}\n fromMenu={true}\n />\n )\n )}\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default MenuPage;\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as ConfigService } from "./configService-C4uoG3wj.js";
|
|
2
2
|
import { t as apiMutate } from "./useAxiosMutate-DeqKSi5z.js";
|
|
3
3
|
import { n as formatDataWithTimelineCategoryNameOrderedByDate } from "./mttFunctions-ioZ0_5JX.js";
|
|
4
|
-
import { t as IconRenderer } from "./IconRenderer-
|
|
4
|
+
import { t as IconRenderer } from "./IconRenderer-JdCm70xC.js";
|
|
5
5
|
import { t as MttYearTag } from "./MttYearTag-Cw8OyKTy.js";
|
|
6
6
|
import { a as TimelineWrapper, i as MultiDot, n as TimelinePreloaderNode, o as TimelineNode, r as VisualizationDot, t as DynamicRangeSlider } from "./DynamicRangeSlider-prr4fg8d.js";
|
|
7
7
|
import React, { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
@@ -885,4 +885,4 @@ const MttMainTimeline = (props) => {
|
|
|
885
885
|
|
|
886
886
|
//#endregion
|
|
887
887
|
export { MttTimeline as n, HeightAdjuster as r, MttMainTimeline as t };
|
|
888
|
-
//# sourceMappingURL=MttMainTimeline-
|
|
888
|
+
//# sourceMappingURL=MttMainTimeline-nusYDWg_.js.map
|