udp-react-enterprise-component-library 25.14.1-beta.5 → 25.14.1-beta.7

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.
Files changed (324) hide show
  1. package/dist/{BackwardsCompatibleGrid-t5GOdnlI.js → BackwardsCompatibleGrid-C2zZwKox.js} +16 -23
  2. package/dist/BackwardsCompatibleGrid-C2zZwKox.js.map +1 -0
  3. package/dist/{BaseTreeMenu-DxXnVd_v.js → BaseTreeMenu-DmsrGSdA.js} +1 -1
  4. package/dist/{BaseTreeMenu-DxXnVd_v.js.map → BaseTreeMenu-DmsrGSdA.js.map} +1 -1
  5. package/dist/{CatalogUtilities-j8ACiDe3.js → CatalogUtilities-BvkdL-P6.js} +1 -1
  6. package/dist/{CatalogUtilities-j8ACiDe3.js.map → CatalogUtilities-BvkdL-P6.js.map} +1 -1
  7. package/dist/{CrudBrowserContainer-CB1Hh8X1.js → CrudBrowserContainer-Dpgwjt7c.js} +3 -3
  8. package/dist/CrudBrowserContainer-Dpgwjt7c.js.map +1 -0
  9. package/dist/{FieldArrayCard-D5AzG_US.js → FieldArrayCard-ColjIX9t.js} +1 -1
  10. package/dist/{FieldArrayCard-D5AzG_US.js.map → FieldArrayCard-ColjIX9t.js.map} +1 -1
  11. package/dist/{FileViewer-Cp8UpoMF.js → FileViewer-C1eQoTDj.js} +1 -1
  12. package/dist/{FileViewer-Cp8UpoMF.js.map → FileViewer-C1eQoTDj.js.map} +1 -1
  13. package/dist/FluentBody-PdsySA1c.js +16 -0
  14. package/dist/FluentBody-PdsySA1c.js.map +1 -0
  15. package/dist/{FluentDataTable-BhA49RJS.js → FluentCell-DZ5pFjdC.js} +6 -66
  16. package/dist/FluentCell-DZ5pFjdC.js.map +1 -0
  17. package/dist/FluentDataTable-C7Ng6Eh3.js +30 -0
  18. package/dist/FluentDataTable-C7Ng6Eh3.js.map +1 -0
  19. package/dist/FluentHead-BTV-o45z.js +20 -0
  20. package/dist/FluentHead-BTV-o45z.js.map +1 -0
  21. package/dist/FluentRow-CVqnk9pB.js +18 -0
  22. package/dist/FluentRow-CVqnk9pB.js.map +1 -0
  23. package/dist/{GeoMap-jDYoW-Jl.js → GeoMap-CVGJXRRA.js} +2 -2
  24. package/dist/{GeoMap-jDYoW-Jl.js.map → GeoMap-CVGJXRRA.js.map} +1 -1
  25. package/dist/{InputsExample-C11hu5Fw.js → InputsExample-BPDEWFXK.js} +1 -1
  26. package/dist/{InputsExample-C11hu5Fw.js.map → InputsExample-BPDEWFXK.js.map} +1 -1
  27. package/dist/{Inquiry-Bi4iSUSQ.js → Inquiry-DJ-yrELW.js} +2 -2
  28. package/dist/{Inquiry-Bi4iSUSQ.js.map → Inquiry-DJ-yrELW.js.map} +1 -1
  29. package/dist/{MenuPage-CuB7g460.js → MenuPage-0qeyA5lF.js} +2 -2
  30. package/dist/{MenuPage-CuB7g460.js.map → MenuPage-0qeyA5lF.js.map} +1 -1
  31. package/dist/{MenuPage-B4gixMrI.js → MenuPage-BJsOWc5e.js} +2 -2
  32. package/dist/{MyExportsPage-CBqIhu4I.js → MyExportsPage-Cq2MRoRf.js} +3 -2
  33. package/dist/{MyExportsPage-CBqIhu4I.js.map → MyExportsPage-Cq2MRoRf.js.map} +1 -1
  34. package/dist/{MyExportsPage-BE8qvq_F.js → MyExportsPage-ZP2V0i5h.js} +2 -2
  35. package/dist/{PageNotFoundRoute-BSlmqegI.js → PageNotFoundRoute-BGj6tqmn.js} +3 -2
  36. package/dist/{PageNotFoundRoute-BSlmqegI.js.map → PageNotFoundRoute-BGj6tqmn.js.map} +1 -1
  37. package/dist/PageNotFoundRoute-CTaRcNjL.js +4 -0
  38. package/dist/PasswordResetRedirect-BMDMHdhE.js +4 -0
  39. package/dist/{PasswordResetRedirect-BvC0vH06.js → PasswordResetRedirect-avgVRKhM.js} +3 -2
  40. package/dist/{PasswordResetRedirect-BvC0vH06.js.map → PasswordResetRedirect-avgVRKhM.js.map} +1 -1
  41. package/dist/{RejectIcon-BoBX4G_D.js → RejectIcon-D8AWbOZq.js} +1 -1
  42. package/dist/{RejectIcon-BoBX4G_D.js.map → RejectIcon-D8AWbOZq.js.map} +1 -1
  43. package/dist/TileLayer-Bk6rITEu.js +31 -0
  44. package/dist/TileLayer-Bk6rITEu.js.map +1 -0
  45. package/dist/UI/accordion/index.js +1 -1
  46. package/dist/UI/advancedSearchBuilder/index.js +1 -1
  47. package/dist/UI/charts/index.js +1 -1
  48. package/dist/UI/components/dataDisplay/index.js +1 -1
  49. package/dist/UI/components/feedback/index.js +1 -1
  50. package/dist/UI/components/index.js +3 -3
  51. package/dist/UI/containers/index.js +1 -1
  52. package/dist/UI/dataDisplay/FluentActivity/index.js +1 -1
  53. package/dist/UI/dataDisplay/FluentDataTable/FluentBody/index.js +3 -0
  54. package/dist/UI/dataDisplay/FluentDataTable/FluentCell/index.js +13 -0
  55. package/dist/UI/dataDisplay/FluentDataTable/FluentHead/index.js +3 -0
  56. package/dist/UI/dataDisplay/FluentDataTable/FluentRow/index.js +3 -0
  57. package/dist/UI/dataDisplay/FluentDataTable/index.js +6 -2
  58. package/dist/UI/dataDisplay/address/index.js +1 -1
  59. package/dist/UI/dataDisplay/cardList/index.js +1 -1
  60. package/dist/UI/dataDisplay/directory/index.js +1 -1
  61. package/dist/UI/dataDisplay/entityHeader/index.js +1 -1
  62. package/dist/UI/dataDisplay/index.js +17 -13
  63. package/dist/UI/dataDisplay/map/index.js +1 -1
  64. package/dist/UI/dataDisplay/notes/index.js +1 -1
  65. package/dist/UI/dataDisplay/ticketCard/index.js +1 -1
  66. package/dist/UI/dataDisplay/typography/index.js +1 -1
  67. package/dist/UI/dataDisplay/visualization/index.js +1 -1
  68. package/dist/UI/demos/index.js +2 -2
  69. package/dist/UI/feedback/index.js +1 -1
  70. package/dist/UI/fileViewer/index.js +2 -2
  71. package/dist/UI/floorplans/index.js +1 -1
  72. package/dist/UI/forms/index.js +3 -3
  73. package/dist/UI/iframe/index.js +1 -1
  74. package/dist/UI/index.js +63 -59
  75. package/dist/UI/inputs/fieldArrayCard/index.js +1 -1
  76. package/dist/UI/loading/index.js +1 -1
  77. package/dist/UI/mapLayout/index.js +1 -1
  78. package/dist/UI/maps/index.js +2 -2
  79. package/dist/UI/navigation/index.js +4 -4
  80. package/dist/UI/navigation/menus/index.js +1 -1
  81. package/dist/UI/navigation/tabs/defaultTabs/index.js +1 -1
  82. package/dist/UI/navigation/tabs/index.js +2 -2
  83. package/dist/UI/property/index.js +1 -1
  84. package/dist/UI/stepper/index.js +1 -1
  85. package/dist/UI/support/index.js +1 -1
  86. package/dist/UI/surfaces/NestedGrid/index.js +2 -2
  87. package/dist/UI/surfaces/NestedGrid/ui/index.js +1 -1
  88. package/dist/UI/surfaces/cards/index.js +3 -3
  89. package/dist/UI/surfaces/cards/newsCard/index.js +1 -1
  90. package/dist/UI/surfaces/cards/workOrderCard/index.js +1 -1
  91. package/dist/UI/surfaces/index.js +6 -6
  92. package/dist/UI/templates/index.js +4 -4
  93. package/dist/UI/templates/newGrid/index.js +2 -2
  94. package/dist/UI/templates/ui/index.js +1 -1
  95. package/dist/UI/timeline/fluentTimeline/index.js +1 -1
  96. package/dist/UI/timeline/index.js +2 -2
  97. package/dist/UI/utilityDisplay/alerts/index.js +1 -1
  98. package/dist/UI/utilityDisplay/index.js +5 -5
  99. package/dist/UI/utilityDisplay/ui/index.js +1 -1
  100. package/dist/UI/utilityDisplay/utilities/index.js +1 -1
  101. package/dist/UI/utilityDisplay/utilityHeader/index.js +1 -1
  102. package/dist/UI/widgets/index.js +1 -1
  103. package/dist/{UdpMaintenanceConfigPage-DdZJT9rB.js → UdpMaintenanceConfigPage-CC_gwu35.js} +1 -1
  104. package/dist/{UdpMaintenanceConfigPage-CnvPi5Gq.js → UdpMaintenanceConfigPage-yuotrI0g.js} +1 -1
  105. package/dist/{UdpMaintenanceConfigPage-CnvPi5Gq.js.map → UdpMaintenanceConfigPage-yuotrI0g.js.map} +1 -1
  106. package/dist/{UdpMaintenanceEnginePage-wDUWcIMQ.js → UdpMaintenanceEnginePage-b5cm6uW2.js} +2 -2
  107. package/dist/{UdpMaintenanceEnginePage-B1ddVZJE.js → UdpMaintenanceEnginePage-o40sezly.js} +15 -18
  108. package/dist/UdpMaintenanceEnginePage-o40sezly.js.map +1 -0
  109. package/dist/{UdpMap-lSMNXUoe.js → UdpMap-5NE3rUIS.js} +1 -1
  110. package/dist/{UdpMap-lSMNXUoe.js.map → UdpMap-5NE3rUIS.js.map} +1 -1
  111. package/dist/{UdpRoutes-DIwOzZx9.js → UdpRoutes-BVVsyngj.js} +9 -9
  112. package/dist/{UdpRoutes-DIwOzZx9.js.map → UdpRoutes-BVVsyngj.js.map} +1 -1
  113. package/dist/{VirtualBrowser-B99P35_L.js → VirtualBrowser-B66Iyn4h.js} +4 -4
  114. package/dist/{VirtualBrowser-C2f8AnJa.js → VirtualBrowser-BansR6-F.js} +4 -3
  115. package/dist/{VirtualBrowser-C2f8AnJa.js.map → VirtualBrowser-BansR6-F.js.map} +1 -1
  116. package/dist/{VirtualForm-DQ4YM-w2.js → VirtualForm-DlTtINdK.js} +2 -2
  117. package/dist/{VirtualForm-DQ4YM-w2.js.map → VirtualForm-DlTtINdK.js.map} +1 -1
  118. package/dist/{WorkflowContainer-Bf7oW53_.js → WorkflowContainer-C6QfVid-.js} +3 -3
  119. package/dist/{WorkflowContainer-Dmp3rpCg.js → WorkflowContainer-DasTFSlY.js} +4 -3
  120. package/dist/{WorkflowContainer-Dmp3rpCg.js.map → WorkflowContainer-DasTFSlY.js.map} +1 -1
  121. package/dist/actions/index.js +2 -2
  122. package/dist/actions/sidebar/index.js +1 -1
  123. package/dist/actions/utils/index.js +1 -1
  124. package/dist/{cards-CJmTMf2_.js → cards-CD1BE7Mh.js} +1 -1
  125. package/dist/{cards-CJmTMf2_.js.map → cards-CD1BE7Mh.js.map} +1 -1
  126. package/dist/{charts-Dm_iW2_N.js → charts-PdiOkLDF.js} +1 -1
  127. package/dist/{charts-Dm_iW2_N.js.map → charts-PdiOkLDF.js.map} +1 -1
  128. package/dist/componentSystems/multiThreadTimeline/functions/index.js +1 -1
  129. package/dist/componentSystems/multiThreadTimeline/index.js +5 -5
  130. package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +1 -1
  131. package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +1 -1
  132. package/dist/componentSystems/multiThreadTimeline/ui/index.js +2 -2
  133. package/dist/componentSystems/multiThreadTimeline/ui/modified/index.js +1 -1
  134. package/dist/componentSystems/pageRenderer/hocs/index.js +1 -1
  135. package/dist/componentSystems/pageRenderer/hooks/index.js +1 -1
  136. package/dist/componentSystems/pageRenderer/index.js +4 -4
  137. package/dist/componentSystems/pageRenderer/utils/index.js +1 -1
  138. package/dist/componentSystems/pageRenderer/wrappers/index.js +1 -1
  139. package/dist/dataBrowser/forms/index.js +1 -1
  140. package/dist/dataBrowser/index.js +1 -1
  141. package/dist/{defaultTabs-CAv4G0LR.js → defaultTabs-C07t9FPZ.js} +1 -1
  142. package/dist/{defaultTabs-CAv4G0LR.js.map → defaultTabs-C07t9FPZ.js.map} +1 -1
  143. package/dist/hooks/index.js +2 -2
  144. package/dist/index.js +27 -23
  145. package/dist/index.js.map +1 -1
  146. package/dist/inquiry/dashboard/index.js +1 -1
  147. package/dist/inquiry/index.js +5 -5
  148. package/dist/inquiry/inquiryBar/index.js +1 -1
  149. package/dist/inquiry/search/index.js +1 -1
  150. package/dist/maintenanceEngine/crudBrowser/index.js +2 -2
  151. package/dist/maintenanceEngine/index.js +7 -7
  152. package/dist/maintenanceEngine/tableBrowser/index.js +1 -1
  153. package/dist/maintenanceEngine/virtualBrowser/index.js +4 -4
  154. package/dist/map-library/Source/index.js +34 -1
  155. package/dist/map-library/Source/index.js.map +1 -0
  156. package/dist/maps/index.js +4 -4
  157. package/dist/maps/leafletMaps/index.js +2 -2
  158. package/dist/maps/leafletMaps/ui/index.js +1 -1
  159. package/dist/maps/openLayerMaps/Layers/index.js +45 -3
  160. package/dist/maps/openLayerMaps/Layers/index.js.map +1 -0
  161. package/dist/menuPage/index.js +2 -2
  162. package/dist/routes/index.js +1 -1
  163. package/dist/shell/index.js +3 -3
  164. package/dist/shell/ui/addUser/index.js +1 -1
  165. package/dist/shell/ui/appSwitcher/index.js +1 -1
  166. package/dist/shell/ui/index.js +3 -3
  167. package/dist/{theme-HNYKI2UT.js → theme-DtUeftmy.js} +3 -2
  168. package/dist/theme-DtUeftmy.js.map +1 -0
  169. package/dist/treeMenu/index.js +1 -1
  170. package/dist/types/maintenanceEngine/virtualBrowser/VirtualBrowser.d.ts +1 -0
  171. package/dist/types/routes/components/PageNotFoundRoute.d.ts +1 -0
  172. package/dist/types/routes/components/PasswordResetRedirect.d.ts +1 -0
  173. package/dist/types/tsconfig.tsbuildinfo +1 -1
  174. package/dist/types/udp/export/MyExportsPage.d.ts +1 -0
  175. package/dist/types/workflow/WorkflowContainer.d.ts +1 -0
  176. package/dist/udp/export/index.js +1 -1
  177. package/dist/udp/pages/index.js +4 -4
  178. package/dist/{udpPages-CA0_C-3F.js → udpPages-WbvmyuOa.js} +2 -2
  179. package/dist/{udpPages-CA0_C-3F.js.map → udpPages-WbvmyuOa.js.map} +1 -1
  180. package/dist/{ui-nau_Y4oZ.js → ui-z-P1tNCJ.js} +1 -1
  181. package/dist/{ui-nau_Y4oZ.js.map → ui-z-P1tNCJ.js.map} +1 -1
  182. package/dist/{useSingleLogout-DRSY_UK_.js → useSingleLogout-DeHKk6v6.js} +2 -2
  183. package/dist/{useSingleLogout-DRSY_UK_.js.map → useSingleLogout-DeHKk6v6.js.map} +1 -1
  184. package/dist/{useUpdateSearchParams-fEinMP0r.js → useUpdateSearchParams-CKTTs6Zx.js} +1 -1
  185. package/dist/{useUpdateSearchParams-fEinMP0r.js.map → useUpdateSearchParams-CKTTs6Zx.js.map} +1 -1
  186. package/dist/utilities/DemoJuly/index.js +1 -1
  187. package/dist/utilities/aggrid/index.js +1 -1
  188. package/dist/utilities/auth/index.js +3 -3
  189. package/dist/utilities/catalog/index.js +2 -2
  190. package/dist/utilities/chatBot/index.js +1 -1
  191. package/dist/utilities/crud/index.js +1 -1
  192. package/dist/utilities/customIcons/index.js +2 -2
  193. package/dist/utilities/entities/index.js +1 -1
  194. package/dist/utilities/floorplanFunctions/index.js +1 -1
  195. package/dist/utilities/iconLibrary/index.js +1 -1
  196. package/dist/utilities/index.js +30 -30
  197. package/dist/utilities/input/index.js +1 -1
  198. package/dist/utilities/maintenanceEngine/index.js +1 -1
  199. package/dist/utilities/menus/index.js +1 -1
  200. package/dist/utilities/page/index.js +1 -1
  201. package/dist/utilities/provider/index.js +1 -1
  202. package/dist/utilities/redirect/index.js +1 -1
  203. package/dist/utilities/rules/index.js +1 -1
  204. package/dist/utilities/search/index.js +1 -1
  205. package/dist/utilities/storage/index.js +1 -1
  206. package/dist/utilities/style/index.js +1 -1
  207. package/dist/utilities/tenant/index.js +1 -1
  208. package/dist/utilities/tree/index.js +1 -1
  209. package/dist/utilities/uploader/index.js +1 -1
  210. package/dist/utilities/utilityBar/index.js +1 -1
  211. package/dist/utilities/workflow/index.js +1 -1
  212. package/dist/{virtualActions-B5rStgo5.js → virtualActions-B-cs7Mxr.js} +1 -1
  213. package/dist/{virtualActions-B5rStgo5.js.map → virtualActions-B-cs7Mxr.js.map} +1 -1
  214. package/dist/workflow/components/index.js +1 -1
  215. package/dist/workflow/index.js +4 -4
  216. package/dist/workflow/menus/index.js +1 -1
  217. package/export-map.json +2 -2
  218. package/package.json +3 -2
  219. package/dist/BackwardsCompatibleGrid-t5GOdnlI.js.map +0 -1
  220. package/dist/CrudBrowserContainer-CB1Hh8X1.js.map +0 -1
  221. package/dist/FluentDataTable-BhA49RJS.js.map +0 -1
  222. package/dist/Layers-CQUYxZqM.js +0 -71
  223. package/dist/Layers-CQUYxZqM.js.map +0 -1
  224. package/dist/PageNotFoundRoute-Dw80_viU.js +0 -4
  225. package/dist/PasswordResetRedirect-P7XBzXp-.js +0 -4
  226. package/dist/UdpMaintenanceEnginePage-B1ddVZJE.js.map +0 -1
  227. package/dist/theme-HNYKI2UT.js.map +0 -1
  228. /package/dist/{DemoJuly-mBlFDlXO.js → DemoJuly-HEFpRiJ1.js} +0 -0
  229. /package/dist/{FluentActivity-CHcerdW3.js → FluentActivity-Btq_69F-.js} +0 -0
  230. /package/dist/{FluentDataTable-BUSxxcu4.js → FluentDataTable-BwVi4r3o.js} +0 -0
  231. /package/dist/{NestedGrid-Bc1QdJZq.js → NestedGrid-fseCejIz.js} +0 -0
  232. /package/dist/{accordion-CgA4fWdr.js → accordion-ChuOXM_i.js} +0 -0
  233. /package/dist/{addUser-CyMrC1rE.js → addUser-CDUgX71C.js} +0 -0
  234. /package/dist/{address-CzZ2w2QH.js → address-D8Cf2B--.js} +0 -0
  235. /package/dist/{advancedSearchBuilder-CXcCvGdg.js → advancedSearchBuilder-BNE1r194.js} +0 -0
  236. /package/dist/{aggrid-DuGBxiR8.js → aggrid-D_aCbevC.js} +0 -0
  237. /package/dist/{alerts-C4y_gS81.js → alerts-B--Jzz0v.js} +0 -0
  238. /package/dist/{appSwitcher-dCBbv3It.js → appSwitcher-BXsn0Y7P.js} +0 -0
  239. /package/dist/{auth-CwXOQn2B.js → auth-DWPlnjpI.js} +0 -0
  240. /package/dist/{cardList-CZgxIO2s.js → cardList-B0bYLPWj.js} +0 -0
  241. /package/dist/{catalog-p3yrFQgg.js → catalog-DMuLXcCK.js} +0 -0
  242. /package/dist/{chatBot-_aXO7sdm.js → chatBot-CESOMewn.js} +0 -0
  243. /package/dist/{components-D8Up-vxL.js → components-BpG8EmUu.js} +0 -0
  244. /package/dist/{components-DV8tbAMk.js → components-DaFrTvLa.js} +0 -0
  245. /package/dist/{containers-CRhNqHbD.js → containers-Cl2DkUJz.js} +0 -0
  246. /package/dist/{crud-By2po3xT.js → crud-tnZ9W8IE.js} +0 -0
  247. /package/dist/{crudBrowser-3U59T0v9.js → crudBrowser-BoZrPfr-.js} +0 -0
  248. /package/dist/{customIcons-DdZ5YpJU.js → customIcons-DbLvDHvX.js} +0 -0
  249. /package/dist/{dashboard-iA68nouc.js → dashboard-B3PkRVxB.js} +0 -0
  250. /package/dist/{dataDisplay-BvGOCvl4.js → dataDisplay-BivdlLmj.js} +0 -0
  251. /package/dist/{dataDisplay-rp32uqGg.js → dataDisplay-BkAq_6Ba.js} +0 -0
  252. /package/dist/{demos-CBZ677Zp.js → demos-L9SUck5b.js} +0 -0
  253. /package/dist/{directory-Cm9dN7Uy.js → directory-BmBd7DNf.js} +0 -0
  254. /package/dist/{entities-okCA6j-F.js → entities-Hs88OmOI.js} +0 -0
  255. /package/dist/{entityHeader-BpwA4IZo.js → entityHeader-uoWltVXF.js} +0 -0
  256. /package/dist/{feedback-Bio0plJD.js → feedback-CT_YIVkQ.js} +0 -0
  257. /package/dist/{feedback-Ck4YkgTO.js → feedback-Cq3y6mnG.js} +0 -0
  258. /package/dist/{fileViewer-B91R0e9v.js → fileViewer-DNmXMgEv.js} +0 -0
  259. /package/dist/{floorplanFunctions-C3h7qiy7.js → floorplanFunctions-DI9Q0N4y.js} +0 -0
  260. /package/dist/{floorplans-Dob6TqGq.js → floorplans-DCsLstCq.js} +0 -0
  261. /package/dist/{fluentTimeline-1YElAFfb.js → fluentTimeline-Bw3MB61J.js} +0 -0
  262. /package/dist/{forms-BbMWRT_y.js → forms-CTGzji9-.js} +0 -0
  263. /package/dist/{forms-CMiTP6yG.js → forms-DBN5u9vQ.js} +0 -0
  264. /package/dist/{functions-DxOG2OTQ.js → functions-B886DHHN.js} +0 -0
  265. /package/dist/{hocs-DBWxBvoU.js → hocs-CLAAIJfF.js} +0 -0
  266. /package/dist/{hooks-CwtIArSw.js → hooks-d0fHOxwg.js} +0 -0
  267. /package/dist/{iconLibrary-Ckm-SSry.js → iconLibrary-BzBDlfKa.js} +0 -0
  268. /package/dist/{iframe-Bz9v5_lb.js → iframe-qtuPeiq4.js} +0 -0
  269. /package/dist/{input-JbgQSbft.js → input-DVo_b6i8.js} +0 -0
  270. /package/dist/{inquiryBar-Dxy8ppZB.js → inquiryBar-cjTVuVy_.js} +0 -0
  271. /package/dist/{leafletMaps-s9gEVu5W.js → leafletMaps-BjTYRV2R.js} +0 -0
  272. /package/dist/{loading-BXxfGkvF.js → loading-BwYpS7fe.js} +0 -0
  273. /package/dist/{maintenanceEngine-BafuhHra.js → maintenanceEngine-BbFlaLMV.js} +0 -0
  274. /package/dist/{map-BAya-nTQ.js → map-BWuSYF6e.js} +0 -0
  275. /package/dist/{mapLayout-CGzY55Ta.js → mapLayout-D7YBYQ7P.js} +0 -0
  276. /package/dist/{maps-Di5BCHuV.js → maps-CevY6l2a.js} +0 -0
  277. /package/dist/{menus-7Hh5ia3U.js → menus-BZI70wR2.js} +0 -0
  278. /package/dist/{menus-C0jFXQQc.js → menus-CwNO89uQ.js} +0 -0
  279. /package/dist/{menus-Nbum4678.js → menus-DN6GDDqx.js} +0 -0
  280. /package/dist/{modified-DKPoXWSV.js → modified-Cf42z6i8.js} +0 -0
  281. /package/dist/{mttMainTimeline-DmKTPyfl.js → mttMainTimeline-D7IXpP1x.js} +0 -0
  282. /package/dist/{mttSummary-DbADB7pv.js → mttSummary-BMkmdNju.js} +0 -0
  283. /package/dist/{navigation-vJz1KOBz.js → navigation-B6o0jZNc.js} +0 -0
  284. /package/dist/{newGrid-B5432yoA.js → newGrid-DMD24lFv.js} +0 -0
  285. /package/dist/{newsCard-D7r5TYAJ.js → newsCard-BEEsHzuT.js} +0 -0
  286. /package/dist/{notes-Dn9Ces5A.js → notes-DXPGMU6E.js} +0 -0
  287. /package/dist/{page-XSjNp2Nd.js → page-BQMQ1JlA.js} +0 -0
  288. /package/dist/{property-CaGElr8A.js → property-BxFkD-ST.js} +0 -0
  289. /package/dist/{provider-276_eTQP.js → provider-CwOhsp5M.js} +0 -0
  290. /package/dist/{redirect-Cb0zPMUp.js → redirect-B0_sESdf.js} +0 -0
  291. /package/dist/{rules-C4NrJLax.js → rules-cVxJYdGG.js} +0 -0
  292. /package/dist/{search-D77NrIpT.js → search-6zyJ3P-2.js} +0 -0
  293. /package/dist/{search-w-OrIt_P.js → search-CxezFXdW.js} +0 -0
  294. /package/dist/{sidebar-pIeUM7gs.js → sidebar-CGs1WNkU.js} +0 -0
  295. /package/dist/{stepper-crdY6VU3.js → stepper-DSXFT-Iq.js} +0 -0
  296. /package/dist/{storage-BL60r231.js → storage-ZisRFPrn.js} +0 -0
  297. /package/dist/{style-BiG-DeqE.js → style-B_j5O3ww.js} +0 -0
  298. /package/dist/{support-DwPbj0YL.js → support-1Hknr9H-.js} +0 -0
  299. /package/dist/{surfaces-Cdb5PsOo.js → surfaces-SrimKL5h.js} +0 -0
  300. /package/dist/{tableBrowser-BMPoXYzI.js → tableBrowser-BgKcSdyL.js} +0 -0
  301. /package/dist/{tabs-BIlhKaeI.js → tabs-HRFDrAzD.js} +0 -0
  302. /package/dist/{templates-vre82yyp.js → templates-XRou7iKM.js} +0 -0
  303. /package/dist/{tenant-Ba0QsFun.js → tenant-CMcPr3w4.js} +0 -0
  304. /package/dist/{ticketCard-BvqRAGPq.js → ticketCard-B1ueM7V9.js} +0 -0
  305. /package/dist/{timeline-BIw66Dv8.js → timeline-CvlnNFik.js} +0 -0
  306. /package/dist/{tree-Bdu7gGxB.js → tree-BLeqwXve.js} +0 -0
  307. /package/dist/{typography-Dui520-w.js → typography-BUD73n7-.js} +0 -0
  308. /package/dist/{ui-B7XVO_hX.js → ui-5ngIc6S4.js} +0 -0
  309. /package/dist/{ui-Cje9T4Uy.js → ui-CMEdOOxm.js} +0 -0
  310. /package/dist/{ui-DwbRXsB5.js → ui-CQsw5PPh.js} +0 -0
  311. /package/dist/{ui-b3YPtlpb.js → ui-GKTg3I2L.js} +0 -0
  312. /package/dist/{ui-p_RiAPNJ.js → ui-Qt0TiwMS.js} +0 -0
  313. /package/dist/{uploader-6C3jSbvh.js → uploader-nV12FZ_U.js} +0 -0
  314. /package/dist/{utilities-ommsfHSw.js → utilities-C8yTJ1rO.js} +0 -0
  315. /package/dist/{utilityBar-BnpknzCg.js → utilityBar-BCRqW4jk.js} +0 -0
  316. /package/dist/{utilityDisplay-h6dM7Y3k.js → utilityDisplay-B2kppcKk.js} +0 -0
  317. /package/dist/{utilityHeader-D7kCDs_0.js → utilityHeader-B9G8SBPx.js} +0 -0
  318. /package/dist/{utils-Dp2c8faV.js → utils-BaVKyFU8.js} +0 -0
  319. /package/dist/{virtualBrowser-CYUz09Zq.js → virtualBrowser-DjU3bOv0.js} +0 -0
  320. /package/dist/{visualization-sK8D87d9.js → visualization-C71zC7Zo.js} +0 -0
  321. /package/dist/{widgets-msbGCYx2.js → widgets-BOvBco5h.js} +0 -0
  322. /package/dist/{workOrderCard-ngo0gNQA.js → workOrderCard-Cq8NIxl6.js} +0 -0
  323. /package/dist/{workflow-OW7yAb2X.js → workflow-Cou_j4_8.js} +0 -0
  324. /package/dist/{wrappers-YZRMr_jq.js → wrappers-Bvf3DVNC.js} +0 -0
