udp-react-enterprise-component-library 25.16.0 → 25.16.1
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/README.md +97 -0
- package/dist/ActionLoadingContext-CNjaZnRA.js +8 -0
- package/dist/ActionLoadingContext-CNjaZnRA.js.map +1 -0
- package/dist/ActionLoadingDispatchContext-BnmdA_n3.js +16 -0
- package/dist/ActionLoadingDispatchContext-BnmdA_n3.js.map +1 -0
- package/dist/ActionProvider-1yV0Pb_q.js +368 -0
- package/dist/ActionProvider-1yV0Pb_q.js.map +1 -0
- package/dist/ActionSplitScreen-QDScakF5.js +296 -0
- package/dist/ActionSplitScreen-QDScakF5.js.map +1 -0
- package/dist/ActionWrapper-si5rnFjn.js +889 -0
- package/dist/ActionWrapper-si5rnFjn.js.map +1 -0
- package/dist/AddressListItem-ab1iGRhK.js +19 -0
- package/dist/AddressListItem-ab1iGRhK.js.map +1 -0
- package/dist/Adornment-9YJw6GPr.js +19 -0
- package/dist/Adornment-9YJw6GPr.js.map +1 -0
- package/dist/AgTable-0F_xrxvX.js +184 -0
- package/dist/AgTable-0F_xrxvX.js.map +1 -0
- package/dist/AggregateChip-7tOziH82.js +242 -0
- package/dist/AggregateChip-7tOziH82.js.map +1 -0
- package/dist/AmbientAlert-Daw5MVak.js +42 -0
- package/dist/AmbientAlert-Daw5MVak.js.map +1 -0
- package/dist/AmbientAutoComplete-BmBgMVpv.js +101 -0
- package/dist/AmbientAutoComplete-BmBgMVpv.js.map +1 -0
- package/dist/AmbientCard-Cp-eNzrW.js +165 -0
- package/dist/AmbientCard-Cp-eNzrW.js.map +1 -0
- package/dist/AmbientCardButton-DGmyyJxn.js +31 -0
- package/dist/AmbientCardButton-DGmyyJxn.js.map +1 -0
- package/dist/AmbientCardTitle-CF2luWZ_.js +38 -0
- package/dist/AmbientCardTitle-CF2luWZ_.js.map +1 -0
- package/dist/AmbientChipButton-C2KvNywY.js +50 -0
- package/dist/AmbientChipButton-C2KvNywY.js.map +1 -0
- package/dist/AmbientGridTemplate-B58pNLnZ.js +1664 -0
- package/dist/AmbientGridTemplate-B58pNLnZ.js.map +1 -0
- package/dist/AmbientPopoverMenuItem-Dy3rQ7sp.js +75 -0
- package/dist/AmbientPopoverMenuItem-Dy3rQ7sp.js.map +1 -0
- package/dist/AmbientSingleDateSelector-bGMAQaH2.js +51 -0
- package/dist/AmbientSingleDateSelector-bGMAQaH2.js.map +1 -0
- package/dist/AmbientTextField-BHfLW2L3.js +76 -0
- package/dist/AmbientTextField-BHfLW2L3.js.map +1 -0
- package/dist/AmbientToast-7aYv2gtH.js +70 -0
- package/dist/AmbientToast-7aYv2gtH.js.map +1 -0
- package/dist/AmbientToggleButton-C-7jtLY0.js +67 -0
- package/dist/AmbientToggleButton-C-7jtLY0.js.map +1 -0
- package/dist/AmbientToggleButtonGroup-BWYKeDtB.js +87 -0
- package/dist/AmbientToggleButtonGroup-BWYKeDtB.js.map +1 -0
- package/dist/AmbientToggleButtonGroupDefault-JAnbpfxZ.js +107 -0
- package/dist/AmbientToggleButtonGroupDefault-JAnbpfxZ.js.map +1 -0
- package/dist/AmbientTokenButton-CpdlLmsF.js +46 -0
- package/dist/AmbientTokenButton-CpdlLmsF.js.map +1 -0
- package/dist/AmbientVisualizer-BFFwonre.js +672 -0
- package/dist/AmbientVisualizer-BFFwonre.js.map +1 -0
- package/dist/AppMenu-CWyoGTC4.js +170 -0
- package/dist/AppMenu-CWyoGTC4.js.map +1 -0
- package/dist/AvatarAlphabet-kN4P-dsj.js +187 -0
- package/dist/AvatarAlphabet-kN4P-dsj.js.map +1 -0
- package/dist/{MenuPage-BZk69VmF.js → BaseTreeMenu-CroItvOA.js} +18 -219
- package/dist/BaseTreeMenu-CroItvOA.js.map +1 -0
- package/dist/BioCard-DWXySB2s.js +60 -0
- package/dist/BioCard-DWXySB2s.js.map +1 -0
- package/dist/BioCardWrapper-oL2gu9ec.js +512 -0
- package/dist/BioCardWrapper-oL2gu9ec.js.map +1 -0
- package/dist/Box-DQPELDGC.js +11 -0
- package/dist/Box-DQPELDGC.js.map +1 -0
- package/dist/BreadCrumbMenu-42SrTsSI.js +54 -0
- package/dist/BreadCrumbMenu-42SrTsSI.js.map +1 -0
- package/dist/CatalogUtilities-C2RsZM3t.js +16 -0
- package/dist/CatalogUtilities-C2RsZM3t.js.map +1 -0
- package/dist/ChatBotContext-aIWq8Gqd.js +8 -0
- package/dist/ChatBotContext-aIWq8Gqd.js.map +1 -0
- package/dist/ChatBotProvider-3yBWdcfe.js +67 -0
- package/dist/ChatBotProvider-3yBWdcfe.js.map +1 -0
- package/dist/ChatContainer-il3bj22z.js +252 -0
- package/dist/ChatContainer-il3bj22z.js.map +1 -0
- package/dist/CircleButton-RIWPMVG6.js +240 -0
- package/dist/CircleButton-RIWPMVG6.js.map +1 -0
- package/dist/CircularProgress-BNz8u0DY.js +48 -0
- package/dist/CircularProgress-BNz8u0DY.js.map +1 -0
- package/dist/CkRichEditor-BzyNk5CH.js +47 -0
- package/dist/CkRichEditor-BzyNk5CH.js.map +1 -0
- package/dist/ClientSideUdpGrid-DPeVlSHy.js +11 -0
- package/dist/ClientSideUdpGrid-DPeVlSHy.js.map +1 -0
- package/dist/CompactDataList-QWDPJrR5.js +16 -0
- package/dist/CompactDataList-QWDPJrR5.js.map +1 -0
- package/dist/CompactDataListItem-DMGFdFDP.js +28 -0
- package/dist/CompactDataListItem-DMGFdFDP.js.map +1 -0
- package/dist/ContentContainer-DfQA0RcA.js +30 -0
- package/dist/ContentContainer-DfQA0RcA.js.map +1 -0
- package/dist/Controls-Dns0KUBq.js +27 -0
- package/dist/Controls-Dns0KUBq.js.map +1 -0
- package/dist/CrudBrowserContainer-CkKwGxjy.js +175 -0
- package/dist/CrudBrowserContainer-CkKwGxjy.js.map +1 -0
- package/dist/CrudBrowserUtilities-Cm_FNdfE.js +77 -0
- package/dist/CrudBrowserUtilities-Cm_FNdfE.js.map +1 -0
- package/dist/CrudForm-CS8iy0jE.js +348 -0
- package/dist/CrudForm-CS8iy0jE.js.map +1 -0
- package/dist/CrudTableSidePanel-DdQ_D8g0.js +120 -0
- package/dist/CrudTableSidePanel-DdQ_D8g0.js.map +1 -0
- package/dist/DashboardWidget-CpxtRgWv.js +248 -0
- package/dist/DashboardWidget-CpxtRgWv.js.map +1 -0
- package/dist/DataBrowserContainer-CESNdu3e.js +396 -0
- package/dist/DataBrowserContainer-CESNdu3e.js.map +1 -0
- package/dist/DateTimeField-O7EKOyoH.js +32 -0
- package/dist/DateTimeField-O7EKOyoH.js.map +1 -0
- package/dist/DateUtilities-DHTEYbE8.js +15 -0
- package/dist/DateUtilities-DHTEYbE8.js.map +1 -0
- package/dist/DemoJuly-46P2EFI7.js +1 -0
- package/dist/DiffChecker-BZGx08fd.js +38 -0
- package/dist/DiffChecker-BZGx08fd.js.map +1 -0
- package/dist/Divider-BU1-Ll14.js +11 -0
- package/dist/Divider-BU1-Ll14.js.map +1 -0
- package/dist/DragDropFileUpload-D2moCBGI.js +89 -0
- package/dist/DragDropFileUpload-D2moCBGI.js.map +1 -0
- package/dist/DraggableSidebarTemplate-Dhrbn1H1.js +93 -0
- package/dist/DraggableSidebarTemplate-Dhrbn1H1.js.map +1 -0
- package/dist/DynamicContainerWithMenu-CQLpIY2A.js +141 -0
- package/dist/DynamicContainerWithMenu-CQLpIY2A.js.map +1 -0
- package/dist/DynamicRangeSlider-D8UVBHSs.js +569 -0
- package/dist/DynamicRangeSlider-D8UVBHSs.js.map +1 -0
- package/dist/Ellipse-q1-sPjh3.js +113 -0
- package/dist/Ellipse-q1-sPjh3.js.map +1 -0
- package/dist/EmailDisplay-Bglp_poX.js +116 -0
- package/dist/EmailDisplay-Bglp_poX.js.map +1 -0
- package/dist/EmptyStateDisplay-BMhnBskG.js +66 -0
- package/dist/EmptyStateDisplay-BMhnBskG.js.map +1 -0
- package/dist/EntitySideBarContent-Do-R7Fr2.js +84 -0
- package/dist/EntitySideBarContent-Do-R7Fr2.js.map +1 -0
- package/dist/EnvironmentRibbon-CPm8YnJ4.js +59 -0
- package/dist/EnvironmentRibbon-CPm8YnJ4.js.map +1 -0
- package/dist/ExportSidesheet-RFDKlbH5.js +334 -0
- package/dist/ExportSidesheet-RFDKlbH5.js.map +1 -0
- package/dist/ExtenderToggle-C16vjdkn.js +48 -0
- package/dist/ExtenderToggle-C16vjdkn.js.map +1 -0
- package/dist/ExternalRedirectUrlStorage-DWzDQVSk.js +15 -0
- package/dist/ExternalRedirectUrlStorage-DWzDQVSk.js.map +1 -0
- package/dist/FUIAppSwitcher-DzE2TQlx.js +360 -0
- package/dist/FUIAppSwitcher-DzE2TQlx.js.map +1 -0
- package/dist/FUICard-B5SvhKL0.js +140 -0
- package/dist/FUICard-B5SvhKL0.js.map +1 -0
- package/dist/FUIMenuItem-C6Ypt-fU.js +26 -0
- package/dist/FUIMenuItem-C6Ypt-fU.js.map +1 -0
- package/dist/FUISquareIconButton-CzLgq8u-.js +20 -0
- package/dist/FUISquareIconButton-CzLgq8u-.js.map +1 -0
- package/dist/Field-Idoc1A5M.js +61 -0
- package/dist/Field-Idoc1A5M.js.map +1 -0
- package/dist/FieldArrayCard-BOx60qvz.js +404 -0
- package/dist/FieldArrayCard-BOx60qvz.js.map +1 -0
- package/dist/FileUpload-BZYmsW6_.js +241 -0
- package/dist/FileUpload-BZYmsW6_.js.map +1 -0
- package/dist/FluentActivity-CtrJ9Fik.js +69 -0
- package/dist/FluentActivity-CtrJ9Fik.js.map +1 -0
- package/dist/FluentBody-CFW_TccT.js +16 -0
- package/dist/FluentBody-CFW_TccT.js.map +1 -0
- package/dist/FluentButton-h_8VjXGT.js +44 -0
- package/dist/FluentButton-h_8VjXGT.js.map +1 -0
- package/dist/FluentCard-CjR2Ft0S.js +23 -0
- package/dist/FluentCard-CjR2Ft0S.js.map +1 -0
- package/dist/FluentCardText-jo91oH3j.js +89 -0
- package/dist/FluentCardText-jo91oH3j.js.map +1 -0
- package/dist/FluentCell-DVrO5tto.js +81 -0
- package/dist/FluentCell-DVrO5tto.js.map +1 -0
- package/dist/FluentCheckbox-DdPx94AF.js +23 -0
- package/dist/FluentCheckbox-DdPx94AF.js.map +1 -0
- package/dist/FluentColorPicker-DWJ1ri6q.js +77 -0
- package/dist/FluentColorPicker-DWJ1ri6q.js.map +1 -0
- package/dist/FluentDataTable-qC_3o6gq.js +30 -0
- package/dist/FluentDataTable-qC_3o6gq.js.map +1 -0
- package/dist/FluentDatePicker-BV0xrRuX.js +75 -0
- package/dist/FluentDatePicker-BV0xrRuX.js.map +1 -0
- package/dist/FluentDialog-DU5BAKwU.js +80 -0
- package/dist/FluentDialog-DU5BAKwU.js.map +1 -0
- package/dist/FluentHead-XCqa3kd7.js +20 -0
- package/dist/FluentHead-XCqa3kd7.js.map +1 -0
- package/dist/FluentIcon-CB-ANF6C.js +57 -0
- package/dist/FluentIcon-CB-ANF6C.js.map +1 -0
- package/dist/FluentIconButton-le92OnEc.js +29 -0
- package/dist/FluentIconButton-le92OnEc.js.map +1 -0
- package/dist/FluentIconKey-DdoCGnzt.js +41 -0
- package/dist/FluentIconKey-DdoCGnzt.js.map +1 -0
- package/dist/FluentInputSlider-brB0q5Ek.js +50 -0
- package/dist/FluentInputSlider-brB0q5Ek.js.map +1 -0
- package/dist/FluentLink-3Baymb9o.js +39 -0
- package/dist/FluentLink-3Baymb9o.js.map +1 -0
- package/dist/FluentListItem-kFAFSSEq.js +99 -0
- package/dist/FluentListItem-kFAFSSEq.js.map +1 -0
- package/dist/FluentMap-Ba3tDjti.js +72 -0
- package/dist/FluentMap-Ba3tDjti.js.map +1 -0
- package/dist/FluentMenuListItem-B_HwFoIS.js +32 -0
- package/dist/FluentMenuListItem-B_HwFoIS.js.map +1 -0
- package/dist/FluentProfileMenuCard-BIwebgKW.js +771 -0
- package/dist/FluentProfileMenuCard-BIwebgKW.js.map +1 -0
- package/dist/FluentRadioGroup-BS69aaHF.js +31 -0
- package/dist/FluentRadioGroup-BS69aaHF.js.map +1 -0
- package/dist/FluentRow-B46NBxvd.js +18 -0
- package/dist/FluentRow-B46NBxvd.js.map +1 -0
- package/dist/FluentSearchField-D8ke5wUJ.js +135 -0
- package/dist/FluentSearchField-D8ke5wUJ.js.map +1 -0
- package/dist/FluentSimpleSelect-C2BL_HdI.js +441 -0
- package/dist/FluentSimpleSelect-C2BL_HdI.js.map +1 -0
- package/dist/FluentSimpleTabs-DUU2kdmG.js +72 -0
- package/dist/FluentSimpleTabs-DUU2kdmG.js.map +1 -0
- package/dist/FluentTabPanel-BGuFHfIQ.js +24 -0
- package/dist/FluentTabPanel-BGuFHfIQ.js.map +1 -0
- package/dist/FluentTextField-DCzp_6wE.js +68 -0
- package/dist/FluentTextField-DCzp_6wE.js.map +1 -0
- package/dist/FluentTextFieldAutoComplete-BQvVv8m_.js +100 -0
- package/dist/FluentTextFieldAutoComplete-BQvVv8m_.js.map +1 -0
- package/dist/FluentTimePicker-Dr8FiVtC.js +67 -0
- package/dist/FluentTimePicker-Dr8FiVtC.js.map +1 -0
- package/dist/FluentToggle-CCL31z0_.js +49 -0
- package/dist/FluentToggle-CCL31z0_.js.map +1 -0
- package/dist/FluentUploadIconButton-CzNiaIpa.js +129 -0
- package/dist/FluentUploadIconButton-CzNiaIpa.js.map +1 -0
- package/dist/FormButtons-BL9d-T3e.js +130 -0
- package/dist/FormButtons-BL9d-T3e.js.map +1 -0
- package/dist/FormControlLabel-C2H2jokx.js +17 -0
- package/dist/FormControlLabel-C2H2jokx.js.map +1 -0
- package/dist/GeoLocation-Dv1vb1xw.js +116 -0
- package/dist/GeoLocation-Dv1vb1xw.js.map +1 -0
- package/dist/GeoMap-CVGJXRRA.js +108 -0
- package/dist/GeoMap-CVGJXRRA.js.map +1 -0
- package/dist/Grid-5LtTpExg.js +17 -0
- package/dist/Grid-5LtTpExg.js.map +1 -0
- package/dist/GridFunctions-Dx91xe8e.js +150 -0
- package/dist/GridFunctions-Dx91xe8e.js.map +1 -0
- package/dist/GridGroupingSidebar-nHJQULrr.js +142 -0
- package/dist/GridGroupingSidebar-nHJQULrr.js.map +1 -0
- package/dist/GridRow-Bu4ZB7BW.js +54 -0
- package/dist/GridRow-Bu4ZB7BW.js.map +1 -0
- package/dist/GroupNode-C1Y28U4c.js +39 -0
- package/dist/GroupNode-C1Y28U4c.js.map +1 -0
- package/dist/HeaderExpander-Ai4mICeo.js +53 -0
- package/dist/HeaderExpander-Ai4mICeo.js.map +1 -0
- package/dist/HintPanel-DkMCmuP2.js +44 -0
- package/dist/HintPanel-DkMCmuP2.js.map +1 -0
- package/dist/IconButtonWithToolTip-DQacH9wQ.js +28 -0
- package/dist/IconButtonWithToolTip-DQacH9wQ.js.map +1 -0
- package/dist/IconLibrary-CPErCan6.js +180 -0
- package/dist/IconLibrary-CPErCan6.js.map +1 -0
- package/dist/IconRenderer-BbcxG30f.js +43 -0
- package/dist/IconRenderer-BbcxG30f.js.map +1 -0
- package/dist/Iframe-T9O-RU10.js +31 -0
- package/dist/Iframe-T9O-RU10.js.map +1 -0
- package/dist/IframeContainer-Cr0vSFwX.js +23 -0
- package/dist/IframeContainer-Cr0vSFwX.js.map +1 -0
- package/dist/ImportDataFromFileMapping-CjANFPa8.js +737 -0
- package/dist/ImportDataFromFileMapping-CjANFPa8.js.map +1 -0
- package/dist/IndicatorChip-Bi4tqLlK.js +39 -0
- package/dist/IndicatorChip-Bi4tqLlK.js.map +1 -0
- package/dist/InputFieldTypeEnums-yNsnE6kL.js +14 -0
- package/dist/InputFieldTypeEnums-yNsnE6kL.js.map +1 -0
- package/dist/Inquiry-C4hRlNvR.js +2978 -0
- package/dist/Inquiry-C4hRlNvR.js.map +1 -0
- package/dist/InquiryDashboard-Cn4F0BuC.js +17 -0
- package/dist/InquiryDashboard-Cn4F0BuC.js.map +1 -0
- package/dist/InquiryHeaderControl-D8G6OuEN.js +40 -0
- package/dist/InquiryHeaderControl-D8G6OuEN.js.map +1 -0
- package/dist/InquiryHeaderSecondaryAlert-BnYD5HYk.js +39 -0
- package/dist/InquiryHeaderSecondaryAlert-BnYD5HYk.js.map +1 -0
- package/dist/InquiryNodeControls-u17S3yQl.js +209 -0
- package/dist/InquiryNodeControls-u17S3yQl.js.map +1 -0
- package/dist/InquirySearchContainer-BluT5hv3.js +834 -0
- package/dist/InquirySearchContainer-BluT5hv3.js.map +1 -0
- package/dist/KeyValueTextField-DPDWprk4.js +104 -0
- package/dist/KeyValueTextField-DPDWprk4.js.map +1 -0
- package/dist/LayoutUnit-fGVQwt6Y.js +80 -0
- package/dist/LayoutUnit-fGVQwt6Y.js.map +1 -0
- package/dist/LibraryData-BtirxoE9.js +9043 -0
- package/dist/LibraryData-BtirxoE9.js.map +1 -0
- package/dist/LinearProgress-CVk0GRO-.js +49 -0
- package/dist/LinearProgress-CVk0GRO-.js.map +1 -0
- package/dist/LoadingIndicator-DDx4mIsm.js +47 -0
- package/dist/LoadingIndicator-DDx4mIsm.js.map +1 -0
- package/dist/LoadingOverlay-DBYfWYwS.js +17 -0
- package/dist/LoadingOverlay-DBYfWYwS.js.map +1 -0
- package/dist/LocalRedirectUrlStorage-BQHr5JcA.js +21 -0
- package/dist/LocalRedirectUrlStorage-BQHr5JcA.js.map +1 -0
- package/dist/Map-CM3OkjUS.js +56 -0
- package/dist/Map-CM3OkjUS.js.map +1 -0
- package/dist/Map-yjCCFFzf.js +127 -0
- package/dist/Map-yjCCFFzf.js.map +1 -0
- package/dist/MapContent-JgIyNm5C.js +117 -0
- package/dist/MapContent-JgIyNm5C.js.map +1 -0
- package/dist/MapContext-CUKty8Mr.js +9 -0
- package/dist/MapContext-CUKty8Mr.js.map +1 -0
- package/dist/MapContext-D6Th9h9w.js +9 -0
- package/dist/MapContext-D6Th9h9w.js.map +1 -0
- package/dist/MapControlsStandard-twyqBTRG.js +142 -0
- package/dist/MapControlsStandard-twyqBTRG.js.map +1 -0
- package/dist/MenuPage-BSU-NITc.js +227 -0
- package/dist/MenuPage-BSU-NITc.js.map +1 -0
- package/dist/MenuPage-BtoG6GuI.js +56 -0
- package/dist/MttMainTimeline-B5wICTvi.js +888 -0
- package/dist/MttMainTimeline-B5wICTvi.js.map +1 -0
- package/dist/MttSummary-nc74ZtC8.js +256 -0
- package/dist/MttSummary-nc74ZtC8.js.map +1 -0
- package/dist/MttYearTag-Cb_oIUNq.js +178 -0
- package/dist/MttYearTag-Cb_oIUNq.js.map +1 -0
- package/dist/MyExportsPage-C3PjlL4J.js +229 -0
- package/dist/MyExportsPage-C3PjlL4J.js.map +1 -0
- package/dist/MyExportsPage-DbH8z4-2.js +65 -0
- package/dist/NestedGrid-qYvtjvQd.js +84 -0
- package/dist/NestedGrid-qYvtjvQd.js.map +1 -0
- package/dist/NodeLoader-DRIIc46w.js +46 -0
- package/dist/NodeLoader-DRIIc46w.js.map +1 -0
- package/dist/NotesScreen-CvAvZ_R3.js +365 -0
- package/dist/NotesScreen-CvAvZ_R3.js.map +1 -0
- package/dist/NumberOperator-CDToRW8i.js +45 -0
- package/dist/NumberOperator-CDToRW8i.js.map +1 -0
- package/dist/PAHAdditionalRightComponent-CvWTgdMd.js +21 -0
- package/dist/PAHAdditionalRightComponent-CvWTgdMd.js.map +1 -0
- package/dist/PageActionWrapper-D2qr_WIM.js +55 -0
- package/dist/PageActionWrapper-D2qr_WIM.js.map +1 -0
- package/dist/PageContainer-BI8ve3o2.js +223 -0
- package/dist/PageContainer-BI8ve3o2.js.map +1 -0
- package/dist/PageContext-DujK-Yng.js +49 -0
- package/dist/PageContext-DujK-Yng.js.map +1 -0
- package/dist/PageLoading-DCoyVjWf.js +18 -0
- package/dist/PageLoading-DCoyVjWf.js.map +1 -0
- package/dist/PageNotFoundRoute-B82i8e68.js +24 -0
- package/dist/PageNotFoundRoute-B82i8e68.js.map +1 -0
- package/dist/PageNotFoundRoute-CsXuq0vw.js +4 -0
- package/dist/PageRenderer-NgWXYsLr.js +29 -0
- package/dist/PageRenderer-NgWXYsLr.js.map +1 -0
- package/dist/PageSectionSpacer-D_yz3sra.js +88 -0
- package/dist/PageSectionSpacer-D_yz3sra.js.map +1 -0
- package/dist/{PageNotFoundRoute-D9dLbM_w.js → PageStatus-CjupI8az.js} +4 -21
- package/dist/PageStatus-CjupI8az.js.map +1 -0
- package/dist/PageSubHeaderAction-Cw7gmU2W.js +20 -0
- package/dist/PageSubHeaderAction-Cw7gmU2W.js.map +1 -0
- package/dist/PasswordResetRedirect-DmhA2INZ.js +4 -0
- package/dist/{PasswordResetRedirect-C3g8L0vA.js → PasswordResetRedirect-MMUb4reI.js} +4 -21
- package/dist/PasswordResetRedirect-MMUb4reI.js.map +1 -0
- package/dist/PowerBIReport-CYX6YxbE.js +60 -0
- package/dist/PowerBIReport-CYX6YxbE.js.map +1 -0
- package/dist/PrimaryActionButton-CQXyHAeG.js +36 -0
- package/dist/PrimaryActionButton-CQXyHAeG.js.map +1 -0
- package/dist/PrimaryActionHeader-D9vn0zfH.js +547 -0
- package/dist/PrimaryActionHeader-D9vn0zfH.js.map +1 -0
- package/dist/PropertyFields-BOhyMi0i.js +65 -0
- package/dist/PropertyFields-BOhyMi0i.js.map +1 -0
- package/dist/QueryResult-BXX3-4Zh.js +10 -0
- package/dist/QueryResult-BXX3-4Zh.js.map +1 -0
- package/dist/QuickViewCard-Du-MuSVf.js +24 -0
- package/dist/QuickViewCard-Du-MuSVf.js.map +1 -0
- package/dist/RecentlyLoadedNodesTable-BZ4YiuvL.js +108 -0
- package/dist/RecentlyLoadedNodesTable-BZ4YiuvL.js.map +1 -0
- package/dist/RejectIcon-BbYRcoLI.js +40 -0
- package/dist/RejectIcon-BbYRcoLI.js.map +1 -0
- package/dist/RemindersCard-BJhfqNQk.js +138 -0
- package/dist/RemindersCard-BJhfqNQk.js.map +1 -0
- package/dist/RemindersScreen-9OpdtOBe.js +440 -0
- package/dist/RemindersScreen-9OpdtOBe.js.map +1 -0
- package/dist/RequiredFieldsMappingForm-D_mg2RJ2.js +344 -0
- package/dist/RequiredFieldsMappingForm-D_mg2RJ2.js.map +1 -0
- package/dist/RuleUtilities-DXVlN84J.js +89 -0
- package/dist/RuleUtilities-DXVlN84J.js.map +1 -0
- package/dist/SearchMethodUdpGrid-Ua0Kj84J.js +11 -0
- package/dist/SearchMethodUdpGrid-Ua0Kj84J.js.map +1 -0
- package/dist/SearchOperator-BLSwbmXG.js +59 -0
- package/dist/SearchOperator-BLSwbmXG.js.map +1 -0
- package/dist/SearchServiceDatasource-C-eLl_u3.js +156 -0
- package/dist/SearchServiceDatasource-C-eLl_u3.js.map +1 -0
- package/dist/{SearchUtilities-lVLvOpzo.js → SearchUtilities-CxVn31Ak.js} +4 -5
- package/dist/SearchUtilities-CxVn31Ak.js.map +1 -0
- package/dist/SelectUtilities-BCLrDhpD.js +30 -0
- package/dist/SelectUtilities-BCLrDhpD.js.map +1 -0
- package/dist/Shell-B9M8lQ22.js +268 -0
- package/dist/Shell-B9M8lQ22.js.map +1 -0
- package/dist/ShortcutContentFinder-D5qCCU1l.js +123 -0
- package/dist/ShortcutContentFinder-D5qCCU1l.js.map +1 -0
- package/dist/SideBarTemplate-CsJPE01r.js +128 -0
- package/dist/SideBarTemplate-CsJPE01r.js.map +1 -0
- package/dist/SideSheet-BhKZOd2G.js +82 -0
- package/dist/SideSheet-BhKZOd2G.js.map +1 -0
- package/dist/SideSheetHeader-DomTDjrB.js +79 -0
- package/dist/SideSheetHeader-DomTDjrB.js.map +1 -0
- package/dist/SidebarCollapseButton-B6H3WAMn.js +64 -0
- package/dist/SidebarCollapseButton-B6H3WAMn.js.map +1 -0
- package/dist/SidebarHeader-BKV537q9.js +82 -0
- package/dist/SidebarHeader-BKV537q9.js.map +1 -0
- package/dist/SiteHeaderRightComponent-zuiawaq3.js +20 -0
- package/dist/SiteHeaderRightComponent-zuiawaq3.js.map +1 -0
- package/dist/Source-BUBwrbaZ.js +34 -0
- package/dist/Source-BUBwrbaZ.js.map +1 -0
- package/dist/StandardTitle-DkEO3oI5.js +23 -0
- package/dist/StandardTitle-DkEO3oI5.js.map +1 -0
- package/dist/StatusChip-Bw-0wE_B.js +75 -0
- package/dist/StatusChip-Bw-0wE_B.js.map +1 -0
- package/dist/StringUtilities-DyjYA5pU.js +30 -0
- package/dist/StringUtilities-DyjYA5pU.js.map +1 -0
- package/dist/SubHeaderAction-vXEAp3A2.js +27 -0
- package/dist/SubHeaderAction-vXEAp3A2.js.map +1 -0
- package/dist/SummaryBlock-BUKWxmJe.js +98 -0
- package/dist/SummaryBlock-BUKWxmJe.js.map +1 -0
- package/dist/SupportCaseSideSheet-GV3FfBpO.js +375 -0
- package/dist/SupportCaseSideSheet-GV3FfBpO.js.map +1 -0
- package/dist/TableColumnDefs-nlfu2DdT.js +33 -0
- package/dist/TableColumnDefs-nlfu2DdT.js.map +1 -0
- package/dist/TableContainer-DX7ylhSY.js +109 -0
- package/dist/TableContainer-DX7ylhSY.js.map +1 -0
- package/dist/TenantProvider-CKbxaw0X.js +37 -0
- package/dist/TenantProvider-CKbxaw0X.js.map +1 -0
- package/dist/TileDisplay-Bg0ZJFDh.js +224 -0
- package/dist/TileDisplay-Bg0ZJFDh.js.map +1 -0
- package/dist/TileLayer-Bk6rITEu.js +31 -0
- package/dist/TileLayer-Bk6rITEu.js.map +1 -0
- package/dist/TimeField-DK4r4zAc.js +62 -0
- package/dist/TimeField-DK4r4zAc.js.map +1 -0
- package/dist/TimelineToken-H8lALbXg.js +72 -0
- package/dist/TimelineToken-H8lALbXg.js.map +1 -0
- package/dist/Token-DOIAu9p4.js +70 -0
- package/dist/Token-DOIAu9p4.js.map +1 -0
- package/dist/TokenGroupItem-DKGmGnzr.js +36 -0
- package/dist/TokenGroupItem-DKGmGnzr.js.map +1 -0
- package/dist/{UtilitySideBar-9LDu9AaN.js → TreeUtilities-BxV5PMJ8.js} +15 -854
- package/dist/TreeUtilities-BxV5PMJ8.js.map +1 -0
- package/dist/TrimForAvatar-BQMU2_5J.js +8 -0
- package/dist/TrimForAvatar-BQMU2_5J.js.map +1 -0
- package/dist/Typography-6jelcyoY.js +22 -0
- package/dist/Typography-6jelcyoY.js.map +1 -0
- package/dist/UI/accordion/index.js +14 -0
- package/dist/UI/advancedSearchBuilder/index.js +4 -0
- package/dist/UI/charts/index.js +3 -0
- package/dist/UI/components/dataDisplay/index.js +19 -0
- package/dist/UI/components/feedback/index.js +4 -0
- package/dist/UI/components/index.js +22 -0
- package/dist/UI/containers/index.js +7 -0
- package/dist/UI/dataDisplay/FluentActivity/index.js +5 -0
- package/dist/UI/dataDisplay/FluentDataTable/FluentBody/index.js +3 -0
- package/dist/UI/dataDisplay/FluentDataTable/FluentCell/index.js +13 -0
- package/dist/UI/dataDisplay/FluentDataTable/FluentHead/index.js +3 -0
- package/dist/UI/dataDisplay/FluentDataTable/FluentRow/index.js +3 -0
- package/dist/UI/dataDisplay/FluentDataTable/index.js +17 -0
- package/dist/UI/dataDisplay/address/index.js +4 -0
- package/dist/UI/dataDisplay/cardList/index.js +4 -0
- package/dist/UI/dataDisplay/directory/index.js +4 -0
- package/dist/UI/dataDisplay/entityHeader/index.js +34 -0
- package/dist/UI/dataDisplay/index.js +78 -0
- package/dist/UI/dataDisplay/map/index.js +6 -0
- package/dist/UI/dataDisplay/notes/index.js +7 -0
- package/dist/UI/dataDisplay/ticketCard/index.js +6 -0
- package/dist/UI/dataDisplay/typography/index.js +12 -0
- package/dist/UI/dataDisplay/visualization/index.js +7 -0
- package/dist/UI/demos/index.js +3 -0
- package/dist/UI/feedback/index.js +12 -0
- package/dist/UI/fileViewer/index.js +27 -0
- package/dist/UI/floorplans/index.js +56 -0
- package/dist/UI/forms/index.js +50 -0
- package/dist/UI/iframe/index.js +4 -0
- package/dist/UI/index.js +213 -0
- package/dist/UI/inputs/buttons/index.js +53 -0
- package/dist/UI/inputs/buttons/index.js.map +1 -0
- package/dist/UI/inputs/calendar/index.js +3 -0
- package/dist/UI/inputs/checkbox/index.js +3 -0
- package/dist/UI/inputs/datetimes/index.js +4 -0
- package/dist/UI/inputs/fieldArrayCard/index.js +66 -0
- package/dist/UI/inputs/link/index.js +4 -0
- package/dist/UI/inputs/menus/index.js +11 -0
- package/dist/UI/inputs/pickers/index.js +8 -0
- package/dist/UI/inputs/radio/index.js +3 -0
- package/dist/UI/inputs/richEditors/index.js +3 -0
- package/dist/UI/inputs/sliders/index.js +3 -0
- package/dist/UI/inputs/textField/index.js +14 -0
- package/dist/UI/inputs/toggle/index.js +3 -0
- package/dist/UI/loading/LoadingIndicator/index.js +3 -0
- package/dist/UI/loading/index.js +6 -0
- package/dist/UI/mapLayout/index.js +61 -0
- package/dist/UI/maps/index.js +4 -0
- package/dist/UI/navigation/index.js +27 -0
- package/dist/UI/navigation/menus/index.js +21 -0
- package/dist/UI/navigation/tabs/defaultTabs/index.js +5 -0
- package/dist/UI/navigation/tabs/index.js +8 -0
- package/dist/UI/property/index.js +9 -0
- package/dist/UI/property/widgets/index.js +7 -0
- package/dist/UI/stepper/index.js +3 -0
- package/dist/UI/support/index.js +31 -0
- package/dist/UI/surfaces/NestedGrid/index.js +6 -0
- package/dist/UI/surfaces/NestedGrid/ui/index.js +4 -0
- package/dist/UI/surfaces/cards/index.js +33 -0
- package/dist/UI/surfaces/cards/newsCard/index.js +3 -0
- package/dist/UI/surfaces/cards/workOrderCard/index.js +13 -0
- package/dist/UI/surfaces/index.js +39 -0
- package/dist/UI/templates/index.js +74 -0
- package/dist/UI/templates/newGrid/index.js +36 -0
- package/dist/UI/templates/ui/index.js +15 -0
- package/dist/UI/timeline/fluentTimeline/index.js +13 -0
- package/dist/UI/timeline/index.js +14 -0
- package/dist/UI/utilityDisplay/alerts/index.js +24 -0
- package/dist/UI/utilityDisplay/index.js +85 -0
- package/dist/UI/utilityDisplay/ui/index.js +5 -0
- package/dist/UI/utilityDisplay/utilities/index.js +6 -0
- package/dist/UI/utilityDisplay/utilityHeader/index.js +16 -0
- package/dist/UI/widgets/index.js +17 -0
- package/dist/UI-B4fGY3AB.js +45 -0
- package/dist/UI-B4fGY3AB.js.map +1 -0
- package/dist/UdpAlertsContainer-BFByWJQT.js +80 -0
- package/dist/UdpAlertsContainer-BFByWJQT.js.map +1 -0
- package/dist/{UdpMaintenanceConfigPage-Bbaa9QQm.js → UdpMaintenanceConfigPage-Chsq3iZC.js} +10 -8
- package/dist/UdpMaintenanceConfigPage-Chsq3iZC.js.map +1 -0
- package/dist/UdpMaintenanceConfigPage-DvSwjF_L.js +15 -0
- package/dist/UdpMaintenanceEnginePage-CpqXzyEv.js +439 -0
- package/dist/UdpMaintenanceEnginePage-CpqXzyEv.js.map +1 -0
- package/dist/UdpMaintenanceEnginePage-CutwTNgV.js +59 -0
- package/dist/UdpMapToolbar-B6g5Kc_y.js +17 -0
- package/dist/UdpMapToolbar-B6g5Kc_y.js.map +1 -0
- package/dist/{UdpPublicForm-3xkpVjji.js → UdpPublicForm-DNVbin2l.js} +8 -15
- package/dist/UdpPublicForm-DNVbin2l.js.map +1 -0
- package/dist/UdpPublicForm-DQ70FtUQ.js +6 -0
- package/dist/UdpRoutes-BctzBOjG.js +110 -0
- package/dist/UdpRoutes-BctzBOjG.js.map +1 -0
- package/dist/UdpTabs-C7pvmyRq.js +209 -0
- package/dist/UdpTabs-C7pvmyRq.js.map +1 -0
- package/dist/UdpTimeSelector-BIKJO-Q4.js +147 -0
- package/dist/UdpTimeSelector-BIKJO-Q4.js.map +1 -0
- package/dist/UnityFluentIcon-fuqAQh0C.js +70 -0
- package/dist/UnityFluentIcon-fuqAQh0C.js.map +1 -0
- package/dist/UnityIconLibrary-DnCuEr5M.js +44 -0
- package/dist/UnityIconLibrary-DnCuEr5M.js.map +1 -0
- package/dist/UnitySessionStorage-DBqfMiK5.js +19 -0
- package/dist/UnitySessionStorage-DBqfMiK5.js.map +1 -0
- package/dist/UserFormSideSheet-ExBC8Coy.js +399 -0
- package/dist/UserFormSideSheet-ExBC8Coy.js.map +1 -0
- package/dist/UtilityBar-CoBkrOKT.js +98 -0
- package/dist/UtilityBar-CoBkrOKT.js.map +1 -0
- package/dist/UtilityBarInport-BZbPE650.js +22 -0
- package/dist/UtilityBarInport-BZbPE650.js.map +1 -0
- package/dist/UtilitySideBar-otYqGPhu.js +95 -0
- package/dist/UtilitySideBar-otYqGPhu.js.map +1 -0
- package/dist/VectorLayer-DvXP_PbI.js +72 -0
- package/dist/VectorLayer-DvXP_PbI.js.map +1 -0
- package/dist/{VirtualBrowser-CiD8XKsM.js → VirtualBrowser-79SyTCIe.js} +28 -141
- package/dist/VirtualBrowser-79SyTCIe.js.map +1 -0
- package/dist/VirtualBrowser-CiO6tvKp.js +76 -0
- package/dist/VirtualForm-CZWtQ2vU.js +65 -0
- package/dist/VirtualForm-CZWtQ2vU.js.map +1 -0
- package/dist/WorkflowContainer-9V9u_P1t.js +187 -0
- package/dist/WorkflowContainer-9V9u_P1t.js.map +1 -0
- package/dist/WorkflowContainer-DtvXxyTb.js +73 -0
- package/dist/WorkflowContent-BnzM52Sa.js +428 -0
- package/dist/WorkflowContent-BnzM52Sa.js.map +1 -0
- package/dist/WorkflowTaskFlow-BCm5Iyy0.js +135 -0
- package/dist/WorkflowTaskFlow-BCm5Iyy0.js.map +1 -0
- package/dist/WorkflowTreeMenu-H_Nbxi3A.js +346 -0
- package/dist/WorkflowTreeMenu-H_Nbxi3A.js.map +1 -0
- package/dist/ZoomControl-Bud43x3A.js +38 -0
- package/dist/ZoomControl-Bud43x3A.js.map +1 -0
- package/dist/accordion-Sv7pQXQW.js +192 -0
- package/dist/accordion-Sv7pQXQW.js.map +1 -0
- package/dist/actionSummary-CyjnFFFF.js +255 -0
- package/dist/actionSummary-CyjnFFFF.js.map +1 -0
- package/dist/actionUtils-7dmb-PYX.js +218 -0
- package/dist/actionUtils-7dmb-PYX.js.map +1 -0
- package/dist/actions/actionSummary/index.js +26 -0
- package/dist/actions/index.js +89 -0
- package/dist/actions/sidebar/index.js +12 -0
- package/dist/actions/utils/index.js +13 -0
- package/dist/addUser-DdxKkJbW.js +1 -0
- package/dist/address-CHc5T3Ve.js +1 -0
- package/dist/advancedSearchBuilder-tEAoUd1I.js +19 -0
- package/dist/advancedSearchBuilder-tEAoUd1I.js.map +1 -0
- package/dist/aggregateUtils-C04KQf3k.js +70 -0
- package/dist/aggregateUtils-C04KQf3k.js.map +1 -0
- package/dist/aggrid-TPfO-kkM.js +1 -0
- package/dist/aggridHelpers-C5ZG2ZqM.js +103 -0
- package/dist/aggridHelpers-C5ZG2ZqM.js.map +1 -0
- package/dist/alerts-DzYv3cz-.js +1 -0
- package/dist/{apiHelpers-DZPI1QCL.js → apiHelpers-Bju2gkBq.js} +4 -38
- package/dist/apiHelpers-Bju2gkBq.js.map +1 -0
- package/dist/appSwitcher-ERlag4rB.js +1 -0
- package/dist/assets/index.js +1 -0
- package/dist/auth-BOzVI3A0.js +1 -0
- package/dist/axiosInterceptors-Dn_haR1Q.js +28 -0
- package/dist/axiosInterceptors-Dn_haR1Q.js.map +1 -0
- package/dist/cardList-DCz9PlTm.js +78 -0
- package/dist/cardList-DCz9PlTm.js.map +1 -0
- package/dist/cards-K6gJJHyT.js +287 -0
- package/dist/cards-K6gJJHyT.js.map +1 -0
- package/dist/catalog-DoJ2_1fY.js +1 -0
- package/dist/catalogStore-DDyUXvDn.js +30 -0
- package/dist/catalogStore-DDyUXvDn.js.map +1 -0
- package/dist/charts-OdBKS6di.js +55 -0
- package/dist/charts-OdBKS6di.js.map +1 -0
- package/dist/chatBot/index.js +13 -0
- package/dist/chatBot-flH0_FCC.js +1 -0
- package/dist/chunk-CTAAG5j7.js +13 -0
- package/dist/colorConverter-sleh0lAZ.js +91 -0
- package/dist/colorConverter-sleh0lAZ.js.map +1 -0
- package/dist/colors-VLk-T125.js +73 -0
- package/dist/colors-VLk-T125.js.map +1 -0
- package/dist/componentSystems/multiThreadTimeline/functions/index.js +4 -0
- package/dist/componentSystems/multiThreadTimeline/index.js +34 -0
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +28 -0
- package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +24 -0
- package/dist/componentSystems/multiThreadTimeline/ui/index.js +23 -0
- package/dist/componentSystems/multiThreadTimeline/ui/modified/index.js +5 -0
- package/dist/componentSystems/pageRenderer/hocs/index.js +68 -0
- package/dist/componentSystems/pageRenderer/hooks/index.js +4 -0
- package/dist/componentSystems/pageRenderer/index.js +72 -0
- package/dist/componentSystems/pageRenderer/utils/index.js +4 -0
- package/dist/componentSystems/pageRenderer/wrappers/index.js +67 -0
- package/dist/components-CG2vp7rI.js +1 -0
- package/dist/components-DqInG_Nm.js +1 -0
- package/dist/configService/index.js +3 -0
- package/dist/constants/index.js +3 -0
- package/dist/containers/index.js +4 -0
- package/dist/containers-DDfXvwcE.js +1 -0
- package/dist/contexts/index.js +6 -0
- package/dist/crud-BCrruPIb.js +1 -0
- package/dist/crudActions-DL7ifk-D.js +205 -0
- package/dist/crudActions-DL7ifk-D.js.map +1 -0
- package/dist/crudBrowser-BG7BYo4m.js +1 -0
- package/dist/customIcons-D0bpSyKS.js +1 -0
- package/dist/dashboard/index.js +10 -0
- package/dist/dashboard-DfDQY2Uz.js +1 -0
- package/dist/dataBrowser/forms/index.js +17 -0
- package/dist/dataBrowser/index.js +90 -0
- package/dist/dataDisplay-CAJwXLeD.js +50 -0
- package/dist/dataDisplay-CAJwXLeD.js.map +1 -0
- package/dist/dataDisplay-CFDmXer4.js +280 -0
- package/dist/dataDisplay-CFDmXer4.js.map +1 -0
- package/dist/defaultTabs-OEo6-sj7.js +93 -0
- package/dist/defaultTabs-OEo6-sj7.js.map +1 -0
- package/dist/demos-CF7sKLmt.js +11 -0
- package/dist/demos-CF7sKLmt.js.map +1 -0
- package/dist/diffChecker/index.js +4 -0
- package/dist/directory-BTN_b0Hg.js +52 -0
- package/dist/directory-BTN_b0Hg.js.map +1 -0
- package/dist/entities-B32Z17Rb.js +1 -0
- package/dist/entityHeader-DDrAG_I8.js +875 -0
- package/dist/entityHeader-DDrAG_I8.js.map +1 -0
- package/dist/{entityUtilities-Hohniu0Q.js → entityUtilities-D7_FeTEd.js} +2 -2
- package/dist/{entityUtilities-Hohniu0Q.js.map → entityUtilities-D7_FeTEd.js.map} +1 -1
- package/dist/enums/index.js +10 -0
- package/dist/feedback-BYM33Djb.js +1 -0
- package/dist/feedback-xwtgVkbx.js +1 -0
- package/dist/fileViewer-DnbpU0bo.js +546 -0
- package/dist/fileViewer-DnbpU0bo.js.map +1 -0
- package/dist/floorplanFunctions-QEXAOJwy.js +1 -0
- package/dist/floorplans-c_VQn4Rz.js +154 -0
- package/dist/floorplans-c_VQn4Rz.js.map +1 -0
- package/dist/fluentTimeline-DSUMhWcD.js +156 -0
- package/dist/fluentTimeline-DSUMhWcD.js.map +1 -0
- package/dist/form-CiiauVLk.js +76 -0
- package/dist/form-CiiauVLk.js.map +1 -0
- package/dist/formatBytes-D6vdwZ2k.js +23 -0
- package/dist/formatBytes-D6vdwZ2k.js.map +1 -0
- package/dist/forms-CKk0LTpY.js +456 -0
- package/dist/forms-CKk0LTpY.js.map +1 -0
- package/dist/forms-DJnB4tsd.js +1 -0
- package/dist/functions-MWuMR-lY.js +1 -0
- package/dist/gridVisualizationFunctions-CRMRUuum.js +67 -0
- package/dist/gridVisualizationFunctions-CRMRUuum.js.map +1 -0
- package/dist/hocs-1cIHPs7M.js +1 -0
- package/dist/hooks/index.js +52 -0
- package/dist/hooks-BJgvHLxQ.js +1 -0
- package/dist/hooks-CqVWErg9.js +160 -0
- package/dist/hooks-CqVWErg9.js.map +1 -0
- package/dist/iconLibrary-C8sePp_X.js +1 -0
- package/dist/iframe-T69IOxry.js +1 -0
- package/dist/index.js +3813 -44099
- package/dist/index.js.map +1 -1
- package/dist/input-B3JblbZF.js +1 -0
- package/dist/inquiry/dashboard/index.js +29 -0
- package/dist/inquiry/index.js +150 -0
- package/dist/inquiry/index.js.map +1 -0
- package/dist/inquiry/inquiryBar/index.js +10 -0
- package/dist/inquiry/search/index.js +41 -0
- package/dist/inquiryBar-CTeb-8eD.js +1 -0
- package/dist/inquiryStore-COAx0QBg.js +39 -0
- package/dist/inquiryStore-COAx0QBg.js.map +1 -0
- package/dist/isValueSelected-BfNYVyaD.js +10 -0
- package/dist/isValueSelected-BfNYVyaD.js.map +1 -0
- package/dist/layout/index.js +14 -0
- package/dist/leafletMaps-DKJcEBvd.js +1 -0
- package/dist/loading-DRhXmScv.js +1 -0
- package/dist/lookupsStore-A8pX7cDA.js +20 -0
- package/dist/lookupsStore-A8pX7cDA.js.map +1 -0
- package/dist/maintenanceEngine/crudBrowser/index.js +54 -0
- package/dist/maintenanceEngine/index.js +93 -0
- package/dist/maintenanceEngine/tableBrowser/index.js +61 -0
- package/dist/maintenanceEngine/virtualBrowser/index.js +77 -0
- package/dist/maintenanceEngine-CpZ9tfB0.js +1 -0
- package/dist/map-DU7O_P-0.js +60 -0
- package/dist/map-DU7O_P-0.js.map +1 -0
- package/dist/map-library/Controls/index.js +31 -0
- package/dist/map-library/Controls/index.js.map +1 -0
- package/dist/map-library/Layers/index.js +4 -0
- package/dist/map-library/Map/index.js +8 -0
- package/dist/map-library/Source/index.js +34 -0
- package/dist/map-library/Source/index.js.map +1 -0
- package/dist/map-library/functions/index.js +3 -0
- package/dist/map-library/geoLocation/index.js +5 -0
- package/dist/map-library/ui/index.js +6 -0
- package/dist/mapFunctions-6iGvgVF1.js +32 -0
- package/dist/mapFunctions-6iGvgVF1.js.map +1 -0
- package/dist/mapLayout-CxliPJ5p.js +785 -0
- package/dist/mapLayout-CxliPJ5p.js.map +1 -0
- package/dist/maps/index.js +16 -0
- package/dist/maps/leafletMaps/index.js +7 -0
- package/dist/maps/leafletMaps/ui/index.js +5 -0
- package/dist/maps/openLayerMaps/Controls/index.js +4 -0
- package/dist/maps/openLayerMaps/Layers/index.js +46 -0
- package/dist/maps/openLayerMaps/Layers/index.js.map +1 -0
- package/dist/maps/openLayerMaps/Map/index.js +4 -0
- package/dist/maps/openLayerMaps/Source/index.js +3 -0
- package/dist/maps/openLayerMaps/ui/index.js +6 -0
- package/dist/maps-DgJG7ziA.js +11 -0
- package/dist/maps-DgJG7ziA.js.map +1 -0
- package/dist/menuPage/index.js +56 -0
- package/dist/menuUtilities-DTbyD6bg.js +55 -0
- package/dist/menuUtilities-DTbyD6bg.js.map +1 -0
- package/dist/menus-B-Xz-Ggy.js +1 -0
- package/dist/menus-QHvrjl6w.js +1 -0
- package/dist/menus-berWqAF-.js +81 -0
- package/dist/menus-berWqAF-.js.map +1 -0
- package/dist/methodUtils-Bgi0VCWP.js +20 -0
- package/dist/methodUtils-Bgi0VCWP.js.map +1 -0
- package/dist/models/index.js +7 -0
- package/dist/modified-Bg5LeKdV.js +1 -0
- package/dist/mttFunctions-BFUthekm.js +248 -0
- package/dist/mttFunctions-BFUthekm.js.map +1 -0
- package/dist/mttMainTimeline-DgGEegXs.js +1 -0
- package/dist/mttSummary-Dbl2ZLl1.js +1 -0
- package/dist/navigation-DtBAqSLf.js +144 -0
- package/dist/navigation-DtBAqSLf.js.map +1 -0
- package/dist/newGrid-Da54TcHb.js +126 -0
- package/dist/newGrid-Da54TcHb.js.map +1 -0
- package/dist/newsCard-CTtyYCtA.js +57 -0
- package/dist/newsCard-CTtyYCtA.js.map +1 -0
- package/dist/notes/index.js +40 -0
- package/dist/notes-D_Iqxv0x.js +63 -0
- package/dist/notes-D_Iqxv0x.js.map +1 -0
- package/dist/page/index.js +29 -0
- package/dist/page-BGtqWrDb.js +1 -0
- package/dist/pageEnums-CT6NFA8B.js +21 -0
- package/dist/pageEnums-CT6NFA8B.js.map +1 -0
- package/dist/paymentVendorFactoryEnum-BqXZMcQF.js +38 -0
- package/dist/paymentVendorFactoryEnum-BqXZMcQF.js.map +1 -0
- package/dist/property-CkiS6bPL.js +1 -0
- package/dist/propertyTypeEnums-VqSmSIfe.js +15 -0
- package/dist/propertyTypeEnums-VqSmSIfe.js.map +1 -0
- package/dist/provider-D1EvAE26.js +1 -0
- package/dist/redirect-DEombgSz.js +1 -0
- package/dist/redirectToLink-B4Y9oH1K.js +31 -0
- package/dist/redirectToLink-B4Y9oH1K.js.map +1 -0
- package/dist/redirectToProduct-BHIghYZd.js +9 -0
- package/dist/redirectToProduct-BHIghYZd.js.map +1 -0
- package/dist/reminderConstants-Btqf39dU.js +12 -0
- package/dist/reminderConstants-Btqf39dU.js.map +1 -0
- package/dist/reminders/index.js +45 -0
- package/dist/reports/index.js +12 -0
- package/dist/routes/index.js +8 -0
- package/dist/rules-Bbd-Yg6p.js +1 -0
- package/dist/search-D3z7GAO_.js +1 -0
- package/dist/search-YPsWhV_L.js +1 -0
- package/dist/searchEnums-BFWywTGh.js +11 -0
- package/dist/searchEnums-BFWywTGh.js.map +1 -0
- package/dist/shell/index.js +124 -0
- package/dist/shell/ui/addUser/index.js +23 -0
- package/dist/shell/ui/appSwitcher/index.js +9 -0
- package/dist/shell/ui/index.js +60 -0
- package/dist/shellStore-Bqwtbs_K.js +31 -0
- package/dist/shellStore-Bqwtbs_K.js.map +1 -0
- package/dist/sidebar-C96Z7xFg.js +1 -0
- package/dist/stepper-BNXvKPS_.js +11 -0
- package/dist/stepper-BNXvKPS_.js.map +1 -0
- package/dist/storage-Dxdn7n1x.js +1 -0
- package/dist/stores/index.js +10 -0
- package/dist/style-C58TNESf.js +1 -0
- package/dist/support-BmEH05sB.js +1 -0
- package/dist/surfaces-BermwmhU.js +1 -0
- package/dist/tableBrowser-_iJW5ftf.js +1 -0
- package/dist/tabs-BcnfMjRc.js +49 -0
- package/dist/tabs-BcnfMjRc.js.map +1 -0
- package/dist/tagEnums-BD6xUu3X.js +11 -0
- package/dist/tagEnums-BD6xUu3X.js.map +1 -0
- package/dist/teleporterStore-hSgRrvso.js +33 -0
- package/dist/teleporterStore-hSgRrvso.js.map +1 -0
- package/dist/templates-DuK-z0vt.js +211 -0
- package/dist/templates-DuK-z0vt.js.map +1 -0
- package/dist/tenant-Dv4CtN1T.js +1 -0
- package/dist/tenantContext-Bh6_Lj9T.js +8 -0
- package/dist/tenantContext-Bh6_Lj9T.js.map +1 -0
- package/dist/tenantStore-dj8UJA7G.js +19 -0
- package/dist/tenantStore-dj8UJA7G.js.map +1 -0
- package/dist/theme-DLwkifVk.js +286 -0
- package/dist/theme-DLwkifVk.js.map +1 -0
- package/dist/ticketCard-CFV9u37h.js +143 -0
- package/dist/ticketCard-CFV9u37h.js.map +1 -0
- package/dist/timeline-BjNWT18j.js +213 -0
- package/dist/timeline-BjNWT18j.js.map +1 -0
- package/dist/tree-BE3grkxa.js +1 -0
- package/dist/treeMenu/index.js +23 -0
- package/dist/types/UI/accordion/index.d.ts +3 -0
- package/dist/types/UI/advancedSearchBuilder/index.d.ts +3 -0
- package/dist/types/UI/charts/UdpSankeyChart.d.ts +12 -0
- package/dist/types/UI/charts/UdpXYMultiSeriesChart.d.ts +9 -0
- package/dist/types/UI/charts/types.d.ts +32 -6
- package/dist/types/UI/components/dataDisplay/index.d.ts +5 -0
- package/dist/types/UI/components/feedback/index.d.ts +1 -0
- package/dist/types/UI/components/index.d.ts +2 -0
- package/dist/types/UI/containers/index.d.ts +3 -0
- package/dist/types/UI/dataDisplay/FluentActivity/index.d.ts +4 -0
- package/dist/types/UI/dataDisplay/FluentDataTable/index.d.ts +3 -0
- package/dist/types/UI/dataDisplay/address/index.d.ts +3 -0
- package/dist/types/UI/dataDisplay/cardList/index.d.ts +4 -0
- package/dist/types/UI/dataDisplay/directory/index.d.ts +4 -0
- package/dist/types/UI/dataDisplay/entityHeader/index.d.ts +3 -0
- package/dist/types/UI/dataDisplay/index.d.ts +28 -0
- package/dist/types/UI/dataDisplay/map/index.d.ts +5 -0
- package/dist/types/UI/dataDisplay/notes/index.d.ts +4 -0
- package/dist/types/UI/dataDisplay/ticketCard/index.d.ts +5 -0
- package/dist/types/UI/dataDisplay/typography/index.d.ts +8 -0
- package/dist/types/UI/dataDisplay/visualization/amCharts/AmChart.d.ts +1 -1
- package/dist/types/UI/dataDisplay/visualization/index.d.ts +5 -0
- package/dist/types/UI/demos/index.d.ts +3 -0
- package/dist/types/UI/feedback/index.d.ts +7 -0
- package/dist/types/UI/fileViewer/index.d.ts +3 -0
- package/dist/types/UI/floorplans/index.d.ts +3 -0
- package/dist/types/UI/forms/index.d.ts +7 -0
- package/dist/types/UI/iframe/index.d.ts +3 -0
- package/dist/types/UI/index.d.ts +30 -0
- package/dist/types/UI/inputs/buttons/index.d.ts +21 -0
- package/dist/types/UI/inputs/calendar/AmbientDateRangeSelector.d.ts +3 -0
- package/dist/types/UI/inputs/calendar/AmbientSingleDateSelector.d.ts +3 -0
- package/dist/types/UI/inputs/calendar/index.d.ts +4 -0
- package/dist/types/UI/inputs/checkbox/index.d.ts +3 -0
- package/dist/types/UI/inputs/dateRangeSelector/UdpDateRangeSelector.d.ts +2 -0
- package/dist/types/UI/inputs/datetimes/index.d.ts +5 -0
- package/dist/types/UI/inputs/fieldArrayCard/index.d.ts +7 -0
- package/dist/types/UI/inputs/link/index.d.ts +4 -0
- package/dist/types/UI/inputs/menus/index.d.ts +7 -0
- package/dist/types/UI/inputs/pickers/index.d.ts +8 -0
- package/dist/types/UI/inputs/radio/index.d.ts +4 -0
- package/dist/types/UI/inputs/richEditors/index.d.ts +3 -0
- package/dist/types/UI/inputs/sliders/index.d.ts +3 -0
- package/dist/types/UI/inputs/textField/index.d.ts +9 -0
- package/dist/types/UI/inputs/toggle/index.d.ts +3 -0
- package/dist/types/UI/loading/LoadingIndicator/index.d.ts +1 -0
- package/dist/types/UI/loading/index.d.ts +5 -0
- package/dist/types/UI/mapLayout/index.d.ts +3 -0
- package/dist/types/UI/maps/index.d.ts +5 -0
- package/dist/types/UI/navigation/index.d.ts +5 -0
- package/dist/types/UI/navigation/menus/index.d.ts +8 -0
- package/dist/types/UI/navigation/tabs/defaultTabs/index.d.ts +7 -0
- package/dist/types/UI/navigation/tabs/index.d.ts +6 -0
- package/dist/types/UI/property/index.d.ts +3 -0
- package/dist/types/UI/stepper/index.d.ts +4 -0
- package/dist/types/UI/support/index.d.ts +4 -0
- package/dist/types/UI/surfaces/NestedGrid/index.d.ts +4 -0
- package/dist/types/UI/surfaces/NestedGrid/ui/index.d.ts +3 -0
- package/dist/types/UI/surfaces/cards/index.d.ts +18 -0
- package/dist/types/UI/surfaces/cards/newsCard/index.d.ts +3 -0
- package/dist/types/UI/surfaces/cards/workOrderCard/index.d.ts +4 -0
- package/dist/types/UI/surfaces/index.d.ts +5 -0
- package/dist/types/UI/templates/index.d.ts +15 -0
- package/dist/types/UI/templates/newGrid/index.d.ts +8 -0
- package/dist/types/UI/templates/ui/index.d.ts +7 -0
- package/dist/types/UI/timeline/fluentTimeline/index.d.ts +5 -0
- package/dist/types/UI/timeline/index.d.ts +14 -0
- package/dist/types/UI/utilityDisplay/alerts/index.d.ts +4 -0
- package/dist/types/UI/utilityDisplay/index.d.ts +20 -0
- package/dist/types/UI/utilityDisplay/ui/index.d.ts +3 -0
- package/dist/types/UI/utilityDisplay/utilities/index.d.ts +3 -0
- package/dist/types/UI/utilityDisplay/utilityHeader/index.d.ts +7 -0
- package/dist/types/UI/widgets/index.d.ts +4 -0
- package/dist/types/UI/widgets/utils/dateUtils.d.ts +46 -0
- package/dist/types/actions/index.d.ts +13 -0
- package/dist/types/actions/sidebar/index.d.ts +3 -0
- package/dist/types/actions/utils/index.d.ts +3 -0
- package/dist/types/assets/index.d.ts +2 -0
- package/dist/types/chatBot/index.d.ts +4 -0
- package/dist/types/componentSystems/multiThreadTimeline/functions/index.d.ts +3 -0
- package/dist/types/componentSystems/multiThreadTimeline/index.d.ts +7 -0
- package/dist/types/componentSystems/multiThreadTimeline/mttMainTimeline/index.d.ts +5 -0
- package/dist/types/componentSystems/multiThreadTimeline/mttSummary/index.d.ts +3 -0
- package/dist/types/componentSystems/multiThreadTimeline/ui/index.d.ts +20 -0
- package/dist/types/componentSystems/multiThreadTimeline/ui/modified/index.d.ts +3 -0
- package/dist/types/componentSystems/pageRenderer/hocs/index.d.ts +3 -0
- package/dist/types/componentSystems/pageRenderer/hooks/index.d.ts +3 -0
- package/dist/types/componentSystems/pageRenderer/index.d.ts +7 -0
- package/dist/types/componentSystems/pageRenderer/utils/index.d.ts +3 -0
- package/dist/types/componentSystems/pageRenderer/wrappers/index.d.ts +10 -0
- package/dist/types/configService/index.d.ts +1 -0
- package/dist/types/constants/index.d.ts +3 -0
- package/dist/types/containers/index.d.ts +3 -0
- package/dist/types/contexts/index.d.ts +8 -0
- package/dist/types/dashboard/index.d.ts +7 -0
- package/dist/types/dataBrowser/forms/index.d.ts +6 -0
- package/dist/types/dataBrowser/index.d.ts +5 -0
- package/dist/types/diffChecker/index.d.ts +3 -0
- package/dist/types/enums/auditEventEnums.d.ts +5 -0
- package/dist/types/enums/index.d.ts +12 -0
- package/dist/types/enums/unitySystemEnums.d.ts +12 -1
- package/dist/types/hooks/index.d.ts +21 -0
- package/dist/types/index.d.ts +6 -3
- package/dist/types/inquiry/dashboard/index.d.ts +4 -0
- package/dist/types/inquiry/index.d.ts +23 -0
- package/dist/types/inquiry/inquiryBar/index.d.ts +4 -0
- package/dist/types/inquiry/search/index.d.ts +7 -0
- package/dist/types/layout/index.d.ts +9 -0
- package/dist/types/maintenanceEngine/crudBrowser/index.d.ts +6 -0
- package/dist/types/maintenanceEngine/index.d.ts +6 -0
- package/dist/types/maintenanceEngine/tableBrowser/index.d.ts +4 -0
- package/dist/types/maintenanceEngine/virtualBrowser/VirtualBrowser.d.ts +1 -0
- package/dist/types/maintenanceEngine/virtualBrowser/index.d.ts +5 -0
- package/dist/types/map-library/Controls/index.d.ts +7 -5
- package/dist/types/map-library/Layers/index.d.ts +7 -5
- package/dist/types/map-library/Map/index.d.ts +5 -1
- package/dist/types/map-library/Source/index.d.ts +6 -4
- package/dist/types/map-library/functions/index.d.ts +3 -0
- package/dist/types/map-library/geoLocation/index.d.ts +4 -0
- package/dist/types/map-library/ui/index.d.ts +12 -0
- package/dist/types/maps/index.d.ts +4 -0
- package/dist/types/maps/leafletMaps/index.d.ts +5 -0
- package/dist/types/maps/leafletMaps/ui/index.d.ts +4 -0
- package/dist/types/maps/openLayerMaps/Layers/index.d.ts +7 -5
- package/dist/types/maps/openLayerMaps/ui/index.d.ts +9 -0
- package/dist/types/menuPage/CustomMenuPage.d.ts +22 -0
- package/dist/types/menuPage/index.d.ts +3 -0
- package/dist/types/models/index.d.ts +8 -0
- package/dist/types/notes/index.d.ts +3 -0
- package/dist/types/page/index.d.ts +8 -0
- package/dist/types/reminders/index.d.ts +5 -0
- package/dist/types/reports/index.d.ts +3 -0
- package/dist/types/routes/components/PageNotFoundRoute.d.ts +1 -0
- package/dist/types/routes/components/PasswordResetRedirect.d.ts +1 -0
- package/dist/types/routes/index.d.ts +4 -0
- package/dist/types/shell/index.d.ts +4 -0
- package/dist/types/shell/ui/addUser/index.d.ts +6 -0
- package/dist/types/shell/ui/appSwitcher/index.d.ts +9 -0
- package/dist/types/shell/ui/index.d.ts +17 -0
- package/dist/types/stores/index.d.ts +10 -0
- package/dist/types/treeMenu/index.d.ts +4 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/udp/ShortcutContent/index.d.ts +4 -0
- package/dist/types/udp/export/MyExportsPage.d.ts +1 -0
- package/dist/types/udp/export/index.d.ts +6 -0
- package/dist/types/udp/fileImportMapping/index.d.ts +8 -0
- package/dist/types/udp/pages/UdpAuditEventSidesheet.d.ts +3 -0
- package/dist/types/udp/pages/UdpAuditEventsPage.d.ts +3 -0
- package/dist/types/udp/pages/index.d.ts +20 -0
- package/dist/types/udp/pages/udpPages.d.ts +2 -0
- package/dist/types/udp/utilities/dateLocalizationHooks.d.ts +26 -0
- package/dist/types/udp/utilities/index.d.ts +3 -0
- package/dist/types/udp/utilities/useDateStringColumnDef.d.ts +18 -0
- package/dist/types/uploader/index.d.ts +7 -0
- package/dist/types/utilities/DemoJuly/index.d.ts +3 -0
- package/dist/types/utilities/aggrid/index.d.ts +6 -0
- package/dist/types/utilities/auth/index.d.ts +17 -0
- package/dist/types/utilities/catalog/index.d.ts +3 -0
- package/dist/types/utilities/chatBot/index.d.ts +5 -0
- package/dist/types/utilities/crud/index.d.ts +3 -0
- package/dist/types/utilities/customIcons/index.d.ts +4 -0
- package/dist/types/utilities/entities/index.d.ts +3 -0
- package/dist/types/utilities/floorplanFunctions/index.d.ts +3 -0
- package/dist/types/utilities/form/paymentForm/CreditCardUtils.d.ts +5 -1
- package/dist/types/utilities/iconLibrary/SvgIcon.d.ts +12 -0
- package/dist/types/utilities/iconLibrary/index.d.ts +9 -0
- package/dist/types/utilities/index.d.ts +44 -0
- package/dist/types/utilities/input/index.d.ts +5 -0
- package/dist/types/utilities/maintenanceEngine/index.d.ts +3 -0
- package/dist/types/utilities/menus/index.d.ts +4 -0
- package/dist/types/utilities/page/index.d.ts +3 -0
- package/dist/types/utilities/provider/index.d.ts +3 -0
- package/dist/types/utilities/redirect/index.d.ts +4 -0
- package/dist/types/utilities/rules/index.d.ts +3 -0
- package/dist/types/utilities/search/index.d.ts +4 -0
- package/dist/types/utilities/storage/index.d.ts +3 -0
- package/dist/types/utilities/style/index.d.ts +6 -0
- package/dist/types/utilities/tenant/index.d.ts +5 -0
- package/dist/types/utilities/tree/TreeUtilities.d.ts +2 -0
- package/dist/types/utilities/tree/index.d.ts +3 -0
- package/dist/types/utilities/uploader/index.d.ts +7 -0
- package/dist/types/utilities/utilityBar/index.d.ts +8 -0
- package/dist/types/utilities/workflow/index.d.ts +3 -0
- package/dist/types/workflow/WorkflowContainer.d.ts +1 -0
- package/dist/types/workflow/components/index.d.ts +3 -0
- package/dist/types/workflow/index.d.ts +7 -0
- package/dist/types/workflow/menus/index.d.ts +4 -0
- package/dist/typography-Cm-MBm67.js +47 -0
- package/dist/typography-Cm-MBm67.js.map +1 -0
- package/dist/udp/ShortcutContent/index.js +20 -0
- package/dist/udp/export/index.js +73 -0
- package/dist/udp/fileImportMapping/index.js +120 -0
- package/dist/udp/fileImportMapping/index.js.map +1 -0
- package/dist/udp/pages/index.js +255 -0
- package/dist/udp/utilities/index.js +3 -0
- package/dist/udpPages-DigIOO_J.js +2821 -0
- package/dist/udpPages-DigIOO_J.js.map +1 -0
- package/dist/ui-AtMBCKfe.js +20 -0
- package/dist/ui-AtMBCKfe.js.map +1 -0
- package/dist/ui-CdJK-GeY.js +1 -0
- package/dist/ui-DIMtL2w5.js +1 -0
- package/dist/ui-DJnya6DW.js +19 -0
- package/dist/ui-DJnya6DW.js.map +1 -0
- package/dist/ui-Dk8IEfOq.js +1 -0
- package/dist/ui-_KR24HU9.js +1 -0
- package/dist/unitySystemEnums-DXk8yS3v.js +296 -0
- package/dist/unitySystemEnums-DXk8yS3v.js.map +1 -0
- package/dist/uploader/index.js +107 -0
- package/dist/uploader/index.js.map +1 -0
- package/dist/uploader-CslKfeTU.js +1 -0
- package/dist/useActions-C4qJAr_e.js +192 -0
- package/dist/useActions-C4qJAr_e.js.map +1 -0
- package/dist/useApiCatalog-Bt9zKIld.js +62 -0
- package/dist/useApiCatalog-Bt9zKIld.js.map +1 -0
- package/dist/useAuthedUser-BbuZ-TTz.js +34 -0
- package/dist/useAuthedUser-BbuZ-TTz.js.map +1 -0
- package/dist/useAxiosGet-CAH3ZOZ8.js +76 -0
- package/dist/useAxiosGet-CAH3ZOZ8.js.map +1 -0
- package/dist/{useAxiosMutate-pB7OdGIa.js → useAxiosMutate-BiRO7ZCN.js} +4 -3
- package/dist/{useAxiosMutate-pB7OdGIa.js.map → useAxiosMutate-BiRO7ZCN.js.map} +1 -1
- package/dist/useChatBot-CFYM_uhz.js +11 -0
- package/dist/useChatBot-CFYM_uhz.js.map +1 -0
- package/dist/useDefaultFormValues-DvWSqhBl.js +14 -0
- package/dist/useDefaultFormValues-DvWSqhBl.js.map +1 -0
- package/dist/useDynamicListCalculation-B4erIwyM.js +41 -0
- package/dist/useDynamicListCalculation-B4erIwyM.js.map +1 -0
- package/dist/useFluentIcon-CfE2FQgB.js +14 -0
- package/dist/useFluentIcon-CfE2FQgB.js.map +1 -0
- package/dist/useGravatar-CbLAVn5R.js +49 -0
- package/dist/useGravatar-CbLAVn5R.js.map +1 -0
- package/dist/useId-Dfv7qFlj.js +23 -0
- package/dist/useId-Dfv7qFlj.js.map +1 -0
- package/dist/useIsUnityAuthenticated-n3QuDnIj.js +10 -0
- package/dist/useIsUnityAuthenticated-n3QuDnIj.js.map +1 -0
- package/dist/useItemSubCard-BxxyLSUY.js +41 -0
- package/dist/useItemSubCard-BxxyLSUY.js.map +1 -0
- package/dist/usePageContext-BSM5LtIY.js +9 -0
- package/dist/usePageContext-BSM5LtIY.js.map +1 -0
- package/dist/usePrevious-BAOvZhl7.js +14 -0
- package/dist/usePrevious-BAOvZhl7.js.map +1 -0
- package/dist/usePromotedMethodEntities-BNxCKmpY.js +97 -0
- package/dist/usePromotedMethodEntities-BNxCKmpY.js.map +1 -0
- package/dist/usePromotedMethodEntity-YlKDqDnn.js +90 -0
- package/dist/usePromotedMethodEntity-YlKDqDnn.js.map +1 -0
- package/dist/useQueryExecutors-CU1LD7zt.js +148 -0
- package/dist/useQueryExecutors-CU1LD7zt.js.map +1 -0
- package/dist/useReadMetaData-CxjwewcJ.js +31 -0
- package/dist/useReadMetaData-CxjwewcJ.js.map +1 -0
- package/dist/useSearchFilterParamsMap-tHRVgYQ-.js +128 -0
- package/dist/useSearchFilterParamsMap-tHRVgYQ-.js.map +1 -0
- package/dist/useSetLocationState-BGgFvNVh.js +25 -0
- package/dist/useSetLocationState-BGgFvNVh.js.map +1 -0
- package/dist/useSingleLogout-CxS-L1qp.js +272 -0
- package/dist/useSingleLogout-CxS-L1qp.js.map +1 -0
- package/dist/useSplitDecimal-DWG5FyYU.js +24 -0
- package/dist/useSplitDecimal-DWG5FyYU.js.map +1 -0
- package/dist/useTenant-BGWpH8AX.js +11 -0
- package/dist/useTenant-BGWpH8AX.js.map +1 -0
- package/dist/useUpdateSearchParams-DmNKNx8U.js +23 -0
- package/dist/useUpdateSearchParams-DmNKNx8U.js.map +1 -0
- package/dist/useUser-Cn88hlN_.js +21 -0
- package/dist/useUser-Cn88hlN_.js.map +1 -0
- package/dist/users-Dd3wK8x1.js +42 -0
- package/dist/users-Dd3wK8x1.js.map +1 -0
- package/dist/utilities/DemoJuly/index.js +4 -0
- package/dist/utilities/aggrid/index.js +10 -0
- package/dist/utilities/auth/index.js +21 -0
- package/dist/utilities/catalog/index.js +4 -0
- package/dist/utilities/chatBot/index.js +7 -0
- package/dist/utilities/crud/index.js +5 -0
- package/dist/utilities/customIcons/index.js +4 -0
- package/dist/utilities/entities/index.js +5 -0
- package/dist/utilities/floorplanFunctions/index.js +4 -0
- package/dist/utilities/form/index.js +6 -0
- package/dist/utilities/iconLibrary/index.js +9 -0
- package/dist/utilities/index.js +159 -0
- package/dist/utilities/input/index.js +6 -0
- package/dist/utilities/maintenanceEngine/index.js +4 -0
- package/dist/utilities/menus/index.js +7 -0
- package/dist/utilities/page/index.js +4 -0
- package/dist/utilities/provider/index.js +94 -0
- package/dist/utilities/redirect/index.js +5 -0
- package/dist/utilities/rules/index.js +4 -0
- package/dist/utilities/search/index.js +6 -0
- package/dist/utilities/storage/index.js +4 -0
- package/dist/utilities/style/index.js +7 -0
- package/dist/utilities/tenant/index.js +14 -0
- package/dist/utilities/tree/index.js +10 -0
- package/dist/utilities/uploader/index.js +6 -0
- package/dist/utilities/utilityBar/index.js +8 -0
- package/dist/utilities/workflow/index.js +6 -0
- package/dist/utilities-CO8iPD5J.js +1 -0
- package/dist/utilityBar-efXsIsm6.js +1 -0
- package/dist/utilityDisplay-CpRgXxVJ.js +15 -0
- package/dist/utilityDisplay-CpRgXxVJ.js.map +1 -0
- package/dist/utilityHeader-DR5YhYZ4.js +47 -0
- package/dist/utilityHeader-DR5YhYZ4.js.map +1 -0
- package/dist/utils-Ccah2Nvr.js +1 -0
- package/dist/utils-K0OjqNhn.js +1 -0
- package/dist/verticalStyles-CNJRNnZb.js +141 -0
- package/dist/verticalStyles-CNJRNnZb.js.map +1 -0
- package/dist/virtualActions-ByTDOaHE.js +84 -0
- package/dist/virtualActions-ByTDOaHE.js.map +1 -0
- package/dist/virtualBrowser-BjGPv8Ks.js +1 -0
- package/dist/visualization-BmGUb6uk.js +1 -0
- package/dist/widgets-C-lZrGAQ.js +281 -0
- package/dist/widgets-C-lZrGAQ.js.map +1 -0
- package/dist/widgets-CRzkTpIV.js +246 -0
- package/dist/widgets-CRzkTpIV.js.map +1 -0
- package/dist/withEngineComponent-BZhUdMxf.js +28 -0
- package/dist/withEngineComponent-BZhUdMxf.js.map +1 -0
- package/dist/workOrderCard-BpoZx9de.js +55 -0
- package/dist/workOrderCard-BpoZx9de.js.map +1 -0
- package/dist/workflow/components/index.js +6 -0
- package/dist/workflow/index.js +75 -0
- package/dist/workflow/menus/index.js +24 -0
- package/dist/workflow-B3zdi9Fz.js +1 -0
- package/dist/workflowEnums-xHM1JN6x.js +48 -0
- package/dist/workflowEnums-xHM1JN6x.js.map +1 -0
- package/dist/workflowStore-PaHzw4YO.js +25 -0
- package/dist/workflowStore-PaHzw4YO.js.map +1 -0
- package/dist/workflowUtilities-DpW6oHRe.js +152 -0
- package/dist/workflowUtilities-DpW6oHRe.js.map +1 -0
- package/dist/wrappers-CLy_1LEL.js +1 -0
- package/export-map.json +782 -0
- package/package.json +29 -7
- package/dist/AmbientGridTemplate-Ch1eLyEu.js +0 -3478
- package/dist/AmbientGridTemplate-Ch1eLyEu.js.map +0 -1
- package/dist/ClientSideUdpGrid-B3NVu-9l.js +0 -56
- package/dist/ClientSideUdpGrid-B3NVu-9l.js.map +0 -1
- package/dist/EnvironmentRibbon-OD01SY9G.js +0 -935
- package/dist/EnvironmentRibbon-OD01SY9G.js.map +0 -1
- package/dist/MenuPage-BZk69VmF.js.map +0 -1
- package/dist/MyExportsPage-DxyYPVIc.js +0 -11
- package/dist/MyExportsPage-WaXST3tF.js +0 -662
- package/dist/MyExportsPage-WaXST3tF.js.map +0 -1
- package/dist/PageContainer-BxChq1eP.js +0 -1536
- package/dist/PageContainer-BxChq1eP.js.map +0 -1
- package/dist/PageNotFoundRoute-D9dLbM_w.js.map +0 -1
- package/dist/PageNotFoundRoute-DUj0Q9J8.js +0 -3
- package/dist/PasswordResetRedirect-C3g8L0vA.js.map +0 -1
- package/dist/PasswordResetRedirect-Dh-S5Ril.js +0 -3
- package/dist/SearchUtilities-lVLvOpzo.js.map +0 -1
- package/dist/SideSheet-D48-jzNi.js +0 -288
- package/dist/SideSheet-D48-jzNi.js.map +0 -1
- package/dist/UdpMaintenanceConfigPage-Bbaa9QQm.js.map +0 -1
- package/dist/UdpPublicForm-3xkpVjji.js.map +0 -1
- package/dist/UdpPublicForm-BdzIFRc0.js +0 -4
- package/dist/UtilitySideBar-9LDu9AaN.js.map +0 -1
- package/dist/VirtualBrowser-CiD8XKsM.js.map +0 -1
- package/dist/WorkflowContainer-BK2z5UDl.js +0 -11
- package/dist/WorkflowContainer-CpWRhlBx.js +0 -1552
- package/dist/WorkflowContainer-CpWRhlBx.js.map +0 -1
- package/dist/apiHelpers-DZPI1QCL.js.map +0 -1
- package/dist/propertyTypeEnums-BfQfG6sp.js +0 -136
- package/dist/propertyTypeEnums-BfQfG6sp.js.map +0 -1
- package/dist/types/UI/dataDisplay/visualization/amCharts/AmSankeyChart.d.ts +0 -3
- package/dist/useAxiosGet-Bi4Z0b8W.js +0 -143
- package/dist/useAxiosGet-Bi4Z0b8W.js.map +0 -1
- /package/dist/types/UI/loading/{LoadingIndicator.d.ts → LoadingIndicator/LoadingIndicator.d.ts} +0 -0
- /package/dist/types/utilities/{FluentIcon.d.ts → iconLibrary/FluentIcon.d.ts} +0 -0
- /package/dist/types/utilities/{UnityFluentIcon.d.ts → iconLibrary/UnityFluentIcon.d.ts} +0 -0
- /package/dist/types/utilities/{UnityIcon.d.ts → iconLibrary/UnityIcon.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SideSheet-D48-jzNi.js","names":["isFocusableInput","findInput","getAllInputs","createDecorator","FinalForm","Form: React.FC<FormProps>","Field: FieldComponent","value","FinalField","name","useStyles"],"sources":["../src/utilities/form/final-form-scroll/isFocusableInput.js","../src/utilities/form/final-form-scroll/getAllInputs.js","../src/utilities/form/final-form-scroll/findInput.js","../src/utilities/form/final-form-scroll/createDecorator.js","../src/utilities/form/Form.tsx","../src/utilities/form/Field.tsx","../src/UI/dataDisplay/typography/SideSheetHeader.jsx","../src/UI/surfaces/SideSheet.jsx"],"sourcesContent":["const isFocusableInput = (wtf) =>\n !!(wtf && typeof wtf.focus === 'function');\n\nexport default isFocusableInput;\n","import isFocusableInput from './isFocusableInput';\n\nconst getAllInputs = () => {\n if (typeof document === 'undefined') {\n return [];\n }\n return Array.prototype.slice\n .call(document.forms)\n .reduce(\n (accumulator, form) =>\n accumulator.concat(\n Array.prototype.slice.call(form).filter(isFocusableInput)\n ),\n []\n );\n};\n\nexport default getAllInputs;\n","import { getIn } from 'final-form';\n\nconst findInput = (inputs, errors) =>\n inputs.find(input => input.name && getIn(errors, input.name));\n\nexport default findInput;\n","import getAllInputs from './getAllInputs.js';\nimport findInput from './findInput.js';\n\nconst noop = () => {};\n\n/**\n * The decorator is created based on final-form-focus https://github.com/final-form/final-form-focus\n */\nconst createDecorator = () => (form) => {\n const scrollToFirstError = (errors) => {\n const allInputs = getAllInputs();\n const firstInput = findInput(allInputs, errors);\n const inputToScrollTo = firstInput?.parentElement;\n if (inputToScrollTo) {\n inputToScrollTo.scrollIntoView({ behavior: 'smooth' });\n }\n };\n // Save original submit function\n const originalSubmit = form.submit;\n let state = {};\n const unsubscribe = form.subscribe(\n (nextState) => {\n state = nextState;\n },\n { errors: true, submitErrors: true }\n );\n // What to do after submit\n const afterSubmit = () => {\n const { errors, submitErrors } = state;\n if (errors && Object.keys(errors).length) {\n scrollToFirstError(errors);\n } else if (submitErrors && Object.keys(submitErrors).length) {\n scrollToFirstError(submitErrors);\n }\n };\n\n // Rewrite submit function\n form.submit = () => {\n const result = originalSubmit.call(form);\n if (result && typeof result.then === 'function') {\n // async\n result.then(afterSubmit, noop);\n } else {\n // sync\n afterSubmit();\n }\n return result;\n };\n\n return () => {\n unsubscribe();\n form.submit = originalSubmit;\n };\n};\n\nexport default createDecorator;\n","import React, { forwardRef, useImperativeHandle } from 'react';\nimport {\n AnyObject,\n Form as FinalForm,\n FormProps as FinalFormProps,\n FormRenderProps,\n} from 'react-final-form';\nimport createDecorator from './final-form-scroll/createDecorator';\n\nexport interface FormProps<FormValues = AnyObject>\n extends FinalFormProps<FormValues> {\n children?: (props: FormRenderProps<FormValues>) => React.ReactNode;\n id?: string;\n}\nconst scrollToError = createDecorator();\n\n/**\n * final-form Form wrapper with automatic <form> and submit handler\n */\n\nconst _Form = ({ render: renderProp, children, id, ...props }: FormProps, ref: React.Ref<any>) => {\n const render = renderProp || children;\n\n return (\n <FinalForm ref={ref} decorators={[scrollToError]} {...props}>\n {params => {\n useImperativeHandle(ref, () => ({ ...params}))\n return (\n <form onSubmit={params.handleSubmit} noValidate={true} id={id}>\n {typeof render === 'function' ? render(params) : render}\n </form>\n )\n }}\n </FinalForm>\n );\n};\n\nexport const Form: React.FC<FormProps> = forwardRef(_Form)\n","import { InputBaseComponentProps } from '@material-ui/core';\nimport React, {\n ElementType,\n forwardRef,\n useCallback,\n ComponentType,\n} from 'react';\nimport {\n Field as FinalField,\n FieldProps as FinalFieldProps,\n FieldRenderProps,\n} from 'react-final-form';\n\nexport interface MuiFieldComponentProps {\n error?: boolean;\n helperText?: React.ReactNode;\n inputProps?: InputBaseComponentProps;\n onChange: React.ChangeEventHandler;\n ComponentProps?: any;\n}\n\nexport type MuiFieldComponent = ElementType<MuiFieldComponentProps>;\n\nexport type FieldProps<\n FieldValue,\n RP extends FieldRenderProps<FieldValue, T>,\n T extends HTMLElement = HTMLElement\n > = {\n component: MuiFieldComponent;\n // @fixme Some of the onChange handlers pass value instead\n valueForChange?: (event: React.ChangeEvent<T>) => FieldValue;\n pattern?: string;\n } & Pick<\n FinalFieldProps<FieldValue, RP, T>,\n | 'afterSubmit'\n | 'allowNull'\n | 'beforeSubmit'\n | 'defaultValue'\n | 'format'\n | 'formatOnBlur'\n | 'initialValue'\n | 'isEqual'\n | 'name'\n | 'parse'\n | 'subscription'\n | 'type'\n | 'validate'\n | 'validateFields'\n | 'value'\n | 'required'\n > &\n MuiFieldComponentProps; // @fixme Add another generic to extend this with componentProps\n\ntype FieldComponent<\n FieldValue = any,\n RP extends FieldRenderProps<FieldValue, T> = FieldRenderProps<\n FieldValue,\n HTMLElement\n >,\n T extends HTMLElement = HTMLElement\n > = ComponentType<FieldProps<FieldValue, RP, T>>;\n\n/**\n * final-form Field wrapper that supports using Material UI fields as components\n * @todo Implement a validation function that uses required, etc... (or defer this till Redwerks' form library is built)\n */\nexport let Field: FieldComponent = forwardRef((props, ref) => {\n const {\n component: Component,\n afterSubmit,\n allowNull,\n beforeSubmit,\n component,\n defaultValue,\n format,\n formatOnBlur,\n initialValue,\n isEqual,\n name,\n parse,\n // @ts-ignore\n render, // extract the render prop so it doesn't get passed to Field\n subscription,\n validate,\n validateFields,\n value, // radio/checkbox\n helperText,\n valueForChange,\n required,\n ComponentProps,\n type,\n ...componentProps\n } = props;\n const fieldProps = {\n afterSubmit,\n allowNull,\n beforeSubmit,\n defaultValue,\n format,\n formatOnBlur,\n initialValue,\n isEqual,\n name,\n parse,\n subscription,\n validate,\n validateFields,\n value,\n type\n };\n\n // @fixme: will need to add a more generic validator for other valdiation props\n const makeValidation = useCallback(\n (value, allValues, meta) => {\n if (required && ((typeof (value) !== \"number\" && !!!value) || Array.isArray(value))) {\n if (Array.isArray(value) && value.length) {\n return undefined;\n } else if (!!value && !Array.isArray(value)) {\n return undefined;\n } else {\n return 'Required';\n }\n }\n if (validate) {\n return validate(value, allValues, meta);\n }\n },\n [required, validate]\n );\n\n return (\n <FinalField {...fieldProps} validate={makeValidation}>\n {params => {\n const { input, meta } = params;\n const { name, onChange, ...inputProps } = input;\n const showError =\n ((meta.submitError && !meta.dirtySinceLastSubmit) || meta.error) &&\n meta.touched;\n\n return (\n <Component\n ref={ref as any} // @fixme\n required={required}\n {...componentProps}\n {...ComponentProps}\n helperText={showError ? meta.error || meta.submitError : helperText}\n error={showError}\n onChange={(...args: any[]) => {\n if (valueForChange) {\n // @ts-ignore\n args = [valueForChange(...args)];\n }\n // @ts-ignore\n onChange(...args);\n }}\n name={name}\n {...inputProps}\n //value={value}\n />\n );\n }}\n </FinalField>\n );\n});\nField.displayName = 'Field';\n","import React from 'react';\nimport { makeStyles, CircularProgress } from '@material-ui/core';\nimport { StandardTitle } from './StandardTitle';\nimport { FluentIconButton } from '../../inputs/buttons/FluentIconButton';\nimport { FluentButton } from '../../inputs/buttons/FluentButton';\nimport { ChromeCloseIcon } from '@fluentui/react-icons';\nimport { FluentIcon } from '../../../utilities/FluentIcon';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'row',\n padding: theme.spacing(1),\n paddingLeft: 0,\n background:\n theme?.getThemeData()?.mode === 'dark'\n ? theme.palette.grey[800]\n : theme.palette.common.white,\n position: ({ isSticky }) => (isSticky ? 'sticky' : 'relative'),\n top: ({ isSticky }) => (isSticky ? 0 : 'auto'),\n zIndex: ({ isSticky }) => (isSticky ? 1200 : 'auto')\n },\n title: {\n display: 'flex',\n flex: 1,\n alignItems: 'center',\n marginLeft: theme.spacing(1.5)\n },\n actionButton: {\n marginRight: theme.spacing(1),\n position: 'relative'\n },\n fabProgress: {\n position: 'absolute',\n top: 4,\n left: '35%',\n zIndex: 1\n }\n}));\n\nexport const SideSheetHeader = ({ isSticky = false, ...props }) => {\n const classes = useStyles({ isSticky });\n const {\n title,\n onClose,\n buttonLabel,\n onSubmit,\n buttonProgress,\n buttonTwoLabel,\n buttonTwoIcon,\n buttonTwoAction,\n buttonTwoProgress,\n id,\n udprecordid = '',\n buttonOneDisabled,\n buttonTwoDisabled,\n ...otherProps\n } = props;\n\n return (\n <div className={classes.root}>\n <div className={classes.title}>\n <FluentIconButton\n id={id + '-Close'}\n udprecordid={udprecordid + '-Close'}\n icon={ChromeCloseIcon}\n onClick={onClose}\n aria-label='Close Panel'\n />\n <StandardTitle className={classes.title}>{title}</StandardTitle>\n </div>\n {buttonTwoLabel && (\n <div>\n <FluentButton\n // variant='contained'\n color='secondary'\n onClick={buttonTwoAction}\n disabled={buttonTwoDisabled}\n {...otherProps}\n >\n {buttonTwoProgress && (\n <CircularProgress\n size={24}\n color='secondary'\n className={classes.fabProgress}\n />\n )}\n {buttonTwoIcon && (\n <FluentIcon\n size='small'\n component={buttonTwoIcon}\n style={{ marginRight: 8 }}\n />\n )}\n {buttonTwoLabel}\n </FluentButton>\n </div>\n )}\n {buttonLabel && (\n <div className={classes.actionButton}>\n <FluentButton\n id={id + '-CreateView'}\n udprecordid={udprecordid + '-CreateView'}\n variant='contained'\n color='secondary'\n onClick={onSubmit}\n disabled={buttonOneDisabled}\n {...otherProps}\n >\n {buttonProgress && (\n <CircularProgress\n id={id + '-ButtonProgress'}\n udprecordid={udprecordid + '-ButtonProgress'}\n size={24}\n color='secondary'\n className={classes.fabProgress}\n />\n )}\n {buttonLabel}\n </FluentButton>\n </div>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport {\n makeStyles,\n Drawer,\n LinearProgress,\n CardContent\n} from '@material-ui/core';\nimport { SideSheetHeader } from '../dataDisplay/typography/SideSheetHeader';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n // width: (props) => props.width || 320,\n width: '100%',\n [theme.breakpoints.up('sm')]: {\n width: (props) => props.width || 320\n },\n background:\n theme?.getThemeData()?.mode === 'dark'\n ? theme.palette.grey[700]\n : '#f4f4f4'\n },\n container: {\n height: (props) => (props.contentHeight ? props.contentHeight : ''),\n overflowY: (props) => (props.contentHeight ? 'auto' : ''),\n padding: (props) => (props.noPadding ? 0 : '')\n }\n}));\n\n/**\n * Base right hand side sheet with no contents\n */\nexport const BaseSideSheet = (props) => {\n const classes = useStyles(props);\n const {\n anchor = 'right',\n width,\n children,\n onClose,\n noBackdrop,\n buttonLabel,\n ...drawerProps\n } = props;\n\n return (\n <Drawer\n classes={{ paper: classes.paper }}\n variant='temporary'\n anchor={anchor}\n onClose={onClose}\n {...drawerProps}\n BackdropProps={{ invisible: noBackdrop }}\n >\n {children}\n </Drawer>\n );\n};\n\n/**\n * A right hand material side sheet\n */\nexport const SideSheet = (props) => {\n const classes = useStyles(props);\n const {\n children,\n title,\n progress,\n progressColor,\n buttonLabel,\n noPadding,\n onSubmit,\n variant = 'determinate',\n buttonTwoLabel,\n buttonTwoIcon,\n buttonTwoAction,\n buttonTwoProgress,\n buttonOneDisabled,\n buttonTwoDisabled,\n id,\n udprecordid,\n ...otherProps\n } = props;\n const { onClose } = props;\n return (\n <BaseSideSheet {...otherProps}>\n <SideSheetHeader\n id={id}\n udprecordid={udprecordid}\n onClose={onClose}\n title={title}\n buttonLabel={buttonLabel}\n onSubmit={onSubmit}\n buttonTwoLabel={buttonTwoLabel}\n buttonTwoIcon={buttonTwoIcon}\n buttonTwoAction={buttonTwoAction}\n buttonTwoProgress={buttonTwoProgress}\n isSticky={true}\n buttonOneDisabled={buttonOneDisabled}\n buttonTwoDisabled={buttonTwoDisabled}\n {...otherProps}\n />\n {progress && (\n <LinearProgress\n variant={variant}\n color={progressColor}\n value={progress}\n />\n )}\n <CardContent classes={{ root: classes.container }}>\n {children}\n </CardContent>\n </BaseSideSheet>\n );\n};\n\nSideSheet.propTypes = {\n /**\n * Main content for the modal view\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n /**\n * SideSheet title\n */\n title: PropTypes.string.isRequired,\n /**\n * Function to close SideSheet\n */\n onClose: PropTypes.func,\n /**\n * Determins the open or closed state of the SideSheet\n */\n open: PropTypes.bool,\n /**\n * Value for progress loading\n */\n progress: PropTypes.any, // ToDo: add fix for hiding 0 progress\n /**\n * Progress loading color\n */\n progressColor: PropTypes.string,\n /**\n * Width of the SideSheet\n */\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /**\n * Anchor orgin of card (right, left, top, bottom)\n */\n anchor: PropTypes.string,\n /**\n * Label for top action button (global only)\n */\n buttonLabel: PropTypes.string,\n /**\n * Option to override container padding\n */\n noPadding: PropTypes.string,\n /**\n * Progress loading color\n */\n contentHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\n\nSideSheet.defaultProps = {\n anchor: 'right',\n progressColor: 'secondary'\n};\n"],"mappings":";;;;;;;;;AAAA,MAAM,oBAAoB,QACxB,CAAC,EAAE,OAAO,OAAO,IAAI,UAAU;AAEjC,+BAAe;;;;ACDf,MAAM,qBAAqB;AACzB,KAAI,OAAO,aAAa,YACtB,QAAO,EAAE;AAEX,QAAO,MAAM,UAAU,MACpB,KAAK,SAAS,MAAM,CACpB,QACE,aAAa,SACZ,YAAY,OACV,MAAM,UAAU,MAAM,KAAK,KAAK,CAAC,OAAOA,yBAAiB,CAC1D,EACH,EAAE,CACH;;AAGL,2BAAe;;;;ACff,MAAM,aAAa,QAAQ,WACzB,OAAO,MAAK,UAAS,MAAM,QAAQ,MAAM,QAAQ,MAAM,KAAK,CAAC;AAE/D,wBAAe;;;;ACFf,MAAM,aAAa;;;;AAKnB,MAAM,yBAAyB,SAAS;CACtC,MAAM,sBAAsB,WAAW;EAGrC,MAAM,kBADaC,kBADDC,sBAAc,EACQ,OAAO,EACX;AACpC,MAAI,gBACF,iBAAgB,eAAe,EAAE,UAAU,UAAU,CAAC;;CAI1D,MAAM,iBAAiB,KAAK;CAC5B,IAAI,QAAQ,EAAE;CACd,MAAM,cAAc,KAAK,WACtB,cAAc;AACb,UAAQ;IAEV;EAAE,QAAQ;EAAM,cAAc;EAAM,CACrC;CAED,MAAM,oBAAoB;EACxB,MAAM,EAAE,QAAQ,iBAAiB;AACjC,MAAI,UAAU,OAAO,KAAK,OAAO,CAAC,OAChC,oBAAmB,OAAO;WACjB,gBAAgB,OAAO,KAAK,aAAa,CAAC,OACnD,oBAAmB,aAAa;;AAKpC,MAAK,eAAe;EAClB,MAAM,SAAS,eAAe,KAAK,KAAK;AACxC,MAAI,UAAU,OAAO,OAAO,SAAS,WAEnC,QAAO,KAAK,aAAa,KAAK;MAG9B,cAAa;AAEf,SAAO;;AAGT,cAAa;AACX,eAAa;AACb,OAAK,SAAS;;;AAIlB,8BAAe;;;;ACzCf,MAAM,gBAAgBC,yBAAiB;;;;AAMvC,MAAM,SAAS,EAAE,QAAQ,YAAY,UAAU,GAAI,GAAG,SAAoB,QAAwB;CAChG,MAAM,SAAS,cAAc;AAE7B,QACE,oCAACC;EAAe;EAAK,YAAY,CAAC,cAAc;EAAE,GAAI;KACnD,WAAU;AACR,sBAAoB,YAAY,EAAE,GAAG,QAAO,EAAE;AAC/C,SACE,oCAAC;GAAK,UAAU,OAAO;GAAc,YAAY;GAAU;KACxD,OAAO,WAAW,aAAa,OAAO,OAAO,GAAG,OAC5C;GAGD;;AAIhB,MAAaC,SAA4B,WAAW,MAAM;;;;;;;;AC6B1D,IAAWC,UAAwB,YAAY,OAAO,QAAQ;CAC5D,MAAM,EACJ,WAAW,WACX,aACA,WACA,cACA,WACA,cACA,QACA,cACA,cACA,SACA,MACA,OAEA,QACA,cACA,UACA,gBACA,OACA,YACA,gBACA,UACA,gBACA,KACA,GAAG,mBACD;CACJ,MAAM,aAAa;EACjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CAGD,MAAM,iBAAiB,aACpB,SAAO,WAAW,SAAS;AAC1B,MAAI,aAAc,OAAQC,YAAW,YAAY,CAAC,CAAC,CAACA,WAAU,MAAM,QAAQA,QAAM,EAChF,KAAI,MAAM,QAAQA,QAAM,IAAIA,QAAM,OAChC;WACS,CAAC,CAACA,WAAS,CAAC,MAAM,QAAQA,QAAM,CACzC;MAEA,QAAO;AAGX,MAAI,SACF,QAAO,SAASA,SAAO,WAAW,KAAK;IAG3C,CAAC,UAAU,SAAS,CACrB;AAED,QACE,oCAACC;EAAW,GAAI;EAAY,UAAU;KACnC,WAAU;EACT,MAAM,EAAE,OAAO,SAAS;EACxB,MAAM,EAAE,cAAM,SAAU,GAAG,eAAe;EAC1C,MAAM,aACF,KAAK,eAAe,CAAC,KAAK,wBAAyB,KAAK,UAC1D,KAAK;AAEP,SACE,oCAAC;GACM;GACK;GACV,GAAI;GACJ,GAAI;GACJ,YAAY,YAAY,KAAK,SAAS,KAAK,cAAc;GACzD,OAAO;GACP,WAAW,GAAG,SAAgB;AAC5B,QAAI,eAEF,QAAO,CAAC,eAAe,GAAG,KAAK,CAAC;AAGlC,aAAS,GAAG,KAAK;;GAEnB,MAAMC;GACN,GAAI;IAEJ;GAGK;EAEf;AACF,QAAM,cAAc;;;;AC5JpB,MAAMC,cAAY,YAAY,WAAW;CACvC,MAAM;EACJ,SAAS;EACT,eAAe;EACf,SAAS,MAAM,QAAQ,EAAE;EACzB,aAAa;EACb,YACE,OAAO,cAAc,EAAE,SAAS,SAC5B,MAAM,QAAQ,KAAK,OACnB,MAAM,QAAQ,OAAO;EAC3B,WAAW,EAAE,eAAgB,WAAW,WAAW;EACnD,MAAM,EAAE,eAAgB,WAAW,IAAI;EACvC,SAAS,EAAE,eAAgB,WAAW,OAAO;EAC9C;CACD,OAAO;EACL,SAAS;EACT,MAAM;EACN,YAAY;EACZ,YAAY,MAAM,QAAQ,IAAI;EAC/B;CACD,cAAc;EACZ,aAAa,MAAM,QAAQ,EAAE;EAC7B,UAAU;EACX;CACD,aAAa;EACX,UAAU;EACV,KAAK;EACL,MAAM;EACN,QAAQ;EACT;CACF,EAAE;AAEH,MAAa,mBAAmB,EAAE,WAAW,MAAO,GAAG,YAAY;CACjE,MAAM,UAAUA,YAAU,EAAE,UAAU,CAAC;CACvC,MAAM,EACJ,OACA,SACA,aACA,UACA,gBACA,gBACA,eACA,iBACA,mBACA,IACA,cAAc,IACd,mBACA,kBACA,GAAG,eACD;AAEJ,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC,SAAI,WAAW,QAAQ,SACtB,oCAAC;EACC,IAAI,KAAK;EACT,aAAa,cAAc;EAC3B,MAAM;EACN,SAAS;EACT,cAAW;GACX,EACF,oCAAC,iBAAc,WAAW,QAAQ,SAAQ,MAAsB,CAC5D,EACL,kBACC,oCAAC,aACC,oCAAC;EAEC,OAAM;EACN,SAAS;EACT,UAAU;EACV,GAAI;IAEH,qBACC,oCAAC;EACC,MAAM;EACN,OAAM;EACN,WAAW,QAAQ;GACnB,EAEH,iBACC,oCAAC;EACC,MAAK;EACL,WAAW;EACX,OAAO,EAAE,aAAa,GAAG;GACzB,EAEH,eACY,CACX,EAEP,eACC,oCAAC,SAAI,WAAW,QAAQ,gBACtB,oCAAC;EACC,IAAI,KAAK;EACT,aAAa,cAAc;EAC3B,SAAQ;EACR,OAAM;EACN,SAAS;EACT,UAAU;EACV,GAAI;IAEH,kBACC,oCAAC;EACC,IAAI,KAAK;EACT,aAAa,cAAc;EAC3B,MAAM;EACN,OAAM;EACN,WAAW,QAAQ;GACnB,EAEH,YACY,CACX,CAEJ;;;;;AChHV,MAAM,YAAY,YAAY,WAAW;CACvC,OAAO;EAEL,OAAO;GACN,MAAM,YAAY,GAAG,KAAK,GAAG,EAC5B,QAAQ,UAAU,MAAM,SAAS,KAClC;EACD,YACE,OAAO,cAAc,EAAE,SAAS,SAC5B,MAAM,QAAQ,KAAK,OACnB;EACP;CACD,WAAW;EACT,SAAS,UAAW,MAAM,gBAAgB,MAAM,gBAAgB;EAChE,YAAY,UAAW,MAAM,gBAAgB,SAAS;EACtD,UAAU,UAAW,MAAM,YAAY,IAAI;EAC5C;CACF,EAAE;;;;AAKH,MAAa,iBAAiB,UAAU;CACtC,MAAM,UAAU,UAAU,MAAM;CAChC,MAAM,EACJ,SAAS,SACT,OACA,UACA,SACA,YACA,YACA,GAAG,gBACD;AAEJ,QACE,oCAAC;EACC,SAAS,EAAE,OAAO,QAAQ,OAAO;EACjC,SAAQ;EACA;EACC;EACT,GAAI;EACJ,eAAe,EAAE,WAAW,YAAY;IAEvC,SACM;;;;;AAOb,MAAa,aAAa,UAAU;CAClC,MAAM,UAAU,UAAU,MAAM;CAChC,MAAM,EACJ,UACA,OACA,UACA,eACA,aACA,WACA,UACA,UAAU,eACV,gBACA,eACA,iBACA,mBACA,mBACA,mBACA,IACA,YACA,GAAG,eACD;CACJ,MAAM,EAAE,YAAY;AACpB,QACE,oCAAC,eAAkB,YACjB,oCAAC;EACK;EACS;EACJ;EACF;EACM;EACH;EACM;EACD;EACE;EACE;EACnB,UAAU;EACS;EACA;EACnB,GAAI;GACJ,EACD,YACC,oCAAC;EACU;EACT,OAAO;EACP,OAAO;GACP,EAEJ,oCAAC,eAAY,SAAS,EAAE,MAAM,QAAQ,WAAW,IAC9C,SACW,CACA;;AAIpB,UAAU,YAAY;CAIpB,UAAU,UAAU,UAAU,CAC5B,UAAU,QAAQ,UAAU,KAAK,EACjC,UAAU,KACX,CAAC;CAIF,OAAO,UAAU,OAAO;CAIxB,SAAS,UAAU;CAInB,MAAM,UAAU;CAIhB,UAAU,UAAU;CAIpB,eAAe,UAAU;CAIzB,OAAO,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,OAAO,CAAC;CAIhE,QAAQ,UAAU;CAIlB,aAAa,UAAU;CAIvB,WAAW,UAAU;CAIrB,eAAe,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,OAAO,CAAC;CACzE;AAED,UAAU,eAAe;CACvB,QAAQ;CACR,eAAe;CAChB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UdpMaintenanceConfigPage-Bbaa9QQm.js","names":[],"sources":["../src/udp/pages/UdpMaintenanceConfigPage.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState, useMemo } from 'react';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { useAuthedUser } from '../../utilities/auth/useAuthedUser';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useHistory } from 'react-router-dom';\nimport { PageLoading } from '../../UI/feedback/PageLoading';\nimport { useTranslation } from 'react-i18next';\nimport { ClientSideUdpGrid } from '../../UI/templates/newGrid/ClientSideUdpGrid';\n\nconst UdpMaintenanceConfigPage = (props) => {\n const [apiCatalogId, setApiCatalogId] = useState(null);\n const user = useAuthedUser();\n const history = useHistory();\n const { t } = useTranslation();\n\n /* #region API Methods */\n\n const [{ data: tpacb, loading: loadingTpacb, error: tpacbError }] =\n useAxiosGet(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${process.env.REACT_APP_UNITY_PRODUCT_ID}`,\n {},\n !!!user,\n false\n );\n\n const [\n {\n data: promotedGetConfigApi,\n loading: loadingPromotedGetConfigApi,\n error: promotedGetConfigApiError\n }\n ] = useAxiosGet(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `apicatalog/${apiCatalogId}/promotedConfigEntity/product/${process.env.REACT_APP_UNITY_PRODUCT_ID}`,\n {},\n !!!apiCatalogId,\n false\n );\n\n const [\n {\n data: tableConfigList,\n loading: tableConfigListLoading,\n error: tableConfigListError\n },\n fetchTableConfigList\n ] = useAxiosMutate(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `apimethod/executeQueryWithParameters/${promotedGetConfigApi?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const [{ data: promotedMethods, loading, error }] = useAxiosGet(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `apicatalog/${apiCatalogId}/promotedMethodEntities?productId=${process.env.REACT_APP_UNITY_PRODUCT_ID}`,\n {},\n !!!apiCatalogId,\n false\n );\n\n /* #endregion */\n\n const rowData = useMemo(() => {\n if (!promotedMethods || !tableConfigList) {\n return [];\n }\n let tmp = [];\n if (Array.isArray(tableConfigList)) {\n tmp = tableConfigList;\n } else {\n // eslint-disable-next-line no-unused-vars\n for (const [key, value] of Object.entries(tableConfigList)) {\n tmp.push(`${key}`);\n }\n }\n\n const result = tmp.reduce((mergedData, tableConfig) => {\n const matchingEntityRow = promotedMethods.find(\n (promotedEntity) =>\n promotedEntity.entityName === getSanitizedName(tableConfig)\n );\n if (matchingEntityRow) {\n mergedData.push(matchingEntityRow);\n } else {\n const placeholderData = {\n entityName: tableConfig,\n productId: process.env.REACT_APP_UNITY_PRODUCT_ID,\n unityBaseGetAllMethod: null,\n unityBaseGetMethod: null,\n unityBaseCreateMethod: null,\n unityBaseUpdateMethod: null,\n unityBaseDeleteMethod: null\n };\n mergedData.push(placeholderData);\n }\n return mergedData;\n }, []);\n return result;\n }, [promotedMethods, tableConfigList]);\n\n const handleOpenEntityMaintenancePage = useCallback(\n (selectedEntity) => {\n history.push(`/crudbrowser`, {\n entityName: getSanitizedName(selectedEntity?.entityName),\n apiCatalogId: apiCatalogId\n });\n },\n [history, apiCatalogId]\n );\n\n const actionList = useMemo(\n () => [\n {\n id: 0,\n title: t('View table data'),\n iconName: 'arrowRight16',\n handleOnClick: (e, params) => handleOpenEntityMaintenancePage(params?.data),\n disabled: false\n }\n ],\n [handleOpenEntityMaintenancePage, t]\n );\n\n const columnDefs = useMemo(() => {\n return [\n {\n headerName: 'Entity Name',\n field: 'entityName',\n valueGetter: (params) =>\n params.data?.properties?.displayName ||\n params.data?.sanitizedName ||\n getSanitizedName(params.data?.entityName),\n },\n {\n headerName: 'Actions',\n field: 'actions',\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList: actionList\n }\n }\n ];\n }, [actionList]);\n\n useEffect(() => {\n if (tpacb) {\n setApiCatalogId(tpacb.apiCatalogId);\n }\n }, [tpacb]);\n\n useEffect(() => {\n if (promotedGetConfigApi?.apiMethodId) {\n fetchTableConfigList({ data: {} });\n }\n }, [fetchTableConfigList, promotedGetConfigApi]);\n\n if (loadingTpacb || loadingPromotedGetConfigApi || tableConfigListLoading) {\n return <PageLoading />;\n }\n\n if (tpacbError) {\n return (\n <div>\n {t('There is no Api Catalog associated with your tenant and product')}\n </div>\n );\n }\n\n if (promotedGetConfigApiError) {\n return (\n <div>\n {t(\n 'Please promote your get configuration tables method before proceeding'\n )}\n </div>\n );\n }\n\n if (tableConfigListError) {\n return <div>{t('No configuration tables could be found')}</div>;\n }\n\n return (\n <ClientSideUdpGrid\n rowData={rowData}\n columnDefs={columnDefs}\n gridHeaderConfig={{ title: 'Table Browser' }}\n />\n );\n};\n\nexport default UdpMaintenanceConfigPage;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UdpPublicForm-3xkpVjji.js","names":[],"sources":["../src/udp/pages/UdpPublicForm.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { UdpFormsRenderer } from 'udp-react-stencil-component-library';\nimport { useLocation } from 'react-router-dom';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nconst useSearchParams = () => {\n const search = useLocation().search;\n\n // when params are populated with an internal redirect, like on a Page menu, the useLocation hook does not get the query params\n // so it will fallback with window.location.search in that case\n return new URLSearchParams(search || window.location.search);\n}\nexport const UdpPublicForm = (props) => {\n const { handleErrorSnackbar } = useHandleAxiosSnackbar();\n const queryParams = useSearchParams()\n\n const formId = queryParams.get('udpf_formId');\n const tenantId = queryParams.get('udpf_tenantId');\n const callbackUrl = queryParams.get('udpf_callback_url');\n\n useEffect(() => {\n if (!formId) {\n handleErrorSnackbar({}, 'Form Id not found, please specify udpf_formid in the query params');\n }\n if (!tenantId) {\n handleErrorSnackbar({}, 'tenantId not found, please specify udpf_formid in the query params');\n }\n }, []);\n if (!formId || !tenantId) return null;\n\n return (\n <UdpFormsRenderer\n formId={formId}\n tenantId={tenantId}\n productId={ConfigService.config.UNITY_PRODUCT_ID}\n apiUrlBase={ConfigService.productV1ApiUrl}\n callbackUrl={callbackUrl}\n isPublic\n />\n );\n};\n\nexport default UdpPublicForm;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,wBAAwB;CAC5B,MAAM,SAAS,aAAa,CAAC;AAI7B,QAAO,IAAI,gBAAgB,UAAU,OAAO,SAAS,OAAO;;AAE9D,MAAa,iBAAiB,UAAU;CACtC,MAAM,EAAE,wBAAwB,wBAAwB;CACxD,MAAM,cAAc,iBAAiB;CAErC,MAAM,SAAS,YAAY,IAAI,cAAc;CAC7C,MAAM,WAAW,YAAY,IAAI,gBAAgB;CACjD,MAAM,cAAc,YAAY,IAAI,oBAAoB;AAExD,iBAAgB;AACd,MAAI,CAAC,OACH,qBAAoB,EAAE,EAAE,oEAAoE;AAE9F,MAAI,CAAC,SACH,qBAAoB,EAAE,EAAE,qEAAqE;IAE9F,EAAE,CAAC;AACN,KAAI,CAAC,UAAU,CAAC,SAAU,QAAO;AAEjC,QACE,oCAAC;EACS;EACE;EACV,WAAW,cAAc,OAAO;EAChC,YAAY,cAAc;EACb;EACb;GACA;;AAIN,4BAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UtilitySideBar-9LDu9AaN.js","names":["uuid","uuid","property","searchIdentifier","useStyles","useStyles","useStyles","useStyles","useStyles","Skeleton","useStyles","expanded"],"sources":["../src/utilities/rules/RuleUtilities.js","../src/models/GroupNode.ts","../src/utilities/tree/TreeUtilities.js","../src/utilities/iconLibrary/UnityIconLibrary.jsx","../src/shell/ui/SidebarCollapseButton.jsx","../src/UI/inputs/buttons/AmbientCardButton.jsx","../src/UI/components/feedback/Adornment.jsx","../src/UI/surfaces/cards/AmbientCard.jsx","../src/UI/feedback/NodeLoader.jsx","../src/models/NumberOperator.ts","../src/UI/utilityDisplay/utilities/aggregateUtils.js","../src/UI/dataDisplay/entityHeader/ui/AlertPill.jsx","../src/UI/utilityDisplay/AggregateChip.jsx","../src/utilities/utilityBar/UtilityBarInport.jsx","../src/UI/utilityDisplay/UtilitySideBar.jsx"],"sourcesContent":["import jsonLogic from 'json-logic-js';\n\n/**\n * Constructs an array of object from the object map.\n *\n * @param {Object} obj ex: {\"a\": \"customerID\", \"b\": \"firstName\"}\n * @returns an array of object ex. [{\"variable\": \"a\", \"value\": \"serviceLocationID\"}, {\"variable\": \"b\", \"value\" \"firstName\"}]\n */\nexport const getPropertyMappingList = (obj) => {\n const mappings = [];\n if (obj) {\n const keys = Object.keys(obj);\n keys.forEach((key) => {\n const mappingObj = { variable: key, value: obj[key] };\n mappings.push(mappingObj);\n });\n }\n return mappings;\n};\n\n/**\n * Constructs a map object where variables are keys and values are the values.\n *\n * @param {Array<Object>} properties ex. [{\"variable\": \"a\", \"value\": \"serviceLocationID\"}, {\"variable\": \"b\", \"value\" \"firstName\"}]\n * @returns mapped object ex: {\"a\": \"customerID\", \"b\": \"firstName\"}\n */\nexport const getPropertyMappingObj = (properties) => {\n const mapping = {};\n if (properties?.length) {\n properties.forEach((property) => {\n mapping[property.variable] = property.value;\n });\n }\n return mapping;\n};\n\n/**\n * Maps the keys of mapping to the values of data.\n *\n * @param {Object} mapping ex: {\"a\": \"customerID\", \"b\": \"firstName\"}\n * @param {Object} data ex: {\"customerID\": 1001, \"firstName\": \"John\"}\n * @returns flat object ex: {\"a\": 1001, \"b\": \"John\"}\n */\nexport const mapRuleData = (mapping, data) => {\n const mappedData = {};\n if (mapping && mapping.length) {\n const keys = Object.keys(mapping);\n keys.forEach((key) => {\n const dataKey = mapping[key];\n if (dataKey) {\n const dataValue = data[dataKey];\n mappedData[key] = dataValue;\n }\n });\n }\n return mappedData;\n};\n\n/**\n * Maps the mapping values in the mapping object to the variables in the rule.\n *\n * @param {Object} mapping ex: {\"a\": \"customerID\", \"b\": \"firstName\"}\n * @param {Object} rule ex: {\"or\": [{\"==\": [{\"var\": \"a\"}, 400]}, {\"==\": [{\"var\": \"b\"}, John]}]}\n * @returns jsonLogic object with the correct variable names ex: [{\"==\": [{\"var\": \"customerID\"}, 400]}, {\"==\": [{\"var\": \"firstName\"}, John]}]\n */\nexport const mapRule = (mapping = {}, rule = '') => {\n const keys = Object.keys(mapping);\n let updatedJsonLogic = JSON.stringify(rule);\n keys.forEach((key) => {\n const substr = JSON.stringify({ var: key });\n const newSubstr = JSON.stringify({ var: mapping[key] });\n updatedJsonLogic = updatedJsonLogic.replaceAll(substr, newSubstr);\n });\n try {\n return JSON.parse(updatedJsonLogic);\n } catch (err) {\n console.err('Error with parsing JSON Logic String');\n return {};\n }\n};\n\n/**\n * Evaluates the rule with provided data.\n *\n * @param {Object} rule ex: {\"or\": [{\"==\": [{\"var\": \"customerID\"}, 400]}, {\"==\": [{\"var\": \"firstName\"}, John]}]}\n * @param {Object} data ex: {\"customerID\": 1001, \"firstName\": \"John\"}\n * @param {string} objectKey ex: \"users\"\n * @param {boolean} dataLazyLoaded ex: \"true\"\n * @returns the evaluated rule ex: true\n */\nexport const evaluateRule = (rule, data, objectKey, dataLazyLoaded) => {\n let formattedData = {};\n if (objectKey && dataLazyLoaded) {\n formattedData[objectKey] = data[objectKey] ? data[objectKey] : data;\n } else {\n formattedData = data;\n }\n return jsonLogic.apply(rule, formattedData);\n};\n","import { v4 as uuid } from 'uuid';\nimport { NodeGroupTypeEnums } from '../enums/unitySystemEnums';\n\nexport default class GroupNode {\n id: string;\n isGroupNode: boolean;\n groupType: string;\n children: Array<any>;\n isExpanded: boolean;\n parentId: string;\n parentGroupId: string;\n properties: Object;\n isOutlierGroup: boolean;\n hideEmptyGroups: boolean;\n\n constructor(node: any) {\n this.id = node.id || uuid();\n this.isGroupNode = true;\n this.hideEmptyGroups = node.hideEmptyGroups || false;\n this.groupType = node.groupType || NodeGroupTypeEnums.Static;\n this.children = node.children || [];\n this.isExpanded = node.isExpanded || false;\n this.parentId = node.parentId || null;\n this.parentGroupId = node.parentGroupId || null;\n this.properties = node.properties\n ? {\n propertyMapping: null,\n jsonLogic: null,\n icon: {\n name: 'GroupedListIcon',\n type: '',\n color: ''\n },\n ...node.properties\n }\n : {\n propertyMapping: null,\n jsonLogic: null,\n icon: {\n name: 'GroupedListIcon',\n type: '',\n color: ''\n }\n };\n this.isOutlierGroup = node.isOutlierGroup || false;\n }\n}\n","import * as Icons from '@fluentui/react-icons';\nimport { cloneDeep, orderBy } from 'lodash';\nimport { v4 as uuid } from 'uuid';\nimport { evaluateRule, mapRule } from '../rules/RuleUtilities';\nimport {\n getSearchIdentifiers,\n getSearchObject\n} from '../search/SearchUtilities';\nimport { toLowerFirstChar, toUpperFirstChar } from '../input/StringUtilities';\nimport {\n CardinalityTypeEnums,\n NodeGroupTypeEnums,\n NodeGroupOutlierEnums\n} from '../../enums/unitySystemEnums';\nimport GroupNode from '../../models/GroupNode';\n\nexport const makeTreeStructure = (\n treeData,\n key,\n parentKey,\n parentGroupKey = 'parentGroupId'\n) => {\n if (!treeData) {\n return [];\n }\n const keys = [];\n\n treeData.forEach((node) => {\n node.children = [];\n if (node['isExpanded'] === undefined && !node.isGroupNode) {\n if (\n node.properties.defaultDisplay === 'collapsed' ||\n node.properties.lazyLoad\n ) {\n node.isExpanded = false;\n } else {\n node.isExpanded = true;\n }\n }\n keys.push(node[key]);\n });\n const roots = treeData.filter((node) => {\n return !(node?.isGroupNode ? node[parentGroupKey] : node[parentKey]);\n });\n const nodes = [];\n const existingGroups = [];\n roots.forEach((root) => {\n nodes.push(root);\n });\n while (nodes.length > 0) {\n const node = nodes.pop();\n let children = treeData.filter(\n (data) =>\n data[parentKey] === node[key] || data[parentGroupKey] === node[key]\n );\n children.forEach((child) => {\n if (child?.isGroupNode) {\n const existingGroup = existingGroups.find(\n (eg) => eg.id === child.id && eg.parentGroupId === child.parentGroupId\n );\n if (!existingGroup) {\n existingGroups.push(child);\n node.children.push(child);\n nodes.push(child);\n }\n } else {\n if (\n (node.isGroupNode && child.parentGroupId) ||\n (!node.isGroupNode && !child.parentGroupId)\n ) {\n node.children.push(child);\n nodes.push(child);\n }\n }\n });\n }\n\n const removeEmptyGroupNodes = (node) => {\n if (node?.isGroupNode && node?.hideEmptyGroups && !node?.children?.length) {\n return null;\n }\n node.children = node.children\n .map(removeEmptyGroupNodes)\n .filter((child) => child !== null);\n return node;\n };\n\n const filteredRoots = roots\n .map(removeEmptyGroupNodes)\n .filter((root) => root !== null);\n if (filteredRoots.length === 1) return filteredRoots[0];\n return filteredRoots;\n};\n\nexport const makeTreeStaticGroupStructure = (\n treeData,\n key,\n parentKey,\n groupType = NodeGroupTypeEnums.Static,\n hideEmptyGroups\n) => {\n if (!treeData) {\n return [];\n }\n const keys = [];\n\n treeData.forEach((node, index) => {\n const {\n id,\n hideEmptyGroups,\n children,\n apiMethodInstanceId,\n parentGroupId,\n order,\n isExpanded,\n ...groupProperties\n } = node;\n treeData[index] = new GroupNode({\n id: id,\n groupType,\n children,\n parentId: parentGroupId,\n parentGroupId,\n isExpanded,\n properties: { ...groupProperties }\n });\n\n keys.push(node[key]);\n });\n const roots = treeData.filter((node) => keys.indexOf(node[parentKey]) === -1);\n const nodes = [];\n roots.forEach((root) => {\n nodes.push(root);\n });\n while (nodes.length > 0) {\n const node = nodes.pop();\n let children = treeData.filter((data) => data[parentKey] === node[key]);\n children.forEach((child) => {\n node.children.push(child);\n nodes.push(child);\n });\n }\n if (roots.length === 1) return roots[0];\n return roots;\n};\n\nexport const makeDynamicGroupStructures = (treeStructure, results) => {\n if (!treeStructure) {\n return [];\n }\n const groupStructures = [];\n results.forEach((item) => {\n processDynamicGroupForCurrentNodeLevel(\n item,\n treeStructure,\n groupStructures,\n groupStructures\n );\n });\n\n return groupStructures;\n};\n\nconst processDynamicGroupForCurrentNodeLevel = (\n item,\n node,\n groupStructures,\n previousFilteredGroups = []\n) => {\n const { property, id } = node;\n const label = property ? getLabelFromProperty(item, property) : null;\n // stores the next set of nodes for the current level of the tree\n let filteredGroups = [];\n previousFilteredGroups.forEach((group) => {\n if (group) {\n const foundGroups = findNodesByIdAndLabel(group, id, label);\n if (foundGroups.length) {\n filteredGroups = filteredGroups.concat(foundGroups);\n }\n }\n });\n if (filteredGroups.length) {\n if (node?.children?.length) {\n node.children.forEach((child) =>\n processDynamicGroupForCurrentNodeLevel(\n item,\n child,\n groupStructures,\n filteredGroups\n )\n );\n }\n } else {\n if (label) {\n const dynamicGroupTree = makeDynamicGroupTree(node, item);\n if (node.parentGroupId) {\n // find the parent group structure and make it's children = dynamicGroupTree\n previousFilteredGroups.forEach((filteredGroup) => {\n const matchingGroupNode = findNodeById(\n filteredGroup,\n node.parentGroupId\n );\n if (matchingGroupNode) {\n // set the parentGroupId of the groupTree to matchingGroupNode parent in case\n // parentGroupId does not exist\n dynamicGroupTree.parentGroupId = matchingGroupNode.id;\n matchingGroupNode.children.push(dynamicGroupTree);\n }\n });\n } else {\n groupStructures.push(dynamicGroupTree);\n }\n }\n }\n};\n\nconst makeDynamicGroupTree = (node, item, parentGroupNode) => {\n const {\n id,\n children,\n apiMethodInstanceId,\n parentGroupId,\n order,\n property,\n label,\n isExpanded,\n ...groupProperties\n } = node;\n const updatedLabel = property ? getLabelFromProperty(item, property) : null;\n if (updatedLabel) {\n const groupNode = new GroupNode({\n id: `${id}`,\n groupType: NodeGroupTypeEnums.Dynamic,\n children: [],\n parentGroupId: parentGroupNode?.id || null,\n isExpanded,\n properties: {\n label: updatedLabel,\n ...groupProperties,\n propertyKey: property\n }\n });\n if (parentGroupNode) {\n parentGroupNode.children.push(groupNode);\n }\n if (children?.length) {\n children.forEach((child) => makeDynamicGroupTree(child, item, groupNode));\n }\n\n return groupNode;\n }\n};\n\nexport const makeDynamicTreeStructure = (treeData, key, parentKey) => {\n if (!treeData) {\n return [];\n }\n const keys = [];\n\n treeData.forEach((node, index) => {\n keys.push(node[key]);\n });\n const roots = treeData.filter((node) => keys.indexOf(node[parentKey]) === -1);\n const nodes = [];\n roots.forEach((root) => {\n nodes.push(root);\n });\n while (nodes.length > 0) {\n const node = nodes.pop();\n let children = treeData.filter((data) => data[parentKey] === node[key]);\n children.forEach((child) => {\n node.children.push(child);\n nodes.push(child);\n });\n }\n if (roots.length === 1) return roots[0];\n return roots;\n};\n\nexport const getIconFromName = (name) => {\n if (!name) {\n return null;\n }\n const substr = name.slice(-4);\n if (substr.toLowerCase() !== 'icon') {\n const updatedName = `${name}Icon`;\n return Icons[updatedName] || null;\n } else {\n return Icons[name] || null;\n }\n};\n\nexport const findLastNode = (tree) => {\n let result = null;\n if (!tree?.children?.length) {\n return tree;\n } else {\n if (tree?.children) {\n tree.children.forEach((node) => (result = findLastNode(node)));\n }\n return result;\n }\n};\n\nexport const searchTree = (tree, id) => {\n let result = null;\n if (tree.id === id) {\n return tree;\n } else {\n if (tree.children) {\n tree.children.some((node) => (result = searchTree(node, id)));\n }\n return result;\n }\n};\n\nexport const deleteNode = (treeData, nodeId) => {\n const updatedTreeData = [...treeData];\n const foundNode = updatedTreeData.find((node) => node.id === nodeId);\n const nodeIndex = updatedTreeData.findIndex((node) => node.id === nodeId);\n\n // If it's node is first or last...\n if (\n !foundNode.parentId ||\n !updatedTreeData.some((node) => node.parentId === nodeId)\n ) {\n if (nodeIndex > -1) {\n // Delete the node\n updatedTreeData.splice(nodeIndex, 1);\n }\n const immediateChild = updatedTreeData.find(\n (node) => node.parentId === nodeId\n );\n // Set the immediate child's parent id to null\n if (immediateChild) {\n immediateChild.parentId = null;\n }\n } else {\n foundNode.isDeleted = true;\n foundNode.properties = {};\n }\n return updatedTreeData;\n};\n\nexport const deleteNodeAndChildren = (treeData, nodeId) => {\n const updatedTreeData = [...treeData];\n const nodeIdsToDelete = [];\n nodeIdsToDelete.push(nodeId);\n getAllChildrenNodesToDelete(updatedTreeData, nodeId, nodeIdsToDelete);\n return updatedTreeData.filter((node) => !nodeIdsToDelete.includes(node.id));\n};\n\nexport const getAllChildrenNodesToDelete = (\n treeData,\n nodeId,\n nodeIdsToDelete\n) => {\n const nodesToDelete = treeData.filter((node) => node.parentId === nodeId);\n nodesToDelete.forEach((node) => {\n nodeIdsToDelete.push(node.id);\n getAllChildrenNodesToDelete(treeData, node.id, nodeIdsToDelete);\n });\n};\n\nexport const processCatalogObjectKeysInOrder = (tree, keys) => {\n if (!tree?.children?.length) {\n keys.push(tree?.properties?.catalogObjectKey);\n } else {\n if (tree?.children) {\n if (tree?.properties?.catalogObjectKey) {\n keys.push(tree?.properties?.catalogObjectKey);\n }\n tree.children.forEach((node) =>\n processCatalogObjectKeysInOrder(node, keys)\n );\n }\n }\n};\n\nexport const processOrderedTreeData = (tree, treeData) => {\n if (!tree?.children?.length) {\n treeData.push(tree);\n } else {\n if (tree?.children) {\n treeData.push(tree);\n tree.children.forEach((node) => processOrderedTreeData(node, treeData));\n }\n }\n};\n\n// treeData is ordered by heirarchy\nexport const processObjectToTree = (\n result,\n treeData,\n objectReferenceKeys,\n treeList,\n catalogObjects,\n promotedEntities,\n wasLazyLoaded\n) => {\n const treeArr = { ...treeData };\n processReferences(\n result,\n objectReferenceKeys,\n treeArr,\n 0,\n treeList,\n null,\n catalogObjects,\n promotedEntities,\n wasLazyLoaded\n );\n};\n\n/*\n example parameters:\n objectReferenceKeys : [\"customers\", \"customerAccounts\", \"usagePoints\"]\n*/\nexport const processReferences = (\n reference,\n objectReferenceKeys,\n treeData,\n index,\n treeList,\n parentId,\n catalogObjects,\n promotedEntities,\n wasLazyLoaded\n) => {\n const newIndex = index + 1;\n if (reference) {\n let node = parentId ? treeData[newIndex] : treeData[0];\n let nodeGroups = [];\n if (parentId) {\n if (\n node?.properties?.groupConfiguration?.groupType ===\n NodeGroupTypeEnums.Static\n ) {\n nodeGroups = constructStaticNodeGroups(node, true);\n } else if (\n node?.properties?.groupConfiguration?.groupType ===\n NodeGroupTypeEnums.Dynamic\n ) {\n nodeGroups = constructDynamicNodeGroups(reference, node, true);\n }\n }\n if (Array.isArray(reference) && reference.length) {\n reference.forEach((ref, i) => {\n if (node) {\n const nodeCopy = cloneDeep(node);\n processObjIndex(\n nodeCopy,\n ref,\n i,\n parentId,\n catalogObjects,\n promotedEntities,\n wasLazyLoaded\n );\n if (nodeGroups.length) {\n if (\n node?.properties?.groupConfiguration?.groupType ===\n NodeGroupTypeEnums.Static\n ) {\n const groupedItemIndexes = new Set();\n let processedItem = { itemAdded: false, nodeChildren: [] };\n nodeGroups.forEach((nodeGroup) => {\n let nodeGroupChildren = [];\n processedItem = processItemForStaticNodeGroup(\n nodeGroup,\n ref,\n groupedItemIndexes,\n nodeCopy,\n i,\n new Set(),\n treeList\n );\n nodeGroupChildren = nodeGroupChildren.concat(\n processedItem.nodeChildren\n );\n mapNodeGroupChildren(nodeGroup, nodeGroupChildren);\n nodeGroup.parentGroupId = nodeCopy.parentId;\n });\n if (\n !processedItem.itemAdded &&\n node?.properties?.groupConfiguration?.outlier ===\n NodeGroupOutlierEnums.Individual\n ) {\n const nodeIsHidden = checkNodeIsHidden(\n nodeCopy,\n ref,\n wasLazyLoaded\n );\n !nodeIsHidden && treeList.push(nodeCopy);\n }\n } else if (\n node?.properties?.groupConfiguration?.groupType ===\n NodeGroupTypeEnums.Dynamic\n ) {\n // Handle constructing dynamic node groups\n // There's a nodeCopy and we want to check what group it belongs to\n nodeGroups.forEach((nodeGroup) => {\n nodeGroup.parentGroupId = nodeCopy.parentId;\n nodeGroup.parentId = nodeCopy.parentId;\n processGroupNodesAndAddToTreeList(\n nodeGroup,\n treeList,\n nodeCopy.parentId,\n ref,\n wasLazyLoaded\n );\n });\n }\n } else {\n const nodeIsHidden = checkNodeIsHidden(\n nodeCopy,\n ref,\n wasLazyLoaded\n );\n !nodeIsHidden && treeList.push(nodeCopy);\n }\n\n if (nodeCopy?.children?.length) {\n const objectReferenceKeysCopy = [...objectReferenceKeys];\n nodeCopy.children.forEach((childNode, i) => {\n const catalogObjectKey = childNode?.properties?.catalogObjectKey;\n const nextIndex =\n objectReferenceKeysCopy.indexOf(catalogObjectKey);\n if (!parentId) {\n objectReferenceKeysCopy[nextIndex] = null;\n }\n processReferences(\n ref[catalogObjectKey],\n objectReferenceKeys,\n treeData,\n nextIndex,\n treeList,\n nodeCopy.id,\n catalogObjects,\n promotedEntities,\n nodeCopy.properties.lazyLoad\n );\n });\n }\n }\n });\n } else if (typeof reference === 'object' && !Array.isArray(reference)) {\n processObjIndex(\n node,\n reference,\n 0,\n parentId,\n catalogObjects,\n promotedEntities,\n wasLazyLoaded\n );\n if (node) {\n const nodeCopy = cloneDeep(node);\n const nodeIsHidden = checkNodeIsHidden(\n nodeCopy,\n reference,\n wasLazyLoaded\n );\n !nodeIsHidden && treeList.push(nodeCopy);\n if (nodeCopy?.children?.length) {\n const objectReferenceKeysCopy = [...objectReferenceKeys];\n nodeCopy.children.forEach((childNode, i) => {\n const catalogObjectKey = childNode?.properties?.catalogObjectKey;\n const nextIndex = parentId\n ? newIndex\n : objectReferenceKeysCopy.indexOf(catalogObjectKey);\n if (!parentId) {\n objectReferenceKeysCopy[nextIndex] = null;\n }\n processReferences(\n reference[catalogObjectKey],\n objectReferenceKeys,\n treeData,\n nextIndex,\n treeList,\n nodeCopy.id,\n catalogObjects,\n promotedEntities,\n nodeCopy.properties.lazyLoad\n );\n });\n }\n }\n }\n }\n};\n\n// Updates current node object properties with data it needs to be rendered\nexport const processObjIndex = (\n node,\n obj,\n index,\n parentId,\n catalogObjects,\n promotedEntities,\n wasLazyLoaded\n) => {\n if (node.properties.conditionalNodeIconExpression) {\n const conditionalNodeIcon = evaluateRule(\n node.properties.conditionalNodeIconExpression,\n obj,\n node.properties?.joiningEntityCatalogObjectKey,\n wasLazyLoaded\n );\n if (conditionalNodeIcon) {\n node.properties['conditionalNodeIconName'] =\n conditionalNodeIcon?.name || '';\n node.properties['conditionalNodeIconColor'] =\n conditionalNodeIcon?.iconColor?.hex;\n node.properties['conditionalNodeIconType'] =\n conditionalNodeIcon?.type || '';\n } else {\n // explicitly sets it to empty string due to other conditional icons setting the node properties\n node.properties['conditionalNodeIconName'] = '';\n node.properties['conditionalNodeIconColor'] = '';\n node.properties['conditionalNodeIconType'] = '';\n }\n }\n // due to the original adornments being stored as conditionalIcons, we need to check the conditionalIconExpression as a fallback\n if (\n node.properties.conditionalNodeAdornmentExpression ||\n node.properties.conditionalIconExpression\n ) {\n const conditionalNodeAdornment = node.properties\n .conditionalNodeAdornmentExpression\n ? evaluateRule(\n node.properties.conditionalNodeAdornmentExpression,\n obj,\n node.properties?.joiningEntityCatalogObjectKey,\n wasLazyLoaded\n )\n : evaluateRule(\n node.properties.conditionalIconExpression,\n obj,\n node.properties?.joiningEntityCatalogObjectKey,\n wasLazyLoaded\n );\n\n if (conditionalNodeAdornment) {\n node.properties['conditionalNodeAdornmentName'] =\n conditionalNodeAdornment?.name || '';\n node.properties['conditionalNodeAdornmentColor'] =\n conditionalNodeAdornment?.iconColor?.hex;\n node.properties['conditionalNodeAdornmentType'] =\n conditionalNodeAdornment?.type || '';\n } else {\n // explicitly sets it to empty string due to other conditional icons setting the node properties\n node.properties['conditionalNodeAdornmentName'] = '';\n node.properties['conditionalNodeAdornmentColor'] = '';\n node.properties['conditionalNodeAdornmentType'] = '';\n }\n }\n\n if (node.properties.catalogReturnObject) {\n let searchIdentifiers = getSearchIdentifiers(\n catalogObjects,\n node.properties.catalogReturnObject\n );\n node.properties['searchIdentifier'] = searchIdentifiers?.join(',');\n const associatedTreePrimaryKeyMap =\n node.properties.associatedTreePrimaryKeyMap;\n if (!!associatedTreePrimaryKeyMap) {\n searchIdentifiers = Object.keys(associatedTreePrimaryKeyMap);\n node.properties['searchIdentifier'] = searchIdentifiers;\n }\n\n node.properties['filterElements'] = [];\n const searchValues = [];\n const joiningEntityCatalogObjectKey =\n node?.properties?.joiningEntityCatalogObjectKey;\n searchIdentifiers.forEach((searchIdentifier) => {\n const searchField = searchIdentifier\n ? searchIdentifier.charAt(0).toUpperCase() + searchIdentifier.slice(1)\n : '';\n let searchValue = '';\n let si = associatedTreePrimaryKeyMap?.[searchIdentifier]\n ? associatedTreePrimaryKeyMap?.[searchIdentifier]\n : searchIdentifier;\n if (obj[si]) {\n searchValue = obj[si];\n } else if (joiningEntityCatalogObjectKey) {\n searchValue = obj[joiningEntityCatalogObjectKey]\n ? obj[joiningEntityCatalogObjectKey][si]\n : '';\n }\n node.properties['filterElements'].push({\n searchField: searchField,\n searchOperator: '=',\n searchValue: searchValue ?? ''\n });\n searchValues.push(searchValue);\n });\n node.properties['searchValue'] = searchValues.toString();\n }\n node.properties['nodeLabel'] = getDisplayName(node, obj);\n node.properties['nodeSubLabel'] = getDisplayDetails(node, obj);\n node.properties['headerTitle'] = getHeaderTitle(node, obj);\n\n node.parentId = parentId;\n node['entityNodeParentId'] = parentId;\n node.id = uuid();\n node.nodeObj = obj;\n\n if (node?.properties?.lazyLoad) {\n node.lazyLoadChildrenArr = getLazyLoadChildrenArr(\n node,\n catalogObjects,\n promotedEntities\n );\n }\n};\n\nconst getEntityAssoc = (nodeEntity, node) => {\n let entityAssoc = null;\n if (nodeEntity) {\n const referenceProperty = nodeEntity.properties.find((property) => {\n if (node.properties?.joiningEntityName) {\n return property.reference === node.properties?.joiningEntityName;\n } else {\n return property.reference === node.properties?.catalogReturnObject;\n }\n });\n entityAssoc = referenceProperty\n ? referenceProperty.extendedProperties?.childEntityAssoc\n : null;\n }\n return entityAssoc;\n};\n\nexport const getLazyLoadChildrenArr = (\n node,\n catalogObjects,\n promotedEntities\n) => {\n const lazyLoadChildrenArr = [];\n let defaultSearchIdentifiers = [];\n if (node?.properties?.catalogReturnObject) {\n defaultSearchIdentifiers = getSearchIdentifiers(\n catalogObjects,\n node.properties.catalogReturnObject\n );\n }\n node &&\n node.children &&\n node.children.forEach((childNode) => {\n const lazyNodeSearchObj = {\n apiMethodId: null,\n data: null,\n parentNodeRefKey: childNode.properties?.catalogObjectKey,\n catalogReturnObject: childNode.properties?.catalogReturnObject\n };\n const entityName = childNode.properties?.catalogReturnObject;\n const promotedEntity = promotedEntities?.find(\n (pe) => pe.entityName === entityName\n );\n let searchIdentifiers = [];\n const filterElements = [];\n if (promotedEntity) {\n // Use base search method to be the method for lazy loading node\n let baseSearch = promotedEntity.unityBaseSearchMethod;\n // Used for many-to-many subsequent entity search\n let childBaseSearch = promotedEntity.unityBaseSearchMethod;\n const nodeEntity = catalogObjects?.find(\n (co) => co.catalogObjectName === node.properties?.catalogReturnObject\n );\n let isManyToManySearch = false;\n let usingJoiningTableForSearch = false;\n if (nodeEntity) {\n const childEntityAssoc = getEntityAssoc(nodeEntity, childNode);\n let joiningEntityName = null;\n let promotedEntityForJoiningTable = null;\n // process many-to-many association to get the joined table information\n if (\n childEntityAssoc.Cardinality === CardinalityTypeEnums.Many_To_Many\n ) {\n isManyToManySearch = true;\n lazyNodeSearchObj['manyToManyKeys'] = [];\n joiningEntityName = childNode.properties?.joiningEntityName;\n promotedEntityForJoiningTable = promotedEntities?.find(\n (pe) => pe.entityName === joiningEntityName\n );\n\n // if there is a many-to-many joining table search method, we should use that for searching\n if (promotedEntityForJoiningTable?.unityBaseSearchMethod) {\n baseSearch = promotedEntityForJoiningTable.unityBaseSearchMethod;\n // this is basically the property that identifies whether or not to make an additional network call\n // to get the entity data\n lazyNodeSearchObj.manyToManyJointEntityApiMethodId =\n childBaseSearch?.apiMethodId;\n usingJoiningTableForSearch = true;\n }\n\n const childNodeEntity = catalogObjects.find(\n (co) =>\n co.catalogObjectName ===\n childNode.properties?.catalogReturnObject\n );\n\n const entityAssoc = getEntityAssoc(childNodeEntity, childNode);\n if (entityAssoc && Object.keys(entityAssoc).length) {\n entityAssoc.Keys.forEach((keyVal) => {\n const keyValArr = keyVal.split(',');\n const foreignKeyName = keyValArr[0] ? keyValArr[0].trim() : '';\n const parentIdentifierName = keyValArr[1]\n ? keyValArr[1].trim()\n : '';\n const searchValueKey = /^[A-Z]*$/.test(parentIdentifierName)\n ? parentIdentifierName.toLowerCase()\n : toLowerFirstChar(parentIdentifierName);\n lazyNodeSearchObj['manyToManyKeys'].push({\n searchItemIdentifier: usingJoiningTableForSearch\n ? /^[A-Z]*$/.test(foreignKeyName)\n ? foreignKeyName.toLowerCase()\n : toLowerFirstChar(foreignKeyName)\n : searchValueKey,\n searchNameKey: foreignKeyName,\n // check name string: if 1 word, lowercase. if 2 words, lower first char\n searchValueKey: searchValueKey\n });\n });\n }\n }\n\n if (childEntityAssoc && Object.keys(childEntityAssoc).length) {\n childEntityAssoc.Keys.forEach((keyVal) => {\n const keyValArr = keyVal.split(',');\n let searchJoiningEntity = '';\n if (\n !isManyToManySearch &&\n node.nodeObj.hasOwnProperty(\n node.properties.joiningEntityCatalogObjectKey\n )\n ) {\n searchJoiningEntity =\n node.properties.joiningEntityCatalogObjectKey;\n }\n const foreignKeyName = keyValArr[0] ? keyValArr[0].trim() : '';\n const parentIdentifierName = keyValArr[1]\n ? keyValArr[1].trim()\n : '';\n let siObj = {\n searchNameKey: parentIdentifierName,\n // check name string: if 1 word, lowercase. if 2 words, lower first char\n searchValueKey: /^[A-Z]*$/.test(foreignKeyName)\n ? foreignKeyName.toLowerCase()\n : toLowerFirstChar(foreignKeyName),\n searchJoiningEntity: searchJoiningEntity\n };\n if (isManyToManySearch && !usingJoiningTableForSearch) {\n siObj = {\n searchNameKey: foreignKeyName,\n // check name string: if 1 word, lowercase. if 2 words, lower first char\n searchValueKey: /^[A-Z]*$/.test(foreignKeyName)\n ? foreignKeyName.toLowerCase()\n : toLowerFirstChar(foreignKeyName)\n };\n }\n if (isManyToManySearch) {\n if (\n childNode.properties?.catalogObjectKey &&\n childNode.properties?.joiningEntityCatalogObjectLeftKey\n ) {\n siObj['joiningEntityKeyName'] = toUpperFirstChar(\n !usingJoiningTableForSearch\n ? childNode.properties?.joiningEntityChildKey\n : childNode.properties?.catalogObjectKey\n );\n siObj['joiningEntityCatalogObjectLeftKeyName'] =\n toUpperFirstChar(\n childNode.properties?.joiningEntityCatalogObjectLeftKey\n );\n }\n if (promotedEntityForJoiningTable?.unityBaseSearchMethod) {\n siObj['joiningEntityKeyName'] = null;\n siObj['joiningEntityCatalogObjectLeftKeyName'] = null;\n }\n }\n searchIdentifiers.push(siObj);\n });\n }\n }\n\n // If there are no search identifiers, then use the default one retrieved from catalog entities\n if (!searchIdentifiers.length) {\n defaultSearchIdentifiers.forEach((searchIdentifier) => {\n const siObj = {\n searchNameKey: searchIdentifier,\n searchValueKey: searchIdentifier\n };\n if (\n childNode.properties?.catalogObjectKey &&\n childNode.properties?.joiningEntityCatalogObjectLeftKey\n ) {\n siObj['joiningEntityKeyName'] = toUpperFirstChar(\n childNode.properties?.catalogObjectKey\n );\n siObj['joiningEntityCatalogObjectLeftKeyName'] = toUpperFirstChar(\n childNode.properties?.joiningEntityCatalogObjectLeftKey\n );\n }\n searchIdentifiers.push(siObj);\n });\n }\n\n searchIdentifiers.forEach((si) => {\n // value come's from parent node object\n let searchValue = '';\n if (si?.searchJoiningEntity) {\n searchValue =\n node.nodeObj[si.searchJoiningEntity][si.searchValueKey];\n } else {\n if (usingJoiningTableForSearch) {\n const joiningEntityCatalogObjectKey =\n node?.properties?.joiningEntityCatalogObjectKey;\n const value = node?.nodeObj?.[joiningEntityCatalogObjectKey];\n searchValue = value\n ? value[si.searchValueKey]\n : node.nodeObj[si.searchValueKey];\n } else {\n searchValue = node.nodeObj[si.searchValueKey];\n }\n }\n let formattedPropertyName = toUpperFirstChar(si.searchNameKey);\n if (\n si['joiningEntityKeyName'] &&\n si['joiningEntityCatalogObjectLeftKeyName']\n ) {\n formattedPropertyName = `${si['joiningEntityKeyName']}.${si['joiningEntityCatalogObjectLeftKeyName']}.${formattedPropertyName}`;\n }\n filterElements.push({\n searchField: formattedPropertyName,\n searchValue: searchValue,\n searchOperator: '='\n });\n });\n lazyNodeSearchObj.data = getSearchObject(filterElements, 1, 50);\n lazyNodeSearchObj.apiMethodId = baseSearch?.apiMethodId || null;\n lazyLoadChildrenArr.push(lazyNodeSearchObj);\n } else {\n console.log('Error: Promote ' + entityName + ' entity');\n node.errorRetrievingChildren =\n 'Error: Promote ' + entityName + ' child entity';\n }\n });\n return lazyLoadChildrenArr;\n};\n\nexport const formatTreeMenuItem = (\n responseObject,\n treeStructure,\n catalogObjects,\n promotedEntities,\n associatedInquiryTree,\n wasLazyLoaded\n) => {\n if (!responseObject) return null;\n const tree = cloneDeep(treeStructure);\n const orderedKeys = [];\n const orderedTreeData = [];\n const treeArr = [];\n processCatalogObjectKeysInOrder(tree, orderedKeys);\n processOrderedTreeData(tree, orderedTreeData);\n processObjectToTree(\n responseObject,\n orderedTreeData,\n orderedKeys,\n treeArr,\n catalogObjects,\n promotedEntities,\n wasLazyLoaded\n );\n\n const displayTree = makeTreeStructure(treeArr, 'id', 'parentId');\n displayTree['associatedInquiryTree'] = associatedInquiryTree;\n displayTree['wasLazyLoaded'] = wasLazyLoaded;\n return displayTree;\n};\n\nexport const expandAllNodes = (tree) => {\n tree.isExpanded = true;\n if (tree?.children) {\n tree.children.forEach((node) => expandAllNodes(node));\n }\n};\n\nexport const collapseAllNodes = (tree) => {\n tree.isExpanded = false;\n if (tree?.children) {\n tree.children.forEach((node) => collapseAllNodes(node));\n }\n};\n\nexport const findAllParentIds = (\n menuItems,\n currentParentNode,\n allParentIds = []\n) => {\n if (currentParentNode?.parentId) {\n allParentIds.push(currentParentNode?.parentId);\n const newParentNode = searchTree(menuItems, currentParentNode?.parentId);\n findAllParentIds(menuItems, newParentNode, allParentIds);\n }\n\n return allParentIds;\n};\n\nexport const formatTreeLabel = (label, obj) => {\n const fields = label?.split('+');\n const keys = fields?.map((field) => field.trim());\n if (keys) {\n const skippableKeys = [];\n const updatedKeys = keys.map((key, index) => {\n const matchedKey = key.charAt(0) === '\"';\n if (matchedKey) {\n skippableKeys.push(index);\n key = key.replace(/\"/g, '');\n }\n return key;\n });\n const values = [];\n for (let j = 0; j < keys.length; j++) {\n let property = keys[j];\n if (property) {\n const splitProperties = property.split('.');\n if (splitProperties.length > 1) {\n let constructedValue = null;\n splitProperties.forEach((property) => {\n const matches = property.match(/\\[(.*?)\\]/);\n let objIndex = null;\n let arrIndex = null;\n if (matches) {\n arrIndex = parseInt(matches[1]);\n objIndex = matches.index;\n }\n if (typeof arrIndex === 'number' && objIndex) {\n const formattedProperty = property.substring(0, objIndex);\n if (!constructedValue) {\n if (obj[formattedProperty]) {\n constructedValue = obj[formattedProperty][arrIndex];\n }\n } else {\n if (constructedValue[formattedProperty]) {\n constructedValue =\n constructedValue[formattedProperty][arrIndex];\n }\n }\n } else {\n if (!constructedValue) {\n constructedValue = obj[property];\n } else {\n constructedValue = constructedValue[property];\n }\n }\n });\n if (\n typeof constructedValue === 'boolean' ||\n typeof constructedValue === 'number'\n ) {\n constructedValue = constructedValue.toString();\n }\n values.push(constructedValue);\n continue;\n }\n }\n let value = obj[property];\n if (typeof value === 'boolean' || typeof value === 'number') {\n value = value.toString();\n }\n values.push(value);\n }\n let displayName = updatedKeys.join('+');\n for (let k = 0; k < updatedKeys.length; k++) {\n if (!skippableKeys.includes(k)) {\n if (values[k]) {\n displayName = displayName.replace(`${updatedKeys[k]}`, values[k]);\n } else {\n displayName = displayName.replace(`${updatedKeys[k]}`, '');\n }\n }\n }\n\n return displayName.replaceAll('+', ' ');\n } else {\n return label;\n }\n};\n\nexport const getDisplayName = (node, obj) => {\n return formatTreeLabel(node.properties['displayName'], obj);\n};\n\nexport const getDisplayDetails = (node, obj) => {\n return formatTreeLabel(node.properties['displayDetails'], obj);\n};\n\nexport const getHeaderTitle = (node, obj) => {\n return formatTreeLabel(node.properties['headerName'], obj);\n};\n\nexport const searchForMatchingNode = (\n tree,\n nodeObj = {},\n searchIdentifiers = []\n) => {\n let result = null;\n let match = true;\n searchIdentifiers.forEach((searchIdentifier) => {\n if (tree?.nodeObj[searchIdentifier] !== nodeObj[searchIdentifier]) {\n match = false;\n }\n });\n if (match && searchIdentifiers.length) {\n return tree;\n } else {\n if (tree.children) {\n tree.children.some(\n (node) =>\n (result = searchForMatchingNode(node, nodeObj, searchIdentifiers))\n );\n }\n return result;\n }\n};\n\nexport const getNodeIdForRightBorder = (expandedNodeIds, node, parentId) => {\n if (!expandedNodeIds.includes(node?.id)) {\n return node.id;\n }\n if (!expandedNodeIds.includes(parentId)) {\n const foundParentNode = node.children.find((item) => item.id === parentId);\n if (foundParentNode) {\n if (expandedNodeIds.includes(foundParentNode?.parentId)) {\n return parentId;\n } else {\n return getNodeIdForRightBorder(\n expandedNodeIds,\n foundParentNode,\n foundParentNode?.parentId\n );\n }\n }\n } else {\n return parentId;\n }\n};\n\nexport const findNodeById = (tree, id) => {\n let result = null;\n if (tree?.id === id) {\n return tree;\n } else {\n if (tree.children) {\n tree.children.some((node) => (result = findNodeById(node, id)));\n }\n return result;\n }\n};\n\nexport const findNodeByIdAndLabel = (tree, id, label) => {\n let result = null;\n if (tree?.id === id && tree?.properties?.label === label) {\n return tree;\n } else {\n if (tree.children) {\n tree.children.some((node) => (result = findNodeById(node, id, label)));\n }\n return result;\n }\n};\n\nexport const findNodesByIdAndLabel = (tree, id, label) => {\n let results = [];\n if (tree?.id === id && tree?.properties?.label === label) {\n results.push(tree);\n }\n if (tree.children) {\n tree.children.forEach((node) => {\n results = results.concat(findNodesByIdAndLabel(node, id, label));\n });\n }\n return results;\n};\n\nconst updateNodeForStaticGrouping = (\n displayTree,\n nodeGroup,\n nodeChildren,\n treeList,\n scopedGroupItemIndexes,\n groupedItemIndexes,\n index,\n item\n) => {\n // Only clone deep on children to handle multiple of same node\n // references in different groups.\n const updatedDisplayTree = { ...displayTree };\n const nodeIsHidden = checkNodeIsHidden(updatedDisplayTree, item, false);\n if (!nodeIsHidden) {\n updatedDisplayTree.children = displayTree.children\n ? cloneDeep(displayTree.children)\n : displayTree.children;\n updatedDisplayTree['parentId'] = nodeGroup.id;\n updatedDisplayTree['parentGroupId'] = nodeGroup.id;\n updatedDisplayTree['parentGroupName'] = nodeGroup.properties.label;\n if (updatedDisplayTree.isGroupNode) {\n nodeGroup.children.push(updatedDisplayTree);\n } else {\n nodeChildren.push(updatedDisplayTree);\n }\n if (treeList) {\n treeList.push(updatedDisplayTree);\n }\n scopedGroupItemIndexes.add(index);\n groupedItemIndexes.add(index);\n }\n};\n\nexport const processItemForStaticNodeGroup = (\n nodeGroup,\n item,\n groupedItemIndexes,\n displayTree,\n index,\n scopedGroupItemIndexes = new Set(),\n treeList,\n nodeChildren = []\n) => {\n if (\n nodeGroup?.properties?.propertyMapping &&\n nodeGroup?.properties?.jsonLogic\n ) {\n const rule = mapRule(\n nodeGroup?.properties?.propertyMapping,\n nodeGroup?.properties?.jsonLogic\n );\n if (\n rule &&\n evaluateRule(\n rule,\n item,\n item.properties?.joiningEntityCatalogObjectKey,\n false\n )\n ) {\n let itemAdded = false;\n nodeGroup.children.forEach((childGroup) => {\n if (childGroup.isGroupNode) {\n const processedItem = processItemForStaticNodeGroup(\n childGroup,\n item,\n groupedItemIndexes,\n displayTree,\n index,\n childGroup.children.length ? new Set() : scopedGroupItemIndexes,\n treeList,\n nodeChildren\n ) || { itemAdded };\n itemAdded = processedItem?.itemAdded;\n }\n });\n if (!itemAdded) {\n updateNodeForStaticGrouping(\n displayTree,\n nodeGroup,\n nodeChildren,\n treeList,\n scopedGroupItemIndexes,\n groupedItemIndexes,\n index,\n item\n );\n itemAdded = true;\n }\n }\n } else {\n if (nodeGroup.isOutlierGroup && !groupedItemIndexes.has(index)) {\n updateNodeForStaticGrouping(\n displayTree,\n nodeGroup,\n nodeChildren,\n treeList,\n scopedGroupItemIndexes,\n groupedItemIndexes,\n index,\n item\n );\n }\n }\n if (treeList && nodeGroup.isGroupNode) {\n // Handles duplicates\n const existingGroup = treeList\n .filter((node) => node.isGroupNode)\n .find((eg) => eg.id === nodeGroup.id);\n if (!existingGroup) {\n const nodeIsHidden = checkNodeIsHidden(nodeGroup, item, false);\n !nodeIsHidden && treeList.push(nodeGroup);\n }\n }\n return { itemAdded: groupedItemIndexes.has(index), nodeChildren };\n};\nexport const constructStaticNodeGroups = (tree, shouldUseNewId = false) => {\n const nodeGroups = [];\n const groupConfiguration = tree?.properties?.groupConfiguration;\n const groupType = groupConfiguration?.groupType || NodeGroupTypeEnums.Static;\n const hideEmptyGroups = groupConfiguration?.hideEmptyGroups;\n\n if (\n groupConfiguration?.enabled &&\n groupConfiguration?.groupings[groupType]?.length\n ) {\n groupConfiguration.groupings[groupType].forEach((grouping) => {\n // Order By Group order\n const orderedGroups = orderByGroupOrder(grouping?.groups);\n // key is old id value is new id\n const newIdMap = {};\n orderedGroups.forEach((group) => {\n if (shouldUseNewId) {\n newIdMap[group.id] = uuid();\n }\n group['children'] = [];\n });\n if (Object.keys(newIdMap).length) {\n orderedGroups.forEach((group) => {\n if (newIdMap[group.id]) {\n group.id = newIdMap[group.id];\n }\n if (newIdMap[group.parentGroupId]) {\n group.parentGroupId = newIdMap[group.parentGroupId];\n }\n });\n }\n if (orderedGroups?.length) {\n // Get the first group where it doesn't have parentGroupId\n const firstGroup =\n orderedGroups.find((group) => !group.parentGroupId) ||\n orderedGroups[0];\n orderedGroups.shift();\n // make tree group structure\n const displayTree = makeTreeStaticGroupStructure(\n orderedGroups,\n 'id',\n 'parentGroupId',\n groupType,\n hideEmptyGroups\n );\n const { id, isExpanded, ...firstGroupProperties } = firstGroup;\n const groupNode = new GroupNode({\n id,\n hideEmptyGroups,\n groupType,\n children: Array.isArray(displayTree) ? displayTree : [displayTree],\n isExpanded,\n properties: { ...firstGroupProperties }\n });\n nodeGroups.push(groupNode);\n }\n });\n\n if (groupConfiguration?.outlier === 'group') {\n const outlierGroup = new GroupNode({\n groupType,\n isOutlierGroup: true,\n properties: {\n label:\n groupConfiguration?.outlierGroupLabel || 'Unlabeled Outlier Group',\n icon: groupConfiguration?.outlierIcon\n }\n });\n nodeGroups.push(outlierGroup);\n }\n }\n\n return nodeGroups;\n};\n\nexport const getOrderedDynamicGroups = (tree, shouldUseNewId = false) => {\n const groupConfiguration = tree?.properties?.groupConfiguration;\n const groupType = groupConfiguration?.groupType || NodeGroupTypeEnums.Dynamic;\n let orderedGroups = [];\n\n if (\n groupConfiguration?.enabled &&\n groupConfiguration?.groupings[groupType]?.length\n ) {\n groupConfiguration.groupings[groupType].forEach((grouping) => {\n // Order By Group order\n orderedGroups = orderByGroupOrder(grouping?.groups);\n // key is old id value is new id\n const newIdMap = {};\n orderedGroups.forEach((group) => {\n if (shouldUseNewId) {\n newIdMap[group.id] = uuid();\n }\n group['children'] = [];\n });\n if (Object.keys(newIdMap).length) {\n orderedGroups.forEach((group) => {\n if (newIdMap[group.id]) {\n group.id = newIdMap[group.id];\n }\n if (newIdMap[group.parentGroupId]) {\n group.parentGroupId = newIdMap[group.parentGroupId];\n }\n });\n }\n });\n }\n return orderedGroups;\n};\n\nexport const constructDynamicNodeGroups = (\n results,\n tree,\n shouldUseNewId = false\n) => {\n let nodeGroups = [];\n const groupConfiguration = tree?.properties?.groupConfiguration;\n const groupType = groupConfiguration?.groupType || NodeGroupTypeEnums.Dynamic;\n\n if (\n groupConfiguration?.enabled &&\n groupConfiguration?.groupings[groupType]?.length\n ) {\n groupConfiguration.groupings[groupType].forEach((grouping) => {\n // Order By Group order\n const orderedGroups = orderByGroupOrder(grouping?.groups);\n // key is old id value is new id\n const newIdMap = {};\n orderedGroups.forEach((group) => {\n if (shouldUseNewId) {\n newIdMap[group.id] = uuid();\n }\n group['children'] = [];\n });\n if (Object.keys(newIdMap).length) {\n orderedGroups.forEach((group) => {\n if (newIdMap[group.id]) {\n group.id = newIdMap[group.id];\n }\n if (newIdMap[group.parentGroupId]) {\n group.parentGroupId = newIdMap[group.parentGroupId];\n }\n });\n }\n if (orderedGroups?.length) {\n const isSingleGroup = orderedGroups.length === 1;\n const dynamicTreeStructure = makeDynamicTreeStructure(\n orderedGroups,\n 'id',\n 'parentGroupId'\n );\n\n const groupSet = makeDynamicGroupStructures(\n dynamicTreeStructure,\n results\n );\n\n results.forEach((item, index) => {\n const orderedKeys = [];\n const orderedTreeData = [];\n const treeArr = [];\n const innerGroupList = [];\n processCatalogObjectKeysInOrder(tree, orderedKeys);\n processOrderedTreeData(tree, orderedTreeData);\n processObjectToTree(\n item,\n orderedTreeData,\n orderedKeys,\n treeArr,\n null,\n null,\n false,\n innerGroupList\n );\n const displayTree = makeTreeStructure(treeArr, 'id', 'parentId');\n const updatedDisplayTree = cloneDeep(displayTree);\n const nodeIsHidden = checkNodeIsHidden(\n updatedDisplayTree,\n item,\n false\n );\n !nodeIsHidden &&\n processItemForDynamicNodeGroups(\n updatedDisplayTree,\n dynamicTreeStructure,\n groupSet,\n groupSet,\n isSingleGroup\n );\n });\n groupSet.forEach((group) =>\n updateTreeIds(group, null, uuid(), uuid(), null)\n );\n nodeGroups = nodeGroups.concat(groupSet);\n }\n });\n }\n\n return nodeGroups;\n};\n\nconst getLabelFromProperty = (item, property) => {\n const splitProperties = property.split('.');\n if (splitProperties.length) {\n let constructedValue = null;\n splitProperties.forEach((property) => {\n const matches = property.match(/\\[(.*?)\\]/);\n let objIndex = null;\n let arrIndex = null;\n if (matches) {\n arrIndex = parseInt(matches[1]);\n objIndex = matches.index;\n }\n if (typeof arrIndex === 'number' && objIndex) {\n const formattedProperty = property.substring(0, objIndex);\n if (!constructedValue) {\n if (item[formattedProperty]) {\n constructedValue = item[formattedProperty][arrIndex];\n }\n } else {\n if (constructedValue[formattedProperty]) {\n constructedValue = constructedValue[formattedProperty][arrIndex];\n }\n }\n } else {\n if (!constructedValue) {\n constructedValue = item ? item[property] : '';\n } else {\n constructedValue = constructedValue[property];\n }\n }\n });\n return constructedValue;\n }\n return null;\n};\n\nexport const constructBusinessObjectArrFromTree = (\n node,\n businessObjects = []\n) => {\n if (node?.nodeObj) {\n // construct the businessObject\n const businessObject = { label: '', value: '', domainObject: '' };\n const joiningEntityCatalogObjectKey =\n node.properties?.joiningEntityCatalogObjectKey;\n const displayName = node.properties?.displayName;\n if (joiningEntityCatalogObjectKey) {\n const jointEntity = node.nodeObj[joiningEntityCatalogObjectKey];\n businessObject.label =\n formatTreeLabel(displayName, node.nodeObj) ||\n jointEntity?.businessObjectKey;\n businessObject.value = jointEntity?.businessObjectKey;\n businessObject.domainObject = node.properties?.catalogReturnObject;\n } else {\n const entity = node.nodeObj;\n businessObject.label =\n formatTreeLabel(displayName, node.nodeObj) || entity?.businessObjectKey;\n businessObject.value = entity?.businessObjectKey;\n businessObject.domainObject = node.properties?.catalogReturnObject;\n }\n businessObjects.push(businessObject);\n }\n if (node?.children?.length) {\n node.children.forEach((childNode) =>\n constructBusinessObjectArrFromTree(childNode, businessObjects)\n );\n }\n return businessObjects;\n};\n\nexport const processItemForDynamicNodeGroups = (\n displayTree,\n node,\n groupNodes,\n previousFilteredGroups = [],\n isSingleGroup = false\n) => {\n const { property, id } = node;\n const item = displayTree?.nodeObj;\n const label = property ? getLabelFromProperty(item, property) : null;\n // stores the next set of nodes for the current level of the tree\n let filteredGroups = [];\n previousFilteredGroups.forEach((group) => {\n if (group) {\n const foundGroups = findNodesByIdAndLabel(group, id, label);\n if (foundGroups.length) {\n filteredGroups = filteredGroups.concat(foundGroups);\n }\n }\n });\n if (filteredGroups.length) {\n if (node?.children?.length) {\n node.children.forEach((child) =>\n processItemForDynamicNodeGroups(\n displayTree,\n child,\n groupNodes,\n filteredGroups,\n isSingleGroup\n )\n );\n } else {\n filteredGroups.forEach((filteredGroup) => {\n const matchingGroupNode = findNodeByIdAndLabel(\n filteredGroup,\n node.id,\n label\n );\n if (matchingGroupNode) {\n displayTree['parentGroupId'] = matchingGroupNode.id;\n matchingGroupNode.children.push(displayTree);\n }\n });\n }\n } else {\n if (isSingleGroup) {\n groupNodes.push(displayTree);\n } else {\n // if there isn't a match for the current level of the tree for the item,\n // if there are any previous level groups, then add it to their children\n previousFilteredGroups.forEach((filteredGroup) => {\n if (filteredGroup) {\n displayTree['parentGroupId'] = filteredGroup.id;\n filteredGroup.children.push(displayTree);\n }\n });\n }\n }\n};\n\nconst orderByGroupOrder = (groups = []) => {\n return orderBy(groups, ['order'], ['asc']);\n};\n\nexport const updateTreeIds = (\n node,\n lastEntityNodeId,\n newId = uuid(),\n newParentId = uuid(),\n parentGroupName = null\n) => {\n let entityNodeParentId = lastEntityNodeId;\n if (node) {\n node.id = newId;\n if (node.parentId || node.parentGroupId) {\n node.parentId = newParentId;\n node.parentGroupId = newParentId;\n }\n if (parentGroupName) {\n node['parentGroupName'] = parentGroupName;\n }\n\n if (!node.isGroupNode && entityNodeParentId) {\n node['entityNodeParentId'] = entityNodeParentId;\n }\n if (!node.isGroupNode) {\n entityNodeParentId = node.id;\n }\n }\n\n // traverse the children recursively and update their ids and parentIds\n if (node?.children?.length) {\n node.children.forEach((child) =>\n updateTreeIds(child, entityNodeParentId, uuid(), newId, parentGroupName)\n );\n }\n};\n\nconst processGroupNodesAndAddToTreeList = (\n node,\n treeList,\n lastEntityNodeId,\n item,\n wasLazyLoaded\n) => {\n let entityNodeParentId = lastEntityNodeId;\n if (treeList) {\n // handle duplicates\n if (!treeList.find((tree) => tree.id === node.id)) {\n if (!node.isGroupNode && entityNodeParentId) {\n node['entityNodeParentId'] = entityNodeParentId;\n }\n if (!node.isGroupNode) {\n entityNodeParentId = node.id;\n }\n const nodeIsHidden = checkNodeIsHidden(node, item, wasLazyLoaded);\n !nodeIsHidden && treeList.push(node);\n }\n }\n\n // traverse the children and add to treeList\n if (node?.children?.length) {\n node.children.forEach((child) =>\n processGroupNodesAndAddToTreeList(\n child,\n treeList,\n entityNodeParentId,\n item,\n wasLazyLoaded\n )\n );\n }\n};\n\nexport const mapNodeGroupChildren = (nodeGroup, nodeGroupChildren = []) => {\n nodeGroupChildren.forEach((node) => {\n if (nodeGroup.id === node.parentGroupId) {\n nodeGroup.children.push(node);\n }\n });\n\n if (nodeGroup?.children?.length) {\n nodeGroup.children.forEach((childGroup) => {\n if (childGroup.isGroupNode) {\n mapNodeGroupChildren(childGroup, nodeGroupChildren); // recursively call function to traverse child node groups\n }\n });\n }\n\n return nodeGroup; // return the updated object\n};\n\nexport const checkNodeIsHidden = (node, item, wasLazyLoaded = false) => {\n if (!node || (node && !Object.keys(node).length)) {\n return true;\n }\n let rule = null;\n if (node.isGroupNode) {\n if (node.properties?.hiddenNode?.enabled) {\n // TODO: handle conditional hiding for group node\n }\n } else {\n if (node.properties?.hiddenNode?.enabled) {\n // Handle conditional hiding of node\n rule = mapRule(\n node.properties.hiddenNode.propertyMapping,\n node.properties.hiddenNode.jsonLogic\n );\n if (\n rule &&\n evaluateRule(\n rule,\n item,\n node.properties?.joiningEntityCatalogObjectKey,\n wasLazyLoaded\n )\n ) {\n return true;\n }\n }\n }\n return false;\n};\n\nexport const constructPreloadedTree = (treeStructure, pageList) => {\n if (!pageList) return null;\n let preloadedList = [];\n const tree = cloneDeep(treeStructure);\n if (\n tree.properties?.groupConfiguration?.enabled &&\n tree.properties?.groupConfiguration.groupType ===\n NodeGroupTypeEnums.Static &&\n tree.properties?.groupConfiguration?.groupings?.static?.length\n ) {\n const topNodeGroups = constructStaticNodeGroups(tree);\n const groupedItemIndexes = new Set();\n topNodeGroups.forEach((nodeGroup) => {\n // Loop through each response item and group them\n let nodeGroupChildren = [];\n pageList.forEach((item, index) => {\n const orderedKeys = [];\n const orderedTreeData = [];\n const treeArr = [];\n const innerGroupList = [];\n processCatalogObjectKeysInOrder(tree, orderedKeys);\n processOrderedTreeData(tree, orderedTreeData);\n processObjectToTree(\n item,\n orderedTreeData,\n orderedKeys,\n treeArr,\n null,\n null,\n false,\n innerGroupList\n );\n const displayTree = makeTreeStructure(treeArr, 'id', 'parentId');\n const processedItem = processItemForStaticNodeGroup(\n nodeGroup,\n item,\n groupedItemIndexes,\n displayTree,\n index,\n new Set()\n );\n nodeGroupChildren = nodeGroupChildren.concat(\n processedItem?.nodeChildren || []\n );\n });\n // map nodeGroupChildren to the node groups\n const updatedNodeGroup = mapNodeGroupChildren(\n nodeGroup,\n nodeGroupChildren\n );\n // handles having the same node in multiple groups\n updatedNodeGroup.children.forEach((child) => {\n updateTreeIds(\n child,\n null,\n uuid(),\n updatedNodeGroup.id || uuid(),\n updatedNodeGroup?.properties.label || null\n );\n });\n preloadedList.push(updatedNodeGroup);\n });\n if (\n tree.properties?.groupConfiguration?.outlier ===\n NodeGroupOutlierEnums.Individual\n ) {\n pageList.forEach((item, index) => {\n if (!groupedItemIndexes.has(index)) {\n const orderedKeys = [];\n const orderedTreeData = [];\n const treeArr = [];\n processCatalogObjectKeysInOrder(tree, orderedKeys);\n processOrderedTreeData(tree, orderedTreeData);\n processObjectToTree(\n item,\n orderedTreeData,\n orderedKeys,\n treeArr,\n null,\n null,\n false\n );\n const displayTree = makeTreeStructure(treeArr, 'id', 'parentId');\n const nodeIsHidden = checkNodeIsHidden(displayTree, item, false);\n if (!nodeIsHidden) {\n updateTreeIds(displayTree, null, uuid(), uuid(), null);\n preloadedList.push(displayTree);\n }\n }\n });\n }\n } else if (\n tree.properties?.groupConfiguration?.enabled &&\n tree.properties?.groupConfiguration.groupType ===\n NodeGroupTypeEnums.Dynamic &&\n tree.properties?.groupConfiguration?.groupings?.dynamic?.length\n ) {\n // Handle Dynamic GroupType for single tree\n //const nodeGroups = constructDynamicNodeGroups(pageList, tree);\n // Use the new methods for constructing the dynamic group nodes\n const nodeGroups = constructDynamicNodeGroups2(pageList, tree);\n preloadedList = preloadedList.concat(nodeGroups);\n } else {\n pageList.forEach((item) => {\n const orderedKeys = [];\n const orderedTreeData = [];\n const treeArr = [];\n processCatalogObjectKeysInOrder(tree, orderedKeys);\n processOrderedTreeData(tree, orderedTreeData);\n processObjectToTree(item, orderedTreeData, orderedKeys, treeArr);\n const displayTree = makeTreeStructure(treeArr, 'id', 'parentId');\n const nodeIsHidden = checkNodeIsHidden(displayTree, item, false);\n !nodeIsHidden && preloadedList.push(displayTree);\n });\n }\n return preloadedList;\n};\n\n// Dynamic Group Functions\n// SF - 20230531\n\n// Compare function to be used when sorting groups by order\nconst CompareGroupByOrder = (a, b) => {\n if (a.order > b.order) return 1;\n if (a.order < b.order) return -1;\n\n return 0;\n};\n\n// Compare function to be used when sorting sibling nodes so that all group nodes appear first in the list\nconst CompareSiblingNodes = (a, b) => {\n if (a.hasOwnProperty('isGroupNode') && !b.hasOwnProperty('isGroupNode'))\n return -1;\n if (!a.hasOwnProperty('isGroupNode') && b.hasOwnProperty('isGroupNode'))\n return 1;\n\n // If both nodes are groups then sort by the order property\n if (a.hasOwnProperty('isGroupNode') && b.hasOwnProperty('isGroupNode')) {\n if (a.properties?.order > b.properties?.order) return 1;\n if (a.properties?.order < b.properties?.order) return -1;\n }\n\n return 0;\n};\n\n// Util function to map child groups to their parent collections\nconst GetGroupChildMap = (_map, groupKey) => {\n //If no child map for the group exists yet then create it\n if (_map[groupKey] === undefined) {\n _map[groupKey] = [];\n }\n return _map[groupKey];\n};\n\n// Util function to add a group node to a parent groups child mapping\nconst AddGroupToChildMap = (_map, groupKey, groupNode) => {\n // Get the child map for the parent node. If none exists, create it.\n let childMap = GetGroupChildMap(_map, groupKey);\n // Add the child node to the map\n childMap.push(groupNode);\n // Order the groups based on their 'order' property\n childMap.sort(CompareGroupByOrder);\n};\n\nconst createDynamicGroups2 = (\n _treeConfig,\n _groupConfig,\n _item,\n _curItem,\n _pList,\n _siblings,\n _parentId\n) => {\n let _groupCreated = false;\n if (_pList.length > 0) {\n let tmpProp = _pList[0];\n // Check if the current item has the property the dynamic group should be created from\n if (_curItem.hasOwnProperty(tmpProp)) {\n let newItem = _curItem[tmpProp];\n // Check if there are additional parts to the property the group should be created from\n if (_pList.length > 1) {\n // Arrays are also considered Objects, so check for it first\n if (Array.isArray(newItem)) {\n // If it's an array then loop through each of the items and carry on to check the next part of the group property\n for (let i = 0, numOfItems = newItem.length; i < numOfItems; i++) {\n let aGroupWasCreated = createDynamicGroups2(\n _treeConfig,\n _groupConfig,\n _item,\n newItem[i],\n _pList.slice(1),\n _siblings,\n _parentId\n );\n _groupCreated = aGroupWasCreated ? aGroupWasCreated : _groupCreated;\n }\n } else if (typeof newItem === 'object' && newItem !== null) {\n let aGroupWasCreated = createDynamicGroups2(\n _treeConfig,\n _groupConfig,\n _item,\n newItem,\n _pList.slice(1),\n _siblings,\n _parentId\n );\n _groupCreated = aGroupWasCreated ? aGroupWasCreated : _groupCreated;\n }\n } else {\n // If newItem is not an array, object, or null, then create a group for the config entry\n if (typeof newItem !== 'object' && newItem !== null && newItem !== '') {\n let groupName = newItem.toString();\n\n // Check if a group with this name already exists in the list of siblings\n let groupNode = null;\n for (\n let siblingIdx = 0, numOfSiblings = _siblings.length;\n siblingIdx < numOfSiblings;\n siblingIdx++\n ) {\n let sibling = _siblings[siblingIdx];\n if (\n sibling.hasOwnProperty('isGroupNode') &&\n sibling.isGroupNode === true\n ) {\n if (sibling.properties.label === groupName) {\n groupNode = sibling;\n break;\n }\n }\n }\n // If no groupNode was found in the list of siblings, create one\n if (groupNode == null) {\n let newGroupNodeId = uuid();\n groupNode = new GroupNode({\n id: `${newGroupNodeId}`,\n groupType: NodeGroupTypeEnums.Dynamic,\n children: [],\n parentGroupId: _parentId,\n parentId: _parentId,\n isExpanded: _groupConfig.isExpanded,\n properties: {\n label: groupName,\n propertyIsCustom: _groupConfig.propertyIsCustom,\n propertyKey: _groupConfig.property,\n order: _groupConfig.order\n }\n });\n // Add the groupNode to the list of siblings\n _siblings.push(groupNode);\n }\n // Now that we have a groupNode, set groupCreated to true, as it means that a groupNode for this name was either created\n // or an existing groupNode with the same name was found.\n _groupCreated = true;\n\n let subGroupWasCreated = false;\n // Check if the config group has subgroups\n for (\n let subGroupIdx = 0, numOfSubGroups = _groupConfig.children.length;\n subGroupIdx < numOfSubGroups;\n subGroupIdx++\n ) {\n let subGroupConfig = _groupConfig.children[subGroupIdx];\n // Get the the property name used to create the subgroup\n let subGroupPropList = subGroupConfig.property\n ? subGroupConfig.property.split('.')\n : [];\n // For each subgroup config tree, pass see if groups need to be created for the result record\n let subGroupCreated = createDynamicGroups2(\n _treeConfig,\n subGroupConfig,\n _item,\n _item,\n subGroupPropList,\n groupNode.children,\n groupNode.id\n );\n subGroupWasCreated = subGroupCreated\n ? subGroupCreated\n : subGroupWasCreated;\n }\n // If there were no subgroups found or created for this record then create a normal node for this result record and add it to the list of group children\n if (!subGroupWasCreated) {\n let tmpNode = cloneDeep(_treeConfig);\n processObjIndex(\n tmpNode,\n _item,\n null,\n groupNode.id,\n null,\n null,\n false\n );\n groupNode.children.push(tmpNode);\n\n let newChildNodes = [];\n // If there are child config nodes, we need to process them now\n for (\n let childNodeIdx = 0, numOfChildNodes = tmpNode.children.length;\n childNodeIdx < numOfChildNodes;\n childNodeIdx++\n ) {\n let childConfigNode = tmpNode.children[childNodeIdx];\n // Get the property of the current node that represents the associated child node(s)\n let propToGetRecords =\n childConfigNode.properties.catalogObjectKey;\n // Check if the current node has the property of the associated childe node(s)\n if (\n propToGetRecords &&\n propToGetRecords != null &&\n _item.hasOwnProperty(propToGetRecords)\n ) {\n let newResultSet = _item[propToGetRecords];\n if (newResultSet && newResultSet != null) {\n // constructDynamicNodeGroups2 expects the result set to be passed in as an array\n if (Array.isArray(newResultSet)) {\n newChildNodes.push(\n ...constructDynamicNodeGroups2(\n newResultSet,\n childConfigNode,\n tmpNode.id\n )\n );\n } else {\n let tmpNewResultSet = [];\n tmpNewResultSet.push(newResultSet);\n newChildNodes.push(\n ...constructDynamicNodeGroups2(\n newResultSet,\n childConfigNode,\n tmpNode.id\n )\n );\n }\n }\n }\n }\n tmpNode.children = newChildNodes;\n }\n\n groupNode.children.sort(CompareSiblingNodes);\n }\n }\n }\n }\n return _groupCreated;\n};\n\nconst constructDynamicGroupConfigTrees2 = (configNode) => {\n // List of the top level group nodes for this configNode\n let topLevelConfigGroupNodes = [];\n\n // tree is really the current config node we're looking at\n const groupConfiguration = configNode?.properties?.groupConfiguration;\n const groupType = groupConfiguration?.groupType || NodeGroupTypeEnums.Dynamic;\n\n // Check if there are groupings for this current level of config\n if (\n groupConfiguration?.enabled &&\n groupConfiguration?.groupings[groupType]?.length\n ) {\n // Each grouping of groups is treated as its own tree and should be constructed as such\n let dynamicGroupings = groupConfiguration.groupings[groupType];\n for (\n let groupingIdx = 0, numOfGroupings = dynamicGroupings.length;\n groupingIdx < numOfGroupings;\n groupingIdx++\n ) {\n let grouping = dynamicGroupings[groupingIdx];\n\n // If the grouping has no groups, continue to the next grouping in the list\n if (grouping.groups === undefined || grouping.groups === null) continue;\n\n // Map of each groups collection of childeren\n let groupChildMap = {};\n\n // loop through the groups in the config grouping and build out the tree\n for (\n let groupIdx = 0, numOfGroups = grouping.groups.length;\n groupIdx < numOfGroups;\n groupIdx++\n ) {\n let group = grouping.groups[groupIdx];\n // initialize list of childeren\n group['children'] = GetGroupChildMap(groupChildMap, group.id);\n // add node to parents list of childeren\n if (group.parentGroupId === undefined || group.parentGroupId === null) {\n topLevelConfigGroupNodes.push(group);\n } else {\n // Add the group to the child map of the parent\n AddGroupToChildMap(groupChildMap, group.parentGroupId, group);\n }\n }\n }\n }\n\n for (\n let configIdx = 0, numOfChildConfigNodes = configNode.children.length;\n configIdx < numOfChildConfigNodes;\n configIdx++\n ) {\n let childConfigNode = configNode.children[configIdx];\n constructDynamicGroupConfigTrees2(childConfigNode);\n }\n\n configNode.groupConfigTrees = topLevelConfigGroupNodes;\n};\n\nexport const constructDynamicNodeGroups2 = (\n results,\n configNode,\n parentId = null\n) => {\n let levelNodes = [];\n\n if (!configNode.groupConfigTrees) {\n // Take the flat list of dynamic groupings and build a tree for them\n constructDynamicGroupConfigTrees2(configNode);\n }\n\n // Now that we have a config tree with each level having a tree of for dynamic group config\n // We need to iterate through each record of the resultset and construct a tree of nodes and group nodesuse it with each record of the results to build out a tree of GroupNodes\n // Each of the Config Group Trees in topLevelConfigGroupNodes may result in a GroupNode being created and added to the levelNodes list\n for (\n let rIdx = 0, numOfResults = results.length;\n rIdx < numOfResults;\n rIdx++\n ) {\n let item = results[rIdx];\n let groupCreated = false;\n for (\n let ctlIdx = 0,\n numOfGroupConfigTrees = configNode.groupConfigTrees.length;\n ctlIdx < numOfGroupConfigTrees;\n ctlIdx++\n ) {\n let groupConfigNode = configNode.groupConfigTrees[ctlIdx];\n // The property the dynamic group should be using to get the group name\n let gPropList = groupConfigNode.property\n ? groupConfigNode.property.split('.')\n : [];\n // Create and populate a GroupNode for the record based on its value of the property the group is configured against\n let aGroupWasCreated = createDynamicGroups2(\n configNode,\n groupConfigNode,\n item,\n item,\n gPropList,\n levelNodes,\n parentId\n );\n groupCreated = aGroupWasCreated ? aGroupWasCreated : groupCreated;\n }\n\n // If no dynamic group was created for the record then we need to add it as a sibling to the levelNodes list\n if (!groupCreated) {\n // TO DO: Create a Tree Node based on the record and add it to the levelNodes list\n let tmpNode = cloneDeep(configNode);\n processObjIndex(tmpNode, item, null, parentId, null, null, false);\n levelNodes.push(tmpNode);\n\n let newChildNodes = [];\n // If there are child config nodes, we need to process them now\n for (\n let childNodeIdx = 0, numOfChildNodes = tmpNode.children.length;\n childNodeIdx < numOfChildNodes;\n childNodeIdx++\n ) {\n let childConfigNode = tmpNode.children[childNodeIdx];\n let propToGetRecords = childConfigNode.properties.catalogObjectKey;\n if (\n propToGetRecords &&\n propToGetRecords != null &&\n item.hasOwnProperty(propToGetRecords)\n ) {\n let newResultSet = item[propToGetRecords];\n if (newResultSet && newResultSet != null) {\n if (Array.isArray(newResultSet)) {\n newChildNodes.push(\n ...constructDynamicNodeGroups2(\n newResultSet,\n childConfigNode,\n tmpNode.id\n )\n );\n } else {\n let tmpNewResultSet = [];\n tmpNewResultSet.push(newResultSet);\n newChildNodes.push(\n ...constructDynamicNodeGroups2(\n newResultSet,\n childConfigNode,\n tmpNode.id\n )\n );\n }\n }\n }\n }\n tmpNode.children = newChildNodes;\n }\n }\n levelNodes.sort(CompareSiblingNodes);\n\n return levelNodes;\n};\n\n// End of Dynamic Group functions\n// SF - 20230531\n\nexport const transformMenuPageTree = (node) => {\n if (!node?.menuItemInstance?.isActive) return null;\n const parameters =\n node.menuItemInstance?.parameters &&\n JSON.parse(node.menuItemInstance.parameters);\n const label = node.title || '';\n const expanded = parameters?.defaultDisplay === 'expanded';\n\n const updatedNode = {\n id: node.menuStructureId,\n parentId: node.parentId,\n isExpanded: expanded,\n properties: {\n defaultIcon: { type: '', name: parameters.FluentIcon, color: '' },\n nodeLabel: label,\n nodeSubLabel: '',\n page: {\n id: parameters.PageId,\n entity: {\n entityName: parameters.entityName\n },\n pbiReportCode: parameters.pbiReportCode,\n udpTagId: parameters.udpTagId,\n queryId: parameters.queryId,\n inquiryTreeId: parameters?.InquiryTreeId,\n requiredFieldMapping: parameters?.requiredFieldMapping\n },\n aggregateThresholdId: parameters.aggregateThresholdId || ''\n },\n children: []\n };\n\n for (const child of node.menuItemInstanceStructures) {\n const updatedChild = transformMenuPageTree(child);\n if (updatedChild) {\n updatedNode.children.push(updatedChild);\n }\n }\n\n return updatedNode;\n};\n\nexport const mapNodeObjValuesToSearchParameters = (\n nodeObj,\n aggregateThresholdParamMappings\n) => {\n if (!aggregateThresholdParamMappings || !nodeObj) {\n return {};\n }\n const mappings = { ...aggregateThresholdParamMappings };\n Object.keys(mappings).forEach((key) => {\n const nodeObjKey = mappings[key];\n if (nodeObjKey) {\n const nodeObjValue = nodeObj[nodeObjKey];\n mappings[key] = nodeObjValue || '';\n }\n });\n return mappings;\n};\n\nexport const getSearchValueString = (nodeObj, searchIdentifier) => {\n const searchIdentifiers = searchIdentifier.split(',');\n const searchValues = [];\n searchIdentifiers.forEach((searchIdentifier) => {\n searchValues.push(nodeObj[searchIdentifier]);\n });\n return searchValues.toString();\n};\n","import React from 'react';\nimport Sewer from '../../assets/unityIcons/Sewer.svg';\nimport WaterDrop from '../../assets/unityIcons/WaterDrop.svg';\nexport const unityIcons = [\n {\n id: 'WaterDropIcon',\n label: 'Water Drop',\n icon: <WaterDrop />,\n type: 'unity',\n },\n {\n id: 'SewerIcon',\n label: 'Sewer',\n icon: <Sewer />,\n type: 'unity',\n },\n];\n\nexport const getUnityIconFromName = name => {\n const foundIcon = unityIcons.find(icon => icon.id === name);\n return foundIcon?.icon || null;\n};\n","import { makeStyles } from '@material-ui/core'\nimport clsx from 'clsx'\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { ChevronRightIcon } from '@fluentui/react-icons'\nimport { FluentIconButton } from '../../UI/inputs/buttons/FluentIconButton'\n\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n display: 'flex',\n justifyContent: 'flex-start',\n height: 48,\n width: '100%',\n paddingLeft: 0,\n },\n iconButton: {\n width: 48,\n height: 48,\n marginLeft: 16 - (48 - 24) / 2\n },\n expanded: {},\n icon: {\n width: 14,\n height: 14,\n margin: (24 - 16) / 2,\n transition: theme?.transitions?.create('transform', {\n easing: theme?.transitions?.easing?.sharp,\n duration: theme?.transitions?.duration?.shortest\n }),\n '$expanded &': {\n transform: 'scaleX(-1)'\n }\n },\n switch: {\n margin: (24 - 16) / 2,\n transition: theme?.transitions?.create('transform', {\n easing: theme?.transitions?.easing?.sharp,\n duration: theme?.transitions?.duration?.shortest\n }),\n '$expanded &': {\n transform: 'scaleX(-1)'\n }\n }\n }),\n { name: 'SidebarCollapseButton' }\n)\n\n/**\n * Custom styled button used for expanding/collapsing sidebars\n */\nexport const SidebarCollapseButton = (props) => {\n const classes = useStyles(props)\n const { expanded, className, id, udprecordid, ...other } = props\n const { t } = useTranslation()\n\n return (\n <div\n {...other}\n className={clsx(className, classes.root, {\n [classes.expanded]: expanded\n })}\n >\n <FluentIconButton\n id={id}\n udprecordid={udprecordid}\n color='inherit'\n className={clsx(classes.iconButton, classes.switch)}\n aria-label={\n expanded\n ? t('mainMenuAria.collapseNavigation')\n : t('mainMenuAria.expandNavigation')\n }\n icon={ChevronRightIcon}\n />\n </div>\n )\n}\n","import React from 'react'\nimport { Button, makeStyles } from '@material-ui/core'\nimport { ArrowUpRightIcon, EditIcon, DeleteIcon } from '@fluentui/react-icons'\nimport PropTypes from 'prop-types'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderRadius: 0,\n padding: 8\n }\n}))\n\nexport const AmbientCardButton = (props) => {\n const classes = useStyles(props)\n\n const { editOption, launchOption, deleteOption, children, ...otherProps } = props\n\n return (\n <Button\n classes={{ root: classes.root }}\n variant='outlined'\n disableElevation\n color='primary'\n {...otherProps}\n >\n {editOption && <EditIcon />}\n {launchOption && <ArrowUpRightIcon />}\n {deleteOption && <DeleteIcon />}\n {children}\n </Button>\n );\n}\n\nAmbientCardButton.propTypes = {\n /**\n * When true will display edit button.\n */\n editOption: PropTypes.bool,\n /**\n * When true will display launch button.\n */\n launchOption: PropTypes.bool,\n /**\n * When true will display delete button.\n */\n deleteOption: PropTypes.bool,\n /**\n * Will display a text lable vesion.\n */\n children: PropTypes.string,\n\n}","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\n\nconst useStyles = makeStyles((theme) => ({\n root: props => ({\n width: theme.spacing(0.5),\n height: \"100%\",\n background: theme.palette[props.color].main\n })\n}));\n\nexport const Adornment = (props) => {\n const classes = useStyles(props);\n\n return <div className={classes.root} />;\n};\n\nAdornment.propTypes = {\n color: PropTypes.string\n}\n","import React, { useState } from 'react';\nimport {\n Paper,\n CardContent,\n makeStyles,\n Typography,\n CardMedia,\n lighten,\n Collapse\n} from '@material-ui/core';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport { StatusChip } from '../../dataDisplay/StatusChip';\nimport { ChevronDownIcon, ChevronUpIcon } from '@fluentui/react-icons';\nimport { FluentButton } from '../../inputs/buttons/FluentButton';\nimport { FluentIconButton } from '../../inputs/buttons/FluentIconButton';\nimport { AmbientCardButton } from '../../inputs/buttons/AmbientCardButton';\nimport { Adornment } from '../../components/feedback/Adornment';\nimport { getEllipseColor } from '../../../utilities/style/colorConverter';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n paper: {\n width: '100%',\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n height: (props) => props?.cardHeight ?? ''\n },\n adornment: {\n top: 0,\n left: 0,\n height: '100%',\n position: 'absolute'\n },\n launchButtons: {\n // position: (props) => !props.extendedContent && 'absolute',\n // marginTop: 'auto',\n padding: theme.spacing(0, 2, 2, 2),\n display: 'flex',\n justifyContent: 'flex-end',\n bottom: (props) => (props.adjustBaseline ? props.adjustBaseline : 16),\n right: theme.spacing(2),\n gridGap: theme.spacing(1)\n },\n moreButton: {\n marginTop: theme.spacing(1),\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: lighten(theme.palette.secondary.main, 0.9),\n padding: theme.spacing(1)\n },\n styleWidth: {\n width: (props) => (!props?.fullWidth ? '75%' : '100%'),\n height: '100%'\n },\n media: {\n height: (props) => props.mediaHeight || 120\n },\n cardContent: {\n // backgroundColor: 'red',\n flexGrow: 1,\n padding: (props) => props.removePadding && 0,\n '&:last-child': {\n paddingBottom: (props) =>\n props.lastChildBottomPadding\n ? props.lastChildBottomPadding\n : theme.spacing(2)\n },\n paddingTop: 0,\n height: (props) => (props.cardContentHeight ? props.cardContentHeight : '')\n },\n titleWrapper: {\n display: 'flex',\n backgroundColor: (props) =>\n props.headerColor && getEllipseColor(theme, props.headerColor, 'light')\n },\n title: {\n color: (props) =>\n props.headerColor &&\n theme.palette.getContrastText(\n getEllipseColor(theme, props.headerColor, 'light')\n )\n },\n loading: {\n position: 'absolute',\n top: 0,\n left: 0\n },\n expandMessage: {\n display: 'flex'\n },\n cardRoot: {\n '&:last-child': {\n paddingBottom: theme.spacing(2)\n }\n },\n visualization: {\n display: 'flex',\n alignItems: 'flex-end',\n width: '100%',\n height: 300\n },\n titlesWrapper: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n lineHeight: (props) => props.globalExpanded && '125%'\n },\n collapseChildren: {\n flexGrow: 1,\n '& .MuiCollapse-wrapper': {\n height: '100%'\n },\n '& .MuiCollapse-wrapperInner': {\n height: '100%'\n },\n height: (props) => (props.cardContentHeight ? props.cardContentHeight : '')\n }\n}));\n\nexport const AmbientCard = (props) => {\n const classes = useStyles(props);\n const [expanded, setExpanded] = useState(false);\n\n const {\n adornment = 'secondary',\n ariaLabel,\n baseLoading,\n cardHeight,\n children,\n collapseChildrenWhenExpanded,\n customAdornment = ' ',\n deleteEvent,\n deleteOption,\n editEvent,\n editOption,\n extendedContent,\n extendedList,\n fullWidth,\n globalToggle,\n header,\n image,\n imageTitle,\n label,\n large,\n launchEvent,\n launchOption,\n loading,\n mediaHeight,\n more,\n moreMessage,\n moreButton,\n moreButtonExpanded,\n noAdornment = false,\n overrideStatusSuccess,\n overrideStatusError,\n overrideStatusWarning,\n overrideStatusInfo,\n removeTopLayoutUnit,\n status,\n subCard,\n title,\n toggleGlobalExpanded = true,\n visualization,\n subtitle,\n ...otherProps\n } = props;\n\n const [globalExpanded, setGlobalExpanded] = useState(toggleGlobalExpanded);\n\n if (baseLoading) return null;\n\n return (\n <Paper\n elevation={0}\n // className={clsx(classes.paper, adornment && classes.adornment)}\n className={classes.paper}\n >\n {!noAdornment && (\n <div className={classes.adornment}>\n {customAdornment ? customAdornment : <Adornment color={adornment} />}\n </div>\n )}\n {/* {loading && (\n <div className={classes.loading}>\n <Skeleton variant=\"rectangle\" width={4} height={400} />\n </div>\n )} */}\n {title && (\n <CardContent\n className={classes.titleWrapper}\n classes={{ root: classes.cardRoot }}\n >\n <div className={classes.titlesWrapper}>\n <Typography\n className={classes.title}\n component='h2'\n variant={subCard ? 'subtitle2' : 'h6'}\n >\n {title}\n </Typography>\n {subtitle && (\n <Typography variant={'body1'} className={classes.title}>\n {subtitle}\n </Typography>\n )}\n </div>\n\n {status && (\n <StatusChip\n status={status}\n label={label}\n success={overrideStatusSuccess}\n error={overrideStatusError}\n warning={overrideStatusWarning}\n info={overrideStatusInfo}\n />\n )}\n {globalToggle && (\n <div>\n <FluentIconButton\n onClick={() => setGlobalExpanded(!globalExpanded)}\n icon={globalExpanded ? ChevronUpIcon : ChevronDownIcon}\n className={classes.icon}\n id={\n 'udpRecord-AmbientCard-Toggle-' +\n (globalExpanded ? 'Up' : 'Down')\n }\n udprecordid={\n 'udpRecord-AmbientCard-Toggle-' +\n (globalExpanded ? 'Up' : 'Down')\n }\n />\n </div>\n )}\n </CardContent>\n )}\n {image && (\n <CardMedia className={classes.media} image={image} title={imageTitle} />\n )}\n {globalExpanded && (\n <CardContent classes={{ root: classes.cardContent }}>\n {!image && !header && !removeTopLayoutUnit && (\n <LayoutUnit unit={large ? 'md' : 'xxs'} />\n )}\n {image && <LayoutUnit unit='xs' />}\n\n {/* LAA UNT-2624: Add logic to collapse children when expanded if prop is set */}\n <Collapse\n in={!collapseChildrenWhenExpanded || !expanded}\n timeout='auto'\n className={classes.collapseChildren}\n >\n <div className={classes.styleWidth}>{children}</div>\n </Collapse>\n\n {extendedList && (\n <Collapse in={expanded} timeout='auto'>\n <div>{extendedList}</div>\n </Collapse>\n )}\n {more && (\n <div className={classes.moreButton}>\n <div className={classes.expandMessage}>\n <Typography\n style={{ marginTop: 4, marginRight: 16 }}\n variant='subtitle2'\n >\n {!expanded && moreMessage}\n </Typography>\n <FluentButton\n onClick={() => setExpanded(!expanded)}\n color='secondary'\n variant='outlined'\n >\n {expanded ? moreButtonExpanded : moreButton}\n </FluentButton>\n </div>\n </div>\n )}\n </CardContent>\n )}\n {visualization && (\n <div className={classes.visualization}>{visualization}</div>\n )}\n {!globalToggle && (editOption || launchOption || deleteOption) && (\n <div className={classes.launchButtons}>\n {editOption && (\n <AmbientCardButton\n aria-label={ariaLabel}\n editOption\n {...otherProps}\n onClick={editEvent}\n id='udpRecord-AmbientCard-edit'\n udprecordid='udpRecord-AmbientCard-edit'\n />\n )}\n {launchOption && (\n <AmbientCardButton\n aria-label={ariaLabel}\n launchOption\n {...otherProps}\n onClick={launchEvent}\n id='udpRecord-AmbientCard-launch'\n udprecordid='udpRecord-AmbientCard-launch'\n />\n )}\n {deleteOption && (\n <AmbientCardButton\n aria-label={ariaLabel}\n deleteOption\n {...otherProps}\n onClick={deleteEvent}\n id='udpRecord-AmbientCard-delete'\n udprecordid='udpRecord-AmbientCard-delete'\n />\n )}\n </div>\n )}\n </Paper>\n );\n};\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport { LayoutUnit } from '../../layout/LayoutUnit'\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n nodeWrapper: {\n display: 'flex'\n }\n}))\n\nexport const NodeLoader = ({ loading, nodesRequested = [1] }) => {\n const classes = useStyles()\n\n const singleNode = [1, 2, 3, 4]\n\n const NodeElement = () => {\n return (\n <div className={classes.nodeWrapper}>\n <div>\n <Skeleton variant='circle' width={20} height={20} />\n </div>\n <div style={{ marginLeft: 8, width: '100%' }}>\n <Skeleton height={20} variant='rect' width='100%' />\n </div>\n </div>\n )\n }\n\n const NodeGroup = ({ indent }) => {\n return (\n <div>\n <div style={{ marginLeft: indent }}>\n <NodeElement />\n </div>\n <LayoutUnit unit='xxs' />\n </div>\n )\n }\n\n const singleNodeGroup = loading && (\n <div>\n {singleNode.map((item, index) => {\n return <NodeGroup indent={index * 8} />\n })}\n </div>\n )\n\n return (\n <div>\n {nodesRequested &&\n nodesRequested.map((item) => {\n return (\n <div className={classes.root}>\n {singleNodeGroup} <LayoutUnit unit='xxs' />\n </div>\n )\n })}\n </div>\n )\n}\n","export interface NumberOperator {\n value: string;\n label: string;\n}\n\nexport const NumberOperators: Array<NumberOperator> = [\n {\n value: '=',\n label: 'Equals'\n },\n {\n value: '!=',\n label: 'Does not Equal'\n },\n {\n value: '>',\n label: 'Greater Than'\n },\n {\n value: '<',\n label: 'Less Than'\n },\n {\n value: '>=',\n label: 'Greater Than or Equal To'\n },\n {\n value: '<=',\n label: 'Less Than or Equal To'\n },\n {\n value: 'BETWEEN',\n label: 'Between'\n }\n];\n\nexport enum NumberOperatorEnums {\n Equals = '=',\n Does_Not_Equal = '!=',\n Greater_Than = '>',\n Less_Than = '<',\n Greater_Than_Or_Equal_To = '>=',\n Less_Than_Or_Equal_To = '<=',\n Between = 'BETWEEN'\n}\n","import { SeverityTypeEnums } from '../../../enums/unitySystemEnums';\nimport { NumberOperatorEnums } from '../../../models/NumberOperator';\n\nexport const getThresholdStatus = (aggThreshold, aggregateValue) => {\n if (!aggThreshold || !aggregateValue) return null;\n // Order of this array matters\n const thresholdTypes = [\n {\n type: SeverityTypeEnums.Success,\n threshold: aggThreshold.successThreshold\n },\n { type: SeverityTypeEnums.Error, threshold: aggThreshold.errorThreshold },\n {\n type: SeverityTypeEnums.Warning,\n threshold: aggThreshold.warningThreshold\n },\n { type: SeverityTypeEnums.Info, threshold: aggThreshold.infoThreshold }\n ];\n\n let thresholdStatus = '';\n for (const { type, threshold } of thresholdTypes) {\n if (threshold && evaluateThreshold(threshold, aggregateValue)) {\n thresholdStatus = type;\n break;\n }\n }\n\n return thresholdStatus;\n};\n\nconst evaluateThreshold = (threshold = {}, aggregateValue) => {\n if (typeof threshold === 'string') {\n try {\n threshold = JSON.parse(threshold);\n } catch {\n console.error(`Could not parse: ${threshold}`);\n return false;\n }\n }\n const { operator, value1, value2 } = threshold;\n let thresholdMet = false;\n\n switch (operator) {\n case NumberOperatorEnums.Equals:\n thresholdMet = aggregateValue === parseFloat(value1);\n break;\n case NumberOperatorEnums.Does_Not_Equal:\n thresholdMet = aggregateValue !== parseFloat(value1);\n break;\n case NumberOperatorEnums.Greater_Than:\n thresholdMet = aggregateValue > parseFloat(value1);\n break;\n case NumberOperatorEnums.Less_Than:\n thresholdMet = aggregateValue < parseFloat(value1);\n break;\n case NumberOperatorEnums.Greater_Than_Or_Equal_To:\n thresholdMet = aggregateValue >= parseFloat(value1);\n break;\n case NumberOperatorEnums.Less_Than_Or_Equal_To:\n thresholdMet = aggregateValue <= parseFloat(value1);\n break;\n case NumberOperatorEnums.Between:\n thresholdMet =\n aggregateValue >= parseFloat(value1) &&\n aggregateValue <= parseFloat(value2);\n break;\n default:\n break;\n }\n\n return thresholdMet;\n};\n","import React, { memo } from 'react';\nimport { ButtonBase, makeStyles } from '@material-ui/core';\nimport { Alert } from '@material-ui/lab';\nimport { SeverityTypeEnums } from '../../../../enums/unitySystemEnums';\n\n/**\n * Styles for the AlertPill component\n */\n\nconst useStyles = makeStyles((theme) => {\n const endRadius = theme.spacing(3);\n return {\n root: {\n display: 'flex',\n flexDirection: 'row',\n // borderRadius: endRadius,\n overflow: 'hidden',\n flexGrow: 0,\n alignSelf: 'start'\n },\n alertRoot: {\n // mui alert class\n padding: theme.spacing(0, 1.5, 0, 1),\n borderRadius: 0,\n '&:first-of-type': {\n borderTopLeftRadius: endRadius,\n borderBottomLeftRadius: endRadius\n },\n '&:last-of-type': {\n borderTopRightRadius: endRadius,\n borderBottomRightRadius: endRadius\n }\n },\n alertIcon: {\n // mui alert icon class\n marginRight: theme.spacing(0.5)\n },\n buttonBase: {\n borderRadius: endRadius,\n overflow: 'hidden'\n },\n defaultSeverityAlert: {\n backgroundColor: theme.palette.grey[400]\n }\n };\n});\n\n/**\n * Memoized version of the Alert component\n *\n * @param {object} props - Component props\n * @param {number} props.count - The count to display in the Alert\n * @param {boolean} props.hide - Whether the Alert should be hidden\n * @param {string} props.severity - The severity of the Alert\n * @param {object} props.alertProps - Additional props to pass to the Alert component\n * @param {number} props.maxCount - Max count to show before displaying as \"{maxCount}+\"\n * @returns {JSX.Element | null} - The Alert component, or null if the count is falsy or hide is true\n */\nconst MemoizedAlert = memo((props) => {\n const { count, hide, severity, alertProps, maxCount, label } = props;\n const classes = useStyles(props);\n\n if (count && !hide) {\n let displayCount = count;\n if (maxCount && count > maxCount) {\n displayCount = `${maxCount}+`;\n }\n\n if (severity === SeverityTypeEnums.Default) {\n return (\n <Alert\n severity={SeverityTypeEnums.Info}\n {...alertProps}\n className={classes.defaultSeverityAlert}\n >\n {displayCount}\n </Alert>\n );\n }\n\n return (\n <Alert severity={severity} {...alertProps}>\n {label ? label : displayCount}\n </Alert>\n );\n }\n\n return null;\n});\n\nMemoizedAlert.displayName = 'MemoizedAlert';\n\n/**\n * The AlertPill component displays a row of Alerts, each with a count and a severity level.\n * Alerts can be hidden by setting the corresponding hide prop to true.\n *\n * @param {object} props - Component props\n * @param {function} [props.handleClick] - The click event handler.\n * @param {number} props.maxCount - Max count to show before displaying as \"{maxCount}+\"\n * @param {number} props.errorCount - The count for the error Alert\n * @param {number} props.warningCount - The count for the warning Alert\n * @param {number} props.successCount - The count for the success Alert\n * @param {number} props.infoCount - The count for the info Alert\n * @param {number} props.defaultCount - The count for the default Alert\n * @param {string} props.errorLabel - The label for the error Alert\n * @param {string} props.warningLabel - The label for the warning Alert\n * @param {string} props.successLabel - The label for the success Alert\n * @param {string} props.infoLabel - The label for the info Alert\n * @param {string} props.defaultLabel - The label for the default Alert\n * @param {boolean} props.hideError - Whether the error Alert should be hidden\n * @param {boolean} props.hideWarning - Whether the warning Alert should be hidden\n * @param {boolean} props.hideSuccess - Whether the success Alert should be hidden\n * @param {boolean} props.hideInfo - Whether the info Alert should be hidden\n * @param {boolean} props.hideDefault - Whether the default Alert should be hidden\n * @param {string} props.variant - The variant of the Alert\n * @param {function} [props.handleClick] - The click event handler.\n * @param {number} props.maxCount - Max count to show before displaying as \"{maxCount}+\"\n * @returns {JSX.Element} - The AlertPill component\n */\nexport const AlertPill = (props) => {\n const {\n variant = 'filled',\n handleClick,\n maxCount,\n errorCount,\n warningCount,\n successCount,\n infoCount,\n defaultCount,\n errorLabel,\n warningLabel,\n successLabel,\n infoLabel,\n defaultLabel,\n hideError = false,\n hideWarning = false,\n hideSuccess = false,\n hideInfo = false,\n hideDefault = false\n } = props;\n const classes = useStyles(props);\n\n const variantMapping = {\n filled: 'filled',\n standard: 'hint',\n outlined: 'outlined',\n text: ''\n };\n\n const alertProps = {\n variant: variantMapping[variant],\n classes: {\n root: classes.alertRoot,\n icon: classes.alertIcon\n }\n };\n\n return (\n <div className={classes.root}>\n <ButtonBase onClick={handleClick} className={classes.buttonBase}>\n <MemoizedAlert\n count={errorCount}\n hide={hideError}\n severity={SeverityTypeEnums.Error}\n alertProps={alertProps}\n maxCount={maxCount}\n label={errorLabel}\n />\n <MemoizedAlert\n count={warningCount}\n hide={hideWarning}\n severity={SeverityTypeEnums.Warning}\n alertProps={alertProps}\n maxCount={maxCount}\n label={warningLabel}\n />\n <MemoizedAlert\n count={successCount}\n hide={hideSuccess}\n severity={SeverityTypeEnums.Success}\n alertProps={alertProps}\n maxCount={maxCount}\n label={successLabel}\n />\n <MemoizedAlert\n count={infoCount}\n hide={hideInfo}\n severity={SeverityTypeEnums.Info}\n alertProps={alertProps}\n maxCount={maxCount}\n label={infoLabel}\n />\n <MemoizedAlert\n count={defaultCount}\n hide={hideDefault}\n severity={SeverityTypeEnums.Default}\n alertProps={alertProps}\n maxCount={maxCount}\n label={defaultLabel}\n />\n </ButtonBase>\n </div>\n );\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { StatusChip } from '../dataDisplay/StatusChip';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { Typography, CircularProgress } from '@material-ui/core';\nimport { executeQueryInstance } from '../../udp/utilities/methodUtils';\nimport { getThresholdStatus } from './utilities/aggregateUtils';\nimport { AlertPill } from '../dataDisplay/entityHeader/ui/AlertPill';\nimport { SeverityTypeEnums } from '../../enums/unitySystemEnums';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nexport const AggregateChip = (props) => {\n const {\n aggregateThresholdId,\n aggregateThresholdParamMappings,\n label,\n chipColor,\n setStatus,\n isActionable = false,\n isAlert = false,\n hideAlert = false,\n onAlertClick\n } = props;\n const [color, setColor] = useState(chipColor);\n const [aggregateValue, setAggregateValue] = useState(null);\n const [loading, setLoading] = useState(false);\n const [{ data: aggregateThreshold, loading: loadingAggregateThreshold }] =\n useAxiosGet(\n ConfigService.integrationV2ApiUrl,\n `aggregateThreshold/${aggregateThresholdId}`,\n {},\n !!!aggregateThresholdId\n );\n\n const alertDisplayLabel = useMemo(() => {\n if (!label) {\n return aggregateValue;\n }\n return `${label.replace('{value}', aggregateValue)}`;\n }, [aggregateValue, label]);\n\n useEffect(() => {\n const setAggregateData = async (apiMethodInstanceId, valueKey) => {\n setLoading(true);\n const data = aggregateThresholdParamMappings\n ? { data: aggregateThresholdParamMappings }\n : { data: {} };\n const response = await executeQueryInstance(\n data,\n apiMethodInstanceId\n ).catch((res) => setLoading(false));\n if (response?.status === 200 && valueKey) {\n const aggregateResult =\n response.data?.aggregateResults && response.data?.aggregateResults[0];\n if (aggregateResult) {\n setAggregateValue(\n aggregateResult[valueKey]\n ? Math.round(aggregateResult[valueKey])\n : ''\n );\n }\n }\n setLoading(false);\n };\n if (aggregateThreshold) {\n setAggregateData(\n aggregateThreshold.apiMethodInstanceId,\n aggregateThreshold.aggregateKey\n );\n }\n // when aggregateThresholdParamMappings changes we don't want to re-render chip\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [aggregateThreshold]);\n\n useEffect(() => {\n if (aggregateThreshold && aggregateValue) {\n const status = getThresholdStatus(aggregateThreshold, aggregateValue);\n setColor(status);\n if (setStatus) {\n setStatus(status || 'default');\n }\n }\n }, [aggregateThreshold, aggregateValue, setStatus]);\n\n if (loading || loadingAggregateThreshold) {\n return <CircularProgress size={18} />;\n }\n\n if (!color && !isAlert) {\n return (\n <Typography variant='caption2' style={{ fontSize: '0.7rem' }}>\n {label || aggregateValue}\n </Typography>\n );\n }\n\n if (isAlert) {\n return (\n <AlertPill\n handleClick={onAlertClick}\n successCount={color === SeverityTypeEnums.Success ? aggregateValue : ''}\n errorCount={color === SeverityTypeEnums.Error ? aggregateValue : ''}\n warningCount={color === SeverityTypeEnums.Warning ? aggregateValue : ''}\n infoCount={color === SeverityTypeEnums.Info ? aggregateValue : ''}\n defaultCount={!color && (aggregateValue || '')}\n successLabel={\n color === SeverityTypeEnums.Success ? alertDisplayLabel : ''\n }\n errorLabel={color === SeverityTypeEnums.Error ? alertDisplayLabel : ''}\n warningLabel={\n color === SeverityTypeEnums.Warning ? alertDisplayLabel : ''\n }\n infoLabel={color === SeverityTypeEnums.Info ? alertDisplayLabel : ''}\n defaultLabel={!color && (alertDisplayLabel || '')}\n hideSuccess={color === SeverityTypeEnums.Success ? hideAlert : false}\n hideError={color === SeverityTypeEnums.Error ? hideAlert : false}\n hideWarning={color === SeverityTypeEnums.Warning ? hideAlert : false}\n hideInfo={color === SeverityTypeEnums.Info ? hideAlert : false}\n hideDefault={!color ? hideAlert : false}\n />\n );\n }\n\n return label || aggregateValue ? (\n <StatusChip\n label={label || aggregateValue}\n status={color}\n useSmallChip={true}\n isActionable={isActionable}\n />\n ) : null;\n};\n\nAggregateChip.prototype = {\n /**\n * Color of chip\n */\n chipColor: PropTypes.oneOf([\n 'success',\n 'error',\n 'warning',\n 'info',\n undefined,\n null\n ]),\n /**\n * Id of AggregateThreshold\n */\n aggregateThresholdId: PropTypes.oneOf([PropTypes.string, undefined, null])\n};\n","import React from 'react'\nimport { createTeleporter } from 'react-teleporter'\n\nconst UtilityBarInports = createTeleporter({\n multiSources: true\n})\n\n/**\n * @param {any} props\n */\nexport function UtilityBarInportTarget(props) {\n return <UtilityBarInports.Target {...props} />\n}\n\n/**\n * Places a Control in the App SubHeader\n */\nexport const UtilityBarInport = (props) => {\n const { children, className, ...buttonProps } = props\n\n return <UtilityBarInports.Source>{children}</UtilityBarInports.Source>\n}\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { makeStyles, Typography, useTheme } from '@material-ui/core';\nimport { AmbientCard } from '../surfaces/cards/AmbientCard';\nimport { SidebarCollapseButton } from '../../shell/ui/SidebarCollapseButton';\nimport { UtilityBarInportTarget } from '../../utilities/utilityBar/UtilityBarInport';\nimport { ResizableBox } from 'react-resizable';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../../shell/ui/EnvironmentRibbon';\n\nconst EXPANDED_WIDTH = 288;\nconst COLLAPSED_WIDTH = 78;\nconst MAX_WIDTH = 700;\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n paddingTop: (props) =>\n props.removePadding || props.sidebarHidden ? 0 : 40,\n overflow: 'hidden',\n height: '100%'\n },\n titleWrapper: {\n display: (props) => (props.hideTitleBar ? 'none' : 'flex'),\n width: '100%',\n paddingLeft: theme.spacing(1)\n },\n button: {\n marginTop: -8\n },\n title: {\n flex: 1,\n width: '100%',\n marginTop: 8\n },\n expandedWidth: {\n width: 288\n },\n handle: {\n top: 0,\n right: theme.spacing(-0.75),\n width: theme.spacing(0.75),\n zIndex: 10000,\n height: 'calc(100vh - 56px)',\n display: 'inline-block',\n position: 'absolute',\n '&:hover': {\n cursor: 'col-resize'\n }\n }\n}));\n\nexport const UtilitySideBar = (props) => {\n const {\n onUtilitySidebarToggleExpandClick,\n resizable,\n title,\n utilitySidebarToggleOverride,\n isUsingChildren = false,\n removeTopLayoutUnit = false,\n collapsedWidth,\n children,\n sidebarHidden,\n handleResize = null,\n hideTitleBar\n } = props;\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const [expanded, setExpanded] = useState(true);\n const [width, setWidth] = useState(EXPANDED_WIDTH);\n const _collapsedWidth = collapsedWidth ?? COLLAPSED_WIDTH;\n\n const theme = useTheme();\n\n const onResize = (event, { element, size, handle }) => {\n setWidth(size.width);\n if (handleResize) {\n handleResize(size.width);\n }\n };\n\n const handleToggleClick = useCallback(() => {\n if (onUtilitySidebarToggleExpandClick) {\n onUtilitySidebarToggleExpandClick();\n }\n setExpanded((expanded) => !expanded);\n }, [onUtilitySidebarToggleExpandClick]);\n\n useEffect(() => {\n if (typeof utilitySidebarToggleOverride === 'boolean') {\n setExpanded(utilitySidebarToggleOverride);\n }\n }, [utilitySidebarToggleOverride]);\n return (\n <ResizableBox\n width={expanded ? width : _collapsedWidth}\n resizeHandles={resizable && expanded ? ['e'] : []}\n axis='x'\n minConstraints={expanded ? [EXPANDED_WIDTH] : [_collapsedWidth]}\n maxConstraints={[MAX_WIDTH]}\n onResize={onResize}\n handle={expanded && <div className={classes.handle} />}\n style={{ position: 'relative' }}\n >\n <div\n className={classes.root}\n style={{ width: expanded ? width : _collapsedWidth }}\n >\n <AmbientCard\n fullWidth\n removePadding\n lastChildBottomPadding={12}\n removeTopLayoutUnit={removeTopLayoutUnit || sidebarHidden}\n >\n <div\n style={{\n display: hideTitleBar ? 'none' : 'flex',\n width: '100%',\n paddingLeft: theme.spacing(1)\n }}\n >\n <div className={classes.title}>\n {expanded && <Typography variant='h6'> {title} </Typography>}\n </div>\n <div className={classes.button}>\n <SidebarCollapseButton\n id={'udpRecord-UtilitySideBar'}\n udprecordid={'udpRecord-UtilitySideBar'}\n expanded={expanded}\n onClick={handleToggleClick}\n />\n </div>\n </div>\n {!isUsingChildren && <UtilityBarInportTarget />}\n {isUsingChildren && children}\n </AmbientCard>\n </div>\n </ResizableBox>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualBrowser-CiD8XKsM.js","names":["useStyles","value","PrimaryActionButton"],"sources":["../src/maintenanceEngine/virtualBrowser/VirtualTableColumnDefs.js","../src/hooks/virtualActions.jsx","../src/UI/forms/VirtualForm.jsx","../src/maintenanceEngine/virtualBrowser/VirtualTableSidePanel.jsx","../src/maintenanceEngine/virtualBrowser/VirtualBrowser.jsx"],"sourcesContent":["import { toTitleCase } from '../../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n headerName: '',\n field: '',\n minWidth: 80,\n autoHeight: false,\n sortable: true\n};\n\nexport const VirtualTableColumnDefs = (\n tableDescription,\n actionList,\n columnName = 'Actions',\n crudTableActionRenderName = 'actionsRenderer',\n panelDirection = 'right'\n) => {\n let columnDefs =\n tableDescription?.reduce((defs, element) => {\n defs.push({\n ...defaultGridColumn,\n headerName: toTitleCase(element?.name || ''),\n field: element?.name\n });\n return defs;\n }, []) || [];\n\n columnDefs.push({\n headerName:\n crudTableActionRenderName === 'actionsRenderer' ? 'Actions' : columnName,\n filter: false,\n pinned: panelDirection,\n width: 150,\n maxWidth: 180,\n cellRenderer: crudTableActionRenderName,\n cellRendererParams: {\n actionList\n },\n valueGetter: (params) => params.data,\n suppressMenu: true,\n sortable: false,\n cellStyle: { display: 'flex', alignItems: 'center' }\n });\n\n return columnDefs;\n};\n\nexport const defaultColActionsDef = {\n resizable: true,\n editable: false,\n sortable: true,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true\n};\n","import { FormControlLabel, TextField } from '@material-ui/core';\nimport React, { useCallback } from 'react';\nimport { DateTimeField } from '../UI/inputs/datetimes/DateTimeField';\nimport { Field } from '../utilities/form';\nimport { findTermByType } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { FluentToggle } from '../UI/inputs/toggle/FluentToggle';\nimport { PropertyTypeEnum } from '../enums/propertyTypeEnums';\nimport { toLowerFirstChar } from '../utilities/input/StringUtilities';\nimport { toTitleCase } from '../utilities/input/StringUtilities';\n\nexport function useVirtualActions() {\n const renderInputByFieldType = useCallback(\n (formField, index, virtualTableFormData, classes) => {\n const NUMBER_TYPE = [\n PropertyTypeEnum.Int,\n PropertyTypeEnum.Long,\n PropertyTypeEnum.Double\n ];\n\n if (\n formField.type === 'boolean' &&\n virtualTableFormData[toLowerFirstChar(formField.name)] === ''\n ) {\n virtualTableFormData[toLowerFirstChar(formField.name)] = false;\n }\n\n const fieldType = formField.type?.toLowerCase();\n let fieldIsNumberType = NUMBER_TYPE.includes(fieldType);\n\n const DefaultTextField = (\n <Field\n component={TextField}\n id={`${formField.name}${index}`}\n name={toLowerFirstChar(formField.name)}\n label={toTitleCase(formField.name)}\n initialValue={\n virtualTableFormData[toLowerFirstChar(formField.name)] || ''\n }\n type={fieldIsNumberType && 'number'}\n fullWidth\n variant='outlined'\n size='small'\n required={!formField?.nullable}\n margin='dense'\n InputProps={{\n classes: {\n root: classes?.input,\n input: classes?.formTextInput\n }\n }}\n InputLabelProps={{\n classes: {\n root: classes?.labelRoot\n }\n }}\n disabled={formField?.disabled}\n />\n );\n\n const DefaultFluentToggle = (\n <FormControlLabel\n control={\n <Field\n component={FluentToggle}\n type='checkbox'\n id={`${formField.name}${index}`}\n name={toLowerFirstChar(formField.name)}\n label={toTitleCase(formField.name)}\n initialValue={\n typeof virtualTableFormData[\n toLowerFirstChar(formField.name)\n ] === 'boolean'\n ? virtualTableFormData[toLowerFirstChar(formField.name)]\n : virtualTableFormData[toLowerFirstChar(formField.name)] ===\n 'true'\n ? true\n : false\n }\n disabled={formField?.disabled}\n classes={{ root: classes?.switchRoot }}\n color='secondary'\n inputProps={{ 'aria-label': 'Active condition' }}\n />\n }\n label={toTitleCase(formField.name)}\n labelPlacement='start'\n style={{ marginLeft: 4 }}\n />\n );\n\n switch (fieldType.toLowerCase()) {\n case findTermByType(fieldType, 'int'):\n case findTermByType(fieldType, 'long'):\n case findTermByType(fieldType, 'double'):\n case findTermByType(fieldType, 'string'):\n case findTermByType(fieldType, 'string uuid'):\n return DefaultTextField;\n case findTermByType(fieldType, 'boolean'):\n return DefaultFluentToggle;\n case findTermByType(fieldType, 'datetime'):\n return (\n <Field\n disabled={formField?.disabled}\n component={DateTimeField}\n id={`${formField.name}${index}`}\n name={toLowerFirstChar(formField.name)}\n label={toTitleCase(formField.name)}\n initialValue={\n virtualTableFormData[toLowerFirstChar(formField.name)]\n ? new Date(\n virtualTableFormData[toLowerFirstChar(formField.name)]\n )\n : ''\n }\n fullWidth\n variant='outlined'\n size='small'\n required={!formField?.nullable}\n style={{ marginTop: 8 }}\n />\n );\n default:\n return null;\n }\n },\n []\n );\n\n return {\n renderInputByFieldType\n };\n}\n","import { makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { Form, FormButtons, SubmitButton } from '../../utilities/form';\nimport { useVirtualActions } from '../../hooks/virtualActions';\n\nconst useStyles = makeStyles((theme) => ({\n actions: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n display: 'flex',\n flexDirection: 'row'\n },\n title: {\n flexGrow: 1\n },\n subject: {\n marginLeft: theme.spacing(1),\n display: 'flex',\n flexDirection: 'row',\n flexGrow: 1\n },\n switchRoot: {\n marginLeft: theme.spacing(1)\n },\n input: {\n height: 34,\n padding: 0\n },\n formTextInput: {\n fontSize: 13\n },\n labelRoot: {\n fontSize: 13\n }\n}));\n\nexport const VirtualForm = (props) => {\n const { tableDescription, rowValue, closeSideSheet, onCreate, onUpdate } =\n props;\n const { renderInputByFieldType } = useVirtualActions();\n\n const [virtualTableFormData, setVirtualTableFormData] = useState(\n rowValue || {}\n );\n const classes = useStyles();\n\n const handleSubmit = async (values) => {\n let newTableData = {\n ...virtualTableFormData,\n ...values\n };\n\n const isNewRow = !rowValue;\n\n if (isNewRow) {\n onCreate && (await onCreate(newTableData));\n } else {\n onUpdate && (await onUpdate(newTableData));\n }\n closeSideSheet && closeSideSheet();\n };\n\n return (\n <Form onSubmit={handleSubmit}>\n <div>\n {tableDescription?.map((formField, index) => {\n return (\n <React.Fragment key={`${formField.name}-${index}`}>\n <Typography variant='subtitle2' style={{ marginTop: 8 }}>\n {formField.friendlyName}\n </Typography>\n {renderInputByFieldType(\n formField,\n index,\n virtualTableFormData,\n classes\n )}\n </React.Fragment>\n );\n })}\n </div>\n\n <FormButtons>\n <SubmitButton\n variant='contained'\n color='secondary'\n disablePristine={false}\n disabled={false}\n style={{ marginTop: 15 }}\n >\n Save\n </SubmitButton>\n </FormButtons>\n </Form>\n );\n};\n\nVirtualForm.propTypes = {\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n","import { Divider, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { PageContainer } from '../../page/PageContainer';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { Skeleton } from '@material-ui/lab';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { VirtualForm } from '../../UI/forms/VirtualForm';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n divider: {\n marginTop: theme.spacing(2)\n }\n}));\n\nconst FIELD_NUMBER = 10;\n\nexport const VirtualTableSidePanel = (props) => {\n const {\n tableDescription,\n value,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps\n } = props;\n const user = useUser();\n const classes = useStyles();\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageId}`,\n {},\n !!!pageId,\n false\n );\n\n const skeleton = useMemo(() => {\n const skeletonArr = [];\n for (let i = 0; i < FIELD_NUMBER; i++) {\n skeletonArr.push(\n <>\n <Skeleton key={i} variant='rect' className={classes.skeleton} />\n <LayoutUnit unit='xxs' />\n </>\n );\n }\n return skeletonArr;\n }, [classes]);\n\n const sideSheetContent = useMemo(() => {\n if (page) {\n return (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={pageId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n nodeObj: crudTableEditionData,\n setSideSheetWidth: setSideSheetWidth,\n setSideSheetButtonLabel: setSideSheetButtonLabel,\n setSideSheetOnSubmit: setSideSheetOnSubmit,\n closeSideSheet: closeSideSheet,\n setSideSheetProps: setSideSheetProps,\n onCreate: onCreate,\n onUpdate: onUpdate\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else {\n return (\n <>\n <VirtualForm\n tableDescription={tableDescription}\n rowValue={value}\n closeSideSheet={closeSideSheet}\n onCreate={onCreate}\n onUpdate={onUpdate}\n />\n <div className={classes.divider}>\n <Divider />\n </div>\n </>\n );\n }\n }, [\n page,\n user,\n pageId,\n crudTableEditionData,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n closeSideSheet,\n onCreate,\n onUpdate,\n classes,\n tableDescription,\n value\n ]);\n\n return (\n <div>\n {loadingPage ? (\n <>\n {skeleton.map((sk) => sk)}\n <LayoutUnit unit='md' />\n <Skeleton variant='rect' className={classes.skeletonButton} />\n </>\n ) : (\n sideSheetContent\n )}\n </div>\n );\n};\n\nVirtualTableSidePanel.propTypes = {\n /**\n * Description of the table\n */\n tableDescription: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport PrimaryActionButton from '../../UI/inputs/buttons/PrimaryActionButton';\nimport { AmbientGridTemplate } from '../../UI/templates/AmbientGridTemplate';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { ActionsRenderer } from '../../UI/templates/ui/renderers/ActionsRenderer';\nimport { VirtualTableColumnDefs } from './VirtualTableColumnDefs';\nimport { AddIcon, DeleteIcon, EditIcon } from '@fluentui/react-icons';\nimport { Typography } from '@material-ui/core';\nimport { format } from 'date-fns';\nimport { getPathObject } from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { executeQueryWithParameters } from '../../udp/utilities/methodUtils';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { useLocation } from 'react-router-dom';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { VirtualTableSidePanel } from './VirtualTableSidePanel';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { useBuildEnvironment } from '../../shell/ui/EnvironmentRibbon';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useSetLocationState } from '../../hooks/useSetLocationState';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useSearchParams = () => {\n const { search } = useLocation();\n return useMemo(() => new URLSearchParams(search), [search]);\n};\n\nexport const VirtualBrowser = (props) => {\n const { ...other } = props;\n const urlSearchParams = useSearchParams();\n const location = useLocation();\n const { value, promotedEntity } = location.state || {};\n const parts = location?.pathname?.split('/');\n const virtualId = value\n ? value?.id\n : '' || parts\n ? parts[parts.length - 1]\n : null;\n\n const user = useUser();\n const buildEnv = useBuildEnvironment();\n const [isSheetOpen, setSheetOpen] = useState(false);\n const [sideSheetWidth, setSideSheetWidth] = useState(600);\n const [sideSheetButtonLabel, setSideSheetButtonLabel] = useState('');\n const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n const [sideSheetOnSubmit, setSideSheetOnSubmit] = useState(\n () => () => console.warn('onSubmit not set')\n );\n const [selectedEntity, setSelectedEntity] = useState(promotedEntity);\n const { t } = useTranslation();\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n const setLocationState = useSetLocationState();\n\n const closeSheet = useCallback(() => {\n setSheetOpen(false);\n }, []);\n\n const entityName = useMemo(() => {\n if (selectedEntity) {\n return selectedEntity.entityName || '';\n } else {\n return urlSearchParams.has('entityName') === true\n ? urlSearchParams.get('entityName')\n : '';\n }\n }, [selectedEntity, urlSearchParams]);\n\n const createApiMethodPageId = useMemo(() => {\n return selectedEntity?.unityBaseCreateMethod?.pageId;\n }, [selectedEntity]);\n\n const [{ data: tpacb, loading: loadingTpacb, error: tpacbError }] =\n useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!user || !!promotedEntity,\n false\n );\n\n const [{ data: promotedMethodEntities }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${tpacb?.apiCatalogId}/promotedMethodEntities/${entityName}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!tpacb || !!!user || !!!entityName,\n false\n );\n\n // Get all rows of an entity\n const [{ data: entityData, loading: isLoading }, fetchEntityData] =\n useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseGetDataMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n // Get all rows of an entity\n const [\n { data: tableDescription, loading: tableDescriptionLoading },\n fetchTableDescription\n ] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseDescribeMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const constructVirtualValuesForRequest = useCallback(\n (values) => {\n if (!tableDescription) {\n return [];\n }\n const bodyArr = [];\n tableDescription.forEach((column) => {\n const valueExist =\n typeof values[column.name] == 'boolean' || values[column.name];\n if (column.name || valueExist) {\n switch (getSanitizedName(entityName?.toLowerCase())) {\n case UdpEnums.Udp_Lookup.toLowerCase():\n bodyArr.push({\n lookupColumnId: column.id,\n value: values[column.name]\n });\n break;\n default:\n }\n }\n });\n return bodyArr;\n },\n [tableDescription, entityName]\n );\n\n const handleOnCreate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualCreateMethod) {\n const requestArr = constructVirtualValuesForRequest(values);\n const data = { requestBody: requestArr, id: virtualId };\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualCreateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been created`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnUpdate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualUpdateMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, values.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity.unityBaseVirtualUpdateMethod.pathParameters,\n primaryKeyValues\n );\n const requestArr = constructVirtualValuesForRequest(values);\n let data = { requestBody: requestArr };\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject, requestBody: requestArr };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualUpdateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been updated`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\n if (selectedEntity?.unityBaseVirtualDeleteMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, value.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity?.unityBaseVirtualDeleteMethod.pathParameters,\n primaryKeyValues\n );\n let data = {};\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualDeleteMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been deleted`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId\n ]\n );\n\n const actionList = useMemo(() => {\n if (!selectedEntity) {\n return;\n }\n\n return [\n {\n id: 1, // Must be unique\n title: selectedEntity?.unityBaseVirtualUpdateMethod\n ? t('Edit')\n : t('Edit Method Not Accessible'),\n icon: EditIcon,\n onClick: null,\n opens: 'sideSheet',\n view: {\n component: VirtualTableSidePanel,\n properties: {\n tableDescription: tableDescription,\n onUpdate: handleOnUpdate,\n valuePropName: 'value',\n closeSideSheet: null,\n closeSideSheetPropName: 'closeSideSheet',\n pageId: selectedEntity?.unityBaseVirtualUpdateMethod?.pageId,\n isNewEntry: false\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualUpdateMethod\n },\n {\n id: 2, // Must be unique\n title: selectedEntity?.unityBaseVirtualDeleteMethod\n ? t('Delete')\n : t('Delete Method Not Accessible'),\n icon: DeleteIcon,\n onClick: null,\n opens: 'dialog',\n view: {\n component: null,\n properties: {\n title: t('Delete'),\n message: t('Are you sure you want to delete this row?'),\n labelOne: t('Cancel'),\n actionTwo: handleOnDelete,\n labelTwo: t('Confirm')\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualDeleteMethod\n }\n ];\n }, [selectedEntity, t, handleOnUpdate, handleOnDelete, tableDescription]);\n\n const columnDefs = useMemo(() => {\n if (tableDescription?.length) {\n return VirtualTableColumnDefs(tableDescription, actionList);\n }\n return [];\n }, [actionList, tableDescription]);\n\n const groupData = useMemo(() => {\n return columnDefs?.map((item) => {\n return {\n groupItem: item.field,\n label: item.headerName,\n value: item.field\n };\n });\n }, [columnDefs]);\n\n useEffect(() => {\n if (promotedMethodEntities) {\n setSelectedEntity(promotedMethodEntities);\n }\n }, [promotedMethodEntities]);\n\n useEffect(() => {\n if (virtualId) {\n const queryData = { id: virtualId };\n if (selectedEntity?.unityBaseGetDataMethod?.apiMethodId) {\n fetchEntityData({ data: queryData });\n }\n if (selectedEntity?.unityBaseDescribeMethod?.apiMethodId) {\n fetchTableDescription({ data: queryData });\n }\n }\n }, [selectedEntity, fetchEntityData, virtualId, fetchTableDescription]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n setLocationState({ label: t(value?.name) || t('Virtual Lookup') });\n }, [setLocationState, t, value]);\n\n const pab = (\n <PrimaryActionButton onClick={() => setSheetOpen && setSheetOpen(true)}>\n <Typography style={{ marginRight: 5 }}>Add</Typography>\n <AddIcon />\n </PrimaryActionButton>\n );\n\n const SideOptionList = useMemo(\n () => (\n <SideSheet\n open={isSheetOpen}\n onClose={closeSheet}\n title={`Add new ${entityName}`}\n width={sideSheetWidth}\n buttonLabel={sideSheetButtonLabel}\n onSubmit={sideSheetOnSubmit}\n {...otherSideSheetProps}\n >\n <VirtualTableSidePanel\n onCreate={handleOnCreate}\n closeSideSheet={closeSheet}\n pageId={createApiMethodPageId}\n setSideSheetWidth={setSideSheetWidth}\n setSideSheetButtonLabel={setSideSheetButtonLabel}\n setSideSheetOnSubmit={setSideSheetOnSubmit}\n setSideSheetProps={setOtherSideSheetProps}\n tableDescription={tableDescription}\n />\n </SideSheet>\n ),\n [\n isSheetOpen,\n closeSheet,\n entityName,\n sideSheetWidth,\n sideSheetButtonLabel,\n sideSheetOnSubmit,\n handleOnCreate,\n createApiMethodPageId,\n otherSideSheetProps,\n tableDescription\n ]\n );\n\n const formatData = useCallback(() => {\n if (entityData?.data && tableDescription) {\n let formattedEntityData = cloneDeep(entityData?.data);\n\n // get list of attributes that are datetime\n const datetimeFields = tableDescription?.reduce((fields, element) => {\n if (element?.type === 'datetime') {\n fields.push(element?.name);\n }\n return fields;\n }, []);\n\n if (datetimeFields.length) {\n formattedEntityData.forEach((e) => {\n Object.keys(e).forEach((key) => {\n // format all datetime fields\n if (datetimeFields.find((field) => field === key)) {\n // LAA UNT-2977: add null check to prevent default date from being added when null\n if (e[key] === null) return;\n e[key] = format(new Date(e[key]), 'yyyy/MM/dd kk:mm:ss');\n }\n });\n });\n }\n\n return formattedEntityData;\n }\n return [];\n }, [entityData, tableDescription]);\n\n return (\n <>\n <AmbientGridTemplate\n title={value?.name || entityData?.name}\n data={entityData ? formatData(entityData?.data) : []}\n columnDefs={columnDefs}\n groupingData={groupData}\n primaryActionButton={pab}\n frameworkComponents={{ actionsRenderer: ActionsRenderer }}\n height={`calc(100vh - ${buildEnv ? '139px' : '114px'})`}\n disableRowSelection={true}\n loading={isLoading}\n {...other}\n />\n {SideOptionList}\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import "./SideSheet-D48-jzNi.js";
|
|
2
|
-
import "./EnvironmentRibbon-OD01SY9G.js";
|
|
3
|
-
import "./apiHelpers-DZPI1QCL.js";
|
|
4
|
-
import "./useAxiosGet-Bi4Z0b8W.js";
|
|
5
|
-
import "./useAxiosMutate-pB7OdGIa.js";
|
|
6
|
-
import { WorkflowContainer } from "./WorkflowContainer-CpWRhlBx.js";
|
|
7
|
-
import "./UtilitySideBar-9LDu9AaN.js";
|
|
8
|
-
import "./SearchUtilities-lVLvOpzo.js";
|
|
9
|
-
import "./PageContainer-BxChq1eP.js";
|
|
10
|
-
|
|
11
|
-
export { WorkflowContainer };
|