udp-react-enterprise-component-library 25.16.2-beta.2 → 25.16.2-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ActionLoadingContext-DxqZH8--.js → ActionLoadingContext-DVpCwfbg.js} +1 -1
- package/dist/{ActionLoadingContext-DxqZH8--.js.map → ActionLoadingContext-DVpCwfbg.js.map} +1 -1
- package/dist/{ActionProvider-BiNM-ubX.js → ActionProvider-BX693NQ_.js} +5 -5
- package/dist/{ActionProvider-BiNM-ubX.js.map → ActionProvider-BX693NQ_.js.map} +1 -1
- package/dist/{AmbientAutoComplete-09VfbDE4.js → AmbientAutoComplete-J8PArVAs.js} +3 -2
- package/dist/AmbientAutoComplete-J8PArVAs.js.map +1 -0
- package/dist/{AppMenu-DzMsTuWv.js → AppMenu-CEp4BrdJ.js} +2 -2
- package/dist/{AppMenu-DzMsTuWv.js.map → AppMenu-CEp4BrdJ.js.map} +1 -1
- package/dist/{BaseTreeMenu-DkcHI-BC.js → BaseTreeMenu-CN_g4GEm.js} +1 -1
- package/dist/{BaseTreeMenu-DkcHI-BC.js.map → BaseTreeMenu-CN_g4GEm.js.map} +1 -1
- package/dist/{BreadCrumbMenu-BxpMqfvj.js → BreadCrumbMenu-RkiR54r9.js} +1 -1
- package/dist/{BreadCrumbMenu-BxpMqfvj.js.map → BreadCrumbMenu-RkiR54r9.js.map} +1 -1
- package/dist/{CatalogUtilities-Cm2RALT1.js → CatalogUtilities-CgNFjItY.js} +1 -1
- package/dist/{CatalogUtilities-Cm2RALT1.js.map → CatalogUtilities-CgNFjItY.js.map} +1 -1
- package/dist/{ChatBotProvider-BE_DhBqN.js → ChatBotProvider-ZTkBY_Lp.js} +1 -1
- package/dist/{ChatBotProvider-BE_DhBqN.js.map → ChatBotProvider-ZTkBY_Lp.js.map} +1 -1
- package/dist/{CircularProgress-CSGPlrG_.js → CircularProgress-CGB2A7S2.js} +1 -1
- package/dist/{CircularProgress-CSGPlrG_.js.map → CircularProgress-CGB2A7S2.js.map} +1 -1
- package/dist/{Controls-CHns-SHo.js → Controls-B0ogviQm.js} +2 -2
- package/dist/{Controls-CHns-SHo.js.map → Controls-B0ogviQm.js.map} +1 -1
- package/dist/{CrudBrowserContainer-BCn9YKhz.js → CrudBrowserContainer-CwD2cxD0.js} +3 -3
- package/dist/{CrudBrowserContainer-BCn9YKhz.js.map → CrudBrowserContainer-CwD2cxD0.js.map} +1 -1
- package/dist/{CrudForm-Bb9BvEVm.js → CrudForm-CN5vjshw.js} +3 -3
- package/dist/{CrudForm-Bb9BvEVm.js.map → CrudForm-CN5vjshw.js.map} +1 -1
- package/dist/{CrudTableSidePanel-Cwd9NuYq.js → CrudTableSidePanel-DBg4P_v7.js} +2 -2
- package/dist/{CrudTableSidePanel-Cwd9NuYq.js.map → CrudTableSidePanel-DBg4P_v7.js.map} +1 -1
- package/dist/{DataBrowserContainer-CwyuvRqK.js → DataBrowserContainer-CMCGX613.js} +3 -3
- package/dist/{DataBrowserContainer-CwyuvRqK.js.map → DataBrowserContainer-CMCGX613.js.map} +1 -1
- package/dist/{DragDropFileUpload-CVmPVcA5.js → DragDropFileUpload-D1ihiCC2.js} +2 -2
- package/dist/{DragDropFileUpload-CVmPVcA5.js.map → DragDropFileUpload-D1ihiCC2.js.map} +1 -1
- package/dist/{EmailDisplay-BEV_maxX.js → EmailDisplay-CpnpgDOC.js} +1 -1
- package/dist/{EmailDisplay-BEV_maxX.js.map → EmailDisplay-CpnpgDOC.js.map} +1 -1
- package/dist/{ExportSidesheet-J4UlfjNv.js → ExportSidesheet-JSM9EoLc.js} +2 -2
- package/dist/{ExportSidesheet-J4UlfjNv.js.map → ExportSidesheet-JSM9EoLc.js.map} +1 -1
- package/dist/{ExternalRedirectUrlStorage-CpypX4nx.js → ExternalRedirectUrlStorage-Bbj9JzIW.js} +1 -1
- package/dist/{ExternalRedirectUrlStorage-CpypX4nx.js.map → ExternalRedirectUrlStorage-Bbj9JzIW.js.map} +1 -1
- package/dist/{FUIAppSwitcher-Cjr-UgW4.js → FUIAppSwitcher-u6lx2hy2.js} +3 -3
- package/dist/{FUIAppSwitcher-Cjr-UgW4.js.map → FUIAppSwitcher-u6lx2hy2.js.map} +1 -1
- package/dist/{FieldArrayCard-L1-QJjiY.js → FieldArrayCard-lEUXQyMD.js} +2 -2
- package/dist/{FieldArrayCard-L1-QJjiY.js.map → FieldArrayCard-lEUXQyMD.js.map} +1 -1
- package/dist/{FluentInputSlider-GXgusPZa.js → FluentInputSlider-BqI2PdVF.js} +1 -1
- package/dist/{FluentInputSlider-GXgusPZa.js.map → FluentInputSlider-BqI2PdVF.js.map} +1 -1
- package/dist/{FluentMap-CAhZE-7q.js → FluentMap-BPiZxyEZ.js} +2 -2
- package/dist/{FluentMap-CAhZE-7q.js.map → FluentMap-BPiZxyEZ.js.map} +1 -1
- package/dist/{FluentProfileMenuCard-CZ00DNnC.js → FluentProfileMenuCard-3lEpSHmy.js} +9 -9
- package/dist/{FluentProfileMenuCard-CZ00DNnC.js.map → FluentProfileMenuCard-3lEpSHmy.js.map} +1 -1
- package/dist/{FluentSimpleSelect-B3vzgEP5.js → FluentSimpleSelect-I2CtivEs.js} +2 -2
- package/dist/{FluentSimpleSelect-B3vzgEP5.js.map → FluentSimpleSelect-I2CtivEs.js.map} +1 -1
- package/dist/{FluentTextField-CgQcsDtq.js → FluentTextField-CPpViNni.js} +1 -1
- package/dist/{FluentTextField-CgQcsDtq.js.map → FluentTextField-CPpViNni.js.map} +1 -1
- package/dist/{GeoLocation-CpjesoCi.js → GeoLocation-BaD7pKM9.js} +2 -2
- package/dist/{GeoLocation-CpjesoCi.js.map → GeoLocation-BaD7pKM9.js.map} +1 -1
- package/dist/{GeoMap-CW3Pgzvz.js → GeoMap-BZDwrLIm.js} +6 -6
- package/dist/{GeoMap-CW3Pgzvz.js.map → GeoMap-BZDwrLIm.js.map} +1 -1
- package/dist/{GridRow-CfCj0Upc.js → GridRow-KktUKRX-.js} +1 -1
- package/dist/{GridRow-CfCj0Upc.js.map → GridRow-KktUKRX-.js.map} +1 -1
- package/dist/{ImportDataFromFileMapping-BG9XyC8n.js → ImportDataFromFileMapping-DRdpqXNn.js} +3 -3
- package/dist/{ImportDataFromFileMapping-BG9XyC8n.js.map → ImportDataFromFileMapping-DRdpqXNn.js.map} +1 -1
- package/dist/{InquiryHeaderControl-BCiMFs_v.js → InquiryHeaderControl-DClEzP6_.js} +1 -1
- package/dist/{InquiryHeaderControl-BCiMFs_v.js.map → InquiryHeaderControl-DClEzP6_.js.map} +1 -1
- package/dist/{KeyValueTextField-B2h4ugP1.js → KeyValueTextField-YjvoszxB.js} +2 -2
- package/dist/{KeyValueTextField-B2h4ugP1.js.map → KeyValueTextField-YjvoszxB.js.map} +1 -1
- package/dist/{LinearProgress-BiBVB7Dw.js → LinearProgress-DvXOb1Ck.js} +1 -1
- package/dist/{LinearProgress-BiBVB7Dw.js.map → LinearProgress-DvXOb1Ck.js.map} +1 -1
- package/dist/{LoadingOverlay-DMaSZ_lL.js → LoadingOverlay-DC798-1h.js} +1 -1
- package/dist/{LoadingOverlay-DMaSZ_lL.js.map → LoadingOverlay-DC798-1h.js.map} +1 -1
- package/dist/{LocalRedirectUrlStorage-BY-L7N4U.js → LocalRedirectUrlStorage-CRvlUZw0.js} +1 -1
- package/dist/{LocalRedirectUrlStorage-BY-L7N4U.js.map → LocalRedirectUrlStorage-CRvlUZw0.js.map} +1 -1
- package/dist/{Map-D2_8ACTx.js → Map-B_ESwi9p.js} +2 -2
- package/dist/{Map-D2_8ACTx.js.map → Map-B_ESwi9p.js.map} +1 -1
- package/dist/{Map-ChRg-LpE.js → Map-DWXcBhH1.js} +4 -4
- package/dist/{Map-ChRg-LpE.js.map → Map-DWXcBhH1.js.map} +1 -1
- package/dist/{MapContent-CM4jG7Cx.js → MapContent-CTPX858a.js} +1 -1
- package/dist/{MapContent-CM4jG7Cx.js.map → MapContent-CTPX858a.js.map} +1 -1
- package/dist/{MapContext-DMHlc2jW.js → MapContext-BmClJmMl.js} +1 -1
- package/dist/{MapContext-DMHlc2jW.js.map → MapContext-BmClJmMl.js.map} +1 -1
- package/dist/{MapContext-DyuJF6vT.js → MapContext-C0QCTK9-.js} +1 -1
- package/dist/{MapContext-DyuJF6vT.js.map → MapContext-C0QCTK9-.js.map} +1 -1
- package/dist/{MapControlsStandard-DB_YFXNg.js → MapControlsStandard-CKhBcU2K.js} +2 -2
- package/dist/{MapControlsStandard-DB_YFXNg.js.map → MapControlsStandard-CKhBcU2K.js.map} +1 -1
- package/dist/{MenuPage-Ci8NbB6g.js → MenuPage-0dfmiHLT.js} +4 -4
- package/dist/{MenuPage-CcKJfqJ-.js → MenuPage-BnjXs_I5.js} +3 -3
- package/dist/{MenuPage-CcKJfqJ-.js.map → MenuPage-BnjXs_I5.js.map} +1 -1
- package/dist/{MyExportsPage-BcWRfSLn.js → MyExportsPage-DoCWrkNv.js} +4 -4
- package/dist/{MyExportsPage-CRhaN5IG.js → MyExportsPage-lei8IuBA.js} +3 -3
- package/dist/{MyExportsPage-CRhaN5IG.js.map → MyExportsPage-lei8IuBA.js.map} +1 -1
- package/dist/{PageActionWrapper-BLi6xXdd.js → PageActionWrapper-CLLGHLUx.js} +2 -2
- package/dist/{PageActionWrapper-BLi6xXdd.js.map → PageActionWrapper-CLLGHLUx.js.map} +1 -1
- package/dist/{PageLoading-DflvopNL.js → PageLoading-CE6S65Ww.js} +1 -1
- package/dist/{PageLoading-DflvopNL.js.map → PageLoading-CE6S65Ww.js.map} +1 -1
- package/dist/{PageNotFoundRoute-CZArnjgk.js → PageNotFoundRoute-Cw7o-U9o.js} +2 -2
- package/dist/{PageNotFoundRoute-BbN60Viu.js → PageNotFoundRoute-Dzo6_TFT.js} +2 -2
- package/dist/{PageNotFoundRoute-BbN60Viu.js.map → PageNotFoundRoute-Dzo6_TFT.js.map} +1 -1
- package/dist/{PageSectionSpacer-BrUQDVvj.js → PageSectionSpacer-8DZPMnIx.js} +1 -1
- package/dist/{PageSectionSpacer-BrUQDVvj.js.map → PageSectionSpacer-8DZPMnIx.js.map} +1 -1
- package/dist/{PageStatus-DBJUjhU1.js → PageStatus-moFTkRZx.js} +1 -1
- package/dist/{PageStatus-DBJUjhU1.js.map → PageStatus-moFTkRZx.js.map} +1 -1
- package/dist/{PageSubHeaderAction-P5JNbI1r.js → PageSubHeaderAction-PjiQrg61.js} +1 -1
- package/dist/{PageSubHeaderAction-P5JNbI1r.js.map → PageSubHeaderAction-PjiQrg61.js.map} +1 -1
- package/dist/{PasswordResetRedirect-DPc0VUWd.js → PasswordResetRedirect-CgIwYhcb.js} +2 -2
- package/dist/{PasswordResetRedirect-BLo-YFvK.js → PasswordResetRedirect-Cvhj2vjU.js} +2 -2
- package/dist/{PasswordResetRedirect-BLo-YFvK.js.map → PasswordResetRedirect-Cvhj2vjU.js.map} +1 -1
- package/dist/{PowerBIReport-DoNECBnv.js → PowerBIReport-DWt7IHNZ.js} +3 -3
- package/dist/{PowerBIReport-DoNECBnv.js.map → PowerBIReport-DWt7IHNZ.js.map} +1 -1
- package/dist/{RejectIcon-C4cwL2EM.js → RejectIcon-IOZLOqY3.js} +1 -1
- package/dist/{RejectIcon-C4cwL2EM.js.map → RejectIcon-IOZLOqY3.js.map} +1 -1
- package/dist/{SearchMethodUdpGrid-DUklUn5Q.js → SearchMethodUdpGrid-DO52Bj_B.js} +1 -1
- package/dist/{SearchMethodUdpGrid-DUklUn5Q.js.map → SearchMethodUdpGrid-DO52Bj_B.js.map} +1 -1
- package/dist/{SearchServiceDatasource-CE-VlvY1.js → SearchServiceDatasource-DofS4I45.js} +1 -1
- package/dist/{SearchServiceDatasource-CE-VlvY1.js.map → SearchServiceDatasource-DofS4I45.js.map} +1 -1
- package/dist/{Shell-B0HzAa4L.js → Shell-DeIgr14Z.js} +9 -9
- package/dist/{Shell-B0HzAa4L.js.map → Shell-DeIgr14Z.js.map} +1 -1
- package/dist/{SideBarTemplate-DQnJKwXP.js → SideBarTemplate-DKYcwE38.js} +2 -2
- package/dist/{SideBarTemplate-DQnJKwXP.js.map → SideBarTemplate-DKYcwE38.js.map} +1 -1
- package/dist/{Source-BOqgbkAn.js → Source-C21-iTa_.js} +1 -1
- package/dist/{Source-BOqgbkAn.js.map → Source-C21-iTa_.js.map} +1 -1
- package/dist/{SubHeaderAction-DTDxR5S1.js → SubHeaderAction-F_GKrUBX.js} +1 -1
- package/dist/{SubHeaderAction-DTDxR5S1.js.map → SubHeaderAction-F_GKrUBX.js.map} +1 -1
- package/dist/{SupportCaseSideSheet-D48N1B5u.js → SupportCaseSideSheet-B5a-_ehT.js} +4 -4
- package/dist/{SupportCaseSideSheet-D48N1B5u.js.map → SupportCaseSideSheet-B5a-_ehT.js.map} +1 -1
- package/dist/{TableContainer-CjJCsvvs.js → TableContainer-CJFW0Teg.js} +2 -2
- package/dist/{TableContainer-CjJCsvvs.js.map → TableContainer-CJFW0Teg.js.map} +1 -1
- package/dist/{TileDisplay-Btcf3Wrm.js → TileDisplay-DvHKTjpO.js} +2 -2
- package/dist/{TileDisplay-Btcf3Wrm.js.map → TileDisplay-DvHKTjpO.js.map} +1 -1
- package/dist/{TileLayer-Ckm0zl4x.js → TileLayer-D3RksO00.js} +2 -2
- package/dist/{TileLayer-Ckm0zl4x.js.map → TileLayer-D3RksO00.js.map} +1 -1
- package/dist/UI/components/dataDisplay/index.js +1 -1
- package/dist/UI/components/index.js +1 -1
- package/dist/UI/dataDisplay/cardList/index.js +2 -2
- package/dist/UI/dataDisplay/index.js +2 -2
- package/dist/UI/feedback/index.js +1 -1
- package/dist/UI/fileViewer/index.js +2 -2
- package/dist/UI/floorplans/index.js +2 -2
- package/dist/UI/forms/index.js +6 -6
- package/dist/UI/index.js +30 -30
- package/dist/UI/inputs/fieldArrayCard/index.js +2 -2
- package/dist/UI/inputs/link/index.js +1 -1
- package/dist/UI/inputs/menus/index.js +2 -2
- package/dist/UI/inputs/sliders/index.js +1 -1
- package/dist/UI/inputs/textField/index.js +3 -3
- package/dist/UI/loading/index.js +3 -3
- package/dist/UI/mapLayout/index.js +4 -4
- package/dist/UI/navigation/index.js +2 -2
- package/dist/UI/navigation/menus/index.js +2 -2
- package/dist/UI/support/index.js +5 -5
- package/dist/UI/templates/index.js +5 -5
- package/dist/UI/templates/newGrid/index.js +4 -4
- package/dist/UI/utilityDisplay/index.js +5 -5
- package/dist/{UdpMaintenanceConfigPage-DdfyBkU_.js → UdpMaintenanceConfigPage-BcCKx7BV.js} +3 -3
- package/dist/{UdpMaintenanceConfigPage-BcGLnZst.js → UdpMaintenanceConfigPage-O7UcWFPr.js} +3 -3
- package/dist/{UdpMaintenanceConfigPage-BcGLnZst.js.map → UdpMaintenanceConfigPage-O7UcWFPr.js.map} +1 -1
- package/dist/{UdpMaintenanceEnginePage-BPXeLhFN.js → UdpMaintenanceEnginePage-COO3GwG9.js} +31 -5
- package/dist/UdpMaintenanceEnginePage-COO3GwG9.js.map +1 -0
- package/dist/UdpMaintenanceEnginePage-pzq1GqGZ.js +131 -0
- package/dist/{UdpRoutes-B4nogDAu.js → UdpRoutes-DVmSmw-w.js} +12 -12
- package/dist/{UdpRoutes-B4nogDAu.js.map → UdpRoutes-DVmSmw-w.js.map} +1 -1
- package/dist/{UserFormSideSheet-DpO8GKQO.js → UserFormSideSheet-CpeyFv3r.js} +1 -1
- package/dist/{UserFormSideSheet-DpO8GKQO.js.map → UserFormSideSheet-CpeyFv3r.js.map} +1 -1
- package/dist/{UtilityBar-XWmjM6xO.js → UtilityBar-CyUTKcIa.js} +3 -3
- package/dist/{UtilityBar-XWmjM6xO.js.map → UtilityBar-CyUTKcIa.js.map} +1 -1
- package/dist/{UtilityBarInport-Dei5BcYo.js → UtilityBarInport-BK2d93K5.js} +1 -1
- package/dist/{UtilityBarInport-Dei5BcYo.js.map → UtilityBarInport-BK2d93K5.js.map} +1 -1
- package/dist/{UtilitySideBar-CTYzpnie.js → UtilitySideBar-BTwLKDoy.js} +2 -2
- package/dist/{UtilitySideBar-CTYzpnie.js.map → UtilitySideBar-BTwLKDoy.js.map} +1 -1
- package/dist/{VectorLayer-lxWaAEEB.js → VectorLayer-DhNuJLQ_.js} +2 -2
- package/dist/{VectorLayer-lxWaAEEB.js.map → VectorLayer-DhNuJLQ_.js.map} +1 -1
- package/dist/{VirtualBrowser-BcE288WI.js → VirtualBrowser-B9Hi3Ns8.js} +1 -1
- package/dist/{VirtualBrowser-MrJ2WyXZ.js → VirtualBrowser-DitDAizB.js} +1 -1
- package/dist/{VirtualBrowser-MrJ2WyXZ.js.map → VirtualBrowser-DitDAizB.js.map} +1 -1
- package/dist/{WorkflowContainer-6pvb3tjn.js → WorkflowContainer-6vFVCbss.js} +5 -5
- package/dist/{WorkflowContainer-6pvb3tjn.js.map → WorkflowContainer-6vFVCbss.js.map} +1 -1
- package/dist/{WorkflowContainer-CJ6gQNV-.js → WorkflowContainer-VHsUGDIl.js} +12 -12
- package/dist/{WorkflowContent-B4na5XXv.js → WorkflowContent-DN9BPOCP.js} +7 -7
- package/dist/{WorkflowContent-B4na5XXv.js.map → WorkflowContent-DN9BPOCP.js.map} +1 -1
- package/dist/{WorkflowTaskFlow-Cb1JZOU2.js → WorkflowTaskFlow-B067pxDZ.js} +1 -1
- package/dist/{WorkflowTaskFlow-Cb1JZOU2.js.map → WorkflowTaskFlow-B067pxDZ.js.map} +1 -1
- package/dist/{WorkflowTreeMenu-CoDNDQxm.js → WorkflowTreeMenu-pXKq9TyH.js} +1 -1
- package/dist/{WorkflowTreeMenu-CoDNDQxm.js.map → WorkflowTreeMenu-pXKq9TyH.js.map} +1 -1
- package/dist/{ZoomControl-BQ6aV6cO.js → ZoomControl-BTO3raDM.js} +2 -2
- package/dist/{ZoomControl-BQ6aV6cO.js.map → ZoomControl-BTO3raDM.js.map} +1 -1
- package/dist/actions/index.js +4 -4
- package/dist/actions/sidebar/index.js +1 -1
- package/dist/actions/utils/index.js +1 -1
- package/dist/{cardList-CEQIqKIS.js → cardList-xcTEI1o0.js} +2 -2
- package/dist/{cardList-CEQIqKIS.js.map → cardList-xcTEI1o0.js.map} +1 -1
- package/dist/componentSystems/multiThreadTimeline/functions/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/index.js +5 -5
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/index.js +2 -2
- package/dist/componentSystems/multiThreadTimeline/ui/modified/index.js +1 -1
- package/dist/componentSystems/pageRenderer/hocs/index.js +1 -1
- package/dist/componentSystems/pageRenderer/hooks/index.js +1 -1
- package/dist/componentSystems/pageRenderer/index.js +4 -4
- package/dist/componentSystems/pageRenderer/utils/index.js +1 -1
- package/dist/componentSystems/pageRenderer/wrappers/index.js +1 -1
- package/dist/contexts/index.js +1 -1
- package/dist/{RecentlyLoadedNodesTable-DnBy6AEU.js → dashboard-BE80OHJw.js} +15 -3
- package/dist/dashboard-BE80OHJw.js.map +1 -0
- package/dist/dataBrowser/forms/index.js +1 -1
- package/dist/dataBrowser/index.js +7 -7
- package/dist/enums/index.js +2 -2
- package/dist/{fileViewer-CZYbh-Ns.js → fileViewer-CG0HJ-Ko.js} +2 -2
- package/dist/{fileViewer-CZYbh-Ns.js.map → fileViewer-CG0HJ-Ko.js.map} +1 -1
- package/dist/{floorplans-t1AcjVJw.js → floorplans-bd5zEyHl.js} +2 -2
- package/dist/{floorplans-t1AcjVJw.js.map → floorplans-bd5zEyHl.js.map} +1 -1
- package/dist/{formatBytes-BZH6z2HH.js → formatBytes-BXxFuDvk.js} +1 -1
- package/dist/{formatBytes-BZH6z2HH.js.map → formatBytes-BXxFuDvk.js.map} +1 -1
- package/dist/{forms-DcftP5g4.js → forms-D77JesD_.js} +3 -3
- package/dist/{forms-DcftP5g4.js.map → forms-D77JesD_.js.map} +1 -1
- package/dist/hooks/index.js +2 -2
- package/dist/{hooks-D1nzA6OI.js → hooks-BRJfLTY_.js} +2 -2
- package/dist/{hooks-D1nzA6OI.js.map → hooks-BRJfLTY_.js.map} +1 -1
- package/dist/index.js +102 -103
- package/dist/index.js.map +1 -1
- package/dist/inquiry/dashboard/index.js +1 -3
- package/dist/inquiry/index.js +22 -53
- package/dist/inquiry/inquiryBar/index.js +1 -2
- package/dist/inquiry/search/index.js +1 -2
- package/dist/{Inquiry-BmG2eye6.js → inquiry-CgxJFvsR.js} +69 -46
- package/dist/inquiry-CgxJFvsR.js.map +1 -0
- package/dist/{InquiryNodeControls-NSUmP5z6.js → inquiryBar-C2HJJSqs.js} +1 -1
- package/dist/inquiryBar-C2HJJSqs.js.map +1 -0
- package/dist/layout/index.js +2 -2
- package/dist/maintenanceEngine/crudBrowser/index.js +7 -7
- package/dist/maintenanceEngine/index.js +12 -12
- package/dist/maintenanceEngine/tableBrowser/index.js +3 -3
- package/dist/maintenanceEngine/virtualBrowser/index.js +2 -2
- package/dist/map-library/Controls/index.js +2 -2
- package/dist/map-library/Layers/index.js +2 -2
- package/dist/map-library/Map/index.js +5 -5
- package/dist/map-library/functions/index.js +1 -1
- package/dist/map-library/geoLocation/index.js +2 -2
- package/dist/map-library/ui/index.js +2 -2
- package/dist/{mapFunctions-Bj-QtX0N.js → mapFunctions-D63LqAPS.js} +1 -1
- package/dist/{mapFunctions-Bj-QtX0N.js.map → mapFunctions-D63LqAPS.js.map} +1 -1
- package/dist/{mapLayout-C-bB84bX.js → mapLayout-DXSAQKQp.js} +4 -4
- package/dist/{mapLayout-C-bB84bX.js.map → mapLayout-DXSAQKQp.js.map} +1 -1
- package/dist/maps/index.js +12 -12
- package/dist/maps/leafletMaps/index.js +4 -4
- package/dist/maps/leafletMaps/ui/index.js +2 -2
- package/dist/maps/openLayerMaps/Controls/index.js +2 -2
- package/dist/maps/openLayerMaps/Layers/index.js +2 -2
- package/dist/maps/openLayerMaps/Map/index.js +2 -2
- package/dist/maps/openLayerMaps/Source/index.js +1 -1
- package/dist/maps/openLayerMaps/ui/index.js +2 -2
- package/dist/menuPage/index.js +4 -4
- package/dist/{menuUtilities-8wivnoDW.js → menuUtilities-CiOyxtX1.js} +1 -1
- package/dist/{menuUtilities-8wivnoDW.js.map → menuUtilities-CiOyxtX1.js.map} +1 -1
- package/dist/{newGrid-C5cV3hvO.js → newGrid-D9TY42ly.js} +2 -2
- package/dist/{newGrid-C5cV3hvO.js.map → newGrid-D9TY42ly.js.map} +1 -1
- package/dist/page/index.js +1 -1
- package/dist/{redirectToLink-CluBHXV_.js → redirectToLink-DUidqyQh.js} +1 -1
- package/dist/{redirectToLink-CluBHXV_.js.map → redirectToLink-DUidqyQh.js.map} +1 -1
- package/dist/{redirectToProduct-CajO9PkB.js → redirectToProduct-8RiwlOkw.js} +1 -1
- package/dist/{redirectToProduct-CajO9PkB.js.map → redirectToProduct-8RiwlOkw.js.map} +1 -1
- package/dist/reports/index.js +3 -3
- package/dist/routes/index.js +4 -4
- package/dist/{InquirySearchContainer-BJZlyWSv.js → search-CvKz7AKM.js} +1 -1
- package/dist/search-CvKz7AKM.js.map +1 -0
- package/dist/shell/index.js +34 -34
- package/dist/shell/ui/addUser/index.js +2 -2
- package/dist/shell/ui/appSwitcher/index.js +4 -4
- package/dist/shell/ui/index.js +19 -19
- package/dist/stores/index.js +1 -1
- package/dist/{tagEnums-K1z2SNKZ.js → tagEnums-BHtWD8NV.js} +1 -1
- package/dist/{tagEnums-K1z2SNKZ.js.map → tagEnums-BHtWD8NV.js.map} +1 -1
- package/dist/{templates-BQJBVScH.js → templates-BzHuN6Sp.js} +2 -2
- package/dist/{templates-BQJBVScH.js.map → templates-BzHuN6Sp.js.map} +1 -1
- package/dist/treeMenu/index.js +1 -1
- package/dist/types/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/udp/utilities/useDateStringColumnDef.d.ts +1 -1
- package/dist/udp/export/index.js +6 -6
- package/dist/udp/fileImportMapping/index.js +6 -6
- package/dist/udp/pages/index.js +58 -44
- package/dist/{udpPages-CmWJMQ6t.js → udpPages-Bvmlnzes.js} +12 -12
- package/dist/{udpPages-CmWJMQ6t.js.map → udpPages-Bvmlnzes.js.map} +1 -1
- package/dist/uploader/index.js +2 -2
- package/dist/{useAuthedUser-BRX-xjnS.js → useAuthedUser-CXowatE7.js} +1 -1
- package/dist/{useAuthedUser-BRX-xjnS.js.map → useAuthedUser-CXowatE7.js.map} +1 -1
- package/dist/{useDefaultFormValues-B55mvF77.js → useDefaultFormValues-DFnzUcHv.js} +1 -1
- package/dist/{useDefaultFormValues-B55mvF77.js.map → useDefaultFormValues-DFnzUcHv.js.map} +1 -1
- package/dist/{useGravatar-D5PYsAWb.js → useGravatar-CD9SN7Qi.js} +1 -1
- package/dist/{useGravatar-D5PYsAWb.js.map → useGravatar-CD9SN7Qi.js.map} +1 -1
- package/dist/{useIsUnityAuthenticated-BKhKxtov.js → useIsUnityAuthenticated-BQZPEwr1.js} +1 -1
- package/dist/{useIsUnityAuthenticated-BKhKxtov.js.map → useIsUnityAuthenticated-BQZPEwr1.js.map} +1 -1
- package/dist/{usePrevious-DcRHSVFh.js → usePrevious-DKfZQsm9.js} +1 -1
- package/dist/{usePrevious-DcRHSVFh.js.map → usePrevious-DKfZQsm9.js.map} +1 -1
- package/dist/{useSingleLogout-DIeeNNkW.js → useSingleLogout-DZf89uRJ.js} +4 -4
- package/dist/{useSingleLogout-DIeeNNkW.js.map → useSingleLogout-DZf89uRJ.js.map} +1 -1
- package/dist/{users-Be55HGkm.js → users-DpxNzxRw.js} +1 -1
- package/dist/{users-Be55HGkm.js.map → users-DpxNzxRw.js.map} +1 -1
- package/dist/utilities/DemoJuly/index.js +2 -2
- package/dist/utilities/aggrid/index.js +1 -1
- package/dist/utilities/auth/index.js +8 -8
- package/dist/utilities/catalog/index.js +2 -2
- package/dist/utilities/chatBot/index.js +2 -2
- package/dist/utilities/crud/index.js +2 -2
- package/dist/utilities/customIcons/index.js +2 -2
- package/dist/utilities/entities/index.js +1 -1
- package/dist/utilities/floorplanFunctions/index.js +1 -1
- package/dist/utilities/iconLibrary/index.js +1 -1
- package/dist/utilities/index.js +51 -51
- package/dist/utilities/input/index.js +1 -1
- package/dist/utilities/maintenanceEngine/index.js +1 -1
- package/dist/utilities/menus/index.js +3 -3
- package/dist/utilities/page/index.js +2 -2
- package/dist/utilities/provider/index.js +6 -6
- package/dist/utilities/redirect/index.js +3 -3
- package/dist/utilities/rules/index.js +1 -1
- package/dist/utilities/search/index.js +1 -1
- package/dist/utilities/storage/index.js +1 -1
- package/dist/utilities/style/index.js +1 -1
- package/dist/utilities/tenant/index.js +1 -1
- package/dist/utilities/tree/index.js +1 -1
- package/dist/utilities/uploader/index.js +2 -2
- package/dist/utilities/utilityBar/index.js +4 -4
- package/dist/utilities/workflow/index.js +3 -3
- package/dist/workflow/components/index.js +2 -2
- package/dist/workflow/index.js +14 -14
- package/dist/workflow/menus/index.js +2 -2
- package/dist/{workflowEnums-BPeGiQKg.js → workflowEnums-BOQUbwNm.js} +1 -1
- package/dist/{workflowEnums-BPeGiQKg.js.map → workflowEnums-BOQUbwNm.js.map} +1 -1
- package/dist/{workflowStore-CBcKriB2.js → workflowStore-D-NHniHF.js} +1 -1
- package/dist/{workflowStore-CBcKriB2.js.map → workflowStore-D-NHniHF.js.map} +1 -1
- package/dist/{workflowUtilities-DMsosjJ_.js → workflowUtilities-xEyO79d5.js} +2 -2
- package/dist/{workflowUtilities-DMsosjJ_.js.map → workflowUtilities-xEyO79d5.js.map} +1 -1
- package/export-map.json +1 -1
- package/package.json +2 -2
- package/dist/AmbientAutoComplete-09VfbDE4.js.map +0 -1
- package/dist/Inquiry-BmG2eye6.js.map +0 -1
- package/dist/InquiryDashboard-EoAeiIWK.js +0 -17
- package/dist/InquiryDashboard-EoAeiIWK.js.map +0 -1
- package/dist/InquiryNodeControls-NSUmP5z6.js.map +0 -1
- package/dist/InquirySearchContainer-BJZlyWSv.js.map +0 -1
- package/dist/RecentlyLoadedNodesTable-DnBy6AEU.js.map +0 -1
- package/dist/UdpMaintenanceEnginePage-BK9IdWlV.js +0 -59
- package/dist/UdpMaintenanceEnginePage-BPXeLhFN.js.map +0 -1
- package/dist/inquiry/index.js.map +0 -1
- package/dist/virtualBrowser-BjGPv8Ks.js +0 -1
- package/dist/workflow-B3zdi9Fz.js +0 -1
- package/dist/wrappers-CLy_1LEL.js +0 -1
- /package/dist/{DemoJuly-46P2EFI7.js → DemoJuly-CIBuhheG.js} +0 -0
- /package/dist/{addUser-DdxKkJbW.js → addUser-CXeM67ys.js} +0 -0
- /package/dist/{aggrid-TPfO-kkM.js → aggrid-BOGlLEu1.js} +0 -0
- /package/dist/{appSwitcher-ERlag4rB.js → appSwitcher-BbbKY0qq.js} +0 -0
- /package/dist/{auth-BOzVI3A0.js → auth-BNJpOA6O.js} +0 -0
- /package/dist/{catalog-DoJ2_1fY.js → catalog-UNxalJg4.js} +0 -0
- /package/dist/{chatBot-flH0_FCC.js → chatBot-rvlTLli1.js} +0 -0
- /package/dist/{components-DqInG_Nm.js → components-BlwSZhpD.js} +0 -0
- /package/dist/{crud-BCrruPIb.js → crud-CKoJlzZC.js} +0 -0
- /package/dist/{crudBrowser-BG7BYo4m.js → crudBrowser-DX85rr54.js} +0 -0
- /package/dist/{customIcons-D0bpSyKS.js → customIcons-C708lO6o.js} +0 -0
- /package/dist/{dashboard-DfDQY2Uz.js → entities-Ciil7n1F.js} +0 -0
- /package/dist/{entities-B32Z17Rb.js → floorplanFunctions-CrklH06W.js} +0 -0
- /package/dist/{floorplanFunctions-QEXAOJwy.js → forms-80OJxgty.js} +0 -0
- /package/dist/{forms-DJnB4tsd.js → functions-Hd-GdWRI.js} +0 -0
- /package/dist/{functions-MWuMR-lY.js → hocs-BBwSfA6i.js} +0 -0
- /package/dist/{hocs-1cIHPs7M.js → hooks-BA76hHir.js} +0 -0
- /package/dist/{hooks-BJgvHLxQ.js → iconLibrary-CJx5yVFL.js} +0 -0
- /package/dist/{iconLibrary-C8sePp_X.js → input-Cjsjq3RH.js} +0 -0
- /package/dist/{input-B3JblbZF.js → leafletMaps-Dap7ksrP.js} +0 -0
- /package/dist/{inquiryBar-CTeb-8eD.js → maintenanceEngine--CHGMGJK.js} +0 -0
- /package/dist/{leafletMaps-DKJcEBvd.js → menus-CORA9-y-.js} +0 -0
- /package/dist/{maintenanceEngine-CpZ9tfB0.js → menus-F0wpxN7s.js} +0 -0
- /package/dist/{menus-B-Xz-Ggy.js → modified-CBLRolfb.js} +0 -0
- /package/dist/{menus-QHvrjl6w.js → mttMainTimeline-DM0dra3i.js} +0 -0
- /package/dist/{modified-Bg5LeKdV.js → mttSummary-BpsBHjLu.js} +0 -0
- /package/dist/{mttMainTimeline-DgGEegXs.js → page-CTPx1eMF.js} +0 -0
- /package/dist/{mttSummary-Dbl2ZLl1.js → provider-YG1Pp4jc.js} +0 -0
- /package/dist/{page-BGtqWrDb.js → redirect-DxcAuEfC.js} +0 -0
- /package/dist/{provider-D1EvAE26.js → rules-B-ksPdxk.js} +0 -0
- /package/dist/{redirect-DEombgSz.js → search-D_aYYsru.js} +0 -0
- /package/dist/{rules-Bbd-Yg6p.js → sidebar-CP5i0Zg7.js} +0 -0
- /package/dist/{search-D3z7GAO_.js → storage-C7L-23mT.js} +0 -0
- /package/dist/{search-YPsWhV_L.js → style-9iKHS-Wi.js} +0 -0
- /package/dist/{sidebar-C96Z7xFg.js → tableBrowser-W5DVnX-k.js} +0 -0
- /package/dist/{storage-Dxdn7n1x.js → tenant-DalfWrIm.js} +0 -0
- /package/dist/{style-C58TNESf.js → tree-TL7VR3tx.js} +0 -0
- /package/dist/{tableBrowser-_iJW5ftf.js → ui-HqpIaxXX.js} +0 -0
- /package/dist/{tenant-Dv4CtN1T.js → ui-en5KNlmI.js} +0 -0
- /package/dist/{tree-BE3grkxa.js → uploader-DcYXiktt.js} +0 -0
- /package/dist/{ui-Dk8IEfOq.js → utilityBar-CFHi-LbU.js} +0 -0
- /package/dist/{ui-_KR24HU9.js → utils-CCCTU1x9.js} +0 -0
- /package/dist/{uploader-CslKfeTU.js → utils-DNdEZ0qE.js} +0 -0
- /package/dist/{utilityBar-efXsIsm6.js → virtualBrowser-CCd9f5nk.js} +0 -0
- /package/dist/{utils-Ccah2Nvr.js → workflow-CTqF0deg.js} +0 -0
- /package/dist/{utils-K0OjqNhn.js → wrappers-DZvJVCmc.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudBrowserContainer-BCn9YKhz.js","names":["uuid"],"sources":["../src/maintenanceEngine/crudBrowser/crudHelper.ts","../src/maintenanceEngine/crudBrowser/CrudTableColumnDefs.js","../src/maintenanceEngine/crudBrowser/CrudBrowserContainer.jsx"],"sourcesContent":["export function mapDotNetTypeToAgGridType(\n type: string\n): 'text' | 'number' | 'boolean' | 'dateString' | 'dateTimeString' | 'object' {\n const normalized = type.replace(/\\?$/, '').trim().toLowerCase();\n\n if (\n normalized === 'byte' ||\n normalized === 'short' ||\n normalized === 'int' ||\n normalized === 'long' ||\n normalized === 'float' ||\n normalized === 'double' ||\n normalized === 'decimal'\n ) {\n return 'number';\n }\n\n if (normalized === 'string' || normalized === 'guid') {\n return 'text';\n }\n\n if (normalized === 'bool' || normalized === 'boolean') {\n return 'boolean';\n }\n\n if (normalized === 'date') {\n return 'dateString';\n }\n\n if (normalized === 'datetime') {\n return 'dateTimeString';\n }\n\n if (normalized.startsWith('dictionary') || normalized === 'object') {\n return 'object';\n }\n\n // fallback default\n return 'text';\n}\n","import { toTitleCase } from '../../utilities/input/StringUtilities';\nimport { mapDotNetTypeToAgGridType } from './crudHelper';\n\nexport const CrudTableColumnDefs = (entityAttributes, actionList) => {\n let columnDefs =\n entityAttributes?.reduce((defs, element) => {\n //skip is hidden through maintenance config\n if (\n element?.extendedProperties?.udpFieldProperties?.maintenanceConfig\n ?.hidden === true\n ) {\n return defs;\n }\n //skip if business object key\n if (element?.name === 'businessObjectKey') {\n return defs;\n }\n\n if (!element?.extendedProperties?.childEntity) {\n const columnHeader =\n element?.extendedProperties?.udpFieldProperties?.displayName ||\n element?.name;\n\n const columnHeaderName = toTitleCase(columnHeader);\n const lookupId =\n element?.extendedProperties?.lookup ||\n element?.extendedProperties?.udpFieldProperties?.maintainenceConfig\n ?.lookup;\n\n let def = {\n headerName: columnHeaderName,\n field: element?.name.charAt(0).toLowerCase() + element?.name.slice(1),\n cellDataType: mapDotNetTypeToAgGridType(element?.type),\n filter: element?.extendedProperties?.searchable,\n sortable: element?.extendedProperties?.orderable,\n hide: element?.extendedProperties?.udpFieldProperties?.maintainenceConfig?.hidden,\n context: {\n lookupId: lookupId,\n ...element\n }\n };\n\n defs.push(def);\n }\n return defs;\n }, []) || [];\n\n columnDefs.push({\n headerName: 'Actions',\n field: 'actions',\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList: actionList\n }\n });\n\n return columnDefs;\n};\n","import React, { useMemo, useEffect, useCallback } from 'react';\nimport { CrudTableColumnDefs } from './CrudTableColumnDefs';\nimport { LookupEntitiesIcon } from '@fluentui/react-icons';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { LookupTypeIdEnums, UdpEnums } from '../../enums/unitySystemEnums';\nimport { toTitleCase } from '../../utilities/input/StringUtilities';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { v4 as uuid } from 'uuid';\nimport { SearchMethodUdpGrid } from '../../UI/templates/newGrid/SearchMethodUdpGrid';\n\nconst GRID_ID = '4be3be45-1930-4ab9-b7b7-0c0fa3e30490';\n\nexport const CrudBrowserContainer = (props) => {\n const {\n actionList,\n onCreate,\n entityAttributes,\n foreignKeyData,\n promotedEntity,\n apiMethod,\n filterElements,\n setAlertWarnings,\n gridApiCallback,\n showBackToTableBrowser,\n ...other\n } = props;\n\n const { t } = useTranslation();\n const history = useHistory();\n\n const entityName = useMemo(() => {\n return promotedEntity?.entityName;\n }, [promotedEntity]);\n\n const commonEntityName = useMemo(() => {\n if (!entityName) return '';\n return toTitleCase(getSanitizedName(entityName));\n }, [entityName]);\n\n const handleGoToTableBrowser = useCallback(() => {\n history.push({\n pathname: `/tableBrowser`\n });\n }, [history]);\n\n const secondaryActionButtons = useMemo(() => {\n if (showBackToTableBrowser) {\n return [\n {\n label: t('Table Browser'),\n iconName: 'arrowLeft16',\n onClick: handleGoToTableBrowser\n }\n ];\n } else {\n return [];\n }\n }, [handleGoToTableBrowser, showBackToTableBrowser, t]);\n\n const virtualActions = useMemo(() => {\n return [\n // Action for opening Virtual Configuration\n {\n id: 3,\n title: t('Open Virtual Table'),\n icon: LookupEntitiesIcon,\n loading: !!!foreignKeyData,\n onClick: (value) => {\n history.push({\n pathname: `/virtual/${value.id}`,\n search: `?entityName=${entityName}`,\n state: {\n value,\n promotedEntity,\n label: value.name\n }\n });\n },\n checkDisabled: (value) => value.typeId !== LookupTypeIdEnums.Lookup\n }\n ];\n }, [entityName, foreignKeyData, history, promotedEntity, t]);\n\n const jointActionList = useMemo(() => {\n if (!actionList || actionList?.length === 0) {\n return null;\n }\n // Check if it's a udp lookup entity\n if (\n getSanitizedName(entityName?.toLowerCase()) ===\n UdpEnums.Udp_Lookup.toLowerCase()\n ) {\n return [...actionList, ...virtualActions];\n }\n return [...actionList];\n }, [actionList, entityName, virtualActions]);\n\n const columnDefs = useMemo(() => {\n if (entityAttributes && jointActionList) {\n return CrudTableColumnDefs(entityAttributes, jointActionList);\n }\n }, [entityAttributes, jointActionList]);\n\n useEffect(() => {\n if (promotedEntity) {\n if (!promotedEntity?.unityBaseSearchMethod?.apiMethodId) {\n const searchMethodWarning = {\n id: uuid(),\n message: `${promotedEntity.entityName}'s Search method needs to be promoted`\n };\n setAlertWarnings &&\n setAlertWarnings((prevState) => [...prevState, searchMethodWarning]);\n }\n }\n }, [promotedEntity, setAlertWarnings]);\n\n const searchMethodConfig = useMemo(() => {\n return {\n apiMethodId: promotedEntity?.unityBaseSearchMethod?.apiMethodId,\n customSearchObject: filterElements\n };\n }, [promotedEntity?.unityBaseSearchMethod?.apiMethodId, filterElements]);\n\n const gridFunctions = useMemo(() => {\n return [\n { name: 'openSavedViews' },\n { name: 'agGridSizeColumnsToFit' },\n { name: 'agGridAutoSizeColumns' },\n { name: 'agGridResetColumns' },\n { name: 'agGridHideShowColumns' }\n ];\n }, []);\n\n return (\n <SearchMethodUdpGrid\n columnDefs={columnDefs}\n searchMethodConfig={searchMethodConfig}\n gridHeaderConfig={{\n title: commonEntityName,\n primaryActionButton: {\n label: 'Add',\n iconName: 'add',\n onClick: onCreate\n },\n secondaryActionButtons: secondaryActionButtons\n }}\n gridId={GRID_ID}\n entityName={commonEntityName}\n gridOptions={{\n pagination: true,\n ...other\n }}\n gridApiCallback={gridApiCallback}\n gridFunctions={gridFunctions}\n />\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CrudBrowserContainer-CwD2cxD0.js","names":["uuid"],"sources":["../src/maintenanceEngine/crudBrowser/crudHelper.ts","../src/maintenanceEngine/crudBrowser/CrudTableColumnDefs.js","../src/maintenanceEngine/crudBrowser/CrudBrowserContainer.jsx"],"sourcesContent":["export function mapDotNetTypeToAgGridType(\n type: string\n): 'text' | 'number' | 'boolean' | 'dateString' | 'dateTimeString' | 'object' {\n const normalized = type.replace(/\\?$/, '').trim().toLowerCase();\n\n if (\n normalized === 'byte' ||\n normalized === 'short' ||\n normalized === 'int' ||\n normalized === 'long' ||\n normalized === 'float' ||\n normalized === 'double' ||\n normalized === 'decimal'\n ) {\n return 'number';\n }\n\n if (normalized === 'string' || normalized === 'guid') {\n return 'text';\n }\n\n if (normalized === 'bool' || normalized === 'boolean') {\n return 'boolean';\n }\n\n if (normalized === 'date') {\n return 'dateString';\n }\n\n if (normalized === 'datetime') {\n return 'dateTimeString';\n }\n\n if (normalized.startsWith('dictionary') || normalized === 'object') {\n return 'object';\n }\n\n // fallback default\n return 'text';\n}\n","import { toTitleCase } from '../../utilities/input/StringUtilities';\nimport { mapDotNetTypeToAgGridType } from './crudHelper';\n\nexport const CrudTableColumnDefs = (entityAttributes, actionList) => {\n let columnDefs =\n entityAttributes?.reduce((defs, element) => {\n //skip is hidden through maintenance config\n if (\n element?.extendedProperties?.udpFieldProperties?.maintenanceConfig\n ?.hidden === true\n ) {\n return defs;\n }\n //skip if business object key\n if (element?.name === 'businessObjectKey') {\n return defs;\n }\n\n if (!element?.extendedProperties?.childEntity) {\n const columnHeader =\n element?.extendedProperties?.udpFieldProperties?.displayName ||\n element?.name;\n\n const columnHeaderName = toTitleCase(columnHeader);\n const lookupId =\n element?.extendedProperties?.lookup ||\n element?.extendedProperties?.udpFieldProperties?.maintainenceConfig\n ?.lookup;\n\n let def = {\n headerName: columnHeaderName,\n field: element?.name.charAt(0).toLowerCase() + element?.name.slice(1),\n cellDataType: mapDotNetTypeToAgGridType(element?.type),\n filter: element?.extendedProperties?.searchable,\n sortable: element?.extendedProperties?.orderable,\n hide: element?.extendedProperties?.udpFieldProperties?.maintainenceConfig?.hidden,\n context: {\n lookupId: lookupId,\n ...element\n }\n };\n\n defs.push(def);\n }\n return defs;\n }, []) || [];\n\n columnDefs.push({\n headerName: 'Actions',\n field: 'actions',\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList: actionList\n }\n });\n\n return columnDefs;\n};\n","import React, { useMemo, useEffect, useCallback } from 'react';\nimport { CrudTableColumnDefs } from './CrudTableColumnDefs';\nimport { LookupEntitiesIcon } from '@fluentui/react-icons';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { LookupTypeIdEnums, UdpEnums } from '../../enums/unitySystemEnums';\nimport { toTitleCase } from '../../utilities/input/StringUtilities';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { v4 as uuid } from 'uuid';\nimport { SearchMethodUdpGrid } from '../../UI/templates/newGrid/SearchMethodUdpGrid';\n\nconst GRID_ID = '4be3be45-1930-4ab9-b7b7-0c0fa3e30490';\n\nexport const CrudBrowserContainer = (props) => {\n const {\n actionList,\n onCreate,\n entityAttributes,\n foreignKeyData,\n promotedEntity,\n apiMethod,\n filterElements,\n setAlertWarnings,\n gridApiCallback,\n showBackToTableBrowser,\n ...other\n } = props;\n\n const { t } = useTranslation();\n const history = useHistory();\n\n const entityName = useMemo(() => {\n return promotedEntity?.entityName;\n }, [promotedEntity]);\n\n const commonEntityName = useMemo(() => {\n if (!entityName) return '';\n return toTitleCase(getSanitizedName(entityName));\n }, [entityName]);\n\n const handleGoToTableBrowser = useCallback(() => {\n history.push({\n pathname: `/tableBrowser`\n });\n }, [history]);\n\n const secondaryActionButtons = useMemo(() => {\n if (showBackToTableBrowser) {\n return [\n {\n label: t('Table Browser'),\n iconName: 'arrowLeft16',\n onClick: handleGoToTableBrowser\n }\n ];\n } else {\n return [];\n }\n }, [handleGoToTableBrowser, showBackToTableBrowser, t]);\n\n const virtualActions = useMemo(() => {\n return [\n // Action for opening Virtual Configuration\n {\n id: 3,\n title: t('Open Virtual Table'),\n icon: LookupEntitiesIcon,\n loading: !!!foreignKeyData,\n onClick: (value) => {\n history.push({\n pathname: `/virtual/${value.id}`,\n search: `?entityName=${entityName}`,\n state: {\n value,\n promotedEntity,\n label: value.name\n }\n });\n },\n checkDisabled: (value) => value.typeId !== LookupTypeIdEnums.Lookup\n }\n ];\n }, [entityName, foreignKeyData, history, promotedEntity, t]);\n\n const jointActionList = useMemo(() => {\n if (!actionList || actionList?.length === 0) {\n return null;\n }\n // Check if it's a udp lookup entity\n if (\n getSanitizedName(entityName?.toLowerCase()) ===\n UdpEnums.Udp_Lookup.toLowerCase()\n ) {\n return [...actionList, ...virtualActions];\n }\n return [...actionList];\n }, [actionList, entityName, virtualActions]);\n\n const columnDefs = useMemo(() => {\n if (entityAttributes && jointActionList) {\n return CrudTableColumnDefs(entityAttributes, jointActionList);\n }\n }, [entityAttributes, jointActionList]);\n\n useEffect(() => {\n if (promotedEntity) {\n if (!promotedEntity?.unityBaseSearchMethod?.apiMethodId) {\n const searchMethodWarning = {\n id: uuid(),\n message: `${promotedEntity.entityName}'s Search method needs to be promoted`\n };\n setAlertWarnings &&\n setAlertWarnings((prevState) => [...prevState, searchMethodWarning]);\n }\n }\n }, [promotedEntity, setAlertWarnings]);\n\n const searchMethodConfig = useMemo(() => {\n return {\n apiMethodId: promotedEntity?.unityBaseSearchMethod?.apiMethodId,\n customSearchObject: {filterElements: filterElements}\n };\n }, [promotedEntity?.unityBaseSearchMethod?.apiMethodId, filterElements]);\n\n const gridFunctions = useMemo(() => {\n return [\n { name: 'openSavedViews' },\n { name: 'agGridSizeColumnsToFit' },\n { name: 'agGridAutoSizeColumns' },\n { name: 'agGridResetColumns' },\n { name: 'agGridHideShowColumns' }\n ];\n }, []);\n\n return (\n <SearchMethodUdpGrid\n columnDefs={columnDefs}\n searchMethodConfig={searchMethodConfig}\n gridHeaderConfig={{\n title: commonEntityName,\n primaryActionButton: {\n label: 'Add',\n iconName: 'add',\n onClick: onCreate\n },\n secondaryActionButtons: secondaryActionButtons\n }}\n gridId={GRID_ID}\n entityName={commonEntityName}\n gridOptions={{\n pagination: true,\n ...other\n }}\n gridApiCallback={gridApiCallback}\n gridFunctions={gridFunctions}\n />\n );\n};\n"],"mappings":"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"}
|
|
@@ -11,8 +11,8 @@ import { t as useCrudActions } from "./crudActions-CehAicQU.js";
|
|
|
11
11
|
import { N as UdpEnums, a as EntityAttributeEnums, n as CardinalityTypeEnums } from "./unitySystemEnums-C3qeqk7V.js";
|
|
12
12
|
import { i as executeQueryWithParameters } from "./methodUtils-DwkBQ6fj.js";
|
|
13
13
|
import { t as usePromotedMethodEntity } from "./usePromotedMethodEntity-Dw56T1IV.js";
|
|
14
|
-
import { n as useDefaultFormValues_default } from "./useDefaultFormValues-
|
|
15
|
-
import { t as TagEnums } from "./tagEnums-
|
|
14
|
+
import { n as useDefaultFormValues_default } from "./useDefaultFormValues-DFnzUcHv.js";
|
|
15
|
+
import { t as TagEnums } from "./tagEnums-BHtWD8NV.js";
|
|
16
16
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
17
17
|
import { Typography, makeStyles } from "@material-ui/core";
|
|
18
18
|
import { useForm } from "react-final-form";
|
|
@@ -345,4 +345,4 @@ CrudForm.propTypes = {
|
|
|
345
345
|
|
|
346
346
|
//#endregion
|
|
347
347
|
export { UdpCrudFormFields as n, CrudForm as t };
|
|
348
|
-
//# sourceMappingURL=CrudForm-
|
|
348
|
+
//# sourceMappingURL=CrudForm-CN5vjshw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudForm-Bb9BvEVm.js","names":["Field","useDefaultFormValues","schemaAttribute","sanitizedName","fkData","Form"],"sources":["../src/UI/forms/UdpCrudFormFields.jsx","../src/UI/forms/CrudForm.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useMemo, useEffect } from 'react';\nimport { Field } from '../../utilities/form';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { FluentTextFieldAutoComplete } from '../inputs/textField/FluentTextFieldAutoComplete';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useForm } from 'react-final-form';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { TagEnums } from '../../enums/tagEnums';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nexport const UdpCrudFormFields = (props) => {\n const { entityName, formData, existingTagAssociation } = props;\n const form = useForm();\n const user = useUser();\n const sanitizedEntityName = getSanitizedName(entityName);\n const IS_FOR_LOOKUP =\n sanitizedEntityName?.toLowerCase() === UdpEnums.Udp_Lookup.toLowerCase();\n const IS_FOR_TAGS = ![\n TagEnums.TagAssociationSanitizedName.toLowerCase(),\n TagEnums.TagSanitizedName.toLowerCase(),\n TagEnums.TagTypeSanitizedName.toLowerCase()\n ].includes(sanitizedEntityName?.toLowerCase());\n\n const { data: udpObjectInfoEntity } = usePromotedMethodEntity(\n 'udpObjectInfo',\n true\n );\n const { data: udpTagEntity } = usePromotedMethodEntity('udpTag', true);\n\n const [{ data: udpObjectInfoList }, fetchUdpObjectInfoList] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${udpObjectInfoEntity?.unityBaseGetAllMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const [{ data: udpTagList }, fetchUdpTagList] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${udpTagEntity?.unityBaseGetAllMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const initialTagValues = useMemo(() => {\n let existingTagIds = existingTagAssociation?.map((tag) => tag.id);\n let tagValues = udpTagList\n ? udpTagList.filter((tag) => existingTagIds.includes(tag.id))\n : [];\n return tagValues;\n }, [existingTagAssociation, udpTagList]);\n\n const initialDomainNameValue = useMemo(() => {\n let domainName = formData?.domainName;\n if (domainName && udpObjectInfoList) {\n domainName = getSanitizedName(domainName);\n return udpObjectInfoList.find(\n (updObjectInfo) => updObjectInfo.sanitizedName === domainName\n );\n }\n return '';\n }, [formData, udpObjectInfoList]);\n\n const lookupFields = useMemo(() => {\n return (\n <Field\n component={FluentTextFieldAutoComplete}\n initialValue={initialDomainNameValue}\n label={'Domain Name'}\n name={'domainName'}\n fullWidth\n variant='outlined'\n margin='normal'\n options={udpObjectInfoList || []}\n optionKey={'sanitizedName'}\n style={{ marginTop: 8 }}\n />\n );\n }, [udpObjectInfoList, initialDomainNameValue]);\n\n const tagFields = useMemo(() => {\n return (\n <Field\n component={FluentTextFieldAutoComplete}\n initialValue={initialTagValues}\n isMultiple\n label={'Tags'}\n name={'udpTags'}\n fullWidth\n variant='outlined'\n margin='normal'\n options={udpTagList || []}\n optionKey={'name'}\n style={{ marginTop: 8 }}\n />\n );\n }, [udpTagList, initialTagValues]);\n\n useEffect(() => {\n if (udpObjectInfoEntity?.unityBaseGetAllMethod && IS_FOR_LOOKUP) {\n fetchUdpObjectInfoList({ data: {} });\n }\n }, [udpObjectInfoEntity, fetchUdpObjectInfoList, IS_FOR_LOOKUP]);\n\n useEffect(() => {\n form.change('domainName', initialDomainNameValue);\n }, [form, initialDomainNameValue]);\n\n useEffect(() => {\n form.change('udpTags', initialTagValues);\n }, [form, initialTagValues]);\n\n useEffect(() => {\n if (udpTagEntity?.unityBaseGetAllMethod) {\n fetchUdpTagList({ data: {} });\n }\n }, [udpTagEntity, fetchUdpTagList]);\n\n return (\n <>\n {IS_FOR_LOOKUP ? lookupFields : null}\n {IS_FOR_TAGS ? tagFields : null}\n </>\n );\n};\n\nUdpCrudFormFields.propTypes = {\n /**\n * Entity name for promoted entity\n */\n entityName: PropTypes.string\n};\n","import { makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport { Form, FormButtons, SubmitButton } from '../../utilities/form';\nimport { useCrudActions } from '../../hooks/crudActions';\nimport { toLowerFirstChar } from '../../utilities/input/StringUtilities';\nimport useDefaultFormValues from '../../utilities/crud/useDefaultFormValues';\nimport {\n getPathObject,\n getPrimaryKeyValues\n} from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport {\n CardinalityTypeEnums,\n EntityAttributeEnums,\n UdpEnums\n} from '../../enums/unitySystemEnums';\nimport { UdpCrudFormFields } from './UdpCrudFormFields';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { executeQueryWithParameters } from '../../udp/utilities/methodUtils';\nimport { differenceWith } from 'lodash';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { TagEnums } from '../../enums/tagEnums';\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 CrudForm = (props) => {\n const {\n entityAttributes,\n udpFieldInfos,\n foreignKeyData,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n isNewEntry,\n entityData,\n entityName\n } = props;\n const { renderInputByFieldType } = useCrudActions();\n\n const [fkData, setFkData] = useState(\n foreignKeyData?.map((fkd) => ({ ...fkd }))\n );\n const { data: promotedEntity } = usePromotedMethodEntity(entityName);\n const { data: udpTagAssocPromotedEntity } = usePromotedMethodEntity(\n 'UdpTagAssociation',\n true\n );\n const { defaultFormValues } = useDefaultFormValues(entityAttributes);\n const [crudTableFormData, setCrudTableFormData] = useState(\n crudTableEditionData || defaultFormValues\n );\n const [existingTagAssociation, setExistingTagAssociation] = useState([]);\n const classes = useStyles();\n\n const { handleErrorSnackbar } = useHandleAxiosSnackbar();\n\n const primaryKeyValues = useMemo(\n () => getPrimaryKeyValues(entityAttributes, crudTableEditionData),\n [entityAttributes, crudTableEditionData]\n );\n\n const getEntityFull = useCallback(async () => {\n if (\n !promotedEntity?.unityBaseGetFullMethod?.apiMethodId ||\n !promotedEntity?.unityBaseUpdateMethod?.pathParameters\n ) {\n return null;\n }\n\n const pathObject = getPathObject(\n promotedEntity.unityBaseUpdateMethod.pathParameters,\n primaryKeyValues\n );\n\n let data = { requestBody: {} };\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: {} };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n promotedEntity.unityBaseGetFullMethod.apiMethodId\n ).catch((res) => {\n console.error(res);\n });\n\n if (response?.status === 200) {\n return response.data;\n } else {\n console.error(\n `Could not retrieve full data for ${promotedEntity?.entityName}`\n );\n }\n return null;\n }, [promotedEntity, primaryKeyValues]);\n\n // we'll need this to determine which property names are used as keys for many-to-many\n const manyToManyPropertyList = useMemo(() => {\n if (!entityAttributes?.length) return [];\n const mtmPropertyList = new Set();\n entityAttributes.forEach((attr) => {\n if (attr?.extendedProperties?.childEntity) {\n Object.keys(attr.extendedProperties.childEntityAssoc || {}).length &&\n attr.extendedProperties.childEntityAssoc.Cardinality ===\n CardinalityTypeEnums.Many_To_Many &&\n attr.extendedProperties.childEntityAssoc.Keys.forEach((value, i) => {\n const name = value.split(',')[0];\n if (name) {\n // check name string: if 1 word, lowercase. if 2 words, lower first char\n mtmPropertyList.add(name.toLowerCase());\n }\n });\n }\n });\n return mtmPropertyList;\n }, [entityAttributes]);\n\n const getJoiningObj = (schemaAttribute, ceAttributes) => {\n return ceAttributes.find(\n (ceAttr) =>\n Object.keys(ceAttr?.extendedProperties?.childEntityAssoc || {})\n .length &&\n ceAttr.extendedProperties.childEntityAssoc.Keys.find((a) => {\n const fieldId = a.split(',')[0];\n return (\n (/^[A-Z]*$/.test(fieldId)\n ? fieldId.toLowerCase()\n : toLowerFirstChar(fieldId)) ===\n toLowerFirstChar(schemaAttribute.name)\n );\n })\n );\n };\n\n const renderAttribute = useCallback(\n (schemaAttribute, fieldInfo) => {\n let render = !fieldInfo?.isIdentity;\n\n if (\n schemaAttribute?.extendedProperties?.identifier &&\n fieldInfo?.dataType === 'Guid'\n ) {\n render = false;\n }\n entityAttributes.every((schemaAttribute, index) => {\n const ceAttributes = entityAttributes.filter(\n (ea) =>\n ea.extendedProperties.childEntity &&\n ea.extendedProperties.childEntityAssoc.Cardinality ===\n CardinalityTypeEnums.Many_To_Many &&\n ea.extendedProperties.childEntityAssoc.IsJoiningObject\n );\n\n if (getJoiningObj(schemaAttribute, ceAttributes)) {\n render = true;\n return false;\n }\n return true;\n });\n\n return render;\n },\n [entityAttributes]\n );\n\n // function that helps transform form data for entites like UdpLookup, UdpTagType, UdpShortcutContent\n const transformDataForUdpMaintenance = useCallback(\n (values) => {\n const sanitizedName = getSanitizedName(entityName?.toLowerCase());\n // Current entity to modify is a UdpLookup\n if (sanitizedName === UdpEnums.Udp_Lookup.toLowerCase()) {\n const attributeName = toLowerFirstChar(\n EntityAttributeEnums.Domain_Name\n );\n let domainName = values[attributeName];\n const modelNameSpaceStructure = domainName?.namespaceStructure?.model;\n const sanitizedName = domainName?.sanitizedName;\n values[\n toLowerFirstChar(EntityAttributeEnums.Is_Product_Lookup)\n ] = false;\n if (modelNameSpaceStructure) {\n values[\n attributeName\n ] = `${modelNameSpaceStructure}.Models.${sanitizedName}`;\n } else {\n values[attributeName] = '';\n }\n } else if (\n sanitizedName === TagEnums.TagTypeSanitizedName.toLowerCase()\n ) {\n values[toLowerFirstChar(EntityAttributeEnums.User_Defined)] = true;\n } else if (\n sanitizedName === UdpEnums.Udp_Shortcut_Content.toLowerCase()\n ) {\n values[\n toLowerFirstChar(EntityAttributeEnums.Is_Product_ShortcutContent)\n ] = false;\n }\n },\n [entityName]\n );\n\n const tagAssociationComparator = (ta1, ta2) => {\n return ta1?.id === ta2?.id;\n };\n\n // Callback to handle associating tags to business objects\n const handleTagAssociation = useCallback(\n async (values, businessObjectKey) => {\n // Get the tagAssociation objects to delete\n const tagAssociationToDelete = differenceWith(\n existingTagAssociation,\n values?.udpTags,\n tagAssociationComparator\n );\n\n // Get the tagAssociation objects to create\n const tagAssociationToCreate = differenceWith(\n values?.udpTags,\n existingTagAssociation,\n tagAssociationComparator\n );\n\n const deleteTagAssociationApiMethod =\n udpTagAssocPromotedEntity?.unityBaseDeleteMethod;\n const createTagAssociationApiMethod =\n udpTagAssocPromotedEntity?.unityBaseCreateMethod;\n\n if (businessObjectKey) {\n if (deleteTagAssociationApiMethod) {\n const deletedPromises = [];\n tagAssociationToDelete.forEach((tagAssocToDelete) => {\n const data = {};\n data['{tagId}'] = tagAssocToDelete.id;\n data['{entityBusinessKey}'] = businessObjectKey;\n deletedPromises.push(\n executeQueryWithParameters(\n { data },\n deleteTagAssociationApiMethod.apiMethodId\n )\n );\n });\n\n await Promise.all(deletedPromises.map((p) => p.catch((e) => e))).then(\n (responses) => {\n if (responses.length !== deletedPromises.length) {\n console.warn(`Not all Tag Association deleted`);\n }\n }\n );\n } else {\n handleErrorSnackbar(\n null,\n 'Delete Tag Association Method Not Promoted'\n );\n }\n\n if (createTagAssociationApiMethod) {\n const createdPromises = [];\n tagAssociationToCreate.forEach((tagAssoc) => {\n const data = {\n requestBody: {\n tagId: tagAssoc.id,\n entityBusinessKey: businessObjectKey\n }\n };\n createdPromises.push(\n executeQueryWithParameters(\n { data },\n createTagAssociationApiMethod.apiMethodId\n )\n );\n });\n await Promise.all(createdPromises.map((p) => p.catch((e) => e))).then(\n (responses) => {\n responses.forEach((response) => {\n if (response.status === 200) {\n const entityBusinessKey = response.data.entityBusinessKey;\n const matchingTagAssociation = tagAssociationToCreate.find(\n (ta) => ta.value === entityBusinessKey\n );\n if (!matchingTagAssociation) {\n console.warn(\n `Tag Association not created for all file to entities`\n );\n }\n }\n });\n }\n );\n setExistingTagAssociation(values?.udpTags);\n } else {\n handleErrorSnackbar(\n null,\n 'Create Tag Association Method Not Promoted'\n );\n }\n }\n },\n [\n handleErrorSnackbar,\n existingTagAssociation,\n setExistingTagAssociation,\n udpTagAssocPromotedEntity\n ]\n );\n\n const handleSubmit = useCallback(\n async (values) => {\n let newTableData = {\n ...crudTableFormData,\n ...values\n };\n\n transformDataForUdpMaintenance(newTableData);\n\n const isNewRow = !crudTableEditionData;\n\n if (!isNewEntry) {\n // remove identifiers from object\n entityAttributes\n .filter((ea) => {\n const joiningObject = getJoiningObj(ea, entityAttributes);\n const fieldInfo = udpFieldInfos?.find(\n (fi) => fi?.name.toLowerCase() === ea?.name?.toLowerCase()\n );\n return (\n ea?.extendedProperties?.identifier &&\n fieldInfo?.isIdentity &&\n fieldInfo?.dataType !== 'Guid' &&\n (!joiningObject || joiningObject.extendedProperties?.childEntity)\n );\n })\n .forEach((ea) => {\n delete newTableData[ea.name];\n });\n }\n\n // transform values by fkData before creating/updating\n foreignKeyData.forEach((fkd) => {\n Object.keys(newTableData).forEach((key) => {\n if (key === fkd.fieldName) {\n const fkData = fkd.data.find(\n (d) => d.id === newTableData[key]?.id\n )?.id;\n if (fkData !== null) {\n newTableData[key] = fkData;\n }\n }\n });\n });\n\n let businessObjectKey = '';\n if (isNewRow) {\n if (onCreate) {\n const createdResponse = await onCreate(newTableData);\n if (createdResponse?.status === 200) {\n businessObjectKey = createdResponse?.data?.businessObjectKey;\n }\n }\n } else {\n if (onUpdate) {\n await onUpdate(newTableData, primaryKeyValues);\n businessObjectKey = newTableData?.businessObjectKey;\n }\n }\n if (businessObjectKey && values?.udpTags) {\n handleTagAssociation(values, businessObjectKey);\n }\n closeSideSheet && closeSideSheet();\n },\n [\n crudTableFormData,\n transformDataForUdpMaintenance,\n crudTableEditionData,\n isNewEntry,\n foreignKeyData,\n closeSideSheet,\n entityAttributes,\n onCreate,\n onUpdate,\n primaryKeyValues,\n handleTagAssociation\n ]\n );\n\n const shouldAttributeRenderField = useCallback(\n (schemaAttribute) => {\n const sanitizedName = getSanitizedName(entityName?.toLowerCase());\n if (\n sanitizedName === TagEnums.TagTypeSanitizedName.toLowerCase() &&\n schemaAttribute?.name ===\n toLowerFirstChar(EntityAttributeEnums.User_Defined)\n ) {\n return false;\n } else if (\n sanitizedName === UdpEnums.Udp_Shortcut_Content.toLowerCase() &&\n schemaAttribute?.name ===\n toLowerFirstChar(EntityAttributeEnums.Is_Product_ShortcutContent)\n ) {\n return false;\n } else if (\n sanitizedName === UdpEnums.Udp_Lookup.toLowerCase() &&\n schemaAttribute?.name ===\n toLowerFirstChar(EntityAttributeEnums.Is_Product_Lookup)\n ) {\n return false;\n }\n\n return true;\n },\n [entityName]\n );\n\n useEffect(() => {\n const getFullData = async () => {\n const fullEntityData = await getEntityFull();\n if (fullEntityData) {\n const filteredTags = fullEntityData.udpTags?.map(\n (tagAssoc) => tagAssoc.udpTagAssociationUdpTag\n );\n setExistingTagAssociation(filteredTags || []);\n }\n };\n if (promotedEntity && !isNewEntry) {\n getFullData();\n }\n }, [promotedEntity, getEntityFull, isNewEntry]);\n\n useEffect(() => {\n if (foreignKeyData) {\n setFkData(foreignKeyData?.map((fkd) => ({ ...fkd })));\n }\n }, [foreignKeyData]);\n\n return (\n <Form onSubmit={handleSubmit}>\n <div>\n {entityAttributes?.map((schemaAttribute, index) => {\n const fieldInfo = udpFieldInfos?.find(\n (fi) =>\n fi?.name.toLowerCase() === schemaAttribute?.name?.toLowerCase()\n );\n // If the field is an identity and is Updating form, we will make the field readOnly\n if (fieldInfo?.isPrimaryKey && !isNewEntry) {\n schemaAttribute.disabled = true;\n }\n if (fieldInfo?.isPrimaryKey && isNewEntry && !fieldInfo?.isIdentity) {\n schemaAttribute.disabled = false;\n }\n if (!shouldAttributeRenderField(schemaAttribute)) {\n return null;\n }\n return (\n renderAttribute(schemaAttribute, fieldInfo) && (\n <React.Fragment key={`${schemaAttribute.name}-${index}`}>\n <Typography variant='subtitle2' style={{ marginTop: 8 }}>\n {schemaAttribute.friendlyName}\n </Typography>\n {renderInputByFieldType(\n schemaAttribute,\n index,\n entityAttributes,\n fieldInfo,\n fkData,\n setFkData,\n crudTableFormData,\n classes,\n isNewEntry,\n entityData,\n manyToManyPropertyList\n )}\n </React.Fragment>\n )\n );\n })}\n <UdpCrudFormFields\n entityName={entityName}\n formData={crudTableFormData}\n existingTagAssociation={existingTagAssociation}\n />\n </div>\n\n <FormButtons>\n <SubmitButton\n id='udpRecord-CrudForm-Submit'\n udprecordid='udpRecord-CrudForm-Submit'\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\nCrudForm.propTypes = {\n /**\n * Entity attributes for selected entity within catalog\n */\n entityAttributes: PropTypes.array,\n /**\n * Foreign key data for selected entity within catalog\n */\n foreignKeyData: 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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CrudForm-CN5vjshw.js","names":["Field","useDefaultFormValues","schemaAttribute","sanitizedName","fkData","Form"],"sources":["../src/UI/forms/UdpCrudFormFields.jsx","../src/UI/forms/CrudForm.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useMemo, useEffect } from 'react';\nimport { Field } from '../../utilities/form';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { FluentTextFieldAutoComplete } from '../inputs/textField/FluentTextFieldAutoComplete';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useForm } from 'react-final-form';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { TagEnums } from '../../enums/tagEnums';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nexport const UdpCrudFormFields = (props) => {\n const { entityName, formData, existingTagAssociation } = props;\n const form = useForm();\n const user = useUser();\n const sanitizedEntityName = getSanitizedName(entityName);\n const IS_FOR_LOOKUP =\n sanitizedEntityName?.toLowerCase() === UdpEnums.Udp_Lookup.toLowerCase();\n const IS_FOR_TAGS = ![\n TagEnums.TagAssociationSanitizedName.toLowerCase(),\n TagEnums.TagSanitizedName.toLowerCase(),\n TagEnums.TagTypeSanitizedName.toLowerCase()\n ].includes(sanitizedEntityName?.toLowerCase());\n\n const { data: udpObjectInfoEntity } = usePromotedMethodEntity(\n 'udpObjectInfo',\n true\n );\n const { data: udpTagEntity } = usePromotedMethodEntity('udpTag', true);\n\n const [{ data: udpObjectInfoList }, fetchUdpObjectInfoList] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${udpObjectInfoEntity?.unityBaseGetAllMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const [{ data: udpTagList }, fetchUdpTagList] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${udpTagEntity?.unityBaseGetAllMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const initialTagValues = useMemo(() => {\n let existingTagIds = existingTagAssociation?.map((tag) => tag.id);\n let tagValues = udpTagList\n ? udpTagList.filter((tag) => existingTagIds.includes(tag.id))\n : [];\n return tagValues;\n }, [existingTagAssociation, udpTagList]);\n\n const initialDomainNameValue = useMemo(() => {\n let domainName = formData?.domainName;\n if (domainName && udpObjectInfoList) {\n domainName = getSanitizedName(domainName);\n return udpObjectInfoList.find(\n (updObjectInfo) => updObjectInfo.sanitizedName === domainName\n );\n }\n return '';\n }, [formData, udpObjectInfoList]);\n\n const lookupFields = useMemo(() => {\n return (\n <Field\n component={FluentTextFieldAutoComplete}\n initialValue={initialDomainNameValue}\n label={'Domain Name'}\n name={'domainName'}\n fullWidth\n variant='outlined'\n margin='normal'\n options={udpObjectInfoList || []}\n optionKey={'sanitizedName'}\n style={{ marginTop: 8 }}\n />\n );\n }, [udpObjectInfoList, initialDomainNameValue]);\n\n const tagFields = useMemo(() => {\n return (\n <Field\n component={FluentTextFieldAutoComplete}\n initialValue={initialTagValues}\n isMultiple\n label={'Tags'}\n name={'udpTags'}\n fullWidth\n variant='outlined'\n margin='normal'\n options={udpTagList || []}\n optionKey={'name'}\n style={{ marginTop: 8 }}\n />\n );\n }, [udpTagList, initialTagValues]);\n\n useEffect(() => {\n if (udpObjectInfoEntity?.unityBaseGetAllMethod && IS_FOR_LOOKUP) {\n fetchUdpObjectInfoList({ data: {} });\n }\n }, [udpObjectInfoEntity, fetchUdpObjectInfoList, IS_FOR_LOOKUP]);\n\n useEffect(() => {\n form.change('domainName', initialDomainNameValue);\n }, [form, initialDomainNameValue]);\n\n useEffect(() => {\n form.change('udpTags', initialTagValues);\n }, [form, initialTagValues]);\n\n useEffect(() => {\n if (udpTagEntity?.unityBaseGetAllMethod) {\n fetchUdpTagList({ data: {} });\n }\n }, [udpTagEntity, fetchUdpTagList]);\n\n return (\n <>\n {IS_FOR_LOOKUP ? lookupFields : null}\n {IS_FOR_TAGS ? tagFields : null}\n </>\n );\n};\n\nUdpCrudFormFields.propTypes = {\n /**\n * Entity name for promoted entity\n */\n entityName: PropTypes.string\n};\n","import { makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport { Form, FormButtons, SubmitButton } from '../../utilities/form';\nimport { useCrudActions } from '../../hooks/crudActions';\nimport { toLowerFirstChar } from '../../utilities/input/StringUtilities';\nimport useDefaultFormValues from '../../utilities/crud/useDefaultFormValues';\nimport {\n getPathObject,\n getPrimaryKeyValues\n} from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport {\n CardinalityTypeEnums,\n EntityAttributeEnums,\n UdpEnums\n} from '../../enums/unitySystemEnums';\nimport { UdpCrudFormFields } from './UdpCrudFormFields';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { executeQueryWithParameters } from '../../udp/utilities/methodUtils';\nimport { differenceWith } from 'lodash';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { TagEnums } from '../../enums/tagEnums';\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 CrudForm = (props) => {\n const {\n entityAttributes,\n udpFieldInfos,\n foreignKeyData,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n isNewEntry,\n entityData,\n entityName\n } = props;\n const { renderInputByFieldType } = useCrudActions();\n\n const [fkData, setFkData] = useState(\n foreignKeyData?.map((fkd) => ({ ...fkd }))\n );\n const { data: promotedEntity } = usePromotedMethodEntity(entityName);\n const { data: udpTagAssocPromotedEntity } = usePromotedMethodEntity(\n 'UdpTagAssociation',\n true\n );\n const { defaultFormValues } = useDefaultFormValues(entityAttributes);\n const [crudTableFormData, setCrudTableFormData] = useState(\n crudTableEditionData || defaultFormValues\n );\n const [existingTagAssociation, setExistingTagAssociation] = useState([]);\n const classes = useStyles();\n\n const { handleErrorSnackbar } = useHandleAxiosSnackbar();\n\n const primaryKeyValues = useMemo(\n () => getPrimaryKeyValues(entityAttributes, crudTableEditionData),\n [entityAttributes, crudTableEditionData]\n );\n\n const getEntityFull = useCallback(async () => {\n if (\n !promotedEntity?.unityBaseGetFullMethod?.apiMethodId ||\n !promotedEntity?.unityBaseUpdateMethod?.pathParameters\n ) {\n return null;\n }\n\n const pathObject = getPathObject(\n promotedEntity.unityBaseUpdateMethod.pathParameters,\n primaryKeyValues\n );\n\n let data = { requestBody: {} };\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: {} };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n promotedEntity.unityBaseGetFullMethod.apiMethodId\n ).catch((res) => {\n console.error(res);\n });\n\n if (response?.status === 200) {\n return response.data;\n } else {\n console.error(\n `Could not retrieve full data for ${promotedEntity?.entityName}`\n );\n }\n return null;\n }, [promotedEntity, primaryKeyValues]);\n\n // we'll need this to determine which property names are used as keys for many-to-many\n const manyToManyPropertyList = useMemo(() => {\n if (!entityAttributes?.length) return [];\n const mtmPropertyList = new Set();\n entityAttributes.forEach((attr) => {\n if (attr?.extendedProperties?.childEntity) {\n Object.keys(attr.extendedProperties.childEntityAssoc || {}).length &&\n attr.extendedProperties.childEntityAssoc.Cardinality ===\n CardinalityTypeEnums.Many_To_Many &&\n attr.extendedProperties.childEntityAssoc.Keys.forEach((value, i) => {\n const name = value.split(',')[0];\n if (name) {\n // check name string: if 1 word, lowercase. if 2 words, lower first char\n mtmPropertyList.add(name.toLowerCase());\n }\n });\n }\n });\n return mtmPropertyList;\n }, [entityAttributes]);\n\n const getJoiningObj = (schemaAttribute, ceAttributes) => {\n return ceAttributes.find(\n (ceAttr) =>\n Object.keys(ceAttr?.extendedProperties?.childEntityAssoc || {})\n .length &&\n ceAttr.extendedProperties.childEntityAssoc.Keys.find((a) => {\n const fieldId = a.split(',')[0];\n return (\n (/^[A-Z]*$/.test(fieldId)\n ? fieldId.toLowerCase()\n : toLowerFirstChar(fieldId)) ===\n toLowerFirstChar(schemaAttribute.name)\n );\n })\n );\n };\n\n const renderAttribute = useCallback(\n (schemaAttribute, fieldInfo) => {\n let render = !fieldInfo?.isIdentity;\n\n if (\n schemaAttribute?.extendedProperties?.identifier &&\n fieldInfo?.dataType === 'Guid'\n ) {\n render = false;\n }\n entityAttributes.every((schemaAttribute, index) => {\n const ceAttributes = entityAttributes.filter(\n (ea) =>\n ea.extendedProperties.childEntity &&\n ea.extendedProperties.childEntityAssoc.Cardinality ===\n CardinalityTypeEnums.Many_To_Many &&\n ea.extendedProperties.childEntityAssoc.IsJoiningObject\n );\n\n if (getJoiningObj(schemaAttribute, ceAttributes)) {\n render = true;\n return false;\n }\n return true;\n });\n\n return render;\n },\n [entityAttributes]\n );\n\n // function that helps transform form data for entites like UdpLookup, UdpTagType, UdpShortcutContent\n const transformDataForUdpMaintenance = useCallback(\n (values) => {\n const sanitizedName = getSanitizedName(entityName?.toLowerCase());\n // Current entity to modify is a UdpLookup\n if (sanitizedName === UdpEnums.Udp_Lookup.toLowerCase()) {\n const attributeName = toLowerFirstChar(\n EntityAttributeEnums.Domain_Name\n );\n let domainName = values[attributeName];\n const modelNameSpaceStructure = domainName?.namespaceStructure?.model;\n const sanitizedName = domainName?.sanitizedName;\n values[\n toLowerFirstChar(EntityAttributeEnums.Is_Product_Lookup)\n ] = false;\n if (modelNameSpaceStructure) {\n values[\n attributeName\n ] = `${modelNameSpaceStructure}.Models.${sanitizedName}`;\n } else {\n values[attributeName] = '';\n }\n } else if (\n sanitizedName === TagEnums.TagTypeSanitizedName.toLowerCase()\n ) {\n values[toLowerFirstChar(EntityAttributeEnums.User_Defined)] = true;\n } else if (\n sanitizedName === UdpEnums.Udp_Shortcut_Content.toLowerCase()\n ) {\n values[\n toLowerFirstChar(EntityAttributeEnums.Is_Product_ShortcutContent)\n ] = false;\n }\n },\n [entityName]\n );\n\n const tagAssociationComparator = (ta1, ta2) => {\n return ta1?.id === ta2?.id;\n };\n\n // Callback to handle associating tags to business objects\n const handleTagAssociation = useCallback(\n async (values, businessObjectKey) => {\n // Get the tagAssociation objects to delete\n const tagAssociationToDelete = differenceWith(\n existingTagAssociation,\n values?.udpTags,\n tagAssociationComparator\n );\n\n // Get the tagAssociation objects to create\n const tagAssociationToCreate = differenceWith(\n values?.udpTags,\n existingTagAssociation,\n tagAssociationComparator\n );\n\n const deleteTagAssociationApiMethod =\n udpTagAssocPromotedEntity?.unityBaseDeleteMethod;\n const createTagAssociationApiMethod =\n udpTagAssocPromotedEntity?.unityBaseCreateMethod;\n\n if (businessObjectKey) {\n if (deleteTagAssociationApiMethod) {\n const deletedPromises = [];\n tagAssociationToDelete.forEach((tagAssocToDelete) => {\n const data = {};\n data['{tagId}'] = tagAssocToDelete.id;\n data['{entityBusinessKey}'] = businessObjectKey;\n deletedPromises.push(\n executeQueryWithParameters(\n { data },\n deleteTagAssociationApiMethod.apiMethodId\n )\n );\n });\n\n await Promise.all(deletedPromises.map((p) => p.catch((e) => e))).then(\n (responses) => {\n if (responses.length !== deletedPromises.length) {\n console.warn(`Not all Tag Association deleted`);\n }\n }\n );\n } else {\n handleErrorSnackbar(\n null,\n 'Delete Tag Association Method Not Promoted'\n );\n }\n\n if (createTagAssociationApiMethod) {\n const createdPromises = [];\n tagAssociationToCreate.forEach((tagAssoc) => {\n const data = {\n requestBody: {\n tagId: tagAssoc.id,\n entityBusinessKey: businessObjectKey\n }\n };\n createdPromises.push(\n executeQueryWithParameters(\n { data },\n createTagAssociationApiMethod.apiMethodId\n )\n );\n });\n await Promise.all(createdPromises.map((p) => p.catch((e) => e))).then(\n (responses) => {\n responses.forEach((response) => {\n if (response.status === 200) {\n const entityBusinessKey = response.data.entityBusinessKey;\n const matchingTagAssociation = tagAssociationToCreate.find(\n (ta) => ta.value === entityBusinessKey\n );\n if (!matchingTagAssociation) {\n console.warn(\n `Tag Association not created for all file to entities`\n );\n }\n }\n });\n }\n );\n setExistingTagAssociation(values?.udpTags);\n } else {\n handleErrorSnackbar(\n null,\n 'Create Tag Association Method Not Promoted'\n );\n }\n }\n },\n [\n handleErrorSnackbar,\n existingTagAssociation,\n setExistingTagAssociation,\n udpTagAssocPromotedEntity\n ]\n );\n\n const handleSubmit = useCallback(\n async (values) => {\n let newTableData = {\n ...crudTableFormData,\n ...values\n };\n\n transformDataForUdpMaintenance(newTableData);\n\n const isNewRow = !crudTableEditionData;\n\n if (!isNewEntry) {\n // remove identifiers from object\n entityAttributes\n .filter((ea) => {\n const joiningObject = getJoiningObj(ea, entityAttributes);\n const fieldInfo = udpFieldInfos?.find(\n (fi) => fi?.name.toLowerCase() === ea?.name?.toLowerCase()\n );\n return (\n ea?.extendedProperties?.identifier &&\n fieldInfo?.isIdentity &&\n fieldInfo?.dataType !== 'Guid' &&\n (!joiningObject || joiningObject.extendedProperties?.childEntity)\n );\n })\n .forEach((ea) => {\n delete newTableData[ea.name];\n });\n }\n\n // transform values by fkData before creating/updating\n foreignKeyData.forEach((fkd) => {\n Object.keys(newTableData).forEach((key) => {\n if (key === fkd.fieldName) {\n const fkData = fkd.data.find(\n (d) => d.id === newTableData[key]?.id\n )?.id;\n if (fkData !== null) {\n newTableData[key] = fkData;\n }\n }\n });\n });\n\n let businessObjectKey = '';\n if (isNewRow) {\n if (onCreate) {\n const createdResponse = await onCreate(newTableData);\n if (createdResponse?.status === 200) {\n businessObjectKey = createdResponse?.data?.businessObjectKey;\n }\n }\n } else {\n if (onUpdate) {\n await onUpdate(newTableData, primaryKeyValues);\n businessObjectKey = newTableData?.businessObjectKey;\n }\n }\n if (businessObjectKey && values?.udpTags) {\n handleTagAssociation(values, businessObjectKey);\n }\n closeSideSheet && closeSideSheet();\n },\n [\n crudTableFormData,\n transformDataForUdpMaintenance,\n crudTableEditionData,\n isNewEntry,\n foreignKeyData,\n closeSideSheet,\n entityAttributes,\n onCreate,\n onUpdate,\n primaryKeyValues,\n handleTagAssociation\n ]\n );\n\n const shouldAttributeRenderField = useCallback(\n (schemaAttribute) => {\n const sanitizedName = getSanitizedName(entityName?.toLowerCase());\n if (\n sanitizedName === TagEnums.TagTypeSanitizedName.toLowerCase() &&\n schemaAttribute?.name ===\n toLowerFirstChar(EntityAttributeEnums.User_Defined)\n ) {\n return false;\n } else if (\n sanitizedName === UdpEnums.Udp_Shortcut_Content.toLowerCase() &&\n schemaAttribute?.name ===\n toLowerFirstChar(EntityAttributeEnums.Is_Product_ShortcutContent)\n ) {\n return false;\n } else if (\n sanitizedName === UdpEnums.Udp_Lookup.toLowerCase() &&\n schemaAttribute?.name ===\n toLowerFirstChar(EntityAttributeEnums.Is_Product_Lookup)\n ) {\n return false;\n }\n\n return true;\n },\n [entityName]\n );\n\n useEffect(() => {\n const getFullData = async () => {\n const fullEntityData = await getEntityFull();\n if (fullEntityData) {\n const filteredTags = fullEntityData.udpTags?.map(\n (tagAssoc) => tagAssoc.udpTagAssociationUdpTag\n );\n setExistingTagAssociation(filteredTags || []);\n }\n };\n if (promotedEntity && !isNewEntry) {\n getFullData();\n }\n }, [promotedEntity, getEntityFull, isNewEntry]);\n\n useEffect(() => {\n if (foreignKeyData) {\n setFkData(foreignKeyData?.map((fkd) => ({ ...fkd })));\n }\n }, [foreignKeyData]);\n\n return (\n <Form onSubmit={handleSubmit}>\n <div>\n {entityAttributes?.map((schemaAttribute, index) => {\n const fieldInfo = udpFieldInfos?.find(\n (fi) =>\n fi?.name.toLowerCase() === schemaAttribute?.name?.toLowerCase()\n );\n // If the field is an identity and is Updating form, we will make the field readOnly\n if (fieldInfo?.isPrimaryKey && !isNewEntry) {\n schemaAttribute.disabled = true;\n }\n if (fieldInfo?.isPrimaryKey && isNewEntry && !fieldInfo?.isIdentity) {\n schemaAttribute.disabled = false;\n }\n if (!shouldAttributeRenderField(schemaAttribute)) {\n return null;\n }\n return (\n renderAttribute(schemaAttribute, fieldInfo) && (\n <React.Fragment key={`${schemaAttribute.name}-${index}`}>\n <Typography variant='subtitle2' style={{ marginTop: 8 }}>\n {schemaAttribute.friendlyName}\n </Typography>\n {renderInputByFieldType(\n schemaAttribute,\n index,\n entityAttributes,\n fieldInfo,\n fkData,\n setFkData,\n crudTableFormData,\n classes,\n isNewEntry,\n entityData,\n manyToManyPropertyList\n )}\n </React.Fragment>\n )\n );\n })}\n <UdpCrudFormFields\n entityName={entityName}\n formData={crudTableFormData}\n existingTagAssociation={existingTagAssociation}\n />\n </div>\n\n <FormButtons>\n <SubmitButton\n id='udpRecord-CrudForm-Submit'\n udprecordid='udpRecord-CrudForm-Submit'\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\nCrudForm.propTypes = {\n /**\n * Entity attributes for selected entity within catalog\n */\n entityAttributes: PropTypes.array,\n /**\n * Foreign key data for selected entity within catalog\n */\n foreignKeyData: 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"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { N as UdpEnums } from "./unitySystemEnums-C3qeqk7V.js";
|
|
|
3
3
|
import { t as LayoutUnit } from "./LayoutUnit-DBF2yb1h.js";
|
|
4
4
|
import { t as useAxiosGet } from "./useAxiosGet-5JQU4EkT.js";
|
|
5
5
|
import { t as PageContainer } from "./PageContainer-D6cKoXv1.js";
|
|
6
|
-
import { t as CrudForm } from "./CrudForm-
|
|
6
|
+
import { t as CrudForm } from "./CrudForm-CN5vjshw.js";
|
|
7
7
|
import React, { useMemo } from "react";
|
|
8
8
|
import { Divider, makeStyles } from "@material-ui/core";
|
|
9
9
|
import { ConfigService } from "udp-react-stencil-component-library";
|
|
@@ -117,4 +117,4 @@ CrudTableSidePanel.propTypes = {
|
|
|
117
117
|
|
|
118
118
|
//#endregion
|
|
119
119
|
export { UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE as n, CrudTableSidePanel as t };
|
|
120
|
-
//# sourceMappingURL=CrudTableSidePanel-
|
|
120
|
+
//# sourceMappingURL=CrudTableSidePanel-DBg4P_v7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudTableSidePanel-
|
|
1
|
+
{"version":3,"file":"CrudTableSidePanel-DBg4P_v7.js","names":[],"sources":["../src/maintenanceEngine/entityAttributeActions.js","../src/maintenanceEngine/crudBrowser/CrudTableSidePanel.jsx"],"sourcesContent":["export const UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE = [\n 'businessObjectKey',\n 'clusterId',\n 'data',\n 'domainName'\n];\n","import { Divider, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { CrudForm } from '../../UI/forms/CrudForm';\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 { UdpEnums } from '../../enums/unitySystemEnums';\nimport { UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE } from '../entityAttributeActions';\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 CrudTableSidePanel = (props) => {\n const {\n entityAttributes,\n udpFieldInfos,\n foreignKeyData,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n isNewEntry,\n entityData,\n entityName\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 // LAA UNT-3026: Remove businessObjectKey field from the side panel crud form\n const filteredEntityAttributes = useMemo(() => {\n if (entityName?.toLowerCase().includes(UdpEnums.Udp_Lookup.toLowerCase())) {\n return entityAttributes.filter(\n (attr) => !UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE.includes(attr.name)\n );\n }\n return entityAttributes.filter((attr) => attr.name !== 'businessObjectKey');\n }, [entityAttributes, entityName]);\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 entityAttributes: filteredEntityAttributes,\n entityData: entityData,\n entityName: entityName,\n foreignKeyData: foreignKeyData,\n isNewEntry: isNewEntry,\n udpFieldInfos: udpFieldInfos,\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 <CrudForm\n entityAttributes={filteredEntityAttributes}\n udpFieldInfos={udpFieldInfos}\n foreignKeyData={foreignKeyData}\n crudTableEditionData={crudTableEditionData}\n closeSideSheet={closeSideSheet}\n onCreate={onCreate}\n onUpdate={onUpdate}\n isNewEntry={isNewEntry}\n entityData={entityData}\n entityName={entityName}\n />\n <div className={classes.divider}>\n <Divider />\n </div>\n </>\n );\n }\n }, [\n page,\n user,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n closeSideSheet,\n onCreate,\n onUpdate,\n filteredEntityAttributes,\n foreignKeyData,\n isNewEntry,\n entityData,\n classes,\n entityName,\n udpFieldInfos,\n crudTableEditionData\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\nCrudTableSidePanel.propTypes = {\n /**\n * Entity attributes for selected entity within catalog\n */\n entityAttributes: PropTypes.array,\n /**\n * Foreign key data for selected entity within catalog\n */\n foreignKeyData: 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"],"mappings":";;;;;;;;;;;;;;;AAAA,MAAa,uCAAuC;CAClD;CACA;CACA;CACA;CACD;;;;ACUD,MAAM,YAAY,YAAY,WAAW;CACvC,MAAM,EAAE;CACR,SAAS,EACP,WAAW,MAAM,QAAQ,EAAE,EAC5B;CACF,EAAE;AAEH,MAAM,eAAe;AAErB,MAAa,sBAAsB,UAAU;CAC3C,MAAM,EACJ,kBACA,eACA,gBACA,sBACA,gBACA,UACA,UACA,QACA,mBACA,yBACA,sBACA,mBACA,YACA,YACA,eACE;CACJ,MAAM,OAAO,SAAS;CACtB,MAAM,UAAU,WAAW;CAE3B,MAAM,CAAC,EAAE,MAAM,MAAM,SAAS,iBAAiB,YAC7C,cAAc,gBACd,QAAQ,UACR,EAAE,EACF,CAAC,CAAC,CAAC,QACH,MACD;CAED,MAAM,WAAW,cAAc;EAC7B,MAAM,cAAc,EAAE;AACtB,OAAK,IAAI,IAAI,GAAG,IAAI,cAAc,IAChC,aAAY,KACV,0DACE,oCAAC;GAAS,KAAK;GAAG,SAAQ;GAAO,WAAW,QAAQ;IAAY,EAChE,oCAAC,cAAW,MAAK,QAAQ,CACxB,CACJ;AAEH,SAAO;IACN,CAAC,QAAQ,CAAC;CAGb,MAAM,2BAA2B,cAAc;AAC7C,MAAI,YAAY,aAAa,CAAC,SAAS,SAAS,WAAW,aAAa,CAAC,CACvE,QAAO,iBAAiB,QACrB,SAAS,CAAC,qCAAqC,SAAS,KAAK,KAAK,CACpE;AAEH,SAAO,iBAAiB,QAAQ,SAAS,KAAK,SAAS,oBAAoB;IAC1E,CAAC,kBAAkB,WAAW,CAAC;CAElC,MAAM,mBAAmB,cAAc;AACrC,MAAI,KACF,QACE,oCAAC,eAAY,SAAS,gBACpB,oCAAC;GACO;GACN,KAAK;GACL,UAAU;GACV,cAAc;IACZ,QAAQ,MAAM;IACd,kBAAkB;IACN;IACA;IACI;IACJ;IACG;IACf,SAAS;IACU;IACM;IACH;IACN;IACG;IACT;IACA;IACX;GACD,gBAAgB;IAChB,CACU;MAGhB,QACE,0DACE,oCAAC;GACC,kBAAkB;GACH;GACC;GACM;GACN;GACN;GACA;GACE;GACA;GACA;IACZ,EACF,oCAAC,SAAI,WAAW,QAAQ,WACtB,oCAAC,cAAU,CACP,CACL;IAGN;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,oCAAC,aACE,cACC,0DACG,SAAS,KAAK,OAAO,GAAG,EACzB,oCAAC,cAAW,MAAK,OAAO,EACxB,oCAAC;EAAS,SAAQ;EAAO,WAAW,QAAQ;GAAkB,CAC7D,GAEH,iBAEE;;AAIV,mBAAmB,YAAY;CAI7B,kBAAkB,UAAU;CAI5B,gBAAgB,UAAU;CAI1B,sBAAsB,UAAU;CAIhC,gBAAgB,UAAU;CAI1B,UAAU,UAAU;CAIpB,UAAU,UAAU;CACrB"}
|
|
@@ -12,8 +12,8 @@ import { t as usePromotedMethodEntity } from "./usePromotedMethodEntity-Dw56T1IV
|
|
|
12
12
|
import { r as ActionsRenderer, t as AmbientGridTemplate } from "./AmbientGridTemplate-Cbl9GXcd.js";
|
|
13
13
|
import { t as useLookupsStore } from "./lookupsStore-JxZ8sd4A.js";
|
|
14
14
|
import { t as useQueryExecutors } from "./useQueryExecutors-BnxPVZ0p.js";
|
|
15
|
-
import { t as SearchServiceDatasource } from "./SearchServiceDatasource-
|
|
16
|
-
import { t as CrudTableSidePanel } from "./CrudTableSidePanel-
|
|
15
|
+
import { t as SearchServiceDatasource } from "./SearchServiceDatasource-DofS4I45.js";
|
|
16
|
+
import { t as CrudTableSidePanel } from "./CrudTableSidePanel-DBg4P_v7.js";
|
|
17
17
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
18
18
|
import { useHistory } from "react-router-dom";
|
|
19
19
|
import { AddIcon, ConfigurationSolidIcon, LookupEntitiesIcon } from "@fluentui/react-icons";
|
|
@@ -393,4 +393,4 @@ const DataBrowserContainer = (props) => {
|
|
|
393
393
|
|
|
394
394
|
//#endregion
|
|
395
395
|
export { DataBrowserColumnDefs as n, defaultColActionsDef as r, DataBrowserContainer as t };
|
|
396
|
-
//# sourceMappingURL=DataBrowserContainer-
|
|
396
|
+
//# sourceMappingURL=DataBrowserContainer-CMCGX613.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataBrowserContainer-CwyuvRqK.js","names":["filterChipsArray"],"sources":["../src/dataBrowser/DataBrowserColumnDefs.js","../src/dataBrowser/DataBrowserContainer.jsx"],"sourcesContent":["import {\n toTitleCase,\n toLowerFirstChar\n} from '../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n headerName: '',\n field: '',\n minWidth: 80,\n autoHeight: false,\n sortable: false\n};\n\nexport const DataBrowserColumnDefs = (\n entityAttributes,\n actionList,\n isServerSide,\n queryColumnsData,\n columnName = 'Actions',\n crudTableActionRenderName = 'actionsRenderer',\n panelDirection = 'right'\n) => {\n const childEntityAttributes = entityAttributes?.reduce((defs, element) => {\n if (element?.extendedProperties?.childEntity) {\n defs.push(element);\n }\n return defs;\n }, []);\n\n let shownColumns = [];\n let hiddenColumns = [];\n\n entityAttributes?.forEach((element) => {\n if (!element?.extendedProperties?.childEntity) {\n let matchingColumn = null;\n const matchingColumnIndex = queryColumnsData.findIndex(\n (column) => column.name === element?.name\n );\n\n if (matchingColumnIndex >= 0) {\n matchingColumn = queryColumnsData[matchingColumnIndex];\n }\n\n // update column header if attribute has a child entity\n const childEntity = childEntityAttributes.find(\n (ea) =>\n Object.keys(ea?.extendedProperties?.childEntityAssoc || {}).length &&\n !ea?.extendedProperties?.childEntityAssoc?.UdpType &&\n ea?.name === element?.name &&\n ea?.extendedProperties?.childEntityAssoc.Keys.find((k) =>\n toLowerFirstChar(k).includes(element?.name)\n )\n );\n\n let columnHeaderName = toTitleCase(\n childEntity ? childEntity?.reference : element?.name\n );\n\n if (matchingColumn) {\n columnHeaderName = toTitleCase(\n childEntity\n ? childEntity?.reference\n : matchingColumn?.alias || matchingColumn?.name\n );\n }\n\n let def = {\n ...defaultGridColumn,\n headerName: columnHeaderName,\n field: element?.name.charAt(0).toLowerCase() + element?.name.slice(1),\n hide: !matchingColumn\n };\n\n if (element?.extendedProperties?.searchable && isServerSide) {\n def = {\n ...def,\n filter: 'agTextColumnFilter',\n filterParams: {\n suppressAndOrCondition: true,\n filterOptions: [\n 'equals',\n 'contains',\n 'notEqual',\n 'greaterThan',\n 'lessThan',\n 'greaterThanOrEqual',\n 'lessThanOrEqual'\n ]\n },\n enableRowGroup: true\n };\n }\n if (element?.extendedProperties?.orderable || !isServerSide) {\n def = {\n ...def,\n sortable: true\n };\n }\n\n if (matchingColumn) {\n shownColumns[matchingColumnIndex] = def;\n } else {\n hiddenColumns.push(def);\n }\n }\n });\n\n let columnDefs = shownColumns.concat(hiddenColumns);\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: false,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport { AmbientGridTemplate } from '../UI/templates/AmbientGridTemplate';\nimport { SideSheet } from '../UI/surfaces/SideSheet';\nimport { ActionsRenderer } from '../UI/templates/ui/renderers/ActionsRenderer';\nimport { DataBrowserColumnDefs } from './DataBrowserColumnDefs';\nimport {\n AddIcon,\n LookupEntitiesIcon,\n ConfigurationSolidIcon\n} from '@fluentui/react-icons';\nimport { CrudTableSidePanel } from '../maintenanceEngine/crudBrowser/CrudTableSidePanel';\nimport { format } from 'date-fns';\nimport { findTermByType } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { LookupTypeIdEnums, UdpEnums } from '../enums/unitySystemEnums';\nimport {\n executeQueryAdHoc,\n executeQueryWithParameters\n} from '../udp/utilities/methodUtils';\nimport { useAgGridApi } from '../utilities/aggrid/AgTable';\nimport { SearchServiceDatasource } from '../utilities/aggrid/datasources/SearchServiceDatasource';\nimport { useUser } from '../utilities/auth/useUser';\nimport {\n toTitleCase,\n toUpperFirstChar\n} from '../utilities/input/StringUtilities';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { useQueryExecutors } from '../hooks/useQueryExecutors';\nimport { useLookupsStore } from '../stores/lookupsStore';\nimport { SqlFilterOperators } from '../enums/aggridEnums';\nimport { useBuildEnvironment } from '../shell/ui/EnvironmentRibbon';\nimport { usePromotedMethodEntity } from '../hooks/usePromotedMethodEntity';\nimport { getSearchObject } from '../utilities/search/SearchUtilities';\n\nconst GRID_ID = '4be3be45-1930-4ab9-b7b7-0c0fa3e30490';\n\nexport const DataBrowserContainer = (props) => {\n const {\n entityData,\n actionList,\n onCreate,\n entityAttributes,\n foreignKeyData,\n isLoading,\n promotedEntity,\n setEntityData,\n apiMethod,\n isServerSide = false,\n setGridApi,\n filterElements,\n backToConfigPage,\n queryColumnsData,\n lookupsMap = {},\n ...other\n } = props;\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 [filterChipsArray, setFilterChipsArray] = useState([]);\n const [searchFilterElements, setSearchFilterElements] =\n useState(filterElements);\n const [entityUdpObjectInfo, setEntityUdpObjectInfo] = useState(null);\n const { t } = useTranslation();\n const history = useHistory();\n const user = useUser();\n const { gridApi, gridColumnApi, onGridReady } = useAgGridApi();\n const { executeQueryAdHocAndMapLookups, getCleanData } = useQueryExecutors();\n const lookupApiMethodId = useLookupsStore((state) => state.lookupApiMethodId);\n const buildEnv = useBuildEnvironment();\n const closeSheet = useCallback(() => {\n setSheetOpen(false);\n }, []);\n\n const { data: udpObjectInfoEntity } = usePromotedMethodEntity(\n 'udpObjectInfo',\n true\n );\n\n const entityName = useMemo(() => {\n if (!promotedEntity) return '';\n return promotedEntity.entityName || '';\n }, [promotedEntity]);\n\n const commonEntityName = useMemo(() => {\n if (!entityName || !entityUdpObjectInfo) return '';\n return toTitleCase(\n entityUdpObjectInfo?.properties?.displayName ||\n getSanitizedName(entityName)\n );\n }, [entityName, entityUdpObjectInfo]);\n\n const createApiMethodPageId = useMemo(() => {\n return promotedEntity?.unityBaseCreateMethod?.pageId;\n }, [promotedEntity]);\n\n const secondaryActionButtons = useMemo(() => {\n const actions = [];\n if (backToConfigPage) {\n actions.push({\n onClick: backToConfigPage,\n label: t('Back To Config'),\n icon: ConfigurationSolidIcon,\n tooltip: t('Back To Config'),\n background: 'transparent'\n });\n }\n // actions.push({\n // onClick: () => {},\n // label: t('Load to Tree'),\n // icon: UploadIcon,\n // tooltip: t('Load to Tree'),\n // background: 'transparent'\n // });\n return actions;\n }, [backToConfigPage, t]);\n\n const virtualActions = useMemo(() => {\n return [\n // Action for opening Virtual Configuration\n {\n id: 3,\n title: t('Open Virtual Table'),\n icon: LookupEntitiesIcon,\n loading: !!!foreignKeyData,\n onClick: (value) => {\n history.push({\n pathname: `/virtual/${value.id}`,\n search: `?entityName=${entityName}`,\n state: {\n value,\n promotedEntity,\n label: value.name\n }\n });\n },\n checkDisabled: (value) => value.typeId !== LookupTypeIdEnums.Lookup\n }\n ];\n }, [entityName, t, history, promotedEntity, foreignKeyData]);\n\n const jointActionList = useMemo(() => {\n if (!actionList) {\n return [];\n }\n // Check if it's a udp lookup entity\n if (entityName.toLowerCase() === UdpEnums.Udp_Lookup.toLowerCase()) {\n return [...actionList, ...virtualActions];\n }\n return actionList;\n }, [actionList, virtualActions, entityName]);\n\n const columnDefs = useMemo(() => {\n return DataBrowserColumnDefs(\n entityAttributes,\n jointActionList,\n true,\n queryColumnsData\n );\n }, [entityAttributes, jointActionList, queryColumnsData]);\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 const SideOptionList = useMemo(\n () => (\n <SideSheet\n open={isSheetOpen}\n onClose={closeSheet}\n title={`Add New ${commonEntityName}`}\n width={sideSheetWidth}\n buttonLabel={sideSheetButtonLabel}\n onSubmit={sideSheetOnSubmit}\n {...otherSideSheetProps}\n >\n <CrudTableSidePanel\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n onCreate={onCreate}\n closeSideSheet={closeSheet}\n pageId={createApiMethodPageId}\n setSideSheetWidth={setSideSheetWidth}\n setSideSheetButtonLabel={setSideSheetButtonLabel}\n setSideSheetOnSubmit={setSideSheetOnSubmit}\n setSideSheetProps={setOtherSideSheetProps}\n isNewEntry={true}\n entityData={entityData}\n entityName={entityName}\n />\n </SideSheet>\n ),\n [\n isSheetOpen,\n closeSheet,\n entityName,\n sideSheetWidth,\n sideSheetButtonLabel,\n sideSheetOnSubmit,\n entityAttributes,\n foreignKeyData,\n onCreate,\n createApiMethodPageId,\n entityData,\n otherSideSheetProps,\n commonEntityName\n ]\n );\n\n const getLookupResults = useCallback(async () => {\n if (!lookupsMap || !lookupApiMethodId) return null;\n const lookupToFilterOn = Object.values(lookupsMap).find(\n (item) => item.filterOn\n );\n const lookupId = lookupToFilterOn?.value || '';\n if (lookupId) {\n const lookupResult = await executeQueryWithParameters(\n { data: { id: lookupId } },\n lookupApiMethodId\n );\n return lookupResult;\n }\n return null;\n }, [lookupsMap, lookupApiMethodId]);\n\n const formattedData = useMemo(() => {\n if (entityData) {\n let formattedEntityData = cloneDeep(entityData);\n\n // get list of attributes that are datetime\n const datetimeFields = entityAttributes?.reduce((defs, element) => {\n if (\n !element?.extendedProperties?.childEntity &&\n findTermByType(element?.type, 'datetime')\n ) {\n defs.push(\n element?.name.charAt(0).toLowerCase() + element?.name.slice(1)\n );\n }\n return defs;\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 }, [entityAttributes, entityData]);\n\n const handleChipToggle = useCallback(\n (chip) => {\n if (isServerSide && chip && chip.filterValue && chip.keyName) {\n const updatedSearchFilterElements = [...searchFilterElements];\n const chipFilterElement = {\n searchValue: chip.filterValue,\n searchField: toUpperFirstChar(chip.keyName),\n searchOperator: SqlFilterOperators.EQUALS\n };\n updatedSearchFilterElements.push(chipFilterElement);\n setSearchFilterElements(updatedSearchFilterElements);\n } else {\n // TODO: handle client side filter chips\n }\n },\n [isServerSide, searchFilterElements]\n );\n\n const handleChipUntoggle = useCallback(() => {\n setSearchFilterElements(filterElements);\n }, [filterElements]);\n\n const setFilterChips = useCallback(async () => {\n let filterChipsArray = [];\n\n // A list of all the products (for product lookup)\n const lookup = await getLookupResults();\n const lookupResults = lookup?.data;\n\n if (!lookupResults) {\n setFilterChipsArray([]);\n return; // no lookup results\n }\n\n let keyName = lookupResults.keyName;\n const valueName = lookupResults.valueName;\n\n const lookupToFilterOn = Object.values(lookupsMap).find(\n (item) => item.filterOn\n );\n\n let chipKey = keyName;\n const lookupMapKeys = Object.keys(lookupsMap);\n for (let i = 0; i < lookupMapKeys.length; i++) {\n const key = lookupMapKeys[i];\n if (lookupsMap[key].value === lookupToFilterOn?.value) {\n chipKey = key;\n break;\n }\n }\n\n // Add the chips\n for (let i = 0; i < lookupResults?.data.length; i++) {\n const lookupResult = lookupResults.data[i];\n\n const label = lookupResult[valueName];\n const numRows = formattedData?.filter(\n (obj) => obj[keyName] === label\n )?.length;\n\n let chipData = {\n label: `${label}`,\n value: !isServerSide ? numRows || '' : '',\n filterValue: lookupResult[keyName],\n id: i,\n keyName: chipKey\n };\n chipData.onToggle = () => handleChipToggle(chipData);\n chipData.onUntoggle = () => handleChipUntoggle();\n\n // Only add the chip if it has results and is not using server side\n if (!isServerSide && numRows > 0) {\n filterChipsArray.push(chipData);\n }\n if (isServerSide) {\n filterChipsArray.push(chipData);\n }\n }\n\n setFilterChipsArray(filterChipsArray);\n }, [\n getLookupResults,\n handleChipToggle,\n handleChipUntoggle,\n isServerSide,\n formattedData,\n lookupsMap\n ]);\n\n useEffect(() => {\n setFilterChips();\n }, [setFilterChips]);\n\n useEffect(() => {\n setSearchFilterElements(filterElements || []);\n }, [filterElements]);\n\n useEffect(() => {\n if (!gridApi) return;\n if (setGridApi) {\n setGridApi(gridApi);\n }\n if (promotedEntity && isServerSide && lookupsMap) {\n let datasource = SearchServiceDatasource(\n null,\n promotedEntity?.unityBaseSearchMethod?.apiMethodId,\n searchFilterElements,\n 1,\n executeQueryAdHocAndMapLookups,\n setEntityData,\n lookupsMap,\n false,\n getCleanData\n );\n // eslint-disable-next-line no-unused-expressions\n gridApi?.setServerSideDatasource(datasource);\n }\n }, [\n gridApi,\n promotedEntity,\n setEntityData,\n setGridApi,\n isServerSide,\n searchFilterElements,\n executeQueryAdHocAndMapLookups,\n lookupsMap,\n getCleanData\n ]);\n\n useEffect(() => {\n const executeSearchForEntityUdpObjectInfo = async (\n apiMethodId,\n sanitizedEntityName\n ) => {\n const filterElements = [\n {\n searchField: 'SanitizedName',\n searchOperator: '=',\n searchValue: sanitizedEntityName\n }\n ];\n const requestObj = getSearchObject(filterElements, 1, 50, false);\n const response = await executeQueryAdHoc(\n { data: requestObj },\n apiMethodId\n );\n if (response.status === 200) {\n const data = response?.data?.pageList[0];\n setEntityUdpObjectInfo(data);\n }\n };\n if (udpObjectInfoEntity?.unityBaseSearchMethod && entityName) {\n executeSearchForEntityUdpObjectInfo(\n udpObjectInfoEntity?.unityBaseSearchMethod?.apiMethodId,\n getSanitizedName(entityName)\n );\n }\n }, [udpObjectInfoEntity, entityName]);\n\n return (\n <>\n <AmbientGridTemplate\n gridId={GRID_ID}\n user={user}\n useNewHeader\n api={gridApi}\n onGridReady={onGridReady}\n columnApi={gridColumnApi}\n apiMethod={apiMethod}\n title={commonEntityName}\n data={!isServerSide && formattedData}\n columnDefs={columnDefs}\n groupingData={groupData}\n onPrimaryActionClick={() => setSheetOpen && setSheetOpen(true)}\n primaryActionLabel={t('Add')}\n primaryActionIcon={AddIcon}\n frameworkComponents={{ actionsRenderer: ActionsRenderer }}\n height={`calc(100vh - ${buildEnv ? '139px' : '114px'})`}\n hideSearchBar={isServerSide}\n loading={isLoading}\n suppressScrollOnNewData\n dynamicSizing={false}\n // rowSelection='multiple'\n // rowMultiSelectWithClick={true}\n disableRowSelection={true}\n rowModelType={isServerSide ? 'serverSide' : null}\n serverSideStoreType={isServerSide ? 'partial' : null}\n cacheOverflowSize={isServerSide ? 2 : null}\n cacheBlockSize={isServerSide ? 20 : null}\n maxConcurrentDatasourceRequests={isServerSide ? 1 : null}\n secondaryActionButtons={secondaryActionButtons}\n filterChips={[...filterChipsArray]}\n {...other}\n />\n {SideOptionList}\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataBrowserContainer-CMCGX613.js","names":["filterChipsArray"],"sources":["../src/dataBrowser/DataBrowserColumnDefs.js","../src/dataBrowser/DataBrowserContainer.jsx"],"sourcesContent":["import {\n toTitleCase,\n toLowerFirstChar\n} from '../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n headerName: '',\n field: '',\n minWidth: 80,\n autoHeight: false,\n sortable: false\n};\n\nexport const DataBrowserColumnDefs = (\n entityAttributes,\n actionList,\n isServerSide,\n queryColumnsData,\n columnName = 'Actions',\n crudTableActionRenderName = 'actionsRenderer',\n panelDirection = 'right'\n) => {\n const childEntityAttributes = entityAttributes?.reduce((defs, element) => {\n if (element?.extendedProperties?.childEntity) {\n defs.push(element);\n }\n return defs;\n }, []);\n\n let shownColumns = [];\n let hiddenColumns = [];\n\n entityAttributes?.forEach((element) => {\n if (!element?.extendedProperties?.childEntity) {\n let matchingColumn = null;\n const matchingColumnIndex = queryColumnsData.findIndex(\n (column) => column.name === element?.name\n );\n\n if (matchingColumnIndex >= 0) {\n matchingColumn = queryColumnsData[matchingColumnIndex];\n }\n\n // update column header if attribute has a child entity\n const childEntity = childEntityAttributes.find(\n (ea) =>\n Object.keys(ea?.extendedProperties?.childEntityAssoc || {}).length &&\n !ea?.extendedProperties?.childEntityAssoc?.UdpType &&\n ea?.name === element?.name &&\n ea?.extendedProperties?.childEntityAssoc.Keys.find((k) =>\n toLowerFirstChar(k).includes(element?.name)\n )\n );\n\n let columnHeaderName = toTitleCase(\n childEntity ? childEntity?.reference : element?.name\n );\n\n if (matchingColumn) {\n columnHeaderName = toTitleCase(\n childEntity\n ? childEntity?.reference\n : matchingColumn?.alias || matchingColumn?.name\n );\n }\n\n let def = {\n ...defaultGridColumn,\n headerName: columnHeaderName,\n field: element?.name.charAt(0).toLowerCase() + element?.name.slice(1),\n hide: !matchingColumn\n };\n\n if (element?.extendedProperties?.searchable && isServerSide) {\n def = {\n ...def,\n filter: 'agTextColumnFilter',\n filterParams: {\n suppressAndOrCondition: true,\n filterOptions: [\n 'equals',\n 'contains',\n 'notEqual',\n 'greaterThan',\n 'lessThan',\n 'greaterThanOrEqual',\n 'lessThanOrEqual'\n ]\n },\n enableRowGroup: true\n };\n }\n if (element?.extendedProperties?.orderable || !isServerSide) {\n def = {\n ...def,\n sortable: true\n };\n }\n\n if (matchingColumn) {\n shownColumns[matchingColumnIndex] = def;\n } else {\n hiddenColumns.push(def);\n }\n }\n });\n\n let columnDefs = shownColumns.concat(hiddenColumns);\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: false,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport { AmbientGridTemplate } from '../UI/templates/AmbientGridTemplate';\nimport { SideSheet } from '../UI/surfaces/SideSheet';\nimport { ActionsRenderer } from '../UI/templates/ui/renderers/ActionsRenderer';\nimport { DataBrowserColumnDefs } from './DataBrowserColumnDefs';\nimport {\n AddIcon,\n LookupEntitiesIcon,\n ConfigurationSolidIcon\n} from '@fluentui/react-icons';\nimport { CrudTableSidePanel } from '../maintenanceEngine/crudBrowser/CrudTableSidePanel';\nimport { format } from 'date-fns';\nimport { findTermByType } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { LookupTypeIdEnums, UdpEnums } from '../enums/unitySystemEnums';\nimport {\n executeQueryAdHoc,\n executeQueryWithParameters\n} from '../udp/utilities/methodUtils';\nimport { useAgGridApi } from '../utilities/aggrid/AgTable';\nimport { SearchServiceDatasource } from '../utilities/aggrid/datasources/SearchServiceDatasource';\nimport { useUser } from '../utilities/auth/useUser';\nimport {\n toTitleCase,\n toUpperFirstChar\n} from '../utilities/input/StringUtilities';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { useQueryExecutors } from '../hooks/useQueryExecutors';\nimport { useLookupsStore } from '../stores/lookupsStore';\nimport { SqlFilterOperators } from '../enums/aggridEnums';\nimport { useBuildEnvironment } from '../shell/ui/EnvironmentRibbon';\nimport { usePromotedMethodEntity } from '../hooks/usePromotedMethodEntity';\nimport { getSearchObject } from '../utilities/search/SearchUtilities';\n\nconst GRID_ID = '4be3be45-1930-4ab9-b7b7-0c0fa3e30490';\n\nexport const DataBrowserContainer = (props) => {\n const {\n entityData,\n actionList,\n onCreate,\n entityAttributes,\n foreignKeyData,\n isLoading,\n promotedEntity,\n setEntityData,\n apiMethod,\n isServerSide = false,\n setGridApi,\n filterElements,\n backToConfigPage,\n queryColumnsData,\n lookupsMap = {},\n ...other\n } = props;\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 [filterChipsArray, setFilterChipsArray] = useState([]);\n const [searchFilterElements, setSearchFilterElements] =\n useState(filterElements);\n const [entityUdpObjectInfo, setEntityUdpObjectInfo] = useState(null);\n const { t } = useTranslation();\n const history = useHistory();\n const user = useUser();\n const { gridApi, gridColumnApi, onGridReady } = useAgGridApi();\n const { executeQueryAdHocAndMapLookups, getCleanData } = useQueryExecutors();\n const lookupApiMethodId = useLookupsStore((state) => state.lookupApiMethodId);\n const buildEnv = useBuildEnvironment();\n const closeSheet = useCallback(() => {\n setSheetOpen(false);\n }, []);\n\n const { data: udpObjectInfoEntity } = usePromotedMethodEntity(\n 'udpObjectInfo',\n true\n );\n\n const entityName = useMemo(() => {\n if (!promotedEntity) return '';\n return promotedEntity.entityName || '';\n }, [promotedEntity]);\n\n const commonEntityName = useMemo(() => {\n if (!entityName || !entityUdpObjectInfo) return '';\n return toTitleCase(\n entityUdpObjectInfo?.properties?.displayName ||\n getSanitizedName(entityName)\n );\n }, [entityName, entityUdpObjectInfo]);\n\n const createApiMethodPageId = useMemo(() => {\n return promotedEntity?.unityBaseCreateMethod?.pageId;\n }, [promotedEntity]);\n\n const secondaryActionButtons = useMemo(() => {\n const actions = [];\n if (backToConfigPage) {\n actions.push({\n onClick: backToConfigPage,\n label: t('Back To Config'),\n icon: ConfigurationSolidIcon,\n tooltip: t('Back To Config'),\n background: 'transparent'\n });\n }\n // actions.push({\n // onClick: () => {},\n // label: t('Load to Tree'),\n // icon: UploadIcon,\n // tooltip: t('Load to Tree'),\n // background: 'transparent'\n // });\n return actions;\n }, [backToConfigPage, t]);\n\n const virtualActions = useMemo(() => {\n return [\n // Action for opening Virtual Configuration\n {\n id: 3,\n title: t('Open Virtual Table'),\n icon: LookupEntitiesIcon,\n loading: !!!foreignKeyData,\n onClick: (value) => {\n history.push({\n pathname: `/virtual/${value.id}`,\n search: `?entityName=${entityName}`,\n state: {\n value,\n promotedEntity,\n label: value.name\n }\n });\n },\n checkDisabled: (value) => value.typeId !== LookupTypeIdEnums.Lookup\n }\n ];\n }, [entityName, t, history, promotedEntity, foreignKeyData]);\n\n const jointActionList = useMemo(() => {\n if (!actionList) {\n return [];\n }\n // Check if it's a udp lookup entity\n if (entityName.toLowerCase() === UdpEnums.Udp_Lookup.toLowerCase()) {\n return [...actionList, ...virtualActions];\n }\n return actionList;\n }, [actionList, virtualActions, entityName]);\n\n const columnDefs = useMemo(() => {\n return DataBrowserColumnDefs(\n entityAttributes,\n jointActionList,\n true,\n queryColumnsData\n );\n }, [entityAttributes, jointActionList, queryColumnsData]);\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 const SideOptionList = useMemo(\n () => (\n <SideSheet\n open={isSheetOpen}\n onClose={closeSheet}\n title={`Add New ${commonEntityName}`}\n width={sideSheetWidth}\n buttonLabel={sideSheetButtonLabel}\n onSubmit={sideSheetOnSubmit}\n {...otherSideSheetProps}\n >\n <CrudTableSidePanel\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n onCreate={onCreate}\n closeSideSheet={closeSheet}\n pageId={createApiMethodPageId}\n setSideSheetWidth={setSideSheetWidth}\n setSideSheetButtonLabel={setSideSheetButtonLabel}\n setSideSheetOnSubmit={setSideSheetOnSubmit}\n setSideSheetProps={setOtherSideSheetProps}\n isNewEntry={true}\n entityData={entityData}\n entityName={entityName}\n />\n </SideSheet>\n ),\n [\n isSheetOpen,\n closeSheet,\n entityName,\n sideSheetWidth,\n sideSheetButtonLabel,\n sideSheetOnSubmit,\n entityAttributes,\n foreignKeyData,\n onCreate,\n createApiMethodPageId,\n entityData,\n otherSideSheetProps,\n commonEntityName\n ]\n );\n\n const getLookupResults = useCallback(async () => {\n if (!lookupsMap || !lookupApiMethodId) return null;\n const lookupToFilterOn = Object.values(lookupsMap).find(\n (item) => item.filterOn\n );\n const lookupId = lookupToFilterOn?.value || '';\n if (lookupId) {\n const lookupResult = await executeQueryWithParameters(\n { data: { id: lookupId } },\n lookupApiMethodId\n );\n return lookupResult;\n }\n return null;\n }, [lookupsMap, lookupApiMethodId]);\n\n const formattedData = useMemo(() => {\n if (entityData) {\n let formattedEntityData = cloneDeep(entityData);\n\n // get list of attributes that are datetime\n const datetimeFields = entityAttributes?.reduce((defs, element) => {\n if (\n !element?.extendedProperties?.childEntity &&\n findTermByType(element?.type, 'datetime')\n ) {\n defs.push(\n element?.name.charAt(0).toLowerCase() + element?.name.slice(1)\n );\n }\n return defs;\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 }, [entityAttributes, entityData]);\n\n const handleChipToggle = useCallback(\n (chip) => {\n if (isServerSide && chip && chip.filterValue && chip.keyName) {\n const updatedSearchFilterElements = [...searchFilterElements];\n const chipFilterElement = {\n searchValue: chip.filterValue,\n searchField: toUpperFirstChar(chip.keyName),\n searchOperator: SqlFilterOperators.EQUALS\n };\n updatedSearchFilterElements.push(chipFilterElement);\n setSearchFilterElements(updatedSearchFilterElements);\n } else {\n // TODO: handle client side filter chips\n }\n },\n [isServerSide, searchFilterElements]\n );\n\n const handleChipUntoggle = useCallback(() => {\n setSearchFilterElements(filterElements);\n }, [filterElements]);\n\n const setFilterChips = useCallback(async () => {\n let filterChipsArray = [];\n\n // A list of all the products (for product lookup)\n const lookup = await getLookupResults();\n const lookupResults = lookup?.data;\n\n if (!lookupResults) {\n setFilterChipsArray([]);\n return; // no lookup results\n }\n\n let keyName = lookupResults.keyName;\n const valueName = lookupResults.valueName;\n\n const lookupToFilterOn = Object.values(lookupsMap).find(\n (item) => item.filterOn\n );\n\n let chipKey = keyName;\n const lookupMapKeys = Object.keys(lookupsMap);\n for (let i = 0; i < lookupMapKeys.length; i++) {\n const key = lookupMapKeys[i];\n if (lookupsMap[key].value === lookupToFilterOn?.value) {\n chipKey = key;\n break;\n }\n }\n\n // Add the chips\n for (let i = 0; i < lookupResults?.data.length; i++) {\n const lookupResult = lookupResults.data[i];\n\n const label = lookupResult[valueName];\n const numRows = formattedData?.filter(\n (obj) => obj[keyName] === label\n )?.length;\n\n let chipData = {\n label: `${label}`,\n value: !isServerSide ? numRows || '' : '',\n filterValue: lookupResult[keyName],\n id: i,\n keyName: chipKey\n };\n chipData.onToggle = () => handleChipToggle(chipData);\n chipData.onUntoggle = () => handleChipUntoggle();\n\n // Only add the chip if it has results and is not using server side\n if (!isServerSide && numRows > 0) {\n filterChipsArray.push(chipData);\n }\n if (isServerSide) {\n filterChipsArray.push(chipData);\n }\n }\n\n setFilterChipsArray(filterChipsArray);\n }, [\n getLookupResults,\n handleChipToggle,\n handleChipUntoggle,\n isServerSide,\n formattedData,\n lookupsMap\n ]);\n\n useEffect(() => {\n setFilterChips();\n }, [setFilterChips]);\n\n useEffect(() => {\n setSearchFilterElements(filterElements || []);\n }, [filterElements]);\n\n useEffect(() => {\n if (!gridApi) return;\n if (setGridApi) {\n setGridApi(gridApi);\n }\n if (promotedEntity && isServerSide && lookupsMap) {\n let datasource = SearchServiceDatasource(\n null,\n promotedEntity?.unityBaseSearchMethod?.apiMethodId,\n searchFilterElements,\n 1,\n executeQueryAdHocAndMapLookups,\n setEntityData,\n lookupsMap,\n false,\n getCleanData\n );\n // eslint-disable-next-line no-unused-expressions\n gridApi?.setServerSideDatasource(datasource);\n }\n }, [\n gridApi,\n promotedEntity,\n setEntityData,\n setGridApi,\n isServerSide,\n searchFilterElements,\n executeQueryAdHocAndMapLookups,\n lookupsMap,\n getCleanData\n ]);\n\n useEffect(() => {\n const executeSearchForEntityUdpObjectInfo = async (\n apiMethodId,\n sanitizedEntityName\n ) => {\n const filterElements = [\n {\n searchField: 'SanitizedName',\n searchOperator: '=',\n searchValue: sanitizedEntityName\n }\n ];\n const requestObj = getSearchObject(filterElements, 1, 50, false);\n const response = await executeQueryAdHoc(\n { data: requestObj },\n apiMethodId\n );\n if (response.status === 200) {\n const data = response?.data?.pageList[0];\n setEntityUdpObjectInfo(data);\n }\n };\n if (udpObjectInfoEntity?.unityBaseSearchMethod && entityName) {\n executeSearchForEntityUdpObjectInfo(\n udpObjectInfoEntity?.unityBaseSearchMethod?.apiMethodId,\n getSanitizedName(entityName)\n );\n }\n }, [udpObjectInfoEntity, entityName]);\n\n return (\n <>\n <AmbientGridTemplate\n gridId={GRID_ID}\n user={user}\n useNewHeader\n api={gridApi}\n onGridReady={onGridReady}\n columnApi={gridColumnApi}\n apiMethod={apiMethod}\n title={commonEntityName}\n data={!isServerSide && formattedData}\n columnDefs={columnDefs}\n groupingData={groupData}\n onPrimaryActionClick={() => setSheetOpen && setSheetOpen(true)}\n primaryActionLabel={t('Add')}\n primaryActionIcon={AddIcon}\n frameworkComponents={{ actionsRenderer: ActionsRenderer }}\n height={`calc(100vh - ${buildEnv ? '139px' : '114px'})`}\n hideSearchBar={isServerSide}\n loading={isLoading}\n suppressScrollOnNewData\n dynamicSizing={false}\n // rowSelection='multiple'\n // rowMultiSelectWithClick={true}\n disableRowSelection={true}\n rowModelType={isServerSide ? 'serverSide' : null}\n serverSideStoreType={isServerSide ? 'partial' : null}\n cacheOverflowSize={isServerSide ? 2 : null}\n cacheBlockSize={isServerSide ? 20 : null}\n maxConcurrentDatasourceRequests={isServerSide ? 1 : null}\n secondaryActionButtons={secondaryActionButtons}\n filterChips={[...filterChipsArray]}\n {...other}\n />\n {SideOptionList}\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as FluentButton } from "./FluentButton-3xMbN_Vs.js";
|
|
2
2
|
import { t as FluentIcon } from "./FluentIcon-iRSVzrph.js";
|
|
3
|
-
import { t as formatBytes } from "./formatBytes-
|
|
3
|
+
import { t as formatBytes } from "./formatBytes-BXxFuDvk.js";
|
|
4
4
|
import React, { useMemo } from "react";
|
|
5
5
|
import { Typography, lighten, makeStyles } from "@material-ui/core";
|
|
6
6
|
import { PageIcon } from "@fluentui/react-icons";
|
|
@@ -86,4 +86,4 @@ DragDropFileUpload.propTypes = {
|
|
|
86
86
|
|
|
87
87
|
//#endregion
|
|
88
88
|
export { DragDropFileUpload as t };
|
|
89
|
-
//# sourceMappingURL=DragDropFileUpload-
|
|
89
|
+
//# sourceMappingURL=DragDropFileUpload-D1ihiCC2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragDropFileUpload-
|
|
1
|
+
{"version":3,"file":"DragDropFileUpload-D1ihiCC2.js","names":[],"sources":["../src/uploader/DragDropFileUpload.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport { useTranslation } from 'react-i18next';\nimport { FluentButton } from '../UI/inputs/buttons/FluentButton';\nimport { FluentIcon } from '../utilities/iconLibrary/FluentIcon';\nimport { formatBytes } from '../utilities/uploader/formatBytes';\nimport { PageIcon } from '@fluentui/react-icons';\nimport { Typography, lighten, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n btnWrapper: {\n display: 'flex',\n justifyContent: 'center',\n gap: theme.spacing(2),\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n },\n dndWrapper: {\n backgroundColor: lighten(theme.palette.secondary.light, 0.8),\n height: '100%',\n minHeight: (props) => props?.minHeight,\n maxHeight: (props) => props?.maxHeight,\n display: 'flex',\n alignItems: 'center',\n textAlign: 'center',\n border: `dashed 2px ${lighten(theme.palette.secondary.light, 0.4)}`,\n overflow: 'hidden'\n },\n fileNameWrapper: {\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n textAlign: 'center',\n justifyContent: 'center'\n },\n dndContent: {\n flexGrow: 1,\n textAlign: 'center'\n },\n textWrapper: {\n overflow: 'hidden',\n marginRight: theme.spacing(2),\n marginLeft: theme.spacing(2)\n }\n}));\n\nexport const DragDropFileUpload = (props) => {\n const {\n title,\n handleUploadFile,\n hideSelectFileButton = false,\n hideFilePreview = false,\n minHeight,\n maxHeight,\n multiple = false,\n ...otherDropZoneProps\n } = props;\n const { t } = useTranslation();\n const classes = useStyles({ minHeight, maxHeight });\n\n const { open, acceptedFiles, getRootProps, getInputProps } = useDropzone({\n noClick: true,\n noKeyboard: true,\n multiple: multiple,\n onDrop: handleUploadFile,\n ...otherDropZoneProps\n });\n\n const files = useMemo(() => {\n return acceptedFiles.map((file) => (\n <div className={classes.fileNameWrapper}>\n <FluentIcon size='small' component={PageIcon} />\n <Typography>{` ${file?.path} (${formatBytes(file?.size)})`}</Typography>\n </div>\n ));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [acceptedFiles]);\n\n return (\n <div>\n <div\n {...getRootProps({ className: 'dropzone' })}\n className={classes.dndWrapper}\n >\n <div className={classes.dndContent}>\n <input {...getInputProps()} />\n <Typography className={classes.textWrapper}>\n {title\n ? title\n : multiple\n ? t('Drag and drop files here or select files')\n : t('Drag and drop a file here or select a file')}\n </Typography>\n {!hideSelectFileButton && (\n <div className={classes.btnWrapper}>\n <FluentButton\n onClick={open}\n color='secondary'\n variant='contained'\n >\n <Typography noWrap>\n {multiple ? t('Select Files') : t('Select a File')}\n </Typography>\n </FluentButton>\n </div>\n )}\n {!hideFilePreview && <div>{files}</div>}\n </div>\n </div>\n </div>\n );\n};\n\nDragDropFileUpload.propTypes = {\n /**\n * Optional, title\n */\n title: PropTypes.string,\n\n /**\n * Optional, event handler that accept a param (an array of files) when drop or select files.\n * can use other props to handle this event such as onDropAccepted, onDropRejected.\n * https://react-dropzone.js.org/#section-components\n */\n handleUploadFile: PropTypes.func,\n\n /**\n * Optional, hide or show the select file button (default is false)\n */\n hideSelectFileButton: PropTypes.bool,\n\n /**\n * Optional, hide or show the file sneak preview (default is false)\n */\n hideFilePreview: PropTypes.bool,\n\n /**\n * Optional, minimum height\n */\n minHeight: PropTypes.string | PropTypes.number,\n\n /**\n * Optional, maximum height\n */\n maxHeight: PropTypes.string | PropTypes.number,\n\n /**\n * Optional, allow to add multiple files at a time (default is false)\n */\n multiple: PropTypes.bool\n};\n"],"mappings":";;;;;;;;;;;AAUA,MAAM,YAAY,YAAY,WAAW;CACvC,YAAY;EACV,SAAS;EACT,gBAAgB;EAChB,KAAK,MAAM,QAAQ,EAAE;EACrB,WAAW,MAAM,QAAQ,EAAE;EAC3B,cAAc,MAAM,QAAQ,EAAE;EAC/B;CACD,YAAY;EACV,iBAAiB,QAAQ,MAAM,QAAQ,UAAU,OAAO,GAAI;EAC5D,QAAQ;EACR,YAAY,UAAU,OAAO;EAC7B,YAAY,UAAU,OAAO;EAC7B,SAAS;EACT,YAAY;EACZ,WAAW;EACX,QAAQ,cAAc,QAAQ,MAAM,QAAQ,UAAU,OAAO,GAAI;EACjE,UAAU;EACX;CACD,iBAAiB;EACf,SAAS;EACT,KAAK,MAAM,QAAQ,EAAE;EACrB,YAAY;EACZ,WAAW;EACX,gBAAgB;EACjB;CACD,YAAY;EACV,UAAU;EACV,WAAW;EACZ;CACD,aAAa;EACX,UAAU;EACV,aAAa,MAAM,QAAQ,EAAE;EAC7B,YAAY,MAAM,QAAQ,EAAE;EAC7B;CACF,EAAE;AAEH,MAAa,sBAAsB,UAAU;CAC3C,MAAM,EACJ,OACA,kBACA,uBAAuB,OACvB,kBAAkB,OAClB,WACA,WACA,WAAW,MACX,GAAG,uBACD;CACJ,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,UAAU,UAAU;EAAE;EAAW;EAAW,CAAC;CAEnD,MAAM,EAAE,MAAM,eAAe,cAAc,kBAAkB,YAAY;EACvE,SAAS;EACT,YAAY;EACF;EACV,QAAQ;EACR,GAAG;EACJ,CAAC;CAEF,MAAM,QAAQ,cAAc;AAC1B,SAAO,cAAc,KAAK,SACxB,oCAAC,SAAI,WAAW,QAAQ,mBACtB,oCAAC;GAAW,MAAK;GAAQ,WAAW;IAAY,EAChD,oCAAC,kBAAY,IAAI,MAAM,KAAK,IAAI,YAAY,MAAM,KAAK,CAAC,GAAgB,CACpE,CACN;IAED,CAAC,cAAc,CAAC;AAEnB,QACE,oCAAC,aACC,oCAAC;EACC,GAAI,aAAa,EAAE,WAAW,YAAY,CAAC;EAC3C,WAAW,QAAQ;IAEnB,oCAAC,SAAI,WAAW,QAAQ,cACtB,oCAAC,SAAU,eAAe,CAAI,EAC9B,oCAAC,cAAW,WAAW,QAAQ,eAC5B,QACG,QACA,WACA,EAAE,2CAA2C,GAC7C,EAAE,6CAA6C,CACxC,EACZ,CAAC,wBACA,oCAAC,SAAI,WAAW,QAAQ,cACtB,oCAAC;EACC,SAAS;EACT,OAAM;EACN,SAAQ;IAER,oCAAC,cAAW,gBACT,WAAW,EAAE,eAAe,GAAG,EAAE,gBAAgB,CACvC,CACA,CACX,EAEP,CAAC,mBAAmB,oCAAC,aAAK,MAAY,CACnC,CACF,CACF;;AAIV,mBAAmB,YAAY;CAI7B,OAAO,UAAU;CAOjB,kBAAkB,UAAU;CAK5B,sBAAsB,UAAU;CAKhC,iBAAiB,UAAU;CAK3B,WAAW,UAAU,SAAS,UAAU;CAKxC,WAAW,UAAU,SAAS,UAAU;CAKxC,UAAU,UAAU;CACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailDisplay-
|
|
1
|
+
{"version":3,"file":"EmailDisplay-CpnpgDOC.js","names":["useStyles"],"sources":["../src/UI/components/dataDisplay/SmsDisplay.jsx","../src/UI/components/dataDisplay/EmailDisplay.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { makeStyles, Box, Grow, Card } from '@material-ui/core';\nimport PhoneImage from '../../../assets/images/phone.png';\nimport { PrimaryActionHeader } from '../../utilityDisplay/utilityHeader/PrimaryActionHeader';\nimport { useTranslation } from 'react-i18next';\nimport { CancelIcon } from '@fluentui/react-icons';\n\nconst useStyles = makeStyles((theme) => ({\n messages: {\n flex: '1',\n // height: '100%',\n margin: '0 20px',\n overflow: 'hidden'\n },\n messagesBox: {\n paddingRight: '3%',\n paddingLeft: '3%',\n width: '23vw',\n height: '88%',\n overflowY: 'auto',\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'center'\n },\n message: {\n backgroundColor: '#E9E9EB',\n borderRadius: '10px',\n padding: '10px',\n marginBottom: '10px',\n alignSelf: 'flex-start',\n overflowWrap: 'break-word',\n margin: theme.spacing(1)\n },\n messageSection: {\n flex: '1',\n overflowY: 'auto',\n padding: '20px',\n backgroundImage: `url(${PhoneImage})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 'calc(100vh - 140px)' // Ensures the container takes full viewport height\n }\n}));\n\nexport const SmsDisplay = (props) => {\n const { messages = [], to, from, title, handleClose } = props;\n const classes = useStyles();\n const [messagesList, setMessagesList] = useState(messages);\n const { t } = useTranslation();\n\n const messagesBoxRef = useRef(null);\n\n const secondaryButtons = useMemo(() => {\n const buttons = [];\n if (handleClose) {\n buttons.push({\n label: t('Close'),\n component: CancelIcon,\n click: () => handleClose()\n });\n }\n return buttons;\n }, [t, handleClose]);\n\n useEffect(() => {\n if (messagesBoxRef.current) {\n messagesBoxRef.current.scrollTop = messagesBoxRef.current.scrollHeight;\n }\n }, [messagesList]);\n\n return (\n <>\n <Card square>\n <PrimaryActionHeader\n // key={`${selectedNode?.id}-${inSearch}`}\n // title={headerTitle}\n // buttonLabel={'Load'}\n // secondaryButtons={secondaryButtons}\n // handleClick={handlePrimaryAction}\n // single\n hidePAB={true}\n title={title}\n subheader={`To: ${to} . From: ${from}`}\n secondaryButtons={secondaryButtons}\n />\n </Card>\n <Box className={classes.messages}>\n <Box className={classes.messageSection}>\n <Box className={classes.messagesBox} ref={messagesBoxRef}>\n {messagesList.map((message, index) => (\n <Grow key={index} in={true} timeout={800}>\n <Box\n className={classes.message}\n dangerouslySetInnerHTML={{ __html: message }}\n />\n </Grow>\n ))}\n </Box>\n </Box>\n </Box>\n </>\n );\n};\n","import React, { useMemo } from 'react';\nimport { makeStyles, Card } from '@material-ui/core';\nimport ReactHtmlParser from 'react-html-parser';\nimport { PrimaryActionHeader } from '../../utilityDisplay/utilityHeader/PrimaryActionHeader';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport { useTranslation } from 'react-i18next';\nimport { CancelIcon } from '@fluentui/react-icons';\n\nconst useStyles = makeStyles((theme) => ({\n htmlContainer: { display: 'flex', justifyContent: 'center' }\n}));\n\nexport const EmailDisplay = (props) => {\n const { html = '', to, from, title, handleClose } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n const secondaryButtons = useMemo(() => {\n const buttons = [];\n if (handleClose) {\n buttons.push({\n label: t('Close'),\n component: CancelIcon,\n click: () => handleClose()\n });\n }\n return buttons;\n }, [t, handleClose]);\n\n return (\n <>\n <Card square>\n <PrimaryActionHeader\n // key={`${selectedNode?.id}-${inSearch}`}\n // title={headerTitle}\n // buttonLabel={'Load'}\n // secondaryButtons={secondaryButtons}\n // handleClick={handlePrimaryAction}\n // single\n hidePAB={true}\n title={title}\n subheader={`To: ${to} . From: ${from}`}\n secondaryButtons={secondaryButtons}\n />\n </Card>\n <LayoutUnit unit='sm' />\n <div className={classes.htmlContainer}>{ReactHtmlParser(html)}</div>\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAOA,MAAMA,cAAY,YAAY,WAAW;CACvC,UAAU;EACR,MAAM;EAEN,QAAQ;EACR,UAAU;EACX;CACD,aAAa;EACX,cAAc;EACd,aAAa;EACb,OAAO;EACP,QAAQ;EACR,WAAW;EACX,WAAW;EACX,SAAS;EACT,gBAAgB;EACjB;CACD,SAAS;EACP,iBAAiB;EACjB,cAAc;EACd,SAAS;EACT,cAAc;EACd,WAAW;EACX,cAAc;EACd,QAAQ,MAAM,QAAQ,EAAE;EACzB;CACD,gBAAgB;EACd,MAAM;EACN,WAAW;EACX,SAAS;EACT,iBAAiB,OAAO,WAAW;EACnC,gBAAgB;EAChB,kBAAkB;EAClB,oBAAoB;EACpB,UAAU;EACV,SAAS;EACT,YAAY;EACZ,gBAAgB;EAChB,QAAQ;EACT;CACF,EAAE;AAEH,MAAa,cAAc,UAAU;CACnC,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,MAAM,OAAO,gBAAgB;CACxD,MAAM,UAAUA,aAAW;CAC3B,MAAM,CAAC,cAAc,mBAAmB,SAAS,SAAS;CAC1D,MAAM,EAAE,MAAM,gBAAgB;CAE9B,MAAM,iBAAiB,OAAO,KAAK;CAEnC,MAAM,mBAAmB,cAAc;EACrC,MAAM,UAAU,EAAE;AAClB,MAAI,YACF,SAAQ,KAAK;GACX,OAAO,EAAE,QAAQ;GACjB,WAAW;GACX,aAAa,aAAa;GAC3B,CAAC;AAEJ,SAAO;IACN,CAAC,GAAG,YAAY,CAAC;AAEpB,iBAAgB;AACd,MAAI,eAAe,QACjB,gBAAe,QAAQ,YAAY,eAAe,QAAQ;IAE3D,CAAC,aAAa,CAAC;AAElB,QACE,0DACE,oCAAC,QAAK,gBACJ,oCAAC;EAOC,SAAS;EACF;EACP,WAAW,OAAO,GAAG,WAAW;EACd;GAClB,CACG,EACP,oCAAC,OAAI,WAAW,QAAQ,YACtB,oCAAC,OAAI,WAAW,QAAQ,kBACtB,oCAAC;EAAI,WAAW,QAAQ;EAAa,KAAK;IACvC,aAAa,KAAK,SAAS,UAC1B,oCAAC;EAAK,KAAK;EAAO,IAAI;EAAM,SAAS;IACnC,oCAAC;EACC,WAAW,QAAQ;EACnB,yBAAyB,EAAE,QAAQ,SAAS;GAC5C,CACG,CACP,CACE,CACF,CACF,CACL;;;;;ACjGP,MAAM,YAAY,YAAY,WAAW,EACvC,eAAe;CAAE,SAAS;CAAQ,gBAAgB;CAAU,EAC7D,EAAE;AAEH,MAAa,gBAAgB,UAAU;CACrC,MAAM,EAAE,OAAO,IAAI,IAAI,MAAM,OAAO,gBAAgB;CACpD,MAAM,UAAU,WAAW;CAC3B,MAAM,EAAE,MAAM,gBAAgB;CAE9B,MAAM,mBAAmB,cAAc;EACrC,MAAM,UAAU,EAAE;AAClB,MAAI,YACF,SAAQ,KAAK;GACX,OAAO,EAAE,QAAQ;GACjB,WAAW;GACX,aAAa,aAAa;GAC3B,CAAC;AAEJ,SAAO;IACN,CAAC,GAAG,YAAY,CAAC;AAEpB,QACE,0DACE,oCAAC,QAAK,gBACJ,oCAAC;EAOC,SAAS;EACF;EACP,WAAW,OAAO,GAAG,WAAW;EACd;GAClB,CACG,EACP,oCAAC,cAAW,MAAK,OAAO,EACxB,oCAAC,SAAI,WAAW,QAAQ,iBAAgB,gBAAgB,KAAK,CAAO,CACnE"}
|
|
@@ -5,7 +5,7 @@ import { t as StatusChip } from "./StatusChip-4NHp2t6B.js";
|
|
|
5
5
|
import { i as executeQueryWithParameters, t as executeQueryAdHoc } from "./methodUtils-DwkBQ6fj.js";
|
|
6
6
|
import { t as AmbientCard } from "./AmbientCard-Bl34OCRH.js";
|
|
7
7
|
import { t as usePromotedMethodEntity } from "./usePromotedMethodEntity-Dw56T1IV.js";
|
|
8
|
-
import { t as LinearProgress$1 } from "./LinearProgress-
|
|
8
|
+
import { t as LinearProgress$1 } from "./LinearProgress-DvXOb1Ck.js";
|
|
9
9
|
import { t as AmbientAlert } from "./AmbientAlert-gju6JVxW.js";
|
|
10
10
|
import { t as EmptyStateDisplay } from "./EmptyStateDisplay-C12rU3yx.js";
|
|
11
11
|
import { t as FluentListItem } from "./FluentListItem-BwX03ygw.js";
|
|
@@ -331,4 +331,4 @@ const ExportSidesheet = (props) => {
|
|
|
331
331
|
|
|
332
332
|
//#endregion
|
|
333
333
|
export { VisualSearchObject as n, useUdpExport as r, ExportSidesheet as t };
|
|
334
|
-
//# sourceMappingURL=ExportSidesheet-
|
|
334
|
+
//# sourceMappingURL=ExportSidesheet-JSM9EoLc.js.map
|