@@ -12,10 +12,10 @@ import { executeQueryAdHoc } from "./methodUtils-Bgi0VCWP.js";
12
12
  import { usePromotedMethodEntity } from "./usePromotedMethodEntity-B50E6rbB.js";
13
13
  import { FluentDialog } from "./FluentDialog-DU5BAKwU.js";
14
14
  import { useApiCatalog } from "./useApiCatalog-Cz8Sz4-r.js";
15
- import { CrudBrowserContainer } from "./CrudBrowserContainer-CB1Hh8X1.js";
15
+ import { CrudBrowserContainer } from "./CrudBrowserContainer-Dpgwjt7c.js";
16
16
  import { TagEnums } from "./tagEnums-BD6xUu3X.js";
17
17
  import { CrudTableSidePanel } from "./CrudTableSidePanel-1A8qrCCX.js";
18
- import React, { useCallback, useEffect, useMemo, useState } from "react";
18
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
19
19
  import { ConfigService } from "udp-react-stencil-component-library";
20
20
  import { useHistory, useLocation } from "react-router-dom";
21
21
  import { useTranslation } from "react-i18next";
@@ -32,6 +32,7 @@ const UdpMaintenanceEnginePage = (props) => {
32
32
  const { t } = useTranslation();
33
33
  const [udpFieldInfos, setUdpFieldInfos] = useState([]);
34
34
  const [alertWarnings, setAlertWarnings] = useState([]);
35
+ const gridApiRef = useRef(null);
35
36
  const [modalConfig, setModalConfig] = useState({
36
37
  type: null,
37
38
  data: null
@@ -76,10 +77,6 @@ const UdpMaintenanceEnginePage = (props) => {
76
77
  data: null
77
78
  });
78
79
  }, []);
79
- const gridApiMethods = useMemo(() => ({
80
- refresh: () => console.log("Grid not ready yet..."),
81
- getSelectedRows: () => console.log("Grid not ready yet...")
82
- }), []);
83
80
  const executeCreate = useCallback(async (data) => apiMutate$1(ConfigService.integrationV1ApiUrl, `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseCreateMethod?.apiMethodId}`, { method: "post" }, data), [selectedEntity]);
