udp-react-enterprise-component-library 25.18.1-beta.50 → 25.18.1-beta.51

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 (288) hide show
  1. package/dist/{ActionProvider-C_rohJIr.js → ActionProvider-DGzli-X1.js} +4 -4
  2. package/dist/{ActionProvider-C_rohJIr.js.map → ActionProvider-DGzli-X1.js.map} +1 -1
  3. package/dist/{ActionSplitScreen-OFqIncG9.js → ActionSplitScreen-gKH4ISoo.js} +5 -5
  4. package/dist/{ActionSplitScreen-OFqIncG9.js.map → ActionSplitScreen-gKH4ISoo.js.map} +1 -1
  5. package/dist/{ActionWrapper-d9dIOSYB.js → ActionWrapper-Bpp9Mn4j.js} +8 -8
  6. package/dist/{ActionWrapper-d9dIOSYB.js.map → ActionWrapper-Bpp9Mn4j.js.map} +1 -1
  7. package/dist/{AggregateChip-6GSEsL_A.js → AggregateChip-BF7S3x_K.js} +3 -3
  8. package/dist/{AggregateChip-6GSEsL_A.js.map → AggregateChip-BF7S3x_K.js.map} +1 -1
  9. package/dist/{AmbientGridTemplate-D0GSZj4a.js → AmbientGridTemplate-D1TMpzxb.js} +4 -4
  10. package/dist/{AmbientGridTemplate-D0GSZj4a.js.map → AmbientGridTemplate-D1TMpzxb.js.map} +1 -1
  11. package/dist/{AppMenu-DW1oQdFA.js → AppMenu-oGJtO6Vp.js} +2 -2
  12. package/dist/{AppMenu-DW1oQdFA.js.map → AppMenu-oGJtO6Vp.js.map} +1 -1
  13. package/dist/{AuthProvider-qWjJiYSg.js → AuthProvider-V_6y6_xj.js} +3 -3
  14. package/dist/{AuthProvider-qWjJiYSg.js.map → AuthProvider-V_6y6_xj.js.map} +1 -1
  15. package/dist/{BaseTreeMenu-CBFIl0VF.js → BaseTreeMenu-Dg8MW4TD.js} +4 -4
  16. package/dist/{BaseTreeMenu-CBFIl0VF.js.map → BaseTreeMenu-Dg8MW4TD.js.map} +1 -1
  17. package/dist/{BioCardWrapper-BiRI3EDR.js → BioCardWrapper-B2bT-4zw.js} +2 -2
  18. package/dist/{BioCardWrapper-BiRI3EDR.js.map → BioCardWrapper-B2bT-4zw.js.map} +1 -1
  19. package/dist/{BulkActionsGridButton-uhTB0AGy.js → BulkActionsGridButton-JYgIABWU.js} +3 -3
  20. package/dist/{BulkActionsGridButton-uhTB0AGy.js.map → BulkActionsGridButton-JYgIABWU.js.map} +1 -1
  21. package/dist/{CircleButton-B9JAMG53.js → CircleButton-CrvnPHDw.js} +2 -2
  22. package/dist/{CircleButton-B9JAMG53.js.map → CircleButton-CrvnPHDw.js.map} +1 -1
  23. package/dist/{CrudBrowserContainer-De2WRDIH.js → CrudBrowserContainer-DJHq5ILl.js} +2 -2
  24. package/dist/{CrudBrowserContainer-De2WRDIH.js.map → CrudBrowserContainer-DJHq5ILl.js.map} +1 -1
  25. package/dist/{CrudForm-B5VDs-17.js → CrudForm-C9xMnPoA.js} +2 -2
  26. package/dist/{CrudForm-B5VDs-17.js.map → CrudForm-C9xMnPoA.js.map} +1 -1
  27. package/dist/{CrudTableSidePanel-DnxJx49i.js → CrudTableSidePanel-CNEZxJi0.js} +3 -3
  28. package/dist/{CrudTableSidePanel-DnxJx49i.js.map → CrudTableSidePanel-CNEZxJi0.js.map} +1 -1
  29. package/dist/{DataBrowserContainer-DZGhEt9N.js → DataBrowserContainer-cU_EEIiR.js} +6 -6
  30. package/dist/{DataBrowserContainer-DZGhEt9N.js.map → DataBrowserContainer-cU_EEIiR.js.map} +1 -1
  31. package/dist/{EntityHeader-DiOEw-za.js → EntityHeader-DKkYwvsi.js} +4 -4
  32. package/dist/{EntityHeader-DiOEw-za.js.map → EntityHeader-DKkYwvsi.js.map} +1 -1
  33. package/dist/{FieldArrayCard-DeZ7Q9KB.js → FieldArrayCard-C1I5_qJ4.js} +2 -2
  34. package/dist/{FieldArrayCard-DeZ7Q9KB.js.map → FieldArrayCard-C1I5_qJ4.js.map} +1 -1
  35. package/dist/{FluentCell-D2lpxw4O.js → FluentCell-F9eits6u.js} +2 -2
  36. package/dist/{FluentCell-D2lpxw4O.js.map → FluentCell-F9eits6u.js.map} +1 -1
  37. package/dist/{FluentDataTable-ChpZUwal.js → FluentDataTable-BSQ_EHJX.js} +2 -2
  38. package/dist/{FluentDataTable-ChpZUwal.js.map → FluentDataTable-BSQ_EHJX.js.map} +1 -1
  39. package/dist/{GridFunctions-CRTDIOe0.js → GridFunctions-D76ygiH2.js} +2 -2
  40. package/dist/{GridFunctions-CRTDIOe0.js.map → GridFunctions-D76ygiH2.js.map} +1 -1
  41. package/dist/{GroupNode-Djp62Urb.js → GroupNode-CZX--ble.js} +2 -2
  42. package/dist/{GroupNode-Djp62Urb.js.map → GroupNode-CZX--ble.js.map} +1 -1
  43. package/dist/{IconRenderer-JdCm70xC.js → IconRenderer-BEezfZ3N.js} +2 -2
  44. package/dist/{IconRenderer-JdCm70xC.js.map → IconRenderer-BEezfZ3N.js.map} +1 -1
  45. package/dist/{Inquiry-Cjz91wf_.js → Inquiry-BCu8bSal.js} +12 -12
  46. package/dist/{Inquiry-Cjz91wf_.js.map → Inquiry-BCu8bSal.js.map} +1 -1
  47. package/dist/Inquiry-NWBPf-o4.js +3 -0
  48. package/dist/{InquiryNodeControls-B677QFu4.js → InquiryNodeControls-DeK_hTzo.js} +2 -2
  49. package/dist/{InquiryNodeControls-B677QFu4.js.map → InquiryNodeControls-DeK_hTzo.js.map} +1 -1
  50. package/dist/{InquirySearchContainer-BnHwUWFC.js → InquirySearchContainer-DLkAOjWJ.js} +5 -5
  51. package/dist/{InquirySearchContainer-BnHwUWFC.js.map → InquirySearchContainer-DLkAOjWJ.js.map} +1 -1
  52. package/dist/MenuPage-R6mbeCuS.js +3 -0
  53. package/dist/{MenuPage-fqEs3MSY.js → MenuPage-tkkhpco5.js} +4 -4
  54. package/dist/{MenuPage-fqEs3MSY.js.map → MenuPage-tkkhpco5.js.map} +1 -1
  55. package/dist/{MenuProvider-rwBliXcV.js → MenuProvider-BuTAUs0Z.js} +2 -2
  56. package/dist/{MenuProvider-rwBliXcV.js.map → MenuProvider-BuTAUs0Z.js.map} +1 -1
  57. package/dist/{MttMainTimeline-nusYDWg_.js → MttMainTimeline-BG6nlcC_.js} +2 -2
  58. package/dist/{MttMainTimeline-nusYDWg_.js.map → MttMainTimeline-BG6nlcC_.js.map} +1 -1
  59. package/dist/{MttSummary-DWESRW7k.js → MttSummary-DP2U55LK.js} +3 -3
  60. package/dist/{MttSummary-DWESRW7k.js.map → MttSummary-DP2U55LK.js.map} +1 -1
  61. package/dist/MyExportsPage-DFIMneFr.js +3 -0
  62. package/dist/{MyExportsPage-CeeH8ViY.js → MyExportsPage-zKRz4fL5.js} +2 -2
  63. package/dist/{MyExportsPage-CeeH8ViY.js.map → MyExportsPage-zKRz4fL5.js.map} +1 -1
  64. package/dist/{NotesScreen-DE3fhpjW.js → NotesScreen-DQatppnX.js} +6 -6
  65. package/dist/{NotesScreen-DE3fhpjW.js.map → NotesScreen-DQatppnX.js.map} +1 -1
  66. package/dist/{PageActionWrapper-C-irIPLE.js → PageActionWrapper-BBkGtnC6.js} +3 -3
  67. package/dist/{PageActionWrapper-C-irIPLE.js.map → PageActionWrapper-BBkGtnC6.js.map} +1 -1
  68. package/dist/{PageRenderer-AfVo1f0z.js → PageRenderer-BTkUO-hr.js} +2 -2
  69. package/dist/{PageRenderer-AfVo1f0z.js.map → PageRenderer-BTkUO-hr.js.map} +1 -1
  70. package/dist/{PaymentForm-CRlhsB2F.js → PaymentForm-CtrVBoH8.js} +2 -2
  71. package/dist/{PaymentForm-CRlhsB2F.js.map → PaymentForm-CtrVBoH8.js.map} +1 -1
  72. package/dist/{RecentlyLoadedNodesTable-8WQBaAl4.js → RecentlyLoadedNodesTable-Dy8yBVfH.js} +2 -2
  73. package/dist/{RecentlyLoadedNodesTable-8WQBaAl4.js.map → RecentlyLoadedNodesTable-Dy8yBVfH.js.map} +1 -1
  74. package/dist/{RecentlyLoadedNodesWidget--NDwNQQF.js → RecentlyLoadedNodesWidget-C5chQWOm.js} +2 -2
  75. package/dist/{RecentlyLoadedNodesWidget--NDwNQQF.js.map → RecentlyLoadedNodesWidget-C5chQWOm.js.map} +1 -1
  76. package/dist/{RemindersCard-CSJ8buYt.js → RemindersCard-BOSGv9pc.js} +4 -4
  77. package/dist/{RemindersCard-CSJ8buYt.js.map → RemindersCard-BOSGv9pc.js.map} +1 -1
  78. package/dist/{RemindersScreen-CyT18piP.js → RemindersScreen-Cp7lMWrE.js} +6 -6
  79. package/dist/{RemindersScreen-CyT18piP.js.map → RemindersScreen-Cp7lMWrE.js.map} +1 -1
  80. package/dist/{RemindersWidget-B3qlh8K-.js → RemindersWidget-BnaccE9-.js} +5 -5
  81. package/dist/{RemindersWidget-B3qlh8K-.js.map → RemindersWidget-BnaccE9-.js.map} +1 -1
  82. package/dist/{SearchServiceDatasource-BrfkHkEq.js → SearchServiceDatasource-D8egrLwe.js} +3 -3
  83. package/dist/{SearchServiceDatasource-BrfkHkEq.js.map → SearchServiceDatasource-D8egrLwe.js.map} +1 -1
  84. package/dist/{SearchUtilities-B1TCyppF.js → SearchUtilities-DUW0kaw_.js} +2 -2
  85. package/dist/{SearchUtilities-B1TCyppF.js.map → SearchUtilities-DUW0kaw_.js.map} +1 -1
  86. package/dist/{Shell-CL_ENLg6.js → Shell-DunAQ9XC.js} +9 -9
  87. package/dist/{Shell-CL_ENLg6.js.map → Shell-DunAQ9XC.js.map} +1 -1
  88. package/dist/{ShortcutContentFinder-DTkqEgtI.js → ShortcutContentFinder-BR-Gd55o.js} +5 -5
  89. package/dist/{ShortcutContentFinder-DTkqEgtI.js.map → ShortcutContentFinder-BR-Gd55o.js.map} +1 -1
  90. package/dist/{SiteHeader-6rdY93D_.js → SiteHeader-CuOFCr7D.js} +5 -5
  91. package/dist/{SiteHeader-6rdY93D_.js.map → SiteHeader-CuOFCr7D.js.map} +1 -1
  92. package/dist/{Statistic-ChTR_kas.js → Statistic-CB8UpsW4.js} +2 -2
  93. package/dist/{Statistic-ChTR_kas.js.map → Statistic-CB8UpsW4.js.map} +1 -1
  94. package/dist/{TableContainer-CcHjtMCa.js → TableContainer-B0IAjIA3.js} +3 -3
  95. package/dist/{TableContainer-CcHjtMCa.js.map → TableContainer-B0IAjIA3.js.map} +1 -1
  96. package/dist/{TenantProvider-C-3eqCA3.js → TenantProvider-B_fwoUi4.js} +6 -6
  97. package/dist/TenantProvider-B_fwoUi4.js.map +1 -0
  98. package/dist/{TreeUtilities-VCy2z4Qv.js → TreeUtilities-jEhtZNg5.js} +4 -4
  99. package/dist/{TreeUtilities-VCy2z4Qv.js.map → TreeUtilities-jEhtZNg5.js.map} +1 -1
  100. package/dist/UI/accordion/index.js +1 -1
  101. package/dist/UI/dataDisplay/FluentDataTable/FluentCell/index.js +1 -1
  102. package/dist/UI/dataDisplay/FluentDataTable/index.js +1 -1
  103. package/dist/UI/dataDisplay/entityHeader/index.js +1 -1
  104. package/dist/UI/dataDisplay/index.js +1 -1
  105. package/dist/UI/fileViewer/index.js +1 -1
  106. package/dist/UI/floorplans/index.js +1 -1
  107. package/dist/UI/forms/index.js +1 -1
  108. package/dist/UI/index.js +14 -14
  109. package/dist/UI/inputs/fieldArrayCard/index.js +1 -1
  110. package/dist/UI/mapLayout/index.js +1 -1
  111. package/dist/UI/mapLayout/ui/index.js +1 -1
  112. package/dist/UI/navigation/index.js +1 -1
  113. package/dist/UI/navigation/menus/index.js +1 -1
  114. package/dist/UI/templates/deprecated/AmbientGridTemplate/index.js +1 -1
  115. package/dist/UI/templates/ui/renderers/index.js +1 -1
  116. package/dist/UI/timeline/fluentTimeline/index.js +1 -1
  117. package/dist/UI/timeline/index.js +1 -1
  118. package/dist/UI/utilityDisplay/alerts/index.js +1 -1
  119. package/dist/UI/utilityDisplay/index.js +5 -5
  120. package/dist/UI/utilityDisplay/utilities/index.js +1 -1
  121. package/dist/UI/widgets/library/RecentlyLoadedNodesWidget/index.js +1 -1
  122. package/dist/UI/widgets/library/RemindersWidget/index.js +1 -1
  123. package/dist/{UdpAlertsContainer-Dz76Kg2v.js → UdpAlertsContainer-CbiqX1P0.js} +4 -4
  124. package/dist/{UdpAlertsContainer-Dz76Kg2v.js.map → UdpAlertsContainer-CbiqX1P0.js.map} +1 -1
  125. package/dist/{UdpAppProvider-XtIYbmNb.js → UdpAppProvider-D7D0F8VO.js} +2 -2
  126. package/dist/{UdpAppProvider-XtIYbmNb.js.map → UdpAppProvider-D7D0F8VO.js.map} +1 -1
  127. package/dist/{UdpAuditEvents-Bqz0_-Du.js → UdpAuditEvents-JP-tGjrh.js} +2 -2
  128. package/dist/{UdpAuditEvents-Bqz0_-Du.js.map → UdpAuditEvents-JP-tGjrh.js.map} +1 -1
  129. package/dist/UdpAuditEventsPage-BiUdXrGu.js +3 -0
  130. package/dist/{UdpAuditEventsPage-CobHOioY.js → UdpAuditEventsPage-CohNvZiq.js} +2 -2
  131. package/dist/{UdpAuditEventsPage-CobHOioY.js.map → UdpAuditEventsPage-CohNvZiq.js.map} +1 -1
  132. package/dist/{UdpDataBrowserPage-B-afkKoz.js → UdpDataBrowserPage-CpDMeFtE.js} +7 -7
  133. package/dist/{UdpDataBrowserPage-B-afkKoz.js.map → UdpDataBrowserPage-CpDMeFtE.js.map} +1 -1
  134. package/dist/{UdpFormsPrivateForm-L8NRz5Xf.js → UdpFormsPrivateForm-D6clAgfY.js} +2 -2
  135. package/dist/{UdpFormsPrivateForm-L8NRz5Xf.js.map → UdpFormsPrivateForm-D6clAgfY.js.map} +1 -1
  136. package/dist/{UdpFormsSubmissionGrid-CkrI4_CC.js → UdpFormsSubmissionGrid-DzMuwwTO.js} +3 -3
  137. package/dist/{UdpFormsSubmissionGrid-CkrI4_CC.js.map → UdpFormsSubmissionGrid-DzMuwwTO.js.map} +1 -1
  138. package/dist/{UdpGridPanelManagementPage-Cvye5uKC.js → UdpGridPanelManagementPage-CJbKbZeN.js} +2 -2
  139. package/dist/{UdpGridPanelManagementPage-Cvye5uKC.js.map → UdpGridPanelManagementPage-CJbKbZeN.js.map} +1 -1
  140. package/dist/{UdpInquiryMaintenanceEnginePage-BiKDpo6a.js → UdpInquiryMaintenanceEnginePage-B7jCKzw5.js} +2 -2
  141. package/dist/{UdpInquiryMaintenanceEnginePage-BiKDpo6a.js.map → UdpInquiryMaintenanceEnginePage-B7jCKzw5.js.map} +1 -1
  142. package/dist/{UdpMaintenanceEnginePage-C1UcnDlL.js → UdpMaintenanceEnginePage-C5OzABlj.js} +6 -6
  143. package/dist/{UdpMaintenanceEnginePage-C1UcnDlL.js.map → UdpMaintenanceEnginePage-C5OzABlj.js.map} +1 -1
  144. package/dist/{UdpNotesPage-Deug2da_.js → UdpNotesPage-CO5te_bd.js} +6 -6
  145. package/dist/{UdpNotesPage-Deug2da_.js.map → UdpNotesPage-CO5te_bd.js.map} +1 -1
  146. package/dist/{UdpRemindersPage-B8vCglBX.js → UdpRemindersPage-Dvoe-qlm.js} +6 -6
  147. package/dist/{UdpRemindersPage-B8vCglBX.js.map → UdpRemindersPage-Dvoe-qlm.js.map} +1 -1
  148. package/dist/{UdpTransactionTypesPage-DxUsXnV7.js → UdpTransactionTypesPage-DFpnQn7f.js} +3 -3
  149. package/dist/{UdpTransactionTypesPage-DxUsXnV7.js.map → UdpTransactionTypesPage-DFpnQn7f.js.map} +1 -1
  150. package/dist/{UdpTransactionsPage-BZ0Idg5s.js → UdpTransactionsPage-hu97DvPW.js} +4 -4
  151. package/dist/{UdpTransactionsPage-BZ0Idg5s.js.map → UdpTransactionsPage-hu97DvPW.js.map} +1 -1
  152. package/dist/{UdpVerticalManagementPage-DHK7-w0K.js → UdpVerticalManagementPage-Cc4zz9Tv.js} +3 -3
  153. package/dist/{UdpVerticalManagementPage-DHK7-w0K.js.map → UdpVerticalManagementPage-Cc4zz9Tv.js.map} +1 -1
  154. package/dist/{UdpVerticalManagementSidesheet-C2kuDXac.js → UdpVerticalManagementSidesheet-DGL4dyia.js} +4 -4
  155. package/dist/{UdpVerticalManagementSidesheet-C2kuDXac.js.map → UdpVerticalManagementSidesheet-DGL4dyia.js.map} +1 -1
  156. package/dist/{UserForm-DZ1a9uqZ.js → UserForm-DNgeQvad.js} +2 -2
  157. package/dist/{UserForm-DZ1a9uqZ.js.map → UserForm-DNgeQvad.js.map} +1 -1
  158. package/dist/{UserFormSideSheet-B7bFqu5x.js → UserFormSideSheet-RyDFg3QI.js} +2 -2
  159. package/dist/{UserFormSideSheet-B7bFqu5x.js.map → UserFormSideSheet-RyDFg3QI.js.map} +1 -1
  160. package/dist/UserFormSideSheet-iBczI7p0.js +3 -0
  161. package/dist/{VirtualBrowser-BZkfXaY5.js → VirtualBrowser-CVs-vW3x.js} +3 -3
  162. package/dist/{VirtualBrowser-BZkfXaY5.js.map → VirtualBrowser-CVs-vW3x.js.map} +1 -1
  163. package/dist/VirtualBrowser-CcWYHhRb.js +3 -0
  164. package/dist/{WorkflowContainer-CHmVR99E.js → WorkflowContainer-Boj87JRI.js} +1 -1
  165. package/dist/{WorkflowContainer-BheQPhXt.js → WorkflowContainer-DDGm1Cxo.js} +3 -3
  166. package/dist/{WorkflowContainer-BheQPhXt.js.map → WorkflowContainer-DDGm1Cxo.js.map} +1 -1
  167. package/dist/{WorkflowTreeMenu-D2Uc09jP.js → WorkflowTreeMenu-HHtwkDzu.js} +4 -4
  168. package/dist/{WorkflowTreeMenu-D2Uc09jP.js.map → WorkflowTreeMenu-HHtwkDzu.js.map} +1 -1
  169. package/dist/{accordion-CT8euUVM.js → accordion--zpb1uMC.js} +2 -2
  170. package/dist/{accordion-CT8euUVM.js.map → accordion--zpb1uMC.js.map} +1 -1
  171. package/dist/{actionSummary-BEOW5B3h.js → actionSummary-D0CwyTXJ.js} +2 -2
  172. package/dist/{actionSummary-BEOW5B3h.js.map → actionSummary-D0CwyTXJ.js.map} +1 -1
  173. package/dist/{actionUtils-Bj5-851p.js → actionUtils-CPmiSAig.js} +2 -2
  174. package/dist/{actionUtils-Bj5-851p.js.map → actionUtils-CPmiSAig.js.map} +1 -1
  175. package/dist/actions/actionSummary/index.js +1 -1
  176. package/dist/actions/index.js +5 -5
  177. package/dist/actions/utils/index.js +1 -1
  178. package/dist/{aggregateUtils-B10uvnUw.js → aggregateUtils-UcpEjFnf.js} +2 -2
  179. package/dist/{aggregateUtils-B10uvnUw.js.map → aggregateUtils-UcpEjFnf.js.map} +1 -1
  180. package/dist/{aggridHelpers-RYO7tWY9.js → aggridHelpers-BvrSzjdD.js} +3 -3
  181. package/dist/{aggridHelpers-RYO7tWY9.js.map → aggridHelpers-BvrSzjdD.js.map} +1 -1
  182. package/dist/{auth-DX4sNV3x.js → auth-Bq7vHax4.js} +2 -2
  183. package/dist/{auth-DX4sNV3x.js.map → auth-Bq7vHax4.js.map} +1 -1
  184. package/dist/componentSystems/multiThreadTimeline/index.js +3 -3
  185. package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +1 -1
  186. package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +1 -1
  187. package/dist/componentSystems/multiThreadTimeline/ui/index.js +1 -1
  188. package/dist/componentSystems/pageRenderer/hocs/index.js +1 -1
  189. package/dist/componentSystems/pageRenderer/index.js +3 -3
  190. package/dist/componentSystems/pageRenderer/wrappers/index.js +1 -1
  191. package/dist/dataBrowser/index.js +1 -1
  192. package/dist/enums/index.js +2 -2
  193. package/dist/{fileViewer-BVzlhb3g.js → fileViewer-BbIFHura.js} +2 -2
  194. package/dist/{fileViewer-BVzlhb3g.js.map → fileViewer-BbIFHura.js.map} +1 -1
  195. package/dist/{floorplans-CF6ssxTg.js → floorplans-DNUFP5-n.js} +2 -2
  196. package/dist/{floorplans-CF6ssxTg.js.map → floorplans-DNUFP5-n.js.map} +1 -1
  197. package/dist/{fluentTimeline-BWoLOxF_.js → fluentTimeline-DpnUZabY.js} +2 -2
  198. package/dist/{fluentTimeline-BWoLOxF_.js.map → fluentTimeline-DpnUZabY.js.map} +1 -1
  199. package/dist/hooks/index.js +3 -3
  200. package/dist/index.js +62 -62
  201. package/dist/inquiry/dashboard/index.js +1 -1
  202. package/dist/inquiry/index.js +4 -4
  203. package/dist/inquiry/inquiryBar/index.js +1 -1
  204. package/dist/inquiry/search/index.js +1 -1
  205. package/dist/maintenanceEngine/crudBrowser/index.js +2 -2
  206. package/dist/maintenanceEngine/index.js +4 -4
  207. package/dist/maintenanceEngine/tableBrowser/index.js +1 -1
  208. package/dist/maintenanceEngine/virtualBrowser/index.js +1 -1
  209. package/dist/{mapLayout-DCBNFKk9.js → mapLayout-B_m2Fh8n.js} +2 -2
  210. package/dist/{mapLayout-DCBNFKk9.js.map → mapLayout-B_m2Fh8n.js.map} +1 -1
  211. package/dist/menuPage/index.js +1 -1
  212. package/dist/{menuPage-PIJOkANO.js → menuPage-7DcUM-Q3.js} +2 -2
  213. package/dist/{menuPage-PIJOkANO.js.map → menuPage-7DcUM-Q3.js.map} +1 -1
  214. package/dist/{menuUtilities-B6z02FRb.js → menuUtilities-Da5uVIJ8.js} +2 -2
  215. package/dist/{menuUtilities-B6z02FRb.js.map → menuUtilities-Da5uVIJ8.js.map} +1 -1
  216. package/dist/notes/index.js +1 -1
  217. package/dist/{profile-CXlla7mZ.js → profile-hGhjTafH.js} +3 -3
  218. package/dist/{profile-CXlla7mZ.js.map → profile-hGhjTafH.js.map} +1 -1
  219. package/dist/providers/index.js +1 -1
  220. package/dist/reminders/index.js +2 -2
  221. package/dist/routes/index.js +1 -1
  222. package/dist/{routes-BToKqY03.js → routes-qV4EIuwZ.js} +7 -7
  223. package/dist/{routes-BToKqY03.js.map → routes-qV4EIuwZ.js.map} +1 -1
  224. package/dist/shell/index.js +3 -3
  225. package/dist/shell/ui/addUser/index.js +1 -1
  226. package/dist/shell/ui/index.js +2 -2
  227. package/dist/shell/ui/profile/index.js +1 -1
  228. package/dist/stores/index.js +1 -1
  229. package/dist/{tenantStore-TgmV03z9.js → tenantStore-CFYu7ndZ.js} +2 -2
  230. package/dist/{tenantStore-TgmV03z9.js.map → tenantStore-CFYu7ndZ.js.map} +1 -1
  231. package/dist/treeMenu/index.js +1 -1
  232. package/dist/types/src/enums/unitySystemEnums.d.ts +5 -0
  233. package/dist/types/src/enums/unitySystemEnums.d.ts.map +1 -1
  234. package/dist/types/src/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts +1 -1
  235. package/dist/types/src/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts.map +1 -1
  236. package/dist/types/src/udp/utilities/useDateStringColumnDef.d.ts +1 -1
  237. package/dist/types/src/utilities/tenant/TenantProvider.d.ts.map +1 -1
  238. package/dist/types/tsconfig.tsbuildinfo +1 -1
  239. package/dist/udp/ShortcutContent/index.js +1 -1
  240. package/dist/udp/export/index.js +1 -1
  241. package/dist/udp/fileImportMapping/index.js +1 -1
  242. package/dist/udp/pages/UdpAuditEvents/index.js +1 -1
  243. package/dist/udp/pages/UdpDataBrowserPage/index.js +1 -1
  244. package/dist/udp/pages/UdpFormsPrivateForm/index.js +1 -1
  245. package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +1 -1
  246. package/dist/udp/pages/UdpGridPanelManagementPage/index.js +1 -1
  247. package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +1 -1
  248. package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +1 -1
  249. package/dist/udp/pages/UdpNotesPage/index.js +1 -1
  250. package/dist/udp/pages/UdpPages/index.js +13 -13
  251. package/dist/udp/pages/UdpPagesLazy/index.js +1 -1
  252. package/dist/udp/pages/UdpRemindersPage/index.js +1 -1
  253. package/dist/udp/pages/UdpTransactionTypesPage/index.js +1 -1
  254. package/dist/udp/pages/UdpTransactionsPage/index.js +1 -1
  255. package/dist/udp/pages/UdpVerticalManagementPage/index.js +1 -1
  256. package/dist/udp/pages/UdpVerticalManagementSidesheet/index.js +1 -1
  257. package/dist/{unitySystemEnums-e5F9Jr7m.js → unitySystemEnums-CZDCsD5t.js} +6 -2
  258. package/dist/{unitySystemEnums-e5F9Jr7m.js.map → unitySystemEnums-CZDCsD5t.js.map} +1 -1
  259. package/dist/{useActions-BWBXokgQ.js → useActions-DZe6YlEm.js} +3 -3
  260. package/dist/{useActions-BWBXokgQ.js.map → useActions-DZe6YlEm.js.map} +1 -1
  261. package/dist/{usePromotedMethodEntities-DaPFmr0s.js → usePromotedMethodEntities-D-GoZJZB.js} +2 -2
  262. package/dist/{usePromotedMethodEntities-DaPFmr0s.js.map → usePromotedMethodEntities-D-GoZJZB.js.map} +1 -1
  263. package/dist/{useSearchFilterParamsMap-DPCfEY-N.js → useSearchFilterParamsMap-hAHx2Rav.js} +2 -2
  264. package/dist/{useSearchFilterParamsMap-DPCfEY-N.js.map → useSearchFilterParamsMap-hAHx2Rav.js.map} +1 -1
  265. package/dist/utilities/aggrid/datasources/index.js +1 -1
  266. package/dist/utilities/aggrid/index.js +2 -2
  267. package/dist/utilities/auth/index.js +3 -3
  268. package/dist/utilities/form/paymentForm/index.js +1 -1
  269. package/dist/utilities/menus/index.js +1 -1
  270. package/dist/utilities/provider/index.js +1 -1
  271. package/dist/utilities/search/index.js +1 -1
  272. package/dist/utilities/tenant/index.js +1 -1
  273. package/dist/utilities/tree/index.js +1 -1
  274. package/dist/{utilityDisplay-C6c73Efx.js → utilityDisplay-DtdjV7V1.js} +2 -2
  275. package/dist/{utilityDisplay-C6c73Efx.js.map → utilityDisplay-DtdjV7V1.js.map} +1 -1
  276. package/dist/{withEngineComponent-JSgAYpSg.js → withEngineComponent-CpOJBSmx.js} +2 -2
  277. package/dist/{withEngineComponent-JSgAYpSg.js.map → withEngineComponent-CpOJBSmx.js.map} +1 -1
  278. package/dist/workflow/index.js +2 -2
  279. package/dist/workflow/menus/index.js +1 -1
  280. package/export-map.json +3 -2
  281. package/package.json +1 -1
  282. package/dist/Inquiry-C1q14Yyd.js +0 -3
  283. package/dist/MenuPage-DP1ATpru.js +0 -3
  284. package/dist/MyExportsPage-DGc4Sbt9.js +0 -3
  285. package/dist/TenantProvider-C-3eqCA3.js.map +0 -1
  286. package/dist/UdpAuditEventsPage-DuHg-BRJ.js +0 -3
  287. package/dist/UserFormSideSheet-tpmcX5Ax.js +0 -3
  288. package/dist/VirtualBrowser-BUTWxd9P.js +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"AmbientGridTemplate-D0GSZj4a.js","names":["value"],"sources":["../src/UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { makeStyles, LinearProgress, Grow } from '@material-ui/core';\nimport '../../../../style.css';\nimport { GridGroupingSidebar } from '../../ui/GridGroupingSidebar';\nimport { ServerSideRowModelModule } from '@ag-grid-enterprise/server-side-row-model';\nimport invariant from 'invariant';\nimport PropTypes from 'prop-types';\nimport { AgTable, useAgGridApi } from '../../../../utilities/aggrid/AgTable';\nimport { GridActionBar } from '../../../utilityDisplay/GridActionBar';\nimport { GridPrimaryBar } from '../../../utilityDisplay/GridPrimaryBar.jsx';\nimport { SaveViewFormDialog } from '../../../utilityDisplay/SaveViewFormDialog.jsx';\nimport { ChipSection } from '../../../utilityDisplay/ChipSection.jsx';\n// import GridViewsSideSheet from '../utilityDisplay/GridViewsSideSheet.jsx';\nimport { useAxiosGet } from '../../../../utilities/useAxiosGet';\nimport { apiMutate } from '../../../../utilities/useAxiosMutate';\nimport { onFirstDataRendered } from '../../../../utilities/aggrid/GridFunctions';\nimport { BulkActionsGridButton } from '../../../utilityDisplay/BulkActionsGridButton';\nimport { useActions } from '../../../../hooks/useActions';\nimport { FilterOperators } from '../../../../models/SearchOperator';\nimport { ConfigService } from '../../../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n pab: {\n display: 'flex',\n [theme.breakpoints.between('xs', 'sm')]: {\n position: 'fixed',\n bottom: theme.spacing(2),\n right: theme.spacing(2),\n zIndex: theme.zIndex.appBar\n }\n },\n groupSideBar: {\n width: 225\n },\n gridApi: {\n display: 'flex'\n }\n}));\nexport const AmbientGridTemplate = (props) => {\n const {\n additionalFilters,\n api,\n apiMethod,\n applicationName,\n bulkActionFunctions,\n clearGridConfig,\n columnApi,\n columnDefs,\n data,\n defaultAutoSize,\n deleteGridConfig,\n disablePagination,\n disableDynamicSizing,\n disableRowSelection,\n entityName,\n filterChips = [],\n filters,\n frameworkComponents,\n gridReady,\n gridId,\n groupingData,\n height,\n hideFitGrid,\n hideExpandGrid,\n hideExportGrid,\n hideRemoveFilters,\n hideFilterTab,\n hideGroupTab,\n hideColumnTab,\n hideSearchBar,\n hiddenLabels,\n hiddenActionButtons = [],\n kpiValues = [],\n loading = false,\n onRowSelected,\n onSearch,\n onPrimaryActionClick,\n paginationPageSize = 20,\n primaryActionButton,\n primaryActionDisabled,\n primaryActionLabel,\n primaryActionIcon,\n rowModelType = 'clientSide',\n rowNodeIdName,\n saveGridConfig,\n scrollToTopOnStateChange,\n secondaryActionButtons,\n title,\n tenantName,\n hideHeader,\n useNewHeader,\n insightsClick,\n user,\n id,\n udprecordid,\n additionalGridOptions = {},\n headerBackgroundColor,\n onSearchKeyDown,\n ...otherGridProps\n } = props;\n\n const classes = useStyles();\n const { gridApi, gridColumnApi, onGridReady } = useAgGridApi();\n const [isVisible, setIsVisible] = useState();\n const [sidebarIsVisible, setSidebarIsVisible] = useState(false);\n const [showGroupOptions, setShowGroupOptions] = useState(false);\n const [selectedRow, setSelectedRow] = useState(null);\n const [value, setValue] = useState(0);\n const [saveViewOpen, setSaveViewOpen] = useState(false);\n const [defaultViews, setDefaultViews] = useState([]);\n const [viewsOpen, setViewsOpen] = useState(false);\n const [agGridOptions, setAgGridOptions] = useState({\n frameworkComponents: frameworkComponents,\n suppressScrollOnNewData: !scrollToTopOnStateChange,\n ...additionalGridOptions\n });\n const gApi = api || gridApi;\n const gcApi = columnApi || gridColumnApi;\n\n const [viewChips, setViewChips] = useState([]);\n const [additionalFilterChips, setAdditionalFilterChips] =\n useState(additionalFilters);\n const [columnDefsValues, setColumnDefsValues] = useState(null);\n const [selectedView, setSelectedView] = useState(null);\n const [viewsRowData, setViewsRowData] = useState(null);\n const [nonDefaultViewsRowData, setNonDefaultViewsRowData] = useState();\n const [numSelectedRows, setNumSelectedRows] = useState(0);\n const [domain, setDomain] = useState(null);\n const [apiCatalogId, setApiCatalogId] = useState(null);\n\n const { triggerAction } = useActions();\n\n useEffect(() => {\n if (apiMethod) {\n setDomain(apiMethod.entityName);\n setApiCatalogId(apiMethod.apiCatalogId);\n }\n }, [apiMethod, setDomain, setApiCatalogId]);\n\n const defaultColActionsDef = {\n resizable: true,\n editable: false,\n sortable: true,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true,\n filterParams: {\n filterOptions: rowModelType === 'serverSide' ? Object.keys(FilterOperators) : undefined\n }\n };\n\n const handleChange = (event, newValue) => {\n event.preventDefault();\n setValue((preValue) => {\n if (newValue === preValue && newValue !== 1) {\n gApi.setSideBarVisible(!gApi.isSideBarVisible());\n } else if (newValue === 0) {\n gApi.setSideBarVisible(true);\n gApi.openToolPanel('filters');\n setShowGroupOptions(false);\n } else if (newValue === 1) {\n showGrouping();\n gApi.setSideBarVisible(false);\n } else {\n gApi.setSideBarVisible(true);\n gApi.openToolPanel('columns');\n setShowGroupOptions(false);\n }\n\n return newValue;\n });\n };\n\n const onFilterClick = (event) => {\n event.preventDefault();\n gApi.setSideBarVisible(!gApi.isSideBarVisible());\n gApi.openToolPanel('filters');\n setShowGroupOptions(false);\n setValue(0);\n setSidebarIsVisible(!sidebarIsVisible);\n };\n\n const onGroupClick = (event) => {\n // event.preventDefault();\n // // gApi.setSideBarVisible(!gApi.isSideBarVisible());\n // showGrouping();\n // setValue(1);\n alert('Group button clicked');\n };\n\n const onColumnsClick = (event) => {\n event.preventDefault();\n gApi.setSideBarVisible(!gApi.isSideBarVisible());\n gApi.openToolPanel('columns');\n setShowGroupOptions(false);\n setValue(2);\n setSidebarIsVisible(!sidebarIsVisible);\n };\n\n const emptyArr = [];\n\n const handleRowSelected = useCallback(\n (event) => {\n if (!gApi) return;\n const selectedRows = gApi.getSelectedRows();\n setNumSelectedRows(selectedRows.length); //for bulk actions ui\n const row = selectedRows.length && selectedRows[0];\n setSelectedRow(row);\n if (onRowSelected) {\n onRowSelected(event, row);\n }\n },\n [gApi, onRowSelected]\n );\n\n const setSideBarInvisible = () => {\n if (gApi.isSideBarVisible()) {\n gApi.setSideBarVisible(false);\n setIsVisible(false);\n } else {\n gApi.setSideBarVisible(true);\n gApi.openToolPanel('filters');\n setShowGroupOptions(false);\n setIsVisible(true);\n }\n };\n\n const handleFilterChange = (event) => {\n gApi.setQuickFilter(event.target.value);\n };\n\n // Sets Grouping on grid based on passed filter string\n const groupGridItems = (groupItem) => {\n gcApi.setRowGroupColumns([groupItem]);\n gApi.expandAll();\n // setToggleFlag(groupItem)\n };\n\n const restoreGridDefault = () => {\n gApi.setQuickFilter('');\n gcApi.setRowGroupColumns([]);\n gApi.setFilterModel(null);\n gApi.setQuickFilter('');\n gcApi.resetColumnState();\n };\n\n const showGrouping = () => {\n setShowGroupOptions(!showGroupOptions);\n gApi.setSideBarVisible(false);\n };\n\n const expandGroupedGrid = () => {\n gApi.expandAll();\n };\n\n const collapseGroupedGrid = () => {\n gApi.collapseAll();\n };\n\n const fitToSpace = () => {\n gApi.sizeColumnsToFit();\n };\n\n const exportGrid = () => {\n gApi.exportDataAsCsv({\n allColumns: true,\n fileName: 'export'\n });\n };\n\n const openSaveView = () => {\n setColumnDefsValues(JSON.stringify(gcApi.getColumnState()));\n setSaveViewOpen(true);\n };\n\n const closeSaveView = () => {\n setSaveViewOpen(false);\n };\n\n const openViews = useCallback(() => {\n setViewsOpen(true);\n },[]);\n\n const closeViews = () => {\n setViewsOpen(false);\n };\n\n const handleTriggerAction = useCallback(\n (actionId) => {\n if (triggerAction && gApi) {\n triggerAction(actionId, gApi.getSelectedRows());\n }\n },\n [triggerAction, gApi]\n );\n\n const autoSizeAll = useCallback(\n (skipHeader) => {\n invariant(gcApi, `gridColumnApi not ready`);\n const allColumnIds = [];\n gcApi.getAllColumns().forEach((column) => {\n allColumnIds.push(column.getColId());\n });\n gcApi.autoSizeColumns(allColumnIds, skipHeader);\n },\n [gcApi]\n );\n\n const autoSizeAllWithoutHeader = useCallback(\n () => autoSizeAll(false),\n [autoSizeAll]\n );\n\n const firstDataRendered = useCallback(\n (params) => {\n // Size columns to fit after the first data render\n !defaultAutoSize && params?.api.sizeColumnsToFit();\n\n defaultAutoSize && autoSizeAllWithoutHeader();\n },\n [defaultAutoSize, autoSizeAllWithoutHeader]\n );\n\n useEffect(() => {\n if (!gApi) return;\n\n setSelectedRow(gApi.getSelectedRows()?.length && gApi.getSelectedRows()[0]);\n selectedRow && gApi.ensureNodeVisible(selectedRow);\n }, [gApi, selectedRow]);\n\n const handleChipDelete = (chipType, chipIndex) => {\n switch (chipType) {\n case 'view':\n setViewChips((prevChips) =>\n prevChips.filter((_, index) => index !== chipIndex)\n );\n setSelectedView(null);\n gcApi.resetColumnState();\n gApi.sizeColumnsToFit();\n break;\n case 'additionalFilter':\n setAdditionalFilterChips((prevChips) => {\n if (prevChips[chipIndex]?.onUntoggle) {\n prevChips[chipIndex]?.onUntoggle();\n }\n return prevChips.filter((_, index) => index !== chipIndex);\n });\n break;\n default:\n break;\n }\n };\n\n useEffect(() => {\n if (viewsRowData?.length > 0) {\n const DefaultViews = viewsRowData.reduce((acc, row) => {\n if (row.isDefault) {\n return [...acc, row];\n }\n return acc;\n }, []);\n\n const nonDefaultViews = viewsRowData.reduce((acc, row) => {\n if (!row.isDefault) {\n return [...acc, row];\n }\n return acc;\n }, []);\n setDefaultViews(DefaultViews);\n setNonDefaultViewsRowData(nonDefaultViews);\n }\n }, [viewsRowData]);\n\n // Function to handle closing the side sheet\n // const handleSideSheetClose = () => {\n // setIsSideSheetOpen(false);\n // };\n\n const setView = useCallback(\n (value) => {\n const columnState = value?.gridViewGridViewGridConfiguration.map(\n (ele) => ele.gridViewGridConfigurationGridConfiguration\n );\n setViewChips((prevChips) => [{ label: value?.name }]);\n onFirstDataRendered(gApi, gcApi, columnState);\n },\n [setViewChips, gApi, gcApi]\n );\n\n const setFilter = (value) => {\n // todo: filter will come from the ApiMethodInstance endpoint\n };\n\n const [{ data: views }, refetch] = useAxiosGet(\n ConfigService.tenantV2ApiUrl,\n `GridView/getFromUser/${user?.id}/${gridId}`,\n {\n params: {\n domainName: domain,\n apiCatalogId: apiCatalogId\n }\n },\n !!!ConfigService.tenantV2ApiUrl || !!!gridId || !!!user\n );\n\n const [{ data: bulkActions }] = useAxiosGet(\n ConfigService.integrationV2ApiUrl,\n `action/grid/${gridId}`,\n {},\n !!!ConfigService.integrationV2ApiUrl || !!!gridId\n );\n\n useEffect(() => {\n setViewsRowData(views);\n }, [openViews, views]);\n\n const getView = useCallback(async () => {\n await apiMutate(\n ConfigService.tenantV2ApiUrl,\n `GridView/${selectedView.gridViewId}/PartiallyFull`,\n {\n method: 'get'\n }\n )\n .then((response) => {\n setView(response.data);\n })\n .catch((error) => {\n console.log(error);\n });\n }, [selectedView, setView]);\n\n useEffect(() => {\n if (!selectedView?.gridViewId) {\n gcApi?.resetColumnState();\n gApi?.sizeColumnsToFit();\n return undefined;\n }\n getView();\n\n // No cleanup function needed, so return undefined\n return undefined;\n }, [setSelectedView, selectedView, gcApi, gApi, getView]);\n\n useEffect(() => {\n if (additionalFilters) {\n setAdditionalFilterChips(additionalFilters);\n }\n }, [additionalFilters]);\n\n return (\n <>\n {/* Must wait for gApi to be instantiated before rendering primary bar */}\n {!hideHeader && useNewHeader && gApi && (\n <GridPrimaryBar\n title={title}\n showFilter={setSideBarInvisible}\n selected={isVisible}\n onChange={onSearch || handleFilterChange}\n showGroup={showGrouping}\n value={value}\n saveViewClick={openSaveView}\n viewsClick={openViews}\n handleChange={handleChange}\n fitClick={fitToSpace}\n expandClick={autoSizeAllWithoutHeader}\n exportClick={exportGrid}\n insightsClick={insightsClick}\n clearClick={restoreGridDefault}\n filterClick={onFilterClick}\n columnsClick={onColumnsClick}\n // groupClick={onGroupClick}\n hideSearchBar={hideSearchBar}\n secondaryActionButtons={secondaryActionButtons || []}\n onPrimaryActionClick={onPrimaryActionClick}\n primaryActionDisabled={primaryActionDisabled}\n primaryActionLabel={primaryActionLabel}\n primaryActionIcon={primaryActionIcon}\n hiddenActionButtons={hiddenActionButtons || []}\n hiddenLabels={hiddenLabels || []}\n background={headerBackgroundColor}\n onSearchKeyDown={onSearchKeyDown}\n />\n )}\n {useNewHeader &&\n (kpiValues?.length > 0 ||\n filterChips?.length > 0 ||\n filters?.length > 0 ||\n viewChips?.length > 0 ||\n additionalFilterChips?.length > 0) && (\n <div style={{ display: 'flex', flexDirection: 'row', height: 40 }}>\n <Grow in={bulkActions && numSelectedRows > 0} unmountOnExit>\n <BulkActionsGridButton\n bulkActions={bulkActions}\n numSelectedRows={numSelectedRows}\n triggerAction={handleTriggerAction}\n domain={domain}\n />\n </Grow>\n\n <ChipSection\n filterChips={filterChips}\n viewChips={viewChips}\n additionalFilterChips={additionalFilterChips}\n kpiValues={kpiValues}\n handleDelete={handleChipDelete}\n setAdditionalFilterChips={setAdditionalFilterChips}\n setViewChips={setViewChips}\n setFilter={setFilter}\n />\n </div>\n )}\n\n {/* {useNewHeader && gApi && gcApi && (\n <GridViewsSideSheet\n open={viewsOpen}\n onClose={closeViews}\n openSaveView={openSaveView}\n setViewChips={setViewChips}\n setFilter={setView}\n rowData={views}\n setSelectedView={setSelectedView}\n />\n )} */}\n\n {!hideHeader && !useNewHeader && (\n <GridActionBar\n title={title}\n showFilter={setSideBarInvisible}\n selected={isVisible}\n onChange={onSearch || handleFilterChange}\n showGroup={showGrouping}\n value={value}\n handleChange={handleChange}\n fitClick={fitToSpace}\n expandClick={autoSizeAllWithoutHeader}\n exportClick={exportGrid}\n clearClick={restoreGridDefault}\n saveGridConfig={saveGridConfig}\n deleteGridConfig={deleteGridConfig}\n clearGridConfig={clearGridConfig}\n hideFitGrid={hideFitGrid}\n hideExpandGrid={hideExpandGrid}\n hideExportGrid={hideExportGrid}\n hideRemoveFilters={hideRemoveFilters}\n hideFilterTab={hideFilterTab}\n hideGroupTab={hideGroupTab}\n hideColumnTab={hideColumnTab}\n hideSearchBar={hideSearchBar}\n >\n {primaryActionButton && (\n <div className={classes.pab}>{primaryActionButton}</div>\n )}\n </GridActionBar>\n )}\n\n {loading && <LinearProgress />}\n <div style={{ display: 'flex' }}>\n <div style={{ width: '100%' }}>\n <AgTable\n {...agGridOptions}\n columnDefs={columnDefs}\n dynamicSizing={!disableDynamicSizing}\n rowData={data || emptyArr}\n onGridReady={gridReady || onGridReady}\n onRowSelected={handleRowSelected}\n suppressCellSelection={true}\n suppressRowClickSelection={false}\n defaultColDef={defaultColActionsDef}\n enableRangeSelection={true}\n enableColResize\n sideBar={sidebarIsVisible}\n pivotMode={false}\n pivotPanelShow='never'\n groupSelectsChildren={true}\n animateRows={false}\n pagination={!disablePagination}\n showOpenedGroup={true}\n paginateChildRows={true}\n paginationPageSize={paginationPageSize}\n modules={\n rowModelType === 'serverSide' ? [ServerSideRowModelModule] : []\n }\n onFirstDataRendered={firstDataRendered}\n rowModelType={rowModelType}\n rowClassRules={{\n 'first-row-in-group': (params) =>\n params.node.rowIndex !== 0 && params.node.firstChild\n }}\n height={height}\n api={gApi}\n rowSelection={\n !disableRowSelection && (bulkActions ? 'multiple' : 'single')\n }\n hideHeader={hideHeader}\n {...otherGridProps}\n />\n </div>\n {showGroupOptions && (\n <div className={classes.groupSideBar}>\n <GridGroupingSidebar\n groupItem={(item) => groupGridItems(item)}\n closeClick={() => groupGridItems('')}\n expandClick={expandGroupedGrid}\n collapseClick={collapseGroupedGrid}\n groupingData={groupingData}\n height={height}\n />\n </div>\n )}\n {!hiddenActionButtons?.includes('saveView') && (\n <SaveViewFormDialog\n open={saveViewOpen}\n handleClose={closeSaveView}\n application={applicationName}\n tenant={tenantName}\n user={user}\n columnDefsValues={columnDefsValues}\n refetchViews={refetch}\n gApi={gApi}\n gcApi={gcApi}\n setSelectedView={setView}\n gridId={gridId}\n domain={domain}\n apiCatalogId={apiCatalogId}\n />\n )}\n </div>\n </>\n );\n};\n\nAmbientGridTemplate.propTypes = {\n /**\n * Column Definitions for Ag Grid\n */\n columnDefs: PropTypes.array,\n /**\n * AG Grid function for onRowSelected\n */\n handleRowSelected: PropTypes.func,\n /**\n * Data array for AG Grid\n */\n data: PropTypes.array,\n /**\n * Title of the grid\n */\n title: PropTypes.string,\n /**\n * Array of data to allow for custom grouping, example: {groupItem: 'instructors', label: 'Instructors', value: 'instructors'}\n */\n groupingData: PropTypes.array,\n /**\n * Grid Options\n */\n frameworkComponents: PropTypes.object,\n /**\n * Handle loading status with progress animation\n */\n loading: PropTypes.bool,\n /**\n * Primary Action Button Component\n */\n primaryActionButton: PropTypes.object,\n /**\n * name of the property for the id\n */\n rowNodeIdName: PropTypes.string,\n /**\n * Sets the grid default to expaned size if true. The default is 'size to fit'.\n */\n defaultAutoSize: PropTypes.bool,\n /**\n * Scrolls the grid back to the top on state change if true, otherwise maintains scroll position. The default is false.\n */\n scrollToTopOnStateChange: PropTypes.bool,\n /**\n * Disable dynamicSizing so that the grid size stays the same regardless of the window size if true. The default is false.\n */\n disableDynamicSizing: PropTypes.bool,\n /**\n * An array of filter chips.\n */\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired\n })\n ),\n /**\n * An array of view chips.\n */\n views: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired\n })\n ),\n /**\n * An array of additional filter chips.\n */\n additionalFilters: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired\n })\n ),\n /**\n * An array of KPI values.\n */\n kpis: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired\n })\n ),\n /**\n * Enable the new header for data grids v2 if true. The default is false.\n */\n useNewHeader: PropTypes.bool,\n /**\n * Passes function that executes on the insights button click\n */\n insightsClick: PropTypes.func,\n /*\n * Specifies which action buttons to hide\n */\n hiddenActionButtons: PropTypes.arrayOf(\n PropTypes.oneOf([\n 'saveView',\n 'views',\n 'insights',\n 'importExport',\n 'group',\n 'filter',\n 'columns',\n 'fitGrid',\n 'expandGrid',\n 'clearFilters'\n ])\n ),\n /*\n * Specifies which action button labels to hide\n */\n hiddenLabels: PropTypes.arrayOf(\n PropTypes.oneOf([\n 'saveView',\n 'views',\n 'insights',\n 'importExport',\n 'group',\n 'filter',\n 'columns',\n 'fitGrid',\n 'expandGrid',\n 'clearFilters'\n ])\n ),\n /**\n * Passes function that executes on the primary action button click\n */\n onPrimaryActionClick: PropTypes.func,\n /**\n * Specifies the label for the primary action button\n */\n primaryActionLabel: PropTypes.string,\n /**\n * Specifies the icon for the primary action button\n */\n primaryActionIcon: PropTypes.elementType,\n /**\n * An array of objects that will be used to create the secondary action buttons. The default is an empty array.\n */\n secondaryActionButtons: PropTypes.array,\n /**\n * The name of the application that the grid is being used in\n */\n applicationName: PropTypes.string,\n /**\n * The name of the entity that the data in the grid is associated with\n */\n entityName: PropTypes.string,\n /**\n * The name of the tenant that is currently logged in\n */\n tenantName: PropTypes.string,\n /**\n * User object (optional)\n */\n user: PropTypes.object,\n /**\n * Array of KPI values (optional)\n */\n kpiValues: PropTypes.array\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"AmbientGridTemplate-D1TMpzxb.js","names":["value"],"sources":["../src/UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { makeStyles, LinearProgress, Grow } from '@material-ui/core';\nimport '../../../../style.css';\nimport { GridGroupingSidebar } from '../../ui/GridGroupingSidebar';\nimport { ServerSideRowModelModule } from '@ag-grid-enterprise/server-side-row-model';\nimport invariant from 'invariant';\nimport PropTypes from 'prop-types';\nimport { AgTable, useAgGridApi } from '../../../../utilities/aggrid/AgTable';\nimport { GridActionBar } from '../../../utilityDisplay/GridActionBar';\nimport { GridPrimaryBar } from '../../../utilityDisplay/GridPrimaryBar.jsx';\nimport { SaveViewFormDialog } from '../../../utilityDisplay/SaveViewFormDialog.jsx';\nimport { ChipSection } from '../../../utilityDisplay/ChipSection.jsx';\n// import GridViewsSideSheet from '../utilityDisplay/GridViewsSideSheet.jsx';\nimport { useAxiosGet } from '../../../../utilities/useAxiosGet';\nimport { apiMutate } from '../../../../utilities/useAxiosMutate';\nimport { onFirstDataRendered } from '../../../../utilities/aggrid/GridFunctions';\nimport { BulkActionsGridButton } from '../../../utilityDisplay/BulkActionsGridButton';\nimport { useActions } from '../../../../hooks/useActions';\nimport { FilterOperators } from '../../../../models/SearchOperator';\nimport { ConfigService } from '../../../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n pab: {\n display: 'flex',\n [theme.breakpoints.between('xs', 'sm')]: {\n position: 'fixed',\n bottom: theme.spacing(2),\n right: theme.spacing(2),\n zIndex: theme.zIndex.appBar\n }\n },\n groupSideBar: {\n width: 225\n },\n gridApi: {\n display: 'flex'\n }\n}));\nexport const AmbientGridTemplate = (props) => {\n const {\n additionalFilters,\n api,\n apiMethod,\n applicationName,\n bulkActionFunctions,\n clearGridConfig,\n columnApi,\n columnDefs,\n data,\n defaultAutoSize,\n deleteGridConfig,\n disablePagination,\n disableDynamicSizing,\n disableRowSelection,\n entityName,\n filterChips = [],\n filters,\n frameworkComponents,\n gridReady,\n gridId,\n groupingData,\n height,\n hideFitGrid,\n hideExpandGrid,\n hideExportGrid,\n hideRemoveFilters,\n hideFilterTab,\n hideGroupTab,\n hideColumnTab,\n hideSearchBar,\n hiddenLabels,\n hiddenActionButtons = [],\n kpiValues = [],\n loading = false,\n onRowSelected,\n onSearch,\n onPrimaryActionClick,\n paginationPageSize = 20,\n primaryActionButton,\n primaryActionDisabled,\n primaryActionLabel,\n primaryActionIcon,\n rowModelType = 'clientSide',\n rowNodeIdName,\n saveGridConfig,\n scrollToTopOnStateChange,\n secondaryActionButtons,\n title,\n tenantName,\n hideHeader,\n useNewHeader,\n insightsClick,\n user,\n id,\n udprecordid,\n additionalGridOptions = {},\n headerBackgroundColor,\n onSearchKeyDown,\n ...otherGridProps\n } = props;\n\n const classes = useStyles();\n const { gridApi, gridColumnApi, onGridReady } = useAgGridApi();\n const [isVisible, setIsVisible] = useState();\n const [sidebarIsVisible, setSidebarIsVisible] = useState(false);\n const [showGroupOptions, setShowGroupOptions] = useState(false);\n const [selectedRow, setSelectedRow] = useState(null);\n const [value, setValue] = useState(0);\n const [saveViewOpen, setSaveViewOpen] = useState(false);\n const [defaultViews, setDefaultViews] = useState([]);\n const [viewsOpen, setViewsOpen] = useState(false);\n const [agGridOptions, setAgGridOptions] = useState({\n frameworkComponents: frameworkComponents,\n suppressScrollOnNewData: !scrollToTopOnStateChange,\n ...additionalGridOptions\n });\n const gApi = api || gridApi;\n const gcApi = columnApi || gridColumnApi;\n\n const [viewChips, setViewChips] = useState([]);\n const [additionalFilterChips, setAdditionalFilterChips] =\n useState(additionalFilters);\n const [columnDefsValues, setColumnDefsValues] = useState(null);\n const [selectedView, setSelectedView] = useState(null);\n const [viewsRowData, setViewsRowData] = useState(null);\n const [nonDefaultViewsRowData, setNonDefaultViewsRowData] = useState();\n const [numSelectedRows, setNumSelectedRows] = useState(0);\n const [domain, setDomain] = useState(null);\n const [apiCatalogId, setApiCatalogId] = useState(null);\n\n const { triggerAction } = useActions();\n\n useEffect(() => {\n if (apiMethod) {\n setDomain(apiMethod.entityName);\n setApiCatalogId(apiMethod.apiCatalogId);\n }\n }, [apiMethod, setDomain, setApiCatalogId]);\n\n const defaultColActionsDef = {\n resizable: true,\n editable: false,\n sortable: true,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true,\n filterParams: {\n filterOptions: rowModelType === 'serverSide' ? Object.keys(FilterOperators) : undefined\n }\n };\n\n const handleChange = (event, newValue) => {\n event.preventDefault();\n setValue((preValue) => {\n if (newValue === preValue && newValue !== 1) {\n gApi.setSideBarVisible(!gApi.isSideBarVisible());\n } else if (newValue === 0) {\n gApi.setSideBarVisible(true);\n gApi.openToolPanel('filters');\n setShowGroupOptions(false);\n } else if (newValue === 1) {\n showGrouping();\n gApi.setSideBarVisible(false);\n } else {\n gApi.setSideBarVisible(true);\n gApi.openToolPanel('columns');\n setShowGroupOptions(false);\n }\n\n return newValue;\n });\n };\n\n const onFilterClick = (event) => {\n event.preventDefault();\n gApi.setSideBarVisible(!gApi.isSideBarVisible());\n gApi.openToolPanel('filters');\n setShowGroupOptions(false);\n setValue(0);\n setSidebarIsVisible(!sidebarIsVisible);\n };\n\n const onGroupClick = (event) => {\n // event.preventDefault();\n // // gApi.setSideBarVisible(!gApi.isSideBarVisible());\n // showGrouping();\n // setValue(1);\n alert('Group button clicked');\n };\n\n const onColumnsClick = (event) => {\n event.preventDefault();\n gApi.setSideBarVisible(!gApi.isSideBarVisible());\n gApi.openToolPanel('columns');\n setShowGroupOptions(false);\n setValue(2);\n setSidebarIsVisible(!sidebarIsVisible);\n };\n\n const emptyArr = [];\n\n const handleRowSelected = useCallback(\n (event) => {\n if (!gApi) return;\n const selectedRows = gApi.getSelectedRows();\n setNumSelectedRows(selectedRows.length); //for bulk actions ui\n const row = selectedRows.length && selectedRows[0];\n setSelectedRow(row);\n if (onRowSelected) {\n onRowSelected(event, row);\n }\n },\n [gApi, onRowSelected]\n );\n\n const setSideBarInvisible = () => {\n if (gApi.isSideBarVisible()) {\n gApi.setSideBarVisible(false);\n setIsVisible(false);\n } else {\n gApi.setSideBarVisible(true);\n gApi.openToolPanel('filters');\n setShowGroupOptions(false);\n setIsVisible(true);\n }\n };\n\n const handleFilterChange = (event) => {\n gApi.setQuickFilter(event.target.value);\n };\n\n // Sets Grouping on grid based on passed filter string\n const groupGridItems = (groupItem) => {\n gcApi.setRowGroupColumns([groupItem]);\n gApi.expandAll();\n // setToggleFlag(groupItem)\n };\n\n const restoreGridDefault = () => {\n gApi.setQuickFilter('');\n gcApi.setRowGroupColumns([]);\n gApi.setFilterModel(null);\n gApi.setQuickFilter('');\n gcApi.resetColumnState();\n };\n\n const showGrouping = () => {\n setShowGroupOptions(!showGroupOptions);\n gApi.setSideBarVisible(false);\n };\n\n const expandGroupedGrid = () => {\n gApi.expandAll();\n };\n\n const collapseGroupedGrid = () => {\n gApi.collapseAll();\n };\n\n const fitToSpace = () => {\n gApi.sizeColumnsToFit();\n };\n\n const exportGrid = () => {\n gApi.exportDataAsCsv({\n allColumns: true,\n fileName: 'export'\n });\n };\n\n const openSaveView = () => {\n setColumnDefsValues(JSON.stringify(gcApi.getColumnState()));\n setSaveViewOpen(true);\n };\n\n const closeSaveView = () => {\n setSaveViewOpen(false);\n };\n\n const openViews = useCallback(() => {\n setViewsOpen(true);\n },[]);\n\n const closeViews = () => {\n setViewsOpen(false);\n };\n\n const handleTriggerAction = useCallback(\n (actionId) => {\n if (triggerAction && gApi) {\n triggerAction(actionId, gApi.getSelectedRows());\n }\n },\n [triggerAction, gApi]\n );\n\n const autoSizeAll = useCallback(\n (skipHeader) => {\n invariant(gcApi, `gridColumnApi not ready`);\n const allColumnIds = [];\n gcApi.getAllColumns().forEach((column) => {\n allColumnIds.push(column.getColId());\n });\n gcApi.autoSizeColumns(allColumnIds, skipHeader);\n },\n [gcApi]\n );\n\n const autoSizeAllWithoutHeader = useCallback(\n () => autoSizeAll(false),\n [autoSizeAll]\n );\n\n const firstDataRendered = useCallback(\n (params) => {\n // Size columns to fit after the first data render\n !defaultAutoSize && params?.api.sizeColumnsToFit();\n\n defaultAutoSize && autoSizeAllWithoutHeader();\n },\n [defaultAutoSize, autoSizeAllWithoutHeader]\n );\n\n useEffect(() => {\n if (!gApi) return;\n\n setSelectedRow(gApi.getSelectedRows()?.length && gApi.getSelectedRows()[0]);\n selectedRow && gApi.ensureNodeVisible(selectedRow);\n }, [gApi, selectedRow]);\n\n const handleChipDelete = (chipType, chipIndex) => {\n switch (chipType) {\n case 'view':\n setViewChips((prevChips) =>\n prevChips.filter((_, index) => index !== chipIndex)\n );\n setSelectedView(null);\n gcApi.resetColumnState();\n gApi.sizeColumnsToFit();\n break;\n case 'additionalFilter':\n setAdditionalFilterChips((prevChips) => {\n if (prevChips[chipIndex]?.onUntoggle) {\n prevChips[chipIndex]?.onUntoggle();\n }\n return prevChips.filter((_, index) => index !== chipIndex);\n });\n break;\n default:\n break;\n }\n };\n\n useEffect(() => {\n if (viewsRowData?.length > 0) {\n const DefaultViews = viewsRowData.reduce((acc, row) => {\n if (row.isDefault) {\n return [...acc, row];\n }\n return acc;\n }, []);\n\n const nonDefaultViews = viewsRowData.reduce((acc, row) => {\n if (!row.isDefault) {\n return [...acc, row];\n }\n return acc;\n }, []);\n setDefaultViews(DefaultViews);\n setNonDefaultViewsRowData(nonDefaultViews);\n }\n }, [viewsRowData]);\n\n // Function to handle closing the side sheet\n // const handleSideSheetClose = () => {\n // setIsSideSheetOpen(false);\n // };\n\n const setView = useCallback(\n (value) => {\n const columnState = value?.gridViewGridViewGridConfiguration.map(\n (ele) => ele.gridViewGridConfigurationGridConfiguration\n );\n setViewChips((prevChips) => [{ label: value?.name }]);\n onFirstDataRendered(gApi, gcApi, columnState);\n },\n [setViewChips, gApi, gcApi]\n );\n\n const setFilter = (value) => {\n // todo: filter will come from the ApiMethodInstance endpoint\n };\n\n const [{ data: views }, refetch] = useAxiosGet(\n ConfigService.tenantV2ApiUrl,\n `GridView/getFromUser/${user?.id}/${gridId}`,\n {\n params: {\n domainName: domain,\n apiCatalogId: apiCatalogId\n }\n },\n !!!ConfigService.tenantV2ApiUrl || !!!gridId || !!!user\n );\n\n const [{ data: bulkActions }] = useAxiosGet(\n ConfigService.integrationV2ApiUrl,\n `action/grid/${gridId}`,\n {},\n !!!ConfigService.integrationV2ApiUrl || !!!gridId\n );\n\n useEffect(() => {\n setViewsRowData(views);\n }, [openViews, views]);\n\n const getView = useCallback(async () => {\n await apiMutate(\n ConfigService.tenantV2ApiUrl,\n `GridView/${selectedView.gridViewId}/PartiallyFull`,\n {\n method: 'get'\n }\n )\n .then((response) => {\n setView(response.data);\n })\n .catch((error) => {\n console.log(error);\n });\n }, [selectedView, setView]);\n\n useEffect(() => {\n if (!selectedView?.gridViewId) {\n gcApi?.resetColumnState();\n gApi?.sizeColumnsToFit();\n return undefined;\n }\n getView();\n\n // No cleanup function needed, so return undefined\n return undefined;\n }, [setSelectedView, selectedView, gcApi, gApi, getView]);\n\n useEffect(() => {\n if (additionalFilters) {\n setAdditionalFilterChips(additionalFilters);\n }\n }, [additionalFilters]);\n\n return (\n <>\n {/* Must wait for gApi to be instantiated before rendering primary bar */}\n {!hideHeader && useNewHeader && gApi && (\n <GridPrimaryBar\n title={title}\n showFilter={setSideBarInvisible}\n selected={isVisible}\n onChange={onSearch || handleFilterChange}\n showGroup={showGrouping}\n value={value}\n saveViewClick={openSaveView}\n viewsClick={openViews}\n handleChange={handleChange}\n fitClick={fitToSpace}\n expandClick={autoSizeAllWithoutHeader}\n exportClick={exportGrid}\n insightsClick={insightsClick}\n clearClick={restoreGridDefault}\n filterClick={onFilterClick}\n columnsClick={onColumnsClick}\n // groupClick={onGroupClick}\n hideSearchBar={hideSearchBar}\n secondaryActionButtons={secondaryActionButtons || []}\n onPrimaryActionClick={onPrimaryActionClick}\n primaryActionDisabled={primaryActionDisabled}\n primaryActionLabel={primaryActionLabel}\n primaryActionIcon={primaryActionIcon}\n hiddenActionButtons={hiddenActionButtons || []}\n hiddenLabels={hiddenLabels || []}\n background={headerBackgroundColor}\n onSearchKeyDown={onSearchKeyDown}\n />\n )}\n {useNewHeader &&\n (kpiValues?.length > 0 ||\n filterChips?.length > 0 ||\n filters?.length > 0 ||\n viewChips?.length > 0 ||\n additionalFilterChips?.length > 0) && (\n <div style={{ display: 'flex', flexDirection: 'row', height: 40 }}>\n <Grow in={bulkActions && numSelectedRows > 0} unmountOnExit>\n <BulkActionsGridButton\n bulkActions={bulkActions}\n numSelectedRows={numSelectedRows}\n triggerAction={handleTriggerAction}\n domain={domain}\n />\n </Grow>\n\n <ChipSection\n filterChips={filterChips}\n viewChips={viewChips}\n additionalFilterChips={additionalFilterChips}\n kpiValues={kpiValues}\n handleDelete={handleChipDelete}\n setAdditionalFilterChips={setAdditionalFilterChips}\n setViewChips={setViewChips}\n setFilter={setFilter}\n />\n </div>\n )}\n\n {/* {useNewHeader && gApi && gcApi && (\n <GridViewsSideSheet\n open={viewsOpen}\n onClose={closeViews}\n openSaveView={openSaveView}\n setViewChips={setViewChips}\n setFilter={setView}\n rowData={views}\n setSelectedView={setSelectedView}\n />\n )} */}\n\n {!hideHeader && !useNewHeader && (\n <GridActionBar\n title={title}\n showFilter={setSideBarInvisible}\n selected={isVisible}\n onChange={onSearch || handleFilterChange}\n showGroup={showGrouping}\n value={value}\n handleChange={handleChange}\n fitClick={fitToSpace}\n expandClick={autoSizeAllWithoutHeader}\n exportClick={exportGrid}\n clearClick={restoreGridDefault}\n saveGridConfig={saveGridConfig}\n deleteGridConfig={deleteGridConfig}\n clearGridConfig={clearGridConfig}\n hideFitGrid={hideFitGrid}\n hideExpandGrid={hideExpandGrid}\n hideExportGrid={hideExportGrid}\n hideRemoveFilters={hideRemoveFilters}\n hideFilterTab={hideFilterTab}\n hideGroupTab={hideGroupTab}\n hideColumnTab={hideColumnTab}\n hideSearchBar={hideSearchBar}\n >\n {primaryActionButton && (\n <div className={classes.pab}>{primaryActionButton}</div>\n )}\n </GridActionBar>\n )}\n\n {loading && <LinearProgress />}\n <div style={{ display: 'flex' }}>\n <div style={{ width: '100%' }}>\n <AgTable\n {...agGridOptions}\n columnDefs={columnDefs}\n dynamicSizing={!disableDynamicSizing}\n rowData={data || emptyArr}\n onGridReady={gridReady || onGridReady}\n onRowSelected={handleRowSelected}\n suppressCellSelection={true}\n suppressRowClickSelection={false}\n defaultColDef={defaultColActionsDef}\n enableRangeSelection={true}\n enableColResize\n sideBar={sidebarIsVisible}\n pivotMode={false}\n pivotPanelShow='never'\n groupSelectsChildren={true}\n animateRows={false}\n pagination={!disablePagination}\n showOpenedGroup={true}\n paginateChildRows={true}\n paginationPageSize={paginationPageSize}\n modules={\n rowModelType === 'serverSide' ? [ServerSideRowModelModule] : []\n }\n onFirstDataRendered={firstDataRendered}\n rowModelType={rowModelType}\n rowClassRules={{\n 'first-row-in-group': (params) =>\n params.node.rowIndex !== 0 && params.node.firstChild\n }}\n height={height}\n api={gApi}\n rowSelection={\n !disableRowSelection && (bulkActions ? 'multiple' : 'single')\n }\n hideHeader={hideHeader}\n {...otherGridProps}\n />\n </div>\n {showGroupOptions && (\n <div className={classes.groupSideBar}>\n <GridGroupingSidebar\n groupItem={(item) => groupGridItems(item)}\n closeClick={() => groupGridItems('')}\n expandClick={expandGroupedGrid}\n collapseClick={collapseGroupedGrid}\n groupingData={groupingData}\n height={height}\n />\n </div>\n )}\n {!hiddenActionButtons?.includes('saveView') && (\n <SaveViewFormDialog\n open={saveViewOpen}\n handleClose={closeSaveView}\n application={applicationName}\n tenant={tenantName}\n user={user}\n columnDefsValues={columnDefsValues}\n refetchViews={refetch}\n gApi={gApi}\n gcApi={gcApi}\n setSelectedView={setView}\n gridId={gridId}\n domain={domain}\n apiCatalogId={apiCatalogId}\n />\n )}\n </div>\n </>\n );\n};\n\nAmbientGridTemplate.propTypes = {\n /**\n * Column Definitions for Ag Grid\n */\n columnDefs: PropTypes.array,\n /**\n * AG Grid function for onRowSelected\n */\n handleRowSelected: PropTypes.func,\n /**\n * Data array for AG Grid\n */\n data: PropTypes.array,\n /**\n * Title of the grid\n */\n title: PropTypes.string,\n /**\n * Array of data to allow for custom grouping, example: {groupItem: 'instructors', label: 'Instructors', value: 'instructors'}\n */\n groupingData: PropTypes.array,\n /**\n * Grid Options\n */\n frameworkComponents: PropTypes.object,\n /**\n * Handle loading status with progress animation\n */\n loading: PropTypes.bool,\n /**\n * Primary Action Button Component\n */\n primaryActionButton: PropTypes.object,\n /**\n * name of the property for the id\n */\n rowNodeIdName: PropTypes.string,\n /**\n * Sets the grid default to expaned size if true. The default is 'size to fit'.\n */\n defaultAutoSize: PropTypes.bool,\n /**\n * Scrolls the grid back to the top on state change if true, otherwise maintains scroll position. The default is false.\n */\n scrollToTopOnStateChange: PropTypes.bool,\n /**\n * Disable dynamicSizing so that the grid size stays the same regardless of the window size if true. The default is false.\n */\n disableDynamicSizing: PropTypes.bool,\n /**\n * An array of filter chips.\n */\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired\n })\n ),\n /**\n * An array of view chips.\n */\n views: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired\n })\n ),\n /**\n * An array of additional filter chips.\n */\n additionalFilters: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired\n })\n ),\n /**\n * An array of KPI values.\n */\n kpis: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired\n })\n ),\n /**\n * Enable the new header for data grids v2 if true. The default is false.\n */\n useNewHeader: PropTypes.bool,\n /**\n * Passes function that executes on the insights button click\n */\n insightsClick: PropTypes.func,\n /*\n * Specifies which action buttons to hide\n */\n hiddenActionButtons: PropTypes.arrayOf(\n PropTypes.oneOf([\n 'saveView',\n 'views',\n 'insights',\n 'importExport',\n 'group',\n 'filter',\n 'columns',\n 'fitGrid',\n 'expandGrid',\n 'clearFilters'\n ])\n ),\n /*\n * Specifies which action button labels to hide\n */\n hiddenLabels: PropTypes.arrayOf(\n PropTypes.oneOf([\n 'saveView',\n 'views',\n 'insights',\n 'importExport',\n 'group',\n 'filter',\n 'columns',\n 'fitGrid',\n 'expandGrid',\n 'clearFilters'\n ])\n ),\n /**\n * Passes function that executes on the primary action button click\n */\n onPrimaryActionClick: PropTypes.func,\n /**\n * Specifies the label for the primary action button\n */\n primaryActionLabel: PropTypes.string,\n /**\n * Specifies the icon for the primary action button\n */\n primaryActionIcon: PropTypes.elementType,\n /**\n * An array of objects that will be used to create the secondary action buttons. The default is an empty array.\n */\n secondaryActionButtons: PropTypes.array,\n /**\n * The name of the application that the grid is being used in\n */\n applicationName: PropTypes.string,\n /**\n * The name of the entity that the data in the grid is associated with\n */\n entityName: PropTypes.string,\n /**\n * The name of the tenant that is currently logged in\n */\n tenantName: PropTypes.string,\n /**\n * User object (optional)\n */\n user: PropTypes.object,\n /**\n * Array of KPI values (optional)\n */\n kpiValues: PropTypes.array\n};\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { t as ConfigService } from "./configService-C4uoG3wj.js";
2
2
  import { t as apiMutate } from "./useAxiosMutate-DeqKSi5z.js";
3
3
  import { t as FluentIcon } from "./FluentIcon-DQ6nSDJg.js";
4
- import { n as useActions } from "./useActions-BWBXokgQ.js";
4
+ import { n as useActions } from "./useActions-DZe6YlEm.js";
5
5
  import { t as redirectToLinkOnClick } from "./redirectToLink-CLI8MGFd.js";
6
6
  import React, { forwardRef, useContext, useEffect, useState } from "react";
7
7
  import { Collapse, List, ListItem, ListItemIcon, ListItemText, createStyles, makeStyles } from "@material-ui/core";
@@ -171,4 +171,4 @@ const AppMenu = ({ childrenIcons, menuItems, sidebarExpanded, user }) => {
171
171
 
172
172
  //#endregion
173
173
  export { AppMenuItem as n, AppMenuItemComponent as r, AppMenu as t };
174
- //# sourceMappingURL=AppMenu-DW1oQdFA.js.map
174
+ //# sourceMappingURL=AppMenu-oGJtO6Vp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppMenu-DW1oQdFA.js","names":[],"sources":["../src/UI/navigation/menus/AppMenuItemComponent.jsx","../src/UI/navigation/menus/AppMenuItem.jsx","../src/UI/navigation/menus/AppMenu.jsx"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { ListItem } from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\n\nconst ListItemLinkComponent = forwardRef((props, ref) => (\n <NavLink exact {...props} innerRef={ref} />\n))\nListItemLinkComponent.displayName = 'ListItemLinkComponent'\n\nexport const AppMenuItemComponent = (props) => {\n const { link, params, isChild, ...other } = props\n\n // If link is not set return the ordinary ListItem\n if (!link || typeof link !== 'string') {\n return <ListItem button {...other} dense />\n }\n\n // Return a ListItem with a link component\n return (\n <ListItem\n id={'udpRecord-AppMenuItemComponent-'+params.label.replace(/\\s+/g, '')}\n udprecordid={'udpRecord-AppMenuItemComponent-'+params.label.replace(/\\s+/g, '')}\n button\n component={ListItemLinkComponent}\n to={{\n pathname: link,\n state: params\n }}\n {...other}\n onClick={undefined}\n dense\n />\n )\n}\n","import { ChevronDownIcon, ChevronUpIcon } from '@fluentui/react-icons';\nimport {\n Collapse,\n createStyles,\n List,\n ListItemIcon,\n ListItemText,\n makeStyles\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useActions } from '../../../hooks/useActions';\nimport { FluentIcon } from '../../../utilities/iconLibrary/FluentIcon';\nimport { redirectToLinkOnClick } from '../../../utilities/menus/redirectToLink';\nimport { AppMenuItemComponent } from './AppMenuItemComponent';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../../../configService';\n\n// React runtime PropTypes\nconst AppMenuItemPropTypes = {\n id: PropTypes.string,\n label: PropTypes.string.isRequired,\n link: PropTypes.string,\n icon: PropTypes.elementType,\n iconName: PropTypes.string,\n image: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.object),\n indent: PropTypes.string,\n redirectInfo: PropTypes.string,\n params: PropTypes.object,\n menuItemId: PropTypes.string,\n menuStructureId: PropTypes.number,\n parentId: PropTypes.number,\n productId: PropTypes.number,\n isActive: PropTypes.bool,\n roleIds: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n ),\n getAccessToken: PropTypes.func,\n childrenIcons: PropTypes.bool,\n isChild: PropTypes.bool,\n childIndex: PropTypes.number,\n sidebarExpanded: PropTypes.bool,\n devicesHiddenOn: PropTypes.arrayOf(PropTypes.string),\n user: PropTypes.object,\n tenantSsoId: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\n\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n menuItem: {\n '&.active': {\n background: 'rgba(0, 0, 0, 0.08)',\n '& .MuiListItemIcon-root': { marginLeft: theme.spacing(2) }\n }\n },\n menuItemIcon: {\n minWidth: theme.spacing(5)\n },\n item: {\n width: 254,\n whiteSpace: 'normal',\n paddingLeft: (props) =>\n props?.isChild && props.sidebarExpanded\n ? `calc(16px + ${\n 16 * (props.childIndex !== undefined ? props.childIndex : 0)\n }px)`\n : null\n },\n indent: {},\n icon: {\n width: theme.spacing(3),\n height: theme.spacing(3),\n color: theme.palette.secondary.dark\n },\n expand: {\n // marginRight: theme.spacing(1),\n visibility: (props) => (props.sidebarExpanded ? 'visible' : 'hidden')\n },\n images: {\n width: theme.spacing(3.5),\n height: theme.spacing(3.5)\n }\n })\n);\n\nexport const AppMenuItem = (props) => {\n const {\n childrenIcons = true,\n isChild = false,\n childIndex = 0,\n label,\n link,\n icon,\n image,\n getAccessToken,\n indent,\n items = [],\n redirectInfo,\n sidebarExpanded,\n user,\n params,\n tenantSsoId,\n ...other\n } = props;\n const classes = useStyles(props);\n const isExpandable = items?.length > 0;\n const [open, setOpen] = useState(false);\n const { triggerMultipleActions } = useActions();\n const { t } = useTranslation();\n\n const handleClick = async () => {\n let url = redirectInfo;\n if (url && tenantSsoId) {\n const response = await apiMutate(\n ConfigService.securityV1ApiUrl,\n `sso/${tenantSsoId}`,\n { method: 'get' }\n );\n if (!response) return;\n url = `${url}${response.data.urlParams}`;\n }\n if (url) {\n redirectToLinkOnClick(url, getAccessToken, user);\n }\n\n if (params?.Action?.length) {\n triggerMultipleActions(params.Action);\n }\n\n setOpen(!open);\n };\n\n const MenuItemRoot = (\n <AppMenuItemComponent\n className={clsx(indent ? classes.menuItem : classes.indent, classes.item)}\n link={items.length ? '' : link}\n onClick={handleClick}\n aria-expanded={isExpandable ? open : null}\n params={{ ...other, label, params }}\n isChild={isChild}\n >\n {/* Display an icon if any */}\n {(!!icon || !!image) && ((isChild && childrenIcons) || !isChild) && (\n <ListItemIcon className={classes.menuItemIcon}>\n {icon ? (\n <div className={classes.icon}>\n <FluentIcon component={icon} />\n </div>\n ) : (\n <img src={image} alt={label} className={classes.images} />\n )}\n </ListItemIcon>\n )}\n <ListItemText primary={t(label)} inset={!icon && !image} />\n {/* Display the expand menu if the item has children */}\n {isExpandable &&\n (open ? (\n <div className={classes.expand}>\n <FluentIcon\n size={'small'}\n component={ChevronUpIcon}\n id={`udpRecord-AppMenuItem-FluentIcon-Up-${label}`}\n udprecordid={`udpRecord-AppMenuItem-FluentIcon-Up-${label}`}\n />\n </div>\n ) : (\n <div className={classes.expand}>\n <FluentIcon\n size={'small'}\n component={ChevronDownIcon}\n id={`udpRecord-AppMenuItem-FluentIcon-Down-${label}`}\n udprecordid={`udpRecord-AppMenuItem-FluentIcon-Down-${label}`}\n />\n </div>\n ))}\n </AppMenuItemComponent>\n );\n\n const MenuItemChildren = isExpandable ? (\n <Collapse in={open} timeout='auto' unmountOnExit>\n {/* <Divider aria-hidden={true} /> */}\n <List>\n {items.map((item, index) => (\n <AppMenuItem\n {...item}\n childrenIcons={childrenIcons}\n isChild\n key={index}\n childIndex={childIndex + 1}\n sidebarExpanded={sidebarExpanded}\n user={user}\n />\n ))}\n </List>\n </Collapse>\n ) : null;\n\n return (\n <li>\n {MenuItemRoot}\n {MenuItemChildren}\n </li>\n );\n};\n\nAppMenuItem.propTypes = AppMenuItemPropTypes;\n","import React from 'react';\nimport { List } from '@material-ui/core';\nimport { AppMenuItem } from './AppMenuItem';\n\nexport const AppMenu = ({\n childrenIcons,\n menuItems,\n sidebarExpanded,\n user\n}) => {\n return (\n <nav aria-label='Site Navigation'>\n <List>\n {menuItems.map((item, index) => {\n return (\n <AppMenuItem\n key={index}\n childrenIcons={childrenIcons}\n sidebarExpanded={sidebarExpanded}\n user={user}\n {...item}\n />\n );\n })}\n </List>\n </nav>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"AppMenu-oGJtO6Vp.js","names":[],"sources":["../src/UI/navigation/menus/AppMenuItemComponent.jsx","../src/UI/navigation/menus/AppMenuItem.jsx","../src/UI/navigation/menus/AppMenu.jsx"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { ListItem } from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\n\nconst ListItemLinkComponent = forwardRef((props, ref) => (\n <NavLink exact {...props} innerRef={ref} />\n))\nListItemLinkComponent.displayName = 'ListItemLinkComponent'\n\nexport const AppMenuItemComponent = (props) => {\n const { link, params, isChild, ...other } = props\n\n // If link is not set return the ordinary ListItem\n if (!link || typeof link !== 'string') {\n return <ListItem button {...other} dense />\n }\n\n // Return a ListItem with a link component\n return (\n <ListItem\n id={'udpRecord-AppMenuItemComponent-'+params.label.replace(/\\s+/g, '')}\n udprecordid={'udpRecord-AppMenuItemComponent-'+params.label.replace(/\\s+/g, '')}\n button\n component={ListItemLinkComponent}\n to={{\n pathname: link,\n state: params\n }}\n {...other}\n onClick={undefined}\n dense\n />\n )\n}\n","import { ChevronDownIcon, ChevronUpIcon } from '@fluentui/react-icons';\nimport {\n Collapse,\n createStyles,\n List,\n ListItemIcon,\n ListItemText,\n makeStyles\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useActions } from '../../../hooks/useActions';\nimport { FluentIcon } from '../../../utilities/iconLibrary/FluentIcon';\nimport { redirectToLinkOnClick } from '../../../utilities/menus/redirectToLink';\nimport { AppMenuItemComponent } from './AppMenuItemComponent';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../../../configService';\n\n// React runtime PropTypes\nconst AppMenuItemPropTypes = {\n id: PropTypes.string,\n label: PropTypes.string.isRequired,\n link: PropTypes.string,\n icon: PropTypes.elementType,\n iconName: PropTypes.string,\n image: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.object),\n indent: PropTypes.string,\n redirectInfo: PropTypes.string,\n params: PropTypes.object,\n menuItemId: PropTypes.string,\n menuStructureId: PropTypes.number,\n parentId: PropTypes.number,\n productId: PropTypes.number,\n isActive: PropTypes.bool,\n roleIds: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n ),\n getAccessToken: PropTypes.func,\n childrenIcons: PropTypes.bool,\n isChild: PropTypes.bool,\n childIndex: PropTypes.number,\n sidebarExpanded: PropTypes.bool,\n devicesHiddenOn: PropTypes.arrayOf(PropTypes.string),\n user: PropTypes.object,\n tenantSsoId: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\n\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n menuItem: {\n '&.active': {\n background: 'rgba(0, 0, 0, 0.08)',\n '& .MuiListItemIcon-root': { marginLeft: theme.spacing(2) }\n }\n },\n menuItemIcon: {\n minWidth: theme.spacing(5)\n },\n item: {\n width: 254,\n whiteSpace: 'normal',\n paddingLeft: (props) =>\n props?.isChild && props.sidebarExpanded\n ? `calc(16px + ${\n 16 * (props.childIndex !== undefined ? props.childIndex : 0)\n }px)`\n : null\n },\n indent: {},\n icon: {\n width: theme.spacing(3),\n height: theme.spacing(3),\n color: theme.palette.secondary.dark\n },\n expand: {\n // marginRight: theme.spacing(1),\n visibility: (props) => (props.sidebarExpanded ? 'visible' : 'hidden')\n },\n images: {\n width: theme.spacing(3.5),\n height: theme.spacing(3.5)\n }\n })\n);\n\nexport const AppMenuItem = (props) => {\n const {\n childrenIcons = true,\n isChild = false,\n childIndex = 0,\n label,\n link,\n icon,\n image,\n getAccessToken,\n indent,\n items = [],\n redirectInfo,\n sidebarExpanded,\n user,\n params,\n tenantSsoId,\n ...other\n } = props;\n const classes = useStyles(props);\n const isExpandable = items?.length > 0;\n const [open, setOpen] = useState(false);\n const { triggerMultipleActions } = useActions();\n const { t } = useTranslation();\n\n const handleClick = async () => {\n let url = redirectInfo;\n if (url && tenantSsoId) {\n const response = await apiMutate(\n ConfigService.securityV1ApiUrl,\n `sso/${tenantSsoId}`,\n { method: 'get' }\n );\n if (!response) return;\n url = `${url}${response.data.urlParams}`;\n }\n if (url) {\n redirectToLinkOnClick(url, getAccessToken, user);\n }\n\n if (params?.Action?.length) {\n triggerMultipleActions(params.Action);\n }\n\n setOpen(!open);\n };\n\n const MenuItemRoot = (\n <AppMenuItemComponent\n className={clsx(indent ? classes.menuItem : classes.indent, classes.item)}\n link={items.length ? '' : link}\n onClick={handleClick}\n aria-expanded={isExpandable ? open : null}\n params={{ ...other, label, params }}\n isChild={isChild}\n >\n {/* Display an icon if any */}\n {(!!icon || !!image) && ((isChild && childrenIcons) || !isChild) && (\n <ListItemIcon className={classes.menuItemIcon}>\n {icon ? (\n <div className={classes.icon}>\n <FluentIcon component={icon} />\n </div>\n ) : (\n <img src={image} alt={label} className={classes.images} />\n )}\n </ListItemIcon>\n )}\n <ListItemText primary={t(label)} inset={!icon && !image} />\n {/* Display the expand menu if the item has children */}\n {isExpandable &&\n (open ? (\n <div className={classes.expand}>\n <FluentIcon\n size={'small'}\n component={ChevronUpIcon}\n id={`udpRecord-AppMenuItem-FluentIcon-Up-${label}`}\n udprecordid={`udpRecord-AppMenuItem-FluentIcon-Up-${label}`}\n />\n </div>\n ) : (\n <div className={classes.expand}>\n <FluentIcon\n size={'small'}\n component={ChevronDownIcon}\n id={`udpRecord-AppMenuItem-FluentIcon-Down-${label}`}\n udprecordid={`udpRecord-AppMenuItem-FluentIcon-Down-${label}`}\n />\n </div>\n ))}\n </AppMenuItemComponent>\n );\n\n const MenuItemChildren = isExpandable ? (\n <Collapse in={open} timeout='auto' unmountOnExit>\n {/* <Divider aria-hidden={true} /> */}\n <List>\n {items.map((item, index) => (\n <AppMenuItem\n {...item}\n childrenIcons={childrenIcons}\n isChild\n key={index}\n childIndex={childIndex + 1}\n sidebarExpanded={sidebarExpanded}\n user={user}\n />\n ))}\n </List>\n </Collapse>\n ) : null;\n\n return (\n <li>\n {MenuItemRoot}\n {MenuItemChildren}\n </li>\n );\n};\n\nAppMenuItem.propTypes = AppMenuItemPropTypes;\n","import React from 'react';\nimport { List } from '@material-ui/core';\nimport { AppMenuItem } from './AppMenuItem';\n\nexport const AppMenu = ({\n childrenIcons,\n menuItems,\n sidebarExpanded,\n user\n}) => {\n return (\n <nav aria-label='Site Navigation'>\n <List>\n {menuItems.map((item, index) => {\n return (\n <AppMenuItem\n key={index}\n childrenIcons={childrenIcons}\n sidebarExpanded={sidebarExpanded}\n user={user}\n {...item}\n />\n );\n })}\n </List>\n </nav>\n );\n};\n"],"mappings":"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"}
@@ -2,9 +2,9 @@ import { t as ConfigService } from "./configService-C4uoG3wj.js";
2
2
  import { d as getLoginRequest, f as getSignInAuthProvider, l as whitelistedPaths, m as initSignInAuthProvider } from "./apiHelpers-WIR8pqy0.js";
3
3
  import { i as storeTenant, n as getStoredTenant } from "./UnitySessionStorage-CUDx9YWR.js";
4
4
  import { n as UserContext, r as UserDispatchContext } from "./useUser-wpHGo6jU.js";
5
- import { w as RoleIdEnums } from "./unitySystemEnums-e5F9Jr7m.js";
5
+ import { w as RoleIdEnums } from "./unitySystemEnums-CZDCsD5t.js";
6
6
  import { t as useAxiosGet } from "./useAxiosGet-CYnt6Hd0.js";
7
- import { t as TenantProvider } from "./TenantProvider-C-3eqCA3.js";
7
+ import { t as TenantProvider } from "./TenantProvider-B_fwoUi4.js";
8
8
  import { t as LoadingIndicator } from "./LoadingIndicator-BBIwYBt5.js";
9
9
  import { t as CustomNavigationClient_default } from "./CustomNavigationClient-CwXe-ZC7.js";
10
10
  import { t as PasswordResetRedirect } from "./PasswordResetRedirect-DDOsXDPA.js";
@@ -216,4 +216,4 @@ const AuthProvider = ({ children, doNotWaitForTenant = true }) => {
216
216
 
217
217
  //#endregion
218
218
  export { createUser as n, AuthProvider as t };
219
- //# sourceMappingURL=AuthProvider-qWjJiYSg.js.map
219
+ //# sourceMappingURL=AuthProvider-V_6y6_xj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthProvider-qWjJiYSg.js","names":["tenantId: any","userTenantPermissions: any","userTenantRoles: any","userTenantProducts: any","roleIds: any","useLocation","CustomNavigationClient","UserProvider"],"sources":["../src/utilities/auth/user.ts","../src/utilities/auth/UserProvider.jsx","../src/utilities/auth/AuthProvider.jsx"],"sourcesContent":["import { ConfigService } from '../../configService';\nimport { RoleIdEnums } from '../../enums/unitySystemEnums';\nimport { getStoredTenant } from '../storage/UnitySessionStorage';\n\nexport interface User {\n name: string | undefined;\n firstName: string | undefined;\n familyName: string | undefined;\n jobTitle: string | undefined;\n email: string | undefined;\n mobile: string | undefined;\n phone: string | undefined;\n id: string | undefined;\n location: string | undefined;\n aadId: string | undefined;\n accessToken: string | undefined;\n defaultTenantId: string | undefined;\n currentTenantId: string | undefined;\n tenantIds: Array<string> | undefined;\n roleIds: Array<string> | undefined;\n products: Array<object> | undefined;\n permissions: Array<object> | undefined;\n can: any | undefined;\n statusCode: number | undefined;\n unityId: string | undefined;\n additionalProperties: any | undefined;\n roleNames: Array<string> | undefined;\n isUnitySystemAdmin: boolean | undefined;\n}\n\n/**\n * Create a \"unified\" user object from MSAL account info and Univerus user data (in the future)\n */\nexport function createUser(userInfo: any): User {\n const tenantId: any =\n getStoredTenant() ||\n (userInfo?.defaultTenantId ??\n (userInfo?.tenantIds ? userInfo?.tenantIds[0] : ''));\n let userTenantPermissions: any = [];\n let userTenantRoles: any = [];\n let userTenantProducts: any = [];\n const currentUserTenantProperties = userInfo?.userTenantPropertiesView?.find(\n (propertyView: any) => propertyView?.tenantId === tenantId\n );\n userTenantPermissions = currentUserTenantProperties\n ? currentUserTenantProperties.permissions\n : [];\n userTenantRoles = currentUserTenantProperties\n ? currentUserTenantProperties.securityRoles\n : [];\n userTenantProducts = currentUserTenantProperties\n ? currentUserTenantProperties.products\n : [];\n\n let roleIds: any = userTenantRoles.map((role: any) => role.roleId) ?? [];\n\n return {\n name: userInfo?.displayName ?? '',\n firstName: userInfo?.givenName ?? '',\n familyName: userInfo?.surname ?? '',\n jobTitle: userInfo?.jobTitle ?? '',\n email: userInfo?.email ?? '',\n mobile: userInfo?.mobilePhone ?? '',\n phone: userInfo?.officePhone ?? '',\n id: userInfo?.userId ?? '',\n location: userInfo?.location ?? '',\n aadId: userInfo?.externalUUID ?? '',\n accessToken: userInfo?.accessToken ?? '',\n tenantIds: userInfo?.tenantIds ?? [],\n defaultTenantId: userInfo?.defaultTenantId ?? '',\n currentTenantId: ConfigService.config.UNITY_TENANT_ID\n ? ConfigService.config.UNITY_TENANT_ID\n : tenantId,\n roleIds: roleIds,\n products: userTenantProducts,\n permissions: userTenantPermissions,\n can:\n userTenantPermissions.reduce((can: any, permission: any) => {\n if (permission.value === 'false') {\n can[permission.name] = false;\n } else if (permission.value === 'true') {\n can[permission.name] = true;\n } else {\n can[permission.name] = permission.value;\n }\n return can;\n }, {}) ?? {},\n statusCode: userInfo?.statusCode ?? 200,\n unityId: userInfo?.userId ?? '',\n additionalProperties: userInfo?.additionalProperties ?? undefined,\n roleNames: userTenantRoles.map((role) => role.name) ?? [],\n isUnitySystemAdmin: !!roleIds.find(\n (id: string) => id === RoleIdEnums.Unity_System_Administrator\n )\n };\n}\n","import React, { useReducer, useEffect } from 'react';\nimport { UserContext, UserDispatchContext } from './internal';\nimport { createUser } from './user';\nimport { LoadingIndicator } from '../../UI/loading/LoadingIndicator';\nimport { useAccount } from '@azure/msal-react';\nimport { storeTenant, getStoredTenant } from '../storage/UnitySessionStorage';\nimport { useAxiosGet } from '../useAxiosGet';\nimport { TenantProvider } from '../tenant/TenantProvider';\nimport { acquireAccessToken } from './authActions';\nimport { ConfigService } from '../../configService';\nconst emptyUser = {\n name: '',\n firstName: '',\n familyName: '',\n jobTitle: '',\n email: '',\n mobile: '',\n phone: '',\n id: '',\n location: '',\n aadId: '',\n accessToken: '',\n defaultTenantId: '',\n currentTenantId: '',\n tenantIds: [],\n roleIds: [],\n products: [],\n permissions: [],\n can: {},\n statusCode: undefined,\n unityId: undefined,\n additionalProperties: undefined,\n roleNames: [],\n isUnitySystemAdmin: undefined\n};\n\nconst UserProvider = (props) => {\n const {\n children,\n setSessionExpiredModalOpen,\n setNonExistingUserModalOpen,\n setErrorMessage,\n isWhiteListed,\n doNotWaitForTenant = false,\n unityTenantId\n } = props;\n const activeAccount = useAccount();\n const idTokenClaims = activeAccount?.idTokenClaims;\n const sub = idTokenClaims?.sub;\n\n //Get user info\n const [{ data: userInfo, error: userError }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users/unityuser`,\n {},\n false,\n false\n );\n\n useEffect(() => {\n if (userError) {\n setErrorMessage('Unable to get user details. Please try again.');\n setNonExistingUserModalOpen(true);\n }\n }, [setErrorMessage, setNonExistingUserModalOpen, userError]);\n\n // const [{ data: aadUserInfo }] = useAxiosGet(\n // ConfigService.securityV1ApiUrl,\n // `users/${sub}`,\n // {},\n // false,\n // false\n // );\n\n const [userState, dispatch] = useReducer((state, action) => {\n switch (action.type) {\n case 'SET_USER':\n state = {\n ...state,\n user: action.user\n };\n break;\n case 'CHANGE_TENANT':\n let userTenantPermissions = [];\n let userTenantRoles = [];\n let userTenantProducts = [];\n if (state.tenantIds) {\n const currentUserTenantProperties =\n userInfo.userTenantPropertiesView?.find(\n (propertyView) => propertyView?.tenantId === action.tenantId\n );\n userTenantPermissions = currentUserTenantProperties\n ? currentUserTenantProperties.permissions\n : [];\n userTenantRoles = currentUserTenantProperties\n ? currentUserTenantProperties.securityRoles\n : [];\n userTenantProducts = currentUserTenantProperties\n ? currentUserTenantProperties.products\n : [];\n }\n state = {\n user: {\n ...state,\n currentTenantId: action.tenantId,\n products: userTenantProducts,\n permissions: userTenantPermissions,\n roleIds: userTenantRoles.map((role) => role.roleId) ?? [],\n roleNames: userTenantRoles.map((role) => role.name) ?? []\n }\n };\n break;\n default:\n throw new Error(`Unknown action type ${action.type}`);\n }\n\n return state.user;\n }, emptyUser);\n\n useEffect(() => {\n if (userInfo?.userId) {\n const user = createUser({\n ...userInfo,\n displayName: idTokenClaims?.name,\n givenName: idTokenClaims?.given_name ?? idTokenClaims?.name,\n accessToken: activeAccount.idToken ?? '',\n surname: idTokenClaims?.family_name\n });\n sessionStorage.setItem('user-id', userInfo?.userId);\n\n dispatch({ type: 'SET_USER', user });\n }\n }, [\n userInfo,\n idTokenClaims?.name,\n idTokenClaims?.given_name,\n idTokenClaims?.family_name,\n activeAccount.idToken\n ]);\n\n useEffect(() => {\n if (userInfo?.defaultTenantId) {\n if (!getStoredTenant()) {\n if (unityTenantId) {\n storeTenant(unityTenantId);\n } else {\n storeTenant(userInfo.defaultTenantId);\n }\n }\n }\n }, [userInfo]);\n\n return (\n <div>\n {!doNotWaitForTenant &&\n !userState?.currentTenantId &&\n !isWhiteListed ? (\n <LoadingIndicator />\n ) : (\n <UserContext.Provider value={userState}>\n <UserDispatchContext.Provider value={dispatch}>\n <TenantProvider>{children}</TenantProvider>\n </UserDispatchContext.Provider>\n </UserContext.Provider>\n )}\n </div>\n );\n};\n\nexport default UserProvider;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n initSignInAuthProvider,\n getSignInAuthProvider,\n getLoginRequest,\n} from './signInAuthProvider';\nimport { LoadingIndicator } from '../../UI/loading/LoadingIndicator';\nimport { whitelistedPaths } from './whitelistedPaths';\nimport { InteractionType } from '@azure/msal-browser';\nimport {\n MsalProvider,\n MsalAuthenticationTemplate,\n} from '@azure/msal-react';\nimport { useHistory } from 'react-router-dom';\nimport CustomNavigationClient from '../CustomNavigationClient';\nimport { useLocation } from 'react-use';\nimport UserProvider from './UserProvider';\nimport { PasswordResetRedirect } from '../../routes/components/PasswordResetRedirect';\n\nexport const AuthProvider = ({ children, doNotWaitForTenant = true }) => {\n const [msalInstance, setMsalInstance] = useState(null);\n const [loginRequestInstance, setLoginRequestInstance] = useState(null);\n const [isInitialized, setIsInitialized] = useState(false);\n\n const history = useHistory();\n const location = useLocation();\n\n useEffect(() => {\n const initialize = async () => {\n try {\n await initSignInAuthProvider();\n const authProvider = getSignInAuthProvider();\n const navigationClient = new CustomNavigationClient(history);\n authProvider.setNavigationClient(navigationClient);\n setMsalInstance(authProvider);\n setLoginRequestInstance(getLoginRequest());\n setIsInitialized(true);\n } catch (error) {\n console.error('Failed to initialize AuthProvider:', error);\n // Handle initialization error, maybe show an error message\n }\n };\n initialize();\n }, [history]);\n\n const [sessionExpiredModalOpen, setSessionExpiredModalOpen] = useState(false);\n const [nonExistingUserModalOpen, setNonExistingUserModalOpen] =\n useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n const isWhiteListed = useMemo(() => {\n const url = location.pathname;\n return whitelistedPaths.includes(url ?? '');\n }, [location]);\n\n if (!isInitialized) {\n return <LoadingIndicator />;\n }\n\n if (isWhiteListed) {\n return <MsalProvider instance={msalInstance}>{children}</MsalProvider>;\n }\n\n return (\n <MsalProvider instance={msalInstance}>\n <MsalAuthenticationTemplate\n interactionType={InteractionType.Redirect}\n authenticationRequest={loginRequestInstance}\n loadingComponent={() => <LoadingIndicator />}\n errorComponent={(props) => <PasswordResetRedirect {...props} />}\n >\n <UserProvider\n sessionExpiredModalOpen={sessionExpiredModalOpen}\n setSessionExpiredModalOpen={setSessionExpiredModalOpen}\n setNonExistingUserModalOpen={setNonExistingUserModalOpen}\n setErrorMessage={setErrorMessage}\n isWhiteListed={isWhiteListed}\n doNotWaitForTenant={doNotWaitForTenant}\n >\n {children}\n </UserProvider>\n </MsalAuthenticationTemplate>\n </MsalProvider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"AuthProvider-V_6y6_xj.js","names":["tenantId: any","userTenantPermissions: any","userTenantRoles: any","userTenantProducts: any","roleIds: any","useLocation","CustomNavigationClient","UserProvider"],"sources":["../src/utilities/auth/user.ts","../src/utilities/auth/UserProvider.jsx","../src/utilities/auth/AuthProvider.jsx"],"sourcesContent":["import { ConfigService } from '../../configService';\nimport { RoleIdEnums } from '../../enums/unitySystemEnums';\nimport { getStoredTenant } from '../storage/UnitySessionStorage';\n\nexport interface User {\n name: string | undefined;\n firstName: string | undefined;\n familyName: string | undefined;\n jobTitle: string | undefined;\n email: string | undefined;\n mobile: string | undefined;\n phone: string | undefined;\n id: string | undefined;\n location: string | undefined;\n aadId: string | undefined;\n accessToken: string | undefined;\n defaultTenantId: string | undefined;\n currentTenantId: string | undefined;\n tenantIds: Array<string> | undefined;\n roleIds: Array<string> | undefined;\n products: Array<object> | undefined;\n permissions: Array<object> | undefined;\n can: any | undefined;\n statusCode: number | undefined;\n unityId: string | undefined;\n additionalProperties: any | undefined;\n roleNames: Array<string> | undefined;\n isUnitySystemAdmin: boolean | undefined;\n}\n\n/**\n * Create a \"unified\" user object from MSAL account info and Univerus user data (in the future)\n */\nexport function createUser(userInfo: any): User {\n const tenantId: any =\n getStoredTenant() ||\n (userInfo?.defaultTenantId ??\n (userInfo?.tenantIds ? userInfo?.tenantIds[0] : ''));\n let userTenantPermissions: any = [];\n let userTenantRoles: any = [];\n let userTenantProducts: any = [];\n const currentUserTenantProperties = userInfo?.userTenantPropertiesView?.find(\n (propertyView: any) => propertyView?.tenantId === tenantId\n );\n userTenantPermissions = currentUserTenantProperties\n ? currentUserTenantProperties.permissions\n : [];\n userTenantRoles = currentUserTenantProperties\n ? currentUserTenantProperties.securityRoles\n : [];\n userTenantProducts = currentUserTenantProperties\n ? currentUserTenantProperties.products\n : [];\n\n let roleIds: any = userTenantRoles.map((role: any) => role.roleId) ?? [];\n\n return {\n name: userInfo?.displayName ?? '',\n firstName: userInfo?.givenName ?? '',\n familyName: userInfo?.surname ?? '',\n jobTitle: userInfo?.jobTitle ?? '',\n email: userInfo?.email ?? '',\n mobile: userInfo?.mobilePhone ?? '',\n phone: userInfo?.officePhone ?? '',\n id: userInfo?.userId ?? '',\n location: userInfo?.location ?? '',\n aadId: userInfo?.externalUUID ?? '',\n accessToken: userInfo?.accessToken ?? '',\n tenantIds: userInfo?.tenantIds ?? [],\n defaultTenantId: userInfo?.defaultTenantId ?? '',\n currentTenantId: ConfigService.config.UNITY_TENANT_ID\n ? ConfigService.config.UNITY_TENANT_ID\n : tenantId,\n roleIds: roleIds,\n products: userTenantProducts,\n permissions: userTenantPermissions,\n can:\n userTenantPermissions.reduce((can: any, permission: any) => {\n if (permission.value === 'false') {\n can[permission.name] = false;\n } else if (permission.value === 'true') {\n can[permission.name] = true;\n } else {\n can[permission.name] = permission.value;\n }\n return can;\n }, {}) ?? {},\n statusCode: userInfo?.statusCode ?? 200,\n unityId: userInfo?.userId ?? '',\n additionalProperties: userInfo?.additionalProperties ?? undefined,\n roleNames: userTenantRoles.map((role) => role.name) ?? [],\n isUnitySystemAdmin: !!roleIds.find(\n (id: string) => id === RoleIdEnums.Unity_System_Administrator\n )\n };\n}\n","import React, { useReducer, useEffect } from 'react';\nimport { UserContext, UserDispatchContext } from './internal';\nimport { createUser } from './user';\nimport { LoadingIndicator } from '../../UI/loading/LoadingIndicator';\nimport { useAccount } from '@azure/msal-react';\nimport { storeTenant, getStoredTenant } from '../storage/UnitySessionStorage';\nimport { useAxiosGet } from '../useAxiosGet';\nimport { TenantProvider } from '../tenant/TenantProvider';\nimport { acquireAccessToken } from './authActions';\nimport { ConfigService } from '../../configService';\nconst emptyUser = {\n name: '',\n firstName: '',\n familyName: '',\n jobTitle: '',\n email: '',\n mobile: '',\n phone: '',\n id: '',\n location: '',\n aadId: '',\n accessToken: '',\n defaultTenantId: '',\n currentTenantId: '',\n tenantIds: [],\n roleIds: [],\n products: [],\n permissions: [],\n can: {},\n statusCode: undefined,\n unityId: undefined,\n additionalProperties: undefined,\n roleNames: [],\n isUnitySystemAdmin: undefined\n};\n\nconst UserProvider = (props) => {\n const {\n children,\n setSessionExpiredModalOpen,\n setNonExistingUserModalOpen,\n setErrorMessage,\n isWhiteListed,\n doNotWaitForTenant = false,\n unityTenantId\n } = props;\n const activeAccount = useAccount();\n const idTokenClaims = activeAccount?.idTokenClaims;\n const sub = idTokenClaims?.sub;\n\n //Get user info\n const [{ data: userInfo, error: userError }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users/unityuser`,\n {},\n false,\n false\n );\n\n useEffect(() => {\n if (userError) {\n setErrorMessage('Unable to get user details. Please try again.');\n setNonExistingUserModalOpen(true);\n }\n }, [setErrorMessage, setNonExistingUserModalOpen, userError]);\n\n // const [{ data: aadUserInfo }] = useAxiosGet(\n // ConfigService.securityV1ApiUrl,\n // `users/${sub}`,\n // {},\n // false,\n // false\n // );\n\n const [userState, dispatch] = useReducer((state, action) => {\n switch (action.type) {\n case 'SET_USER':\n state = {\n ...state,\n user: action.user\n };\n break;\n case 'CHANGE_TENANT':\n let userTenantPermissions = [];\n let userTenantRoles = [];\n let userTenantProducts = [];\n if (state.tenantIds) {\n const currentUserTenantProperties =\n userInfo.userTenantPropertiesView?.find(\n (propertyView) => propertyView?.tenantId === action.tenantId\n );\n userTenantPermissions = currentUserTenantProperties\n ? currentUserTenantProperties.permissions\n : [];\n userTenantRoles = currentUserTenantProperties\n ? currentUserTenantProperties.securityRoles\n : [];\n userTenantProducts = currentUserTenantProperties\n ? currentUserTenantProperties.products\n : [];\n }\n state = {\n user: {\n ...state,\n currentTenantId: action.tenantId,\n products: userTenantProducts,\n permissions: userTenantPermissions,\n roleIds: userTenantRoles.map((role) => role.roleId) ?? [],\n roleNames: userTenantRoles.map((role) => role.name) ?? []\n }\n };\n break;\n default:\n throw new Error(`Unknown action type ${action.type}`);\n }\n\n return state.user;\n }, emptyUser);\n\n useEffect(() => {\n if (userInfo?.userId) {\n const user = createUser({\n ...userInfo,\n displayName: idTokenClaims?.name,\n givenName: idTokenClaims?.given_name ?? idTokenClaims?.name,\n accessToken: activeAccount.idToken ?? '',\n surname: idTokenClaims?.family_name\n });\n sessionStorage.setItem('user-id', userInfo?.userId);\n\n dispatch({ type: 'SET_USER', user });\n }\n }, [\n userInfo,\n idTokenClaims?.name,\n idTokenClaims?.given_name,\n idTokenClaims?.family_name,\n activeAccount.idToken\n ]);\n\n useEffect(() => {\n if (userInfo?.defaultTenantId) {\n if (!getStoredTenant()) {\n if (unityTenantId) {\n storeTenant(unityTenantId);\n } else {\n storeTenant(userInfo.defaultTenantId);\n }\n }\n }\n }, [userInfo]);\n\n return (\n <div>\n {!doNotWaitForTenant &&\n !userState?.currentTenantId &&\n !isWhiteListed ? (\n <LoadingIndicator />\n ) : (\n <UserContext.Provider value={userState}>\n <UserDispatchContext.Provider value={dispatch}>\n <TenantProvider>{children}</TenantProvider>\n </UserDispatchContext.Provider>\n </UserContext.Provider>\n )}\n </div>\n );\n};\n\nexport default UserProvider;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n initSignInAuthProvider,\n getSignInAuthProvider,\n getLoginRequest,\n} from './signInAuthProvider';\nimport { LoadingIndicator } from '../../UI/loading/LoadingIndicator';\nimport { whitelistedPaths } from './whitelistedPaths';\nimport { InteractionType } from '@azure/msal-browser';\nimport {\n MsalProvider,\n MsalAuthenticationTemplate,\n} from '@azure/msal-react';\nimport { useHistory } from 'react-router-dom';\nimport CustomNavigationClient from '../CustomNavigationClient';\nimport { useLocation } from 'react-use';\nimport UserProvider from './UserProvider';\nimport { PasswordResetRedirect } from '../../routes/components/PasswordResetRedirect';\n\nexport const AuthProvider = ({ children, doNotWaitForTenant = true }) => {\n const [msalInstance, setMsalInstance] = useState(null);\n const [loginRequestInstance, setLoginRequestInstance] = useState(null);\n const [isInitialized, setIsInitialized] = useState(false);\n\n const history = useHistory();\n const location = useLocation();\n\n useEffect(() => {\n const initialize = async () => {\n try {\n await initSignInAuthProvider();\n const authProvider = getSignInAuthProvider();\n const navigationClient = new CustomNavigationClient(history);\n authProvider.setNavigationClient(navigationClient);\n setMsalInstance(authProvider);\n setLoginRequestInstance(getLoginRequest());\n setIsInitialized(true);\n } catch (error) {\n console.error('Failed to initialize AuthProvider:', error);\n // Handle initialization error, maybe show an error message\n }\n };\n initialize();\n }, [history]);\n\n const [sessionExpiredModalOpen, setSessionExpiredModalOpen] = useState(false);\n const [nonExistingUserModalOpen, setNonExistingUserModalOpen] =\n useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n const isWhiteListed = useMemo(() => {\n const url = location.pathname;\n return whitelistedPaths.includes(url ?? '');\n }, [location]);\n\n if (!isInitialized) {\n return <LoadingIndicator />;\n }\n\n if (isWhiteListed) {\n return <MsalProvider instance={msalInstance}>{children}</MsalProvider>;\n }\n\n return (\n <MsalProvider instance={msalInstance}>\n <MsalAuthenticationTemplate\n interactionType={InteractionType.Redirect}\n authenticationRequest={loginRequestInstance}\n loadingComponent={() => <LoadingIndicator />}\n errorComponent={(props) => <PasswordResetRedirect {...props} />}\n >\n <UserProvider\n sessionExpiredModalOpen={sessionExpiredModalOpen}\n setSessionExpiredModalOpen={setSessionExpiredModalOpen}\n setNonExistingUserModalOpen={setNonExistingUserModalOpen}\n setErrorMessage={setErrorMessage}\n isWhiteListed={isWhiteListed}\n doNotWaitForTenant={doNotWaitForTenant}\n >\n {children}\n </UserProvider>\n </MsalAuthenticationTemplate>\n </MsalProvider>\n );\n};\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { t as FluentIcon } from "./FluentIcon-DQ6nSDJg.js";
2
- import { I as TreeViewModeEnums, v as NodeActionTriggerEnums } from "./unitySystemEnums-e5F9Jr7m.js";
2
+ import { I as TreeViewModeEnums, v as NodeActionTriggerEnums } from "./unitySystemEnums-CZDCsD5t.js";
3
3
  import { t as UnityFluentIcon } from "./UnityFluentIcon-DrASIcTF.js";
4
- import { S as getIconFromName, V as searchTree, d as findAllParentIds, w as getNodeIdForRightBorder } from "./TreeUtilities-VCy2z4Qv.js";
4
+ import { S as getIconFromName, V as searchTree, d as findAllParentIds, w as getNodeIdForRightBorder } from "./TreeUtilities-jEhtZNg5.js";
5
5
  import { t as getUnityIconFromName } from "./UnityIconLibrary-CjIwzfjv.js";
6
6
  import { t as StatusChip } from "./StatusChip-DZAN88VU.js";
7
- import { t as AggregateChip } from "./AggregateChip-6GSEsL_A.js";
7
+ import { t as AggregateChip } from "./AggregateChip-BF7S3x_K.js";
8
8
  import React, { useCallback, useEffect, useRef, useState } from "react";
9
9
  import { CircularProgress, Tooltip, Typography, darken, lighten, makeStyles, useTheme } from "@material-ui/core";
10
10
  import clsx from "clsx";
@@ -355,4 +355,4 @@ const BaseTreeMenu = (props) => {
355
355
 
356
356
  //#endregion
357
357
  export { BaseTreeMenuItem as n, BaseTreeMenu as t };
358
- //# sourceMappingURL=BaseTreeMenu-CBFIl0VF.js.map
358
+ //# sourceMappingURL=BaseTreeMenu-Dg8MW4TD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTreeMenu-CBFIl0VF.js","names":["useStyles","other","tree","expanded"],"sources":["../src/treeMenu/BaseTreeMenuItem.jsx","../src/treeMenu/BaseTreeMenu.jsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n makeStyles,\n lighten,\n Typography,\n CircularProgress,\n darken,\n useTheme,\n Tooltip\n} from '@material-ui/core';\nimport TreeItem from '@material-ui/lab/TreeItem';\nimport { getIconFromName } from '../utilities/tree/TreeUtilities';\nimport clsx from 'clsx';\nimport { UnityFluentIcon } from '../utilities/iconLibrary/UnityFluentIcon';\nimport { getUnityIconFromName } from '../utilities/iconLibrary/UnityIconLibrary';\nimport { useDrag, useDrop } from 'react-dnd';\nimport {\n NodeActionTriggerEnums,\n TreeViewModeEnums\n} from '../enums/unitySystemEnums.ts';\nimport { AggregateChip } from '../UI/utilityDisplay/AggregateChip';\nimport { StatusChip } from '../UI/dataDisplay/status/StatusChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n '&.Mui-selected > .MuiTreeItem-content': {\n backgroundColor:\n theme?.getThemeData()?.mode === 'dark'\n ? theme.palette.grey[700]\n : theme.palette.grey[300],\n borderRight: `4px solid ${theme.palette.primary.main}`\n },\n '&.Mui-selected > .MuiTreeItem-content .MuiTreeItem-label': {\n backgroundColor: 'transparent',\n paddingLeft: 0\n },\n '&.Mui-selected > .MuiTreeItem-content > .MuiCollapse-wrapperInner': {\n backgroundColor:\n theme?.getThemeData()?.mode !== 'dark' && theme.palette.grey[50]\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer': {\n display: (props) => (props.sidebarExpanded ? 'flex' : 'none')\n }\n },\n content: {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' &&\n props.conditionalIconName &&\n props.conditionalIconColor\n ? lighten(props.conditionalIconColor, 0.92)\n : ''\n },\n labelRoot: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: (props) => (props.sidebarExpanded ? 0 : theme.spacing(1.5)),\n width: '100%'\n },\n labelContainer: {\n display: (props) => (!props.sidebarExpanded ? 'none' : ''),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `calc(100% - ${theme.spacing(6.25)}px)`\n : `calc(100% - ${theme.spacing(7.75)}px)`\n },\n conditionalIconContainer: {\n display: 'inline-flex'\n },\n labelText: {\n fontSize: '0.75rem',\n fontWeight: 600,\n lineHeight: '1rem',\n letterSpacing: 0.1\n },\n captionText: {\n marginLeft: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact ? theme.spacing(1) : '',\n fontSize: '0.65rem',\n fontWeight: 400,\n lineHeight: 1,\n letterSpacing: 0.4\n },\n labelOverflow: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n group: {\n width: '100%',\n '& .MuiTreeItem-group': {\n marginLeft: 0\n },\n '& .MuiTreeItem-content': {\n paddingLeft: (props) =>\n props.sidebarExpanded ? (props.depth || 1) * theme.spacing(1) : 0,\n borderRight: (props) =>\n props.showRightBorderColor\n ? `4px solid ${theme.palette.primary.main}`\n : '',\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n '& .MuiTreeItem-content .MuiTreeItem-label': {\n paddingLeft: 0,\n width: (props) =>\n props.sidebarExpanded && `calc(100% - ${theme.spacing(2.5)}px)`\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer span': {\n display: (props) => (props.hideExpansion ? 'none' : '')\n },\n '& .MuiCollapse-wrapperInner': {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' && props.isSelectedNode\n ? theme.palette.grey[50]\n : ''\n }\n },\n iconContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 50,\n marginTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginRight: theme.spacing(1),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4),\n height: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4),\n border: (props) =>\n props.iconColor\n ? `1px solid ${darken(props.iconColor, 0.1)}`\n : `1px solid ${theme.palette.secondary.main}`,\n backgroundColor: '#ffffff'\n }\n}));\n\nexport const BaseTreeMenuItem = (props) => {\n const {\n parentId,\n nodeId,\n iconName,\n iconType,\n conditionalIconName,\n conditionalIconType,\n conditionalIconColor,\n label,\n iconColor,\n onNodeSelect,\n isSelectedNode,\n subLabel,\n sidebarExpanded,\n isLastNode,\n loading,\n node,\n onDropNode,\n treeViewMode,\n menuIndex,\n aggregateThresholdId,\n ...other\n } = props;\n const classes = useStyles(props);\n const theme = useTheme();\n\n const [{ isDragging }, dragRef] = useDrag({\n type: 'BaseTreeMenuItem',\n item: { ...node, sourceNodeMenuIndex: menuIndex },\n collect: (monitor) => ({\n isDragging: monitor.isDragging()\n })\n });\n\n const handleOnDrop = useCallback(\n (sourceNode, monitor) => {\n if (!monitor.didDrop()) {\n if (onDropNode) {\n const { sourceNodeMenuIndex, ...other } = sourceNode;\n onDropNode({ ...other }, node, sourceNodeMenuIndex, menuIndex);\n }\n }\n },\n [onDropNode, node, menuIndex]\n );\n\n const [{ canDrop, isOver }, dropRef] = useDrop(\n () => ({\n accept: ['BaseTreeMenuItem'],\n drop: (sourceNode, monitor) => {\n // condition to only handle first drop\n handleOnDrop(sourceNode, monitor);\n },\n canDrop: (sourceNode) => checkCanDrop(sourceNode),\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n canDrop: !!monitor.canDrop()\n })\n }),\n [handleOnDrop]\n );\n\n const checkCanDrop = useCallback(\n (sourceNode) => {\n if (sourceNode) {\n const onDropActions = node?.properties?.nodeActions?.filter(\n (na) => na?.triggerType === NodeActionTriggerEnums.On_Node_Drop\n );\n if (!onDropActions) {\n return false;\n }\n const nodeDragEntities = onDropActions?.map(\n (action) => action?.dragEntityName\n );\n return nodeDragEntities.includes(\n sourceNode?.properties?.catalogReturnObject\n );\n }\n },\n [node]\n );\n\n const handleOnLabelClick = useCallback(\n (e) => {\n e.preventDefault();\n onNodeSelect(e, nodeId);\n },\n [onNodeSelect, nodeId]\n );\n\n return (\n <TreeItem\n className={classes.group}\n key={nodeId}\n nodeId={nodeId}\n label={\n <div ref={dropRef}>\n <Tooltip title={sidebarExpanded ? '' : label}>\n <div\n ref={(node?.properties?.isDraggable && dragRef) || null}\n style={{ opacity: isDragging ? 0.5 : 1 }}\n >\n {loading ? (\n <CircularProgress size={12} />\n ) : (\n <div\n id={'udpRecord-BaseTreeMenuItem-'+label.replace(/\\s+/g, '')}\n udprecordid={'udpRecord-BaseTreeMenuItem-'+label.replace(/\\s+/g, '')}\n className={classes.labelRoot}\n style={{\n fontWeight: isSelectedNode ? 'bold' : ''\n }}\n >\n {iconName && (\n <div className={classes.iconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'medium'\n }\n color={iconColor}\n type={iconType}\n icon={\n iconType === 'unity'\n ? getUnityIconFromName(iconName)\n : getIconFromName(iconName)\n }\n style={{\n color: iconColor\n ? darken(iconColor, 0.1)\n : theme.palette.secondary.main\n }}\n />\n </div>\n )}\n <div className={classes.labelContainer}>\n <Typography\n variant='subtitle2'\n className={clsx(classes.labelText, classes.labelOverflow)}\n >\n {label}\n {subLabel &&\n treeViewMode === TreeViewModeEnums.Compact && (\n <Typography\n variant='caption'\n className={clsx(\n classes.captionText,\n classes.labelOverflow\n )}\n >\n {subLabel}\n </Typography>\n )}\n </Typography>\n {subLabel && treeViewMode === TreeViewModeEnums.Classic && (\n <div className={classes.labelOverflow}>\n <Typography\n variant='caption'\n className={clsx(classes.captionText)}\n >\n {subLabel}\n </Typography>\n </div>\n )}\n </div>\n {node?.properties?.itemCount !== undefined &&\n node?.properties?.itemCount !== null &&\n sidebarExpanded && (\n <StatusChip\n label={String(node.properties.itemCount)}\n useSmallChip={true}\n />\n )}\n <AggregateChip aggregateThresholdId={aggregateThresholdId} />\n {conditionalIconName && sidebarExpanded && (\n <div className={classes.conditionalIconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'medium'\n }\n color={conditionalIconColor}\n type={conditionalIconType}\n icon={\n conditionalIconType === 'unity'\n ? getUnityIconFromName(conditionalIconName)\n : getIconFromName(conditionalIconName)\n }\n style={{\n color: conditionalIconColor\n }}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </Tooltip>\n </div>\n }\n onLabelClick={handleOnLabelClick}\n classes={{ root: classes.root, content: classes.content }}\n {...other}\n />\n );\n};\n","import React, { useCallback, useState, useEffect, useRef } from 'react';\nimport {\n makeStyles,\n useTheme,\n lighten,\n CircularProgress,\n Typography\n} from '@material-ui/core';\nimport TreeView from '@material-ui/lab/TreeView';\nimport { BaseTreeMenuItem } from './BaseTreeMenuItem';\nimport {\n searchTree,\n findAllParentIds,\n getNodeIdForRightBorder\n} from '../utilities/tree/TreeUtilities';\nimport { FluentIcon } from '../utilities/iconLibrary/FluentIcon';\nimport { CaretUpSolid8Icon, CaretDownSolid8Icon } from '@fluentui/react-icons';\nimport { cloneDeep } from 'lodash';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums.ts';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginBottom: theme.spacing(1.75),\n borderTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n noChildrenContainer: {\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n }\n}));\n\nexport const BaseTreeMenu = (props) => {\n const {\n menuItems,\n onSelectNode,\n onDropNode,\n menuIndex,\n selectedNodeId,\n selectedNodeParentId,\n sidebarExpanded,\n treeViewMode,\n childrenKey = 'children'\n } = props;\n const [expanded, setExpanded] = useState(null);\n const [isCurrentActiveTree, setIsCurrentActiveTree] = useState(false);\n const [selectedNodeIsHidden, setSelectedNodeIsHidden] = useState(false);\n const [tree, setTree] = useState(menuItems);\n const theme = useTheme();\n const classes = useStyles(props);\n const firstRender = useRef(true);\n\n const handleSelectedNode = useCallback(\n (e, value) => {\n const selectedNode = searchTree(tree, value);\n if (onSelectNode) {\n onSelectNode(selectedNode, menuIndex);\n setSelectedNodeIsHidden(false);\n }\n },\n [tree, menuIndex, onSelectNode]\n );\n\n const renderTree = useCallback(\n (node, depth = 1) => {\n let label = node.properties?.nodeLabel || node.properties?.name;\n let subLabel = node.properties?.nodeSubLabel;\n let iconName = node.properties?.defaultIcon?.name;\n let iconType = node.properties?.defaultIcon?.type;\n let conditionalIconName = node.properties?.conditionalIconName || '';\n let conditionalIconType = node.properties?.conditionalIconName\n ? node.properties.conditionalIconType\n : '';\n let conditionalIconColor = node.properties?.conditionalIconName\n ? node.properties?.conditionalIconColor\n : '';\n let nodeId = node.id;\n let iconColor = node.properties?.conditionalIconName\n ? node.properties?.conditionalIconColor\n : node.properties?.defaultIcon?.color?.hex;\n let aggregateThresholdId = node.properties?.aggregateThresholdId || '';\n\n if (node.isGroupNode) {\n label = node.properties?.label;\n subLabel = node.properties?.subLabel;\n iconName = node.properties?.icon?.name;\n iconType = node.properties?.icon?.type;\n iconColor = node.properties?.icon?.color?.hex;\n }\n\n return (\n <BaseTreeMenuItem\n key={nodeId}\n nodeId={nodeId}\n label={label}\n subLabel={subLabel}\n iconName={iconName}\n iconType={iconType}\n conditionalIconName={conditionalIconName}\n conditionalIconType={conditionalIconType}\n conditionalIconColor={conditionalIconColor}\n parentId={node.parentId}\n iconColor={iconColor}\n onNodeSelect={handleSelectedNode}\n selectedNodeId={selectedNodeId}\n isSelectedNode={selectedNodeId === node.id}\n showRightBorderColor={\n selectedNodeIsHidden &&\n isCurrentActiveTree &&\n getNodeIdForRightBorder(expanded, tree, selectedNodeParentId) ===\n node.id\n }\n isCurrentActiveTree={isCurrentActiveTree}\n sidebarExpanded={sidebarExpanded}\n depth={depth}\n hideExpansion={!!!node[childrenKey]?.length}\n node={node}\n onDropNode={onDropNode}\n treeViewMode={treeViewMode}\n menuIndex={menuIndex}\n aggregateThresholdId={aggregateThresholdId}\n >\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n !node.completedLoadingChildren && (\n <CircularProgress\n size={12}\n style={{ marginLeft: (depth || 1) * theme.spacing(1) }}\n />\n )}\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n !node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n No Children\n </Typography>\n </div>\n )}\n {node.properties?.lazyLoad &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n {`Error Retrieving ${\n !!node[childrenKey]?.length ? `Additional ` : ''\n }Children`}\n </Typography>\n </div>\n )}\n {Array.isArray(node[childrenKey])\n ? node[childrenKey].map((n, i) => renderTree(n, depth + 1))\n : null}\n </BaseTreeMenuItem>\n );\n },\n [\n handleSelectedNode,\n selectedNodeId,\n selectedNodeIsHidden,\n isCurrentActiveTree,\n sidebarExpanded,\n expanded,\n tree,\n selectedNodeParentId,\n theme,\n classes,\n onDropNode,\n treeViewMode,\n menuIndex,\n childrenKey\n ]\n );\n\n const handleNodeExpansion = useCallback(\n async (evt, nodeIds) => {\n const treeCopy = cloneDeep(tree);\n setExpanded(nodeIds);\n\n const parentNode = searchTree(treeCopy, selectedNodeParentId);\n const initialAllParentNodeIds = selectedNodeParentId\n ? [selectedNodeParentId]\n : [];\n const allParentNodeIds = findAllParentIds(\n treeCopy,\n parentNode,\n initialAllParentNodeIds\n );\n const selectedNodeShown = allParentNodeIds.every((id) =>\n nodeIds.includes(id)\n );\n if (\n isCurrentActiveTree &&\n allParentNodeIds.length &&\n !selectedNodeShown\n ) {\n setSelectedNodeIsHidden(true);\n } else {\n setSelectedNodeIsHidden(false);\n }\n },\n [isCurrentActiveTree, tree, selectedNodeParentId]\n );\n\n const getExpandedRecursively = useCallback(\n (tree) => {\n if (!tree) return [];\n return tree.reduce((expandedIds, item) => {\n if (item?.isExpanded) {\n expandedIds.push(item.id);\n }\n if (item && item[childrenKey]?.length) {\n expandedIds = expandedIds.concat(\n getExpandedRecursively(item[childrenKey])\n );\n }\n return expandedIds;\n }, []);\n },\n [childrenKey]\n );\n\n useEffect(() => {\n setTree(menuItems);\n }, [menuItems]);\n\n useEffect(() => {\n if (!tree) return;\n if (firstRender.current) {\n let expanded = [];\n if (tree?.isExpanded) {\n expanded.push(tree.id);\n }\n expanded = expanded.concat(getExpandedRecursively(tree[childrenKey]));\n setExpanded(expanded);\n firstRender.current = false;\n }\n // Do not reset expanded on subsequent updates\n }, [getExpandedRecursively, tree, childrenKey]);\n\n useEffect(() => {\n if (!!searchTree(tree, selectedNodeId)) {\n setIsCurrentActiveTree(true);\n } else {\n setIsCurrentActiveTree(false);\n }\n }, [tree, selectedNodeId]);\n\n const treeSelectedId =\n isCurrentActiveTree && selectedNodeId != null\n ? String(selectedNodeId)\n : null;\n\n if (!expanded) {\n return null;\n }\n\n return (\n <TreeView\n key={tree}\n className={classes.root}\n defaultCollapseIcon={\n <FluentIcon\n size='small'\n component={CaretUpSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n expanded={expanded || []}\n onNodeToggle={handleNodeExpansion}\n defaultExpandIcon={\n <FluentIcon\n size='small'\n component={CaretDownSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n selected={treeSelectedId}\n >\n {tree && renderTree(tree)}\n </TreeView>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,MAAMA,cAAY,YAAY,WAAW;CACvC,MAAM;EACJ,yCAAyC;GACvC,iBACE,OAAO,cAAc,EAAE,SAAS,SAC5B,MAAM,QAAQ,KAAK,OACnB,MAAM,QAAQ,KAAK;GACzB,aAAa,aAAa,MAAM,QAAQ,QAAQ;GACjD;EACD,4DAA4D;GAC1D,iBAAiB;GACjB,aAAa;GACd;EACD,qEAAqE,EACnE,iBACE,OAAO,cAAc,EAAE,SAAS,UAAU,MAAM,QAAQ,KAAK,KAChE;EACD,qDAAqD,EACnD,UAAU,UAAW,MAAM,kBAAkB,SAAS,QACvD;EACF;CACD,SAAS,EACP,kBAAkB,UAChB,OAAO,cAAc,EAAE,SAAS,UAChC,MAAM,uBACN,MAAM,uBACF,QAAQ,MAAM,sBAAsB,IAAK,GACzC,IACP;CACD,WAAW;EACT,SAAS;EACT,YAAY;EACZ,aAAa,UAAW,MAAM,kBAAkB,IAAI,MAAM,QAAQ,IAAI;EACtE,OAAO;EACR;CACD,gBAAgB;EACd,UAAU,UAAW,CAAC,MAAM,kBAAkB,SAAS;EACvD,QAAQ,UACN,MAAM,iBAAiB,kBAAkB,UACrC,eAAe,MAAM,QAAQ,KAAK,CAAC,OACnC,eAAe,MAAM,QAAQ,KAAK,CAAC;EAC1C;CACD,0BAA0B,EACxB,SAAS,eACV;CACD,WAAW;EACT,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,eAAe;EAChB;CACD,aAAa;EACX,aAAa,UACX,MAAM,iBAAiB,kBAAkB,UAAU,MAAM,QAAQ,EAAE,GAAG;EACxE,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,eAAe;EAChB;CACD,eAAe;EACb,YAAY;EACZ,UAAU;EACV,cAAc;EACf;CACD,OAAO;EACL,OAAO;EACP,wBAAwB,EACtB,YAAY,GACb;EACD,0BAA0B;GACxB,cAAc,UACZ,MAAM,mBAAmB,MAAM,SAAS,KAAK,MAAM,QAAQ,EAAE,GAAG;GAClE,cAAc,UACZ,MAAM,uBACF,aAAa,MAAM,QAAQ,QAAQ,SACnC;GACN,eAAe,UACb,MAAM,iBAAiB,kBAAkB,UACrC,aAAa,MAAM,QAAQ,KAAK,SAChC;GACP;EACD,6CAA6C;GAC3C,aAAa;GACb,QAAQ,UACN,MAAM,mBAAmB,eAAe,MAAM,QAAQ,IAAI,CAAC;GAC9D;EACD,0DAA0D,EACxD,UAAU,UAAW,MAAM,gBAAgB,SAAS,IACrD;EACD,+BAA+B,EAC7B,kBAAkB,UAChB,OAAO,cAAc,EAAE,SAAS,UAAU,MAAM,iBAC5C,MAAM,QAAQ,KAAK,MACnB,IACP;EACF;CACD,eAAe;EACb,SAAS;EACT,YAAY;EACZ,gBAAgB;EAChB,cAAc;EACd,YAAY,UACV,MAAM,iBAAiB,kBAAkB,UACrC,MAAM,QAAQ,IAAK,GACnB,MAAM,QAAQ,GAAI;EACxB,eAAe,UACb,MAAM,iBAAiB,kBAAkB,UACrC,MAAM,QAAQ,IAAK,GACnB,MAAM,QAAQ,GAAI;EACxB,aAAa,MAAM,QAAQ,EAAE;EAC7B,QAAQ,UACN,MAAM,iBAAiB,kBAAkB,UACrC,MAAM,QAAQ,EAAE,GAChB,MAAM,QAAQ,EAAE;EACtB,SAAS,UACP,MAAM,iBAAiB,kBAAkB,UACrC,MAAM,QAAQ,EAAE,GAChB,MAAM,QAAQ,EAAE;EACtB,SAAS,UACP,MAAM,YACF,aAAa,OAAO,MAAM,WAAW,GAAI,KACzC,aAAa,MAAM,QAAQ,UAAU;EAC3C,iBAAiB;EAClB;CACF,EAAE;AAEH,MAAa,oBAAoB,UAAU;CACzC,MAAM,EACJ,UACA,QACA,UACA,UACA,qBACA,qBACA,sBACA,OACA,WACA,cACA,gBACA,UACA,iBACA,YACA,SACA,MACA,YACA,cACA,WACA,sBACA,GAAG,UACD;CACJ,MAAM,UAAUA,YAAU,MAAM;CAChC,MAAM,QAAQ,UAAU;CAExB,MAAM,CAAC,EAAE,cAAc,WAAW,QAAQ;EACxC,MAAM;EACN,MAAM;GAAE,GAAG;GAAM,qBAAqB;GAAW;EACjD,UAAU,aAAa,EACrB,YAAY,QAAQ,YAAY,EACjC;EACF,CAAC;CAEF,MAAM,eAAe,aAClB,YAAY,YAAY;AACvB,MAAI,CAAC,QAAQ,SAAS,EACpB;OAAI,YAAY;IACd,MAAM,EAAE,qBAAqB,GAAGC,YAAU;AAC1C,eAAW,EAAE,GAAGA,SAAO,EAAE,MAAM,qBAAqB,UAAU;;;IAIpE;EAAC;EAAY;EAAM;EAAU,CAC9B;CAED,MAAM,CAAC,EAAE,SAAS,UAAU,WAAW,eAC9B;EACL,QAAQ,CAAC,mBAAmB;EAC5B,OAAO,YAAY,YAAY;AAE7B,gBAAa,YAAY,QAAQ;;EAEnC,UAAU,eAAe,aAAa,WAAW;EACjD,UAAU,aAAa;GACrB,QAAQ,QAAQ,QAAQ;GACxB,SAAS,CAAC,CAAC,QAAQ,SAAS;GAC7B;EACF,GACD,CAAC,aAAa,CACf;CAED,MAAM,eAAe,aAClB,eAAe;AACd,MAAI,YAAY;GACd,MAAM,gBAAgB,MAAM,YAAY,aAAa,QAClD,OAAO,IAAI,gBAAgB,uBAAuB,aACpD;AACD,OAAI,CAAC,cACH,QAAO;AAKT,WAHyB,eAAe,KACrC,WAAW,QAAQ,eACrB,EACuB,SACtB,YAAY,YAAY,oBACzB;;IAGL,CAAC,KAAK,CACP;CAED,MAAM,qBAAqB,aACxB,MAAM;AACL,IAAE,gBAAgB;AAClB,eAAa,GAAG,OAAO;IAEzB,CAAC,cAAc,OAAO,CACvB;AAED,QACE,oCAAC;EACC,WAAW,QAAQ;EACnB,KAAK;EACG;EACR,OACE,oCAAC,SAAI,KAAK,WACR,oCAAC,WAAQ,OAAO,kBAAkB,KAAK,SACrC,oCAAC;GACC,KAAM,MAAM,YAAY,eAAe,WAAY;GACnD,OAAO,EAAE,SAAS,aAAa,KAAM,GAAG;KAEvC,UACC,oCAAC,oBAAiB,MAAM,KAAM,GAE9B,oCAAC;GACC,IAAI,gCAA8B,MAAM,QAAQ,QAAQ,GAAG;GAC3D,aAAa,gCAA8B,MAAM,QAAQ,QAAQ,GAAG;GACpE,WAAW,QAAQ;GACnB,OAAO,EACL,YAAY,iBAAiB,SAAS,IACvC;KAEA,YACC,oCAAC,SAAI,WAAW,QAAQ,iBACtB,oCAAC;GACC,MACE,iBAAiB,kBAAkB,UAC/B,UACA;GAEN,OAAO;GACP,MAAM;GACN,MACE,aAAa,UACT,qBAAqB,SAAS,GAC9B,gBAAgB,SAAS;GAE/B,OAAO,EACL,OAAO,YACH,OAAO,WAAW,GAAI,GACtB,MAAM,QAAQ,UAAU,MAC7B;IACD,CACE,EAER,oCAAC,SAAI,WAAW,QAAQ,kBACtB,oCAAC;GACC,SAAQ;GACR,WAAW,KAAK,QAAQ,WAAW,QAAQ,cAAc;KAExD,OACA,YACC,iBAAiB,kBAAkB,WACjC,oCAAC;GACC,SAAQ;GACR,WAAW,KACT,QAAQ,aACR,QAAQ,cACT;KAEA,SACU,CAEN,EACZ,YAAY,iBAAiB,kBAAkB,WAC9C,oCAAC,SAAI,WAAW,QAAQ,iBACtB,oCAAC;GACC,SAAQ;GACR,WAAW,KAAK,QAAQ,YAAY;KAEnC,SACU,CACT,CAEJ,EACL,MAAM,YAAY,cAAc,UAC/B,MAAM,YAAY,cAAc,QAChC,mBACE,oCAAC;GACC,OAAO,OAAO,KAAK,WAAW,UAAU;GACxC,cAAc;IACd,EAEN,oCAAC,iBAAoC,uBAAwB,EAC5D,uBAAuB,mBACtB,oCAAC,SAAI,WAAW,QAAQ,4BACtB,oCAAC;GACC,MACE,iBAAiB,kBAAkB,UAC/B,UACA;GAEN,OAAO;GACP,MAAM;GACN,MACE,wBAAwB,UACpB,qBAAqB,oBAAoB,GACzC,gBAAgB,oBAAoB;GAE1C,OAAO,EACL,OAAO,sBACR;IACD,CACE,CAEJ,CAEJ,CACE,CACN;EAER,cAAc;EACd,SAAS;GAAE,MAAM,QAAQ;GAAM,SAAS,QAAQ;GAAS;EACzD,GAAI;GACJ;;;;;AC/UN,MAAM,YAAY,YAAY,WAAW;CACvC,MAAM;EACJ,cAAc,MAAM,QAAQ,KAAK;EACjC,YAAY,UACV,MAAM,iBAAiB,kBAAkB,UACrC,aAAa,MAAM,QAAQ,KAAK,SAChC;EACP;CACD,qBAAqB,EACnB,eAAe,UACb,MAAM,iBAAiB,kBAAkB,UACrC,aAAa,MAAM,QAAQ,KAAK,SAChC,IACP;CACF,EAAE;AAEH,MAAa,gBAAgB,UAAU;CACrC,MAAM,EACJ,WACA,cACA,YACA,WACA,gBACA,sBACA,iBACA,cACA,cAAc,eACZ;CACJ,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAC9C,MAAM,CAAC,qBAAqB,0BAA0B,SAAS,MAAM;CACrE,MAAM,CAAC,sBAAsB,2BAA2B,SAAS,MAAM;CACvE,MAAM,CAAC,MAAM,WAAW,SAAS,UAAU;CAC3C,MAAM,QAAQ,UAAU;CACxB,MAAM,UAAU,UAAU,MAAM;CAChC,MAAM,cAAc,OAAO,KAAK;CAEhC,MAAM,qBAAqB,aACxB,GAAG,UAAU;EACZ,MAAM,eAAe,WAAW,MAAM,MAAM;AAC5C,MAAI,cAAc;AAChB,gBAAa,cAAc,UAAU;AACrC,2BAAwB,MAAM;;IAGlC;EAAC;EAAM;EAAW;EAAa,CAChC;CAED,MAAM,aAAa,aAChB,MAAM,QAAQ,MAAM;EACnB,IAAI,QAAQ,KAAK,YAAY,aAAa,KAAK,YAAY;EAC3D,IAAI,WAAW,KAAK,YAAY;EAChC,IAAI,WAAW,KAAK,YAAY,aAAa;EAC7C,IAAI,WAAW,KAAK,YAAY,aAAa;EAC7C,IAAI,sBAAsB,KAAK,YAAY,uBAAuB;EAClE,IAAI,sBAAsB,KAAK,YAAY,sBACvC,KAAK,WAAW,sBAChB;EACJ,IAAI,uBAAuB,KAAK,YAAY,sBACxC,KAAK,YAAY,uBACjB;EACJ,IAAI,SAAS,KAAK;EAClB,IAAI,YAAY,KAAK,YAAY,sBAC7B,KAAK,YAAY,uBACjB,KAAK,YAAY,aAAa,OAAO;EACzC,IAAI,uBAAuB,KAAK,YAAY,wBAAwB;AAEpE,MAAI,KAAK,aAAa;AACpB,WAAQ,KAAK,YAAY;AACzB,cAAW,KAAK,YAAY;AAC5B,cAAW,KAAK,YAAY,MAAM;AAClC,cAAW,KAAK,YAAY,MAAM;AAClC,eAAY,KAAK,YAAY,MAAM,OAAO;;AAG5C,SACE,oCAAC;GACC,KAAK;GACG;GACD;GACG;GACA;GACA;GACW;GACA;GACC;GACtB,UAAU,KAAK;GACJ;GACX,cAAc;GACE;GAChB,gBAAgB,mBAAmB,KAAK;GACxC,sBACE,wBACA,uBACA,wBAAwB,UAAU,MAAM,qBAAqB,KAC3D,KAAK;GAEY;GACJ;GACV;GACP,eAAe,CAAC,CAAC,CAAC,KAAK,cAAc;GAC/B;GACM;GACE;GACH;GACW;KAErB,KAAK,YAAY,YAChB,CAAC,CAAC,CAAC,KAAK,cAAc,UACtB,CAAC,KAAK,4BACJ,oCAAC;GACC,MAAM;GACN,OAAO,EAAE,aAAa,SAAS,KAAK,MAAM,QAAQ,EAAE,EAAE;IACtD,EAEL,KAAK,YAAY,YAChB,CAAC,CAAC,CAAC,KAAK,cAAc,UACtB,KAAK,4BACL,mBACA,CAAC,KAAK,2BACJ,oCAAC,SAAI,WAAW,QAAQ,uBACtB,oCAAC;GACC,SAAQ;GACR,OAAO;IACL,aAAa,SAAS,KAAK,MAAM,QAAQ,EAAE;IAC3C,YAAY;IACb;KACF,cAEY,CACT,EAET,KAAK,YAAY,YAChB,KAAK,4BACL,mBACA,KAAK,2BACH,oCAAC,SAAI,WAAW,QAAQ,uBACtB,oCAAC;GACC,SAAQ;GACR,OAAO;IACL,aAAa,SAAS,KAAK,MAAM,QAAQ,EAAE;IAC3C,YAAY;IACb;KAEA,oBACC,CAAC,CAAC,KAAK,cAAc,SAAS,gBAAgB,GAC/C,UACU,CACT,EAET,MAAM,QAAQ,KAAK,aAAa,GAC7B,KAAK,aAAa,KAAK,GAAG,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC,GACzD,KACa;IAGvB;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;CAED,MAAM,sBAAsB,YAC1B,OAAO,KAAK,YAAY;EACtB,MAAM,WAAW,UAAU,KAAK;AAChC,cAAY,QAAQ;EAMpB,MAAM,mBAAmB,iBACvB,UALiB,WAAW,UAAU,qBAAqB,EAC7B,uBAC5B,CAAC,qBAAqB,GACtB,EAAE,CAKL;EACD,MAAM,oBAAoB,iBAAiB,OAAO,OAChD,QAAQ,SAAS,GAAG,CACrB;AACD,MACE,uBACA,iBAAiB,UACjB,CAAC,kBAED,yBAAwB,KAAK;MAE7B,yBAAwB,MAAM;IAGlC;EAAC;EAAqB;EAAM;EAAqB,CAClD;CAED,MAAM,yBAAyB,aAC5B,WAAS;AACR,MAAI,CAACC,OAAM,QAAO,EAAE;AACpB,SAAOA,OAAK,QAAQ,aAAa,SAAS;AACxC,OAAI,MAAM,WACR,aAAY,KAAK,KAAK,GAAG;AAE3B,OAAI,QAAQ,KAAK,cAAc,OAC7B,eAAc,YAAY,OACxB,uBAAuB,KAAK,aAAa,CAC1C;AAEH,UAAO;KACN,EAAE,CAAC;IAER,CAAC,YAAY,CACd;AAED,iBAAgB;AACd,UAAQ,UAAU;IACjB,CAAC,UAAU,CAAC;AAEf,iBAAgB;AACd,MAAI,CAAC,KAAM;AACX,MAAI,YAAY,SAAS;GACvB,IAAIC,aAAW,EAAE;AACjB,OAAI,MAAM,WACR,YAAS,KAAK,KAAK,GAAG;AAExB,gBAAWA,WAAS,OAAO,uBAAuB,KAAK,aAAa,CAAC;AACrE,eAAYA,WAAS;AACrB,eAAY,UAAU;;IAGvB;EAAC;EAAwB;EAAM;EAAY,CAAC;AAE/C,iBAAgB;AACd,MAAI,CAAC,CAAC,WAAW,MAAM,eAAe,CACpC,wBAAuB,KAAK;MAE5B,wBAAuB,MAAM;IAE9B,CAAC,MAAM,eAAe,CAAC;CAE1B,MAAM,iBACJ,uBAAuB,kBAAkB,OACrC,OAAO,eAAe,GACtB;AAEN,KAAI,CAAC,SACH,QAAO;AAGT,QACE,oCAAC;EACC,KAAK;EACL,WAAW,QAAQ;EACnB,qBACE,oCAAC;GACC,MAAK;GACL,WAAW;GACX,OAAO;IACL,OAAO,QAAQ,MAAM,QAAQ,QAAQ,MAAM,GAAI;IAC/C,OAAO,MAAM,QAAQ,IAAI;IACzB,QAAQ,MAAM,QAAQ,IAAI;IAC3B;IACD;EAEJ,UAAU,YAAY,EAAE;EACxB,cAAc;EACd,mBACE,oCAAC;GACC,MAAK;GACL,WAAW;GACX,OAAO;IACL,OAAO,QAAQ,MAAM,QAAQ,QAAQ,MAAM,GAAI;IAC/C,OAAO,MAAM,QAAQ,IAAI;IACzB,QAAQ,MAAM,QAAQ,IAAI;IAC3B;IACD;EAEJ,UAAU;IAET,QAAQ,WAAW,KAAK,CAChB"}
1
+ {"version":3,"file":"BaseTreeMenu-Dg8MW4TD.js","names":["useStyles","other","tree","expanded"],"sources":["../src/treeMenu/BaseTreeMenuItem.jsx","../src/treeMenu/BaseTreeMenu.jsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n makeStyles,\n lighten,\n Typography,\n CircularProgress,\n darken,\n useTheme,\n Tooltip\n} from '@material-ui/core';\nimport TreeItem from '@material-ui/lab/TreeItem';\nimport { getIconFromName } from '../utilities/tree/TreeUtilities';\nimport clsx from 'clsx';\nimport { UnityFluentIcon } from '../utilities/iconLibrary/UnityFluentIcon';\nimport { getUnityIconFromName } from '../utilities/iconLibrary/UnityIconLibrary';\nimport { useDrag, useDrop } from 'react-dnd';\nimport {\n NodeActionTriggerEnums,\n TreeViewModeEnums\n} from '../enums/unitySystemEnums.ts';\nimport { AggregateChip } from '../UI/utilityDisplay/AggregateChip';\nimport { StatusChip } from '../UI/dataDisplay/status/StatusChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n '&.Mui-selected > .MuiTreeItem-content': {\n backgroundColor:\n theme?.getThemeData()?.mode === 'dark'\n ? theme.palette.grey[700]\n : theme.palette.grey[300],\n borderRight: `4px solid ${theme.palette.primary.main}`\n },\n '&.Mui-selected > .MuiTreeItem-content .MuiTreeItem-label': {\n backgroundColor: 'transparent',\n paddingLeft: 0\n },\n '&.Mui-selected > .MuiTreeItem-content > .MuiCollapse-wrapperInner': {\n backgroundColor:\n theme?.getThemeData()?.mode !== 'dark' && theme.palette.grey[50]\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer': {\n display: (props) => (props.sidebarExpanded ? 'flex' : 'none')\n }\n },\n content: {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' &&\n props.conditionalIconName &&\n props.conditionalIconColor\n ? lighten(props.conditionalIconColor, 0.92)\n : ''\n },\n labelRoot: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: (props) => (props.sidebarExpanded ? 0 : theme.spacing(1.5)),\n width: '100%'\n },\n labelContainer: {\n display: (props) => (!props.sidebarExpanded ? 'none' : ''),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `calc(100% - ${theme.spacing(6.25)}px)`\n : `calc(100% - ${theme.spacing(7.75)}px)`\n },\n conditionalIconContainer: {\n display: 'inline-flex'\n },\n labelText: {\n fontSize: '0.75rem',\n fontWeight: 600,\n lineHeight: '1rem',\n letterSpacing: 0.1\n },\n captionText: {\n marginLeft: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact ? theme.spacing(1) : '',\n fontSize: '0.65rem',\n fontWeight: 400,\n lineHeight: 1,\n letterSpacing: 0.4\n },\n labelOverflow: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n group: {\n width: '100%',\n '& .MuiTreeItem-group': {\n marginLeft: 0\n },\n '& .MuiTreeItem-content': {\n paddingLeft: (props) =>\n props.sidebarExpanded ? (props.depth || 1) * theme.spacing(1) : 0,\n borderRight: (props) =>\n props.showRightBorderColor\n ? `4px solid ${theme.palette.primary.main}`\n : '',\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n '& .MuiTreeItem-content .MuiTreeItem-label': {\n paddingLeft: 0,\n width: (props) =>\n props.sidebarExpanded && `calc(100% - ${theme.spacing(2.5)}px)`\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer span': {\n display: (props) => (props.hideExpansion ? 'none' : '')\n },\n '& .MuiCollapse-wrapperInner': {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' && props.isSelectedNode\n ? theme.palette.grey[50]\n : ''\n }\n },\n iconContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 50,\n marginTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginRight: theme.spacing(1),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4),\n height: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4),\n border: (props) =>\n props.iconColor\n ? `1px solid ${darken(props.iconColor, 0.1)}`\n : `1px solid ${theme.palette.secondary.main}`,\n backgroundColor: '#ffffff'\n }\n}));\n\nexport const BaseTreeMenuItem = (props) => {\n const {\n parentId,\n nodeId,\n iconName,\n iconType,\n conditionalIconName,\n conditionalIconType,\n conditionalIconColor,\n label,\n iconColor,\n onNodeSelect,\n isSelectedNode,\n subLabel,\n sidebarExpanded,\n isLastNode,\n loading,\n node,\n onDropNode,\n treeViewMode,\n menuIndex,\n aggregateThresholdId,\n ...other\n } = props;\n const classes = useStyles(props);\n const theme = useTheme();\n\n const [{ isDragging }, dragRef] = useDrag({\n type: 'BaseTreeMenuItem',\n item: { ...node, sourceNodeMenuIndex: menuIndex },\n collect: (monitor) => ({\n isDragging: monitor.isDragging()\n })\n });\n\n const handleOnDrop = useCallback(\n (sourceNode, monitor) => {\n if (!monitor.didDrop()) {\n if (onDropNode) {\n const { sourceNodeMenuIndex, ...other } = sourceNode;\n onDropNode({ ...other }, node, sourceNodeMenuIndex, menuIndex);\n }\n }\n },\n [onDropNode, node, menuIndex]\n );\n\n const [{ canDrop, isOver }, dropRef] = useDrop(\n () => ({\n accept: ['BaseTreeMenuItem'],\n drop: (sourceNode, monitor) => {\n // condition to only handle first drop\n handleOnDrop(sourceNode, monitor);\n },\n canDrop: (sourceNode) => checkCanDrop(sourceNode),\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n canDrop: !!monitor.canDrop()\n })\n }),\n [handleOnDrop]\n );\n\n const checkCanDrop = useCallback(\n (sourceNode) => {\n if (sourceNode) {\n const onDropActions = node?.properties?.nodeActions?.filter(\n (na) => na?.triggerType === NodeActionTriggerEnums.On_Node_Drop\n );\n if (!onDropActions) {\n return false;\n }\n const nodeDragEntities = onDropActions?.map(\n (action) => action?.dragEntityName\n );\n return nodeDragEntities.includes(\n sourceNode?.properties?.catalogReturnObject\n );\n }\n },\n [node]\n );\n\n const handleOnLabelClick = useCallback(\n (e) => {\n e.preventDefault();\n onNodeSelect(e, nodeId);\n },\n [onNodeSelect, nodeId]\n );\n\n return (\n <TreeItem\n className={classes.group}\n key={nodeId}\n nodeId={nodeId}\n label={\n <div ref={dropRef}>\n <Tooltip title={sidebarExpanded ? '' : label}>\n <div\n ref={(node?.properties?.isDraggable && dragRef) || null}\n style={{ opacity: isDragging ? 0.5 : 1 }}\n >\n {loading ? (\n <CircularProgress size={12} />\n ) : (\n <div\n id={'udpRecord-BaseTreeMenuItem-'+label.replace(/\\s+/g, '')}\n udprecordid={'udpRecord-BaseTreeMenuItem-'+label.replace(/\\s+/g, '')}\n className={classes.labelRoot}\n style={{\n fontWeight: isSelectedNode ? 'bold' : ''\n }}\n >\n {iconName && (\n <div className={classes.iconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'medium'\n }\n color={iconColor}\n type={iconType}\n icon={\n iconType === 'unity'\n ? getUnityIconFromName(iconName)\n : getIconFromName(iconName)\n }\n style={{\n color: iconColor\n ? darken(iconColor, 0.1)\n : theme.palette.secondary.main\n }}\n />\n </div>\n )}\n <div className={classes.labelContainer}>\n <Typography\n variant='subtitle2'\n className={clsx(classes.labelText, classes.labelOverflow)}\n >\n {label}\n {subLabel &&\n treeViewMode === TreeViewModeEnums.Compact && (\n <Typography\n variant='caption'\n className={clsx(\n classes.captionText,\n classes.labelOverflow\n )}\n >\n {subLabel}\n </Typography>\n )}\n </Typography>\n {subLabel && treeViewMode === TreeViewModeEnums.Classic && (\n <div className={classes.labelOverflow}>\n <Typography\n variant='caption'\n className={clsx(classes.captionText)}\n >\n {subLabel}\n </Typography>\n </div>\n )}\n </div>\n {node?.properties?.itemCount !== undefined &&\n node?.properties?.itemCount !== null &&\n sidebarExpanded && (\n <StatusChip\n label={String(node.properties.itemCount)}\n useSmallChip={true}\n />\n )}\n <AggregateChip aggregateThresholdId={aggregateThresholdId} />\n {conditionalIconName && sidebarExpanded && (\n <div className={classes.conditionalIconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'medium'\n }\n color={conditionalIconColor}\n type={conditionalIconType}\n icon={\n conditionalIconType === 'unity'\n ? getUnityIconFromName(conditionalIconName)\n : getIconFromName(conditionalIconName)\n }\n style={{\n color: conditionalIconColor\n }}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </Tooltip>\n </div>\n }\n onLabelClick={handleOnLabelClick}\n classes={{ root: classes.root, content: classes.content }}\n {...other}\n />\n );\n};\n","import React, { useCallback, useState, useEffect, useRef } from 'react';\nimport {\n makeStyles,\n useTheme,\n lighten,\n CircularProgress,\n Typography\n} from '@material-ui/core';\nimport TreeView from '@material-ui/lab/TreeView';\nimport { BaseTreeMenuItem } from './BaseTreeMenuItem';\nimport {\n searchTree,\n findAllParentIds,\n getNodeIdForRightBorder\n} from '../utilities/tree/TreeUtilities';\nimport { FluentIcon } from '../utilities/iconLibrary/FluentIcon';\nimport { CaretUpSolid8Icon, CaretDownSolid8Icon } from '@fluentui/react-icons';\nimport { cloneDeep } from 'lodash';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums.ts';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginBottom: theme.spacing(1.75),\n borderTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n noChildrenContainer: {\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n }\n}));\n\nexport const BaseTreeMenu = (props) => {\n const {\n menuItems,\n onSelectNode,\n onDropNode,\n menuIndex,\n selectedNodeId,\n selectedNodeParentId,\n sidebarExpanded,\n treeViewMode,\n childrenKey = 'children'\n } = props;\n const [expanded, setExpanded] = useState(null);\n const [isCurrentActiveTree, setIsCurrentActiveTree] = useState(false);\n const [selectedNodeIsHidden, setSelectedNodeIsHidden] = useState(false);\n const [tree, setTree] = useState(menuItems);\n const theme = useTheme();\n const classes = useStyles(props);\n const firstRender = useRef(true);\n\n const handleSelectedNode = useCallback(\n (e, value) => {\n const selectedNode = searchTree(tree, value);\n if (onSelectNode) {\n onSelectNode(selectedNode, menuIndex);\n setSelectedNodeIsHidden(false);\n }\n },\n [tree, menuIndex, onSelectNode]\n );\n\n const renderTree = useCallback(\n (node, depth = 1) => {\n let label = node.properties?.nodeLabel || node.properties?.name;\n let subLabel = node.properties?.nodeSubLabel;\n let iconName = node.properties?.defaultIcon?.name;\n let iconType = node.properties?.defaultIcon?.type;\n let conditionalIconName = node.properties?.conditionalIconName || '';\n let conditionalIconType = node.properties?.conditionalIconName\n ? node.properties.conditionalIconType\n : '';\n let conditionalIconColor = node.properties?.conditionalIconName\n ? node.properties?.conditionalIconColor\n : '';\n let nodeId = node.id;\n let iconColor = node.properties?.conditionalIconName\n ? node.properties?.conditionalIconColor\n : node.properties?.defaultIcon?.color?.hex;\n let aggregateThresholdId = node.properties?.aggregateThresholdId || '';\n\n if (node.isGroupNode) {\n label = node.properties?.label;\n subLabel = node.properties?.subLabel;\n iconName = node.properties?.icon?.name;\n iconType = node.properties?.icon?.type;\n iconColor = node.properties?.icon?.color?.hex;\n }\n\n return (\n <BaseTreeMenuItem\n key={nodeId}\n nodeId={nodeId}\n label={label}\n subLabel={subLabel}\n iconName={iconName}\n iconType={iconType}\n conditionalIconName={conditionalIconName}\n conditionalIconType={conditionalIconType}\n conditionalIconColor={conditionalIconColor}\n parentId={node.parentId}\n iconColor={iconColor}\n onNodeSelect={handleSelectedNode}\n selectedNodeId={selectedNodeId}\n isSelectedNode={selectedNodeId === node.id}\n showRightBorderColor={\n selectedNodeIsHidden &&\n isCurrentActiveTree &&\n getNodeIdForRightBorder(expanded, tree, selectedNodeParentId) ===\n node.id\n }\n isCurrentActiveTree={isCurrentActiveTree}\n sidebarExpanded={sidebarExpanded}\n depth={depth}\n hideExpansion={!!!node[childrenKey]?.length}\n node={node}\n onDropNode={onDropNode}\n treeViewMode={treeViewMode}\n menuIndex={menuIndex}\n aggregateThresholdId={aggregateThresholdId}\n >\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n !node.completedLoadingChildren && (\n <CircularProgress\n size={12}\n style={{ marginLeft: (depth || 1) * theme.spacing(1) }}\n />\n )}\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n !node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n No Children\n </Typography>\n </div>\n )}\n {node.properties?.lazyLoad &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n {`Error Retrieving ${\n !!node[childrenKey]?.length ? `Additional ` : ''\n }Children`}\n </Typography>\n </div>\n )}\n {Array.isArray(node[childrenKey])\n ? node[childrenKey].map((n, i) => renderTree(n, depth + 1))\n : null}\n </BaseTreeMenuItem>\n );\n },\n [\n handleSelectedNode,\n selectedNodeId,\n selectedNodeIsHidden,\n isCurrentActiveTree,\n sidebarExpanded,\n expanded,\n tree,\n selectedNodeParentId,\n theme,\n classes,\n onDropNode,\n treeViewMode,\n menuIndex,\n childrenKey\n ]\n );\n\n const handleNodeExpansion = useCallback(\n async (evt, nodeIds) => {\n const treeCopy = cloneDeep(tree);\n setExpanded(nodeIds);\n\n const parentNode = searchTree(treeCopy, selectedNodeParentId);\n const initialAllParentNodeIds = selectedNodeParentId\n ? [selectedNodeParentId]\n : [];\n const allParentNodeIds = findAllParentIds(\n treeCopy,\n parentNode,\n initialAllParentNodeIds\n );\n const selectedNodeShown = allParentNodeIds.every((id) =>\n nodeIds.includes(id)\n );\n if (\n isCurrentActiveTree &&\n allParentNodeIds.length &&\n !selectedNodeShown\n ) {\n setSelectedNodeIsHidden(true);\n } else {\n setSelectedNodeIsHidden(false);\n }\n },\n [isCurrentActiveTree, tree, selectedNodeParentId]\n );\n\n const getExpandedRecursively = useCallback(\n (tree) => {\n if (!tree) return [];\n return tree.reduce((expandedIds, item) => {\n if (item?.isExpanded) {\n expandedIds.push(item.id);\n }\n if (item && item[childrenKey]?.length) {\n expandedIds = expandedIds.concat(\n getExpandedRecursively(item[childrenKey])\n );\n }\n return expandedIds;\n }, []);\n },\n [childrenKey]\n );\n\n useEffect(() => {\n setTree(menuItems);\n }, [menuItems]);\n\n useEffect(() => {\n if (!tree) return;\n if (firstRender.current) {\n let expanded = [];\n if (tree?.isExpanded) {\n expanded.push(tree.id);\n }\n expanded = expanded.concat(getExpandedRecursively(tree[childrenKey]));\n setExpanded(expanded);\n firstRender.current = false;\n }\n // Do not reset expanded on subsequent updates\n }, [getExpandedRecursively, tree, childrenKey]);\n\n useEffect(() => {\n if (!!searchTree(tree, selectedNodeId)) {\n setIsCurrentActiveTree(true);\n } else {\n setIsCurrentActiveTree(false);\n }\n }, [tree, selectedNodeId]);\n\n const treeSelectedId =\n isCurrentActiveTree && selectedNodeId != null\n ? String(selectedNodeId)\n : null;\n\n if (!expanded) {\n return null;\n }\n\n return (\n <TreeView\n key={tree}\n className={classes.root}\n defaultCollapseIcon={\n <FluentIcon\n size='small'\n component={CaretUpSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n expanded={expanded || []}\n onNodeToggle={handleNodeExpansion}\n defaultExpandIcon={\n <FluentIcon\n size='small'\n component={CaretDownSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n selected={treeSelectedId}\n >\n {tree && renderTree(tree)}\n </TreeView>\n );\n};\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { t as AmbientCard } from "./AmbientCard-CLW4bPCu.js";
4
4
  import { t as fluentLibraryIcons } from "./LibraryData-D8Uai7Yd.js";
5
5
  import { t as useReadMetaData } from "./useReadMetaData-CiWx4MJr.js";
6
6
  import { t as FluentMenuListItem } from "./FluentMenuListItem-CvEx0IXI.js";
7
- import { t as AmbientGridTemplate } from "./AmbientGridTemplate-D0GSZj4a.js";
7
+ import { t as AmbientGridTemplate } from "./AmbientGridTemplate-D1TMpzxb.js";
8
8
  import { t as TableColumnDefs } from "./TableColumnDefs-BpaOx60h.js";
9
9
  import { t as ActionsRenderer } from "./ActionsRenderer-DbrPKZ1o.js";
10
10
  import { t as BioCard } from "./BioCard-M1ZP7x1X.js";
@@ -510,4 +510,4 @@ const BioCardWrapper = (props) => {
510
510
 
511
511
  //#endregion
512
512
  export { DonutWrapper as a, BarChartWrapper as c, LineGraphWrapper as i, DisplayCardWrapper as l, AgGridSimpleWrapper as n, barChartWrapperProps as o, data as r, HistogramWrapper as s, BioCardWrapper as t, PrimaryActionHeaderWrapper as u };
513
- //# sourceMappingURL=BioCardWrapper-BiRI3EDR.js.map
513
+ //# sourceMappingURL=BioCardWrapper-B2bT-4zw.js.map