udp-react-enterprise-component-library 25.18.1-beta.44 → 25.18.1-beta.46

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 (228) hide show
  1. package/dist/{AadCallback-DI_SnmOU.js → AadCallback-Bor16_h3.js} +1 -1
  2. package/dist/{AadCallback-DI_SnmOU.js.map → AadCallback-Bor16_h3.js.map} +1 -1
  3. package/dist/{AmChart-WvmHsOdz.js → AmChart-CTixft8X.js} +1 -1
  4. package/dist/{AmChart-WvmHsOdz.js.map → AmChart-CTixft8X.js.map} +1 -1
  5. package/dist/{AmbientSingleDateSelector-8uylQ-tc.js → AmbientSingleDateSelector-D3xyjMky.js} +1 -1
  6. package/dist/{AmbientSingleDateSelector-8uylQ-tc.js.map → AmbientSingleDateSelector-D3xyjMky.js.map} +1 -1
  7. package/dist/{AmbientVisualizationCard-Cov8RODG.js → AmbientVisualizationCard-Dig-Mh_G.js} +3 -3
  8. package/dist/{AmbientVisualizationCard-Cov8RODG.js.map → AmbientVisualizationCard-Dig-Mh_G.js.map} +1 -1
  9. package/dist/{AmbientVisualizer-Bo7NLGfw.js → AmbientVisualizer-B1Xwwe0J.js} +1 -1
  10. package/dist/{AmbientVisualizer-Bo7NLGfw.js.map → AmbientVisualizer-B1Xwwe0J.js.map} +1 -1
  11. package/dist/{BarChartWidget-D-_ZVpMh.js → BarChartWidget-Dwav8_8e.js} +1 -1
  12. package/dist/{BarChartWidget-D-_ZVpMh.js.map → BarChartWidget-Dwav8_8e.js.map} +1 -1
  13. package/dist/{BaseTreeMenu-nKjw3cil.js → BaseTreeMenu-CBFIl0VF.js} +1 -1
  14. package/dist/{BaseTreeMenu-nKjw3cil.js.map → BaseTreeMenu-CBFIl0VF.js.map} +1 -1
  15. package/dist/{BubbleWidget-SplMEBJm.js → BubbleWidget-CsIheJTW.js} +2 -2
  16. package/dist/{BubbleWidget-SplMEBJm.js.map → BubbleWidget-CsIheJTW.js.map} +1 -1
  17. package/dist/{CardList-B_F1Qgqh.js → CardList-BPNGTxsh.js} +1 -1
  18. package/dist/{CardList-B_F1Qgqh.js.map → CardList-BPNGTxsh.js.map} +1 -1
  19. package/dist/{ContentContainer-DuDrf5lL.js → ContentContainer-C2CcA6oX.js} +1 -1
  20. package/dist/{ContentContainer-DuDrf5lL.js.map → ContentContainer-C2CcA6oX.js.map} +1 -1
  21. package/dist/{DateTrendWidget-F6hBnYej.js → DateTrendWidget-cdExY12Q.js} +1 -1
  22. package/dist/{DateTrendWidget-F6hBnYej.js.map → DateTrendWidget-cdExY12Q.js.map} +1 -1
  23. package/dist/{DensePlotWidget-BEhHNh53.js → DensePlotWidget-DHRKyeck.js} +1 -1
  24. package/dist/{DensePlotWidget-BEhHNh53.js.map → DensePlotWidget-DHRKyeck.js.map} +1 -1
  25. package/dist/{Directory-CFTCLxWZ.js → Directory-CoEKdRkU.js} +1 -1
  26. package/dist/{Directory-CFTCLxWZ.js.map → Directory-CoEKdRkU.js.map} +1 -1
  27. package/dist/{EntityHeader-D_gYzj76.js → EntityHeader-DiOEw-za.js} +1 -1
  28. package/dist/{EntityHeader-D_gYzj76.js.map → EntityHeader-DiOEw-za.js.map} +1 -1
  29. package/dist/{FieldArrayCard-Bv9h9akG.js → FieldArrayCard-BbCCfs6l.js} +2 -2
  30. package/dist/{FieldArrayCard-Bv9h9akG.js.map → FieldArrayCard-BbCCfs6l.js.map} +1 -1
  31. package/dist/{FileUpload-BCxrOds_.js → FileUpload-BpMG2Efl.js} +1 -1
  32. package/dist/{FileUpload-BCxrOds_.js.map → FileUpload-BpMG2Efl.js.map} +1 -1
  33. package/dist/{FluentCardHeader-BdMB2qzK.js → FluentCardHeader-CRJaqkV3.js} +1 -1
  34. package/dist/{FluentCardHeader-BdMB2qzK.js.map → FluentCardHeader-CRJaqkV3.js.map} +1 -1
  35. package/dist/{FluentLink-DP2eDAH2.js → FluentLink-D-gKioCQ.js} +1 -1
  36. package/dist/{FluentLink-DP2eDAH2.js.map → FluentLink-D-gKioCQ.js.map} +1 -1
  37. package/dist/{FluentRadioGroup-CCKelZVk.js → FluentRadioGroup-DWOMSBGp.js} +1 -1
  38. package/dist/{FluentRadioGroup-CCKelZVk.js.map → FluentRadioGroup-DWOMSBGp.js.map} +1 -1
  39. package/dist/{FluentSelectMenu-yQMFZWEg.js → FluentSelectMenu-BEREJbe-.js} +1 -1
  40. package/dist/{FluentSelectMenu-yQMFZWEg.js.map → FluentSelectMenu-BEREJbe-.js.map} +1 -1
  41. package/dist/{FluentSimpleSelect-DxxbQV37.js → FluentSimpleSelect-Djff-up8.js} +2 -2
  42. package/dist/{FluentSimpleSelect-DxxbQV37.js.map → FluentSimpleSelect-Djff-up8.js.map} +1 -1
  43. package/dist/{FluentTimePicker-LUfZzJJZ.js → FluentTimePicker-hNcocKsd.js} +1 -1
  44. package/dist/{FluentTimePicker-LUfZzJJZ.js.map → FluentTimePicker-hNcocKsd.js.map} +1 -1
  45. package/dist/{FluentTimeline-BEPJHsgi.js → FluentTimeline-D8sfgLj1.js} +1 -1
  46. package/dist/{FluentTimeline-BEPJHsgi.js.map → FluentTimeline-D8sfgLj1.js.map} +1 -1
  47. package/dist/{GraphCard-CcXwOERk.js → GraphCard-Dv4a99wo.js} +1 -1
  48. package/dist/{GraphCard-CcXwOERk.js.map → GraphCard-Dv4a99wo.js.map} +1 -1
  49. package/dist/{IconKey-CbK8_rol.js → IconKey-D7fZ_U4O.js} +1 -1
  50. package/dist/{IconKey-CbK8_rol.js.map → IconKey-D7fZ_U4O.js.map} +1 -1
  51. package/dist/{LineAndSparklinesWidget-KVAnvpKl.js → LineAndSparklinesWidget-CUq3QxmN.js} +1 -1
  52. package/dist/{LineAndSparklinesWidget-KVAnvpKl.js.map → LineAndSparklinesWidget-CUq3QxmN.js.map} +1 -1
  53. package/dist/{LineGraphWidget-CYjLiV5B.js → LineGraphWidget-DOwAVdTR.js} +1 -1
  54. package/dist/{LineGraphWidget-CYjLiV5B.js.map → LineGraphWidget-DOwAVdTR.js.map} +1 -1
  55. package/dist/MenuPage-DP1ATpru.js +3 -0
  56. package/dist/{MenuPage-BS8ti9lx.js → MenuPage-fqEs3MSY.js} +2 -2
  57. package/dist/{MenuPage-BS8ti9lx.js.map → MenuPage-fqEs3MSY.js.map} +1 -1
  58. package/dist/{MyExportsPage-BwcVZASe.js → MyExportsPage-DMcJRz8T.js} +2 -2
  59. package/dist/{MyExportsPage-BwcVZASe.js.map → MyExportsPage-DMcJRz8T.js.map} +1 -1
  60. package/dist/MyExportsPage-zF3FjtDl.js +3 -0
  61. package/dist/{NewsCard-Y-exMCuK.js → NewsCard-C3y9a_OJ.js} +1 -1
  62. package/dist/{NewsCard-Y-exMCuK.js.map → NewsCard-C3y9a_OJ.js.map} +1 -1
  63. package/dist/{Notes-i2G6Ugsq.js → Notes-UkwV2z4D.js} +1 -1
  64. package/dist/{Notes-i2G6Ugsq.js.map → Notes-UkwV2z4D.js.map} +1 -1
  65. package/dist/{OutlookCallback-teOtztm6.js → OutlookCallback-D3no-Urx.js} +1 -1
  66. package/dist/{OutlookCallback-teOtztm6.js.map → OutlookCallback-D3no-Urx.js.map} +1 -1
  67. package/dist/{PageNotFoundRoute-i_Tf23jB.js → PageNotFoundRoute-0WmBAAdO.js} +1 -1
  68. package/dist/{PageNotFoundRoute-i_Tf23jB.js.map → PageNotFoundRoute-0WmBAAdO.js.map} +1 -1
  69. package/dist/{PageNotFoundRoute-B_mbfK8s.js → PageNotFoundRoute-DKg6oVCt.js} +1 -1
  70. package/dist/{PaymentForm-BTLh5bXJ.js → PaymentForm-CRlhsB2F.js} +2 -2
  71. package/dist/{PaymentForm-BTLh5bXJ.js.map → PaymentForm-CRlhsB2F.js.map} +1 -1
  72. package/dist/{RejectIcon-CNSkW92y.js → RejectIcon-CpF_J5Je.js} +1 -1
  73. package/dist/{RejectIcon-CNSkW92y.js.map → RejectIcon-CpF_J5Je.js.map} +1 -1
  74. package/dist/Reports-C596PoM-.js +3 -0
  75. package/dist/{Reports-Cz5Pl1rM.js → Reports-v6qpOsDL.js} +1 -1
  76. package/dist/{Reports-Cz5Pl1rM.js.map → Reports-v6qpOsDL.js.map} +1 -1
  77. package/dist/{Shell-DKZFbV05.js → Shell-N3oRzrDU.js} +3 -3
  78. package/dist/{Shell-DKZFbV05.js.map → Shell-N3oRzrDU.js.map} +1 -1
  79. package/dist/{SimpleTable-z8tz6B0B.js → SimpleTable-CVGolzeI.js} +1 -1
  80. package/dist/{SimpleTable-z8tz6B0B.js.map → SimpleTable-CVGolzeI.js.map} +1 -1
  81. package/dist/{SiteHeader-DMstxPs3.js → SiteHeader-KoNZC5W5.js} +3 -3
  82. package/dist/{SiteHeader-DMstxPs3.js.map → SiteHeader-KoNZC5W5.js.map} +1 -1
  83. package/dist/{SparsePlotWidget-B3wtNHo2.js → SparsePlotWidget-ZYP6TKB6.js} +1 -1
  84. package/dist/{SparsePlotWidget-B3wtNHo2.js.map → SparsePlotWidget-ZYP6TKB6.js.map} +1 -1
  85. package/dist/{Statistic-IWynWCev.js → Statistic-ChTR_kas.js} +1 -1
  86. package/dist/{Statistic-IWynWCev.js.map → Statistic-ChTR_kas.js.map} +1 -1
  87. package/dist/{StatusCellRenderer-BuPuvngw.js → StatusCellRenderer-E7SYy9Qk.js} +1 -1
  88. package/dist/{StatusCellRenderer-BuPuvngw.js.map → StatusCellRenderer-E7SYy9Qk.js.map} +1 -1
  89. package/dist/{TicketCard-D-FtADsb.js → TicketCard-IqCCKSc0.js} +1 -1
  90. package/dist/{TicketCard-D-FtADsb.js.map → TicketCard-IqCCKSc0.js.map} +1 -1
  91. package/dist/{TimelineCalendar-Mi4baqsg.js → TimelineCalendar-CZ5vmO43.js} +1 -1
  92. package/dist/{TimelineCalendar-Mi4baqsg.js.map → TimelineCalendar-CZ5vmO43.js.map} +1 -1
  93. package/dist/{TokenGroupItem-DKbm__Kc.js → TokenGroupItem-BK0dx4cD.js} +1 -1
  94. package/dist/{TokenGroupItem-DKbm__Kc.js.map → TokenGroupItem-BK0dx4cD.js.map} +1 -1
  95. package/dist/UI/dataDisplay/GraphCard/index.js +1 -1
  96. package/dist/UI/dataDisplay/calendar/index.js +1 -1
  97. package/dist/UI/dataDisplay/cardList/index.js +1 -1
  98. package/dist/UI/dataDisplay/directory/index.js +1 -1
  99. package/dist/UI/dataDisplay/entityHeader/index.js +1 -1
  100. package/dist/UI/dataDisplay/map/index.js +1 -1
  101. package/dist/UI/dataDisplay/notes/index.js +1 -1
  102. package/dist/UI/dataDisplay/status/index.js +1 -1
  103. package/dist/UI/dataDisplay/ticketCard/index.js +1 -1
  104. package/dist/UI/dataDisplay/typography/index.js +1 -1
  105. package/dist/UI/dataDisplay/visualization/amCharts/index.js +1 -1
  106. package/dist/UI/dataDisplay/visualization/index.js +1 -1
  107. package/dist/UI/inputs/calendar/index.js +1 -1
  108. package/dist/UI/inputs/dateRangeSelector/index.js +1 -1
  109. package/dist/UI/inputs/fieldArrayCard/index.js +1 -1
  110. package/dist/UI/inputs/link/index.js +1 -1
  111. package/dist/UI/inputs/menus/index.js +2 -2
  112. package/dist/UI/inputs/pickers/index.js +2 -2
  113. package/dist/UI/inputs/radio/index.js +1 -1
  114. package/dist/UI/mapLayout/ui/index.js +1 -1
  115. package/dist/UI/surfaces/cards/chartDisplayCards/index.js +1 -1
  116. package/dist/UI/surfaces/cards/fluentCards/index.js +1 -1
  117. package/dist/UI/surfaces/cards/newsCard/index.js +1 -1
  118. package/dist/UI/surfaces/cards/workOrderCard/index.js +1 -1
  119. package/dist/UI/templates/calendar/index.js +1 -1
  120. package/dist/UI/templates/deprecated/UdpGridTemplate/index.js +1 -1
  121. package/dist/UI/templates/ui/index.js +1 -1
  122. package/dist/UI/templates/ui/renderers/index.js +1 -1
  123. package/dist/UI/widgets/library/BarChartWidget/index.js +1 -1
  124. package/dist/UI/widgets/library/BubbleWidget/index.js +1 -1
  125. package/dist/UI/widgets/library/DateTrendWidget/index.js +1 -1
  126. package/dist/UI/widgets/library/DensePlotWidget/index.js +1 -1
  127. package/dist/UI/widgets/library/LineAndSparklinesWidget/index.js +1 -1
  128. package/dist/UI/widgets/library/LineGraphWidget/index.js +1 -1
  129. package/dist/UI/widgets/library/SparsePlotWidget/index.js +1 -1
  130. package/dist/UI/widgets/library/TableWidget/index.js +1 -1
  131. package/dist/{UdpAppProvider-BRyRY8zN.js → UdpAppProvider-C0VlxSna.js} +2 -2
  132. package/dist/{UdpAppProvider-BRyRY8zN.js.map → UdpAppProvider-C0VlxSna.js.map} +1 -1
  133. package/dist/{UdpCalendarYearView-BSR8CGHt.js → UdpCalendarYearView-BEdW-myL.js} +1 -1
  134. package/dist/{UdpCalendarYearView-BSR8CGHt.js.map → UdpCalendarYearView-BEdW-myL.js.map} +1 -1
  135. package/dist/{UdpDateRangeSelector-C_gpkHul.js → UdpDateRangeSelector-BivfBlPa.js} +1 -1
  136. package/dist/{UdpDateRangeSelector-C_gpkHul.js.map → UdpDateRangeSelector-BivfBlPa.js.map} +1 -1
  137. package/dist/{UdpFormsSubmissionGrid-PWsnFyYB.js → UdpFormsSubmissionGrid-C5CDtEVR.js} +34 -14
  138. package/dist/UdpFormsSubmissionGrid-C5CDtEVR.js.map +1 -0
  139. package/dist/{UdpGridTemplate-U9YcYLUf.js → UdpGridTemplate-OsS_O6jR.js} +1 -1
  140. package/dist/{UdpGridTemplate-U9YcYLUf.js.map → UdpGridTemplate-OsS_O6jR.js.map} +1 -1
  141. package/dist/{UdpTransactionTypesPage-CUpHKA6y.js → UdpTransactionTypesPage-DxUsXnV7.js} +89 -13
  142. package/dist/UdpTransactionTypesPage-DxUsXnV7.js.map +1 -0
  143. package/dist/{UdpTransactionsPage-B5uhMoFg.js → UdpTransactionsPage-BZ0Idg5s.js} +38 -14
  144. package/dist/UdpTransactionsPage-BZ0Idg5s.js.map +1 -0
  145. package/dist/{UserFormSideSheet-B6Mn3bZ0.js → UserFormSideSheet-CSScPvy3.js} +1 -1
  146. package/dist/{UserFormSideSheet-B6Mn3bZ0.js.map → UserFormSideSheet-CSScPvy3.js.map} +1 -1
  147. package/dist/UserFormSideSheet-DTPSRjGo.js +3 -0
  148. package/dist/{VirtualBrowser-C2oPh3YY.js → VirtualBrowser-BeHqBuGi.js} +1 -1
  149. package/dist/{VirtualBrowser-C2oPh3YY.js.map → VirtualBrowser-BeHqBuGi.js.map} +1 -1
  150. package/dist/VirtualBrowser-CjHGq92s.js +3 -0
  151. package/dist/{WorkOrderCard-Ce5WrpnX.js → WorkOrderCard-s-6QK3Re.js} +1 -1
  152. package/dist/{WorkOrderCard-Ce5WrpnX.js.map → WorkOrderCard-s-6QK3Re.js.map} +1 -1
  153. package/dist/{WorkflowContainer-Cd5H4mpf.js → WorkflowContainer-BheQPhXt.js} +1 -1
  154. package/dist/{WorkflowContainer-Cd5H4mpf.js.map → WorkflowContainer-BheQPhXt.js.map} +1 -1
  155. package/dist/{WorkflowContainer-Iq8fmnGR.js → WorkflowContainer-CHmVR99E.js} +1 -1
  156. package/dist/{aggridHelpers-BeUZvPIv.js → aggridHelpers-RYO7tWY9.js} +1 -1
  157. package/dist/{aggridHelpers-BeUZvPIv.js.map → aggridHelpers-RYO7tWY9.js.map} +1 -1
  158. package/dist/{gridVisualizationFunctions-jnvPACJD.js → gridVisualizationFunctions-Cmh4EUIL.js} +1 -1
  159. package/dist/{gridVisualizationFunctions-jnvPACJD.js.map → gridVisualizationFunctions-Cmh4EUIL.js.map} +1 -1
  160. package/dist/index.js +56 -56
  161. package/dist/maintenanceEngine/index.js +1 -1
  162. package/dist/maintenanceEngine/virtualBrowser/index.js +1 -1
  163. package/dist/menuPage/index.js +1 -1
  164. package/dist/{menuPage-B9NwQJVt.js → menuPage-PIJOkANO.js} +2 -2
  165. package/dist/{menuPage-B9NwQJVt.js.map → menuPage-PIJOkANO.js.map} +1 -1
  166. package/dist/{pickers-CkwI49Ju.js → pickers-B-bB40GS.js} +1 -1
  167. package/dist/{pickers-CkwI49Ju.js.map → pickers-B-bB40GS.js.map} +1 -1
  168. package/dist/providers/index.js +1 -1
  169. package/dist/routes/components/index.js +1 -1
  170. package/dist/routes/index.js +1 -1
  171. package/dist/{routes-DG4NLFP9.js → routes-3HDtkQKa.js} +8 -8
  172. package/dist/{routes-DG4NLFP9.js.map → routes-3HDtkQKa.js.map} +1 -1
  173. package/dist/shell/index.js +2 -2
  174. package/dist/shell/ui/index.js +1 -1
  175. package/dist/{status-Bmaija4B.js → status-moefSFBs.js} +1 -1
  176. package/dist/{status-Bmaija4B.js.map → status-moefSFBs.js.map} +1 -1
  177. package/dist/{theme-IKiRfNgl.js → theme-Bb8h8tjE.js} +1 -1
  178. package/dist/{theme-IKiRfNgl.js.map → theme-Bb8h8tjE.js.map} +1 -1
  179. package/dist/tree-CFbEBH8N.js +1 -0
  180. package/dist/treeMenu/index.js +1 -1
  181. package/dist/types/src/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts +1 -1
  182. package/dist/types/src/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts.map +1 -1
  183. package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.d.ts.map +1 -1
  184. package/dist/types/src/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.d.ts.map +1 -1
  185. package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeConfigurationForm.d.ts.map +1 -1
  186. package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.d.ts.map +1 -1
  187. package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeStatusSidesheet.d.ts.map +1 -1
  188. package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionGrid.d.ts.map +1 -1
  189. package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionSidesheet.d.ts.map +1 -1
  190. package/dist/types/src/udp/utilities/transactionConstants.d.ts +4 -0
  191. package/dist/types/src/udp/utilities/transactionConstants.d.ts.map +1 -1
  192. package/dist/types/tsconfig.tsbuildinfo +1 -1
  193. package/dist/{typography-IJpS01q9.js → typography-CvW7cAl8.js} +1 -1
  194. package/dist/{typography-IJpS01q9.js.map → typography-CvW7cAl8.js.map} +1 -1
  195. package/dist/udp/export/index.js +1 -1
  196. package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +1 -1
  197. package/dist/udp/pages/UdpPages/index.js +2 -2
  198. package/dist/udp/pages/UdpTransactionTypesPage/index.js +1 -1
  199. package/dist/udp/pages/UdpTransactionsPage/index.js +1 -1
  200. package/dist/uploader/index.js +1 -1
  201. package/dist/{uploader-CPU1l-ss.js → uploader-Dvf2cDh8.js} +1 -1
  202. package/dist/{uploader-CPU1l-ss.js.map → uploader-Dvf2cDh8.js.map} +1 -1
  203. package/dist/utilities/aggrid/index.js +1 -1
  204. package/dist/utilities/customIcons/index.js +1 -1
  205. package/dist/utilities/floorplanFunctions/index.js +1 -1
  206. package/dist/utilities/form/paymentForm/index.js +1 -1
  207. package/dist/utilities/redirect/pages/index.js +1 -1
  208. package/dist/utilities/style/index.js +1 -1
  209. package/dist/utilities/theme/index.js +1 -1
  210. package/dist/utilities/uploader/index.js +1 -1
  211. package/dist/workflow/index.js +1 -1
  212. package/export-map.json +1 -1
  213. package/package.json +1 -1
  214. package/dist/MenuPage-DV20TjmL.js +0 -3
  215. package/dist/MyExportsPage-B3A6lwaV.js +0 -3
  216. package/dist/Reports-CLowSLq9.js +0 -3
  217. package/dist/UdpFormsSubmissionGrid-PWsnFyYB.js.map +0 -1
  218. package/dist/UdpTransactionTypesPage-CUpHKA6y.js.map +0 -1
  219. package/dist/UdpTransactionsPage-B5uhMoFg.js.map +0 -1
  220. package/dist/UserFormSideSheet-C1G_jBcu.js +0 -3
  221. package/dist/VirtualBrowser-BoHR4EBJ.js +0 -3
  222. /package/dist/{addUser-B8dGyltZ.js → addUser-3C9adhp4.js} +0 -0
  223. /package/dist/{appSwitcher-Bcd4Cwcx.js → appSwitcher-qrbuBiQq.js} +0 -0
  224. /package/dist/{modified-BZxg92lm.js → entities-EYifmulZ.js} +0 -0
  225. /package/dist/{redirect-dbCS_8ib.js → modified-BHJzuqPC.js} +0 -0
  226. /package/dist/{renderers-DTo5-0ZY.js → redirect-DWQJKU5S.js} +0 -0
  227. /package/dist/{storage-C9onsVtI.js → renderers-Akwy6J9H.js} +0 -0
  228. /package/dist/{tree-CDeJs_2Q.js → storage-CdtCFv8N.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualBrowser-C2oPh3YY.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 '../../configService';\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/deprecated/AmbientGridTemplate/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/useBuildEnvironment';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useSetLocationState } from '../../hooks/useSetLocationState';\nimport { ConfigService } from '../../configService';\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
+ {"version":3,"file":"VirtualBrowser-BeHqBuGi.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 '../../configService';\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/deprecated/AmbientGridTemplate/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/useBuildEnvironment';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useSetLocationState } from '../../hooks/useSetLocationState';\nimport { ConfigService } from '../../configService';\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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"}
@@ -0,0 +1,3 @@
1
+ import { n as VirtualBrowser_default, t as VirtualBrowser } from "./VirtualBrowser-BeHqBuGi.js";
2
+
3
+ export { VirtualBrowser, VirtualBrowser_default as default };
@@ -52,4 +52,4 @@ const WorkOrderCard = ({ title, onClick, status, label, cost, hours, service, li
52
52
 
53
53
  //#endregion
54
54
  export { WorkOrderHeader as n, WorkOrderCard as t };
55
- //# sourceMappingURL=WorkOrderCard-Ce5WrpnX.js.map
55
+ //# sourceMappingURL=WorkOrderCard-s-6QK3Re.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkOrderCard-Ce5WrpnX.js","names":["useStyles"],"sources":["../src/UI/surfaces/cards/workOrderCard/WorkOrderHeader.jsx","../src/UI/surfaces/cards/workOrderCard/WorkOrderCard.jsx"],"sourcesContent":["import React from 'react'\nimport { makeStyles, Typography, Divider } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n wrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n width: '75%'\n }\n}))\n\nexport const WorkOrderHeader = ({ cost, hours }) => {\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n <div className={classes.wrapper}>\n <div>\n <Typography variant='h3'> ${cost} </Typography>\n <Typography variant='caption'> Total Cost </Typography>\n </div>\n <div>\n <Divider variant='vertical' />\n </div>\n <div>\n <Typography variant='h3'> {hours} </Typography>\n <Typography variant='caption'> Total Hours </Typography>\n </div>\n </div>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport { makeStyles, Collapse } from '@material-ui/core'\nimport { AmbientCard } from '../AmbientCard'\nimport { FluentIconButton } from '../../../inputs/buttons/FluentIconButton'\nimport { LayoutUnit } from '../../../../layout/LayoutUnit'\nimport { ChevronDownIcon, ChevronUpIcon } from '@fluentui/react-icons'\nimport { WorkOrderHeader } from './WorkOrderHeader'\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n moreButton: {\n display: 'flex',\n // justifyContent: 'flex-end',\n },\n}));\n\nexport const WorkOrderCard = ({\n title,\n onClick,\n status,\n label,\n cost,\n hours,\n service,\n list,\n extendedList,\n launch,\n}) => {\n const classes = useStyles();\n const [expanded, setExpanded] = useState(false);\n\n return (\n <div className={classes.root}>\n <AmbientCard\n title={title}\n onClick={onClick}\n ariaLabel=\"launch\"\n fullWidth\n status={status}\n label={label}\n launch={launch}\n extendedContent={expanded}\n >\n {cost && (\n <div>\n <div>\n <WorkOrderHeader cost={cost} hours={hours} />\n </div>\n <LayoutUnit unit=\"sm\" />\n {service}\n <LayoutUnit unit=\"sm\" />\n </div>\n )}\n {!cost && <div> {service}</div>}\n\n <div>\n {list}\n <LayoutUnit unit=\"xxs\" />\n {extendedList && (\n <div className={classes.moreButton}>\n <FluentIconButton\n onClick={() => setExpanded(!expanded)}\n icon={expanded ? ChevronUpIcon : ChevronDownIcon}\n className={classes.icon}\n />\n </div>\n )}\n <Collapse in={expanded} timeout=\"auto\">\n <div>{extendedList}</div>\n </Collapse>\n </div>\n </AmbientCard>\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAGA,MAAMA,cAAY,YAAY,WAAW;CACvC,MAAM,EAAE;CACR,SAAS;EACP,SAAS;EACT,gBAAgB;EAChB,OAAO;EACR;CACF,EAAE;AAEH,MAAa,mBAAmB,EAAE,MAAM,YAAY;CAClD,MAAM,UAAUA,aAAW;AAE3B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC,SAAI,WAAW,QAAQ,WACtB,oCAAC,aACC,oCAAC,cAAW,SAAQ,QAAK,MAAG,MAAK,IAAc,EAC/C,oCAAC,cAAW,SAAQ,aAAU,eAAyB,CACnD,EACN,oCAAC,aACC,oCAAC,WAAQ,SAAQ,aAAa,CAC1B,EACN,oCAAC,aACC,oCAAC,cAAW,SAAQ,QAAK,KAAE,OAAM,IAAc,EAC/C,oCAAC,cAAW,SAAQ,aAAU,gBAA0B,CACpD,CACF,CACF;;;;;ACtBV,MAAM,YAAY,YAAW,WAAU;CACrC,MAAM,EAAE;CACR,YAAY,EACV,SAAS,QAEV;CACF,EAAE;AAEH,MAAa,iBAAiB,EAC5B,OACA,SACA,QACA,OACA,MACA,OACA,SACA,MACA,cACA,aACI;CACJ,MAAM,UAAU,WAAW;CAC3B,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;AAE/C,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC;EACQ;EACE;EACT,WAAU;EACV;EACQ;EACD;EACC;EACR,iBAAiB;IAEhB,QACC,oCAAC,aACC,oCAAC,aACC,oCAAC;EAAsB;EAAa;GAAS,CACzC,EACN,oCAAC,cAAW,MAAK,OAAO,EACvB,SACD,oCAAC,cAAW,MAAK,OAAO,CACpB,EAEP,CAAC,QAAQ,oCAAC,aAAI,KAAE,QAAc,EAE/B,oCAAC,aACE,MACD,oCAAC,cAAW,MAAK,QAAQ,EACxB,gBACC,oCAAC,SAAI,WAAW,QAAQ,cACtB,oCAAC;EACC,eAAe,YAAY,CAAC,SAAS;EACrC,MAAM,WAAW,gBAAgB;EACjC,WAAW,QAAQ;GACnB,CACE,EAER,oCAAC;EAAS,IAAI;EAAU,SAAQ;IAC9B,oCAAC,aAAK,aAAmB,CAChB,CACP,CACM,CACV"}
1
+ {"version":3,"file":"WorkOrderCard-s-6QK3Re.js","names":["useStyles"],"sources":["../src/UI/surfaces/cards/workOrderCard/WorkOrderHeader.jsx","../src/UI/surfaces/cards/workOrderCard/WorkOrderCard.jsx"],"sourcesContent":["import React from 'react'\nimport { makeStyles, Typography, Divider } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n wrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n width: '75%'\n }\n}))\n\nexport const WorkOrderHeader = ({ cost, hours }) => {\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n <div className={classes.wrapper}>\n <div>\n <Typography variant='h3'> ${cost} </Typography>\n <Typography variant='caption'> Total Cost </Typography>\n </div>\n <div>\n <Divider variant='vertical' />\n </div>\n <div>\n <Typography variant='h3'> {hours} </Typography>\n <Typography variant='caption'> Total Hours </Typography>\n </div>\n </div>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport { makeStyles, Collapse } from '@material-ui/core'\nimport { AmbientCard } from '../AmbientCard'\nimport { FluentIconButton } from '../../../inputs/buttons/FluentIconButton'\nimport { LayoutUnit } from '../../../../layout/LayoutUnit'\nimport { ChevronDownIcon, ChevronUpIcon } from '@fluentui/react-icons'\nimport { WorkOrderHeader } from './WorkOrderHeader'\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n moreButton: {\n display: 'flex',\n // justifyContent: 'flex-end',\n },\n}));\n\nexport const WorkOrderCard = ({\n title,\n onClick,\n status,\n label,\n cost,\n hours,\n service,\n list,\n extendedList,\n launch,\n}) => {\n const classes = useStyles();\n const [expanded, setExpanded] = useState(false);\n\n return (\n <div className={classes.root}>\n <AmbientCard\n title={title}\n onClick={onClick}\n ariaLabel=\"launch\"\n fullWidth\n status={status}\n label={label}\n launch={launch}\n extendedContent={expanded}\n >\n {cost && (\n <div>\n <div>\n <WorkOrderHeader cost={cost} hours={hours} />\n </div>\n <LayoutUnit unit=\"sm\" />\n {service}\n <LayoutUnit unit=\"sm\" />\n </div>\n )}\n {!cost && <div> {service}</div>}\n\n <div>\n {list}\n <LayoutUnit unit=\"xxs\" />\n {extendedList && (\n <div className={classes.moreButton}>\n <FluentIconButton\n onClick={() => setExpanded(!expanded)}\n icon={expanded ? ChevronUpIcon : ChevronDownIcon}\n className={classes.icon}\n />\n </div>\n )}\n <Collapse in={expanded} timeout=\"auto\">\n <div>{extendedList}</div>\n </Collapse>\n </div>\n </AmbientCard>\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAGA,MAAMA,cAAY,YAAY,WAAW;CACvC,MAAM,EAAE;CACR,SAAS;EACP,SAAS;EACT,gBAAgB;EAChB,OAAO;EACR;CACF,EAAE;AAEH,MAAa,mBAAmB,EAAE,MAAM,YAAY;CAClD,MAAM,UAAUA,aAAW;AAE3B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC,SAAI,WAAW,QAAQ,WACtB,oCAAC,aACC,oCAAC,cAAW,SAAQ,QAAK,MAAG,MAAK,IAAc,EAC/C,oCAAC,cAAW,SAAQ,aAAU,eAAyB,CACnD,EACN,oCAAC,aACC,oCAAC,WAAQ,SAAQ,aAAa,CAC1B,EACN,oCAAC,aACC,oCAAC,cAAW,SAAQ,QAAK,KAAE,OAAM,IAAc,EAC/C,oCAAC,cAAW,SAAQ,aAAU,gBAA0B,CACpD,CACF,CACF;;;;;ACtBV,MAAM,YAAY,YAAW,WAAU;CACrC,MAAM,EAAE;CACR,YAAY,EACV,SAAS,QAEV;CACF,EAAE;AAEH,MAAa,iBAAiB,EAC5B,OACA,SACA,QACA,OACA,MACA,OACA,SACA,MACA,cACA,aACI;CACJ,MAAM,UAAU,WAAW;CAC3B,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;AAE/C,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC;EACQ;EACE;EACT,WAAU;EACV;EACQ;EACD;EACC;EACR,iBAAiB;IAEhB,QACC,oCAAC,aACC,oCAAC,aACC,oCAAC;EAAsB;EAAa;GAAS,CACzC,EACN,oCAAC,cAAW,MAAK,OAAO,EACvB,SACD,oCAAC,cAAW,MAAK,OAAO,CACpB,EAEP,CAAC,QAAQ,oCAAC,aAAI,KAAE,QAAc,EAE/B,oCAAC,aACE,MACD,oCAAC,cAAW,MAAK,QAAQ,EACxB,gBACC,oCAAC,SAAI,WAAW,QAAQ,cACtB,oCAAC;EACC,eAAe,YAAY,CAAC,SAAS;EACrC,MAAM,WAAW,gBAAgB;EACjC,WAAW,QAAQ;GACnB,CACE,EAER,oCAAC;EAAS,IAAI;EAAU,SAAQ;IAC9B,oCAAC,aAAK,aAAmB,CAChB,CACP,CACM,CACV"}
@@ -184,4 +184,4 @@ var WorkflowContainer_default = WorkflowContainer;
184
184
 
185
185
  //#endregion
186
186
  export { WorkflowContainer_default as n, WorkflowContainer as t };
187
- //# sourceMappingURL=WorkflowContainer-Cd5H4mpf.js.map
187
+ //# sourceMappingURL=WorkflowContainer-BheQPhXt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowContainer-Cd5H4mpf.js","names":[],"sources":["../src/workflow/WorkflowContainer.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { WorkflowTreeMenu } from './menus/WorkflowTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { WorkflowContent } from './WorkflowContent';\nimport {\n transformWorkflowPlayTree,\n updateWorkflowPlayNodeState\n} from '../utilities/workflow/workflowUtilities';\nimport { useUpdateSearchParams } from '../hooks/useUpdateSearchParams';\nimport { useUser } from '../utilities/auth/useUser';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flex: 1,\n minHeight: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n display: 'grid',\n gridTemplateAreas: ['sidebar content'].map((line) => `\"${line}\"`).join(' '),\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto 1fr'\n },\n sidebar: {\n gridArea: 'sidebar',\n marginRight: theme.spacing(1)\n },\n content: {\n gridArea: 'content',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n zIndex: 1,\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n overflowY: 'auto'\n },\n menuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 116}px)`,\n overflowX: 'hidden'\n },\n loader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n }\n}));\n\nexport const WorkflowContainer = (props) => {\n const { playId, taskId, autoCollapseNav = true } = props;\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const location = useLocation();\n const updateSearchParams = useUpdateSearchParams();\n const user = useUser();\n const setLocationState = useSetLocationState();\n const { t } = useTranslation();\n\n const [menuItemsList, setMenuItemsList] = useState([]); // holds a list of trees\n const [selectedNode, setSelectedNode] = useState(null);\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [reloadFromPage, setReloadFromPage] = useState(false);\n const [workflow, setWorkflow] = useState(false);\n\n const state = location.state;\n let searchParamStr = location.search;\n let searchParams = new URLSearchParams(searchParamStr);\n const urlPlayId = location.pathname.replace('/workflowtask/', '');\n const udpPlayId =\n playId ||\n urlPlayId ||\n (state\n ? state.playId\n : searchParams.has('playId') === true\n ? searchParams.get('playId')\n : '');\n\n const udpTaskId =\n taskId ||\n (state\n ? state.taskId\n : searchParams.has('taskId') === true\n ? searchParams.get('taskId')\n : '');\n\n const [{ data: workflowPlay, loading: workflowPlayLoading }, reloadWorkflow] =\n useAxiosGet(\n ConfigService.builderV1ApiUrl,\n `workflow/play/${udpPlayId}`,\n {},\n !!!udpPlayId,\n false\n );\n\n const [{ data: users }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users?tenantId=${user?.currentTenantId || ''}`,\n {},\n !!!user?.currentTenantId\n );\n\n const [{ data: groups }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `groups?tenantId=${user?.currentTenantId || ''}&productId=${\n ConfigService.config.UNITY_PRODUCT_ID\n }`,\n {},\n !!!user?.currentTenantId\n );\n\n // const getNodeState = useCallback(\n // async (nodeId) =>\n // apiMutate(\n // ConfigService.builderV1ApiUrl,\n // `workflow/play/${udpPlayId}/node/${nodeId}/state`,\n // {\n // method: 'get'\n // }\n // ),\n // [udpPlayId]\n // );\n\n const { setSubHeaderActionHasChildren, setNavigationExpanded } =\n useShellStore();\n\n const handleReloadWorkflow = useCallback(async () => {\n setReloadFromPage(true);\n await reloadWorkflow();\n setReloadFromPage(false);\n }, [reloadWorkflow]);\n\n const handleSelectedNode = useCallback(\n async (node, menuIndex) => {\n if (node.isSelectable) {\n setSelectedNode(node);\n await handleReloadWorkflow();\n if (node?.properties?.playSceneId) {\n updateSearchParams({ taskId: node.properties.playSceneId });\n }\n }\n },\n [updateSearchParams, handleReloadWorkflow]\n );\n\n const handleDropNode = useCallback(\n (sourceNode, targetNode, sourceNodeMenuIndex, targetNodeMenuIndex) => {\n // TODO: Implement if we need to for next Phase\n },\n []\n );\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n useEffect(() => {\n if (workflowPlay) {\n setWorkflow(workflowPlay);\n }\n }, [workflowPlay]);\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('Workflow') });\n }, [setLocationState, t]);\n\n // this is used for updating the state node for page use\n useEffect(() => {\n if (workflow) {\n setSelectedNode((prevNode) => {\n if (!!prevNode) {\n const foundNode = workflow.workflowPlayNode?.children?.find(\n (child) => child.id === prevNode.id\n );\n if (!!foundNode) {\n const updatedNode = { ...prevNode };\n // TODO: using this to update state for now but may need to update\n // other properties of the selected node when we pull workflow tree\n updatedNode.properties.state = foundNode.state;\n return updatedNode;\n } else {\n return prevNode;\n }\n }\n });\n }\n }, [workflow]);\n\n useEffect(() => {\n if (workflow) {\n const list = [];\n const updatedMenu = transformWorkflowPlayTree(workflow.workflowPlayNode);\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n setMenuItemsList(list);\n }\n }, [workflow]);\n\n useEffect(() => {\n if (!selectedNode) {\n const menu = menuItemsList[0];\n // Use Task Id to find the first matching node in tree\n if (menu) {\n if (!!udpTaskId) {\n const matchingTaskNode = menu.children.find(\n (child) => child?.properties?.playSceneId === udpTaskId\n );\n setSelectedNode(matchingTaskNode || menu.children[0] || null);\n } else {\n const firstSelectableMenuItem = menu?.children?.find(\n (item) => item.isSelectable\n );\n setSelectedNode(firstSelectableMenuItem || null);\n }\n if (autoCollapseNav) {\n setNavigationExpanded(false);\n }\n }\n }\n }, [\n udpTaskId,\n menuItemsList,\n selectedNode,\n setNavigationExpanded,\n autoCollapseNav\n ]);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n // useEffect(() => {\n // if (selectedNode) {\n // const getState = async () => {\n // const response = await getNodeState(selectedNode.id);\n // if (response.status === 200) {\n // setMenuItemsList((prevMenuList) => {\n // let updatedList = [];\n // prevMenuList.forEach((menu) => {\n // const updatedMenu = updateWorkflowPlayNodeState(\n // menu,\n // selectedNode.id,\n // response.data\n // );\n // updatedList.push(updatedMenu);\n // });\n // return updatedList;\n // });\n // }\n // };\n // getState();\n // }\n // }, [selectedNode, getNodeState]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={'Workflow'}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={64}\n >\n <div className={classes.menuContent} key={playId}>\n {menuItemsList?.length > 0 &&\n (!workflowPlayLoading || reloadFromPage) &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <WorkflowTreeMenu\n menuItems={menuItems}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedNode?.id}\n selectedNodeParentId={selectedNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {workflowPlayLoading && !reloadFromPage && (\n <div className={classes.loader}>\n <NodeLoader loading={workflowPlayLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n <WorkflowContent\n selectedNode={selectedNode}\n workflow={workflow}\n reloadWorkflow={handleReloadWorkflow}\n users={users}\n groups={groups}\n />\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default WorkflowContainer;\n"],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowContainer-BheQPhXt.js","names":[],"sources":["../src/workflow/WorkflowContainer.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { WorkflowTreeMenu } from './menus/WorkflowTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { WorkflowContent } from './WorkflowContent';\nimport {\n transformWorkflowPlayTree,\n updateWorkflowPlayNodeState\n} from '../utilities/workflow/workflowUtilities';\nimport { useUpdateSearchParams } from '../hooks/useUpdateSearchParams';\nimport { useUser } from '../utilities/auth/useUser';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flex: 1,\n minHeight: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n display: 'grid',\n gridTemplateAreas: ['sidebar content'].map((line) => `\"${line}\"`).join(' '),\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto 1fr'\n },\n sidebar: {\n gridArea: 'sidebar',\n marginRight: theme.spacing(1)\n },\n content: {\n gridArea: 'content',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n zIndex: 1,\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n overflowY: 'auto'\n },\n menuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 116}px)`,\n overflowX: 'hidden'\n },\n loader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n }\n}));\n\nexport const WorkflowContainer = (props) => {\n const { playId, taskId, autoCollapseNav = true } = props;\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const location = useLocation();\n const updateSearchParams = useUpdateSearchParams();\n const user = useUser();\n const setLocationState = useSetLocationState();\n const { t } = useTranslation();\n\n const [menuItemsList, setMenuItemsList] = useState([]); // holds a list of trees\n const [selectedNode, setSelectedNode] = useState(null);\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [reloadFromPage, setReloadFromPage] = useState(false);\n const [workflow, setWorkflow] = useState(false);\n\n const state = location.state;\n let searchParamStr = location.search;\n let searchParams = new URLSearchParams(searchParamStr);\n const urlPlayId = location.pathname.replace('/workflowtask/', '');\n const udpPlayId =\n playId ||\n urlPlayId ||\n (state\n ? state.playId\n : searchParams.has('playId') === true\n ? searchParams.get('playId')\n : '');\n\n const udpTaskId =\n taskId ||\n (state\n ? state.taskId\n : searchParams.has('taskId') === true\n ? searchParams.get('taskId')\n : '');\n\n const [{ data: workflowPlay, loading: workflowPlayLoading }, reloadWorkflow] =\n useAxiosGet(\n ConfigService.builderV1ApiUrl,\n `workflow/play/${udpPlayId}`,\n {},\n !!!udpPlayId,\n false\n );\n\n const [{ data: users }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users?tenantId=${user?.currentTenantId || ''}`,\n {},\n !!!user?.currentTenantId\n );\n\n const [{ data: groups }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `groups?tenantId=${user?.currentTenantId || ''}&productId=${\n ConfigService.config.UNITY_PRODUCT_ID\n }`,\n {},\n !!!user?.currentTenantId\n );\n\n // const getNodeState = useCallback(\n // async (nodeId) =>\n // apiMutate(\n // ConfigService.builderV1ApiUrl,\n // `workflow/play/${udpPlayId}/node/${nodeId}/state`,\n // {\n // method: 'get'\n // }\n // ),\n // [udpPlayId]\n // );\n\n const { setSubHeaderActionHasChildren, setNavigationExpanded } =\n useShellStore();\n\n const handleReloadWorkflow = useCallback(async () => {\n setReloadFromPage(true);\n await reloadWorkflow();\n setReloadFromPage(false);\n }, [reloadWorkflow]);\n\n const handleSelectedNode = useCallback(\n async (node, menuIndex) => {\n if (node.isSelectable) {\n setSelectedNode(node);\n await handleReloadWorkflow();\n if (node?.properties?.playSceneId) {\n updateSearchParams({ taskId: node.properties.playSceneId });\n }\n }\n },\n [updateSearchParams, handleReloadWorkflow]\n );\n\n const handleDropNode = useCallback(\n (sourceNode, targetNode, sourceNodeMenuIndex, targetNodeMenuIndex) => {\n // TODO: Implement if we need to for next Phase\n },\n []\n );\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n useEffect(() => {\n if (workflowPlay) {\n setWorkflow(workflowPlay);\n }\n }, [workflowPlay]);\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('Workflow') });\n }, [setLocationState, t]);\n\n // this is used for updating the state node for page use\n useEffect(() => {\n if (workflow) {\n setSelectedNode((prevNode) => {\n if (!!prevNode) {\n const foundNode = workflow.workflowPlayNode?.children?.find(\n (child) => child.id === prevNode.id\n );\n if (!!foundNode) {\n const updatedNode = { ...prevNode };\n // TODO: using this to update state for now but may need to update\n // other properties of the selected node when we pull workflow tree\n updatedNode.properties.state = foundNode.state;\n return updatedNode;\n } else {\n return prevNode;\n }\n }\n });\n }\n }, [workflow]);\n\n useEffect(() => {\n if (workflow) {\n const list = [];\n const updatedMenu = transformWorkflowPlayTree(workflow.workflowPlayNode);\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n setMenuItemsList(list);\n }\n }, [workflow]);\n\n useEffect(() => {\n if (!selectedNode) {\n const menu = menuItemsList[0];\n // Use Task Id to find the first matching node in tree\n if (menu) {\n if (!!udpTaskId) {\n const matchingTaskNode = menu.children.find(\n (child) => child?.properties?.playSceneId === udpTaskId\n );\n setSelectedNode(matchingTaskNode || menu.children[0] || null);\n } else {\n const firstSelectableMenuItem = menu?.children?.find(\n (item) => item.isSelectable\n );\n setSelectedNode(firstSelectableMenuItem || null);\n }\n if (autoCollapseNav) {\n setNavigationExpanded(false);\n }\n }\n }\n }, [\n udpTaskId,\n menuItemsList,\n selectedNode,\n setNavigationExpanded,\n autoCollapseNav\n ]);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n // useEffect(() => {\n // if (selectedNode) {\n // const getState = async () => {\n // const response = await getNodeState(selectedNode.id);\n // if (response.status === 200) {\n // setMenuItemsList((prevMenuList) => {\n // let updatedList = [];\n // prevMenuList.forEach((menu) => {\n // const updatedMenu = updateWorkflowPlayNodeState(\n // menu,\n // selectedNode.id,\n // response.data\n // );\n // updatedList.push(updatedMenu);\n // });\n // return updatedList;\n // });\n // }\n // };\n // getState();\n // }\n // }, [selectedNode, getNodeState]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={'Workflow'}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={64}\n >\n <div className={classes.menuContent} key={playId}>\n {menuItemsList?.length > 0 &&\n (!workflowPlayLoading || reloadFromPage) &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <WorkflowTreeMenu\n menuItems={menuItems}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedNode?.id}\n selectedNodeParentId={selectedNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {workflowPlayLoading && !reloadFromPage && (\n <div className={classes.loader}>\n <NodeLoader loading={workflowPlayLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n <WorkflowContent\n selectedNode={selectedNode}\n workflow={workflow}\n reloadWorkflow={handleReloadWorkflow}\n users={users}\n groups={groups}\n />\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default WorkflowContainer;\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { n as WorkflowContainer_default, t as WorkflowContainer } from "./WorkflowContainer-Cd5H4mpf.js";
1
+ import { n as WorkflowContainer_default, t as WorkflowContainer } from "./WorkflowContainer-BheQPhXt.js";
2
2
 
3
3
  export { WorkflowContainer, WorkflowContainer_default as default };
@@ -100,4 +100,4 @@ const useServerSideDatasource = (refetchData, refetchGroupData, filterChanged, s
100
100
 
101
101
  //#endregion
102
102
  export { useServerSideDatasource as t };
103
- //# sourceMappingURL=aggridHelpers-BeUZvPIv.js.map
103
+ //# sourceMappingURL=aggridHelpers-RYO7tWY9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggridHelpers-BeUZvPIv.js","names":["sortInfo: any","searchFilters: any","element","search: any"],"sources":["../src/utilities/aggrid/aggridHelpers.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n IServerSideDatasource,\n IServerSideGetRowsParams\n} from '@ag-grid-community/core';\nimport { SearchGroupingType } from '../../enums/unitySystemEnums';\nimport { useConvertFilterModelToSearchFilters } from '../search/SearchUtilities';\n\nexport const useServerSideDatasource = (\n refetchData: Function,\n refetchGroupData: any,\n filterChanged: any, // a ref (from useRef()) for detecting when a grid's filters have been changed\n setFilterChanged: any\n) => {\n const convertFilterModelToSearchFilters =\n useConvertFilterModelToSearchFilters();\n\n const dataSource = useMemo(() => {\n const ds: IServerSideDatasource = {\n async getRows(params: IServerSideGetRowsParams) {\n if (!params) return;\n const {\n startRow,\n endRow,\n sortModel,\n filterModel,\n rowGroupCols,\n groupKeys\n } = params?.request || {};\n let refetch = refetchData;\n const pageSize = params?.api?.paginationGetPageSize();\n let pageNumber =\n filterChanged.current === true ? 1 : (endRow as number) / pageSize;\n if (isNaN(pageNumber)) {\n pageNumber = 1;\n }\n\n // Sorting\n let column = sortModel[0]?.colId ?? '';\n let sortDirection = sortModel[0]?.sort ?? '';\n let sortInfo: any = [];\n if (column && sortDirection) {\n sortInfo.push({ sortColumn: column, sortDirection: sortDirection });\n }\n\n // Filtering\n let searchFilters: any = [];\n searchFilters = convertFilterModelToSearchFilters(filterModel);\n\n // Grouping\n const groupingColumns = rowGroupCols?.map((col) => col.id);\n let groupingType = '';\n // As we are attempting to mimic the grouping functionality of the unity-fluent-library component AmbientGridTemplate which allows\n // grouping on only one column/property at a time, the following logic is to ensure the appropriate grouping endpoint is hit\n // and that the grouping portion of the query in the back-end is added (setting groupingType = AGGREGATE or DISTINCT takes care of this)\n // only when selecting a column to group by. Then, expanding that group would hit a different endpoint to retrieve all rows using the grouping\n // value as a filter value.\n if (groupingColumns.length > 0 && groupKeys.length === 0) {\n groupingType = SearchGroupingType.Distinct;\n refetch = refetchGroupData ? refetchGroupData : refetchData;\n }\n\n // Create the filter for the grouped column\n if (groupKeys.length) {\n if (groupKeys.length === rowGroupCols.length) {\n groupKeys.forEach((key, index) => {\n const rowGroupCol = rowGroupCols[index];\n const element = searchFilters.find(\n (element: any) => element.searchField === rowGroupCol.field\n );\n if (element) {\n element.searchValue = key;\n element.searchOperator = '=';\n } else {\n searchFilters.push({\n searchField: rowGroupCol.field ?? rowGroupCol.id,\n searchValue: key,\n searchOperator: '=',\n searchValueType: 0\n });\n }\n });\n }\n }\n\n let search: any;\n search = {\n eagerLoad: groupingType ? false : true,\n pageNumber: pageNumber,\n pageSize: pageSize,\n orderElements: sortInfo,\n filterElements: searchFilters,\n groupingType: groupingType,\n groupProperty: groupingColumns\n };\n\n params.api.hideOverlay();\n\n const response = await refetch({ data: search }).catch(() => {\n params.success({ rowData: [], rowCount: 0 });\n params.api.showNoRowsOverlay();\n });\n\n if (response) {\n const rowData = response.data;\n if (rowData) {\n // we are expecting response of type Univerus.Unity.Commons.Api.Model.Page, but need to maintain support for MDM\n if (typeof rowData === 'object' && rowData.pageList) {\n params.success({\n rowData: rowData.pageList,\n rowCount: parseInt(rowData.total)\n });\n } else if (rowData.length > 0) {\n params.success({\n rowData: rowData,\n rowCount: parseInt(response.headers['totalrows'])\n });\n } else {\n params.success({ rowData: [], rowCount: 0 });\n }\n if (filterChanged.current === true) {\n params.api.paginationGoToFirstPage();\n setFilterChanged(false);\n }\n } else {\n params.success({ rowData: [], rowCount: 0 });\n params.api.showNoRowsOverlay();\n }\n } else {\n params.fail();\n }\n }\n };\n return ds;\n }, [\n convertFilterModelToSearchFilters,\n filterChanged,\n refetchData,\n refetchGroupData,\n setFilterChanged\n ]);\n return dataSource;\n};\n"],"mappings":";;;;;AAQA,MAAa,2BACX,aACA,kBACA,eACA,qBACG;CACH,MAAM,oCACJ,sCAAsC;AA8HxC,QA5HmB,cAAc;AAoH/B,SAnHkC,EAChC,MAAM,QAAQ,QAAkC;AAC9C,OAAI,CAAC,OAAQ;GACb,MAAM,EACJ,UACA,QACA,WACA,aACA,cACA,cACE,QAAQ,WAAW,EAAE;GACzB,IAAI,UAAU;GACd,MAAM,WAAW,QAAQ,KAAK,uBAAuB;GACrD,IAAI,aACF,cAAc,YAAY,OAAO,IAAK,SAAoB;AAC5D,OAAI,MAAM,WAAW,CACnB,cAAa;GAIf,IAAI,SAAS,UAAU,IAAI,SAAS;GACpC,IAAI,gBAAgB,UAAU,IAAI,QAAQ;GAC1C,IAAIA,WAAgB,EAAE;AACtB,OAAI,UAAU,cACZ,UAAS,KAAK;IAAE,YAAY;IAAuB;IAAe,CAAC;GAIrE,IAAIC,gBAAqB,EAAE;AAC3B,mBAAgB,kCAAkC,YAAY;GAG9D,MAAM,kBAAkB,cAAc,KAAK,QAAQ,IAAI,GAAG;GAC1D,IAAI,eAAe;AAMnB,OAAI,gBAAgB,SAAS,KAAK,UAAU,WAAW,GAAG;AACxD,mBAAe,mBAAmB;AAClC,cAAU,mBAAmB,mBAAmB;;AAIlD,OAAI,UAAU,QACZ;QAAI,UAAU,WAAW,aAAa,OACpC,WAAU,SAAS,KAAK,UAAU;KAChC,MAAM,cAAc,aAAa;KACjC,MAAM,UAAU,cAAc,MAC3B,cAAiBC,UAAQ,gBAAgB,YAAY,MACvD;AACD,SAAI,SAAS;AACX,cAAQ,cAAc;AACtB,cAAQ,iBAAiB;WAEzB,eAAc,KAAK;MACjB,aAAa,YAAY,SAAS,YAAY;MAC9C,aAAa;MACb,gBAAgB;MAChB,iBAAiB;MAClB,CAAC;MAEJ;;GAIN,IAAIC;AACJ,YAAS;IACP,WAAW,eAAe,QAAQ;IACtB;IACF;IACV,eAAe;IACf,gBAAgB;IACF;IACd,eAAe;IAChB;AAED,UAAO,IAAI,aAAa;GAExB,MAAM,WAAW,MAAM,QAAQ,EAAE,MAAM,QAAQ,CAAC,CAAC,YAAY;AAC3D,WAAO,QAAQ;KAAE,SAAS,EAAE;KAAE,UAAU;KAAG,CAAC;AAC5C,WAAO,IAAI,mBAAmB;KAC9B;AAEF,OAAI,UAAU;IACZ,MAAM,UAAU,SAAS;AACzB,QAAI,SAAS;AAEX,SAAI,OAAO,YAAY,YAAY,QAAQ,SACzC,QAAO,QAAQ;MACb,SAAS,QAAQ;MACjB,UAAU,SAAS,QAAQ,MAAM;MAClC,CAAC;cACO,QAAQ,SAAS,EAC1B,QAAO,QAAQ;MACJ;MACT,UAAU,SAAS,SAAS,QAAQ,aAAa;MAClD,CAAC;SAEF,QAAO,QAAQ;MAAE,SAAS,EAAE;MAAE,UAAU;MAAG,CAAC;AAE9C,SAAI,cAAc,YAAY,MAAM;AAClC,aAAO,IAAI,yBAAyB;AACpC,uBAAiB,MAAM;;WAEpB;AACL,YAAO,QAAQ;MAAE,SAAS,EAAE;MAAE,UAAU;MAAG,CAAC;AAC5C,YAAO,IAAI,mBAAmB;;SAGhC,QAAO,MAAM;KAGlB;IAEA;EACD;EACA;EACA;EACA;EACA;EACD,CAAC"}
1
+ {"version":3,"file":"aggridHelpers-RYO7tWY9.js","names":["sortInfo: any","searchFilters: any","element","search: any"],"sources":["../src/utilities/aggrid/aggridHelpers.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n IServerSideDatasource,\n IServerSideGetRowsParams\n} from '@ag-grid-community/core';\nimport { SearchGroupingType } from '../../enums/unitySystemEnums';\nimport { useConvertFilterModelToSearchFilters } from '../search/SearchUtilities';\n\nexport const useServerSideDatasource = (\n refetchData: Function,\n refetchGroupData: any,\n filterChanged: any, // a ref (from useRef()) for detecting when a grid's filters have been changed\n setFilterChanged: any\n) => {\n const convertFilterModelToSearchFilters =\n useConvertFilterModelToSearchFilters();\n\n const dataSource = useMemo(() => {\n const ds: IServerSideDatasource = {\n async getRows(params: IServerSideGetRowsParams) {\n if (!params) return;\n const {\n startRow,\n endRow,\n sortModel,\n filterModel,\n rowGroupCols,\n groupKeys\n } = params?.request || {};\n let refetch = refetchData;\n const pageSize = params?.api?.paginationGetPageSize();\n let pageNumber =\n filterChanged.current === true ? 1 : (endRow as number) / pageSize;\n if (isNaN(pageNumber)) {\n pageNumber = 1;\n }\n\n // Sorting\n let column = sortModel[0]?.colId ?? '';\n let sortDirection = sortModel[0]?.sort ?? '';\n let sortInfo: any = [];\n if (column && sortDirection) {\n sortInfo.push({ sortColumn: column, sortDirection: sortDirection });\n }\n\n // Filtering\n let searchFilters: any = [];\n searchFilters = convertFilterModelToSearchFilters(filterModel);\n\n // Grouping\n const groupingColumns = rowGroupCols?.map((col) => col.id);\n let groupingType = '';\n // As we are attempting to mimic the grouping functionality of the unity-fluent-library component AmbientGridTemplate which allows\n // grouping on only one column/property at a time, the following logic is to ensure the appropriate grouping endpoint is hit\n // and that the grouping portion of the query in the back-end is added (setting groupingType = AGGREGATE or DISTINCT takes care of this)\n // only when selecting a column to group by. Then, expanding that group would hit a different endpoint to retrieve all rows using the grouping\n // value as a filter value.\n if (groupingColumns.length > 0 && groupKeys.length === 0) {\n groupingType = SearchGroupingType.Distinct;\n refetch = refetchGroupData ? refetchGroupData : refetchData;\n }\n\n // Create the filter for the grouped column\n if (groupKeys.length) {\n if (groupKeys.length === rowGroupCols.length) {\n groupKeys.forEach((key, index) => {\n const rowGroupCol = rowGroupCols[index];\n const element = searchFilters.find(\n (element: any) => element.searchField === rowGroupCol.field\n );\n if (element) {\n element.searchValue = key;\n element.searchOperator = '=';\n } else {\n searchFilters.push({\n searchField: rowGroupCol.field ?? rowGroupCol.id,\n searchValue: key,\n searchOperator: '=',\n searchValueType: 0\n });\n }\n });\n }\n }\n\n let search: any;\n search = {\n eagerLoad: groupingType ? false : true,\n pageNumber: pageNumber,\n pageSize: pageSize,\n orderElements: sortInfo,\n filterElements: searchFilters,\n groupingType: groupingType,\n groupProperty: groupingColumns\n };\n\n params.api.hideOverlay();\n\n const response = await refetch({ data: search }).catch(() => {\n params.success({ rowData: [], rowCount: 0 });\n params.api.showNoRowsOverlay();\n });\n\n if (response) {\n const rowData = response.data;\n if (rowData) {\n // we are expecting response of type Univerus.Unity.Commons.Api.Model.Page, but need to maintain support for MDM\n if (typeof rowData === 'object' && rowData.pageList) {\n params.success({\n rowData: rowData.pageList,\n rowCount: parseInt(rowData.total)\n });\n } else if (rowData.length > 0) {\n params.success({\n rowData: rowData,\n rowCount: parseInt(response.headers['totalrows'])\n });\n } else {\n params.success({ rowData: [], rowCount: 0 });\n }\n if (filterChanged.current === true) {\n params.api.paginationGoToFirstPage();\n setFilterChanged(false);\n }\n } else {\n params.success({ rowData: [], rowCount: 0 });\n params.api.showNoRowsOverlay();\n }\n } else {\n params.fail();\n }\n }\n };\n return ds;\n }, [\n convertFilterModelToSearchFilters,\n filterChanged,\n refetchData,\n refetchGroupData,\n setFilterChanged\n ]);\n return dataSource;\n};\n"],"mappings":";;;;;AAQA,MAAa,2BACX,aACA,kBACA,eACA,qBACG;CACH,MAAM,oCACJ,sCAAsC;AA8HxC,QA5HmB,cAAc;AAoH/B,SAnHkC,EAChC,MAAM,QAAQ,QAAkC;AAC9C,OAAI,CAAC,OAAQ;GACb,MAAM,EACJ,UACA,QACA,WACA,aACA,cACA,cACE,QAAQ,WAAW,EAAE;GACzB,IAAI,UAAU;GACd,MAAM,WAAW,QAAQ,KAAK,uBAAuB;GACrD,IAAI,aACF,cAAc,YAAY,OAAO,IAAK,SAAoB;AAC5D,OAAI,MAAM,WAAW,CACnB,cAAa;GAIf,IAAI,SAAS,UAAU,IAAI,SAAS;GACpC,IAAI,gBAAgB,UAAU,IAAI,QAAQ;GAC1C,IAAIA,WAAgB,EAAE;AACtB,OAAI,UAAU,cACZ,UAAS,KAAK;IAAE,YAAY;IAAuB;IAAe,CAAC;GAIrE,IAAIC,gBAAqB,EAAE;AAC3B,mBAAgB,kCAAkC,YAAY;GAG9D,MAAM,kBAAkB,cAAc,KAAK,QAAQ,IAAI,GAAG;GAC1D,IAAI,eAAe;AAMnB,OAAI,gBAAgB,SAAS,KAAK,UAAU,WAAW,GAAG;AACxD,mBAAe,mBAAmB;AAClC,cAAU,mBAAmB,mBAAmB;;AAIlD,OAAI,UAAU,QACZ;QAAI,UAAU,WAAW,aAAa,OACpC,WAAU,SAAS,KAAK,UAAU;KAChC,MAAM,cAAc,aAAa;KACjC,MAAM,UAAU,cAAc,MAC3B,cAAiBC,UAAQ,gBAAgB,YAAY,MACvD;AACD,SAAI,SAAS;AACX,cAAQ,cAAc;AACtB,cAAQ,iBAAiB;WAEzB,eAAc,KAAK;MACjB,aAAa,YAAY,SAAS,YAAY;MAC9C,aAAa;MACb,gBAAgB;MAChB,iBAAiB;MAClB,CAAC;MAEJ;;GAIN,IAAIC;AACJ,YAAS;IACP,WAAW,eAAe,QAAQ;IACtB;IACF;IACV,eAAe;IACf,gBAAgB;IACF;IACd,eAAe;IAChB;AAED,UAAO,IAAI,aAAa;GAExB,MAAM,WAAW,MAAM,QAAQ,EAAE,MAAM,QAAQ,CAAC,CAAC,YAAY;AAC3D,WAAO,QAAQ;KAAE,SAAS,EAAE;KAAE,UAAU;KAAG,CAAC;AAC5C,WAAO,IAAI,mBAAmB;KAC9B;AAEF,OAAI,UAAU;IACZ,MAAM,UAAU,SAAS;AACzB,QAAI,SAAS;AAEX,SAAI,OAAO,YAAY,YAAY,QAAQ,SACzC,QAAO,QAAQ;MACb,SAAS,QAAQ;MACjB,UAAU,SAAS,QAAQ,MAAM;MAClC,CAAC;cACO,QAAQ,SAAS,EAC1B,QAAO,QAAQ;MACJ;MACT,UAAU,SAAS,SAAS,QAAQ,aAAa;MAClD,CAAC;SAEF,QAAO,QAAQ;MAAE,SAAS,EAAE;MAAE,UAAU;MAAG,CAAC;AAE9C,SAAI,cAAc,YAAY,MAAM;AAClC,aAAO,IAAI,yBAAyB;AACpC,uBAAiB,MAAM;;WAEpB;AACL,YAAO,QAAQ;MAAE,SAAS,EAAE;MAAE,UAAU;MAAG,CAAC;AAC5C,YAAO,IAAI,mBAAmB;;SAGhC,QAAO,MAAM;KAGlB;IAEA;EACD;EACA;EACA;EACA;EACA;EACD,CAAC"}
@@ -64,4 +64,4 @@ const useNoticeUpdate = () => {
64
64
 
65
65
  //#endregion
66
66
  export { useScreenControl as n, useNoticeUpdate as t };
67
- //# sourceMappingURL=gridVisualizationFunctions-jnvPACJD.js.map
67
+ //# sourceMappingURL=gridVisualizationFunctions-Cmh4EUIL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gridVisualizationFunctions-jnvPACJD.js","names":["e"],"sources":["../src/utilities/floorplanFunctions/gridVisualizationFunctions.js"],"sourcesContent":["import { useState } from 'react'\n\nexport const useScreenControl = (e) => {\n const [splitScreen, setSplitScreen] = useState(false)\n const [width, setWidth] = useState(0);\n const [expanded, setExpanded] = useState(false)\n const [dialogOpen, setDialogOpen] = useState(false)\n const [sideSheetOpen, setSideSheetOpen] = useState(false)\n const [sideSheetStatus, setSideSheetStatus] = useState(false)\n\n const sideBarControl = (e) => {\n setSplitScreen(e === 0 ? false: true)\n setExpanded( e === 0 ? false : true)\n setWidth(e === 0 ? 0 : 300)\n setDialogOpen(false)\n }\n\n const updateWidth = (e) => {\n setWidth(e)\n }\n\n const handleSideSheet = (bol) => {\n setSideSheetOpen(bol)\n }\n\n return [splitScreen, width, expanded, dialogOpen, sideSheetOpen, sideSheetStatus, sideBarControl, updateWidth, setDialogOpen, handleSideSheet ]\n}\n\n\nexport const useNoticeUpdate = () => {\n const [noticeState, setNoticeState] = useState({})\n const [alertState, setAlertState] = useState({})\n\n const sendNotice = (alertType, alertMessage, alertButton, messageType, show) => {\n console.log('UPDATE NOTICE', alertType, alertMessage, alertButton, messageType, show)\n messageType === 'toast' && setNoticeState( {\n noticeType: alertType,\n noticeMessage: alertMessage,\n noticeButton: alertButton,\n messageType: messageType,\n show: show\n })\n messageType === 'alert' && setAlertState( {\n alertType: alertType,\n alertMessage: alertMessage,\n alertButton: alertButton,\n messageType: messageType,\n show: show\n });\n }\n\n return [noticeState, alertState, setAlertState, setNoticeState, sendNotice ]\n}"],"mappings":";;;AAEA,MAAa,oBAAoB,MAAM;CACrC,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;CACrD,MAAM,CAAC,OAAO,YAAY,SAAS,EAAE;CACrC,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;CAC/C,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;CACnD,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;CACzD,MAAM,CAAC,iBAAiB,sBAAsB,SAAS,MAAM;CAE7D,MAAM,kBAAkB,QAAM;AAC5B,iBAAeA,QAAM,IAAI,QAAO,KAAK;AACrC,cAAaA,QAAM,IAAI,QAAQ,KAAK;AACpC,WAASA,QAAM,IAAI,IAAI,IAAI;AAC3B,gBAAc,MAAM;;CAGtB,MAAM,eAAe,QAAM;AACzB,WAASA,IAAE;;CAGb,MAAM,mBAAmB,QAAQ;AAC9B,mBAAiB,IAAI;;AAGxB,QAAO;EAAC;EAAa;EAAO;EAAU;EAAY;EAAe;EAAiB;EAAgB;EAAa;EAAe;EAAiB;;AAIjJ,MAAa,wBAAwB;CACnC,MAAM,CAAC,aAAa,kBAAkB,SAAS,EAAE,CAAC;CAClD,MAAM,CAAC,YAAY,iBAAiB,SAAS,EAAE,CAAC;CAE9C,MAAM,cAAc,WAAW,cAAc,aAAa,aAAa,SAAS;AAC9E,UAAQ,IAAI,iBAAiB,WAAW,cAAc,aAAa,aAAa,KAAK;AACrF,kBAAgB,WAAW,eAAgB;GACzC,YAAY;GACZ,eAAe;GACf,cAAc;GACD;GACP;GACP,CAAC;AACJ,kBAAgB,WAAW,cAAe;GAC3B;GACG;GACD;GACA;GACP;GACP,CAAC;;AAGJ,QAAO;EAAC;EAAa;EAAY;EAAe;EAAgB;EAAY"}
1
+ {"version":3,"file":"gridVisualizationFunctions-Cmh4EUIL.js","names":["e"],"sources":["../src/utilities/floorplanFunctions/gridVisualizationFunctions.js"],"sourcesContent":["import { useState } from 'react'\n\nexport const useScreenControl = (e) => {\n const [splitScreen, setSplitScreen] = useState(false)\n const [width, setWidth] = useState(0);\n const [expanded, setExpanded] = useState(false)\n const [dialogOpen, setDialogOpen] = useState(false)\n const [sideSheetOpen, setSideSheetOpen] = useState(false)\n const [sideSheetStatus, setSideSheetStatus] = useState(false)\n\n const sideBarControl = (e) => {\n setSplitScreen(e === 0 ? false: true)\n setExpanded( e === 0 ? false : true)\n setWidth(e === 0 ? 0 : 300)\n setDialogOpen(false)\n }\n\n const updateWidth = (e) => {\n setWidth(e)\n }\n\n const handleSideSheet = (bol) => {\n setSideSheetOpen(bol)\n }\n\n return [splitScreen, width, expanded, dialogOpen, sideSheetOpen, sideSheetStatus, sideBarControl, updateWidth, setDialogOpen, handleSideSheet ]\n}\n\n\nexport const useNoticeUpdate = () => {\n const [noticeState, setNoticeState] = useState({})\n const [alertState, setAlertState] = useState({})\n\n const sendNotice = (alertType, alertMessage, alertButton, messageType, show) => {\n console.log('UPDATE NOTICE', alertType, alertMessage, alertButton, messageType, show)\n messageType === 'toast' && setNoticeState( {\n noticeType: alertType,\n noticeMessage: alertMessage,\n noticeButton: alertButton,\n messageType: messageType,\n show: show\n })\n messageType === 'alert' && setAlertState( {\n alertType: alertType,\n alertMessage: alertMessage,\n alertButton: alertButton,\n messageType: messageType,\n show: show\n });\n }\n\n return [noticeState, alertState, setAlertState, setNoticeState, sendNotice ]\n}"],"mappings":";;;AAEA,MAAa,oBAAoB,MAAM;CACrC,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;CACrD,MAAM,CAAC,OAAO,YAAY,SAAS,EAAE;CACrC,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;CAC/C,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;CACnD,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;CACzD,MAAM,CAAC,iBAAiB,sBAAsB,SAAS,MAAM;CAE7D,MAAM,kBAAkB,QAAM;AAC5B,iBAAeA,QAAM,IAAI,QAAO,KAAK;AACrC,cAAaA,QAAM,IAAI,QAAQ,KAAK;AACpC,WAASA,QAAM,IAAI,IAAI,IAAI;AAC3B,gBAAc,MAAM;;CAGtB,MAAM,eAAe,QAAM;AACzB,WAASA,IAAE;;CAGb,MAAM,mBAAmB,QAAQ;AAC9B,mBAAiB,IAAI;;AAGxB,QAAO;EAAC;EAAa;EAAO;EAAU;EAAY;EAAe;EAAiB;EAAgB;EAAa;EAAe;EAAiB;;AAIjJ,MAAa,wBAAwB;CACnC,MAAM,CAAC,aAAa,kBAAkB,SAAS,EAAE,CAAC;CAClD,MAAM,CAAC,YAAY,iBAAiB,SAAS,EAAE,CAAC;CAE9C,MAAM,cAAc,WAAW,cAAc,aAAa,aAAa,SAAS;AAC9E,UAAQ,IAAI,iBAAiB,WAAW,cAAc,aAAa,aAAa,KAAK;AACrF,kBAAgB,WAAW,eAAgB;GACzC,YAAY;GACZ,eAAe;GACf,cAAc;GACD;GACP;GACP,CAAC;AACJ,kBAAgB,WAAW,cAAe;GAC3B;GACG;GACD;GACA;GACP;GACP,CAAC;;AAGJ,QAAO;EAAC;EAAa;EAAY;EAAe;EAAgB;EAAY"}
package/dist/index.js CHANGED
@@ -111,7 +111,7 @@ import { t as useQueryExecutors } from "./useQueryExecutors-DuuHrj2M.js";
111
111
  import { t as useSearchFilterParamsMap } from "./useSearchFilterParamsMap-DPCfEY-N.js";
112
112
  import { a as AmbientSummaryListHeader, c as AlertFlag, i as FilterSearch, n as NodeColumnHeader, o as AmbientListItem, r as FlagBlock, s as ItemDescription } from "./inquiry-CKJOeOAS.js";
113
113
  import { t as SummaryBlock } from "./SummaryBlock-BjUNDl4q.js";
114
- import { n as AmbientSplitStatCard, t as AmbientVisualizationCard } from "./AmbientVisualizationCard-Cov8RODG.js";
114
+ import { n as AmbientSplitStatCard, t as AmbientVisualizationCard } from "./AmbientVisualizationCard-Dig-Mh_G.js";
115
115
  import { a as InquiryTreeMenuItem, c as ExecuteApiDialog, i as InquiryTreeMenu, n as InquiryContainer, o as NodeDetails, r as NodeList, s as InquiryWrapper, t as Inquiry } from "./Inquiry-Cjz91wf_.js";
116
116
  import { C as TextPropertyWidget_exports, _ as DatePropertyWidget_exports, a as DateTimePropertyWidget_exports, d as FloatPropertyWidget_exports, h as MultilineTextPropertyWidget_exports, l as TimePropertyWidget_exports, p as SelectPropertyWidget_exports, r as AutoCompletePropertyWidget_exports, s as BooleanPropertyWidget_exports, x as IntegerPropertyWidget_exports, y as NumericPropertyWidget_exports } from "./widgets-Cp52ccgB.js";
117
117
  import { n as DateField, t as TimeField } from "./TimeField-BZYVtp3p.js";
@@ -147,8 +147,8 @@ import { t as PowerBIReport } from "./PowerBIReport-CMrcDCCK.js";
147
147
  import { t as PageStatus } from "./PageStatus-DNxWVAG8.js";
148
148
  import { n as getRouteRolesMapAndMenuActiveMap, t as getMenuItemsRecursively } from "./menuUtilities-B6z02FRb.js";
149
149
  import { n as useMenuContext, t as MenuProvider } from "./MenuProvider-rwBliXcV.js";
150
- import { n as PrivateRoute, t as UdpRoutes } from "./routes-DG4NLFP9.js";
151
- import { o as ShellDropdown, s as AmbientProjectSwitcher } from "./SiteHeader-DMstxPs3.js";
150
+ import { n as PrivateRoute, t as UdpRoutes } from "./routes-3HDtkQKa.js";
151
+ import { o as ShellDropdown, s as AmbientProjectSwitcher } from "./SiteHeader-KoNZC5W5.js";
152
152
  import { n as AppMenuItem, r as AppMenuItemComponent, t as AppMenu } from "./AppMenu-DW1oQdFA.js";
153
153
  import { t as BreadCrumbMenu } from "./BreadCrumbMenu-AehSna6J.js";
154
154
  import { t as useTenant } from "./useTenant-CGaZEBEJ.js";
@@ -225,7 +225,7 @@ import { t as UdpMap } from "./maps-BgmvNpkU.js";
225
225
  import { t as UdpAdvancedSearchBuilder } from "./advancedSearchBuilder-7ixhIwLW.js";
226
226
  import { n as SapFlexibleTemplate, t as ToggleSection } from "./templates-2r09nl9N.js";
227
227
  import { t as AlertContainer } from "./UI-Baviuqz7.js";
228
- import { t as Shell } from "./Shell-DKZFbV05.js";
228
+ import { t as Shell } from "./Shell-N3oRzrDU.js";
229
229
  import { t as UserForm } from "./UserForm-DZ1a9uqZ.js";
230
230
  import { t as SearchMethodUdpGrid } from "./SearchMethodUdpGrid-CWYZUOx-.js";
231
231
  import { n as UdpMaintenanceEnginePage } from "./UdpMaintenanceEnginePage-C1UcnDlL.js";
@@ -246,61 +246,61 @@ import { t as ClientSideUdpGrid } from "./ClientSideUdpGrid-D5fGumO-.js";
246
246
  import { t as TrimForAvatar } from "./TrimForAvatar-BmM2bU6E.js";
247
247
  import { i as FluentMenuListButton, n as FluentCompoundButton, r as FluentUploadButton, t as FluentUploadIconButton } from "./buttons-CuLiERQe.js";
248
248
  import { t as AmbientToggleButtonGroup } from "./AmbientToggleButtonGroup-Bi9yW5gC.js";
249
- import { n as UdpTransactionsPage_default } from "./UdpTransactionsPage-B5uhMoFg.js";
250
- import { t as AccountFlags } from "./status-Bmaija4B.js";
251
- import { n as FormHeader, r as FormSubHeader, t as StylizedTitle } from "./typography-IJpS01q9.js";
252
- import { n as UdpDateSelector, r as FluentDateTimePicker, t as UdpTimeSelector } from "./pickers-CkwI49Ju.js";
253
- import { t as FluentTimePicker } from "./FluentTimePicker-LUfZzJJZ.js";
254
- import { t as Attachments } from "./uploader-CPU1l-ss.js";
249
+ import { n as UdpTransactionsPage_default } from "./UdpTransactionsPage-BZ0Idg5s.js";
250
+ import { t as AccountFlags } from "./status-moefSFBs.js";
251
+ import { n as FormHeader, r as FormSubHeader, t as StylizedTitle } from "./typography-CvW7cAl8.js";
252
+ import { n as UdpDateSelector, r as FluentDateTimePicker, t as UdpTimeSelector } from "./pickers-B-bB40GS.js";
253
+ import { t as FluentTimePicker } from "./FluentTimePicker-hNcocKsd.js";
254
+ import { t as Attachments } from "./uploader-Dvf2cDh8.js";
255
255
  import { UdpPages } from "./udp/pages/UdpPages/index.js";
256
- import { t as CardList } from "./CardList-B_F1Qgqh.js";
257
- import { t as GraphCard } from "./GraphCard-CcXwOERk.js";
258
- import { n as DirectoryListItem, t as Directory } from "./Directory-CFTCLxWZ.js";
259
- import { t as EntityHeader } from "./EntityHeader-D_gYzj76.js";
260
- import { n as ColorKey, t as IconKey } from "./IconKey-CbK8_rol.js";
261
- import { n as useStyles, r as Note, t as Notes } from "./Notes-i2G6Ugsq.js";
262
- import { n as StatusLineItem, r as NotificationElement, t as TicketCard } from "./TicketCard-D-FtADsb.js";
263
- import { t as AmbientVisualizer } from "./AmbientVisualizer-Bo7NLGfw.js";
264
- import { t as FluentLink } from "./FluentLink-DP2eDAH2.js";
265
- import { i as FluentSelectGroupMenu, n as FluentScrollLoadAutocompleteMenu, r as SelectGroupMenu, t as FluentSimpleSelect } from "./FluentSimpleSelect-DxxbQV37.js";
266
- import { t as FluentSelectMenu } from "./FluentSelectMenu-yQMFZWEg.js";
267
- import { i as CheckboxGroup, n as PopoverCard, r as CheckboxList, t as Statistic } from "./Statistic-IWynWCev.js";
268
- import { t as TokenGroupItem } from "./TokenGroupItem-DKbm__Kc.js";
269
- import { t as FluentCardHeader } from "./FluentCardHeader-BdMB2qzK.js";
270
- import { t as NewsCard } from "./NewsCard-Y-exMCuK.js";
271
- import { t as WorkOrderCard } from "./WorkOrderCard-Ce5WrpnX.js";
272
- import { t as UdpGridTemplate } from "./UdpGridTemplate-U9YcYLUf.js";
273
- import { t as UdpDateRangeSelector } from "./UdpDateRangeSelector-C_gpkHul.js";
274
- import { a as UdpCalendar, i as UdpCalendarDayView, n as UdpCalendarMonthView, r as UdpCalendarWeekView, t as UdpCalendarYearView } from "./UdpCalendarYearView-BSR8CGHt.js";
275
- import { t as BarChartWidget_exports } from "./BarChartWidget-D-_ZVpMh.js";
276
- import { t as BubbleWidget_exports } from "./BubbleWidget-SplMEBJm.js";
256
+ import { t as CardList } from "./CardList-BPNGTxsh.js";
257
+ import { t as GraphCard } from "./GraphCard-Dv4a99wo.js";
258
+ import { n as DirectoryListItem, t as Directory } from "./Directory-CoEKdRkU.js";
259
+ import { t as EntityHeader } from "./EntityHeader-DiOEw-za.js";
260
+ import { n as ColorKey, t as IconKey } from "./IconKey-D7fZ_U4O.js";
261
+ import { n as useStyles, r as Note, t as Notes } from "./Notes-UkwV2z4D.js";
262
+ import { n as StatusLineItem, r as NotificationElement, t as TicketCard } from "./TicketCard-IqCCKSc0.js";
263
+ import { t as AmbientVisualizer } from "./AmbientVisualizer-B1Xwwe0J.js";
264
+ import { t as FluentLink } from "./FluentLink-D-gKioCQ.js";
265
+ import { i as FluentSelectGroupMenu, n as FluentScrollLoadAutocompleteMenu, r as SelectGroupMenu, t as FluentSimpleSelect } from "./FluentSimpleSelect-Djff-up8.js";
266
+ import { t as FluentSelectMenu } from "./FluentSelectMenu-BEREJbe-.js";
267
+ import { i as CheckboxGroup, n as PopoverCard, r as CheckboxList, t as Statistic } from "./Statistic-ChTR_kas.js";
268
+ import { t as TokenGroupItem } from "./TokenGroupItem-BK0dx4cD.js";
269
+ import { t as FluentCardHeader } from "./FluentCardHeader-CRJaqkV3.js";
270
+ import { t as NewsCard } from "./NewsCard-C3y9a_OJ.js";
271
+ import { t as WorkOrderCard } from "./WorkOrderCard-s-6QK3Re.js";
272
+ import { t as UdpGridTemplate } from "./UdpGridTemplate-OsS_O6jR.js";
273
+ import { t as UdpDateRangeSelector } from "./UdpDateRangeSelector-BivfBlPa.js";
274
+ import { a as UdpCalendar, i as UdpCalendarDayView, n as UdpCalendarMonthView, r as UdpCalendarWeekView, t as UdpCalendarYearView } from "./UdpCalendarYearView-BEdW-myL.js";
275
+ import { t as BarChartWidget_exports } from "./BarChartWidget-Dwav8_8e.js";
276
+ import { t as BubbleWidget_exports } from "./BubbleWidget-CsIheJTW.js";
277
277
  import { CircleGaugeWidget } from "./UI/widgets/library/CircleGaugeWidget/index.js";
278
- import { t as DateTrendWidget_exports } from "./DateTrendWidget-F6hBnYej.js";
279
- import { t as DensePlotWidget_exports } from "./DensePlotWidget-BEhHNh53.js";
278
+ import { t as DateTrendWidget_exports } from "./DateTrendWidget-cdExY12Q.js";
279
+ import { t as DensePlotWidget_exports } from "./DensePlotWidget-DHRKyeck.js";
280
280
  import { GaugeWidget } from "./UI/widgets/library/GaugeWidget/index.js";
281
- import { t as LineAndSparklinesWidget_exports } from "./LineAndSparklinesWidget-KVAnvpKl.js";
282
- import { t as LineGraphWidget_exports } from "./LineGraphWidget-CYjLiV5B.js";
283
- import { t as SparsePlotWidget_exports } from "./SparsePlotWidget-B3wtNHo2.js";
284
- import { t as useServerSideDatasource } from "./aggridHelpers-BeUZvPIv.js";
285
- import { n as useScreenControl, t as useNoticeUpdate } from "./gridVisualizationFunctions-jnvPACJD.js";
286
- import { t as PaymentForm } from "./PaymentForm-BTLh5bXJ.js";
287
- import { t as OutlookCallback } from "./OutlookCallback-teOtztm6.js";
288
- import { t as ContentContainer } from "./ContentContainer-DuDrf5lL.js";
289
- import { n as ThemeProvider, r as useSystemColor, t as useTheme } from "./theme-IKiRfNgl.js";
290
- import { t as FileUpload } from "./FileUpload-BCxrOds_.js";
291
- import { n as AmbientDateRangeSelector, t as AmbientSingleDateSelector } from "./AmbientSingleDateSelector-8uylQ-tc.js";
292
- import { n as FluentRadio, t as FluentRadioGroup } from "./FluentRadioGroup-CCKelZVk.js";
293
- import { t as PageNotFoundRoute } from "./PageNotFoundRoute-i_Tf23jB.js";
294
- import { t as AmChart } from "./AmChart-WvmHsOdz.js";
295
- import { t as WorkflowContainer } from "./WorkflowContainer-Cd5H4mpf.js";
296
- import { t as TimelineCalendar } from "./TimelineCalendar-Mi4baqsg.js";
297
- import { t as CustomMenuPage_default } from "./menuPage-B9NwQJVt.js";
298
- import { t as StatusCellRenderer } from "./StatusCellRenderer-BuPuvngw.js";
299
- import { t as UdpFormsSubmissionGrid } from "./UdpFormsSubmissionGrid-PWsnFyYB.js";
300
- import { n as FieldType, t as FieldArrayCard } from "./FieldArrayCard-Bv9h9akG.js";
301
- import { n as ApprovalIcon, t as RejectIcon } from "./RejectIcon-CNSkW92y.js";
302
- import { t as MyExportsPage } from "./MyExportsPage-BwcVZASe.js";
303
- import { n as getI18nInstance, r as initializeUnityI18n, t as UdpAppProvider } from "./UdpAppProvider-BRyRY8zN.js";
281
+ import { t as LineAndSparklinesWidget_exports } from "./LineAndSparklinesWidget-CUq3QxmN.js";
282
+ import { t as LineGraphWidget_exports } from "./LineGraphWidget-DOwAVdTR.js";
283
+ import { t as SparsePlotWidget_exports } from "./SparsePlotWidget-ZYP6TKB6.js";
284
+ import { t as useServerSideDatasource } from "./aggridHelpers-RYO7tWY9.js";
285
+ import { n as useScreenControl, t as useNoticeUpdate } from "./gridVisualizationFunctions-Cmh4EUIL.js";
286
+ import { t as PaymentForm } from "./PaymentForm-CRlhsB2F.js";
287
+ import { t as OutlookCallback } from "./OutlookCallback-D3no-Urx.js";
288
+ import { t as ContentContainer } from "./ContentContainer-C2CcA6oX.js";
289
+ import { n as ThemeProvider, r as useSystemColor, t as useTheme } from "./theme-Bb8h8tjE.js";
290
+ import { t as FileUpload } from "./FileUpload-BpMG2Efl.js";
291
+ import { n as AmbientDateRangeSelector, t as AmbientSingleDateSelector } from "./AmbientSingleDateSelector-D3xyjMky.js";
292
+ import { n as FluentRadio, t as FluentRadioGroup } from "./FluentRadioGroup-DWOMSBGp.js";
293
+ import { t as PageNotFoundRoute } from "./PageNotFoundRoute-0WmBAAdO.js";
294
+ import { t as AmChart } from "./AmChart-CTixft8X.js";
295
+ import { t as WorkflowContainer } from "./WorkflowContainer-BheQPhXt.js";
296
+ import { t as TimelineCalendar } from "./TimelineCalendar-CZ5vmO43.js";
297
+ import { t as CustomMenuPage_default } from "./menuPage-PIJOkANO.js";
298
+ import { t as StatusCellRenderer } from "./StatusCellRenderer-E7SYy9Qk.js";
299
+ import { t as UdpFormsSubmissionGrid } from "./UdpFormsSubmissionGrid-C5CDtEVR.js";
300
+ import { n as FieldType, t as FieldArrayCard } from "./FieldArrayCard-BbCCfs6l.js";
301
+ import { n as ApprovalIcon, t as RejectIcon } from "./RejectIcon-CpF_J5Je.js";
302
+ import { t as MyExportsPage } from "./MyExportsPage-DMcJRz8T.js";
303
+ import { n as getI18nInstance, r as initializeUnityI18n, t as UdpAppProvider } from "./UdpAppProvider-C0VlxSna.js";
304
304
  import "./errorBoundary/index.js";
305
305
  import { UdpPagesLazy, UdpPagesLoaders } from "./udp/pages/UdpPagesLazy/index.js";
306
306
  import React from "react";
@@ -1,7 +1,7 @@
1
1
  import { n as TableColumnDefs, r as defaultColumnActionsDef, t as TableContainer } from "../TableContainer-CcHjtMCa.js";
2
2
  import { n as CrudTableColumnDefs, r as mapDotNetTypeToAgGridType, t as CrudBrowserContainer } from "../CrudBrowserContainer-De2WRDIH.js";
3
3
  import { n as UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE, t as CrudTableSidePanel } from "../CrudTableSidePanel-DnxJx49i.js";
4
- import { a as defaultColActionsDef, i as VirtualTableColumnDefs, r as VirtualTableSidePanel, t as VirtualBrowser } from "../VirtualBrowser-C2oPh3YY.js";
4
+ import { a as defaultColActionsDef, i as VirtualTableColumnDefs, r as VirtualTableSidePanel, t as VirtualBrowser } from "../VirtualBrowser-BeHqBuGi.js";
5
5
  import "./virtualBrowser/index.js";
6
6
  import "./tableBrowser/index.js";
7
7
  import "./crudBrowser/index.js";
@@ -1,3 +1,3 @@
1
- import { a as defaultColActionsDef, i as VirtualTableColumnDefs, r as VirtualTableSidePanel, t as VirtualBrowser } from "../../VirtualBrowser-C2oPh3YY.js";
1
+ import { a as defaultColActionsDef, i as VirtualTableColumnDefs, r as VirtualTableSidePanel, t as VirtualBrowser } from "../../VirtualBrowser-BeHqBuGi.js";
2
2
 
3
3
  export { VirtualBrowser, VirtualTableColumnDefs, VirtualTableSidePanel, defaultColActionsDef };
@@ -1,3 +1,3 @@
1
- import { t as CustomMenuPage_default } from "../menuPage-B9NwQJVt.js";
1
+ import { t as CustomMenuPage_default } from "../menuPage-PIJOkANO.js";
2
2
 
3
3
  export { CustomMenuPage_default as CustomMenuPage };
@@ -1,4 +1,4 @@
1
- import { t as MenuPage_default } from "./MenuPage-BS8ti9lx.js";
1
+ import { t as MenuPage_default } from "./MenuPage-fqEs3MSY.js";
2
2
  import React, { useMemo } from "react";
3
3
  import { Typography, makeStyles } from "@material-ui/core";
4
4
  import PropTypes from "prop-types";
@@ -101,4 +101,4 @@ var CustomMenuPage_default = CustomMenuPage;
101
101
 
102
102
  //#endregion
103
103
  export { CustomMenuPage_default as t };
104
- //# sourceMappingURL=menuPage-B9NwQJVt.js.map
104
+ //# sourceMappingURL=menuPage-PIJOkANO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menuPage-B9NwQJVt.js","names":["MenuPage"],"sources":["../src/menuPage/CustomMenuPage.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport MenuPage from './MenuPage';\nimport { makeStyles, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n padding: theme.spacing(1),\n },\n}));\n\n\nfunction buildInnerMenuFromItems(items = [], menuTitle, idPrefix = 'custom', showItemCount = false, itemCountAccessor = null) {\n const idMap = {};\n const views = (items || []).map((item, idx) => {\n const itemKey = item.id ?? item.ID ?? item.groupID ?? idx;\n const menuStructureId = `${idPrefix}-${itemKey}`;\n\n // compute optional count using accessor\n let itemCount = null;\n if (showItemCount && typeof itemCountAccessor === 'function') {\n try {\n const cnt = itemCountAccessor(item);\n if (cnt !== undefined && cnt !== null) {\n itemCount = cnt;\n }\n } catch (e) {\n }\n }\n\n idMap[menuStructureId] = item;\n item.__menuStructureId = menuStructureId;\n item.__itemKey = itemKey;\n\n const parametersObj = { FluentIcon: 'PageListIcon', PageId: '', defaultDisplay: 'expanded' };\n if (itemCount !== null && itemCount !== undefined) {\n parametersObj.itemCount = itemCount;\n }\n\n return {\n menuStructureId,\n menuItemInstance: {\n menuItemInstanceId: `${idPrefix}-item-${itemKey}`,\n clusterId: null,\n menuItemId: null,\n name: item.name ?? '',\n parameters: JSON.stringify(parametersObj),\n isActive: true,\n roleIds: [],\n groupIds: [],\n tenantSsoId: null,\n parentMenuItemInstanceId: null,\n items: null,\n },\n title: item.name ?? '',\n order: idx,\n parentId: null,\n unsubscribed: false,\n menuItemInstanceStructures: [],\n };\n });\n\n const innerMenu = {\n // set the inner menu name only when client provided a menuTitle; leave blank when not provided\n name: menuTitle ? menuTitle : '',\n menuItemInstanceStructureViews: views,\n };\n\n return { innerMenu, idMap };\n}\n\nconst CustomMenuPage = ({\n items = [],\n className = '',\n menuTitle,\n mainContent: clientMainContent,\n idPrefix = 'custom',\n showItemCount = false,\n itemCountAccessor = null,\n allowMissingPageParam = false,\n searchParamsTransformer = null,\n}) => {\n const classes = useStyles();\n\n // FIX: Memoize this so 'innerMenu' reference doesn't change on every render,\n // preventing infinite loops in MenuPage useEffects.\n const { innerMenu, idMap } = useMemo(() =>\n buildInnerMenuFromItems(items, menuTitle, idPrefix, showItemCount, itemCountAccessor),\n [items, menuTitle, idPrefix, showItemCount, itemCountAccessor]\n );\n\n // Expect client application to provide mainContent. If not provided, render an empty container.\n const clientContent = clientMainContent\n ? ({ selectedNode, menuItemsList }) =>\n clientMainContent({ selectedNode, menuItemsList, idMap, items, classes, className })\n : ({ selectedNode, menuItemsList }) => <div className={`${classes.root} ${className}`} />;\n\n const composedMainContent = ({ selectedNode, menuItemsList }) => (\n <div className={`${classes.root} ${className}`}>\n {clientContent({ selectedNode, menuItemsList })}\n </div>\n );\n\n return (\n <MenuPage\n innerMenuOverride={innerMenu}\n mainContent={composedMainContent}\n menuTitle={menuTitle}\n allowMissingPageParam={allowMissingPageParam}\n searchParamsTransformer={searchParamsTransformer}\n />\n );\n};\n\nCustomMenuPage.propTypes = {\n items: PropTypes.array,\n className: PropTypes.string,\n menuTitle: PropTypes.string,\n mainContent: PropTypes.func,\n idPrefix: PropTypes.string,\n showItemCount: PropTypes.bool,\n itemCountAccessor: PropTypes.func,\n allowMissingPageParam: PropTypes.bool,\n searchParamsTransformer: PropTypes.func,\n};\n\nexport default CustomMenuPage;\n"],"mappings":";;;;;;AAKA,MAAM,YAAY,YAAW,WAAU,EACrC,MAAM;CACJ,UAAU;CACV,SAAS,MAAM,QAAQ,EAAE;CAC1B,EACF,EAAE;AAGH,SAAS,wBAAwB,QAAQ,EAAE,EAAE,WAAW,WAAW,UAAU,gBAAgB,OAAO,oBAAoB,MAAM;CAC5H,MAAM,QAAQ,EAAE;CAChB,MAAM,SAAS,SAAS,EAAE,EAAE,KAAK,MAAM,QAAQ;EAC7C,MAAM,UAAU,KAAK,MAAM,KAAK,MAAM,KAAK,WAAW;EACtD,MAAM,kBAAkB,GAAG,SAAS,GAAG;EAGvC,IAAI,YAAY;AAChB,MAAI,iBAAiB,OAAO,sBAAsB,WAChD,KAAI;GACF,MAAM,MAAM,kBAAkB,KAAK;AACnC,OAAI,QAAQ,UAAa,QAAQ,KAC/B,aAAY;WAEP,GAAG;AAId,QAAM,mBAAmB;AACzB,OAAK,oBAAoB;AACzB,OAAK,YAAY;EAEjB,MAAM,gBAAgB;GAAE,YAAY;GAAgB,QAAQ;GAAI,gBAAgB;GAAY;AAC5F,MAAI,cAAc,QAAQ,cAAc,OACtC,eAAc,YAAY;AAG5B,SAAO;GACL;GACA,kBAAkB;IAChB,oBAAoB,GAAG,SAAS,QAAQ;IACxC,WAAW;IACX,YAAY;IACZ,MAAM,KAAK,QAAQ;IACnB,YAAY,KAAK,UAAU,cAAc;IACzC,UAAU;IACV,SAAS,EAAE;IACX,UAAU,EAAE;IACZ,aAAa;IACb,0BAA0B;IAC1B,OAAO;IACR;GACD,OAAO,KAAK,QAAQ;GACpB,OAAO;GACP,UAAU;GACV,cAAc;GACd,4BAA4B,EAAE;GAC/B;GACD;AAQF,QAAO;EAAE,WANS;GAEhB,MAAM,YAAY,YAAY;GAC9B,gCAAgC;GACjC;EAEmB;EAAO;;AAG7B,MAAM,kBAAkB,EACtB,QAAQ,EAAE,EACV,YAAY,IACZ,WACA,aAAa,mBACb,WAAW,UACX,gBAAgB,OAChB,oBAAoB,MACpB,wBAAwB,OACxB,0BAA0B,WACtB;CACJ,MAAM,UAAU,WAAW;CAI3B,MAAM,EAAE,WAAW,UAAU,cAC3B,wBAAwB,OAAO,WAAW,UAAU,eAAe,kBAAkB,EACrF;EAAC;EAAO;EAAW;EAAU;EAAe;EAAkB,CAC/D;CAGD,MAAM,gBAAgB,qBACjB,EAAE,cAAc,oBACf,kBAAkB;EAAE;EAAc;EAAe;EAAO;EAAO;EAAS;EAAW,CAAC,IACrF,EAAE,cAAc,oBAAoB,oCAAC,SAAI,WAAW,GAAG,QAAQ,KAAK,GAAG,cAAe;CAE3F,MAAM,uBAAuB,EAAE,cAAc,oBAC3C,oCAAC,SAAI,WAAW,GAAG,QAAQ,KAAK,GAAG,eAChC,cAAc;EAAE;EAAc;EAAe,CAAC,CAC3C;AAGR,QACE,oCAACA;EACC,mBAAmB;EACnB,aAAa;EACF;EACY;EACE;GACzB;;AAIN,eAAe,YAAY;CACzB,OAAO,UAAU;CACjB,WAAW,UAAU;CACrB,WAAW,UAAU;CACrB,aAAa,UAAU;CACvB,UAAU,UAAU;CACpB,eAAe,UAAU;CACzB,mBAAmB,UAAU;CAC7B,uBAAuB,UAAU;CACjC,yBAAyB,UAAU;CACpC;AAED,6BAAe"}
1
+ {"version":3,"file":"menuPage-PIJOkANO.js","names":["MenuPage"],"sources":["../src/menuPage/CustomMenuPage.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport MenuPage from './MenuPage';\nimport { makeStyles, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n padding: theme.spacing(1),\n },\n}));\n\n\nfunction buildInnerMenuFromItems(items = [], menuTitle, idPrefix = 'custom', showItemCount = false, itemCountAccessor = null) {\n const idMap = {};\n const views = (items || []).map((item, idx) => {\n const itemKey = item.id ?? item.ID ?? item.groupID ?? idx;\n const menuStructureId = `${idPrefix}-${itemKey}`;\n\n // compute optional count using accessor\n let itemCount = null;\n if (showItemCount && typeof itemCountAccessor === 'function') {\n try {\n const cnt = itemCountAccessor(item);\n if (cnt !== undefined && cnt !== null) {\n itemCount = cnt;\n }\n } catch (e) {\n }\n }\n\n idMap[menuStructureId] = item;\n item.__menuStructureId = menuStructureId;\n item.__itemKey = itemKey;\n\n const parametersObj = { FluentIcon: 'PageListIcon', PageId: '', defaultDisplay: 'expanded' };\n if (itemCount !== null && itemCount !== undefined) {\n parametersObj.itemCount = itemCount;\n }\n\n return {\n menuStructureId,\n menuItemInstance: {\n menuItemInstanceId: `${idPrefix}-item-${itemKey}`,\n clusterId: null,\n menuItemId: null,\n name: item.name ?? '',\n parameters: JSON.stringify(parametersObj),\n isActive: true,\n roleIds: [],\n groupIds: [],\n tenantSsoId: null,\n parentMenuItemInstanceId: null,\n items: null,\n },\n title: item.name ?? '',\n order: idx,\n parentId: null,\n unsubscribed: false,\n menuItemInstanceStructures: [],\n };\n });\n\n const innerMenu = {\n // set the inner menu name only when client provided a menuTitle; leave blank when not provided\n name: menuTitle ? menuTitle : '',\n menuItemInstanceStructureViews: views,\n };\n\n return { innerMenu, idMap };\n}\n\nconst CustomMenuPage = ({\n items = [],\n className = '',\n menuTitle,\n mainContent: clientMainContent,\n idPrefix = 'custom',\n showItemCount = false,\n itemCountAccessor = null,\n allowMissingPageParam = false,\n searchParamsTransformer = null,\n}) => {\n const classes = useStyles();\n\n // FIX: Memoize this so 'innerMenu' reference doesn't change on every render,\n // preventing infinite loops in MenuPage useEffects.\n const { innerMenu, idMap } = useMemo(() =>\n buildInnerMenuFromItems(items, menuTitle, idPrefix, showItemCount, itemCountAccessor),\n [items, menuTitle, idPrefix, showItemCount, itemCountAccessor]\n );\n\n // Expect client application to provide mainContent. If not provided, render an empty container.\n const clientContent = clientMainContent\n ? ({ selectedNode, menuItemsList }) =>\n clientMainContent({ selectedNode, menuItemsList, idMap, items, classes, className })\n : ({ selectedNode, menuItemsList }) => <div className={`${classes.root} ${className}`} />;\n\n const composedMainContent = ({ selectedNode, menuItemsList }) => (\n <div className={`${classes.root} ${className}`}>\n {clientContent({ selectedNode, menuItemsList })}\n </div>\n );\n\n return (\n <MenuPage\n innerMenuOverride={innerMenu}\n mainContent={composedMainContent}\n menuTitle={menuTitle}\n allowMissingPageParam={allowMissingPageParam}\n searchParamsTransformer={searchParamsTransformer}\n />\n );\n};\n\nCustomMenuPage.propTypes = {\n items: PropTypes.array,\n className: PropTypes.string,\n menuTitle: PropTypes.string,\n mainContent: PropTypes.func,\n idPrefix: PropTypes.string,\n showItemCount: PropTypes.bool,\n itemCountAccessor: PropTypes.func,\n allowMissingPageParam: PropTypes.bool,\n searchParamsTransformer: PropTypes.func,\n};\n\nexport default CustomMenuPage;\n"],"mappings":";;;;;;AAKA,MAAM,YAAY,YAAW,WAAU,EACrC,MAAM;CACJ,UAAU;CACV,SAAS,MAAM,QAAQ,EAAE;CAC1B,EACF,EAAE;AAGH,SAAS,wBAAwB,QAAQ,EAAE,EAAE,WAAW,WAAW,UAAU,gBAAgB,OAAO,oBAAoB,MAAM;CAC5H,MAAM,QAAQ,EAAE;CAChB,MAAM,SAAS,SAAS,EAAE,EAAE,KAAK,MAAM,QAAQ;EAC7C,MAAM,UAAU,KAAK,MAAM,KAAK,MAAM,KAAK,WAAW;EACtD,MAAM,kBAAkB,GAAG,SAAS,GAAG;EAGvC,IAAI,YAAY;AAChB,MAAI,iBAAiB,OAAO,sBAAsB,WAChD,KAAI;GACF,MAAM,MAAM,kBAAkB,KAAK;AACnC,OAAI,QAAQ,UAAa,QAAQ,KAC/B,aAAY;WAEP,GAAG;AAId,QAAM,mBAAmB;AACzB,OAAK,oBAAoB;AACzB,OAAK,YAAY;EAEjB,MAAM,gBAAgB;GAAE,YAAY;GAAgB,QAAQ;GAAI,gBAAgB;GAAY;AAC5F,MAAI,cAAc,QAAQ,cAAc,OACtC,eAAc,YAAY;AAG5B,SAAO;GACL;GACA,kBAAkB;IAChB,oBAAoB,GAAG,SAAS,QAAQ;IACxC,WAAW;IACX,YAAY;IACZ,MAAM,KAAK,QAAQ;IACnB,YAAY,KAAK,UAAU,cAAc;IACzC,UAAU;IACV,SAAS,EAAE;IACX,UAAU,EAAE;IACZ,aAAa;IACb,0BAA0B;IAC1B,OAAO;IACR;GACD,OAAO,KAAK,QAAQ;GACpB,OAAO;GACP,UAAU;GACV,cAAc;GACd,4BAA4B,EAAE;GAC/B;GACD;AAQF,QAAO;EAAE,WANS;GAEhB,MAAM,YAAY,YAAY;GAC9B,gCAAgC;GACjC;EAEmB;EAAO;;AAG7B,MAAM,kBAAkB,EACtB,QAAQ,EAAE,EACV,YAAY,IACZ,WACA,aAAa,mBACb,WAAW,UACX,gBAAgB,OAChB,oBAAoB,MACpB,wBAAwB,OACxB,0BAA0B,WACtB;CACJ,MAAM,UAAU,WAAW;CAI3B,MAAM,EAAE,WAAW,UAAU,cAC3B,wBAAwB,OAAO,WAAW,UAAU,eAAe,kBAAkB,EACrF;EAAC;EAAO;EAAW;EAAU;EAAe;EAAkB,CAC/D;CAGD,MAAM,gBAAgB,qBACjB,EAAE,cAAc,oBACf,kBAAkB;EAAE;EAAc;EAAe;EAAO;EAAO;EAAS;EAAW,CAAC,IACrF,EAAE,cAAc,oBAAoB,oCAAC,SAAI,WAAW,GAAG,QAAQ,KAAK,GAAG,cAAe;CAE3F,MAAM,uBAAuB,EAAE,cAAc,oBAC3C,oCAAC,SAAI,WAAW,GAAG,QAAQ,KAAK,GAAG,eAChC,cAAc;EAAE;EAAc;EAAe,CAAC,CAC3C;AAGR,QACE,oCAACA;EACC,mBAAmB;EACnB,aAAa;EACF;EACY;EACE;GACzB;;AAIN,eAAe,YAAY;CACzB,OAAO,UAAU;CACjB,WAAW,UAAU;CACrB,WAAW,UAAU;CACrB,aAAa,UAAU;CACvB,UAAU,UAAU;CACpB,eAAe,UAAU;CACzB,mBAAmB,UAAU;CAC7B,uBAAuB,UAAU;CACjC,yBAAyB,UAAU;CACpC;AAED,6BAAe"}
@@ -144,4 +144,4 @@ UdpTimeSelector.propTypes = {
144
144
 
145
145
  //#endregion
146
146
  export { UdpDateSelector as n, FluentDateTimePicker as r, UdpTimeSelector as t };
147
- //# sourceMappingURL=pickers-CkwI49Ju.js.map
147
+ //# sourceMappingURL=pickers-B-bB40GS.js.map