84
81
  const executeUpdate = useCallback(async (data) => apiMutate$1(ConfigService.integrationV1ApiUrl, `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseUpdateMethod?.apiMethodId}`, { method: "post" }, data), [selectedEntity]);
85
82
  const executeDelete = useCallback(async (data) => apiMutate$1(ConfigService.integrationV1ApiUrl, `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseDeleteMethod?.apiMethodId}`, { method: "post" }, data), [selectedEntity]);
@@ -242,7 +239,7 @@ const UdpMaintenanceEnginePage = (props) => {
242
239
  });
243
240
  if (response?.status === 200) {
244
241
  handleSuccessSnackbar(entityName$1 ? t(`${entityName$1} has been created`) : t(`Entity has been created`));
245
- gridApiMethods?.refresh();
242
+ gridApiRef.current.refreshServerSide();
246
243
  closeModal("create");
247
244
  return response;
248
245
  }
@@ -251,10 +248,9 @@ const UdpMaintenanceEnginePage = (props) => {
251
248
  }, [
252
249
  selectedEntity,
253
250
  onCreate,
254
- t,
255
251
  handleErrorSnackbar,
256
252
  handleSuccessSnackbar,
257
- gridApiMethods,
253
+ t,
258
254
  closeModal
259
255
  ]);
260
256
  const handleOnUpdate = useCallback(async (values, primaryKeyValues) => {
@@ -274,7 +270,7 @@ const UdpMaintenanceEnginePage = (props) => {
274
270
  handleErrorSnackbar(res);
275
271
  }))?.status === 200) {
276
272
  handleSuccessSnackbar(entityName$1 ? t(`${entityName$1} has been updated`) : t(`Entity has been updated`));
277
- gridApiMethods?.refresh();
273
+ gridApiRef.current.refreshServerSide();
278
274
  closeModal("edit");
279
275
  }
280
276
  }
@@ -282,10 +278,9 @@ const UdpMaintenanceEnginePage = (props) => {
282
278
  }, [
283
279
  selectedEntity,
284
280
  onUpdate,
285
- t,
286
- gridApiMethods,
287
281
  handleErrorSnackbar,
288
282
  handleSuccessSnackbar,
283
+ t,
289
284
  closeModal
290
285
  ]);
291
286
  const handleOnDelete = useCallback(async (value) => {
@@ -303,18 +298,17 @@ const UdpMaintenanceEnginePage = (props) => {
303
298
  handleErrorSnackbar(res);
304
299
  }))?.status === 200) {
305
300
  handleSuccessSnackbar(entityName$1 ? t(`${entityName$1} has been deleted`) : t(`Entity has been deleted`));
306
- gridApiMethods?.refresh();
301
+ gridApiRef.current.refreshServerSide();
307
302
  closeModal("delete");
308
303
  }
309
304
  }
310
305
  }
311
306
  }, [
307
+ selectedEntity,
312
308
  entityAttributes,
313
- gridApiMethods,
309
+ onDelete,
314
310
  handleErrorSnackbar,
315
311
  handleSuccessSnackbar,
316
- onDelete,
317
- selectedEntity,
318
312
  t,
319
313
  closeModal
320
314
  ]);
@@ -393,6 +387,9 @@ const UdpMaintenanceEnginePage = (props) => {
393
387
  udpFieldSearchApiId,
394
388
  entityName
395
389
  ]);
390
+ const handleGridApiCallback = (api) => {
391
+ gridApiRef.current = api;
392
+ };
396
393
  return /* @__PURE__ */ React.createElement(React.Fragment, null, alertWarnings.map((warning) => /* @__PURE__ */ React.createElement(Alert, {
397
394
  key: warning.id,
398
395
  onClose: () => removeWarning(warning.id),
@@ -409,7 +406,7 @@ const UdpMaintenanceEnginePage = (props) => {
409
406
  },
410
407
  filterElements: searchFilterElements,
411
408
  setAlertWarnings,
412
- gridApiMethods
409
+ gridApiCallback: handleGridApiCallback
413
410
  }), /* @__PURE__ */ React.createElement(SideSheet, {
414
411
  open: modalConfig.type === "create" || modalConfig.type === "edit",
415
412
  onClose: closeModal,
@@ -441,4 +438,4 @@ var UdpMaintenanceEnginePage_default = UdpMaintenanceEnginePage;
441
438
 
442
439
  //#endregion
443
440
  export { UdpMaintenanceEnginePage, UdpMaintenanceEnginePage_default, UdpMaintenanceEnginePage_exports };
444
- //# sourceMappingURL=UdpMaintenanceEnginePage-B1ddVZJE.js.map
441
+ //# sourceMappingURL=UdpMaintenanceEnginePage-o40sezly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UdpMaintenanceEnginePage-o40sezly.js","names":["apiMutate","entityName","uuid","params"],"sources":["../src/udp/pages/UdpMaintenanceEnginePage.jsx"],"sourcesContent":["import React, { useEffect, useState, useMemo, useCallback, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { CrudBrowserContainer } from '../../maintenanceEngine/crudBrowser/CrudBrowserContainer';\nimport { CrudTableSidePanel } from '../../maintenanceEngine/crudBrowser/CrudTableSidePanel';\nimport {\n getEntityAttributes,\n getPathObject,\n getPrimaryKeyValues\n} from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport {\n toLowerFirstChar,\n toUpperFirstChar\n} from '../../utilities/input/StringUtilities';\nimport {\n CardinalityTypeEnums,\n EntityAttributeEnums,\n UdpEnums\n} from '../../enums/unitySystemEnums';\nimport { executeQueryAdHoc } from '../utilities/methodUtils';\nimport { getSearchObject } from '../../utilities/search/SearchUtilities';\nimport { useApiCatalog } from '../../hooks/useApiCatalog';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { Alert } from '@material-ui/lab';\nimport { v4 as uuid } from 'uuid';\nimport { useLocation } from 'react-router-dom';\nimport { TagEnums } from '../../enums/tagEnums';\nimport { ConfigService } from 'udp-react-stencil-component-library';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { FluentDialog } from '../../UI/feedback/FluentDialog';\nimport { useCatalogStore } from '../../stores/catalogStore';\nimport { useHistory } from 'react-router-dom';\n\nexport const UdpMaintenanceEnginePage = (props) => {\n const { catalogKey, params } = props;\n const { t } = useTranslation();\n const [udpFieldInfos, setUdpFieldInfos] = useState([]);\n const [alertWarnings, setAlertWarnings] = useState([]);\n const gridApiRef = useRef(null);\n const [modalConfig, setModalConfig] = useState({ type: null, data: null });\n const location = useLocation();\n const state = location.state;\n const history = useHistory();\n let searchParamStr = location.search;\n let searchParams = new URLSearchParams(searchParamStr);\n const searchParamsEntityName = state?.entityName\n ? state.entityName\n : searchParams.has('entityName') === true\n ? toUpperFirstChar(searchParams.get('entityName'))\n : '';\n\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const handleGoToTableBrowser = useCallback(() => {\n history.push({\n pathname: `/tableBrowser`\n });\n }, [history]);\n\n const udpCatalogKey = useMemo(() => {\n if (params?.entityName || catalogKey || searchParamsEntityName) {\n return params?.entityName || catalogKey || searchParamsEntityName;\n } else {\n handleGoToTableBrowser();\n }\n }, [\n params?.entityName,\n catalogKey,\n searchParamsEntityName,\n handleGoToTableBrowser\n ]);\n const udpTagId = params?.udpTagId || '';\n\n const [selectedEntity, setSelectedEntity] = useState(null);\n const [foreignKeyData, setForeignKeyData] = useState(null);\n const [udpFieldSearchApiId, setUdpFieldSearchApiId] = useState(null);\n\n const [entityName, setEntityName] = useState(null);\n\n const { currentApiCatalogId } = useCatalogStore();\n\n const { data: catalog } = useApiCatalog(currentApiCatalogId);\n\n const { data: udpObjectFieldInfo } = usePromotedMethodEntity(\n 'UdpObjectFieldInfo',\n true\n );\n\n const { data: promotedMethodEntities } = usePromotedMethodEntity(\n udpCatalogKey,\n true\n );\n\n // 2. MODAL HANDLERS: Callbacks to open and close modals/sheets.\n const openModal = useCallback((type, data = null) => {\n setModalConfig({ type, data });\n }, []);\n\n const closeModal = useCallback(() => {\n setModalConfig({ type: null, data: null });\n }, []);\n\n //------- CRUD operations--------\n const executeCreate = useCallback(\n async (data) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseCreateMethod?.apiMethodId}`,\n {\n method: 'post'\n },\n data\n ),\n [selectedEntity]\n );\n\n const executeUpdate = useCallback(\n async (data) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseUpdateMethod?.apiMethodId}`,\n {\n method: 'post'\n },\n data\n ),\n [selectedEntity]\n );\n\n const executeDelete = useCallback(\n async (data) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseDeleteMethod?.apiMethodId}`,\n {\n method: 'post'\n },\n data\n ),\n [selectedEntity]\n );\n\n const onCreate = useCallback(\n async (data) => {\n return await executeCreate(data);\n },\n [executeCreate]\n );\n\n const onUpdate = useCallback(\n async (data) => {\n return await executeUpdate(data);\n },\n [executeUpdate]\n );\n\n const onDelete = useCallback(\n async (data) => {\n return await executeDelete(data);\n },\n [executeDelete]\n );\n\n const searchFilterElements = useMemo(() => {\n const filterElements = [];\n if (udpTagId) {\n filterElements.push({\n searchField: 'UdpTags.UdpTagAssociationUdpTag.Id',\n searchOperator: '=',\n searchValue: udpTagId\n });\n }\n return filterElements;\n }, [udpTagId]);\n\n const entityAttributes = useMemo(() => {\n if (udpFieldInfos?.length > 0 && catalog && entityName) {\n // 1. Get original attributes from catalog\n const originalAttributes = getEntityAttributes(catalog, entityName);\n const attributeMap = new Map(\n originalAttributes.map((attr) => [attr.name.toLowerCase(), attr])\n );\n\n // 2. Create the sorted list by iterating through udpFieldInfos\n const sortedPart = udpFieldInfos\n .map((field) => {\n const match = attributeMap.get(field.name.toLowerCase());\n if (match) {\n // Merge properties as we build the sorted list\n return {\n ...match,\n extendedProperties: {\n ...match.extendedProperties,\n udpFieldProperties: field.properties\n }\n };\n }\n return null;\n })\n .filter(Boolean);\n\n // 3. Find unmatched items in a single pass\n const udpFieldNames = new Set(\n udpFieldInfos.map((f) => f.name.toLowerCase())\n );\n const unmatchedPart = originalAttributes.filter(\n (attr) => !udpFieldNames.has(attr.name.toLowerCase())\n );\n\n // 4. Combine the sorted, merged part with the original unmatched part\n return [...sortedPart, ...unmatchedPart];\n }\n }, [catalog, entityName, udpFieldInfos]);\n\n const getMetaDataForUdpField = useCallback(\n async (entityName) => {\n let fieldInfos = [];\n if (udpFieldSearchApiId) {\n const filterElements = [\n {\n searchField: 'ObjectInfo.SanitizedName',\n searchOperator: '=',\n searchValue: getSanitizedName(entityName)\n }\n ];\n const requestObj = getSearchObject(filterElements, 1, 50, true);\n\n await executeQueryAdHoc({ data: requestObj }, udpFieldSearchApiId).then(\n (resp) => {\n fieldInfos = resp.data?.pageList;\n }\n );\n }\n return fieldInfos;\n },\n [udpFieldSearchApiId]\n );\n\n const getFKMethodEntities = useCallback(\n async (attributes) => {\n if (!attributes) {\n return [];\n }\n let fkMethods = [];\n\n for (const attr of attributes) {\n // check if there is a property with this childEntity\n if (attr?.extendedProperties?.childEntity) {\n // get the list of child entity field names from the Keys array\n const ceFieldsArr = [];\n Object.keys(attr.extendedProperties.childEntityAssoc || {}).length &&\n (attr.extendedProperties.childEntityAssoc.Cardinality ===\n CardinalityTypeEnums.Many_To_Many ||\n attr.extendedProperties.childEntityAssoc.Cardinality ===\n CardinalityTypeEnums.One_To_Many) &&\n !attr.extendedProperties.childEntityAssoc.UdpType &&\n attr.extendedProperties.childEntityAssoc.Keys.forEach(\n (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 ceFieldsArr.push({\n idx: i,\n name: /^[A-Z]*$/.test(name)\n ? name.toLowerCase()\n : toLowerFirstChar(name)\n });\n }\n }\n );\n\n // find the child entity attribute\n const ceAttr = attributes.find((p) =>\n ceFieldsArr.find((cef) => cef.name === p.name)\n );\n\n if (ceAttr) {\n // get list of entity if ceProp exists\n await apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${currentApiCatalogId}/promotedMethodEntities/${attr.reference}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {\n method: 'get'\n },\n {}\n ).then((resp) => {\n if (resp && resp.data) {\n fkMethods.push({\n entityAttribute: ceAttr,\n entity: resp.data\n });\n }\n });\n }\n }\n }\n return fkMethods;\n },\n [currentApiCatalogId]\n );\n\n const getFKAssociationLabel = useCallback(\n async (entityName) => {\n let fieldsInfo = [];\n fieldsInfo = await getMetaDataForUdpField(entityName);\n if (fieldsInfo?.length <= 0) {\n return '';\n }\n const associationLabelInfo = fieldsInfo?.find(\n (fi) => fi.properties?.maintainenceConfig?.associationLabel === 'true'\n );\n return associationLabelInfo?.name;\n },\n [getMetaDataForUdpField]\n );\n\n const getDataByKey = (obj, k) => {\n if (!obj) return null;\n let val = obj[k] ?? null;\n if (!val) {\n const key = Object.keys(obj).find((objKey) =>\n objKey.toLowerCase().includes(k)\n );\n if (key) {\n val = obj[key];\n }\n }\n return val;\n };\n\n const getFKData = useCallback(async () => {\n if (!entityAttributes?.length) {\n return null;\n }\n const fkMethods = await getFKMethodEntities(entityAttributes);\n if (!fkMethods?.length) {\n setForeignKeyData([]);\n return [];\n }\n let fkData = [];\n let promises = [];\n let promiseDetails = [];\n const warnings = [];\n for (const method of fkMethods) {\n if (method && method?.entity?.unityBaseGetAllMethod) {\n const associationLabel = await getFKAssociationLabel(\n method.entity.entityName\n );\n promiseDetails.push({\n url:\n ConfigService.integrationV1ApiUrl +\n `/apimethod/executeQueryWithParameters/${method?.entity?.unityBaseGetAllMethod?.apiMethodId}`,\n fieldName: method.entityAttribute.name,\n name: method.entity.entityName,\n associationLabel: associationLabel\n });\n\n promises.push(\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${method?.entity?.unityBaseGetAllMethod?.apiMethodId}`,\n {\n method: 'post'\n },\n { data: {} }\n )\n );\n } else {\n warnings.push({\n id: uuid(),\n message: `${method.entity.entityName}'s Get-All method needs to be promoted`\n });\n }\n }\n setAlertWarnings((existingWarnings) => [...existingWarnings, ...warnings]);\n\n Promise.all(promises).then((resp) => {\n resp.forEach((response, index) => {\n if (response.status === 200) {\n if (response?.data) {\n let respData = [];\n const promiseDetail = promiseDetails.find(\n (p) =>\n p.url === response?.config?.url &&\n !fkData.find(\n (fd) =>\n fd.entityName === p.name && fd.fieldName === p.fieldName\n )\n );\n\n response.data.forEach((d) => {\n const idName =\n promiseDetail?.fieldName && d[promiseDetail.fieldName]\n ? promiseDetail.fieldName\n : 'id';\n const id = getDataByKey(d, idName);\n const name = getDataByKey(\n d,\n promiseDetail?.associationLabel\n ? toLowerFirstChar(promiseDetail.associationLabel)\n : 'name'\n );\n\n respData.push({ id: id, name: name ?? id });\n });\n\n if (!!promiseDetail) {\n fkData.push({\n fieldName: promiseDetail.fieldName,\n entityName: promiseDetail.name,\n name: promiseDetail.fieldName,\n data: respData\n });\n }\n }\n }\n });\n setForeignKeyData(fkData);\n });\n }, [entityAttributes, getFKMethodEntities, getFKAssociationLabel]);\n\n const handleOnCreate = useCallback(\n async (values) => {\n if (selectedEntity) {\n const entityName = selectedEntity?.entityName;\n if (selectedEntity?.unityBaseCreateMethod) {\n const data = { requestBody: values };\n const response = await onCreate({ data }).catch((res) => {\n handleErrorSnackbar(res);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(\n entityName\n ? t(`${entityName} has been created`)\n : t(`Entity has been created`)\n );\n gridApiRef.current.refreshServerSide();\n closeModal('create');\n return response;\n }\n } else {\n handleErrorSnackbar(\n null,\n selectedEntity.entityName + \"'s create method must be promoted\"\n );\n }\n }\n },\n [selectedEntity, onCreate, handleErrorSnackbar, handleSuccessSnackbar, t, closeModal]\n );\n\n const handleOnUpdate = useCallback(\n async (values, primaryKeyValues) => {\n if (selectedEntity) {\n const entityName = selectedEntity?.entityName;\n\n if (selectedEntity?.unityBaseUpdateMethod) {\n // Get primary key value object using path parameters and merge with data\n const pathObject = getPathObject(\n selectedEntity.unityBaseUpdateMethod.pathParameters,\n primaryKeyValues\n );\n let data = { requestBody: values };\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: values };\n }\n\n const response = await onUpdate({ data }).catch((res) => {\n handleErrorSnackbar(res);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(\n entityName\n ? t(`${entityName} has been updated`)\n : t(`Entity has been updated`)\n );\n\n gridApiRef.current.refreshServerSide();\n closeModal('edit');\n }\n }\n }\n },\n [selectedEntity, onUpdate, handleErrorSnackbar, handleSuccessSnackbar, t, closeModal]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\n if (selectedEntity) {\n const entityName = selectedEntity?.entityName;\n\n if (selectedEntity?.unityBaseDeleteMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = getPrimaryKeyValues(entityAttributes, value);\n const pathObject = getPathObject(\n selectedEntity?.unityBaseDeleteMethod.pathParameters,\n primaryKeyValues\n );\n let data = {};\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject };\n }\n\n const response = await onDelete({ data }).catch((res) => {\n handleErrorSnackbar(res);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(\n entityName\n ? t(`${entityName} has been deleted`)\n : t(`Entity has been deleted`)\n );\n gridApiRef.current.refreshServerSide();\n closeModal('delete');\n }\n }\n }\n },\n [selectedEntity, entityAttributes, onDelete, handleErrorSnackbar, handleSuccessSnackbar, t, closeModal]\n );\n\n const removeWarning = useCallback(\n (id) => {\n const updatedWarnings = alertWarnings.filter(\n (warning) => warning.id !== id\n );\n setAlertWarnings(updatedWarnings);\n },\n [alertWarnings]\n );\n\n const shouldDisableAction = useCallback(\n (value) => {\n const sanitizedEntityName = getSanitizedName(entityName);\n const tagTypeShouldDisableEdit =\n [TagEnums.TagTypeSanitizedName.toLowerCase()].includes(\n sanitizedEntityName?.toLowerCase()\n ) && !value?.[toLowerFirstChar(EntityAttributeEnums.User_Defined)];\n\n const shortCutContentShouldDisableEdit =\n [UdpEnums.Udp_Shortcut_Content.toLowerCase()].includes(\n sanitizedEntityName?.toLowerCase()\n ) &&\n value?.[\n toLowerFirstChar(EntityAttributeEnums.Is_Product_ShortcutContent)\n ];\n\n const lookupShouldDisableEdit =\n [UdpEnums.Udp_Lookup.toLowerCase()].includes(\n sanitizedEntityName?.toLowerCase()\n ) && value?.[toLowerFirstChar(EntityAttributeEnums.Is_Product_Lookup)];\n return (\n tagTypeShouldDisableEdit ||\n shortCutContentShouldDisableEdit ||\n lookupShouldDisableEdit\n );\n },\n [entityName]\n );\n\n const actionList = useMemo(() => {\n if (!selectedEntity) {\n return [];\n }\n\n return [\n {\n id: 'edit',\n iconName: 'edit', // Pass string name for the icon\n getTitle: () =>\n // Use getTitle for dynamic text\n selectedEntity?.unityBaseUpdateMethod\n ? t('Edit')\n : t('Edit Method Not Accessible'),\n handleOnClick: (e, params) => {\n openModal('edit', params.data); // Calls parent state handler\n },\n checkDisabled: (params) =>\n !!!selectedEntity?.unityBaseUpdateMethod ||\n shouldDisableAction(params.data)\n },\n {\n id: 'delete',\n iconName: 'trashCan', // Pass string name for the icon\n getTitle: () =>\n selectedEntity?.unityBaseDeleteMethod\n ? t('Delete')\n : t('Delete Method Not Accessible'),\n handleOnClick: (e, params) => {\n openModal('delete', params.data); // Calls parent state handler\n },\n checkDisabled: (params) =>\n !!!selectedEntity?.unityBaseDeleteMethod ||\n shouldDisableAction(params.data)\n }\n ];\n }, [selectedEntity, t, shouldDisableAction, openModal]);\n\n useEffect(() => {\n const setFrKeyData = async () => {\n await getFKData();\n };\n if (entityAttributes && udpFieldSearchApiId !== null) {\n setFrKeyData();\n }\n }, [entityAttributes, getFKData, udpFieldSearchApiId]);\n\n useEffect(() => {\n if (promotedMethodEntities) {\n setSelectedEntity(promotedMethodEntities);\n setEntityName(promotedMethodEntities?.entityName);\n }\n }, [promotedMethodEntities]);\n\n useEffect(() => {\n if (udpObjectFieldInfo) {\n if (udpObjectFieldInfo?.unityBaseSearchMethod?.apiMethodId) {\n setUdpFieldSearchApiId(\n udpObjectFieldInfo?.unityBaseSearchMethod?.apiMethodId\n );\n } else {\n setUdpFieldSearchApiId('');\n const udpFieldWarning = {\n id: uuid(),\n message: `UdpObjectFieldInfo method needs to be promoted`\n };\n setAlertWarnings((prevState) => [...prevState, udpFieldWarning]);\n }\n }\n }, [udpObjectFieldInfo]);\n\n useEffect(() => {\n const setFieldInfos = async () => {\n let temp = await getMetaDataForUdpField(entityName);\n setUdpFieldInfos(temp);\n };\n if (udpFieldSearchApiId) {\n setFieldInfos();\n }\n }, [\n udpObjectFieldInfo,\n getMetaDataForUdpField,\n udpFieldSearchApiId,\n entityName\n ]);\n\n const handleGridApiCallback = (api) => {\n gridApiRef.current = api;\n };\n\n return (\n <>\n {alertWarnings.map((warning) => (\n <Alert\n key={warning.id}\n onClose={() => removeWarning(warning.id)}\n severity='warning'\n >\n {warning.message || ''}\n </Alert>\n ))}\n <CrudBrowserContainer\n actionList={actionList}\n onCreate={() => openModal('create')}\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n promotedEntity={selectedEntity}\n apiMethod={{ currentApiCatalogId, entityName }}\n filterElements={searchFilterElements}\n setAlertWarnings={setAlertWarnings}\n gridApiCallback={handleGridApiCallback}\n />\n <SideSheet\n open={modalConfig.type === 'create' || modalConfig.type === 'edit'}\n onClose={closeModal}\n title={\n modalConfig.type === 'create'\n ? `Add New ${entityName}`\n : `Edit ${entityName}`\n }\n width={600}\n >\n {(modalConfig.type === 'create' || modalConfig.type === 'edit') && (\n <CrudTableSidePanel\n entityAttributes={entityAttributes}\n udpFieldInfos={udpFieldInfos}\n foreignKeyData={foreignKeyData}\n closeSideSheet={closeModal}\n isNewEntry={modalConfig.type === 'create'}\n entityName={entityName}\n onCreate={\n modalConfig.type === 'create' ? handleOnCreate : undefined\n }\n onUpdate={modalConfig.type === 'edit' ? handleOnUpdate : undefined}\n crudTableEditionData={\n modalConfig.type === 'edit' ? modalConfig.data : null\n }\n pageId={\n modalConfig.type === 'edit'\n ? selectedEntity?.unityBaseUpdateMethod?.pageId\n : selectedEntity?.unityBaseCreateMethod?.pageId\n }\n />\n )}\n </SideSheet>\n <FluentDialog\n open={modalConfig.type === 'delete'}\n handleClose={closeModal}\n title={t('Delete')}\n message={t('Are you sure you want to delete this row?')}\n actionOne={closeModal}\n labelOne={t('Cancel')}\n actionTwo={() => handleOnDelete(modalConfig.data)}\n labelTwo={t('Confirm')}\n />\n </>\n );\n};\n\nexport default UdpMaintenanceEnginePage;\n"],"mappings":"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"}
@@ -8,4 +8,4 @@ const UdpMap$1 = (props) => {
8
8
 
9
9
  //#endregion
10
10
  export { UdpMap$1 as UdpMap };
11
- //# sourceMappingURL=UdpMap-lSMNXUoe.js.map
11
+ //# sourceMappingURL=UdpMap-5NE3rUIS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UdpMap-lSMNXUoe.js","names":["UdpMap: React.FC<UdpMapProps>","Map"],"sources":["../src/UI/maps/UdpMap.tsx"],"sourcesContent":["import React from 'react';\nimport { UdpMap as Map } from 'udp-react-stencil-component-library';\n\nexport interface UdpMapProps {\n /* Enables the toolbar */\n enableToolbar?: boolean;\n\n /* Title appearing on map */\n mapTitle?: string;\n\n /* Feature data (in either Geo-JSON format or not). Geo-JSON format: [{ type: string, id: string, geometry: { type: 'Point' | 'LineString' | 'Polygon', coordinates: Coordinate }, properties: any }] */\n data?: any[];\n\n /* Boolean stating if the data is in Geo-JSON format */\n isGeoJsonFormat?: boolean;\n\n /* Method - If data is not in Geo-JSON format, returns data in Geo-JSON format */\n geoJsonMappingConfig?: any;\n\n /* Allows zoom */\n enableZoom?: boolean;\n\n /* Default map zoom */\n mapZoom?: number;\n\n /* Default map center */\n mapCenter?: any;\n\n /* Map height */\n mapHeight?: string;\n\n /* Coordinate reference system used */\n crs?: any;\n\n /* Map feature projection used */\n mapProjection?: string;\n\n /* Map data projection used */\n mapDataProjection?: string;\n\n /* Method - Custom filter for map features */\n getFilteredMapData?: any;\n\n /* Method - Returns custom styles for features */\n getFeatureStyles?: any;\n\n /* Method - Returns custom styles for selected features */\n getSelectedFeatureStyles?: any;\n\n /* Custom filter panel */\n filterPanel?: string;\n\n /* Method - Callback to filter features from custom filter panel */\n filterPanelCallback?: any;\n\n /* Allows selecting tile layer */\n enableTileSelection?: boolean;\n\n /* List of tile layers visible on the map */\n tileLayersOptions?: any[];\n\n /* Default tile layer name */\n defaultTileOptionName?: string;\n\n /* List of options for vector layers */\n layerOptions?: any[];\n\n /* Vector layers selected in the layer filter on initial map load */\n initialSelectedLayers?: any[];\n\n /* Callback to return layers that are selected */\n handleSelectLayersCallback: any;\n\n /* Custom action panel for selected features */\n bulkSelectedFeaturesActionPanel?: string;\n\n /* Method - Retrieves selected features when bulk selected */\n handleSetSelectedFeaturesOnBulkSelect: any;\n\n /* Method - Retrieves selected feature when individually selected */\n handleSetSelectedFeatureOnSelect: any;\n\n /* Enables filtering layers by role */\n filterLayersByRole: boolean;\n\n /* Layer keys to get the current feature layer when adding layers with features to the map */\n layerKeys?: string[];\n\n /* Layer key separator to get the current feature layer when adding layers with features to the map */\n layerKeySeparator?: string;\n\n /* Authenticated user from Unity - used to filter layers by role */\n user?: any;\n\n /* Layers assigned to roles */\n layerRoles?: any;\n\n /* Callback method to refresh map */\n handleRefresh?: any;\n\n /* Custom tooltip message on refresh button */\n refreshButtonTooltip?: string;\n\n /* Map is read-only (setting true removes the add, edit, delete functionality) */\n readOnlyMap: boolean;\n\n /* Enables adding a new feature by drawing on the map */\n enableAdd: boolean;\n\n /* When adding features on the map by drawing, this callback method returns the newly added features */\n handleAddNewFeatures: any;\n\n /* When adding features by drawing, add multiple features */\n addMultipleFeatures: boolean;\n\n /* Enables splitting line strings on the map */\n enableSplitFeature: boolean;\n\n /* Callback function to return split feature */\n handleSplitFeature: any;\n\n /* Enables viewing a selected feature */\n enableViewFeature: boolean;\n\n /* Method to enable viewing a selected feature */\n handleViewFeature: any;\n\n /* Enables deleting a selected feature */\n enableDeleteFeature: boolean;\n\n /* Callback method to handle deleting a selected feature */\n handleDeleteFeature?: any;\n\n /* Enables editing a selected feature */\n enableEditFeature: boolean;\n\n /* Callback method to handle editing a selected feature */\n handleEditFeature?: any;\n\n /* Callback method to return map zoom and extent when the resolution changes */\n handleGetZoomExtent?: any;\n\n /* Configuration object for customizing the popover card's appearance or behavior */\n cardConfig?: any;\n\n /* Array of primary action configurations for the popover (e.g., buttons) */\n popoverPrimaryActions?: { id?: string; name: string; iconName: string; onClick: (data: any) => void }[];\n\n /* Array of additional actions for the popover's \"more\" icon button (e.g., menu items) */\n popoverMoreIconButtonActions?: { id?: string; name: string; iconName: string; onClick: (data: any) => void }[];\n\n /* Function to get the message text to display in the popover, based on feature data */\n getMessagePopover?: (data: any) => string;\n\n /* Function to get the icon to display in the popover, based on feature data */\n getMessageIconPopover?: (data: any) => any;\n\n /* Boolean to control whether the message icon in the popover should be hidden */\n hideMessageIconPopover?: boolean;\n\n /* List of layers that are read only */\n readOnlyLayers?: string[];\n\n minZoom?: number;\n maxZoom?: number\n}\n\nexport const UdpMap: React.FC<UdpMapProps> = (props: UdpMapProps) => {\n return <Map {...props} />;\n};\n"],"mappings":";;;;AAuKA,MAAaA,YAAiC,UAAuB;AACnE,QAAO,oCAACC,QAAQ,MAAS"}
1
+ {"version":3,"file":"UdpMap-5NE3rUIS.js","names":["UdpMap: React.FC<UdpMapProps>","Map"],"sources":["../src/UI/maps/UdpMap.tsx"],"sourcesContent":["import React from 'react';\nimport { UdpMap as Map } from 'udp-react-stencil-component-library';\n\nexport interface UdpMapProps {\n /* Enables the toolbar */\n enableToolbar?: boolean;\n\n /* Title appearing on map */\n mapTitle?: string;\n\n /* Feature data (in either Geo-JSON format or not). Geo-JSON format: [{ type: string, id: string, geometry: { type: 'Point' | 'LineString' | 'Polygon', coordinates: Coordinate }, properties: any }] */\n data?: any[];\n\n /* Boolean stating if the data is in Geo-JSON format */\n isGeoJsonFormat?: boolean;\n\n /* Method - If data is not in Geo-JSON format, returns data in Geo-JSON format */\n geoJsonMappingConfig?: any;\n\n /* Allows zoom */\n enableZoom?: boolean;\n\n /* Default map zoom */\n mapZoom?: number;\n\n /* Default map center */\n mapCenter?: any;\n\n /* Map height */\n mapHeight?: string;\n\n /* Coordinate reference system used */\n crs?: any;\n\n /* Map feature projection used */\n mapProjection?: string;\n\n /* Map data projection used */\n mapDataProjection?: string;\n\n /* Method - Custom filter for map features */\n getFilteredMapData?: any;\n\n /* Method - Returns custom styles for features */\n getFeatureStyles?: any;\n\n /* Method - Returns custom styles for selected features */\n getSelectedFeatureStyles?: any;\n\n /* Custom filter panel */\n filterPanel?: string;\n\n /* Method - Callback to filter features from custom filter panel */\n filterPanelCallback?: any;\n\n /* Allows selecting tile layer */\n enableTileSelection?: boolean;\n\n /* List of tile layers visible on the map */\n tileLayersOptions?: any[];\n\n /* Default tile layer name */\n defaultTileOptionName?: string;\n\n /* List of options for vector layers */\n layerOptions?: any[];\n\n /* Vector layers selected in the layer filter on initial map load */\n initialSelectedLayers?: any[];\n\n /* Callback to return layers that are selected */\n handleSelectLayersCallback: any;\n\n /* Custom action panel for selected features */\n bulkSelectedFeaturesActionPanel?: string;\n\n /* Method - Retrieves selected features when bulk selected */\n handleSetSelectedFeaturesOnBulkSelect: any;\n\n /* Method - Retrieves selected feature when individually selected */\n handleSetSelectedFeatureOnSelect: any;\n\n /* Enables filtering layers by role */\n filterLayersByRole: boolean;\n\n /* Layer keys to get the current feature layer when adding layers with features to the map */\n layerKeys?: string[];\n\n /* Layer key separator to get the current feature layer when adding layers with features to the map */\n layerKeySeparator?: string;\n\n /* Authenticated user from Unity - used to filter layers by role */\n user?: any;\n\n /* Layers assigned to roles */\n layerRoles?: any;\n\n /* Callback method to refresh map */\n handleRefresh?: any;\n\n /* Custom tooltip message on refresh button */\n refreshButtonTooltip?: string;\n\n /* Map is read-only (setting true removes the add, edit, delete functionality) */\n readOnlyMap: boolean;\n\n /* Enables adding a new feature by drawing on the map */\n enableAdd: boolean;\n\n /* When adding features on the map by drawing, this callback method returns the newly added features */\n handleAddNewFeatures: any;\n\n /* When adding features by drawing, add multiple features */\n addMultipleFeatures: boolean;\n\n /* Enables splitting line strings on the map */\n enableSplitFeature: boolean;\n\n /* Callback function to return split feature */\n handleSplitFeature: any;\n\n /* Enables viewing a selected feature */\n enableViewFeature: boolean;\n\n /* Method to enable viewing a selected feature */\n handleViewFeature: any;\n\n /* Enables deleting a selected feature */\n enableDeleteFeature: boolean;\n\n /* Callback method to handle deleting a selected feature */\n handleDeleteFeature?: any;\n\n /* Enables editing a selected feature */\n enableEditFeature: boolean;\n\n /* Callback method to handle editing a selected feature */\n handleEditFeature?: any;\n\n /* Callback method to return map zoom and extent when the resolution changes */\n handleGetZoomExtent?: any;\n\n /* Configuration object for customizing the popover card's appearance or behavior */\n cardConfig?: any;\n\n /* Array of primary action configurations for the popover (e.g., buttons) */\n popoverPrimaryActions?: { id?: string; name: string; iconName: string; onClick: (data: any) => void }[];\n\n /* Array of additional actions for the popover's \"more\" icon button (e.g., menu items) */\n popoverMoreIconButtonActions?: { id?: string; name: string; iconName: string; onClick: (data: any) => void }[];\n\n /* Function to get the message text to display in the popover, based on feature data */\n getMessagePopover?: (data: any) => string;\n\n /* Function to get the icon to display in the popover, based on feature data */\n getMessageIconPopover?: (data: any) => any;\n\n /* Boolean to control whether the message icon in the popover should be hidden */\n hideMessageIconPopover?: boolean;\n\n /* List of layers that are read only */\n readOnlyLayers?: string[];\n\n minZoom?: number;\n maxZoom?: number\n}\n\nexport const UdpMap: React.FC<UdpMapProps> = (props: UdpMapProps) => {\n return <Map {...props} />;\n};\n"],"mappings":";;;;AAuKA,MAAaA,YAAiC,UAAuB;AACnE,QAAO,oCAACC,QAAQ,MAAS"}
@@ -48,15 +48,15 @@ const PrivateRoute = ({ ...otherProps }) => {
48
48
 
49
49
  //#endregion
50
50
  //#region src/routes/UdpRoutes.jsx
51
- const VirtualBrowser = lazy(() => import("./VirtualBrowser-B99P35_L.js"));
52
- const MenuPage = lazy(() => import("./MenuPage-B4gixMrI.js"));
51
+ const VirtualBrowser = lazy(() => import("./VirtualBrowser-B66Iyn4h.js"));
52
+ const MenuPage = lazy(() => import("./MenuPage-BJsOWc5e.js"));
53
53
  const UdpPublicForm = lazy(() => import("./UdpPublicForm-DnPkG5dr.js"));
54
- const WorkflowContainer = lazy(() => import("./WorkflowContainer-Bf7oW53_.js"));
55
- const PasswordResetRedirect = lazy(() => import("./PasswordResetRedirect-P7XBzXp-.js"));
56
- const MyExportsPage = lazy(() => import("./MyExportsPage-BE8qvq_F.js"));
57
- const PageNotFoundRoute = lazy(() => import("./PageNotFoundRoute-Dw80_viU.js"));
58
- const UdpMaintenanceConfigPage = lazy(() => import("./UdpMaintenanceConfigPage-DdZJT9rB.js"));
59
- const UdpMaintenanceEnginePage = lazy(() => import("./UdpMaintenanceEnginePage-wDUWcIMQ.js"));
54
+ const WorkflowContainer = lazy(() => import("./WorkflowContainer-C6QfVid-.js"));
55
+ const PasswordResetRedirect = lazy(() => import("./PasswordResetRedirect-BMDMHdhE.js"));
56
+ const MyExportsPage = lazy(() => import("./MyExportsPage-ZP2V0i5h.js"));
57
+ const PageNotFoundRoute = lazy(() => import("./PageNotFoundRoute-CTaRcNjL.js"));
58
+ const UdpMaintenanceConfigPage = lazy(() => import("./UdpMaintenanceConfigPage-CC_gwu35.js"));
59
+ const UdpMaintenanceEnginePage = lazy(() => import("./UdpMaintenanceEnginePage-b5cm6uW2.js"));
60
60
  const UdpRoutes = (props) => {
61
61
  const { ...other } = props;
62
62
  return /* @__PURE__ */ React.createElement(Suspense, { fallback: /* @__PURE__ */ React.createElement(PageLoading, null) }, /* @__PURE__ */ React.createElement(Switch$1, null, /* @__PURE__ */ React.createElement(PrivateRoute, {
@@ -107,4 +107,4 @@ const UdpRoutes = (props) => {
107
107
 
108
108
  //#endregion
109
109
  export { PrivateRoute, UdpRoutes };
110
- //# sourceMappingURL=UdpRoutes-DIwOzZx9.js.map
110
+ //# sourceMappingURL=UdpRoutes-BVVsyngj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UdpRoutes-DIwOzZx9.js","names":["Switch","props"],"sources":["../src/routes/components/PageForbiddenRoute.jsx","../src/routes/PrivateRoute.jsx","../src/routes/UdpRoutes.jsx"],"sourcesContent":["import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { PageStatus } from './PageStatus';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: theme.spacing(4)\n }\n}));\n\nexport const PageForbiddenRoute = (props) => {\n const { title, statusCode, subheader, message, showButton } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n return (\n <div className={classes.root}>\n <PageStatus\n title={title ?? t('Page Forbidden')}\n statusCode={statusCode ?? '403'}\n subheader={\n subheader ?? t('Sorry, you do not have permission to view this page.')\n }\n message={message ?? t('Please contact an administrator to get access.')}\n to='/'\n buttonLabel={t('Back to Home Page')}\n showButton={showButton}\n />\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useIsUnityAuthenticated } from '../utilities/auth/useIsUnityAuthenticated';\nimport { useUser } from '../utilities/auth/useUser';\nimport { PageForbiddenRoute } from './components/PageForbiddenRoute';\n\nexport const PrivateRoute = ({ ...otherProps }) => {\n const isAuthenticated = useIsUnityAuthenticated();\n const user = useUser();\n const { t } = useTranslation();\n \n const userHasAccessToTenant = useMemo(() => {\n if (user?.tenantIds?.includes(user.currentTenantId)) {\n return true;\n }\n return false;\n }, [user]);\n\n if (!userHasAccessToTenant && isAuthenticated && user?.statusCode === 200) {\n return (\n <Route\n path='*'\n render={(props) => (\n <PageForbiddenRoute\n message={t('You do not have access to this tenant. Please select a different Tenant.')}\n showButton={false}\n />\n )}\n />\n );\n }\n\n if (isAuthenticated && user?.statusCode === 200) {\n return <Route {...otherProps} />;\n }\n\n return null;\n};\n","import React, { Suspense, lazy } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport { PrivateRoute } from './PrivateRoute';\nimport { UdpPageEnums } from '../enums/pageEnums';\nimport { ConfigService } from 'udp-react-stencil-component-library';\nimport { PageLoading } from '../UI/feedback/PageLoading';\n\n// Lazy load route components\nconst VirtualBrowser = lazy(() =>\n import('../maintenanceEngine/virtualBrowser/VirtualBrowser')\n);\nconst MenuPage = lazy(() => import('../menuPage/MenuPage'));\nconst UdpPublicForm = lazy(() => import('../udp/pages/UdpPublicForm'));\nconst WorkflowContainer = lazy(() => import('../workflow/WorkflowContainer'));\nconst PasswordResetRedirect = lazy(() =>\n import('./components/PasswordResetRedirect')\n);\nconst MyExportsPage = lazy(() => import('../udp/export/MyExportsPage'));\nconst PageNotFoundRoute = lazy(() => import('./components/PageNotFoundRoute'));\nconst UdpMaintenanceConfigPage = lazy(() =>\n import('../udp/pages/UdpMaintenanceConfigPage')\n);\nconst UdpMaintenanceEnginePage = lazy(() =>\n import('../udp/pages/UdpMaintenanceEnginePage')\n);\n\nexport const UdpRoutes = (props) => {\n const { ...other } = props;\n return (\n <Suspense fallback={<PageLoading />}>\n <Switch>\n <PrivateRoute\n path='/virtual/:id'\n render={(props) => <VirtualBrowser {...props} {...other} />}\n />\n <PrivateRoute\n path='/menupage/:id'\n render={(props) => <MenuPage {...props} {...other} />}\n />\n\n <Route\n path={`/page/${UdpPageEnums.Udp_Public_Forms_Page}`}\n render={(props) => <UdpPublicForm {...props} {...other} />}\n />\n <Route\n path={`/passwordresetsuccess`}\n render={(props) => <PasswordResetRedirect props={props} />}\n />\n <PrivateRoute\n path='/workflowtask/:id'\n render={(props) => <WorkflowContainer {...props} {...other} />}\n />\n <PrivateRoute\n path='/myexports'\n render={(props) => (\n <MyExportsPage\n productId={ConfigService.config.UNITY_PRODUCT_ID}\n {...props}\n {...other}\n />\n )}\n />\n <PrivateRoute\n path='/crudbrowser'\n render={(props) => <UdpMaintenanceEnginePage {...props} />}\n />\n <PrivateRoute\n path='/tablebrowser'\n render={(props) => <UdpMaintenanceConfigPage {...props} />}\n />\n <PrivateRoute path='*' component={PageNotFoundRoute} />\n </Switch>\n </Suspense>\n );\n};\n"],"mappings":";;;;;;;;;;;;AAKA,MAAM,YAAY,YAAY,WAAW,EACvC,MAAM,EACJ,WAAW,MAAM,QAAQ,EAAE,EAC5B,EACF,EAAE;AAEH,MAAa,sBAAsB,UAAU;CAC3C,MAAM,EAAE,OAAO,YAAY,WAAW,SAAS,eAAe;CAC9D,MAAM,UAAU,WAAW;CAC3B,MAAM,EAAE,MAAM,gBAAgB;AAE9B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC;EACC,OAAO,SAAS,EAAE,iBAAiB;EACnC,YAAY,cAAc;EAC1B,WACE,aAAa,EAAE,uDAAuD;EAExE,SAAS,WAAW,EAAE,iDAAiD;EACvE,IAAG;EACH,aAAa,EAAE,oBAAoB;EACvB;GACZ,CACE;;;;;ACtBV,MAAa,gBAAgB,EAAE,GAAG,iBAAiB;CACjD,MAAM,kBAAkB,yBAAyB;CACjD,MAAM,OAAO,SAAS;CACtB,MAAM,EAAE,MAAM,gBAAgB;AAS9B,KAAI,CAP0B,cAAc;AAC1C,MAAI,MAAM,WAAW,SAAS,KAAK,gBAAgB,CACjD,QAAO;AAET,SAAO;IACN,CAAC,KAAK,CAAC,IAEoB,mBAAmB,MAAM,eAAe,IACpE,QACE,oCAAC;EACC,MAAK;EACL,SAAS,UACP,oCAAC;GACC,SAAS,EAAE,2EAA2E;GACtF,YAAY;IACZ;GAEJ;AAIN,KAAI,mBAAmB,MAAM,eAAe,IAC1C,QAAO,oCAAC,OAAU,WAAc;AAGlC,QAAO;;;;;AC7BT,MAAM,iBAAiB,WACrB,OAAO,gCACR;AACD,MAAM,WAAW,WAAW,OAAO,0BAAwB;AAC3D,MAAM,gBAAgB,WAAW,OAAO,+BAA8B;AACtE,MAAM,oBAAoB,WAAW,OAAO,mCAAiC;AAC7E,MAAM,wBAAwB,WAC5B,OAAO,uCACR;AACD,MAAM,gBAAgB,WAAW,OAAO,+BAA+B;AACvE,MAAM,oBAAoB,WAAW,OAAO,mCAAkC;AAC9E,MAAM,2BAA2B,WAC/B,OAAO,0CACR;AACD,MAAM,2BAA2B,WAC/B,OAAO,0CACR;AAED,MAAa,aAAa,UAAU;CAClC,MAAM,EAAE,GAAG,UAAU;AACrB,QACE,oCAAC,YAAS,UAAU,oCAAC,kBAAc,IACjC,oCAACA,gBACC,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAe,GAAIC;GAAO,GAAI;IAAS;GAC3D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAS,GAAIA;GAAO,GAAI;IAAS;GACrD,EAEF,oCAAC;EACC,MAAM,SAAS,aAAa;EAC5B,SAAS,YAAU,oCAAC;GAAc,GAAIA;GAAO,GAAI;IAAS;GAC1D,EACF,oCAAC;EACC,MAAM;EACN,SAAS,YAAU,oCAAC,yBAAsB,OAAOA,UAAS;GAC1D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAkB,GAAIA;GAAO,GAAI;IAAS;GAC9D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YACP,oCAAC;GACC,WAAW,cAAc,OAAO;GAChC,GAAIA;GACJ,GAAI;IACJ;GAEJ,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC,0BAA6BA,QAAS;GAC1D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC,0BAA6BA,QAAS;GAC1D,EACF,oCAAC;EAAa,MAAK;EAAI,WAAW;GAAqB,CAChD,CACA"}
1
+ {"version":3,"file":"UdpRoutes-BVVsyngj.js","names":["Switch","props"],"sources":["../src/routes/components/PageForbiddenRoute.jsx","../src/routes/PrivateRoute.jsx","../src/routes/UdpRoutes.jsx"],"sourcesContent":["import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { PageStatus } from './PageStatus';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: theme.spacing(4)\n }\n}));\n\nexport const PageForbiddenRoute = (props) => {\n const { title, statusCode, subheader, message, showButton } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n return (\n <div className={classes.root}>\n <PageStatus\n title={title ?? t('Page Forbidden')}\n statusCode={statusCode ?? '403'}\n subheader={\n subheader ?? t('Sorry, you do not have permission to view this page.')\n }\n message={message ?? t('Please contact an administrator to get access.')}\n to='/'\n buttonLabel={t('Back to Home Page')}\n showButton={showButton}\n />\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useIsUnityAuthenticated } from '../utilities/auth/useIsUnityAuthenticated';\nimport { useUser } from '../utilities/auth/useUser';\nimport { PageForbiddenRoute } from './components/PageForbiddenRoute';\n\nexport const PrivateRoute = ({ ...otherProps }) => {\n const isAuthenticated = useIsUnityAuthenticated();\n const user = useUser();\n const { t } = useTranslation();\n \n const userHasAccessToTenant = useMemo(() => {\n if (user?.tenantIds?.includes(user.currentTenantId)) {\n return true;\n }\n return false;\n }, [user]);\n\n if (!userHasAccessToTenant && isAuthenticated && user?.statusCode === 200) {\n return (\n <Route\n path='*'\n render={(props) => (\n <PageForbiddenRoute\n message={t('You do not have access to this tenant. Please select a different Tenant.')}\n showButton={false}\n />\n )}\n />\n );\n }\n\n if (isAuthenticated && user?.statusCode === 200) {\n return <Route {...otherProps} />;\n }\n\n return null;\n};\n","import React, { Suspense, lazy } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport { PrivateRoute } from './PrivateRoute';\nimport { UdpPageEnums } from '../enums/pageEnums';\nimport { ConfigService } from 'udp-react-stencil-component-library';\nimport { PageLoading } from '../UI/feedback/PageLoading';\n\n// Lazy load route components\nconst VirtualBrowser = lazy(() =>\n import('../maintenanceEngine/virtualBrowser/VirtualBrowser')\n);\nconst MenuPage = lazy(() => import('../menuPage/MenuPage'));\nconst UdpPublicForm = lazy(() => import('../udp/pages/UdpPublicForm'));\nconst WorkflowContainer = lazy(() => import('../workflow/WorkflowContainer'));\nconst PasswordResetRedirect = lazy(() =>\n import('./components/PasswordResetRedirect')\n);\nconst MyExportsPage = lazy(() => import('../udp/export/MyExportsPage'));\nconst PageNotFoundRoute = lazy(() => import('./components/PageNotFoundRoute'));\nconst UdpMaintenanceConfigPage = lazy(() =>\n import('../udp/pages/UdpMaintenanceConfigPage')\n);\nconst UdpMaintenanceEnginePage = lazy(() =>\n import('../udp/pages/UdpMaintenanceEnginePage')\n);\n\nexport const UdpRoutes = (props) => {\n const { ...other } = props;\n return (\n <Suspense fallback={<PageLoading />}>\n <Switch>\n <PrivateRoute\n path='/virtual/:id'\n render={(props) => <VirtualBrowser {...props} {...other} />}\n />\n <PrivateRoute\n path='/menupage/:id'\n render={(props) => <MenuPage {...props} {...other} />}\n />\n\n <Route\n path={`/page/${UdpPageEnums.Udp_Public_Forms_Page}`}\n render={(props) => <UdpPublicForm {...props} {...other} />}\n />\n <Route\n path={`/passwordresetsuccess`}\n render={(props) => <PasswordResetRedirect props={props} />}\n />\n <PrivateRoute\n path='/workflowtask/:id'\n render={(props) => <WorkflowContainer {...props} {...other} />}\n />\n <PrivateRoute\n path='/myexports'\n render={(props) => (\n <MyExportsPage\n productId={ConfigService.config.UNITY_PRODUCT_ID}\n {...props}\n {...other}\n />\n )}\n />\n <PrivateRoute\n path='/crudbrowser'\n render={(props) => <UdpMaintenanceEnginePage {...props} />}\n />\n <PrivateRoute\n path='/tablebrowser'\n render={(props) => <UdpMaintenanceConfigPage {...props} />}\n />\n <PrivateRoute path='*' component={PageNotFoundRoute} />\n </Switch>\n </Suspense>\n );\n};\n"],"mappings":";;;;;;;;;;;;AAKA,MAAM,YAAY,YAAY,WAAW,EACvC,MAAM,EACJ,WAAW,MAAM,QAAQ,EAAE,EAC5B,EACF,EAAE;AAEH,MAAa,sBAAsB,UAAU;CAC3C,MAAM,EAAE,OAAO,YAAY,WAAW,SAAS,eAAe;CAC9D,MAAM,UAAU,WAAW;CAC3B,MAAM,EAAE,MAAM,gBAAgB;AAE9B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC;EACC,OAAO,SAAS,EAAE,iBAAiB;EACnC,YAAY,cAAc;EAC1B,WACE,aAAa,EAAE,uDAAuD;EAExE,SAAS,WAAW,EAAE,iDAAiD;EACvE,IAAG;EACH,aAAa,EAAE,oBAAoB;EACvB;GACZ,CACE;;;;;ACtBV,MAAa,gBAAgB,EAAE,GAAG,iBAAiB;CACjD,MAAM,kBAAkB,yBAAyB;CACjD,MAAM,OAAO,SAAS;CACtB,MAAM,EAAE,MAAM,gBAAgB;AAS9B,KAAI,CAP0B,cAAc;AAC1C,MAAI,MAAM,WAAW,SAAS,KAAK,gBAAgB,CACjD,QAAO;AAET,SAAO;IACN,CAAC,KAAK,CAAC,IAEoB,mBAAmB,MAAM,eAAe,IACpE,QACE,oCAAC;EACC,MAAK;EACL,SAAS,UACP,oCAAC;GACC,SAAS,EAAE,2EAA2E;GACtF,YAAY;IACZ;GAEJ;AAIN,KAAI,mBAAmB,MAAM,eAAe,IAC1C,QAAO,oCAAC,OAAU,WAAc;AAGlC,QAAO;;;;;AC7BT,MAAM,iBAAiB,WACrB,OAAO,gCACR;AACD,MAAM,WAAW,WAAW,OAAO,0BAAwB;AAC3D,MAAM,gBAAgB,WAAW,OAAO,+BAA8B;AACtE,MAAM,oBAAoB,WAAW,OAAO,mCAAiC;AAC7E,MAAM,wBAAwB,WAC5B,OAAO,uCACR;AACD,MAAM,gBAAgB,WAAW,OAAO,+BAA+B;AACvE,MAAM,oBAAoB,WAAW,OAAO,mCAAkC;AAC9E,MAAM,2BAA2B,WAC/B,OAAO,0CACR;AACD,MAAM,2BAA2B,WAC/B,OAAO,0CACR;AAED,MAAa,aAAa,UAAU;CAClC,MAAM,EAAE,GAAG,UAAU;AACrB,QACE,oCAAC,YAAS,UAAU,oCAAC,kBAAc,IACjC,oCAACA,gBACC,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAe,GAAIC;GAAO,GAAI;IAAS;GAC3D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAS,GAAIA;GAAO,GAAI;IAAS;GACrD,EAEF,oCAAC;EACC,MAAM,SAAS,aAAa;EAC5B,SAAS,YAAU,oCAAC;GAAc,GAAIA;GAAO,GAAI;IAAS;GAC1D,EACF,oCAAC;EACC,MAAM;EACN,SAAS,YAAU,oCAAC,yBAAsB,OAAOA,UAAS;GAC1D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAkB,GAAIA;GAAO,GAAI;IAAS;GAC9D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YACP,oCAAC;GACC,WAAW,cAAc,OAAO;GAChC,GAAIA;GACJ,GAAI;IACJ;GAEJ,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC,0BAA6BA,QAAS;GAC1D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC,0BAA6BA,QAAS;GAC1D,EACF,oCAAC;EAAa,MAAK;EAAI,WAAW;GAAqB,CAChD,CACA"}
@@ -69,8 +69,8 @@ import "./DynamicContainerWithMenu-DKjYgu_E.js";
69
69
  import "./IconButtonWithToolTip-DQacH9wQ.js";
70
70
  import "./HintPanel-Bhxty7to.js";
71
71
  import "./SearchOperator-BLSwbmXG.js";
72
- import "./virtualActions-B5rStgo5.js";
73
- import "./VirtualForm-DQ4YM-w2.js";
74
- import { VirtualBrowser } from "./VirtualBrowser-C2f8AnJa.js";
72
+ import { VirtualBrowser, VirtualBrowser_default } from "./VirtualBrowser-BansR6-F.js";
73
+ import "./virtualActions-B-cs7Mxr.js";
74
+ import "./VirtualForm-DlTtINdK.js";
75
75
 
76
- export { VirtualBrowser };
76
+ export { VirtualBrowser, VirtualBrowser_default as default };
@@ -14,7 +14,7 @@ import { useSetLocationState } from "./useSetLocationState-BGgFvNVh.js";
14
14
  import { executeQueryWithParameters } from "./methodUtils-Bgi0VCWP.js";
15
15
  import { useBuildEnvironment } from "./EnvironmentRibbon-CPm8YnJ4.js";
16
16
  import { ActionsRenderer, AmbientGridTemplate } from "./AmbientGridTemplate-VQA7Q_L7.js";
17
- import { VirtualForm } from "./VirtualForm-DQ4YM-w2.js";
17
+ import { VirtualForm } from "./VirtualForm-DlTtINdK.js";
18
18
  import React, { useCallback, useEffect, useMemo, useState } from "react";
19
19
  import { Divider, Typography, makeStyles } from "@material-ui/core";
20
20
  import { ConfigService } from "udp-react-stencil-component-library";
@@ -420,7 +420,8 @@ const VirtualBrowser = (props) => {
420
420
  ...other
421
421
  }), SideOptionList);
422
422
  };
423
+ var VirtualBrowser_default = VirtualBrowser;
423
424
 
424
425
  //#endregion
425
- export { VirtualBrowser, VirtualTableColumnDefs, VirtualTableSidePanel, defaultColActionsDef };
426
- //# sourceMappingURL=VirtualBrowser-C2f8AnJa.js.map
426
+ export { VirtualBrowser, VirtualBrowser_default, VirtualTableColumnDefs, VirtualTableSidePanel, defaultColActionsDef };
427
+ //# sourceMappingURL=VirtualBrowser-BansR6-F.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualBrowser-C2f8AnJa.js","names":["value","PrimaryActionButton"],"sources":["../src/maintenanceEngine/virtualBrowser/VirtualTableColumnDefs.js","../src/maintenanceEngine/virtualBrowser/VirtualTableSidePanel.jsx","../src/maintenanceEngine/virtualBrowser/VirtualBrowser.jsx"],"sourcesContent":["import { toTitleCase } from '../../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n headerName: '',\n field: '',\n minWidth: 80,\n autoHeight: false,\n sortable: true\n};\n\nexport const VirtualTableColumnDefs = (\n tableDescription,\n actionList,\n columnName = 'Actions',\n crudTableActionRenderName = 'actionsRenderer',\n panelDirection = 'right'\n) => {\n let columnDefs =\n tableDescription?.reduce((defs, element) => {\n defs.push({\n ...defaultGridColumn,\n headerName: toTitleCase(element?.name || ''),\n field: element?.name\n });\n return defs;\n }, []) || [];\n\n columnDefs.push({\n headerName:\n crudTableActionRenderName === 'actionsRenderer' ? 'Actions' : columnName,\n filter: false,\n pinned: panelDirection,\n width: 150,\n maxWidth: 180,\n cellRenderer: crudTableActionRenderName,\n cellRendererParams: {\n actionList\n },\n valueGetter: (params) => params.data,\n suppressMenu: true,\n sortable: false,\n cellStyle: { display: 'flex', alignItems: 'center' }\n });\n\n return columnDefs;\n};\n\nexport const defaultColActionsDef = {\n resizable: true,\n editable: false,\n sortable: true,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true\n};\n","import { Divider, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { PageContainer } from '../../page/PageContainer';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { Skeleton } from '@material-ui/lab';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { VirtualForm } from '../../UI/forms/VirtualForm';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n divider: {\n marginTop: theme.spacing(2)\n }\n}));\n\nconst FIELD_NUMBER = 10;\n\nexport const VirtualTableSidePanel = (props) => {\n const {\n tableDescription,\n value,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps\n } = props;\n const user = useUser();\n const classes = useStyles();\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageId}`,\n {},\n !!!pageId,\n false\n );\n\n const skeleton = useMemo(() => {\n const skeletonArr = [];\n for (let i = 0; i < FIELD_NUMBER; i++) {\n skeletonArr.push(\n <>\n <Skeleton key={i} variant='rect' className={classes.skeleton} />\n <LayoutUnit unit='xxs' />\n </>\n );\n }\n return skeletonArr;\n }, [classes]);\n\n const sideSheetContent = useMemo(() => {\n if (page) {\n return (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={pageId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n nodeObj: crudTableEditionData,\n setSideSheetWidth: setSideSheetWidth,\n setSideSheetButtonLabel: setSideSheetButtonLabel,\n setSideSheetOnSubmit: setSideSheetOnSubmit,\n closeSideSheet: closeSideSheet,\n setSideSheetProps: setSideSheetProps,\n onCreate: onCreate,\n onUpdate: onUpdate\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else {\n return (\n <>\n <VirtualForm\n tableDescription={tableDescription}\n rowValue={value}\n closeSideSheet={closeSideSheet}\n onCreate={onCreate}\n onUpdate={onUpdate}\n />\n <div className={classes.divider}>\n <Divider />\n </div>\n </>\n );\n }\n }, [\n page,\n user,\n pageId,\n crudTableEditionData,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n closeSideSheet,\n onCreate,\n onUpdate,\n classes,\n tableDescription,\n value\n ]);\n\n return (\n <div>\n {loadingPage ? (\n <>\n {skeleton.map((sk) => sk)}\n <LayoutUnit unit='md' />\n <Skeleton variant='rect' className={classes.skeletonButton} />\n </>\n ) : (\n sideSheetContent\n )}\n </div>\n );\n};\n\nVirtualTableSidePanel.propTypes = {\n /**\n * Description of the table\n */\n tableDescription: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport PrimaryActionButton from '../../UI/inputs/buttons/PrimaryActionButton';\nimport { AmbientGridTemplate } from '../../UI/templates/AmbientGridTemplate';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { ActionsRenderer } from '../../UI/templates/ui/renderers/ActionsRenderer';\nimport { VirtualTableColumnDefs } from './VirtualTableColumnDefs';\nimport { AddIcon, DeleteIcon, EditIcon } from '@fluentui/react-icons';\nimport { Typography } from '@material-ui/core';\nimport { format } from 'date-fns';\nimport { getPathObject } from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { executeQueryWithParameters } from '../../udp/utilities/methodUtils';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { useLocation } from 'react-router-dom';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { VirtualTableSidePanel } from './VirtualTableSidePanel';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { useBuildEnvironment } from '../../shell/ui/EnvironmentRibbon';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useSetLocationState } from '../../hooks/useSetLocationState';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useSearchParams = () => {\n const { search } = useLocation();\n return useMemo(() => new URLSearchParams(search), [search]);\n};\n\nexport const VirtualBrowser = (props) => {\n const { ...other } = props;\n const urlSearchParams = useSearchParams();\n const location = useLocation();\n const { value, promotedEntity } = location.state || {};\n const parts = location?.pathname?.split('/');\n const virtualId = value\n ? value?.id\n : '' || parts\n ? parts[parts.length - 1]\n : null;\n\n const user = useUser();\n const buildEnv = useBuildEnvironment();\n const [isSheetOpen, setSheetOpen] = useState(false);\n const [sideSheetWidth, setSideSheetWidth] = useState(600);\n const [sideSheetButtonLabel, setSideSheetButtonLabel] = useState('');\n const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n const [sideSheetOnSubmit, setSideSheetOnSubmit] = useState(\n () => () => console.warn('onSubmit not set')\n );\n const [selectedEntity, setSelectedEntity] = useState(promotedEntity);\n const { t } = useTranslation();\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n const setLocationState = useSetLocationState();\n\n const closeSheet = useCallback(() => {\n setSheetOpen(false);\n }, []);\n\n const entityName = useMemo(() => {\n if (selectedEntity) {\n return selectedEntity.entityName || '';\n } else {\n return urlSearchParams.has('entityName') === true\n ? urlSearchParams.get('entityName')\n : '';\n }\n }, [selectedEntity, urlSearchParams]);\n\n const createApiMethodPageId = useMemo(() => {\n return selectedEntity?.unityBaseCreateMethod?.pageId;\n }, [selectedEntity]);\n\n const [{ data: tpacb, loading: loadingTpacb, error: tpacbError }] =\n useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!user || !!promotedEntity,\n false\n );\n\n const [{ data: promotedMethodEntities }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${tpacb?.apiCatalogId}/promotedMethodEntities/${entityName}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!tpacb || !!!user || !!!entityName,\n false\n );\n\n // Get all rows of an entity\n const [{ data: entityData, loading: isLoading }, fetchEntityData] =\n useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseGetDataMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n // Get all rows of an entity\n const [\n { data: tableDescription, loading: tableDescriptionLoading },\n fetchTableDescription\n ] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseDescribeMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const constructVirtualValuesForRequest = useCallback(\n (values) => {\n if (!tableDescription) {\n return [];\n }\n const bodyArr = [];\n tableDescription.forEach((column) => {\n const valueExist =\n typeof values[column.name] == 'boolean' || values[column.name];\n if (column.name || valueExist) {\n switch (getSanitizedName(entityName?.toLowerCase())) {\n case UdpEnums.Udp_Lookup.toLowerCase():\n bodyArr.push({\n lookupColumnId: column.id,\n value: values[column.name]\n });\n break;\n default:\n }\n }\n });\n return bodyArr;\n },\n [tableDescription, entityName]\n );\n\n const handleOnCreate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualCreateMethod) {\n const requestArr = constructVirtualValuesForRequest(values);\n const data = { requestBody: requestArr, id: virtualId };\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualCreateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been created`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnUpdate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualUpdateMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, values.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity.unityBaseVirtualUpdateMethod.pathParameters,\n primaryKeyValues\n );\n const requestArr = constructVirtualValuesForRequest(values);\n let data = { requestBody: requestArr };\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject, requestBody: requestArr };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualUpdateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been updated`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\n if (selectedEntity?.unityBaseVirtualDeleteMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, value.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity?.unityBaseVirtualDeleteMethod.pathParameters,\n primaryKeyValues\n );\n let data = {};\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualDeleteMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been deleted`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId\n ]\n );\n\n const actionList = useMemo(() => {\n if (!selectedEntity) {\n return;\n }\n\n return [\n {\n id: 1, // Must be unique\n title: selectedEntity?.unityBaseVirtualUpdateMethod\n ? t('Edit')\n : t('Edit Method Not Accessible'),\n icon: EditIcon,\n onClick: null,\n opens: 'sideSheet',\n view: {\n component: VirtualTableSidePanel,\n properties: {\n tableDescription: tableDescription,\n onUpdate: handleOnUpdate,\n valuePropName: 'value',\n closeSideSheet: null,\n closeSideSheetPropName: 'closeSideSheet',\n pageId: selectedEntity?.unityBaseVirtualUpdateMethod?.pageId,\n isNewEntry: false\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualUpdateMethod\n },\n {\n id: 2, // Must be unique\n title: selectedEntity?.unityBaseVirtualDeleteMethod\n ? t('Delete')\n : t('Delete Method Not Accessible'),\n icon: DeleteIcon,\n onClick: null,\n opens: 'dialog',\n view: {\n component: null,\n properties: {\n title: t('Delete'),\n message: t('Are you sure you want to delete this row?'),\n labelOne: t('Cancel'),\n actionTwo: handleOnDelete,\n labelTwo: t('Confirm')\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualDeleteMethod\n }\n ];\n }, [selectedEntity, t, handleOnUpdate, handleOnDelete, tableDescription]);\n\n const columnDefs = useMemo(() => {\n if (tableDescription?.length) {\n return VirtualTableColumnDefs(tableDescription, actionList);\n }\n return [];\n }, [actionList, tableDescription]);\n\n const groupData = useMemo(() => {\n return columnDefs?.map((item) => {\n return {\n groupItem: item.field,\n label: item.headerName,\n value: item.field\n };\n });\n }, [columnDefs]);\n\n useEffect(() => {\n if (promotedMethodEntities) {\n setSelectedEntity(promotedMethodEntities);\n }\n }, [promotedMethodEntities]);\n\n useEffect(() => {\n if (virtualId) {\n const queryData = { id: virtualId };\n if (selectedEntity?.unityBaseGetDataMethod?.apiMethodId) {\n fetchEntityData({ data: queryData });\n }\n if (selectedEntity?.unityBaseDescribeMethod?.apiMethodId) {\n fetchTableDescription({ data: queryData });\n }\n }\n }, [selectedEntity, fetchEntityData, virtualId, fetchTableDescription]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n setLocationState({ label: t(value?.name) || t('Virtual Lookup') });\n }, [setLocationState, t, value]);\n\n const pab = (\n <PrimaryActionButton onClick={() => setSheetOpen && setSheetOpen(true)}>\n <Typography style={{ marginRight: 5 }}>Add</Typography>\n <AddIcon />\n </PrimaryActionButton>\n );\n\n const SideOptionList = useMemo(\n () => (\n <SideSheet\n open={isSheetOpen}\n onClose={closeSheet}\n title={`Add new ${entityName}`}\n width={sideSheetWidth}\n buttonLabel={sideSheetButtonLabel}\n onSubmit={sideSheetOnSubmit}\n {...otherSideSheetProps}\n >\n <VirtualTableSidePanel\n onCreate={handleOnCreate}\n closeSideSheet={closeSheet}\n pageId={createApiMethodPageId}\n setSideSheetWidth={setSideSheetWidth}\n setSideSheetButtonLabel={setSideSheetButtonLabel}\n setSideSheetOnSubmit={setSideSheetOnSubmit}\n setSideSheetProps={setOtherSideSheetProps}\n tableDescription={tableDescription}\n />\n </SideSheet>\n ),\n [\n isSheetOpen,\n closeSheet,\n entityName,\n sideSheetWidth,\n sideSheetButtonLabel,\n sideSheetOnSubmit,\n handleOnCreate,\n createApiMethodPageId,\n otherSideSheetProps,\n tableDescription\n ]\n );\n\n const formatData = useCallback(() => {\n if (entityData?.data && tableDescription) {\n let formattedEntityData = cloneDeep(entityData?.data);\n\n // get list of attributes that are datetime\n const datetimeFields = tableDescription?.reduce((fields, element) => {\n if (element?.type === 'datetime') {\n fields.push(element?.name);\n }\n return fields;\n }, []);\n\n if (datetimeFields.length) {\n formattedEntityData.forEach((e) => {\n Object.keys(e).forEach((key) => {\n // format all datetime fields\n if (datetimeFields.find((field) => field === key)) {\n // LAA UNT-2977: add null check to prevent default date from being added when null\n if (e[key] === null) return;\n e[key] = format(new Date(e[key]), 'yyyy/MM/dd kk:mm:ss');\n }\n });\n });\n }\n\n return formattedEntityData;\n }\n return [];\n }, [entityData, tableDescription]);\n\n return (\n <>\n <AmbientGridTemplate\n title={value?.name || entityData?.name}\n data={entityData ? formatData(entityData?.data) : []}\n columnDefs={columnDefs}\n groupingData={groupData}\n primaryActionButton={pab}\n frameworkComponents={{ actionsRenderer: ActionsRenderer }}\n height={`calc(100vh - ${buildEnv ? '139px' : '114px'})`}\n disableRowSelection={true}\n loading={isLoading}\n {...other}\n />\n {SideOptionList}\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"VirtualBrowser-BansR6-F.js","names":["value","PrimaryActionButton"],"sources":["../src/maintenanceEngine/virtualBrowser/VirtualTableColumnDefs.js","../src/maintenanceEngine/virtualBrowser/VirtualTableSidePanel.jsx","../src/maintenanceEngine/virtualBrowser/VirtualBrowser.jsx"],"sourcesContent":["import { toTitleCase } from '../../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n headerName: '',\n field: '',\n minWidth: 80,\n autoHeight: false,\n sortable: true\n};\n\nexport const VirtualTableColumnDefs = (\n tableDescription,\n actionList,\n columnName = 'Actions',\n crudTableActionRenderName = 'actionsRenderer',\n panelDirection = 'right'\n) => {\n let columnDefs =\n tableDescription?.reduce((defs, element) => {\n defs.push({\n ...defaultGridColumn,\n headerName: toTitleCase(element?.name || ''),\n field: element?.name\n });\n return defs;\n }, []) || [];\n\n columnDefs.push({\n headerName:\n crudTableActionRenderName === 'actionsRenderer' ? 'Actions' : columnName,\n filter: false,\n pinned: panelDirection,\n width: 150,\n maxWidth: 180,\n cellRenderer: crudTableActionRenderName,\n cellRendererParams: {\n actionList\n },\n valueGetter: (params) => params.data,\n suppressMenu: true,\n sortable: false,\n cellStyle: { display: 'flex', alignItems: 'center' }\n });\n\n return columnDefs;\n};\n\nexport const defaultColActionsDef = {\n resizable: true,\n editable: false,\n sortable: true,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true\n};\n","import { Divider, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { PageContainer } from '../../page/PageContainer';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { Skeleton } from '@material-ui/lab';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { VirtualForm } from '../../UI/forms/VirtualForm';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n divider: {\n marginTop: theme.spacing(2)\n }\n}));\n\nconst FIELD_NUMBER = 10;\n\nexport const VirtualTableSidePanel = (props) => {\n const {\n tableDescription,\n value,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps\n } = props;\n const user = useUser();\n const classes = useStyles();\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageId}`,\n {},\n !!!pageId,\n false\n );\n\n const skeleton = useMemo(() => {\n const skeletonArr = [];\n for (let i = 0; i < FIELD_NUMBER; i++) {\n skeletonArr.push(\n <>\n <Skeleton key={i} variant='rect' className={classes.skeleton} />\n <LayoutUnit unit='xxs' />\n </>\n );\n }\n return skeletonArr;\n }, [classes]);\n\n const sideSheetContent = useMemo(() => {\n if (page) {\n return (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={pageId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n nodeObj: crudTableEditionData,\n setSideSheetWidth: setSideSheetWidth,\n setSideSheetButtonLabel: setSideSheetButtonLabel,\n setSideSheetOnSubmit: setSideSheetOnSubmit,\n closeSideSheet: closeSideSheet,\n setSideSheetProps: setSideSheetProps,\n onCreate: onCreate,\n onUpdate: onUpdate\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else {\n return (\n <>\n <VirtualForm\n tableDescription={tableDescription}\n rowValue={value}\n closeSideSheet={closeSideSheet}\n onCreate={onCreate}\n onUpdate={onUpdate}\n />\n <div className={classes.divider}>\n <Divider />\n </div>\n </>\n );\n }\n }, [\n page,\n user,\n pageId,\n crudTableEditionData,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n closeSideSheet,\n onCreate,\n onUpdate,\n classes,\n tableDescription,\n value\n ]);\n\n return (\n <div>\n {loadingPage ? (\n <>\n {skeleton.map((sk) => sk)}\n <LayoutUnit unit='md' />\n <Skeleton variant='rect' className={classes.skeletonButton} />\n </>\n ) : (\n sideSheetContent\n )}\n </div>\n );\n};\n\nVirtualTableSidePanel.propTypes = {\n /**\n * Description of the table\n */\n tableDescription: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport PrimaryActionButton from '../../UI/inputs/buttons/PrimaryActionButton';\nimport { AmbientGridTemplate } from '../../UI/templates/AmbientGridTemplate';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { ActionsRenderer } from '../../UI/templates/ui/renderers/ActionsRenderer';\nimport { VirtualTableColumnDefs } from './VirtualTableColumnDefs';\nimport { AddIcon, DeleteIcon, EditIcon } from '@fluentui/react-icons';\nimport { Typography } from '@material-ui/core';\nimport { format } from 'date-fns';\nimport { getPathObject } from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { executeQueryWithParameters } from '../../udp/utilities/methodUtils';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { useLocation } from 'react-router-dom';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { VirtualTableSidePanel } from './VirtualTableSidePanel';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { useBuildEnvironment } from '../../shell/ui/EnvironmentRibbon';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useSetLocationState } from '../../hooks/useSetLocationState';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useSearchParams = () => {\n const { search } = useLocation();\n return useMemo(() => new URLSearchParams(search), [search]);\n};\n\nexport const VirtualBrowser = (props) => {\n const { ...other } = props;\n const urlSearchParams = useSearchParams();\n const location = useLocation();\n const { value, promotedEntity } = location.state || {};\n const parts = location?.pathname?.split('/');\n const virtualId = value\n ? value?.id\n : '' || parts\n ? parts[parts.length - 1]\n : null;\n\n const user = useUser();\n const buildEnv = useBuildEnvironment();\n const [isSheetOpen, setSheetOpen] = useState(false);\n const [sideSheetWidth, setSideSheetWidth] = useState(600);\n const [sideSheetButtonLabel, setSideSheetButtonLabel] = useState('');\n const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n const [sideSheetOnSubmit, setSideSheetOnSubmit] = useState(\n () => () => console.warn('onSubmit not set')\n );\n const [selectedEntity, setSelectedEntity] = useState(promotedEntity);\n const { t } = useTranslation();\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n const setLocationState = useSetLocationState();\n\n const closeSheet = useCallback(() => {\n setSheetOpen(false);\n }, []);\n\n const entityName = useMemo(() => {\n if (selectedEntity) {\n return selectedEntity.entityName || '';\n } else {\n return urlSearchParams.has('entityName') === true\n ? urlSearchParams.get('entityName')\n : '';\n }\n }, [selectedEntity, urlSearchParams]);\n\n const createApiMethodPageId = useMemo(() => {\n return selectedEntity?.unityBaseCreateMethod?.pageId;\n }, [selectedEntity]);\n\n const [{ data: tpacb, loading: loadingTpacb, error: tpacbError }] =\n useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!user || !!promotedEntity,\n false\n );\n\n const [{ data: promotedMethodEntities }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${tpacb?.apiCatalogId}/promotedMethodEntities/${entityName}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!tpacb || !!!user || !!!entityName,\n false\n );\n\n // Get all rows of an entity\n const [{ data: entityData, loading: isLoading }, fetchEntityData] =\n useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseGetDataMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n // Get all rows of an entity\n const [\n { data: tableDescription, loading: tableDescriptionLoading },\n fetchTableDescription\n ] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseDescribeMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const constructVirtualValuesForRequest = useCallback(\n (values) => {\n if (!tableDescription) {\n return [];\n }\n const bodyArr = [];\n tableDescription.forEach((column) => {\n const valueExist =\n typeof values[column.name] == 'boolean' || values[column.name];\n if (column.name || valueExist) {\n switch (getSanitizedName(entityName?.toLowerCase())) {\n case UdpEnums.Udp_Lookup.toLowerCase():\n bodyArr.push({\n lookupColumnId: column.id,\n value: values[column.name]\n });\n break;\n default:\n }\n }\n });\n return bodyArr;\n },\n [tableDescription, entityName]\n );\n\n const handleOnCreate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualCreateMethod) {\n const requestArr = constructVirtualValuesForRequest(values);\n const data = { requestBody: requestArr, id: virtualId };\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualCreateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been created`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnUpdate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualUpdateMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, values.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity.unityBaseVirtualUpdateMethod.pathParameters,\n primaryKeyValues\n );\n const requestArr = constructVirtualValuesForRequest(values);\n let data = { requestBody: requestArr };\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject, requestBody: requestArr };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualUpdateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been updated`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\n if (selectedEntity?.unityBaseVirtualDeleteMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, value.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity?.unityBaseVirtualDeleteMethod.pathParameters,\n primaryKeyValues\n );\n let data = {};\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualDeleteMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been deleted`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId\n ]\n );\n\n const actionList = useMemo(() => {\n if (!selectedEntity) {\n return;\n }\n\n return [\n {\n id: 1, // Must be unique\n title: selectedEntity?.unityBaseVirtualUpdateMethod\n ? t('Edit')\n : t('Edit Method Not Accessible'),\n icon: EditIcon,\n onClick: null,\n opens: 'sideSheet',\n view: {\n component: VirtualTableSidePanel,\n properties: {\n tableDescription: tableDescription,\n onUpdate: handleOnUpdate,\n valuePropName: 'value',\n closeSideSheet: null,\n closeSideSheetPropName: 'closeSideSheet',\n pageId: selectedEntity?.unityBaseVirtualUpdateMethod?.pageId,\n isNewEntry: false\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualUpdateMethod\n },\n {\n id: 2, // Must be unique\n title: selectedEntity?.unityBaseVirtualDeleteMethod\n ? t('Delete')\n : t('Delete Method Not Accessible'),\n icon: DeleteIcon,\n onClick: null,\n opens: 'dialog',\n view: {\n component: null,\n properties: {\n title: t('Delete'),\n message: t('Are you sure you want to delete this row?'),\n labelOne: t('Cancel'),\n actionTwo: handleOnDelete,\n labelTwo: t('Confirm')\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualDeleteMethod\n }\n ];\n }, [selectedEntity, t, handleOnUpdate, handleOnDelete, tableDescription]);\n\n const columnDefs = useMemo(() => {\n if (tableDescription?.length) {\n return VirtualTableColumnDefs(tableDescription, actionList);\n }\n return [];\n }, [actionList, tableDescription]);\n\n const groupData = useMemo(() => {\n return columnDefs?.map((item) => {\n return {\n groupItem: item.field,\n label: item.headerName,\n value: item.field\n };\n });\n }, [columnDefs]);\n\n useEffect(() => {\n if (promotedMethodEntities) {\n setSelectedEntity(promotedMethodEntities);\n }\n }, [promotedMethodEntities]);\n\n useEffect(() => {\n if (virtualId) {\n const queryData = { id: virtualId };\n if (selectedEntity?.unityBaseGetDataMethod?.apiMethodId) {\n fetchEntityData({ data: queryData });\n }\n if (selectedEntity?.unityBaseDescribeMethod?.apiMethodId) {\n fetchTableDescription({ data: queryData });\n }\n }\n }, [selectedEntity, fetchEntityData, virtualId, fetchTableDescription]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n setLocationState({ label: t(value?.name) || t('Virtual Lookup') });\n }, [setLocationState, t, value]);\n\n const pab = (\n <PrimaryActionButton onClick={() => setSheetOpen && setSheetOpen(true)}>\n <Typography style={{ marginRight: 5 }}>Add</Typography>\n <AddIcon />\n </PrimaryActionButton>\n );\n\n const SideOptionList = useMemo(\n () => (\n <SideSheet\n open={isSheetOpen}\n onClose={closeSheet}\n title={`Add new ${entityName}`}\n width={sideSheetWidth}\n buttonLabel={sideSheetButtonLabel}\n onSubmit={sideSheetOnSubmit}\n {...otherSideSheetProps}\n >\n <VirtualTableSidePanel\n onCreate={handleOnCreate}\n closeSideSheet={closeSheet}\n pageId={createApiMethodPageId}\n setSideSheetWidth={setSideSheetWidth}\n setSideSheetButtonLabel={setSideSheetButtonLabel}\n setSideSheetOnSubmit={setSideSheetOnSubmit}\n setSideSheetProps={setOtherSideSheetProps}\n tableDescription={tableDescription}\n />\n </SideSheet>\n ),\n [\n isSheetOpen,\n closeSheet,\n entityName,\n sideSheetWidth,\n sideSheetButtonLabel,\n sideSheetOnSubmit,\n handleOnCreate,\n createApiMethodPageId,\n otherSideSheetProps,\n tableDescription\n ]\n );\n\n const formatData = useCallback(() => {\n if (entityData?.data && tableDescription) {\n let formattedEntityData = cloneDeep(entityData?.data);\n\n // get list of attributes that are datetime\n const datetimeFields = tableDescription?.reduce((fields, element) => {\n if (element?.type === 'datetime') {\n fields.push(element?.name);\n }\n return fields;\n }, []);\n\n if (datetimeFields.length) {\n formattedEntityData.forEach((e) => {\n Object.keys(e).forEach((key) => {\n // format all datetime fields\n if (datetimeFields.find((field) => field === key)) {\n // LAA UNT-2977: add null check to prevent default date from being added when null\n if (e[key] === null) return;\n e[key] = format(new Date(e[key]), 'yyyy/MM/dd kk:mm:ss');\n }\n });\n });\n }\n\n return formattedEntityData;\n }\n return [];\n }, [entityData, tableDescription]);\n\n return (\n <>\n <AmbientGridTemplate\n title={value?.name || entityData?.name}\n data={entityData ? formatData(entityData?.data) : []}\n columnDefs={columnDefs}\n groupingData={groupData}\n primaryActionButton={pab}\n frameworkComponents={{ actionsRenderer: ActionsRenderer }}\n height={`calc(100vh - ${buildEnv ? '139px' : '114px'})`}\n disableRowSelection={true}\n loading={isLoading}\n {...other}\n />\n {SideOptionList}\n </>\n );\n};\n\n\nexport default VirtualBrowser;\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Form, FormButtons, SubmitButton } from "./FormButtons-Bstnb0d-.js";
2
- import { useVirtualActions } from "./virtualActions-B5rStgo5.js";
2
+ import { useVirtualActions } from "./virtualActions-B-cs7Mxr.js";
3
3
  import React, { useState } from "react";
4
4
  import { Typography, makeStyles } from "@material-ui/core";
5
5
  import PropTypes from "prop-types";
@@ -62,4 +62,4 @@ VirtualForm.propTypes = {
62
62
 
63
63
  //#endregion
64
64
  export { VirtualForm };
65
- //# sourceMappingURL=VirtualForm-DQ4YM-w2.js.map
65
+ //# sourceMappingURL=VirtualForm-DlTtINdK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualForm-DQ4YM-w2.js","names":[],"sources":["../src/UI/forms/VirtualForm.jsx"],"sourcesContent":["import { makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { Form, FormButtons, SubmitButton } from '../../utilities/form';\nimport { useVirtualActions } from '../../hooks/virtualActions';\n\nconst useStyles = makeStyles((theme) => ({\n actions: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n display: 'flex',\n flexDirection: 'row'\n },\n title: {\n flexGrow: 1\n },\n subject: {\n marginLeft: theme.spacing(1),\n display: 'flex',\n flexDirection: 'row',\n flexGrow: 1\n },\n switchRoot: {\n marginLeft: theme.spacing(1)\n },\n input: {\n height: 34,\n padding: 0\n },\n formTextInput: {\n fontSize: 13\n },\n labelRoot: {\n fontSize: 13\n }\n}));\n\nexport const VirtualForm = (props) => {\n const { tableDescription, rowValue, closeSideSheet, onCreate, onUpdate } =\n props;\n const { renderInputByFieldType } = useVirtualActions();\n\n const [virtualTableFormData, setVirtualTableFormData] = useState(\n rowValue || {}\n );\n const classes = useStyles();\n\n const handleSubmit = async (values) => {\n let newTableData = {\n ...virtualTableFormData,\n ...values\n };\n\n const isNewRow = !rowValue;\n\n if (isNewRow) {\n onCreate && (await onCreate(newTableData));\n } else {\n onUpdate && (await onUpdate(newTableData));\n }\n closeSideSheet && closeSideSheet();\n };\n\n return (\n <Form onSubmit={handleSubmit}>\n <div>\n {tableDescription?.map((formField, index) => {\n return (\n <React.Fragment key={`${formField.name}-${index}`}>\n <Typography variant='subtitle2' style={{ marginTop: 8 }}>\n {formField.friendlyName}\n </Typography>\n {renderInputByFieldType(\n formField,\n index,\n virtualTableFormData,\n classes\n )}\n </React.Fragment>\n );\n })}\n </div>\n\n <FormButtons>\n <SubmitButton\n variant='contained'\n color='secondary'\n disablePristine={false}\n disabled={false}\n style={{ marginTop: 15 }}\n >\n Save\n </SubmitButton>\n </FormButtons>\n </Form>\n );\n};\n\nVirtualForm.propTypes = {\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n"],"mappings":";;;;;;;AAMA,MAAM,YAAY,YAAY,WAAW;CACvC,SAAS;EACP,WAAW,MAAM,QAAQ,EAAE;EAC3B,cAAc,MAAM,QAAQ,EAAE;EAC9B,SAAS;EACT,eAAe;EAChB;CACD,OAAO,EACL,UAAU,GACX;CACD,SAAS;EACP,YAAY,MAAM,QAAQ,EAAE;EAC5B,SAAS;EACT,eAAe;EACf,UAAU;EACX;CACD,YAAY,EACV,YAAY,MAAM,QAAQ,EAAE,EAC7B;CACD,OAAO;EACL,QAAQ;EACR,SAAS;EACV;CACD,eAAe,EACb,UAAU,IACX;CACD,WAAW,EACT,UAAU,IACX;CACF,EAAE;AAEH,MAAa,eAAe,UAAU;CACpC,MAAM,EAAE,kBAAkB,UAAU,gBAAgB,UAAU,aAC5D;CACF,MAAM,EAAE,2BAA2B,mBAAmB;CAEtD,MAAM,CAAC,sBAAsB,2BAA2B,SACtD,YAAY,EAAE,CACf;CACD,MAAM,UAAU,WAAW;CAE3B,MAAM,eAAe,OAAO,WAAW;EACrC,IAAI,eAAe;GACjB,GAAG;GACH,GAAG;GACJ;AAID,MAFiB,CAAC,SAGhB,aAAa,MAAM,SAAS,aAAa;MAEzC,aAAa,MAAM,SAAS,aAAa;AAE3C,oBAAkB,gBAAgB;;AAGpC,QACE,oCAAC,QAAK,UAAU,gBACd,oCAAC,aACE,kBAAkB,KAAK,WAAW,UAAU;AAC3C,SACE,oCAAC,MAAM,YAAS,KAAK,GAAG,UAAU,KAAK,GAAG,WACxC,oCAAC;GAAW,SAAQ;GAAY,OAAO,EAAE,WAAW,GAAG;KACpD,UAAU,aACA,EACZ,uBACC,WACA,OACA,sBACA,QACD,CACc;GAEnB,CACE,EAEN,oCAAC,mBACC,oCAAC;EACC,SAAQ;EACR,OAAM;EACN,iBAAiB;EACjB,UAAU;EACV,OAAO,EAAE,WAAW,IAAI;IACzB,OAEc,CACH,CACT;;AAIX,YAAY,YAAY;CAItB,gBAAgB,UAAU;CAI1B,UAAU,UAAU;CAIpB,UAAU,UAAU;CACrB"}
1
+ {"version":3,"file":"VirtualForm-DlTtINdK.js","names":[],"sources":["../src/UI/forms/VirtualForm.jsx"],"sourcesContent":["import { makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { Form, FormButtons, SubmitButton } from '../../utilities/form';\nimport { useVirtualActions } from '../../hooks/virtualActions';\n\nconst useStyles = makeStyles((theme) => ({\n actions: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n display: 'flex',\n flexDirection: 'row'\n },\n title: {\n flexGrow: 1\n },\n subject: {\n marginLeft: theme.spacing(1),\n display: 'flex',\n flexDirection: 'row',\n flexGrow: 1\n },\n switchRoot: {\n marginLeft: theme.spacing(1)\n },\n input: {\n height: 34,\n padding: 0\n },\n formTextInput: {\n fontSize: 13\n },\n labelRoot: {\n fontSize: 13\n }\n}));\n\nexport const VirtualForm = (props) => {\n const { tableDescription, rowValue, closeSideSheet, onCreate, onUpdate } =\n props;\n const { renderInputByFieldType } = useVirtualActions();\n\n const [virtualTableFormData, setVirtualTableFormData] = useState(\n rowValue || {}\n );\n const classes = useStyles();\n\n const handleSubmit = async (values) => {\n let newTableData = {\n ...virtualTableFormData,\n ...values\n };\n\n const isNewRow = !rowValue;\n\n if (isNewRow) {\n onCreate && (await onCreate(newTableData));\n } else {\n onUpdate && (await onUpdate(newTableData));\n }\n closeSideSheet && closeSideSheet();\n };\n\n return (\n <Form onSubmit={handleSubmit}>\n <div>\n {tableDescription?.map((formField, index) => {\n return (\n <React.Fragment key={`${formField.name}-${index}`}>\n <Typography variant='subtitle2' style={{ marginTop: 8 }}>\n {formField.friendlyName}\n </Typography>\n {renderInputByFieldType(\n formField,\n index,\n virtualTableFormData,\n classes\n )}\n </React.Fragment>\n );\n })}\n </div>\n\n <FormButtons>\n <SubmitButton\n variant='contained'\n color='secondary'\n disablePristine={false}\n disabled={false}\n style={{ marginTop: 15 }}\n >\n Save\n </SubmitButton>\n </FormButtons>\n </Form>\n );\n};\n\nVirtualForm.propTypes = {\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n"],"mappings":";;;;;;;AAMA,MAAM,YAAY,YAAY,WAAW;CACvC,SAAS;EACP,WAAW,MAAM,QAAQ,EAAE;EAC3B,cAAc,MAAM,QAAQ,EAAE;EAC9B,SAAS;EACT,eAAe;EAChB;CACD,OAAO,EACL,UAAU,GACX;CACD,SAAS;EACP,YAAY,MAAM,QAAQ,EAAE;EAC5B,SAAS;EACT,eAAe;EACf,UAAU;EACX;CACD,YAAY,EACV,YAAY,MAAM,QAAQ,EAAE,EAC7B;CACD,OAAO;EACL,QAAQ;EACR,SAAS;EACV;CACD,eAAe,EACb,UAAU,IACX;CACD,WAAW,EACT,UAAU,IACX;CACF,EAAE;AAEH,MAAa,eAAe,UAAU;CACpC,MAAM,EAAE,kBAAkB,UAAU,gBAAgB,UAAU,aAC5D;CACF,MAAM,EAAE,2BAA2B,mBAAmB;CAEtD,MAAM,CAAC,sBAAsB,2BAA2B,SACtD,YAAY,EAAE,CACf;CACD,MAAM,UAAU,WAAW;CAE3B,MAAM,eAAe,OAAO,WAAW;EACrC,IAAI,eAAe;GACjB,GAAG;GACH,GAAG;GACJ;AAID,MAFiB,CAAC,SAGhB,aAAa,MAAM,SAAS,aAAa;MAEzC,aAAa,MAAM,SAAS,aAAa;AAE3C,oBAAkB,gBAAgB;;AAGpC,QACE,oCAAC,QAAK,UAAU,gBACd,oCAAC,aACE,kBAAkB,KAAK,WAAW,UAAU;AAC3C,SACE,oCAAC,MAAM,YAAS,KAAK,GAAG,UAAU,KAAK,GAAG,WACxC,oCAAC;GAAW,SAAQ;GAAY,OAAO,EAAE,WAAW,GAAG;KACpD,UAAU,aACA,EACZ,uBACC,WACA,OACA,sBACA,QACD,CACc;GAEnB,CACE,EAEN,oCAAC,mBACC,oCAAC;EACC,SAAQ;EACR,OAAM;EACN,iBAAiB;EACjB,UAAU;EACV,OAAO,EAAE,WAAW,IAAI;IACzB,OAEc,CACH,CACT;;AAIX,YAAY,YAAY;CAItB,gBAAgB,UAAU;CAI1B,UAAU,UAAU;CAIpB,UAAU,UAAU;CACrB"}
@@ -67,7 +67,7 @@ import "./LinearProgress-CVk0GRO-.js";
67
67
  import "./CircularProgress-BNz8u0DY.js";
68
68
  import "./WorkflowContent-B7_Czp9q.js";
69
69
  import "./EmailDisplay-Bglp_poX.js";
70
- import "./useUpdateSearchParams-fEinMP0r.js";
71
- import { WorkflowContainer } from "./WorkflowContainer-Dmp3rpCg.js";
70
+ import "./useUpdateSearchParams-CKTTs6Zx.js";
71
+ import { WorkflowContainer, WorkflowContainer_default } from "./WorkflowContainer-DasTFSlY.js";
72
72
 
73
- export { WorkflowContainer };
73
+ export { WorkflowContainer, WorkflowContainer_default as default };
@@ -9,7 +9,7 @@ import { UtilitySideBar } from "./UtilitySideBar-DlCvljVV.js";
9
9
  import { WorkflowTreeMenu } from "./WorkflowTreeMenu-Dc9l7jEY.js";
10
10
  import { transformWorkflowPlayTree } from "./workflowUtilities-DpW6oHRe.js";
11
11
  import { WorkflowContent } from "./WorkflowContent-B7_Czp9q.js";
12
- import { useUpdateSearchParams } from "./useUpdateSearchParams-fEinMP0r.js";
12
+ import { useUpdateSearchParams } from "./useUpdateSearchParams-CKTTs6Zx.js";
13
13
  import React, { useCallback, useEffect, useState } from "react";
14
14
  import { makeStyles } from "@material-ui/core";
15
15
  import { ConfigService } from "udp-react-stencil-component-library";
@@ -182,7 +182,8 @@ const WorkflowContainer = (props) => {
182
182
  groups
183
183
  }))));
184
184
  };
185
+ var WorkflowContainer_default = WorkflowContainer;
185
186
 
186
187
  //#endregion
187
- export { WorkflowContainer };
188
- //# sourceMappingURL=WorkflowContainer-Dmp3rpCg.js.map
188
+ export { WorkflowContainer, WorkflowContainer_default };
189
+ //# sourceMappingURL=WorkflowContainer-DasTFSlY.js.map