udp-react-enterprise-component-library 25.18.1-beta.38 → 25.18.1-beta.39

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 (559) hide show
  1. package/dist/{AadCallback-D_pbTwUX.js → AadCallback-Cl_fElx_.js} +1 -1
  2. package/dist/{AadCallback-D_pbTwUX.js.map → AadCallback-Cl_fElx_.js.map} +1 -1
  3. package/dist/{ActionsRenderer-CDWZwVG2.js → ActionsRenderer-Cu0RVs9v.js} +4 -4
  4. package/dist/{ActionsRenderer-CDWZwVG2.js.map → ActionsRenderer-Cu0RVs9v.js.map} +1 -1
  5. package/dist/{AmChart-Dr9_Fw8l.js → AmChart-BM2HoPa4.js} +2 -2
  6. package/dist/{AmChart-Dr9_Fw8l.js.map → AmChart-BM2HoPa4.js.map} +1 -1
  7. package/dist/{AmbientAlert-DBGoaurU.js → AmbientAlert-DcYkGCUm.js} +1 -1
  8. package/dist/{AmbientAlert-DBGoaurU.js.map → AmbientAlert-DcYkGCUm.js.map} +1 -1
  9. package/dist/{AmbientAutoComplete-CTVgb2-c.js → AmbientAutoComplete-TYJ_JlO5.js} +1 -1
  10. package/dist/{AmbientAutoComplete-CTVgb2-c.js.map → AmbientAutoComplete-TYJ_JlO5.js.map} +1 -1
  11. package/dist/{AmbientSingleDateSelector-T1YVjE2S.js → AmbientSingleDateSelector-BQY1Nals.js} +1 -1
  12. package/dist/{AmbientSingleDateSelector-T1YVjE2S.js.map → AmbientSingleDateSelector-BQY1Nals.js.map} +1 -1
  13. package/dist/{AmbientStepper-CNA0o_tZ.js → AmbientStepper-BkhoDtpx.js} +1 -1
  14. package/dist/{AmbientStepper-CNA0o_tZ.js.map → AmbientStepper-BkhoDtpx.js.map} +1 -1
  15. package/dist/{AmbientToast-BgMFpLdS.js → AmbientToast-iliGNjGA.js} +1 -1
  16. package/dist/{AmbientToast-BgMFpLdS.js.map → AmbientToast-iliGNjGA.js.map} +1 -1
  17. package/dist/{AmbientToggleButtonGroup-BZiASZSK.js → AmbientToggleButtonGroup-Bi9yW5gC.js} +1 -1
  18. package/dist/{AmbientToggleButtonGroup-BZiASZSK.js.map → AmbientToggleButtonGroup-Bi9yW5gC.js.map} +1 -1
  19. package/dist/{AmbientVisualizationCard-CZ0zqPE5.js → AmbientVisualizationCard-Dig-Mh_G.js} +5 -5
  20. package/dist/{AmbientVisualizationCard-CZ0zqPE5.js.map → AmbientVisualizationCard-Dig-Mh_G.js.map} +1 -1
  21. package/dist/{AmbientVisualizer-BpM6axMB.js → AmbientVisualizer-B1Xwwe0J.js} +2 -2
  22. package/dist/{AmbientVisualizer-BpM6axMB.js.map → AmbientVisualizer-B1Xwwe0J.js.map} +1 -1
  23. package/dist/{AvatarAlphabet-C-nQUpJT.js → AvatarAlphabet-D5klbFfJ.js} +1 -1
  24. package/dist/{AvatarAlphabet-C-nQUpJT.js.map → AvatarAlphabet-D5klbFfJ.js.map} +1 -1
  25. package/dist/{BarChartWidget-CQLrWqGJ.js → BarChartWidget-Dwav8_8e.js} +4 -4
  26. package/dist/{BarChartWidget-CQLrWqGJ.js.map → BarChartWidget-Dwav8_8e.js.map} +1 -1
  27. package/dist/{BaseTreeMenu-CbenTnfO.js → BaseTreeMenu-koW5kjhb.js} +1 -1
  28. package/dist/{BaseTreeMenu-CbenTnfO.js.map → BaseTreeMenu-koW5kjhb.js.map} +1 -1
  29. package/dist/{BubbleWidget-HtGWbYLM.js → BubbleWidget-CsIheJTW.js} +4 -4
  30. package/dist/{BubbleWidget-HtGWbYLM.js.map → BubbleWidget-CsIheJTW.js.map} +1 -1
  31. package/dist/{CardList-B_F1Qgqh.js → CardList-BPNGTxsh.js} +1 -1
  32. package/dist/{CardList-B_F1Qgqh.js.map → CardList-BPNGTxsh.js.map} +1 -1
  33. package/dist/{CatalogUtilities-CLnc3NZQ.js → CatalogUtilities-CAPPpjBH.js} +1 -1
  34. package/dist/{CatalogUtilities-CLnc3NZQ.js.map → CatalogUtilities-CAPPpjBH.js.map} +1 -1
  35. package/dist/{ChartSummaryToggle-GT_k415-.js → ChartSummaryToggle-BxJXaJO8.js} +1 -1
  36. package/dist/{ChartSummaryToggle-GT_k415-.js.map → ChartSummaryToggle-BxJXaJO8.js.map} +1 -1
  37. package/dist/{ChatUDP-u5MgLry3.js → ChatUDP-D8qb3QN5.js} +1 -1
  38. package/dist/{ChatUDP-u5MgLry3.js.map → ChatUDP-D8qb3QN5.js.map} +1 -1
  39. package/dist/{ChipAlphabet-DHYk3H34.js → ChipAlphabet-DCU1DsB-.js} +2 -2
  40. package/dist/{ChipAlphabet-DHYk3H34.js.map → ChipAlphabet-DCU1DsB-.js.map} +1 -1
  41. package/dist/{CircleGaugeWidget-Dm1GmcWV.js → CircleGaugeWidget-Dbn-Hfs9.js} +1 -1
  42. package/dist/{CircleGaugeWidget-Dm1GmcWV.js.map → CircleGaugeWidget-Dbn-Hfs9.js.map} +1 -1
  43. package/dist/{ClientSideUdpGrid-D6DTjmoy.js → ClientSideUdpGrid-D5fGumO-.js} +1 -1
  44. package/dist/{ClientSideUdpGrid-D6DTjmoy.js.map → ClientSideUdpGrid-D5fGumO-.js.map} +1 -1
  45. package/dist/{CompactDataList-BddyC_II.js → CompactDataList-j2xAs8-I.js} +1 -1
  46. package/dist/{CompactDataList-BddyC_II.js.map → CompactDataList-j2xAs8-I.js.map} +1 -1
  47. package/dist/{CompactDataListItem-DLjWUnzG.js → CompactDataListItem-BB0gf0JD.js} +1 -1
  48. package/dist/{CompactDataListItem-DLjWUnzG.js.map → CompactDataListItem-BB0gf0JD.js.map} +1 -1
  49. package/dist/{ContentContainer-7o3cvpB3.js → ContentContainer-DmKz5kvq.js} +1 -1
  50. package/dist/{ContentContainer-7o3cvpB3.js.map → ContentContainer-DmKz5kvq.js.map} +1 -1
  51. package/dist/{ConvertISODate-D9eAZ_8q.js → ConvertISODate-C640-_Cm.js} +1 -1
  52. package/dist/{ConvertISODate-D9eAZ_8q.js.map → ConvertISODate-C640-_Cm.js.map} +1 -1
  53. package/dist/{CrudBrowserContainer-9L9qohOP.js → CrudBrowserContainer-De2WRDIH.js} +2 -2
  54. package/dist/{CrudBrowserContainer-9L9qohOP.js.map → CrudBrowserContainer-De2WRDIH.js.map} +1 -1
  55. package/dist/{CrudTableSidePanel-dEAXYWDm.js → CrudTableSidePanel-DnxJx49i.js} +1 -1
  56. package/dist/{CrudTableSidePanel-dEAXYWDm.js.map → CrudTableSidePanel-DnxJx49i.js.map} +1 -1
  57. package/dist/{DataBrowserContainer-Dfr1kGIW.js → DataBrowserContainer-DPB12XVR.js} +2 -2
  58. package/dist/{DataBrowserContainer-Dfr1kGIW.js.map → DataBrowserContainer-DPB12XVR.js.map} +1 -1
  59. package/dist/{DateTrendWidget-BX54VZoa.js → DateTrendWidget-DzqqUeZv.js} +3 -3
  60. package/dist/{DateTrendWidget-BX54VZoa.js.map → DateTrendWidget-DzqqUeZv.js.map} +1 -1
  61. package/dist/{DensePlotWidget-D7Rhztmv.js → DensePlotWidget-CsRmVbqu.js} +2 -2
  62. package/dist/{DensePlotWidget-D7Rhztmv.js.map → DensePlotWidget-CsRmVbqu.js.map} +1 -1
  63. package/dist/{Directory-CFTCLxWZ.js → Directory-CoEKdRkU.js} +1 -1
  64. package/dist/{Directory-CFTCLxWZ.js.map → Directory-CoEKdRkU.js.map} +1 -1
  65. package/dist/{DonutChartWidget-pOQ_gwzJ.js → DonutChartWidget-vOeXhdOe.js} +5 -5
  66. package/dist/{DonutChartWidget-pOQ_gwzJ.js.map → DonutChartWidget-vOeXhdOe.js.map} +1 -1
  67. package/dist/{DragDropFileUpload-t3cnq495.js → DragDropFileUpload-CVnUu-6f.js} +2 -2
  68. package/dist/{DragDropFileUpload-t3cnq495.js.map → DragDropFileUpload-CVnUu-6f.js.map} +1 -1
  69. package/dist/{EmptyStateDisplay-ByAb3Cp-.js → EmptyStateDisplay-YOwCw38_.js} +1 -1
  70. package/dist/{EmptyStateDisplay-ByAb3Cp-.js.map → EmptyStateDisplay-YOwCw38_.js.map} +1 -1
  71. package/dist/{EntityHeader-C67RYWfk.js → EntityHeader-CuiVOsA7.js} +2 -2
  72. package/dist/{EntityHeader-C67RYWfk.js.map → EntityHeader-CuiVOsA7.js.map} +1 -1
  73. package/dist/{ExportSidesheet-CuvPx8QK.js → ExportSidesheet-DWkoiwxC.js} +4 -4
  74. package/dist/{ExportSidesheet-CuvPx8QK.js.map → ExportSidesheet-DWkoiwxC.js.map} +1 -1
  75. package/dist/{ExtenderToggle-Pdpzu9Ep.js → ExtenderToggle-DAaajb90.js} +1 -1
  76. package/dist/{ExtenderToggle-Pdpzu9Ep.js.map → ExtenderToggle-DAaajb90.js.map} +1 -1
  77. package/dist/{FieldArrayCard-BpvC5_RA.js → FieldArrayCard-CgM6q87c.js} +3 -3
  78. package/dist/{FieldArrayCard-BpvC5_RA.js.map → FieldArrayCard-CgM6q87c.js.map} +1 -1
  79. package/dist/{FileUpload-B7BCBTk-.js → FileUpload-t3PZx_yE.js} +1 -1
  80. package/dist/{FileUpload-B7BCBTk-.js.map → FileUpload-t3PZx_yE.js.map} +1 -1
  81. package/dist/{FluentActivity-BvFeqabs.js → FluentActivity-CQQeL7Qe.js} +2 -2
  82. package/dist/{FluentActivity-BvFeqabs.js.map → FluentActivity-CQQeL7Qe.js.map} +1 -1
  83. package/dist/{FluentBody-DYCkAQLJ.js → FluentBody-CBqwLzTG.js} +1 -1
  84. package/dist/{FluentBody-DYCkAQLJ.js.map → FluentBody-CBqwLzTG.js.map} +1 -1
  85. package/dist/{FluentCardHeader-BdMB2qzK.js → FluentCardHeader-CRJaqkV3.js} +1 -1
  86. package/dist/{FluentCardHeader-BdMB2qzK.js.map → FluentCardHeader-CRJaqkV3.js.map} +1 -1
  87. package/dist/{FluentCell-DAiFP70_.js → FluentCell-C1d53Ct2.js} +1 -1
  88. package/dist/{FluentCell-DAiFP70_.js.map → FluentCell-C1d53Ct2.js.map} +1 -1
  89. package/dist/{FluentDataTable-DSJUFEcj.js → FluentDataTable-C1rFIP0M.js} +5 -5
  90. package/dist/{FluentDataTable-DSJUFEcj.js.map → FluentDataTable-C1rFIP0M.js.map} +1 -1
  91. package/dist/{FluentDisplayNumbers-B19-ZDmQ.js → FluentDisplayNumbers-C-zCWHot.js} +1 -1
  92. package/dist/{FluentDisplayNumbers-B19-ZDmQ.js.map → FluentDisplayNumbers-C-zCWHot.js.map} +1 -1
  93. package/dist/{FluentHead-CSmPbpND.js → FluentHead-C1bs_iJK.js} +1 -1
  94. package/dist/{FluentHead-CSmPbpND.js.map → FluentHead-C1bs_iJK.js.map} +1 -1
  95. package/dist/{FluentIconKey-BrmI7bK7.js → FluentIconKey-BWCFV9Qs.js} +1 -1
  96. package/dist/{FluentIconKey-BrmI7bK7.js.map → FluentIconKey-BWCFV9Qs.js.map} +1 -1
  97. package/dist/{FluentLink-DP2eDAH2.js → FluentLink-D-gKioCQ.js} +1 -1
  98. package/dist/{FluentLink-DP2eDAH2.js.map → FluentLink-D-gKioCQ.js.map} +1 -1
  99. package/dist/{FluentListItem-C1jkO1cj.js → FluentListItem-_Nq3fhEY.js} +1 -1
  100. package/dist/{FluentListItem-C1jkO1cj.js.map → FluentListItem-_Nq3fhEY.js.map} +1 -1
  101. package/dist/{FluentRadioGroup-VDeXDwBv.js → FluentRadioGroup-Cfldr9dO.js} +1 -1
  102. package/dist/{FluentRadioGroup-VDeXDwBv.js.map → FluentRadioGroup-Cfldr9dO.js.map} +1 -1
  103. package/dist/{FluentRow-CKtQr_ut.js → FluentRow-C_YJYbQ5.js} +1 -1
  104. package/dist/{FluentRow-CKtQr_ut.js.map → FluentRow-C_YJYbQ5.js.map} +1 -1
  105. package/dist/{FluentSecondaryStatNumber-DM9Vu0hV.js → FluentSecondaryStatNumber-CDTlsa6u.js} +2 -2
  106. package/dist/{FluentSecondaryStatNumber-DM9Vu0hV.js.map → FluentSecondaryStatNumber-CDTlsa6u.js.map} +1 -1
  107. package/dist/{FluentSelectMenu-yQMFZWEg.js → FluentSelectMenu-BEREJbe-.js} +1 -1
  108. package/dist/{FluentSelectMenu-yQMFZWEg.js.map → FluentSelectMenu-BEREJbe-.js.map} +1 -1
  109. package/dist/{FluentSimpleSelect-DxxbQV37.js → FluentSimpleSelect-Djff-up8.js} +2 -2
  110. package/dist/{FluentSimpleSelect-DxxbQV37.js.map → FluentSimpleSelect-Djff-up8.js.map} +1 -1
  111. package/dist/{FluentStatNumber-D-5-RvKv.js → FluentStatNumber-BYwIRVrE.js} +2 -2
  112. package/dist/{FluentStatNumber-D-5-RvKv.js.map → FluentStatNumber-BYwIRVrE.js.map} +1 -1
  113. package/dist/{FluentStatsSnippet-B8EN8poL.js → FluentStatsSnippet-BN9VkqNq.js} +1 -1
  114. package/dist/{FluentStatsSnippet-B8EN8poL.js.map → FluentStatsSnippet-BN9VkqNq.js.map} +1 -1
  115. package/dist/{FluentTabPanel-BzgD6hTJ.js → FluentTabPanel-DZPtDTkV.js} +1 -1
  116. package/dist/{FluentTabPanel-BzgD6hTJ.js.map → FluentTabPanel-DZPtDTkV.js.map} +1 -1
  117. package/dist/{FluentTimePicker-BgCEB8I2.js → FluentTimePicker-LUfZzJJZ.js} +1 -1
  118. package/dist/{FluentTimePicker-BgCEB8I2.js.map → FluentTimePicker-LUfZzJJZ.js.map} +1 -1
  119. package/dist/{FluentTimeline-BEPJHsgi.js → FluentTimeline-D8sfgLj1.js} +1 -1
  120. package/dist/{FluentTimeline-BEPJHsgi.js.map → FluentTimeline-D8sfgLj1.js.map} +1 -1
  121. package/dist/{GaugeWidget-DUyeu_8B.js → GaugeWidget-GvHtWlDn.js} +1 -1
  122. package/dist/{GaugeWidget-DUyeu_8B.js.map → GaugeWidget-GvHtWlDn.js.map} +1 -1
  123. package/dist/{GraphCard-C2PVx4bq.js → GraphCard-Dv4a99wo.js} +2 -2
  124. package/dist/{GraphCard-C2PVx4bq.js.map → GraphCard-Dv4a99wo.js.map} +1 -1
  125. package/dist/{HeaderExpander-Buo2O0Ub.js → HeaderExpander-Coexy8dm.js} +2 -2
  126. package/dist/{HeaderExpander-Buo2O0Ub.js.map → HeaderExpander-Coexy8dm.js.map} +1 -1
  127. package/dist/{IconKey-CbK8_rol.js → IconKey-D7fZ_U4O.js} +1 -1
  128. package/dist/{IconKey-CbK8_rol.js.map → IconKey-D7fZ_U4O.js.map} +1 -1
  129. package/dist/{IconLibrary-osCsP8i1.js → IconLibrary-BcnAXrDy.js} +2 -2
  130. package/dist/{IconLibrary-osCsP8i1.js.map → IconLibrary-BcnAXrDy.js.map} +1 -1
  131. package/dist/{ImportDataFromFileMapping-DCTHNSBR.js → ImportDataFromFileMapping-DR5rjwE8.js} +5 -5
  132. package/dist/{ImportDataFromFileMapping-DCTHNSBR.js.map → ImportDataFromFileMapping-DR5rjwE8.js.map} +1 -1
  133. package/dist/{Inquiry-BQSrQkZK.js → Inquiry-CeZgX9ls.js} +2 -2
  134. package/dist/{Inquiry-BQSrQkZK.js.map → Inquiry-CeZgX9ls.js.map} +1 -1
  135. package/dist/Inquiry-Cs1kj7m_.js +3 -0
  136. package/dist/{LineAndSparklinesWidget-KJQZUm2u.js → LineAndSparklinesWidget-B7U_tk1Y.js} +4 -4
  137. package/dist/{LineAndSparklinesWidget-KJQZUm2u.js.map → LineAndSparklinesWidget-B7U_tk1Y.js.map} +1 -1
  138. package/dist/{LineGraphWidget-BSLzZxDs.js → LineGraphWidget-vAqCb_aI.js} +4 -4
  139. package/dist/{LineGraphWidget-BSLzZxDs.js.map → LineGraphWidget-vAqCb_aI.js.map} +1 -1
  140. package/dist/{MapUtilities-C5C6tq5t.js → MapUtilities-BgKuNV8y.js} +1 -1
  141. package/dist/{MapUtilities-C5C6tq5t.js.map → MapUtilities-BgKuNV8y.js.map} +1 -1
  142. package/dist/{MenuPage-CbawHkC-.js → MenuPage-CkV002Ni.js} +2 -2
  143. package/dist/{MenuPage-CbawHkC-.js.map → MenuPage-CkV002Ni.js.map} +1 -1
  144. package/dist/MenuPage-IThq2ihD.js +3 -0
  145. package/dist/{MyExportsPage-CNDjm1lL.js → MyExportsPage-DAYh16lE.js} +5 -5
  146. package/dist/{MyExportsPage-CNDjm1lL.js.map → MyExportsPage-DAYh16lE.js.map} +1 -1
  147. package/dist/MyExportsPage-DMLtTRuJ.js +3 -0
  148. package/dist/{NestedGrid-D69FTmHi.js → NestedGrid-BPb_PuxN.js} +1 -1
  149. package/dist/{NestedGrid-D69FTmHi.js.map → NestedGrid-BPb_PuxN.js.map} +1 -1
  150. package/dist/{NewsCard-Y-exMCuK.js → NewsCard-C3y9a_OJ.js} +1 -1
  151. package/dist/{NewsCard-Y-exMCuK.js.map → NewsCard-C3y9a_OJ.js.map} +1 -1
  152. package/dist/{Notes-i8S_gdl2.js → Notes-UkwV2z4D.js} +3 -3
  153. package/dist/{Notes-i8S_gdl2.js.map → Notes-UkwV2z4D.js.map} +1 -1
  154. package/dist/{OutlookCallback-BRx9KyYR.js → OutlookCallback-ClSfPtyN.js} +1 -1
  155. package/dist/{OutlookCallback-BRx9KyYR.js.map → OutlookCallback-ClSfPtyN.js.map} +1 -1
  156. package/dist/{PDFViewer-CN-tiQCf.js → PDFViewer-B4nJKbIy.js} +1 -1
  157. package/dist/{PDFViewer-CN-tiQCf.js.map → PDFViewer-B4nJKbIy.js.map} +1 -1
  158. package/dist/{PageNotFoundRoute-C5KuybFd.js → PageNotFoundRoute-BfkErQJB.js} +1 -1
  159. package/dist/{PageNotFoundRoute-DsTWiNGd.js → PageNotFoundRoute-dmLyzuH3.js} +1 -1
  160. package/dist/{PageNotFoundRoute-DsTWiNGd.js.map → PageNotFoundRoute-dmLyzuH3.js.map} +1 -1
  161. package/dist/{PaymentForm-Bg_iDG0T.js → PaymentForm-jJcVd3Du.js} +3 -3
  162. package/dist/{PaymentForm-Bg_iDG0T.js.map → PaymentForm-jJcVd3Du.js.map} +1 -1
  163. package/dist/{ProgressBarWidget-DDM-i99d.js → ProgressBarWidget-Bo8LoOYA.js} +4 -4
  164. package/dist/{ProgressBarWidget-DDM-i99d.js.map → ProgressBarWidget-Bo8LoOYA.js.map} +1 -1
  165. package/dist/{RecentlyLoadedNodesWidget-CAgJrMge.js → RecentlyLoadedNodesWidget-D0lhioMn.js} +2 -2
  166. package/dist/{RecentlyLoadedNodesWidget-CAgJrMge.js.map → RecentlyLoadedNodesWidget-D0lhioMn.js.map} +1 -1
  167. package/dist/{RejectIcon-BxDdz-WJ.js → RejectIcon-lx34XeEL.js} +1 -1
  168. package/dist/{RejectIcon-BxDdz-WJ.js.map → RejectIcon-lx34XeEL.js.map} +1 -1
  169. package/dist/{RemindersCard-D1aR379a.js → RemindersCard-rF51zmWF.js} +1 -1
  170. package/dist/{RemindersCard-D1aR379a.js.map → RemindersCard-rF51zmWF.js.map} +1 -1
  171. package/dist/{RemindersWidget-DbH87nye.js → RemindersWidget-BcLn4sdk.js} +3 -3
  172. package/dist/{RemindersWidget-DbH87nye.js.map → RemindersWidget-BcLn4sdk.js.map} +1 -1
  173. package/dist/Reports-CdrHfp-3.js +3 -0
  174. package/dist/{Reports-g3z_rm64.js → Reports-hg8ReWDw.js} +1 -1
  175. package/dist/{Reports-g3z_rm64.js.map → Reports-hg8ReWDw.js.map} +1 -1
  176. package/dist/{SearchMethodUdpGrid-CPdocri6.js → SearchMethodUdpGrid-CWYZUOx-.js} +1 -1
  177. package/dist/{SearchMethodUdpGrid-CPdocri6.js.map → SearchMethodUdpGrid-CWYZUOx-.js.map} +1 -1
  178. package/dist/{Shell-BiFCsIjt.js → Shell-CQHh6Tav.js} +3 -3
  179. package/dist/{Shell-BiFCsIjt.js.map → Shell-CQHh6Tav.js.map} +1 -1
  180. package/dist/{SimpleTable-B2J8Ef1l.js → SimpleTable-sr5iDm2x.js} +1 -1
  181. package/dist/{SimpleTable-B2J8Ef1l.js.map → SimpleTable-sr5iDm2x.js.map} +1 -1
  182. package/dist/{SiteHeader-orcFarUw.js → SiteHeader-BUf27RRC.js} +5 -5
  183. package/dist/{SiteHeader-orcFarUw.js.map → SiteHeader-BUf27RRC.js.map} +1 -1
  184. package/dist/{SparklineWidget-B0xWXElD.js → SparklineWidget-BbkOUjcS.js} +4 -4
  185. package/dist/{SparklineWidget-B0xWXElD.js.map → SparklineWidget-BbkOUjcS.js.map} +1 -1
  186. package/dist/{SparsePlotWidget-DvGzNvh2.js → SparsePlotWidget-Ct-6iTAs.js} +3 -3
  187. package/dist/{SparsePlotWidget-DvGzNvh2.js.map → SparsePlotWidget-Ct-6iTAs.js.map} +1 -1
  188. package/dist/{Statistic-CC2PiehO.js → Statistic-CllW32VF.js} +4 -4
  189. package/dist/{Statistic-CC2PiehO.js.map → Statistic-CllW32VF.js.map} +1 -1
  190. package/dist/{StatusCellRenderer-TWInI4nu.js → StatusCellRenderer-CVOARrth.js} +1 -1
  191. package/dist/{StatusCellRenderer-TWInI4nu.js.map → StatusCellRenderer-CVOARrth.js.map} +1 -1
  192. package/dist/{SupportCaseSideSheet-B7VoXkhG.js → SupportCaseSideSheet-BNec-nDN.js} +2 -2
  193. package/dist/{SupportCaseSideSheet-B7VoXkhG.js.map → SupportCaseSideSheet-BNec-nDN.js.map} +1 -1
  194. package/dist/{SupportCaseSideSheet-CDUYESxz.js → SupportCaseSideSheet-DuvvXDWF.js} +1 -1
  195. package/dist/{TicketCard-D-FtADsb.js → TicketCard-IqCCKSc0.js} +1 -1
  196. package/dist/{TicketCard-D-FtADsb.js.map → TicketCard-IqCCKSc0.js.map} +1 -1
  197. package/dist/{TimelineCalendar-BQNo8eZ7.js → TimelineCalendar-D7T32gIH.js} +1 -1
  198. package/dist/{TimelineCalendar-BQNo8eZ7.js.map → TimelineCalendar-D7T32gIH.js.map} +1 -1
  199. package/dist/{TokenGroupItem-DKbm__Kc.js → TokenGroupItem-BK0dx4cD.js} +1 -1
  200. package/dist/{TokenGroupItem-DKbm__Kc.js.map → TokenGroupItem-BK0dx4cD.js.map} +1 -1
  201. package/dist/{TrimForAvatar--5e0kvPP.js → TrimForAvatar-BmM2bU6E.js} +1 -1
  202. package/dist/{TrimForAvatar--5e0kvPP.js.map → TrimForAvatar-BmM2bU6E.js.map} +1 -1
  203. package/dist/UI/accordion/index.js +1 -1
  204. package/dist/UI/advancedSearchBuilder/index.js +1 -1
  205. package/dist/UI/charts/amcharts/index.js +1 -1
  206. package/dist/UI/charts/index.js +1 -1
  207. package/dist/UI/components/dataDisplay/index.js +1 -1
  208. package/dist/UI/components/index.js +1 -1
  209. package/dist/UI/dataDisplay/FluentActivity/index.js +1 -1
  210. package/dist/UI/dataDisplay/FluentDataTable/FluentBody/index.js +1 -1
  211. package/dist/UI/dataDisplay/FluentDataTable/FluentCell/index.js +1 -1
  212. package/dist/UI/dataDisplay/FluentDataTable/FluentHead/index.js +1 -1
  213. package/dist/UI/dataDisplay/FluentDataTable/FluentRow/index.js +1 -1
  214. package/dist/UI/dataDisplay/FluentDataTable/index.js +1 -1
  215. package/dist/UI/dataDisplay/GraphCard/index.js +1 -1
  216. package/dist/UI/dataDisplay/calendar/index.js +1 -1
  217. package/dist/UI/dataDisplay/cardList/index.js +1 -1
  218. package/dist/UI/dataDisplay/directory/index.js +1 -1
  219. package/dist/UI/dataDisplay/entityHeader/index.js +1 -1
  220. package/dist/UI/dataDisplay/index.js +10 -10
  221. package/dist/UI/dataDisplay/map/index.js +1 -1
  222. package/dist/UI/dataDisplay/notes/index.js +1 -1
  223. package/dist/UI/dataDisplay/status/index.js +1 -1
  224. package/dist/UI/dataDisplay/ticketCard/index.js +1 -1
  225. package/dist/UI/dataDisplay/typography/index.js +1 -1
  226. package/dist/UI/dataDisplay/visualization/amCharts/index.js +1 -1
  227. package/dist/UI/dataDisplay/visualization/index.js +1 -1
  228. package/dist/UI/feedback/index.js +2 -2
  229. package/dist/UI/fileViewer/index.js +1 -1
  230. package/dist/UI/fileViewer/pdfViewer/index.js +1 -1
  231. package/dist/UI/floorplans/index.js +1 -1
  232. package/dist/UI/forms/index.js +2 -2
  233. package/dist/UI/index.js +37 -37
  234. package/dist/UI/inputs/buttons/UdpActionCard/index.js +1 -1
  235. package/dist/UI/inputs/buttons/index.js +3 -3
  236. package/dist/UI/inputs/calendar/index.js +1 -1
  237. package/dist/UI/inputs/dateRangeSelector/index.js +1 -1
  238. package/dist/UI/inputs/fieldArrayCard/index.js +1 -1
  239. package/dist/UI/inputs/link/index.js +1 -1
  240. package/dist/UI/inputs/menus/AmbientStepper/index.js +1 -1
  241. package/dist/UI/inputs/menus/index.js +2 -2
  242. package/dist/UI/inputs/pickers/index.js +2 -2
  243. package/dist/UI/inputs/radio/index.js +1 -1
  244. package/dist/UI/inputs/textField/index.js +2 -2
  245. package/dist/UI/mapLayout/index.js +1 -1
  246. package/dist/UI/mapLayout/ui/index.js +2 -2
  247. package/dist/UI/mapLayout/utilities/index.js +1 -1
  248. package/dist/UI/maps/index.js +2 -2
  249. package/dist/UI/navigation/index.js +5 -5
  250. package/dist/UI/navigation/menus/index.js +1 -1
  251. package/dist/UI/navigation/tabs/defaultTabs/index.js +2 -2
  252. package/dist/UI/navigation/tabs/index.js +3 -3
  253. package/dist/UI/support/index.js +1 -1
  254. package/dist/UI/surfaces/NestedGrid/index.js +2 -2
  255. package/dist/UI/surfaces/NestedGrid/ui/index.js +1 -1
  256. package/dist/UI/surfaces/cards/chartDisplayCards/index.js +1 -1
  257. package/dist/UI/surfaces/cards/fluentCards/index.js +1 -1
  258. package/dist/UI/surfaces/cards/index.js +1 -1
  259. package/dist/UI/surfaces/cards/newsCard/index.js +1 -1
  260. package/dist/UI/surfaces/cards/workOrderCard/index.js +1 -1
  261. package/dist/UI/surfaces/index.js +3 -3
  262. package/dist/UI/templates/calendar/index.js +1 -1
  263. package/dist/UI/templates/deprecated/UdpGridTemplate/index.js +1 -1
  264. package/dist/UI/templates/index.js +1 -1
  265. package/dist/UI/templates/newGrid/index.js +3 -3
  266. package/dist/UI/templates/ui/index.js +2 -2
  267. package/dist/UI/templates/ui/renderers/index.js +1 -1
  268. package/dist/UI/timeline/fluentTimeline/index.js +1 -1
  269. package/dist/UI/timeline/index.js +2 -2
  270. package/dist/UI/widgets/index.js +1 -1
  271. package/dist/UI/widgets/library/BarChartWidget/index.js +1 -1
  272. package/dist/UI/widgets/library/BubbleWidget/index.js +1 -1
  273. package/dist/UI/widgets/library/CircleGaugeWidget/index.js +1 -1
  274. package/dist/UI/widgets/library/DateTrendWidget/index.js +1 -1
  275. package/dist/UI/widgets/library/DensePlotWidget/index.js +1 -1
  276. package/dist/UI/widgets/library/DonutChartWidget/index.js +1 -1
  277. package/dist/UI/widgets/library/GaugeWidget/index.js +1 -1
  278. package/dist/UI/widgets/library/LineAndSparklinesWidget/index.js +1 -1
  279. package/dist/UI/widgets/library/LineGraphWidget/index.js +1 -1
  280. package/dist/UI/widgets/library/ProgressBarWidget/index.js +1 -1
  281. package/dist/UI/widgets/library/RecentlyLoadedNodesWidget/index.js +1 -1
  282. package/dist/UI/widgets/library/RemindersWidget/index.js +1 -1
  283. package/dist/UI/widgets/library/SparklineWidget/index.js +1 -1
  284. package/dist/UI/widgets/library/SparsePlotWidget/index.js +1 -1
  285. package/dist/UI/widgets/library/TableWidget/index.js +2 -2
  286. package/dist/{UI-DynWKI5B.js → UI-Baviuqz7.js} +1 -1
  287. package/dist/{UI-DynWKI5B.js.map → UI-Baviuqz7.js.map} +1 -1
  288. package/dist/{UdpActionCard-C71tljgE.js → UdpActionCard-D-YAYE-C.js} +1 -1
  289. package/dist/{UdpActionCard-C71tljgE.js.map → UdpActionCard-D-YAYE-C.js.map} +1 -1
  290. package/dist/{UdpAppProvider-DEhQ6nWc.js → UdpAppProvider-C6fH--WD.js} +2 -2
  291. package/dist/{UdpAppProvider-DEhQ6nWc.js.map → UdpAppProvider-C6fH--WD.js.map} +1 -1
  292. package/dist/{UdpAuditEvents-CIdP3X5L.js → UdpAuditEvents-Bqz0_-Du.js} +2 -2
  293. package/dist/{UdpAuditEvents-CIdP3X5L.js.map → UdpAuditEvents-Bqz0_-Du.js.map} +1 -1
  294. package/dist/{UdpAuditEventsPage-l5SUjvZ6.js → UdpAuditEventsPage-CobHOioY.js} +3 -3
  295. package/dist/{UdpAuditEventsPage-l5SUjvZ6.js.map → UdpAuditEventsPage-CobHOioY.js.map} +1 -1
  296. package/dist/UdpAuditEventsPage-DuHg-BRJ.js +3 -0
  297. package/dist/{UdpBarChart-DUHu0uL9.js → UdpBarChart-D2bfgm7n.js} +1 -1
  298. package/dist/{UdpBarChart-DUHu0uL9.js.map → UdpBarChart-D2bfgm7n.js.map} +1 -1
  299. package/dist/{UdpCalendarYearView-BSR8CGHt.js → UdpCalendarYearView-BEdW-myL.js} +1 -1
  300. package/dist/{UdpCalendarYearView-BSR8CGHt.js.map → UdpCalendarYearView-BEdW-myL.js.map} +1 -1
  301. package/dist/{UdpDataBrowserPage-BZjG-rqk.js → UdpDataBrowserPage-CQ0vS2GN.js} +3 -3
  302. package/dist/{UdpDataBrowserPage-BZjG-rqk.js.map → UdpDataBrowserPage-CQ0vS2GN.js.map} +1 -1
  303. package/dist/{UdpDateRangeSelector-C_gpkHul.js → UdpDateRangeSelector-BivfBlPa.js} +1 -1
  304. package/dist/{UdpDateRangeSelector-C_gpkHul.js.map → UdpDateRangeSelector-BivfBlPa.js.map} +1 -1
  305. package/dist/{UdpFormsBuilderPage-DSWvULyw.js → UdpFormsBuilderPage-C1oc66zH.js} +1 -1
  306. package/dist/{UdpFormsBuilderPage-DSWvULyw.js.map → UdpFormsBuilderPage-C1oc66zH.js.map} +1 -1
  307. package/dist/{UdpFormsListPage-Cbgp7h2V.js → UdpFormsListPage-BsTi2bXy.js} +1 -1
  308. package/dist/{UdpFormsListPage-Cbgp7h2V.js.map → UdpFormsListPage-BsTi2bXy.js.map} +1 -1
  309. package/dist/{UdpFormsPrivateForm-BaqZrvbF.js → UdpFormsPrivateForm-L8NRz5Xf.js} +1 -1
  310. package/dist/{UdpFormsPrivateForm-BaqZrvbF.js.map → UdpFormsPrivateForm-L8NRz5Xf.js.map} +1 -1
  311. package/dist/{UdpFormsPublicForm-BfO46cpC.js → UdpFormsPublicForm-DgyMCWuh.js} +1 -1
  312. package/dist/{UdpFormsPublicForm-BfO46cpC.js.map → UdpFormsPublicForm-DgyMCWuh.js.map} +1 -1
  313. package/dist/{UdpFormsSubmissionGrid-BnwPWnai.js → UdpFormsSubmissionGrid-i3P4ZwQx.js} +3 -3
  314. package/dist/{UdpFormsSubmissionGrid-BnwPWnai.js.map → UdpFormsSubmissionGrid-i3P4ZwQx.js.map} +1 -1
  315. package/dist/{UdpGridPanelManagementPage-L1o6Fl8X.js → UdpGridPanelManagementPage-Cvye5uKC.js} +2 -2
  316. package/dist/{UdpGridPanelManagementPage-L1o6Fl8X.js.map → UdpGridPanelManagementPage-Cvye5uKC.js.map} +1 -1
  317. package/dist/{UdpGridPanelManagementSidesheet-5TWNu-M5.js → UdpGridPanelManagementSidesheet-CSGsefRn.js} +1 -1
  318. package/dist/{UdpGridPanelManagementSidesheet-5TWNu-M5.js.map → UdpGridPanelManagementSidesheet-CSGsefRn.js.map} +1 -1
  319. package/dist/{UdpGridTemplate--4K-4rPT.js → UdpGridTemplate-OsS_O6jR.js} +2 -2
  320. package/dist/{UdpGridTemplate--4K-4rPT.js.map → UdpGridTemplate-OsS_O6jR.js.map} +1 -1
  321. package/dist/{UdpImportFromFileMappingPage-7csdih_V.js → UdpImportFromFileMappingPage-BOBh4ySA.js} +2 -2
  322. package/dist/{UdpImportFromFileMappingPage-7csdih_V.js.map → UdpImportFromFileMappingPage-BOBh4ySA.js.map} +1 -1
  323. package/dist/{UdpInquiryMaintenanceEnginePage-e1JVCUmL.js → UdpInquiryMaintenanceEnginePage-D7HFcJQu.js} +2 -2
  324. package/dist/{UdpInquiryMaintenanceEnginePage-e1JVCUmL.js.map → UdpInquiryMaintenanceEnginePage-D7HFcJQu.js.map} +1 -1
  325. package/dist/{UdpMaintenanceEnginePage-DyhFVLUs.js → UdpMaintenanceEnginePage-CX5L5k-E.js} +4 -4
  326. package/dist/{UdpMaintenanceEnginePage-DyhFVLUs.js.map → UdpMaintenanceEnginePage-CX5L5k-E.js.map} +1 -1
  327. package/dist/{UdpMapToolbar-DDk53Gd6.js → UdpMapToolbar-B410Zi_h.js} +1 -1
  328. package/dist/{UdpMapToolbar-DDk53Gd6.js.map → UdpMapToolbar-B410Zi_h.js.map} +1 -1
  329. package/dist/{UdpNotesPage-CmLbb0JI.js → UdpNotesPage-CgIdQgVV.js} +1 -1
  330. package/dist/{UdpNotesPage-CmLbb0JI.js.map → UdpNotesPage-CgIdQgVV.js.map} +1 -1
  331. package/dist/{UdpPages-RwdWtzyx.js → UdpPages-9KtA1yex.js} +23 -23
  332. package/dist/{UdpPages-RwdWtzyx.js.map → UdpPages-9KtA1yex.js.map} +1 -1
  333. package/dist/{UdpRemindersPage-BdIXB-03.js → UdpRemindersPage-CfLAOWP_.js} +1 -1
  334. package/dist/{UdpRemindersPage-BdIXB-03.js.map → UdpRemindersPage-CfLAOWP_.js.map} +1 -1
  335. package/dist/{UdpReportsPage-BXwclMFJ.js → UdpReportsPage-Dyyo-Pys.js} +1 -1
  336. package/dist/{UdpReportsPage-BXwclMFJ.js.map → UdpReportsPage-Dyyo-Pys.js.map} +1 -1
  337. package/dist/{UdpTransactionTypesPage-BKTcZ9Rs.js → UdpTransactionTypesPage-Su-Z5Yjd.js} +4 -3
  338. package/dist/UdpTransactionTypesPage-Su-Z5Yjd.js.map +1 -0
  339. package/dist/{UdpTransactionsPage-OK4UGz8F.js → UdpTransactionsPage-DqSVtTyb.js} +71 -41
  340. package/dist/UdpTransactionsPage-DqSVtTyb.js.map +1 -0
  341. package/dist/{UdpVerticalManagementPage-CFVb0bXI.js → UdpVerticalManagementPage-ndwqxjDI.js} +2 -2
  342. package/dist/{UdpVerticalManagementPage-CFVb0bXI.js.map → UdpVerticalManagementPage-ndwqxjDI.js.map} +1 -1
  343. package/dist/{UdpVerticalManagementSidesheet-DW19BM9D.js → UdpVerticalManagementSidesheet-DomJyrvo.js} +2 -2
  344. package/dist/{UdpVerticalManagementSidesheet-DW19BM9D.js.map → UdpVerticalManagementSidesheet-DomJyrvo.js.map} +1 -1
  345. package/dist/{UserForm-DNRashuU.js → UserForm-DZ1a9uqZ.js} +1 -1
  346. package/dist/{UserForm-DNRashuU.js.map → UserForm-DZ1a9uqZ.js.map} +1 -1
  347. package/dist/{UserFormSideSheet-CYkGZYwh.js → UserFormSideSheet-BFFWQJY_.js} +2 -2
  348. package/dist/{UserFormSideSheet-CYkGZYwh.js.map → UserFormSideSheet-BFFWQJY_.js.map} +1 -1
  349. package/dist/UserFormSideSheet-Dyk3RJL4.js +3 -0
  350. package/dist/{VirtualBrowser-C8re1h7C.js → VirtualBrowser-DlNnb7U2.js} +1 -1
  351. package/dist/{VirtualBrowser-C8re1h7C.js.map → VirtualBrowser-DlNnb7U2.js.map} +1 -1
  352. package/dist/VirtualBrowser-TtaXAPNI.js +3 -0
  353. package/dist/{WidgetCard-UA87S0id.js → WidgetCard-U1XoSuoz.js} +1 -1
  354. package/dist/{WidgetCard-UA87S0id.js.map → WidgetCard-U1XoSuoz.js.map} +1 -1
  355. package/dist/{WorkOrderCard-Ce5WrpnX.js → WorkOrderCard-s-6QK3Re.js} +1 -1
  356. package/dist/{WorkOrderCard-Ce5WrpnX.js.map → WorkOrderCard-s-6QK3Re.js.map} +1 -1
  357. package/dist/{WorkflowContainer-DvkjhRjh.js → WorkflowContainer-CA0eMzMU.js} +2 -2
  358. package/dist/{WorkflowContainer-DvkjhRjh.js.map → WorkflowContainer-CA0eMzMU.js.map} +1 -1
  359. package/dist/{WorkflowContainer-CICsI2cr.js → WorkflowContainer-LP2LBBn6.js} +1 -1
  360. package/dist/{accordion-Ch2uJYAf.js → accordion-SICjF7Th.js} +1 -1
  361. package/dist/{accordion-Ch2uJYAf.js.map → accordion-SICjF7Th.js.map} +1 -1
  362. package/dist/{advancedSearchBuilder-fM4l0Cu8.js → advancedSearchBuilder-7ixhIwLW.js} +1 -1
  363. package/dist/{advancedSearchBuilder-fM4l0Cu8.js.map → advancedSearchBuilder-7ixhIwLW.js.map} +1 -1
  364. package/dist/{aggridHelpers--O0xR_sw.js → aggridHelpers-af9idKBD.js} +1 -1
  365. package/dist/{aggridHelpers--O0xR_sw.js.map → aggridHelpers-af9idKBD.js.map} +1 -1
  366. package/dist/{amcharts-BQdqTLYS.js → amcharts-BqT36-RL.js} +2 -2
  367. package/dist/{amcharts-BQdqTLYS.js.map → amcharts-BqT36-RL.js.map} +1 -1
  368. package/dist/{buttons-DoYEnZFk.js → buttons-CuLiERQe.js} +1 -1
  369. package/dist/{buttons-DoYEnZFk.js.map → buttons-CuLiERQe.js.map} +1 -1
  370. package/dist/{cards-Cxn427Ql.js → cards-Z72cvAh5.js} +1 -1
  371. package/dist/{cards-Cxn427Ql.js.map → cards-Z72cvAh5.js.map} +1 -1
  372. package/dist/{charts-DY73hSve.js → charts-oWe5K2aR.js} +2 -2
  373. package/dist/{charts-DY73hSve.js.map → charts-oWe5K2aR.js.map} +1 -1
  374. package/dist/dataBrowser/index.js +1 -1
  375. package/dist/{dataDisplay-DsblEX_4.js → dataDisplay-BP3z7lU0.js} +1 -1
  376. package/dist/{dataDisplay-DsblEX_4.js.map → dataDisplay-BP3z7lU0.js.map} +1 -1
  377. package/dist/{dataDisplay-BG9YjcDC.js → dataDisplay-CTkvIsCs.js} +2 -2
  378. package/dist/{dataDisplay-BG9YjcDC.js.map → dataDisplay-CTkvIsCs.js.map} +1 -1
  379. package/dist/{dateUtils-RBKwESyB.js → dateUtils-COj9Xpy9.js} +1 -1
  380. package/dist/{dateUtils-RBKwESyB.js.map → dateUtils-COj9Xpy9.js.map} +1 -1
  381. package/dist/{defaultTabs-BaaiFd3D.js → defaultTabs-B4clt2kH.js} +2 -2
  382. package/dist/{defaultTabs-BaaiFd3D.js.map → defaultTabs-B4clt2kH.js.map} +1 -1
  383. package/dist/{fileViewer-B2pDTGPS.js → fileViewer-BmTE1zuM.js} +3 -3
  384. package/dist/{fileViewer-B2pDTGPS.js.map → fileViewer-BmTE1zuM.js.map} +1 -1
  385. package/dist/{floorplans-BgYwX0Hv.js → floorplans-CF6ssxTg.js} +4 -4
  386. package/dist/{floorplans-BgYwX0Hv.js.map → floorplans-CF6ssxTg.js.map} +1 -1
  387. package/dist/{fluentTimeline-Dh4zTk-T.js → fluentTimeline-BCLxH23f.js} +1 -1
  388. package/dist/{fluentTimeline-Dh4zTk-T.js.map → fluentTimeline-BCLxH23f.js.map} +1 -1
  389. package/dist/{formatBytes-DDrhQ8O6.js → formatBytes-Bt-B_Lo8.js} +1 -1
  390. package/dist/{formatBytes-DDrhQ8O6.js.map → formatBytes-Bt-B_Lo8.js.map} +1 -1
  391. package/dist/{forms-B4PDhUYa.js → forms-CuTE3vcQ.js} +54 -2
  392. package/dist/forms-CuTE3vcQ.js.map +1 -0
  393. package/dist/{gridVisualizationFunctions-CI62zWRV.js → gridVisualizationFunctions-D4fd_Ceb.js} +1 -1
  394. package/dist/{gridVisualizationFunctions-CI62zWRV.js.map → gridVisualizationFunctions-D4fd_Ceb.js.map} +1 -1
  395. package/dist/hooks/index.js +1 -1
  396. package/dist/index.js +124 -124
  397. package/dist/inquiry/index.js +1 -1
  398. package/dist/maintenanceEngine/crudBrowser/index.js +2 -2
  399. package/dist/maintenanceEngine/index.js +3 -3
  400. package/dist/maintenanceEngine/virtualBrowser/index.js +1 -1
  401. package/dist/{mapLayout-CCjcG4TM.js → mapLayout-DCBNFKk9.js} +4 -4
  402. package/dist/{mapLayout-CCjcG4TM.js.map → mapLayout-DCBNFKk9.js.map} +1 -1
  403. package/dist/{maps-g2OJL4E-.js → maps-BgmvNpkU.js} +1 -1
  404. package/dist/{maps-g2OJL4E-.js.map → maps-BgmvNpkU.js.map} +1 -1
  405. package/dist/menuPage/index.js +1 -1
  406. package/dist/{menuPage-BK-o5N5p.js → menuPage-C0cuD8I3.js} +2 -2
  407. package/dist/{menuPage-BK-o5N5p.js.map → menuPage-C0cuD8I3.js.map} +1 -1
  408. package/dist/{menus-Bt9DHMJZ.js → menus-Ci9KI_c_.js} +1 -1
  409. package/dist/{menus-Bt9DHMJZ.js.map → menus-Ci9KI_c_.js.map} +1 -1
  410. package/dist/{navigation-DQMPOxVw.js → navigation-CDXE3AXd.js} +1 -1
  411. package/dist/{navigation-DQMPOxVw.js.map → navigation-CDXE3AXd.js.map} +1 -1
  412. package/dist/{newGrid-QEximvwY.js → newGrid-zmtQXU5G.js} +2 -2
  413. package/dist/{newGrid-QEximvwY.js.map → newGrid-zmtQXU5G.js.map} +1 -1
  414. package/dist/{pickers-DTlxW9VN.js → pickers-CkwI49Ju.js} +1 -1
  415. package/dist/{pickers-DTlxW9VN.js.map → pickers-CkwI49Ju.js.map} +1 -1
  416. package/dist/providers/index.js +1 -1
  417. package/dist/reminders/index.js +1 -1
  418. package/dist/routes/components/index.js +1 -1
  419. package/dist/routes/index.js +1 -1
  420. package/dist/{routes-sO1VMd1p.js → routes-Bec2NOME.js} +9 -9
  421. package/dist/{routes-sO1VMd1p.js.map → routes-Bec2NOME.js.map} +1 -1
  422. package/dist/shell/index.js +3 -3
  423. package/dist/shell/ui/addUser/index.js +1 -1
  424. package/dist/shell/ui/index.js +2 -2
  425. package/dist/{status-CYb-Q3cG.js → status-Bmaija4B.js} +1 -1
  426. package/dist/{status-CYb-Q3cG.js.map → status-Bmaija4B.js.map} +1 -1
  427. package/dist/{stringUtils-DefiD-8J.js → stringUtils-B2JFmevx.js} +1 -1
  428. package/dist/{stringUtils-DefiD-8J.js.map → stringUtils-B2JFmevx.js.map} +1 -1
  429. package/dist/{tabs-B_4vXxOq.js → tabs-CAaJhUt5.js} +1 -1
  430. package/dist/{tabs-B_4vXxOq.js.map → tabs-CAaJhUt5.js.map} +1 -1
  431. package/dist/{templates-DcXv_EdQ.js → templates-2r09nl9N.js} +2 -2
  432. package/dist/{templates-DcXv_EdQ.js.map → templates-2r09nl9N.js.map} +1 -1
  433. package/dist/{textField-CGaCVAwx.js → textField-OwxxHROu.js} +1 -1
  434. package/dist/{textField-CGaCVAwx.js.map → textField-OwxxHROu.js.map} +1 -1
  435. package/dist/{theme-LXTjsW_7.js → theme-C-5VosEn.js} +1 -1
  436. package/dist/{theme-LXTjsW_7.js.map → theme-C-5VosEn.js.map} +1 -1
  437. package/dist/{timeline-C0U-lOYN.js → timeline-CdeAJqvB.js} +1 -1
  438. package/dist/{timeline-C0U-lOYN.js.map → timeline-CdeAJqvB.js.map} +1 -1
  439. package/dist/treeMenu/index.js +1 -1
  440. package/dist/types/src/UI/forms/UdpTransactionEmailForm.d.ts +10 -0
  441. package/dist/types/src/UI/forms/UdpTransactionEmailForm.d.ts.map +1 -0
  442. package/dist/types/src/UI/forms/index.d.ts +1 -0
  443. package/dist/types/src/UI/forms/index.d.ts.map +1 -1
  444. package/dist/types/src/udp/pages/UdpPages/index.d.ts.map +1 -1
  445. package/dist/types/src/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.d.ts.map +1 -1
  446. package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeConfigurationForm.d.ts.map +1 -1
  447. package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.d.ts.map +1 -1
  448. package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationSidesheet.d.ts.map +1 -1
  449. package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationTransactionActionSidesheet.d.ts.map +1 -1
  450. package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeStatusSidesheet.d.ts.map +1 -1
  451. package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeTransactionActionSidesheet.d.ts.map +1 -1
  452. package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionUiActionSidesheet.d.ts.map +1 -1
  453. package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionGrid.d.ts.map +1 -1
  454. package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionSidesheet.d.ts.map +1 -1
  455. package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionsPage.d.ts.map +1 -1
  456. package/dist/types/src/udp/pages/UdpTransactionsPage/components/EditTransactionDetailsFooterItem.d.ts.map +1 -1
  457. package/dist/types/src/udp/pages/UdpTransactionsPage/sidesheets/EditTransaction.d.ts.map +1 -1
  458. package/dist/types/src/udp/utilities/useDateStringColumnDef.d.ts +1 -1
  459. package/dist/types/src/utilities/transactions/useTransactionEngine.d.ts +2 -2
  460. package/dist/types/tsconfig.tsbuildinfo +1 -1
  461. package/dist/{typography-C7jrM6UV.js → typography-IJpS01q9.js} +1 -1
  462. package/dist/{typography-C7jrM6UV.js.map → typography-IJpS01q9.js.map} +1 -1
  463. package/dist/udp/export/index.js +2 -2
  464. package/dist/udp/fileImportMapping/index.js +1 -1
  465. package/dist/udp/pages/ChatUDP/index.js +1 -1
  466. package/dist/udp/pages/UdpAuditEvents/index.js +1 -1
  467. package/dist/udp/pages/UdpDataBrowserPage/index.js +1 -1
  468. package/dist/udp/pages/UdpFormsBuilderPage/index.js +1 -1
  469. package/dist/udp/pages/UdpFormsListPage/index.js +1 -1
  470. package/dist/udp/pages/UdpFormsPrivateForm/index.js +1 -1
  471. package/dist/udp/pages/UdpFormsPublicForm/index.js +1 -1
  472. package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +1 -1
  473. package/dist/udp/pages/UdpGridPanelManagementPage/index.js +1 -1
  474. package/dist/udp/pages/UdpGridPanelManagementSidesheet/index.js +1 -1
  475. package/dist/udp/pages/UdpImportFromFileMappingPage/index.js +1 -1
  476. package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +1 -1
  477. package/dist/udp/pages/UdpMaintenanceConfigPage/index.js +1 -1
  478. package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +1 -1
  479. package/dist/udp/pages/UdpNotesPage/index.js +1 -1
  480. package/dist/udp/pages/UdpPages/index.js +1 -1
  481. package/dist/udp/pages/UdpPagesLazy/index.js +1 -1
  482. package/dist/udp/pages/UdpRemindersPage/index.js +1 -1
  483. package/dist/udp/pages/UdpReportsPage/index.js +1 -1
  484. package/dist/udp/pages/UdpTransactionTypesPage/index.js +1 -1
  485. package/dist/udp/pages/UdpTransactionsPage/index.js +1 -1
  486. package/dist/udp/pages/UdpTransactionsPage/sidesheets/EditTransaction.css +5 -1
  487. package/dist/udp/pages/UdpVerticalManagementPage/index.js +1 -1
  488. package/dist/udp/pages/UdpVerticalManagementSidesheet/index.js +1 -1
  489. package/dist/udp/pages/index.js +1 -1
  490. package/dist/{ui-CQ9shgJy.js → ui-BcqvpQOG.js} +1 -1
  491. package/dist/{ui-CQ9shgJy.js.map → ui-BcqvpQOG.js.map} +1 -1
  492. package/dist/uploader/index.js +2 -2
  493. package/dist/{uploader-BsVTCQMg.js → uploader-CPU1l-ss.js} +3 -3
  494. package/dist/{uploader-BsVTCQMg.js.map → uploader-CPU1l-ss.js.map} +1 -1
  495. package/dist/{useUpdateSearchParams-DV8yJL_e.js → useUpdateSearchParams-en3_FDTj.js} +1 -1
  496. package/dist/{useUpdateSearchParams-DV8yJL_e.js.map → useUpdateSearchParams-en3_FDTj.js.map} +1 -1
  497. package/dist/utilities/aggrid/index.js +1 -1
  498. package/dist/utilities/catalog/index.js +1 -1
  499. package/dist/utilities/customIcons/index.js +1 -1
  500. package/dist/utilities/floorplanFunctions/index.js +1 -1
  501. package/dist/utilities/form/paymentForm/index.js +1 -1
  502. package/dist/utilities/index.js +2 -2
  503. package/dist/utilities/redirect/pages/index.js +1 -1
  504. package/dist/utilities/style/index.js +1 -1
  505. package/dist/utilities/theme/index.js +1 -1
  506. package/dist/utilities/uploader/index.js +2 -2
  507. package/dist/{widgets-CwBbW7lZ.js → widgets-BCHN3J80.js} +2 -2
  508. package/dist/{widgets-CwBbW7lZ.js.map → widgets-BCHN3J80.js.map} +1 -1
  509. package/dist/workflow/index.js +1 -1
  510. package/dist/wrappers-CKNzV1XQ.js +1 -0
  511. package/export-map.json +3 -2
  512. package/package.json +1 -1
  513. package/dist/Inquiry-Czwd0VA2.js +0 -3
  514. package/dist/MenuPage-79I_zILi.js +0 -3
  515. package/dist/MyExportsPage-DmgTMUx3.js +0 -3
  516. package/dist/Reports-D9P-jHYM.js +0 -3
  517. package/dist/UdpAuditEventsPage-B1hhCWBz.js +0 -3
  518. package/dist/UdpTransactionTypesPage-BKTcZ9Rs.js.map +0 -1
  519. package/dist/UdpTransactionsPage-OK4UGz8F.js.map +0 -1
  520. package/dist/UserFormSideSheet-BJ8y-0uX.js +0 -3
  521. package/dist/VirtualBrowser-P8w0Z3uN.js +0 -3
  522. package/dist/forms-B4PDhUYa.js.map +0 -1
  523. /package/dist/{addUser-UD9k8N3Q.js → addUser-DBAiNRvm.js} +0 -0
  524. /package/dist/{appSwitcher-DO513HhW.js → appSwitcher-DwQnn1Z-.js} +0 -0
  525. /package/dist/{components-DK20DAlt.js → components-BMIH5ryr.js} +0 -0
  526. /package/dist/{components-e_OrfYIq.js → components-DXieFr09.js} +0 -0
  527. /package/dist/{crudBrowser-BPQQj2cd.js → crudBrowser-BennJLFi.js} +0 -0
  528. /package/dist/{dashboard-Cg1RSK0h.js → dashboard-6lb19b9R.js} +0 -0
  529. /package/dist/{enums-CEmNtsl-.js → enums-zIzLNnIf.js} +0 -0
  530. /package/dist/{feedback-DR5eysDg.js → feedback-DjaFcNGB.js} +0 -0
  531. /package/dist/{forms-D4anGuMu.js → forms-DxziZeJz.js} +0 -0
  532. /package/dist/{functions-BmH32YAl.js → functions-cXq3cLpC.js} +0 -0
  533. /package/dist/{hocs-BDEnJCjI.js → hocs-CtDVG8VC.js} +0 -0
  534. /package/dist/{hooks-T0wmHRDr.js → hooks-Clf1TdGS.js} +0 -0
  535. /package/dist/{iconLibrary-kGIrMtFo.js → iconLibrary-Bw7pnkIf.js} +0 -0
  536. /package/dist/{iframe-8LdDijra.js → iframe-BTRj5Yrs.js} +0 -0
  537. /package/dist/{inquiryBar-B5qW1WYu.js → inquiryBar-DEauNeV_.js} +0 -0
  538. /package/dist/{menus-B2uKIE3f.js → menus-BTvPbCHY.js} +0 -0
  539. /package/dist/{modified-C2gPxIh4.js → modified-nSBpH5OW.js} +0 -0
  540. /package/dist/{mttMainTimeline-WaYFeFFc.js → mttMainTimeline-q03lG_Lk.js} +0 -0
  541. /package/dist/{mttSummary-BPq7Cge1.js → mttSummary-DpAEw7CQ.js} +0 -0
  542. /package/dist/{property-qKO6onZ3.js → property-Bg_7rXXd.js} +0 -0
  543. /package/dist/{redirect-pounpi3T.js → redirect-CiRW3aom.js} +0 -0
  544. /package/dist/{renderers-_7BuN_HY.js → renderers-CWJe-F-V.js} +0 -0
  545. /package/dist/{search-CaAbnl7b.js → richEditors-CJtsJ_xm.js} +0 -0
  546. /package/dist/{sidebar-IeFyjaRt.js → search-13JgAzQB.js} +0 -0
  547. /package/dist/{storage-CP_Q0B7i.js → sidebar-noDHEE26.js} +0 -0
  548. /package/dist/{stores-Dzp1t2VC.js → storage-BH6-5v7t.js} +0 -0
  549. /package/dist/{support-BVd4HZXx.js → stores-By3z7NWI.js} +0 -0
  550. /package/dist/{surfaces-CwNXb9Rt.js → support-B2_VCz-r.js} +0 -0
  551. /package/dist/{tableBrowser-DpFfl89p.js → surfaces-BGrfgkLD.js} +0 -0
  552. /package/dist/{tree-B_8MpKwX.js → tableBrowser-CSWKuN0u.js} +0 -0
  553. /package/dist/{ui-CaQod8_V.js → tree-CDeJs_2Q.js} +0 -0
  554. /package/dist/{ui-Co0KWqAw.js → ui-Hp2WsOZ0.js} +0 -0
  555. /package/dist/{utilities-Bb1XR0Yg.js → ui-P3i_0RoE.js} +0 -0
  556. /package/dist/{utils-56aVtOQ_.js → utilities-C1bpHZ4f.js} +0 -0
  557. /package/dist/{utils-R-hAKhUy.js → utils-Ba8OSX5C.js} +0 -0
  558. /package/dist/{virtualBrowser-BR4AvVGB.js → utils-w58aJm05.js} +0 -0
  559. /package/dist/{wrappers-G5O1mzJe.js → virtualBrowser-B8Mvhc_j.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"UdpVerticalManagementPage-CFVb0bXI.js","names":["UdpVerticalManagementSidesheet"],"sources":["../src/udp/pages/UdpVerticalManagementPage/UdpVerticalManagementPage.jsx","../src/udp/pages/UdpVerticalManagementPage/index.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useState,\n useRef\n} from 'react';\nimport { AmbientGridTemplate } from '../../../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\n// import { executeQueryAdHoc, getBaseMethod } from '../utilities/methodUtils';\nimport { AddIcon, DeleteIcon, EditIcon } from '@fluentui/react-icons';\nimport { Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { PrimaryActionButton } from '../../../UI/inputs/buttons/PrimaryActionButton';\nimport { ActionsRenderer } from '../../../UI/templates/ui/renderers/ActionsRenderer';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport UdpVerticalManagementSidesheet from '../UdpVerticalManagementSidesheet';\nimport { FluentDialog } from '../../../UI/feedback/FluentDialog';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { ConfigService } from '../../../configService';\n\nconst UdpVerticalManagementPage = (props) => {\n const { params } = props;\n const { nodeObj: environment, inquiryNodeProperties } = params;\n const { t } = useTranslation();\n\n const [sideSheetOpen, setSideSheetOpen] = useState(false);\n const [sideSheetEdit, setSideSheetEdit] = useState(false);\n const [loading, setLoading] = useState(false);\n const [selectedVertical, setSelectedVertical] = useState(null);\n const [verticals, setVerticals] = useState([]);\n const [productVertical, setProductVertical] = useState([]);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const selectedVerticalRef = useRef();\n selectedVerticalRef.current = selectedVertical ? selectedVertical : null;\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const openSheetAsEdit = useCallback((isEdit) => {\n setSideSheetOpen(true);\n setSideSheetEdit(isEdit);\n }, []);\n\n const closeDeleteDialog = useCallback(() => {\n setDeleteDialogOpen(false);\n }, [setDeleteDialogOpen]);\n\n const executeMutation = useCallback(\n async (endpoint, method, data) =>\n apiMutate(\n ConfigService.uemV1ApiUrl,\n endpoint,\n {\n method: method || 'post'\n },\n data\n ),\n []\n );\n\n const getVerticals = useCallback(\n async (data, isFirstLoad = false) => {\n if (isFirstLoad) {\n setLoading(true);\n }\n\n const response = await executeMutation('uem', 'post', data);\n if (response?.status === 200) {\n setVerticals(response?.data);\n }\n if (isFirstLoad) {\n setLoading(false);\n }\n },\n [executeMutation]\n );\n\n const deleteVertical = useCallback(async () => {\n const data = {\n data: {\n environmentId: environment.environmentId,\n apiPath: `TenantService/api/v2/Vertical/${selectedVerticalRef.current.verticalId}/uemDelete`\n }\n };\n const response = await executeMutation(\n `vertical/${selectedVerticalRef.current.verticalId}/uemDelete`,\n 'delete',\n data\n );\n if (response?.status === 204) {\n console.log('success');\n handleSuccessSnackbar('Vertical Deleted Successfully');\n }\n const getVerticalsData = {\n data: {\n customerId: null,\n environmentId: environment.environmentId,\n apiPath: `TenantService/api/v2/Vertical`\n }\n };\n getVerticals(getVerticalsData, true);\n closeDeleteDialog();\n }, [executeMutation, selectedVertical, closeDeleteDialog]);\n\n const getProductVerticals = useCallback(\n async (data) => {\n const response = await executeMutation('productVertical', 'get', data);\n if (response?.status === 200) {\n setProductVertical(response?.data);\n }\n },\n [executeMutation]\n );\n\n useEffect(() => {\n if (environment && getVerticals) {\n if (environment.environmentId) {\n const productVerticalData = {\n data: {\n apiPath: `api/v2/ProductVertical`\n }\n };\n getProductVerticals(productVerticalData);\n const data = {\n data: {\n customerId: null,\n environmentId: environment.environmentId,\n apiPath: `TenantService/api/v2/Vertical`\n }\n };\n getVerticals(data, true);\n }\n }\n }, [environment, getVerticals, getProductVerticals, deleteVertical]);\n\n const closeSheet = useCallback(() => {\n setSideSheetOpen(false);\n const data = {\n data: {\n customerId: null,\n environmentId: environment.environmentId,\n apiPath: `TenantService/api/v2/Vertical`\n }\n };\n\n getVerticals(data);\n }, [getVerticals, environment]);\n\n const handleEditPage = useCallback(\n (value) => {\n setSelectedVertical(value);\n console.log('Edit page, value: ', value);\n openSheetAsEdit(true);\n },\n [t]\n );\n\n const handleCreateVertical = useCallback(\n (value) => {\n openSheetAsEdit(false);\n },\n [t]\n );\n\n const handleDelete = useCallback(\n (value) => {\n setSelectedVertical(value);\n console.log('Delete page, value: ', value);\n setDeleteDialogOpen(true);\n },\n [t]\n );\n\n const actionList = useMemo(\n () => [\n {\n id: 1, // Must be unique\n title: t('Edit'),\n icon: EditIcon,\n onClick: handleEditPage,\n disabled: false\n },\n {\n id: 2, // Must be unique\n title: t('Delete'),\n icon: DeleteIcon,\n onClick: handleDelete,\n disabled: false\n }\n ],\n [t, handleEditPage, handleDelete]\n );\n\n const gridOptions = useMemo(\n () => ({\n frameworkComponents: {\n actionsRenderer: ActionsRenderer\n },\n columnDefs: [\n {\n headerName: t('Name'),\n field: 'name',\n minWidth: 300\n },\n {\n headerName: t('Icon'),\n field: 'icon'\n },\n {\n headerName: t('Actions'),\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList\n },\n pinned: 'right',\n suppressMenu: true,\n sortable: false\n }\n ]\n }),\n [t, actionList, productVertical]\n );\n\n const pab = (\n <PrimaryActionButton onClick={handleCreateVertical}>\n <Typography style={{ marginRight: 5 }}>Add</Typography>\n <AddIcon />\n </PrimaryActionButton>\n );\n\n return (\n <>\n <UdpVerticalManagementSidesheet\n open={sideSheetOpen}\n closeSidesheet={closeSheet}\n selectedVertical={selectedVertical}\n environment={environment}\n title={t(sideSheetEdit ? 'Edit Vertical' : 'Create Vertical')}\n associatedProducts={productVertical}\n isEdit={sideSheetEdit}\n />\n <AmbientGridTemplate\n title={t('Vertical Manager')}\n primaryActionButton={pab}\n data={verticals}\n // hideGroupTab\n // hideColumnTab\n loading={loading}\n gridOptions={gridOptions}\n groupingData={[]}\n />\n <FluentDialog\n open={deleteDialogOpen}\n handleClose={closeDeleteDialog}\n title={t('Delete Vertical')}\n message={\n t('Are you sure you want to Delete') + ` \"${selectedVertical?.name}\"?`\n }\n actionOne={deleteVertical}\n labelOne={t('Delete')}\n actionTwo={closeDeleteDialog}\n labelTwo={t('Cancel')}\n />\n </>\n );\n};\n\nexport default UdpVerticalManagementPage;\n","export {default} from './UdpVerticalManagementPage';\nexport * from './UdpVerticalManagementPage';\n"],"mappings":"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"}
1
+ {"version":3,"file":"UdpVerticalManagementPage-ndwqxjDI.js","names":["UdpVerticalManagementSidesheet"],"sources":["../src/udp/pages/UdpVerticalManagementPage/UdpVerticalManagementPage.jsx","../src/udp/pages/UdpVerticalManagementPage/index.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useState,\n useRef\n} from 'react';\nimport { AmbientGridTemplate } from '../../../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\n// import { executeQueryAdHoc, getBaseMethod } from '../utilities/methodUtils';\nimport { AddIcon, DeleteIcon, EditIcon } from '@fluentui/react-icons';\nimport { Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { PrimaryActionButton } from '../../../UI/inputs/buttons/PrimaryActionButton';\nimport { ActionsRenderer } from '../../../UI/templates/ui/renderers/ActionsRenderer';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport UdpVerticalManagementSidesheet from '../UdpVerticalManagementSidesheet';\nimport { FluentDialog } from '../../../UI/feedback/FluentDialog';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { ConfigService } from '../../../configService';\n\nconst UdpVerticalManagementPage = (props) => {\n const { params } = props;\n const { nodeObj: environment, inquiryNodeProperties } = params;\n const { t } = useTranslation();\n\n const [sideSheetOpen, setSideSheetOpen] = useState(false);\n const [sideSheetEdit, setSideSheetEdit] = useState(false);\n const [loading, setLoading] = useState(false);\n const [selectedVertical, setSelectedVertical] = useState(null);\n const [verticals, setVerticals] = useState([]);\n const [productVertical, setProductVertical] = useState([]);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const selectedVerticalRef = useRef();\n selectedVerticalRef.current = selectedVertical ? selectedVertical : null;\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const openSheetAsEdit = useCallback((isEdit) => {\n setSideSheetOpen(true);\n setSideSheetEdit(isEdit);\n }, []);\n\n const closeDeleteDialog = useCallback(() => {\n setDeleteDialogOpen(false);\n }, [setDeleteDialogOpen]);\n\n const executeMutation = useCallback(\n async (endpoint, method, data) =>\n apiMutate(\n ConfigService.uemV1ApiUrl,\n endpoint,\n {\n method: method || 'post'\n },\n data\n ),\n []\n );\n\n const getVerticals = useCallback(\n async (data, isFirstLoad = false) => {\n if (isFirstLoad) {\n setLoading(true);\n }\n\n const response = await executeMutation('uem', 'post', data);\n if (response?.status === 200) {\n setVerticals(response?.data);\n }\n if (isFirstLoad) {\n setLoading(false);\n }\n },\n [executeMutation]\n );\n\n const deleteVertical = useCallback(async () => {\n const data = {\n data: {\n environmentId: environment.environmentId,\n apiPath: `TenantService/api/v2/Vertical/${selectedVerticalRef.current.verticalId}/uemDelete`\n }\n };\n const response = await executeMutation(\n `vertical/${selectedVerticalRef.current.verticalId}/uemDelete`,\n 'delete',\n data\n );\n if (response?.status === 204) {\n console.log('success');\n handleSuccessSnackbar('Vertical Deleted Successfully');\n }\n const getVerticalsData = {\n data: {\n customerId: null,\n environmentId: environment.environmentId,\n apiPath: `TenantService/api/v2/Vertical`\n }\n };\n getVerticals(getVerticalsData, true);\n closeDeleteDialog();\n }, [executeMutation, selectedVertical, closeDeleteDialog]);\n\n const getProductVerticals = useCallback(\n async (data) => {\n const response = await executeMutation('productVertical', 'get', data);\n if (response?.status === 200) {\n setProductVertical(response?.data);\n }\n },\n [executeMutation]\n );\n\n useEffect(() => {\n if (environment && getVerticals) {\n if (environment.environmentId) {\n const productVerticalData = {\n data: {\n apiPath: `api/v2/ProductVertical`\n }\n };\n getProductVerticals(productVerticalData);\n const data = {\n data: {\n customerId: null,\n environmentId: environment.environmentId,\n apiPath: `TenantService/api/v2/Vertical`\n }\n };\n getVerticals(data, true);\n }\n }\n }, [environment, getVerticals, getProductVerticals, deleteVertical]);\n\n const closeSheet = useCallback(() => {\n setSideSheetOpen(false);\n const data = {\n data: {\n customerId: null,\n environmentId: environment.environmentId,\n apiPath: `TenantService/api/v2/Vertical`\n }\n };\n\n getVerticals(data);\n }, [getVerticals, environment]);\n\n const handleEditPage = useCallback(\n (value) => {\n setSelectedVertical(value);\n console.log('Edit page, value: ', value);\n openSheetAsEdit(true);\n },\n [t]\n );\n\n const handleCreateVertical = useCallback(\n (value) => {\n openSheetAsEdit(false);\n },\n [t]\n );\n\n const handleDelete = useCallback(\n (value) => {\n setSelectedVertical(value);\n console.log('Delete page, value: ', value);\n setDeleteDialogOpen(true);\n },\n [t]\n );\n\n const actionList = useMemo(\n () => [\n {\n id: 1, // Must be unique\n title: t('Edit'),\n icon: EditIcon,\n onClick: handleEditPage,\n disabled: false\n },\n {\n id: 2, // Must be unique\n title: t('Delete'),\n icon: DeleteIcon,\n onClick: handleDelete,\n disabled: false\n }\n ],\n [t, handleEditPage, handleDelete]\n );\n\n const gridOptions = useMemo(\n () => ({\n frameworkComponents: {\n actionsRenderer: ActionsRenderer\n },\n columnDefs: [\n {\n headerName: t('Name'),\n field: 'name',\n minWidth: 300\n },\n {\n headerName: t('Icon'),\n field: 'icon'\n },\n {\n headerName: t('Actions'),\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList\n },\n pinned: 'right',\n suppressMenu: true,\n sortable: false\n }\n ]\n }),\n [t, actionList, productVertical]\n );\n\n const pab = (\n <PrimaryActionButton onClick={handleCreateVertical}>\n <Typography style={{ marginRight: 5 }}>Add</Typography>\n <AddIcon />\n </PrimaryActionButton>\n );\n\n return (\n <>\n <UdpVerticalManagementSidesheet\n open={sideSheetOpen}\n closeSidesheet={closeSheet}\n selectedVertical={selectedVertical}\n environment={environment}\n title={t(sideSheetEdit ? 'Edit Vertical' : 'Create Vertical')}\n associatedProducts={productVertical}\n isEdit={sideSheetEdit}\n />\n <AmbientGridTemplate\n title={t('Vertical Manager')}\n primaryActionButton={pab}\n data={verticals}\n // hideGroupTab\n // hideColumnTab\n loading={loading}\n gridOptions={gridOptions}\n groupingData={[]}\n />\n <FluentDialog\n open={deleteDialogOpen}\n handleClose={closeDeleteDialog}\n title={t('Delete Vertical')}\n message={\n t('Are you sure you want to Delete') + ` \"${selectedVertical?.name}\"?`\n }\n actionOne={deleteVertical}\n labelOne={t('Delete')}\n actionTwo={closeDeleteDialog}\n labelTwo={t('Cancel')}\n />\n </>\n );\n};\n\nexport default UdpVerticalManagementPage;\n","export {default} from './UdpVerticalManagementPage';\nexport * from './UdpVerticalManagementPage';\n"],"mappings":"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"}
@@ -12,7 +12,7 @@ import { n as SideSheet } from "./SideSheet-CDXVa_Kr.js";
12
12
  import { t as AmbientGridTemplate } from "./AmbientGridTemplate-D0GSZj4a.js";
13
13
  import { t as ActionsRenderer } from "./ActionsRenderer-DbrPKZ1o.js";
14
14
  import { t as FluentCheckbox } from "./FluentCheckbox-CX7XgoFz.js";
15
- import { t as IconLibrary_default } from "./IconLibrary-osCsP8i1.js";
15
+ import { t as IconLibrary_default } from "./IconLibrary-BcnAXrDy.js";
16
16
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
17
17
  import { Button, IconButton, LinearProgress, TextField } from "@material-ui/core";
18
18
  import { useTranslation } from "react-i18next";
@@ -225,4 +225,4 @@ var UdpVerticalManagementSidesheet_default = UdpVerticalManagementSidesheet;
225
225
 
226
226
  //#endregion
227
227
  export { UdpVerticalManagementSidesheet_default as t };
228
- //# sourceMappingURL=UdpVerticalManagementSidesheet-DW19BM9D.js.map
228
+ //# sourceMappingURL=UdpVerticalManagementSidesheet-DomJyrvo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UdpVerticalManagementSidesheet-DW19BM9D.js","names":["products","IconLibrary"],"sources":["../src/udp/pages/UdpVerticalManagementSidesheet/UdpVerticalManagementSidesheet.jsx"],"sourcesContent":["import React, {\n useCallback,\n useState,\n useMemo,\n useRef,\n useEffect,\n useLayoutEffect\n} from 'react';\nimport {\n TextField,\n Button,\n LinearProgress,\n IconButton\n} from '@material-ui/core';\nimport { Form } from '../../../utilities/form/Form';\nimport { Field } from '../../../utilities/form/Field';\nimport { SubmitButton } from '../../../utilities/form/SubmitButton';\nimport { SideSheet } from '../../../UI/surfaces/SideSheet';\nimport { AmbientGridTemplate } from '../../../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\nimport { useActionState } from '../../../hooks/useActions';\nimport { useTranslation } from 'react-i18next';\nimport { ActionsRenderer } from '../../../UI/templates/ui/renderers/ActionsRenderer';\nimport { FluentCheckbox } from '../../../UI/inputs/checkbox/FluentCheckbox';\nimport { UnityFluentIcon } from '../../../utilities/iconLibrary/UnityFluentIcon';\nimport {\n findAllParentIds,\n getIconFromName\n} from '../../../utilities/tree/TreeUtilities';\nimport { getUnityIconFromName } from '../../../utilities/iconLibrary/UnityIconLibrary';\nimport IconLibrary from '../../../utilities/iconLibrary/IconLibrary';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { FormButtons } from '../../../utilities/form';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { ConfigService } from '../../../configService';\n\nconst UdpVerticalManagementSidesheet = (props) => {\n const {\n selectedVertical,\n environment,\n associatedProducts,\n isEdit,\n deleteVertical,\n open,\n selectedCatalog,\n closeSidesheet,\n onSubmit,\n ...sheetProps\n } = props;\n const { t } = useTranslation();\n const [loading, setLoading] = useState(false);\n const actionState = useActionState();\n const [displayedIcon, setDisplayedIcon] = useState({\n name: 'StatusCircleQuestionMarkIcon',\n color: '',\n type: ''\n });\n const [products, setProducts] = useState([]);\n const [openIconLibrary, setOpenIconLibrary] = useState(false);\n\n const [selectedProductIds, setSelectedProductIds] = useState([]);\n const [checkboxValues, setCheckboxValues] = useState([]);\n const [submitButtonDisabled, setSubmitButtonDisabled] = useState(true);\n const selectedProductIdsRef = useRef();\n selectedProductIdsRef.current = selectedProductIds;\n const displayedIconRef = useRef();\n displayedIconRef.current = displayedIcon;\n const selectedVerticalRef = useRef();\n selectedVerticalRef.current = selectedVertical;\n const formRef = useRef();\n const nameRef = useRef();\n\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const CheckBoxRenderer = ({ onChange, value, id, defaultChecked }) => {\n const isAssociatedToVertical = useCallback(\n (productId) => {\n if (!isEdit) return false;\n for (let product of associatedProducts) {\n if (\n product.productId === productId &&\n product.verticalId === selectedVerticalRef.current.verticalId\n ) {\n return true;\n }\n }\n // console.log(selectedVerticalRef.current.icon)\n const icon = getIconFromName(selectedVerticalRef.current.icon);\n // console.log(\"🚀 ~ file: UdpVerticalManagementSidesheet.jsx:81 ~ isAssociatedToVertical ~ icon:\", icon)\n\n return false;\n },\n [associatedProducts, selectedVerticalRef]\n );\n\n const handleCheckboxChange = (e) => {\n if (e.target.checked) {\n setSelectedProductIds((prevState) => [...prevState, id]);\n } else {\n setSelectedProductIds((prevState) =>\n prevState.filter((item) => item !== id)\n );\n }\n };\n\n return (\n <FluentCheckbox\n // checked={value}\n defaultChecked={isAssociatedToVertical(id)}\n onChange={handleCheckboxChange}\n aria='column-active'\n />\n );\n };\n\n // const actionList = useMemo(\n // () => [\n // {\n // id: 1, // Must be unique\n // title: t('Edit'),\n // icon: EditIcon,\n // onClick: handleEditPage,\n // disabled: false\n // },\n // {\n // id: 2, // Must be unique\n // title: t('Delete'),\n // icon: DeleteIcon,\n // onClick: handleDelete,\n // disabled: false\n // }\n // ],\n // [t, handleEditPage, handleDelete]\n // );\n\n const gridOptions = useMemo(\n () => ({\n frameworkComponents: {\n actionsRenderer: ActionsRenderer,\n checkboxRenderer: CheckBoxRenderer\n },\n columnDefs: [\n {\n headerName: '',\n field: 'select',\n cellRenderer: 'checkboxRenderer',\n cellRendererParams: (params) => ({\n // onChange: onChange,\n // value: checked[params.data.productId] || false,\n id: params.data.productId\n })\n },\n {\n headerName: t('Product Name'),\n field: 'name',\n minWidth: 200\n }\n ]\n }),\n [isEdit, selectedVertical, associatedProducts]\n );\n\n const executeMutation = useCallback(\n async (endpoint, method, data) =>\n apiMutate(\n ConfigService.uemV1ApiUrl,\n endpoint,\n {\n method: method || 'post'\n },\n data\n ),\n []\n );\n\n const getProducts = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation('uem', 'post', data);\n if (response?.status === 200) {\n setProducts(response?.data);\n }\n setLoading(false);\n },\n [executeMutation, setProducts]\n );\n\n const createVertical = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation(\n 'vertical/uemCreate',\n 'post',\n data\n );\n if (response?.status === 201) {\n closeSidesheet();\n handleSuccessSnackbar('Vertical Created Successfully');\n } else {\n handleErrorSnackbar('Something went wrong');\n }\n setLoading(false);\n },\n [executeMutation]\n );\n\n const updateVertical = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation(\n `vertical/${selectedVertical.verticalId}/uemUpdate`,\n 'put',\n data\n );\n if (response?.status === 204) {\n closeSidesheet();\n handleSuccessSnackbar('Vertical Updated Successfully');\n } else {\n handleErrorSnackbar('Something went wrong');\n }\n setLoading(false);\n },\n [selectedVertical, executeMutation]\n );\n\n const handleSubmit = useCallback(\n (values) => {\n setLoading(true);\n const products = selectedProductIdsRef.current.map((productId) => ({\n productId\n }));\n\n !isEdit\n ? createVertical({\n data: {\n name: values.name,\n products: products,\n icon: displayedIconRef?.current.name,\n EnvironmentId: environment.environmentId,\n apiPath: 'api/v1/vertical/uemCreate'\n }\n })\n : updateVertical({\n data: {\n name: values.name,\n products: products,\n icon: displayedIconRef?.current.name,\n EnvironmentId: environment.environmentId,\n apiPath: `api/v1/vertical/${selectedVertical.verticalId}/uemUpdate`\n }\n });\n },\n [\n isEdit,\n createVertical,\n environment,\n updateVertical,\n selectedVertical,\n selectedProductIdsRef\n ]\n );\n\n useEffect(() => {\n if (environment && getProducts) {\n if (environment.environmentId) {\n const data = {\n data: {\n customerId: null,\n environmentId: environment.environmentId,\n apiPath: `tenantService/api/v2/product`\n }\n };\n getProducts(data);\n }\n }\n }, [environment, getProducts]);\n\n useEffect(() => {\n if (selectedVertical) {\n const associatedProductIds = selectedVertical.verticalProductVertical.map(\n (product) => product.productId\n );\n setSelectedProductIds((prevState) => [\n ...prevState,\n ...associatedProductIds\n ]);\n }\n }, [selectedVertical, setSelectedProductIds]);\n\n const setDisplayedIconCallback = useCallback(() => {\n setDisplayedIcon({\n name:\n isEdit && selectedVertical?.icon\n ? selectedVertical?.icon\n : 'StatusCircleQuestionMarkIcon'\n });\n }, [selectedVertical, isEdit]);\n\n useEffect(() => {\n setDisplayedIconCallback();\n }, [open]);\n\n const closeIconLibrary = () => {\n setOpenIconLibrary(false);\n };\n\n const onOpenLibrary = () => {\n setOpenIconLibrary(true);\n };\n\n const handleIconSelect = (icon) => {\n const updateddisplayedIcon = { ...props.displayedIcon };\n updateddisplayedIcon.name = icon.id;\n updateddisplayedIcon.type = icon.type || null;\n setDisplayedIcon(updateddisplayedIcon);\n closeIconLibrary();\n };\n\n const initialValues = useMemo(() => {\n return {\n name: isEdit ? selectedVertical?.name : ''\n };\n }, [associatedProducts, selectedVertical, isEdit]);\n\n return (\n <>\n <SideSheet\n open={open}\n onClose={() => closeSidesheet()}\n width={400}\n title={props.title}\n // buttonLabel={\"Create\"}\n // onSubmit={handleSubmit}\n >\n <Form\n ref={formRef}\n onSubmit={handleSubmit}\n initialValues={initialValues}\n >\n <div style={{ display: 'flex' }}>\n <Field\n ref={nameRef}\n component={TextField}\n label={t('Name')}\n id='name'\n name='name'\n variant='outlined'\n size='small'\n required={true}\n style={{ marginTop: 8 }}\n />\n\n <IconButton onClick={onOpenLibrary}>\n {displayedIcon && (\n <UnityFluentIcon\n type={displayedIcon?.type}\n icon={\n displayedIcon?.type === 'unity'\n ? getUnityIconFromName(displayedIcon?.name)\n : getIconFromName(displayedIcon?.name)\n }\n />\n )}\n </IconButton>\n </div>\n <AmbientGridTemplate\n data={products}\n title={t('Products')}\n loading={loading}\n height={'calc(100vh - 300px)'}\n hideGroupTab\n hideColumnTab\n disablePagination\n hideFitGrid\n hideExpandGrid\n hideExportGrid\n hideRemoveFilters\n hideFilterTab\n {...gridOptions}\n />\n <FormButtons>\n <SubmitButton\n variant='contained'\n color='secondary'\n marginTop={'50px'}\n disabled={false}\n disablePristine={false}\n >\n {t(isEdit ? 'Update' : 'Create')}\n </SubmitButton>\n </FormButtons>\n {loading && <LinearProgress />}\n </Form>\n </SideSheet>\n <SideSheet\n open={openIconLibrary}\n onClose={closeIconLibrary}\n title={t('Icon Library')}\n width={'100%'}\n anchor='bottom'\n >\n <IconLibrary\n addItem={handleIconSelect}\n selectedIconName={displayedIcon?.name}\n title={t('Select Icon')}\n />\n </SideSheet>\n </>\n );\n};\n\nexport default UdpVerticalManagementSidesheet;\n"],"mappings":"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"}
1
+ {"version":3,"file":"UdpVerticalManagementSidesheet-DomJyrvo.js","names":["products","IconLibrary"],"sources":["../src/udp/pages/UdpVerticalManagementSidesheet/UdpVerticalManagementSidesheet.jsx"],"sourcesContent":["import React, {\n useCallback,\n useState,\n useMemo,\n useRef,\n useEffect,\n useLayoutEffect\n} from 'react';\nimport {\n TextField,\n Button,\n LinearProgress,\n IconButton\n} from '@material-ui/core';\nimport { Form } from '../../../utilities/form/Form';\nimport { Field } from '../../../utilities/form/Field';\nimport { SubmitButton } from '../../../utilities/form/SubmitButton';\nimport { SideSheet } from '../../../UI/surfaces/SideSheet';\nimport { AmbientGridTemplate } from '../../../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\nimport { useActionState } from '../../../hooks/useActions';\nimport { useTranslation } from 'react-i18next';\nimport { ActionsRenderer } from '../../../UI/templates/ui/renderers/ActionsRenderer';\nimport { FluentCheckbox } from '../../../UI/inputs/checkbox/FluentCheckbox';\nimport { UnityFluentIcon } from '../../../utilities/iconLibrary/UnityFluentIcon';\nimport {\n findAllParentIds,\n getIconFromName\n} from '../../../utilities/tree/TreeUtilities';\nimport { getUnityIconFromName } from '../../../utilities/iconLibrary/UnityIconLibrary';\nimport IconLibrary from '../../../utilities/iconLibrary/IconLibrary';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { FormButtons } from '../../../utilities/form';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { ConfigService } from '../../../configService';\n\nconst UdpVerticalManagementSidesheet = (props) => {\n const {\n selectedVertical,\n environment,\n associatedProducts,\n isEdit,\n deleteVertical,\n open,\n selectedCatalog,\n closeSidesheet,\n onSubmit,\n ...sheetProps\n } = props;\n const { t } = useTranslation();\n const [loading, setLoading] = useState(false);\n const actionState = useActionState();\n const [displayedIcon, setDisplayedIcon] = useState({\n name: 'StatusCircleQuestionMarkIcon',\n color: '',\n type: ''\n });\n const [products, setProducts] = useState([]);\n const [openIconLibrary, setOpenIconLibrary] = useState(false);\n\n const [selectedProductIds, setSelectedProductIds] = useState([]);\n const [checkboxValues, setCheckboxValues] = useState([]);\n const [submitButtonDisabled, setSubmitButtonDisabled] = useState(true);\n const selectedProductIdsRef = useRef();\n selectedProductIdsRef.current = selectedProductIds;\n const displayedIconRef = useRef();\n displayedIconRef.current = displayedIcon;\n const selectedVerticalRef = useRef();\n selectedVerticalRef.current = selectedVertical;\n const formRef = useRef();\n const nameRef = useRef();\n\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const CheckBoxRenderer = ({ onChange, value, id, defaultChecked }) => {\n const isAssociatedToVertical = useCallback(\n (productId) => {\n if (!isEdit) return false;\n for (let product of associatedProducts) {\n if (\n product.productId === productId &&\n product.verticalId === selectedVerticalRef.current.verticalId\n ) {\n return true;\n }\n }\n // console.log(selectedVerticalRef.current.icon)\n const icon = getIconFromName(selectedVerticalRef.current.icon);\n // console.log(\"🚀 ~ file: UdpVerticalManagementSidesheet.jsx:81 ~ isAssociatedToVertical ~ icon:\", icon)\n\n return false;\n },\n [associatedProducts, selectedVerticalRef]\n );\n\n const handleCheckboxChange = (e) => {\n if (e.target.checked) {\n setSelectedProductIds((prevState) => [...prevState, id]);\n } else {\n setSelectedProductIds((prevState) =>\n prevState.filter((item) => item !== id)\n );\n }\n };\n\n return (\n <FluentCheckbox\n // checked={value}\n defaultChecked={isAssociatedToVertical(id)}\n onChange={handleCheckboxChange}\n aria='column-active'\n />\n );\n };\n\n // const actionList = useMemo(\n // () => [\n // {\n // id: 1, // Must be unique\n // title: t('Edit'),\n // icon: EditIcon,\n // onClick: handleEditPage,\n // disabled: false\n // },\n // {\n // id: 2, // Must be unique\n // title: t('Delete'),\n // icon: DeleteIcon,\n // onClick: handleDelete,\n // disabled: false\n // }\n // ],\n // [t, handleEditPage, handleDelete]\n // );\n\n const gridOptions = useMemo(\n () => ({\n frameworkComponents: {\n actionsRenderer: ActionsRenderer,\n checkboxRenderer: CheckBoxRenderer\n },\n columnDefs: [\n {\n headerName: '',\n field: 'select',\n cellRenderer: 'checkboxRenderer',\n cellRendererParams: (params) => ({\n // onChange: onChange,\n // value: checked[params.data.productId] || false,\n id: params.data.productId\n })\n },\n {\n headerName: t('Product Name'),\n field: 'name',\n minWidth: 200\n }\n ]\n }),\n [isEdit, selectedVertical, associatedProducts]\n );\n\n const executeMutation = useCallback(\n async (endpoint, method, data) =>\n apiMutate(\n ConfigService.uemV1ApiUrl,\n endpoint,\n {\n method: method || 'post'\n },\n data\n ),\n []\n );\n\n const getProducts = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation('uem', 'post', data);\n if (response?.status === 200) {\n setProducts(response?.data);\n }\n setLoading(false);\n },\n [executeMutation, setProducts]\n );\n\n const createVertical = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation(\n 'vertical/uemCreate',\n 'post',\n data\n );\n if (response?.status === 201) {\n closeSidesheet();\n handleSuccessSnackbar('Vertical Created Successfully');\n } else {\n handleErrorSnackbar('Something went wrong');\n }\n setLoading(false);\n },\n [executeMutation]\n );\n\n const updateVertical = useCallback(\n async (data) => {\n setLoading(true);\n\n const response = await executeMutation(\n `vertical/${selectedVertical.verticalId}/uemUpdate`,\n 'put',\n data\n );\n if (response?.status === 204) {\n closeSidesheet();\n handleSuccessSnackbar('Vertical Updated Successfully');\n } else {\n handleErrorSnackbar('Something went wrong');\n }\n setLoading(false);\n },\n [selectedVertical, executeMutation]\n );\n\n const handleSubmit = useCallback(\n (values) => {\n setLoading(true);\n const products = selectedProductIdsRef.current.map((productId) => ({\n productId\n }));\n\n !isEdit\n ? createVertical({\n data: {\n name: values.name,\n products: products,\n icon: displayedIconRef?.current.name,\n EnvironmentId: environment.environmentId,\n apiPath: 'api/v1/vertical/uemCreate'\n }\n })\n : updateVertical({\n data: {\n name: values.name,\n products: products,\n icon: displayedIconRef?.current.name,\n EnvironmentId: environment.environmentId,\n apiPath: `api/v1/vertical/${selectedVertical.verticalId}/uemUpdate`\n }\n });\n },\n [\n isEdit,\n createVertical,\n environment,\n updateVertical,\n selectedVertical,\n selectedProductIdsRef\n ]\n );\n\n useEffect(() => {\n if (environment && getProducts) {\n if (environment.environmentId) {\n const data = {\n data: {\n customerId: null,\n environmentId: environment.environmentId,\n apiPath: `tenantService/api/v2/product`\n }\n };\n getProducts(data);\n }\n }\n }, [environment, getProducts]);\n\n useEffect(() => {\n if (selectedVertical) {\n const associatedProductIds = selectedVertical.verticalProductVertical.map(\n (product) => product.productId\n );\n setSelectedProductIds((prevState) => [\n ...prevState,\n ...associatedProductIds\n ]);\n }\n }, [selectedVertical, setSelectedProductIds]);\n\n const setDisplayedIconCallback = useCallback(() => {\n setDisplayedIcon({\n name:\n isEdit && selectedVertical?.icon\n ? selectedVertical?.icon\n : 'StatusCircleQuestionMarkIcon'\n });\n }, [selectedVertical, isEdit]);\n\n useEffect(() => {\n setDisplayedIconCallback();\n }, [open]);\n\n const closeIconLibrary = () => {\n setOpenIconLibrary(false);\n };\n\n const onOpenLibrary = () => {\n setOpenIconLibrary(true);\n };\n\n const handleIconSelect = (icon) => {\n const updateddisplayedIcon = { ...props.displayedIcon };\n updateddisplayedIcon.name = icon.id;\n updateddisplayedIcon.type = icon.type || null;\n setDisplayedIcon(updateddisplayedIcon);\n closeIconLibrary();\n };\n\n const initialValues = useMemo(() => {\n return {\n name: isEdit ? selectedVertical?.name : ''\n };\n }, [associatedProducts, selectedVertical, isEdit]);\n\n return (\n <>\n <SideSheet\n open={open}\n onClose={() => closeSidesheet()}\n width={400}\n title={props.title}\n // buttonLabel={\"Create\"}\n // onSubmit={handleSubmit}\n >\n <Form\n ref={formRef}\n onSubmit={handleSubmit}\n initialValues={initialValues}\n >\n <div style={{ display: 'flex' }}>\n <Field\n ref={nameRef}\n component={TextField}\n label={t('Name')}\n id='name'\n name='name'\n variant='outlined'\n size='small'\n required={true}\n style={{ marginTop: 8 }}\n />\n\n <IconButton onClick={onOpenLibrary}>\n {displayedIcon && (\n <UnityFluentIcon\n type={displayedIcon?.type}\n icon={\n displayedIcon?.type === 'unity'\n ? getUnityIconFromName(displayedIcon?.name)\n : getIconFromName(displayedIcon?.name)\n }\n />\n )}\n </IconButton>\n </div>\n <AmbientGridTemplate\n data={products}\n title={t('Products')}\n loading={loading}\n height={'calc(100vh - 300px)'}\n hideGroupTab\n hideColumnTab\n disablePagination\n hideFitGrid\n hideExpandGrid\n hideExportGrid\n hideRemoveFilters\n hideFilterTab\n {...gridOptions}\n />\n <FormButtons>\n <SubmitButton\n variant='contained'\n color='secondary'\n marginTop={'50px'}\n disabled={false}\n disablePristine={false}\n >\n {t(isEdit ? 'Update' : 'Create')}\n </SubmitButton>\n </FormButtons>\n {loading && <LinearProgress />}\n </Form>\n </SideSheet>\n <SideSheet\n open={openIconLibrary}\n onClose={closeIconLibrary}\n title={t('Icon Library')}\n width={'100%'}\n anchor='bottom'\n >\n <IconLibrary\n addItem={handleIconSelect}\n selectedIconName={displayedIcon?.name}\n title={t('Select Icon')}\n />\n </SideSheet>\n </>\n );\n};\n\nexport default UdpVerticalManagementSidesheet;\n"],"mappings":"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"}
@@ -344,4 +344,4 @@ var UserForm_default = UserForm;
344
344
 
345
345
  //#endregion
346
346
  export { UserForm_default as n, isPasswordValid as r, UserForm as t };
347
- //# sourceMappingURL=UserForm-DNRashuU.js.map
347
+ //# sourceMappingURL=UserForm-DZ1a9uqZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserForm-DNRashuU.js","names":["useStyles","Field","PasswordValidator","Form","UserFormFields"],"sources":["../src/shell/ui/addUser/PasswordValidator.jsx","../src/shell/ui/addUser/UserFormFields.jsx","../src/shell/ui/addUser/UserForm.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nconst validatePassword = (\n password,\n lengthRestriction = 0,\n upperCaseRestriction = false,\n specialCharacterRestriction = false,\n numberRestriction = false,\n lowerCaseRestriction = false\n) => {\n let issues = [];\n if(!password) return [];\n if (lengthRestriction && password.length < lengthRestriction) {\n issues.push(\n `Password must be at least ${lengthRestriction} characters long.`\n );\n }\n if (upperCaseRestriction && !/[A-Z]/.test(password)) {\n issues.push('Password must contain at least one uppercase letter.');\n }\n if (specialCharacterRestriction && !/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n issues.push('Password must contain at least one special character.');\n }\n if (numberRestriction && !/\\d/.test(password)) {\n issues.push('Password must contain at least one number.');\n }\n if (lowerCaseRestriction && !/[a-z]/.test(password)) {\n issues.push('Password must contain at least one lowercase letter.');\n }\n return issues;\n};\nexport const isPasswordValid = (\n password,\n lengthRestriction = 0,\n upperCaseRestriction = false,\n specialCharacterRestriction = false,\n numberRestriction = false,\n lowerCaseRestriction = false\n) => {\n return (\n validatePassword(\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction\n ).length === 0\n );\n};\nconst PasswordValidator = ({\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction,\n}) => {\n const issues = useMemo(\n () =>\n validatePassword(\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction\n ),\n [password]\n );\n\n return issues?.length && password?.length ? (\n <div>\n <p style={{ color: 'red' }}>\n {issues.map((issue, index) => (\n <>\n {issue}\n <br />\n </>\n ))}\n </p>\n </div>\n ) : null;\n};\n\nexport default PasswordValidator;\n","import {\n Checkbox,\n FormControlLabel,\n makeStyles,\n TextField,\n RadioGroup,\n Radio,\n InputAdornment,\n IconButton,\n FormControl,\n FormLabel\n} from '@material-ui/core';\nimport React, { useState, useMemo, useCallback, useEffect } from 'react';\nimport { ADUserTypeEnums } from '../../../enums/unitySystemEnums';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { Field } from '../../../utilities/form/Field';\nimport { Visibility, VisibilityOff } from '@material-ui/icons';\nimport { useForm } from 'react-final-form';\nimport PasswordValidator, { isPasswordValid } from './PasswordValidator';\nimport { useTranslation } from 'react-i18next';\nimport { FluentTextFieldAutoComplete } from '../../../UI/inputs/textField/FluentTextFieldAutoComplete';\n\n\nconst removeWhiteSpace = str => {\n if (!str) {\n return '';\n }\n return str.replace(/\\s/g, '');\n};\n\n\n\nconst useStyles = makeStyles(theme => ({\n field: {\n marginBottom: theme.spacing(2),\n },\n selectors: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: theme.spacing(1),\n },\n alert: {\n marginTop: theme.spacing(-2),\n marginBottom: theme.spacing(2),\n },\n accountDisabledCheckbox: {\n height: 'auto',\n },\n accountDisabledCheckboxLabel: {\n marginTop: theme.spacing(1),\n },\n creationMethodGroup: {\n marginBottom: theme.spacing(2),\n flexDirection: 'row',\n },\n}));\n\n\nconst UserFormFields = props => {\n const {\n editedUser,\n rolesData,\n showRolesField = true,\n handlePasswordTypeChange,\n passwordType,\n creationMethod,\n handleCreationMethodChange,\n } = props;\n const classes = useStyles();\n const user = useUser();\n const [showPassword, setShowPassword] = useState(false);\n const form = useForm();\n const { t } = useTranslation();\n\n const roles = useMemo(() => {\n if (!rolesData) {\n return [];\n }\n rolesData.forEach(r => {\n r.label = r.name;\n r.value = r.name;\n });\n return rolesData\n .sort((a, b) => a.label.localeCompare(b.label))\n .sort((a, b) => a.productName.localeCompare(b.productName));\n }, [rolesData]);\n\n\n const handleClickShowPassword = useCallback(() => {\n setShowPassword(!showPassword);\n }, [showPassword]);\n\n useEffect(() => {\n if (editedUser) {\n form.change('givenName', editedUser.givenName);\n form.change('surname', editedUser.surname);\n form.change('jobTitle', editedUser.jobTitle);\n form.change('location', editedUser.location);\n form.change('mobilePhone', editedUser.mobilePhone);\n form.change('officePhone', editedUser.officePhone);\n }\n }, [editedUser, form]);\n\n return (\n <>\n {editedUser && (\n <Field\n component={TextField}\n label={t(\"Unity ID\")}\n id=\"unity-id\"\n udprecordid=\"udpRecord-UserFormFields-unity-id\"\n name=\"unityId\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n editedUser?.userId\n }\n disabled={true}\n />\n )}\n\n {!editedUser && (\n <FormControl component=\"fieldset\" fullWidth>\n <FormLabel component=\"legend\">{t(\"Creation Method\")}</FormLabel>\n <RadioGroup\n aria-label=\"creation-method\"\n name=\"creation-method\"\n value={creationMethod}\n onChange={handleCreationMethodChange}\n className={classes.creationMethodGroup}\n >\n <FormControlLabel value=\"standard\" control={<Radio />} label={t(\"Standard (Create & Password)\")} />\n <FormControlLabel value=\"invite\" control={<Radio />} label={t(\"Invite User (Send Email Link)\")} />\n </RadioGroup>\n </FormControl>\n )}\n\n <Field\n component={TextField}\n label={t(\"First Name\")}\n id=\"first-name\"\n udprecordid=\"udpRecord-UserFormFields-first-name\"\n name=\"givenName\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.givenName}\n disabled={!user.can.CAN_MANAGE_USERS}\n />\n <Field\n component={TextField}\n label={t(\"Last Name\")}\n id=\"last-name\"\n udprecordid=\"udpRecord-UserFormFields-last-name\"\n name=\"surname\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.surname}\n disabled={!user.can.CAN_MANAGE_USERS}\n />\n <Field\n component={TextField}\n label={t(\"Email\")}\n id=\"email\"\n udprecordid=\"udpRecord-UserFormFields-email\"\n name=\"email\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.email}\n disabled={editedUser && !user.can.CAN_MODIFY_EMAIL}\n validate={value => {\n if (\n !/^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n value\n ) ||\n 64 < value.split('@')[0].length\n ) {\n return t('Invalid email address');\n }\n }}\n />\n <Field\n component={TextField}\n label={t(\"Title\")}\n id=\"title\"\n udprecordid=\"udpRecord-UserFormFields-title\"\n name=\"jobTitle\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n typeof editedUser?.jobTitle === 'string'\n ? editedUser?.jobTitle.trim()\n : null\n }\n disabled={!user.can.CAN_MANAGE_USERS}\n parse={value => value} // makes empty string values get added to form submission object\n />\n <Field\n component={TextField}\n label={t(\"Location\")}\n id=\"location\"\n udprecordid=\"udpRecord-UserFormFields-location\"\n name=\"location\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n typeof editedUser?.location === 'string'\n ? editedUser?.location.trim()\n : null\n }\n disabled={!user.can.CAN_MANAGE_USERS}\n parse={value => value}\n />\n <Field\n component={TextField}\n label={t(\"Mobile Phone\")}\n id=\"mobile-phone\"\n udprecordid=\"udpRecord-UserFormFields-mobile-phone\"\n name=\"mobilePhone\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={removeWhiteSpace(editedUser?.mobilePhone)}\n disabled={\n !user.can.CAN_MANAGE_USERS ||\n editedUser?.userType === ADUserTypeEnums.Guest\n }\n parse={value => value}\n />\n <Field\n component={TextField}\n label={t(\"Office Phone\")}\n id=\"office-phone\"\n udprecordid=\"udpRecord-UserFormFields-office-phone\"\n name=\"officePhone\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={removeWhiteSpace(editedUser?.officePhone)}\n disabled={\n !user.can.CAN_MANAGE_USERS ||\n editedUser?.userType === ADUserTypeEnums.Guest\n }\n parse={value => value}\n />\n {showRolesField && (\n <Field\n component={FluentTextFieldAutoComplete}\n label={t(\"Select Role\")}\n id=\"roles\"\n udprecordid=\"udpRecord-UserFormFields-roles\"\n name=\"roles\"\n fullWidth\n options={roles || []}\n textFieldProps={{\n id: 'roles',\n name: 'roles',\n }}\n optionKey={'label'}\n isMultiple={true}\n groupBy={(option) => option.productName}\n required\n />\n )}\n {!editedUser && creationMethod !== 'invite' && (\n <>\n <RadioGroup\n aria-labelledby=\"password-type\"\n name=\"password-type\"\n value={passwordType}\n onChange={handlePasswordTypeChange}\n >\n <FormControlLabel\n value=\"autoGeneratePassword\"\n control={<Radio />}\n label={t(\"Auto-generate password\")}\n udprecordid=\"udpRecord-UserFormFields-auto-generate-password\"\n />\n <FormControlLabel\n value=\"createPassword\"\n control={<Radio />}\n label={t(\"Let me create the password\")}\n udprecordid=\"udpRecord-UserFormFields-create-password\"\n />\n </RadioGroup>\n {passwordType === 'createPassword' && (\n <Field\n component={TextField}\n label={t(\"Password\")}\n id=\"passwordProfile\"\n udprecordid=\"udpRecord-UserFormFields-passwordProfile\"\n name=\"passwordProfile\"\n type={showPassword ? 'text' : 'password'}\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n autoComplete=\"new-password\"\n validate={value =>\n !isPasswordValid(value, 8, true, true, true, true) && (\n <PasswordValidator\n password={value}\n numberRestriction\n lowerCaseRestriction\n upperCaseRestriction\n lengthRestriction={8}\n specialCharacterRestriction\n />\n )\n }\n InputProps={{\n // <-- This is where the toggle button is added.\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"toggle password visibility\"\n onClick={handleClickShowPassword}\n >\n {showPassword ? <Visibility /> : <VisibilityOff />}\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n )}\n </>\n )}\n {!editedUser && creationMethod !== 'invite' && (\n <FormControlLabel\n className={classes.accountDisabledCheckboxLabel}\n label={t('Do not activate account and do not send a welcome email.')}\n control={\n <Field\n component={Checkbox}\n id=\"account-disabled\"\n udprecordid=\"udpRecord-UserFormFields-account-disabled\"\n name={'locked'}\n type=\"checkbox\"\n disabled={!user.can.CAN_MANAGE_USERS}\n classes={classes}\n />\n }\n />\n )}\n </>\n );\n};\nexport default UserFormFields;\n","import { Divider, LinearProgress, makeStyles } from '@material-ui/core';\nimport React, { useCallback, useState } from 'react';\nimport { Form } from '../../../utilities/form/Form';\nimport { FormButtons } from '../../../utilities/form/FormButtons';\nimport { SubmitButton } from '../../../utilities/form/SubmitButton';\nimport { useAxiosGet } from '../../../../src/utilities/useAxiosGet';\nimport { useUser } from '../../../../src/utilities/auth/useUser';\nimport UserFormFields from './UserFormFields';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../../../configService';\n\n\nconst useStyles = makeStyles(theme => ({\n divider: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n loadingBar: {\n bottom: theme.spacing(-2),\n marginLeft: theme.spacing(-2),\n marginRight: theme.spacing(-2),\n },\n}));\n\nexport const UserForm = props => {\n const {\n submitUser,\n editedUser,\n creatingUser,\n tenant,\n updateCreatedUser,\n showRolesField = true,\n } = props;\n const classes = useStyles();\n const user = useUser();\n const [passwordType, setPasswordType] = useState('autoGeneratePassword');\n const [creationMethod, setCreationMethod] = useState('standard'); // 'standard' | 'invite'\n const { t } = useTranslation();\n\n\n // GET list of roles\n const [{ data: rolesData }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `roles?userId=${user.id}&tenantId=${tenant?.tenantId}`,\n {},\n !!!tenant,\n false\n );\n\n const handlePasswordTypeChange = useCallback(event => {\n setPasswordType(event.target.value);\n }, []);\n\n const handleCreationMethodChange = useCallback(event => {\n setCreationMethod(event.target.value);\n }, []);\n\n const handleSubmitUser = useCallback(\n values => {\n if (submitUser) {\n if (creationMethod === 'invite') {\n values.isInvite = true;\n values.passwordProfile = null;\n } else if (passwordType === 'autoGeneratePassword') {\n values.passwordProfile = null;\n }\n\n if (updateCreatedUser && editedUser) {\n updateCreatedUser(values);\n } else {\n submitUser(values);\n }\n }\n },\n [submitUser, passwordType, creationMethod, updateCreatedUser, editedUser]\n );\n\n return (\n <>\n <Form onSubmit={handleSubmitUser}>\n <UserFormFields\n rolesData={rolesData}\n editedUser={editedUser}\n showRolesField={showRolesField}\n handlePasswordTypeChange={handlePasswordTypeChange}\n passwordType={passwordType}\n creationMethod={creationMethod}\n handleCreationMethodChange={handleCreationMethodChange}\n />\n {user.can.CAN_MANAGE_USERS && (\n <>\n <div className={classes.divider}>\n <Divider />\n </div>\n <FormButtons>\n <SubmitButton\n variant=\"contained\"\n color=\"primary\"\n disablePristine={false}\n disabled={creatingUser}\n udprecordid=\"udpRecord-UserFormFields-submit\"\n >\n {editedUser ? t('Update') : (creationMethod === 'invite' ? t('Send Invite') : t('Create'))}\n </SubmitButton>\n </FormButtons>\n </>\n )}\n </Form>\n {creatingUser && (\n <LinearProgress className={classes.loadingBar} color=\"secondary\" />\n )}\n </>\n );\n};\nexport default UserForm;\n"],"mappings":"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"}
1
+ {"version":3,"file":"UserForm-DZ1a9uqZ.js","names":["useStyles","Field","PasswordValidator","Form","UserFormFields"],"sources":["../src/shell/ui/addUser/PasswordValidator.jsx","../src/shell/ui/addUser/UserFormFields.jsx","../src/shell/ui/addUser/UserForm.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nconst validatePassword = (\n password,\n lengthRestriction = 0,\n upperCaseRestriction = false,\n specialCharacterRestriction = false,\n numberRestriction = false,\n lowerCaseRestriction = false\n) => {\n let issues = [];\n if(!password) return [];\n if (lengthRestriction && password.length < lengthRestriction) {\n issues.push(\n `Password must be at least ${lengthRestriction} characters long.`\n );\n }\n if (upperCaseRestriction && !/[A-Z]/.test(password)) {\n issues.push('Password must contain at least one uppercase letter.');\n }\n if (specialCharacterRestriction && !/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n issues.push('Password must contain at least one special character.');\n }\n if (numberRestriction && !/\\d/.test(password)) {\n issues.push('Password must contain at least one number.');\n }\n if (lowerCaseRestriction && !/[a-z]/.test(password)) {\n issues.push('Password must contain at least one lowercase letter.');\n }\n return issues;\n};\nexport const isPasswordValid = (\n password,\n lengthRestriction = 0,\n upperCaseRestriction = false,\n specialCharacterRestriction = false,\n numberRestriction = false,\n lowerCaseRestriction = false\n) => {\n return (\n validatePassword(\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction\n ).length === 0\n );\n};\nconst PasswordValidator = ({\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction,\n}) => {\n const issues = useMemo(\n () =>\n validatePassword(\n password,\n lengthRestriction,\n upperCaseRestriction,\n specialCharacterRestriction,\n numberRestriction,\n lowerCaseRestriction\n ),\n [password]\n );\n\n return issues?.length && password?.length ? (\n <div>\n <p style={{ color: 'red' }}>\n {issues.map((issue, index) => (\n <>\n {issue}\n <br />\n </>\n ))}\n </p>\n </div>\n ) : null;\n};\n\nexport default PasswordValidator;\n","import {\n Checkbox,\n FormControlLabel,\n makeStyles,\n TextField,\n RadioGroup,\n Radio,\n InputAdornment,\n IconButton,\n FormControl,\n FormLabel\n} from '@material-ui/core';\nimport React, { useState, useMemo, useCallback, useEffect } from 'react';\nimport { ADUserTypeEnums } from '../../../enums/unitySystemEnums';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { Field } from '../../../utilities/form/Field';\nimport { Visibility, VisibilityOff } from '@material-ui/icons';\nimport { useForm } from 'react-final-form';\nimport PasswordValidator, { isPasswordValid } from './PasswordValidator';\nimport { useTranslation } from 'react-i18next';\nimport { FluentTextFieldAutoComplete } from '../../../UI/inputs/textField/FluentTextFieldAutoComplete';\n\n\nconst removeWhiteSpace = str => {\n if (!str) {\n return '';\n }\n return str.replace(/\\s/g, '');\n};\n\n\n\nconst useStyles = makeStyles(theme => ({\n field: {\n marginBottom: theme.spacing(2),\n },\n selectors: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: theme.spacing(1),\n },\n alert: {\n marginTop: theme.spacing(-2),\n marginBottom: theme.spacing(2),\n },\n accountDisabledCheckbox: {\n height: 'auto',\n },\n accountDisabledCheckboxLabel: {\n marginTop: theme.spacing(1),\n },\n creationMethodGroup: {\n marginBottom: theme.spacing(2),\n flexDirection: 'row',\n },\n}));\n\n\nconst UserFormFields = props => {\n const {\n editedUser,\n rolesData,\n showRolesField = true,\n handlePasswordTypeChange,\n passwordType,\n creationMethod,\n handleCreationMethodChange,\n } = props;\n const classes = useStyles();\n const user = useUser();\n const [showPassword, setShowPassword] = useState(false);\n const form = useForm();\n const { t } = useTranslation();\n\n const roles = useMemo(() => {\n if (!rolesData) {\n return [];\n }\n rolesData.forEach(r => {\n r.label = r.name;\n r.value = r.name;\n });\n return rolesData\n .sort((a, b) => a.label.localeCompare(b.label))\n .sort((a, b) => a.productName.localeCompare(b.productName));\n }, [rolesData]);\n\n\n const handleClickShowPassword = useCallback(() => {\n setShowPassword(!showPassword);\n }, [showPassword]);\n\n useEffect(() => {\n if (editedUser) {\n form.change('givenName', editedUser.givenName);\n form.change('surname', editedUser.surname);\n form.change('jobTitle', editedUser.jobTitle);\n form.change('location', editedUser.location);\n form.change('mobilePhone', editedUser.mobilePhone);\n form.change('officePhone', editedUser.officePhone);\n }\n }, [editedUser, form]);\n\n return (\n <>\n {editedUser && (\n <Field\n component={TextField}\n label={t(\"Unity ID\")}\n id=\"unity-id\"\n udprecordid=\"udpRecord-UserFormFields-unity-id\"\n name=\"unityId\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n editedUser?.userId\n }\n disabled={true}\n />\n )}\n\n {!editedUser && (\n <FormControl component=\"fieldset\" fullWidth>\n <FormLabel component=\"legend\">{t(\"Creation Method\")}</FormLabel>\n <RadioGroup\n aria-label=\"creation-method\"\n name=\"creation-method\"\n value={creationMethod}\n onChange={handleCreationMethodChange}\n className={classes.creationMethodGroup}\n >\n <FormControlLabel value=\"standard\" control={<Radio />} label={t(\"Standard (Create & Password)\")} />\n <FormControlLabel value=\"invite\" control={<Radio />} label={t(\"Invite User (Send Email Link)\")} />\n </RadioGroup>\n </FormControl>\n )}\n\n <Field\n component={TextField}\n label={t(\"First Name\")}\n id=\"first-name\"\n udprecordid=\"udpRecord-UserFormFields-first-name\"\n name=\"givenName\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.givenName}\n disabled={!user.can.CAN_MANAGE_USERS}\n />\n <Field\n component={TextField}\n label={t(\"Last Name\")}\n id=\"last-name\"\n udprecordid=\"udpRecord-UserFormFields-last-name\"\n name=\"surname\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.surname}\n disabled={!user.can.CAN_MANAGE_USERS}\n />\n <Field\n component={TextField}\n label={t(\"Email\")}\n id=\"email\"\n udprecordid=\"udpRecord-UserFormFields-email\"\n name=\"email\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n required\n initialValue={editedUser?.email}\n disabled={editedUser && !user.can.CAN_MODIFY_EMAIL}\n validate={value => {\n if (\n !/^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n value\n ) ||\n 64 < value.split('@')[0].length\n ) {\n return t('Invalid email address');\n }\n }}\n />\n <Field\n component={TextField}\n label={t(\"Title\")}\n id=\"title\"\n udprecordid=\"udpRecord-UserFormFields-title\"\n name=\"jobTitle\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n typeof editedUser?.jobTitle === 'string'\n ? editedUser?.jobTitle.trim()\n : null\n }\n disabled={!user.can.CAN_MANAGE_USERS}\n parse={value => value} // makes empty string values get added to form submission object\n />\n <Field\n component={TextField}\n label={t(\"Location\")}\n id=\"location\"\n udprecordid=\"udpRecord-UserFormFields-location\"\n name=\"location\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={\n typeof editedUser?.location === 'string'\n ? editedUser?.location.trim()\n : null\n }\n disabled={!user.can.CAN_MANAGE_USERS}\n parse={value => value}\n />\n <Field\n component={TextField}\n label={t(\"Mobile Phone\")}\n id=\"mobile-phone\"\n udprecordid=\"udpRecord-UserFormFields-mobile-phone\"\n name=\"mobilePhone\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={removeWhiteSpace(editedUser?.mobilePhone)}\n disabled={\n !user.can.CAN_MANAGE_USERS ||\n editedUser?.userType === ADUserTypeEnums.Guest\n }\n parse={value => value}\n />\n <Field\n component={TextField}\n label={t(\"Office Phone\")}\n id=\"office-phone\"\n udprecordid=\"udpRecord-UserFormFields-office-phone\"\n name=\"officePhone\"\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n initialValue={removeWhiteSpace(editedUser?.officePhone)}\n disabled={\n !user.can.CAN_MANAGE_USERS ||\n editedUser?.userType === ADUserTypeEnums.Guest\n }\n parse={value => value}\n />\n {showRolesField && (\n <Field\n component={FluentTextFieldAutoComplete}\n label={t(\"Select Role\")}\n id=\"roles\"\n udprecordid=\"udpRecord-UserFormFields-roles\"\n name=\"roles\"\n fullWidth\n options={roles || []}\n textFieldProps={{\n id: 'roles',\n name: 'roles',\n }}\n optionKey={'label'}\n isMultiple={true}\n groupBy={(option) => option.productName}\n required\n />\n )}\n {!editedUser && creationMethod !== 'invite' && (\n <>\n <RadioGroup\n aria-labelledby=\"password-type\"\n name=\"password-type\"\n value={passwordType}\n onChange={handlePasswordTypeChange}\n >\n <FormControlLabel\n value=\"autoGeneratePassword\"\n control={<Radio />}\n label={t(\"Auto-generate password\")}\n udprecordid=\"udpRecord-UserFormFields-auto-generate-password\"\n />\n <FormControlLabel\n value=\"createPassword\"\n control={<Radio />}\n label={t(\"Let me create the password\")}\n udprecordid=\"udpRecord-UserFormFields-create-password\"\n />\n </RadioGroup>\n {passwordType === 'createPassword' && (\n <Field\n component={TextField}\n label={t(\"Password\")}\n id=\"passwordProfile\"\n udprecordid=\"udpRecord-UserFormFields-passwordProfile\"\n name=\"passwordProfile\"\n type={showPassword ? 'text' : 'password'}\n fullWidth\n variant=\"outlined\"\n margin=\"normal\"\n size=\"small\"\n autoComplete=\"new-password\"\n validate={value =>\n !isPasswordValid(value, 8, true, true, true, true) && (\n <PasswordValidator\n password={value}\n numberRestriction\n lowerCaseRestriction\n upperCaseRestriction\n lengthRestriction={8}\n specialCharacterRestriction\n />\n )\n }\n InputProps={{\n // <-- This is where the toggle button is added.\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"toggle password visibility\"\n onClick={handleClickShowPassword}\n >\n {showPassword ? <Visibility /> : <VisibilityOff />}\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n )}\n </>\n )}\n {!editedUser && creationMethod !== 'invite' && (\n <FormControlLabel\n className={classes.accountDisabledCheckboxLabel}\n label={t('Do not activate account and do not send a welcome email.')}\n control={\n <Field\n component={Checkbox}\n id=\"account-disabled\"\n udprecordid=\"udpRecord-UserFormFields-account-disabled\"\n name={'locked'}\n type=\"checkbox\"\n disabled={!user.can.CAN_MANAGE_USERS}\n classes={classes}\n />\n }\n />\n )}\n </>\n );\n};\nexport default UserFormFields;\n","import { Divider, LinearProgress, makeStyles } from '@material-ui/core';\nimport React, { useCallback, useState } from 'react';\nimport { Form } from '../../../utilities/form/Form';\nimport { FormButtons } from '../../../utilities/form/FormButtons';\nimport { SubmitButton } from '../../../utilities/form/SubmitButton';\nimport { useAxiosGet } from '../../../../src/utilities/useAxiosGet';\nimport { useUser } from '../../../../src/utilities/auth/useUser';\nimport UserFormFields from './UserFormFields';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../../../configService';\n\n\nconst useStyles = makeStyles(theme => ({\n divider: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n loadingBar: {\n bottom: theme.spacing(-2),\n marginLeft: theme.spacing(-2),\n marginRight: theme.spacing(-2),\n },\n}));\n\nexport const UserForm = props => {\n const {\n submitUser,\n editedUser,\n creatingUser,\n tenant,\n updateCreatedUser,\n showRolesField = true,\n } = props;\n const classes = useStyles();\n const user = useUser();\n const [passwordType, setPasswordType] = useState('autoGeneratePassword');\n const [creationMethod, setCreationMethod] = useState('standard'); // 'standard' | 'invite'\n const { t } = useTranslation();\n\n\n // GET list of roles\n const [{ data: rolesData }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `roles?userId=${user.id}&tenantId=${tenant?.tenantId}`,\n {},\n !!!tenant,\n false\n );\n\n const handlePasswordTypeChange = useCallback(event => {\n setPasswordType(event.target.value);\n }, []);\n\n const handleCreationMethodChange = useCallback(event => {\n setCreationMethod(event.target.value);\n }, []);\n\n const handleSubmitUser = useCallback(\n values => {\n if (submitUser) {\n if (creationMethod === 'invite') {\n values.isInvite = true;\n values.passwordProfile = null;\n } else if (passwordType === 'autoGeneratePassword') {\n values.passwordProfile = null;\n }\n\n if (updateCreatedUser && editedUser) {\n updateCreatedUser(values);\n } else {\n submitUser(values);\n }\n }\n },\n [submitUser, passwordType, creationMethod, updateCreatedUser, editedUser]\n );\n\n return (\n <>\n <Form onSubmit={handleSubmitUser}>\n <UserFormFields\n rolesData={rolesData}\n editedUser={editedUser}\n showRolesField={showRolesField}\n handlePasswordTypeChange={handlePasswordTypeChange}\n passwordType={passwordType}\n creationMethod={creationMethod}\n handleCreationMethodChange={handleCreationMethodChange}\n />\n {user.can.CAN_MANAGE_USERS && (\n <>\n <div className={classes.divider}>\n <Divider />\n </div>\n <FormButtons>\n <SubmitButton\n variant=\"contained\"\n color=\"primary\"\n disablePristine={false}\n disabled={creatingUser}\n udprecordid=\"udpRecord-UserFormFields-submit\"\n >\n {editedUser ? t('Update') : (creationMethod === 'invite' ? t('Send Invite') : t('Create'))}\n </SubmitButton>\n </FormButtons>\n </>\n )}\n </Form>\n {creatingUser && (\n <LinearProgress className={classes.loadingBar} color=\"secondary\" />\n )}\n </>\n );\n};\nexport default UserForm;\n"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { i as useHandleAxiosSnackbar } from "./apiHelpers-WIR8pqy0.js";
3
3
  import { t as apiMutate } from "./useAxiosMutate-DeqKSi5z.js";
4
4
  import { n as SideSheet } from "./SideSheet-CDXVa_Kr.js";
5
5
  import { t as useTenant } from "./useTenant-CGaZEBEJ.js";
6
- import { n as UserForm_default } from "./UserForm-DNRashuU.js";
6
+ import { n as UserForm_default } from "./UserForm-DZ1a9uqZ.js";
7
7
  import React, { useCallback, useState } from "react";
8
8
  import { useSnackbar } from "notistack";
9
9
  import { cloneDeep } from "lodash";
@@ -98,4 +98,4 @@ var UserFormSideSheet_default = UserFormSideSheet;
98
98
 
99
99
  //#endregion
100
100
  export { UserFormSideSheet_default as t };
101
- //# sourceMappingURL=UserFormSideSheet-CYkGZYwh.js.map
101
+ //# sourceMappingURL=UserFormSideSheet-BFFWQJY_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserFormSideSheet-CYkGZYwh.js","names":["UserForm"],"sources":["../src/shell/ui/addUser/UserFormSideSheet.jsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { SideSheet } from '../../../UI/surfaces/SideSheet';\nimport UserForm from './UserForm';\nimport { useSnackbar } from 'notistack';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { useTenant } from '../../../utilities/tenant/useTenant';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../../../configService';\n\n\nconst UserFormSideSheet = ({\n open,\n onClose,\n}) => {\n const [loading, setLoading] = useState(false);\n const tenant = useTenant();\n const { t } = useTranslation();\n const { handleErrorSnackbar, handleSuccessSnackbar } = useHandleAxiosSnackbar();\n\n // Helper functions\n const getUserByEmail = useCallback(\n async email => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/email/${email}`,\n { method: 'get' }\n );\n },\n []\n );\n\n const createUser = useCallback(\n async data => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/${tenant?.activeTenant?.tenantId ?? ''}`,\n { method: 'post' },\n data\n );\n },\n [tenant]\n );\n\n const inviteUser = useCallback(\n async data => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/${tenant?.activeTenant?.tenantId ?? ''}/invite`,\n { method: 'post' },\n data\n );\n },\n [tenant]\n );\n\n const addUserToTenant = useCallback(\n async email => {\n return await apiMutate(\n ConfigService.tenantV1ApiUrl,\n `tenants/${tenant?.activeTenant?.tenantId ?? ''}/${email}`,\n { method: 'post' }\n );\n },\n [tenant]\n );\n\n const updateExistingUser = useCallback(\n async data => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/aad/${data.id}`,\n { method: 'patch' },\n data\n );\n },\n []\n );\n\n const fillInValues = (oldValues, newValues) => {\n const invalidFields = [\n 'id', 'displayName', 'mail', 'userType', 'email',\n 'accountEnabled', 'mailNickname', 'identities',\n 'password', 'passwordProfile', 'unityId',\n 'unityDefaultTenantId'\n ];\n for (let field in oldValues) {\n if (!invalidFields.includes(field)) {\n if (!oldValues[field]) {\n oldValues[field] = newValues[field];\n }\n }\n }\n return oldValues;\n };\n\n const handleSubmit = useCallback(\n async values => {\n setLoading(true);\n try {\n if (values.email) {\n values.email = values.email.toLowerCase().trim();\n }\n\n const userExistsResponse = await getUserByEmail(values.email);\n const userExists = userExistsResponse.data;\n\n if (userExists) {\n const existingUser = cloneDeep(userExists);\n const updatedValues = fillInValues(existingUser, values);\n\n // Update existing user and add to tenant\n await updateExistingUser({ data: updatedValues });\n await addUserToTenant(values.email);\n handleSuccessSnackbar(t('User has been updated and added to the tenant'))\n } else {\n // Check if this is an invite flow or standard create\n if (values.isInvite) {\n await inviteUser({ data: values });\n handleSuccessSnackbar(t('User invitation sent successfully'));\n } else {\n // Create a new user\n await createUser({ data: values });\n handleSuccessSnackbar(t('User has been created successfully'));\n }\n }\n\n onClose(); // Close the SideSheet after successful submission\n } catch (error) {\n handleErrorSnackbar(error.message || t('An error occurred, please ensure you are creating a new user'))\n } finally {\n setLoading(false);\n }\n },\n [\n getUserByEmail,\n createUser,\n inviteUser,\n addUserToTenant,\n updateExistingUser,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n onClose,\n t\n ]\n );\n\n return (\n <SideSheet\n open={open}\n onClose={onClose}\n title={t(\"Add User\")}\n width={600} // Adjust the width as needed\n >\n <UserForm\n submitUser={handleSubmit}\n creatingUser={loading}\n tenant={tenant?.activeTenant}\n />\n </SideSheet>\n );\n};\n\nexport default UserFormSideSheet;\n"],"mappings":";;;;;;;;;;;;AAYA,MAAM,qBAAqB,EACzB,MACA,cACI;CACJ,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAC7C,MAAM,SAAS,WAAW;CAC1B,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,qBAAqB,0BAA0B,wBAAwB;CAG/E,MAAM,iBAAiB,YACrB,OAAM,UAAS;AACb,SAAO,MAAM,UACX,cAAc,kBACd,eAAe,SACf,EAAE,QAAQ,OAAO,CAClB;IAEH,EAAE,CACH;CAED,MAAM,aAAa,YACjB,OAAM,SAAQ;AACZ,SAAO,MAAM,UACX,cAAc,kBACd,SAAS,QAAQ,cAAc,YAAY,MAC3C,EAAE,QAAQ,QAAQ,EAClB,KACD;IAEH,CAAC,OAAO,CACT;CAED,MAAM,aAAa,YACjB,OAAM,SAAQ;AACZ,SAAO,MAAM,UACX,cAAc,kBACd,SAAS,QAAQ,cAAc,YAAY,GAAG,UAC9C,EAAE,QAAQ,QAAQ,EAClB,KACD;IAEH,CAAC,OAAO,CACT;CAED,MAAM,kBAAkB,YACtB,OAAM,UAAS;AACb,SAAO,MAAM,UACX,cAAc,gBACd,WAAW,QAAQ,cAAc,YAAY,GAAG,GAAG,SACnD,EAAE,QAAQ,QAAQ,CACnB;IAEH,CAAC,OAAO,CACT;CAED,MAAM,qBAAqB,YACzB,OAAM,SAAQ;AACZ,SAAO,MAAM,UACX,cAAc,kBACd,aAAa,KAAK,MAClB,EAAE,QAAQ,SAAS,EACnB,KACD;IAEH,EAAE,CACH;CAED,MAAM,gBAAgB,WAAW,cAAc;EAC7C,MAAM,gBAAgB;GACpB;GAAM;GAAe;GAAQ;GAAY;GACzC;GAAkB;GAAgB;GAClC;GAAY;GAAmB;GAC/B;GACD;AACD,OAAK,IAAI,SAAS,UAChB,KAAI,CAAC,cAAc,SAAS,MAAM,EAChC;OAAI,CAAC,UAAU,OACb,WAAU,SAAS,UAAU;;AAInC,SAAO;;CAGT,MAAM,eAAe,YACnB,OAAM,WAAU;AACd,aAAW,KAAK;AAChB,MAAI;AACF,OAAI,OAAO,MACT,QAAO,QAAQ,OAAO,MAAM,aAAa,CAAC,MAAM;GAIlD,MAAM,cADqB,MAAM,eAAe,OAAO,MAAM,EACvB;AAEtC,OAAI,YAAY;AAKd,UAAM,mBAAmB,EAAE,MAHL,aADD,UAAU,WAAW,EACO,OAAO,EAGR,CAAC;AACjD,UAAM,gBAAgB,OAAO,MAAM;AACnC,0BAAsB,EAAE,gDAAgD,CAAC;cAGrE,OAAO,UAAU;AACnB,UAAM,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClC,0BAAsB,EAAE,oCAAoC,CAAC;UACxD;AAEL,UAAM,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClC,0BAAsB,EAAE,qCAAqC,CAAC;;AAIlE,YAAS;WACF,OAAO;AACd,uBAAoB,MAAM,WAAW,EAAE,+DAA+D,CAAC;YAC/F;AACR,cAAW,MAAM;;IAGrB;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QACE,oCAAC;EACO;EACG;EACT,OAAO,EAAE,WAAW;EACpB,OAAO;IAEP,oCAACA;EACC,YAAY;EACZ,cAAc;EACd,QAAQ,QAAQ;GAChB,CACQ;;AAIhB,gCAAe"}
1
+ {"version":3,"file":"UserFormSideSheet-BFFWQJY_.js","names":["UserForm"],"sources":["../src/shell/ui/addUser/UserFormSideSheet.jsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { SideSheet } from '../../../UI/surfaces/SideSheet';\nimport UserForm from './UserForm';\nimport { useSnackbar } from 'notistack';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { useTenant } from '../../../utilities/tenant/useTenant';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../../../configService';\n\n\nconst UserFormSideSheet = ({\n open,\n onClose,\n}) => {\n const [loading, setLoading] = useState(false);\n const tenant = useTenant();\n const { t } = useTranslation();\n const { handleErrorSnackbar, handleSuccessSnackbar } = useHandleAxiosSnackbar();\n\n // Helper functions\n const getUserByEmail = useCallback(\n async email => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/email/${email}`,\n { method: 'get' }\n );\n },\n []\n );\n\n const createUser = useCallback(\n async data => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/${tenant?.activeTenant?.tenantId ?? ''}`,\n { method: 'post' },\n data\n );\n },\n [tenant]\n );\n\n const inviteUser = useCallback(\n async data => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/${tenant?.activeTenant?.tenantId ?? ''}/invite`,\n { method: 'post' },\n data\n );\n },\n [tenant]\n );\n\n const addUserToTenant = useCallback(\n async email => {\n return await apiMutate(\n ConfigService.tenantV1ApiUrl,\n `tenants/${tenant?.activeTenant?.tenantId ?? ''}/${email}`,\n { method: 'post' }\n );\n },\n [tenant]\n );\n\n const updateExistingUser = useCallback(\n async data => {\n return await apiMutate(\n ConfigService.securityV1ApiUrl,\n `users/aad/${data.id}`,\n { method: 'patch' },\n data\n );\n },\n []\n );\n\n const fillInValues = (oldValues, newValues) => {\n const invalidFields = [\n 'id', 'displayName', 'mail', 'userType', 'email',\n 'accountEnabled', 'mailNickname', 'identities',\n 'password', 'passwordProfile', 'unityId',\n 'unityDefaultTenantId'\n ];\n for (let field in oldValues) {\n if (!invalidFields.includes(field)) {\n if (!oldValues[field]) {\n oldValues[field] = newValues[field];\n }\n }\n }\n return oldValues;\n };\n\n const handleSubmit = useCallback(\n async values => {\n setLoading(true);\n try {\n if (values.email) {\n values.email = values.email.toLowerCase().trim();\n }\n\n const userExistsResponse = await getUserByEmail(values.email);\n const userExists = userExistsResponse.data;\n\n if (userExists) {\n const existingUser = cloneDeep(userExists);\n const updatedValues = fillInValues(existingUser, values);\n\n // Update existing user and add to tenant\n await updateExistingUser({ data: updatedValues });\n await addUserToTenant(values.email);\n handleSuccessSnackbar(t('User has been updated and added to the tenant'))\n } else {\n // Check if this is an invite flow or standard create\n if (values.isInvite) {\n await inviteUser({ data: values });\n handleSuccessSnackbar(t('User invitation sent successfully'));\n } else {\n // Create a new user\n await createUser({ data: values });\n handleSuccessSnackbar(t('User has been created successfully'));\n }\n }\n\n onClose(); // Close the SideSheet after successful submission\n } catch (error) {\n handleErrorSnackbar(error.message || t('An error occurred, please ensure you are creating a new user'))\n } finally {\n setLoading(false);\n }\n },\n [\n getUserByEmail,\n createUser,\n inviteUser,\n addUserToTenant,\n updateExistingUser,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n onClose,\n t\n ]\n );\n\n return (\n <SideSheet\n open={open}\n onClose={onClose}\n title={t(\"Add User\")}\n width={600} // Adjust the width as needed\n >\n <UserForm\n submitUser={handleSubmit}\n creatingUser={loading}\n tenant={tenant?.activeTenant}\n />\n </SideSheet>\n );\n};\n\nexport default UserFormSideSheet;\n"],"mappings":";;;;;;;;;;;;AAYA,MAAM,qBAAqB,EACzB,MACA,cACI;CACJ,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAC7C,MAAM,SAAS,WAAW;CAC1B,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,qBAAqB,0BAA0B,wBAAwB;CAG/E,MAAM,iBAAiB,YACrB,OAAM,UAAS;AACb,SAAO,MAAM,UACX,cAAc,kBACd,eAAe,SACf,EAAE,QAAQ,OAAO,CAClB;IAEH,EAAE,CACH;CAED,MAAM,aAAa,YACjB,OAAM,SAAQ;AACZ,SAAO,MAAM,UACX,cAAc,kBACd,SAAS,QAAQ,cAAc,YAAY,MAC3C,EAAE,QAAQ,QAAQ,EAClB,KACD;IAEH,CAAC,OAAO,CACT;CAED,MAAM,aAAa,YACjB,OAAM,SAAQ;AACZ,SAAO,MAAM,UACX,cAAc,kBACd,SAAS,QAAQ,cAAc,YAAY,GAAG,UAC9C,EAAE,QAAQ,QAAQ,EAClB,KACD;IAEH,CAAC,OAAO,CACT;CAED,MAAM,kBAAkB,YACtB,OAAM,UAAS;AACb,SAAO,MAAM,UACX,cAAc,gBACd,WAAW,QAAQ,cAAc,YAAY,GAAG,GAAG,SACnD,EAAE,QAAQ,QAAQ,CACnB;IAEH,CAAC,OAAO,CACT;CAED,MAAM,qBAAqB,YACzB,OAAM,SAAQ;AACZ,SAAO,MAAM,UACX,cAAc,kBACd,aAAa,KAAK,MAClB,EAAE,QAAQ,SAAS,EACnB,KACD;IAEH,EAAE,CACH;CAED,MAAM,gBAAgB,WAAW,cAAc;EAC7C,MAAM,gBAAgB;GACpB;GAAM;GAAe;GAAQ;GAAY;GACzC;GAAkB;GAAgB;GAClC;GAAY;GAAmB;GAC/B;GACD;AACD,OAAK,IAAI,SAAS,UAChB,KAAI,CAAC,cAAc,SAAS,MAAM,EAChC;OAAI,CAAC,UAAU,OACb,WAAU,SAAS,UAAU;;AAInC,SAAO;;CAGT,MAAM,eAAe,YACnB,OAAM,WAAU;AACd,aAAW,KAAK;AAChB,MAAI;AACF,OAAI,OAAO,MACT,QAAO,QAAQ,OAAO,MAAM,aAAa,CAAC,MAAM;GAIlD,MAAM,cADqB,MAAM,eAAe,OAAO,MAAM,EACvB;AAEtC,OAAI,YAAY;AAKd,UAAM,mBAAmB,EAAE,MAHL,aADD,UAAU,WAAW,EACO,OAAO,EAGR,CAAC;AACjD,UAAM,gBAAgB,OAAO,MAAM;AACnC,0BAAsB,EAAE,gDAAgD,CAAC;cAGrE,OAAO,UAAU;AACnB,UAAM,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClC,0BAAsB,EAAE,oCAAoC,CAAC;UACxD;AAEL,UAAM,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClC,0BAAsB,EAAE,qCAAqC,CAAC;;AAIlE,YAAS;WACF,OAAO;AACd,uBAAoB,MAAM,WAAW,EAAE,+DAA+D,CAAC;YAC/F;AACR,cAAW,MAAM;;IAGrB;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QACE,oCAAC;EACO;EACG;EACT,OAAO,EAAE,WAAW;EACpB,OAAO;IAEP,oCAACA;EACC,YAAY;EACZ,cAAc;EACd,QAAQ,QAAQ;GAChB,CACQ;;AAIhB,gCAAe"}
@@ -0,0 +1,3 @@
1
+ import { t as UserFormSideSheet_default } from "./UserFormSideSheet-BFFWQJY_.js";
2
+
3
+ export { UserFormSideSheet_default as default };
@@ -424,4 +424,4 @@ var VirtualBrowser_default = VirtualBrowser;
424
424
 
425
425
  //#endregion
426
426
  export { defaultColActionsDef as a, VirtualTableColumnDefs as i, VirtualBrowser_default as n, VirtualTableSidePanel as r, VirtualBrowser as t };
427
- //# sourceMappingURL=VirtualBrowser-C8re1h7C.js.map
427
+ //# sourceMappingURL=VirtualBrowser-DlNnb7U2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualBrowser-C8re1h7C.js","names":["value","PrimaryActionButton"],"sources":["../src/maintenanceEngine/virtualBrowser/VirtualTableColumnDefs.js","../src/maintenanceEngine/virtualBrowser/VirtualTableSidePanel.jsx","../src/maintenanceEngine/virtualBrowser/VirtualBrowser.jsx"],"sourcesContent":["import { toTitleCase } from '../../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n headerName: '',\n field: '',\n minWidth: 80,\n autoHeight: false,\n sortable: true\n};\n\nexport const VirtualTableColumnDefs = (\n tableDescription,\n actionList,\n columnName = 'Actions',\n crudTableActionRenderName = 'actionsRenderer',\n panelDirection = 'right'\n) => {\n let columnDefs =\n tableDescription?.reduce((defs, element) => {\n defs.push({\n ...defaultGridColumn,\n headerName: toTitleCase(element?.name || ''),\n field: element?.name\n });\n return defs;\n }, []) || [];\n\n columnDefs.push({\n headerName:\n crudTableActionRenderName === 'actionsRenderer' ? 'Actions' : columnName,\n filter: false,\n pinned: panelDirection,\n width: 150,\n maxWidth: 180,\n cellRenderer: crudTableActionRenderName,\n cellRendererParams: {\n actionList\n },\n valueGetter: (params) => params.data,\n suppressMenu: true,\n sortable: false,\n cellStyle: { display: 'flex', alignItems: 'center' }\n });\n\n return columnDefs;\n};\n\nexport const defaultColActionsDef = {\n resizable: true,\n editable: false,\n sortable: true,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true\n};\n","import { Divider, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { PageContainer } from '../../page/PageContainer';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { Skeleton } from '@material-ui/lab';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { VirtualForm } from '../../UI/forms/VirtualForm';\nimport { ConfigService } from '../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n divider: {\n marginTop: theme.spacing(2)\n }\n}));\n\nconst FIELD_NUMBER = 10;\n\nexport const VirtualTableSidePanel = (props) => {\n const {\n tableDescription,\n value,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps\n } = props;\n const user = useUser();\n const classes = useStyles();\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageId}`,\n {},\n !!!pageId,\n false\n );\n\n const skeleton = useMemo(() => {\n const skeletonArr = [];\n for (let i = 0; i < FIELD_NUMBER; i++) {\n skeletonArr.push(\n <>\n <Skeleton key={i} variant='rect' className={classes.skeleton} />\n <LayoutUnit unit='xxs' />\n </>\n );\n }\n return skeletonArr;\n }, [classes]);\n\n const sideSheetContent = useMemo(() => {\n if (page) {\n return (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={pageId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n nodeObj: crudTableEditionData,\n setSideSheetWidth: setSideSheetWidth,\n setSideSheetButtonLabel: setSideSheetButtonLabel,\n setSideSheetOnSubmit: setSideSheetOnSubmit,\n closeSideSheet: closeSideSheet,\n setSideSheetProps: setSideSheetProps,\n onCreate: onCreate,\n onUpdate: onUpdate\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else {\n return (\n <>\n <VirtualForm\n tableDescription={tableDescription}\n rowValue={value}\n closeSideSheet={closeSideSheet}\n onCreate={onCreate}\n onUpdate={onUpdate}\n />\n <div className={classes.divider}>\n <Divider />\n </div>\n </>\n );\n }\n }, [\n page,\n user,\n pageId,\n crudTableEditionData,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n closeSideSheet,\n onCreate,\n onUpdate,\n classes,\n tableDescription,\n value\n ]);\n\n return (\n <div>\n {loadingPage ? (\n <>\n {skeleton.map((sk) => sk)}\n <LayoutUnit unit='md' />\n <Skeleton variant='rect' className={classes.skeletonButton} />\n </>\n ) : (\n sideSheetContent\n )}\n </div>\n );\n};\n\nVirtualTableSidePanel.propTypes = {\n /**\n * Description of the table\n */\n tableDescription: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport PrimaryActionButton from '../../UI/inputs/buttons/PrimaryActionButton';\nimport { AmbientGridTemplate } from '../../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { ActionsRenderer } from '../../UI/templates/ui/renderers/ActionsRenderer';\nimport { VirtualTableColumnDefs } from './VirtualTableColumnDefs';\nimport { AddIcon, DeleteIcon, EditIcon } from '@fluentui/react-icons';\nimport { Typography } from '@material-ui/core';\nimport { format } from 'date-fns';\nimport { getPathObject } from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { executeQueryWithParameters } from '../../udp/utilities/methodUtils';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { useLocation } from 'react-router-dom';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { VirtualTableSidePanel } from './VirtualTableSidePanel';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { useBuildEnvironment } from '../../shell/ui/useBuildEnvironment';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useSetLocationState } from '../../hooks/useSetLocationState';\nimport { ConfigService } from '../../configService';\n\nconst useSearchParams = () => {\n const { search } = useLocation();\n return useMemo(() => new URLSearchParams(search), [search]);\n};\n\nexport const VirtualBrowser = (props) => {\n const { ...other } = props;\n const urlSearchParams = useSearchParams();\n const location = useLocation();\n const { value, promotedEntity } = location.state || {};\n const parts = location?.pathname?.split('/');\n const virtualId = value\n ? value?.id\n : '' || parts\n ? parts[parts.length - 1]\n : null;\n\n const user = useUser();\n const buildEnv = useBuildEnvironment();\n const [isSheetOpen, setSheetOpen] = useState(false);\n const [sideSheetWidth, setSideSheetWidth] = useState(600);\n const [sideSheetButtonLabel, setSideSheetButtonLabel] = useState('');\n const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n const [sideSheetOnSubmit, setSideSheetOnSubmit] = useState(\n () => () => console.warn('onSubmit not set')\n );\n const [selectedEntity, setSelectedEntity] = useState(promotedEntity);\n const { t } = useTranslation();\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n const setLocationState = useSetLocationState();\n\n const closeSheet = useCallback(() => {\n setSheetOpen(false);\n }, []);\n\n const entityName = useMemo(() => {\n if (selectedEntity) {\n return selectedEntity.entityName || '';\n } else {\n return urlSearchParams.has('entityName') === true\n ? urlSearchParams.get('entityName')\n : '';\n }\n }, [selectedEntity, urlSearchParams]);\n\n const createApiMethodPageId = useMemo(() => {\n return selectedEntity?.unityBaseCreateMethod?.pageId;\n }, [selectedEntity]);\n\n const [{ data: tpacb, loading: loadingTpacb, error: tpacbError }] =\n useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!user || !!promotedEntity,\n false\n );\n\n const [{ data: promotedMethodEntities }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${tpacb?.apiCatalogId}/promotedMethodEntities/${entityName}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!tpacb || !!!user || !!!entityName,\n false\n );\n\n // Get all rows of an entity\n const [{ data: entityData, loading: isLoading }, fetchEntityData] =\n useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseGetDataMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n // Get all rows of an entity\n const [\n { data: tableDescription, loading: tableDescriptionLoading },\n fetchTableDescription\n ] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseDescribeMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const constructVirtualValuesForRequest = useCallback(\n (values) => {\n if (!tableDescription) {\n return [];\n }\n const bodyArr = [];\n tableDescription.forEach((column) => {\n const valueExist =\n typeof values[column.name] == 'boolean' || values[column.name];\n if (column.name || valueExist) {\n switch (getSanitizedName(entityName?.toLowerCase())) {\n case UdpEnums.Udp_Lookup.toLowerCase():\n bodyArr.push({\n lookupColumnId: column.id,\n value: values[column.name]\n });\n break;\n default:\n }\n }\n });\n return bodyArr;\n },\n [tableDescription, entityName]\n );\n\n const handleOnCreate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualCreateMethod) {\n const requestArr = constructVirtualValuesForRequest(values);\n const data = { requestBody: requestArr, id: virtualId };\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualCreateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been created`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnUpdate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualUpdateMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, values.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity.unityBaseVirtualUpdateMethod.pathParameters,\n primaryKeyValues\n );\n const requestArr = constructVirtualValuesForRequest(values);\n let data = { requestBody: requestArr };\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject, requestBody: requestArr };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualUpdateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been updated`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\n if (selectedEntity?.unityBaseVirtualDeleteMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, value.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity?.unityBaseVirtualDeleteMethod.pathParameters,\n primaryKeyValues\n );\n let data = {};\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualDeleteMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been deleted`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId\n ]\n );\n\n const actionList = useMemo(() => {\n if (!selectedEntity) {\n return;\n }\n\n return [\n {\n id: 1, // Must be unique\n title: selectedEntity?.unityBaseVirtualUpdateMethod\n ? t('Edit')\n : t('Edit Method Not Accessible'),\n icon: EditIcon,\n onClick: null,\n opens: 'sideSheet',\n view: {\n component: VirtualTableSidePanel,\n properties: {\n tableDescription: tableDescription,\n onUpdate: handleOnUpdate,\n valuePropName: 'value',\n closeSideSheet: null,\n closeSideSheetPropName: 'closeSideSheet',\n pageId: selectedEntity?.unityBaseVirtualUpdateMethod?.pageId,\n isNewEntry: false\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualUpdateMethod\n },\n {\n id: 2, // Must be unique\n title: selectedEntity?.unityBaseVirtualDeleteMethod\n ? t('Delete')\n : t('Delete Method Not Accessible'),\n icon: DeleteIcon,\n onClick: null,\n opens: 'dialog',\n view: {\n component: null,\n properties: {\n title: t('Delete'),\n message: t('Are you sure you want to delete this row?'),\n labelOne: t('Cancel'),\n actionTwo: handleOnDelete,\n labelTwo: t('Confirm')\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualDeleteMethod\n }\n ];\n }, [selectedEntity, t, handleOnUpdate, handleOnDelete, tableDescription]);\n\n const columnDefs = useMemo(() => {\n if (tableDescription?.length) {\n return VirtualTableColumnDefs(tableDescription, actionList);\n }\n return [];\n }, [actionList, tableDescription]);\n\n const groupData = useMemo(() => {\n return columnDefs?.map((item) => {\n return {\n groupItem: item.field,\n label: item.headerName,\n value: item.field\n };\n });\n }, [columnDefs]);\n\n useEffect(() => {\n if (promotedMethodEntities) {\n setSelectedEntity(promotedMethodEntities);\n }\n }, [promotedMethodEntities]);\n\n useEffect(() => {\n if (virtualId) {\n const queryData = { id: virtualId };\n if (selectedEntity?.unityBaseGetDataMethod?.apiMethodId) {\n fetchEntityData({ data: queryData });\n }\n if (selectedEntity?.unityBaseDescribeMethod?.apiMethodId) {\n fetchTableDescription({ data: queryData });\n }\n }\n }, [selectedEntity, fetchEntityData, virtualId, fetchTableDescription]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n setLocationState({ label: t(value?.name) || t('Virtual Lookup') });\n }, [setLocationState, t, value]);\n\n const pab = (\n <PrimaryActionButton onClick={() => setSheetOpen && setSheetOpen(true)}>\n <Typography style={{ marginRight: 5 }}>Add</Typography>\n <AddIcon />\n </PrimaryActionButton>\n );\n\n const SideOptionList = useMemo(\n () => (\n <SideSheet\n open={isSheetOpen}\n onClose={closeSheet}\n title={`Add new ${entityName}`}\n width={sideSheetWidth}\n buttonLabel={sideSheetButtonLabel}\n onSubmit={sideSheetOnSubmit}\n {...otherSideSheetProps}\n >\n <VirtualTableSidePanel\n onCreate={handleOnCreate}\n closeSideSheet={closeSheet}\n pageId={createApiMethodPageId}\n setSideSheetWidth={setSideSheetWidth}\n setSideSheetButtonLabel={setSideSheetButtonLabel}\n setSideSheetOnSubmit={setSideSheetOnSubmit}\n setSideSheetProps={setOtherSideSheetProps}\n tableDescription={tableDescription}\n />\n </SideSheet>\n ),\n [\n isSheetOpen,\n closeSheet,\n entityName,\n sideSheetWidth,\n sideSheetButtonLabel,\n sideSheetOnSubmit,\n handleOnCreate,\n createApiMethodPageId,\n otherSideSheetProps,\n tableDescription\n ]\n );\n\n const formatData = useCallback(() => {\n if (entityData?.data && tableDescription) {\n let formattedEntityData = cloneDeep(entityData?.data);\n\n // get list of attributes that are datetime\n const datetimeFields = tableDescription?.reduce((fields, element) => {\n if (element?.type === 'datetime') {\n fields.push(element?.name);\n }\n return fields;\n }, []);\n\n if (datetimeFields.length) {\n formattedEntityData.forEach((e) => {\n Object.keys(e).forEach((key) => {\n // format all datetime fields\n if (datetimeFields.find((field) => field === key)) {\n // LAA UNT-2977: add null check to prevent default date from being added when null\n if (e[key] === null) return;\n e[key] = format(new Date(e[key]), 'yyyy/MM/dd kk:mm:ss');\n }\n });\n });\n }\n\n return formattedEntityData;\n }\n return [];\n }, [entityData, tableDescription]);\n\n return (\n <>\n <AmbientGridTemplate\n title={value?.name || entityData?.name}\n data={entityData ? formatData(entityData?.data) : []}\n columnDefs={columnDefs}\n groupingData={groupData}\n primaryActionButton={pab}\n frameworkComponents={{ actionsRenderer: ActionsRenderer }}\n height={`calc(100vh - ${buildEnv ? '139px' : '114px'})`}\n disableRowSelection={true}\n loading={isLoading}\n {...other}\n />\n {SideOptionList}\n </>\n );\n};\n\n\nexport default VirtualBrowser;\n"],"mappings":"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"}
1
+ {"version":3,"file":"VirtualBrowser-DlNnb7U2.js","names":["value","PrimaryActionButton"],"sources":["../src/maintenanceEngine/virtualBrowser/VirtualTableColumnDefs.js","../src/maintenanceEngine/virtualBrowser/VirtualTableSidePanel.jsx","../src/maintenanceEngine/virtualBrowser/VirtualBrowser.jsx"],"sourcesContent":["import { toTitleCase } from '../../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n headerName: '',\n field: '',\n minWidth: 80,\n autoHeight: false,\n sortable: true\n};\n\nexport const VirtualTableColumnDefs = (\n tableDescription,\n actionList,\n columnName = 'Actions',\n crudTableActionRenderName = 'actionsRenderer',\n panelDirection = 'right'\n) => {\n let columnDefs =\n tableDescription?.reduce((defs, element) => {\n defs.push({\n ...defaultGridColumn,\n headerName: toTitleCase(element?.name || ''),\n field: element?.name\n });\n return defs;\n }, []) || [];\n\n columnDefs.push({\n headerName:\n crudTableActionRenderName === 'actionsRenderer' ? 'Actions' : columnName,\n filter: false,\n pinned: panelDirection,\n width: 150,\n maxWidth: 180,\n cellRenderer: crudTableActionRenderName,\n cellRendererParams: {\n actionList\n },\n valueGetter: (params) => params.data,\n suppressMenu: true,\n sortable: false,\n cellStyle: { display: 'flex', alignItems: 'center' }\n });\n\n return columnDefs;\n};\n\nexport const defaultColActionsDef = {\n resizable: true,\n editable: false,\n sortable: true,\n filter: true,\n floatingFilter: false,\n enableRowGroup: true\n};\n","import { Divider, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { PageContainer } from '../../page/PageContainer';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { Skeleton } from '@material-ui/lab';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { VirtualForm } from '../../UI/forms/VirtualForm';\nimport { ConfigService } from '../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n divider: {\n marginTop: theme.spacing(2)\n }\n}));\n\nconst FIELD_NUMBER = 10;\n\nexport const VirtualTableSidePanel = (props) => {\n const {\n tableDescription,\n value,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps\n } = props;\n const user = useUser();\n const classes = useStyles();\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageId}`,\n {},\n !!!pageId,\n false\n );\n\n const skeleton = useMemo(() => {\n const skeletonArr = [];\n for (let i = 0; i < FIELD_NUMBER; i++) {\n skeletonArr.push(\n <>\n <Skeleton key={i} variant='rect' className={classes.skeleton} />\n <LayoutUnit unit='xxs' />\n </>\n );\n }\n return skeletonArr;\n }, [classes]);\n\n const sideSheetContent = useMemo(() => {\n if (page) {\n return (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={pageId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n nodeObj: crudTableEditionData,\n setSideSheetWidth: setSideSheetWidth,\n setSideSheetButtonLabel: setSideSheetButtonLabel,\n setSideSheetOnSubmit: setSideSheetOnSubmit,\n closeSideSheet: closeSideSheet,\n setSideSheetProps: setSideSheetProps,\n onCreate: onCreate,\n onUpdate: onUpdate\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else {\n return (\n <>\n <VirtualForm\n tableDescription={tableDescription}\n rowValue={value}\n closeSideSheet={closeSideSheet}\n onCreate={onCreate}\n onUpdate={onUpdate}\n />\n <div className={classes.divider}>\n <Divider />\n </div>\n </>\n );\n }\n }, [\n page,\n user,\n pageId,\n crudTableEditionData,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n closeSideSheet,\n onCreate,\n onUpdate,\n classes,\n tableDescription,\n value\n ]);\n\n return (\n <div>\n {loadingPage ? (\n <>\n {skeleton.map((sk) => sk)}\n <LayoutUnit unit='md' />\n <Skeleton variant='rect' className={classes.skeletonButton} />\n </>\n ) : (\n sideSheetContent\n )}\n </div>\n );\n};\n\nVirtualTableSidePanel.propTypes = {\n /**\n * Description of the table\n */\n tableDescription: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport PrimaryActionButton from '../../UI/inputs/buttons/PrimaryActionButton';\nimport { AmbientGridTemplate } from '../../UI/templates/deprecated/AmbientGridTemplate/AmbientGridTemplate';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { ActionsRenderer } from '../../UI/templates/ui/renderers/ActionsRenderer';\nimport { VirtualTableColumnDefs } from './VirtualTableColumnDefs';\nimport { AddIcon, DeleteIcon, EditIcon } from '@fluentui/react-icons';\nimport { Typography } from '@material-ui/core';\nimport { format } from 'date-fns';\nimport { getPathObject } from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { cloneDeep } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { executeQueryWithParameters } from '../../udp/utilities/methodUtils';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { useLocation } from 'react-router-dom';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { VirtualTableSidePanel } from './VirtualTableSidePanel';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { useBuildEnvironment } from '../../shell/ui/useBuildEnvironment';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useSetLocationState } from '../../hooks/useSetLocationState';\nimport { ConfigService } from '../../configService';\n\nconst useSearchParams = () => {\n const { search } = useLocation();\n return useMemo(() => new URLSearchParams(search), [search]);\n};\n\nexport const VirtualBrowser = (props) => {\n const { ...other } = props;\n const urlSearchParams = useSearchParams();\n const location = useLocation();\n const { value, promotedEntity } = location.state || {};\n const parts = location?.pathname?.split('/');\n const virtualId = value\n ? value?.id\n : '' || parts\n ? parts[parts.length - 1]\n : null;\n\n const user = useUser();\n const buildEnv = useBuildEnvironment();\n const [isSheetOpen, setSheetOpen] = useState(false);\n const [sideSheetWidth, setSideSheetWidth] = useState(600);\n const [sideSheetButtonLabel, setSideSheetButtonLabel] = useState('');\n const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n const [sideSheetOnSubmit, setSideSheetOnSubmit] = useState(\n () => () => console.warn('onSubmit not set')\n );\n const [selectedEntity, setSelectedEntity] = useState(promotedEntity);\n const { t } = useTranslation();\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n const setLocationState = useSetLocationState();\n\n const closeSheet = useCallback(() => {\n setSheetOpen(false);\n }, []);\n\n const entityName = useMemo(() => {\n if (selectedEntity) {\n return selectedEntity.entityName || '';\n } else {\n return urlSearchParams.has('entityName') === true\n ? urlSearchParams.get('entityName')\n : '';\n }\n }, [selectedEntity, urlSearchParams]);\n\n const createApiMethodPageId = useMemo(() => {\n return selectedEntity?.unityBaseCreateMethod?.pageId;\n }, [selectedEntity]);\n\n const [{ data: tpacb, loading: loadingTpacb, error: tpacbError }] =\n useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!user || !!promotedEntity,\n false\n );\n\n const [{ data: promotedMethodEntities }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${tpacb?.apiCatalogId}/promotedMethodEntities/${entityName}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!tpacb || !!!user || !!!entityName,\n false\n );\n\n // Get all rows of an entity\n const [{ data: entityData, loading: isLoading }, fetchEntityData] =\n useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseGetDataMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n // Get all rows of an entity\n const [\n { data: tableDescription, loading: tableDescriptionLoading },\n fetchTableDescription\n ] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseDescribeMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const constructVirtualValuesForRequest = useCallback(\n (values) => {\n if (!tableDescription) {\n return [];\n }\n const bodyArr = [];\n tableDescription.forEach((column) => {\n const valueExist =\n typeof values[column.name] == 'boolean' || values[column.name];\n if (column.name || valueExist) {\n switch (getSanitizedName(entityName?.toLowerCase())) {\n case UdpEnums.Udp_Lookup.toLowerCase():\n bodyArr.push({\n lookupColumnId: column.id,\n value: values[column.name]\n });\n break;\n default:\n }\n }\n });\n return bodyArr;\n },\n [tableDescription, entityName]\n );\n\n const handleOnCreate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualCreateMethod) {\n const requestArr = constructVirtualValuesForRequest(values);\n const data = { requestBody: requestArr, id: virtualId };\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualCreateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been created`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnUpdate = useCallback(\n async (values) => {\n if (selectedEntity?.unityBaseVirtualUpdateMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, values.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity.unityBaseVirtualUpdateMethod.pathParameters,\n primaryKeyValues\n );\n const requestArr = constructVirtualValuesForRequest(values);\n let data = { requestBody: requestArr };\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject, requestBody: requestArr };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualUpdateMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been updated`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId,\n constructVirtualValuesForRequest\n ]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\n if (selectedEntity?.unityBaseVirtualDeleteMethod) {\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = [virtualId, value.udpVirtualRowId];\n const pathObject = getPathObject(\n selectedEntity?.unityBaseVirtualDeleteMethod.pathParameters,\n primaryKeyValues\n );\n let data = {};\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n selectedEntity.unityBaseVirtualDeleteMethod.apiMethodId\n ).catch((res) => {\n handleErrorSnackbar(res.message);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(t(`Row has been deleted`));\n const queryData = { id: virtualId };\n fetchEntityData({ data: queryData });\n }\n }\n },\n [\n selectedEntity,\n t,\n fetchEntityData,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n virtualId\n ]\n );\n\n const actionList = useMemo(() => {\n if (!selectedEntity) {\n return;\n }\n\n return [\n {\n id: 1, // Must be unique\n title: selectedEntity?.unityBaseVirtualUpdateMethod\n ? t('Edit')\n : t('Edit Method Not Accessible'),\n icon: EditIcon,\n onClick: null,\n opens: 'sideSheet',\n view: {\n component: VirtualTableSidePanel,\n properties: {\n tableDescription: tableDescription,\n onUpdate: handleOnUpdate,\n valuePropName: 'value',\n closeSideSheet: null,\n closeSideSheetPropName: 'closeSideSheet',\n pageId: selectedEntity?.unityBaseVirtualUpdateMethod?.pageId,\n isNewEntry: false\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualUpdateMethod\n },\n {\n id: 2, // Must be unique\n title: selectedEntity?.unityBaseVirtualDeleteMethod\n ? t('Delete')\n : t('Delete Method Not Accessible'),\n icon: DeleteIcon,\n onClick: null,\n opens: 'dialog',\n view: {\n component: null,\n properties: {\n title: t('Delete'),\n message: t('Are you sure you want to delete this row?'),\n labelOne: t('Cancel'),\n actionTwo: handleOnDelete,\n labelTwo: t('Confirm')\n }\n },\n disabled: !!!selectedEntity?.unityBaseVirtualDeleteMethod\n }\n ];\n }, [selectedEntity, t, handleOnUpdate, handleOnDelete, tableDescription]);\n\n const columnDefs = useMemo(() => {\n if (tableDescription?.length) {\n return VirtualTableColumnDefs(tableDescription, actionList);\n }\n return [];\n }, [actionList, tableDescription]);\n\n const groupData = useMemo(() => {\n return columnDefs?.map((item) => {\n return {\n groupItem: item.field,\n label: item.headerName,\n value: item.field\n };\n });\n }, [columnDefs]);\n\n useEffect(() => {\n if (promotedMethodEntities) {\n setSelectedEntity(promotedMethodEntities);\n }\n }, [promotedMethodEntities]);\n\n useEffect(() => {\n if (virtualId) {\n const queryData = { id: virtualId };\n if (selectedEntity?.unityBaseGetDataMethod?.apiMethodId) {\n fetchEntityData({ data: queryData });\n }\n if (selectedEntity?.unityBaseDescribeMethod?.apiMethodId) {\n fetchTableDescription({ data: queryData });\n }\n }\n }, [selectedEntity, fetchEntityData, virtualId, fetchTableDescription]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n setLocationState({ label: t(value?.name) || t('Virtual Lookup') });\n }, [setLocationState, t, value]);\n\n const pab = (\n <PrimaryActionButton onClick={() => setSheetOpen && setSheetOpen(true)}>\n <Typography style={{ marginRight: 5 }}>Add</Typography>\n <AddIcon />\n </PrimaryActionButton>\n );\n\n const SideOptionList = useMemo(\n () => (\n <SideSheet\n open={isSheetOpen}\n onClose={closeSheet}\n title={`Add new ${entityName}`}\n width={sideSheetWidth}\n buttonLabel={sideSheetButtonLabel}\n onSubmit={sideSheetOnSubmit}\n {...otherSideSheetProps}\n >\n <VirtualTableSidePanel\n onCreate={handleOnCreate}\n closeSideSheet={closeSheet}\n pageId={createApiMethodPageId}\n setSideSheetWidth={setSideSheetWidth}\n setSideSheetButtonLabel={setSideSheetButtonLabel}\n setSideSheetOnSubmit={setSideSheetOnSubmit}\n setSideSheetProps={setOtherSideSheetProps}\n tableDescription={tableDescription}\n />\n </SideSheet>\n ),\n [\n isSheetOpen,\n closeSheet,\n entityName,\n sideSheetWidth,\n sideSheetButtonLabel,\n sideSheetOnSubmit,\n handleOnCreate,\n createApiMethodPageId,\n otherSideSheetProps,\n tableDescription\n ]\n );\n\n const formatData = useCallback(() => {\n if (entityData?.data && tableDescription) {\n let formattedEntityData = cloneDeep(entityData?.data);\n\n // get list of attributes that are datetime\n const datetimeFields = tableDescription?.reduce((fields, element) => {\n if (element?.type === 'datetime') {\n fields.push(element?.name);\n }\n return fields;\n }, []);\n\n if (datetimeFields.length) {\n formattedEntityData.forEach((e) => {\n Object.keys(e).forEach((key) => {\n // format all datetime fields\n if (datetimeFields.find((field) => field === key)) {\n // LAA UNT-2977: add null check to prevent default date from being added when null\n if (e[key] === null) return;\n e[key] = format(new Date(e[key]), 'yyyy/MM/dd kk:mm:ss');\n }\n });\n });\n }\n\n return formattedEntityData;\n }\n return [];\n }, [entityData, tableDescription]);\n\n return (\n <>\n <AmbientGridTemplate\n title={value?.name || entityData?.name}\n data={entityData ? formatData(entityData?.data) : []}\n columnDefs={columnDefs}\n groupingData={groupData}\n primaryActionButton={pab}\n frameworkComponents={{ actionsRenderer: ActionsRenderer }}\n height={`calc(100vh - ${buildEnv ? '139px' : '114px'})`}\n disableRowSelection={true}\n loading={isLoading}\n {...other}\n />\n {SideOptionList}\n </>\n );\n};\n\n\nexport default VirtualBrowser;\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { n as VirtualBrowser_default, t as VirtualBrowser } from "./VirtualBrowser-DlNnb7U2.js";
2
+
3
+ export { VirtualBrowser, VirtualBrowser_default as default };
@@ -69,4 +69,4 @@ var WidgetCard_default = WidgetCard;
69
69
 
70
70
  //#endregion
71
71
  export { WidgetCard_default as t };
72
- //# sourceMappingURL=WidgetCard-UA87S0id.js.map
72
+ //# sourceMappingURL=WidgetCard-U1XoSuoz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetCard-UA87S0id.js","names":["theme","FUICard","FUIMenuItem"],"sources":["../src/UI/widgets/WidgetCard.jsx"],"sourcesContent":["import React, { Fragment } from 'react';\nimport { DeleteIcon } from '@fluentui/react-icons';\nimport { makeStyles, CircularProgress } from '@material-ui/core';\nimport clsx from 'clsx';\nimport FUICard, { FUICardHeaderMenu } from '../surfaces/cards/fluentCards/FUICard';\nimport FUIMenuItem from './FluentComponents/FUIMenuItem';\n\n/**\n * Core component for dashboard widget cards\n */\nconst WidgetCard = (props) => {\n const {\n children,\n headerActions,\n className,\n widgetType,\n id,\n layout,\n params,\n setParam,\n onDelete,\n loading,\n errors,\n theme,\n ...other\n } = props;\n\n const useStyles = makeStyles((theme) => ({\n root: {\n '&.react-resizable-hide .react-resizable-handle': {\n display: 'none'\n }\n },\n darkRoot: {\n '&.react-resizable-hide .react-resizable-handle': {\n display: 'none'\n },\n background: '#424242',\n color: 'white'\n },\n anyRoot: {\n '& .MuiCardContent-root': {\n justifyContent: 'space-between',\n overflow: 'auto',\n padding: 0\n }\n },\n handle: {\n cursor: 'move',\n '&:hover': {\n backgroundColor: theme.palette.action.hover\n }\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n innerWidgetContentContainer: {\n height: '100%',\n minWidth: widgetType === 'ProgressBarWidget' ? 0 : 270,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n padding: theme.spacing(2)\n }\n }));\n const classes = useStyles();\n\n const raised = /(^|\\s)react-draggable-dragging(\\s|$)/.test(className ?? '');\n let body = children;\n if (loading) {\n body = (\n <div className={classes.loadingContent}>\n <CircularProgress color='secondary' size={64} />\n </div>\n );\n }\n if (errors && !body) {\n body = <div>Unexpected error</div>;\n }\n return (\n <FUICard\n {...other}\n className={clsx(\n className,\n theme === 'dark' ? classes.darkRoot : classes.root,\n classes.anyRoot\n )}\n raised={raised}\n CardHeaderProps={{\n className: classes.handle,\n 'data-handle': true\n }}\n headerActions={\n <>\n {headerActions}\n <FUICardHeaderMenu>\n <FUIMenuItem\n onClick={onDelete}\n fluentIcon={DeleteIcon}\n primary='Delete'\n />\n </FUICardHeaderMenu>\n </>\n }\n >\n <div className={classes.innerWidgetContentContainer}>{body}</div>\n </FUICard>\n );\n};\n\nexport default WidgetCard;\n"],"mappings":";;;;;;;;;;;AAUA,MAAM,cAAc,UAAU;CAC5B,MAAM,EACJ,UACA,eACA,WACA,YACA,IACA,QACA,QACA,UACA,UACA,SACA,QACA,OACA,GAAG,UACD;CA4CJ,MAAM,UA1CY,YAAY,aAAW;EACvC,MAAM,EACJ,kDAAkD,EAChD,SAAS,QACV,EACF;EACD,UAAU;GACR,kDAAkD,EAChD,SAAS,QACV;GACD,YAAY;GACZ,OAAO;GACR;EACD,SAAS,EACP,0BAA0B;GACxB,gBAAgB;GAChB,UAAU;GACV,SAAS;GACV,EACF;EACD,QAAQ;GACN,QAAQ;GACR,WAAW,EACT,iBAAiBA,QAAM,QAAQ,OAAO,OACvC;GACF;EACD,gBAAgB;GACd,MAAM;GACN,SAAS;GACT,eAAe;GACf,YAAY;GACZ,gBAAgB;GACjB;EACD,6BAA6B;GAC3B,QAAQ;GACR,UAAU,eAAe,sBAAsB,IAAI;GACnD,SAAS;GACT,eAAe;GACf,gBAAgB;GAChB,SAASA,QAAM,QAAQ,EAAE;GAC1B;EACF,EAAE,EACwB;CAE3B,MAAM,SAAS,uCAAuC,KAAK,aAAa,GAAG;CAC3E,IAAI,OAAO;AACX,KAAI,QACF,QACE,oCAAC,SAAI,WAAW,QAAQ,kBACtB,oCAAC;EAAiB,OAAM;EAAY,MAAM;GAAM,CAC5C;AAGV,KAAI,UAAU,CAAC,KACb,QAAO,oCAAC,aAAI,mBAAsB;AAEpC,QACE,oCAACC;EACC,GAAI;EACJ,WAAW,KACT,WACA,UAAU,SAAS,QAAQ,WAAW,QAAQ,MAC9C,QAAQ,QACT;EACO;EACR,iBAAiB;GACf,WAAW,QAAQ;GACnB,eAAe;GAChB;EACD,eACE,0DACG,eACD,oCAAC,yBACC,oCAACC;GACC,SAAS;GACT,YAAY;GACZ,SAAQ;IACR,CACgB,CACnB;IAGL,oCAAC,SAAI,WAAW,QAAQ,+BAA8B,KAAW,CACzD;;AAId,yBAAe"}
1
+ {"version":3,"file":"WidgetCard-U1XoSuoz.js","names":["theme","FUICard","FUIMenuItem"],"sources":["../src/UI/widgets/WidgetCard.jsx"],"sourcesContent":["import React, { Fragment } from 'react';\nimport { DeleteIcon } from '@fluentui/react-icons';\nimport { makeStyles, CircularProgress } from '@material-ui/core';\nimport clsx from 'clsx';\nimport FUICard, { FUICardHeaderMenu } from '../surfaces/cards/fluentCards/FUICard';\nimport FUIMenuItem from './FluentComponents/FUIMenuItem';\n\n/**\n * Core component for dashboard widget cards\n */\nconst WidgetCard = (props) => {\n const {\n children,\n headerActions,\n className,\n widgetType,\n id,\n layout,\n params,\n setParam,\n onDelete,\n loading,\n errors,\n theme,\n ...other\n } = props;\n\n const useStyles = makeStyles((theme) => ({\n root: {\n '&.react-resizable-hide .react-resizable-handle': {\n display: 'none'\n }\n },\n darkRoot: {\n '&.react-resizable-hide .react-resizable-handle': {\n display: 'none'\n },\n background: '#424242',\n color: 'white'\n },\n anyRoot: {\n '& .MuiCardContent-root': {\n justifyContent: 'space-between',\n overflow: 'auto',\n padding: 0\n }\n },\n handle: {\n cursor: 'move',\n '&:hover': {\n backgroundColor: theme.palette.action.hover\n }\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n innerWidgetContentContainer: {\n height: '100%',\n minWidth: widgetType === 'ProgressBarWidget' ? 0 : 270,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n padding: theme.spacing(2)\n }\n }));\n const classes = useStyles();\n\n const raised = /(^|\\s)react-draggable-dragging(\\s|$)/.test(className ?? '');\n let body = children;\n if (loading) {\n body = (\n <div className={classes.loadingContent}>\n <CircularProgress color='secondary' size={64} />\n </div>\n );\n }\n if (errors && !body) {\n body = <div>Unexpected error</div>;\n }\n return (\n <FUICard\n {...other}\n className={clsx(\n className,\n theme === 'dark' ? classes.darkRoot : classes.root,\n classes.anyRoot\n )}\n raised={raised}\n CardHeaderProps={{\n className: classes.handle,\n 'data-handle': true\n }}\n headerActions={\n <>\n {headerActions}\n <FUICardHeaderMenu>\n <FUIMenuItem\n onClick={onDelete}\n fluentIcon={DeleteIcon}\n primary='Delete'\n />\n </FUICardHeaderMenu>\n </>\n }\n >\n <div className={classes.innerWidgetContentContainer}>{body}</div>\n </FUICard>\n );\n};\n\nexport default WidgetCard;\n"],"mappings":";;;;;;;;;;;AAUA,MAAM,cAAc,UAAU;CAC5B,MAAM,EACJ,UACA,eACA,WACA,YACA,IACA,QACA,QACA,UACA,UACA,SACA,QACA,OACA,GAAG,UACD;CA4CJ,MAAM,UA1CY,YAAY,aAAW;EACvC,MAAM,EACJ,kDAAkD,EAChD,SAAS,QACV,EACF;EACD,UAAU;GACR,kDAAkD,EAChD,SAAS,QACV;GACD,YAAY;GACZ,OAAO;GACR;EACD,SAAS,EACP,0BAA0B;GACxB,gBAAgB;GAChB,UAAU;GACV,SAAS;GACV,EACF;EACD,QAAQ;GACN,QAAQ;GACR,WAAW,EACT,iBAAiBA,QAAM,QAAQ,OAAO,OACvC;GACF;EACD,gBAAgB;GACd,MAAM;GACN,SAAS;GACT,eAAe;GACf,YAAY;GACZ,gBAAgB;GACjB;EACD,6BAA6B;GAC3B,QAAQ;GACR,UAAU,eAAe,sBAAsB,IAAI;GACnD,SAAS;GACT,eAAe;GACf,gBAAgB;GAChB,SAASA,QAAM,QAAQ,EAAE;GAC1B;EACF,EAAE,EACwB;CAE3B,MAAM,SAAS,uCAAuC,KAAK,aAAa,GAAG;CAC3E,IAAI,OAAO;AACX,KAAI,QACF,QACE,oCAAC,SAAI,WAAW,QAAQ,kBACtB,oCAAC;EAAiB,OAAM;EAAY,MAAM;GAAM,CAC5C;AAGV,KAAI,UAAU,CAAC,KACb,QAAO,oCAAC,aAAI,mBAAsB;AAEpC,QACE,oCAACC;EACC,GAAI;EACJ,WAAW,KACT,WACA,UAAU,SAAS,QAAQ,WAAW,QAAQ,MAC9C,QAAQ,QACT;EACO;EACR,iBAAiB;GACf,WAAW,QAAQ;GACnB,eAAe;GAChB;EACD,eACE,0DACG,eACD,oCAAC,yBACC,oCAACC;GACC,SAAS;GACT,YAAY;GACZ,SAAQ;IACR,CACgB,CACnB;IAGL,oCAAC,SAAI,WAAW,QAAQ,+BAA8B,KAAW,CACzD;;AAId,yBAAe"}
@@ -52,4 +52,4 @@ const WorkOrderCard = ({ title, onClick, status, label, cost, hours, service, li
52
52
 
53
53
  //#endregion
54
54
  export { WorkOrderHeader as n, WorkOrderCard as t };
55
- //# sourceMappingURL=WorkOrderCard-Ce5WrpnX.js.map
55
+ //# sourceMappingURL=WorkOrderCard-s-6QK3Re.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkOrderCard-Ce5WrpnX.js","names":["useStyles"],"sources":["../src/UI/surfaces/cards/workOrderCard/WorkOrderHeader.jsx","../src/UI/surfaces/cards/workOrderCard/WorkOrderCard.jsx"],"sourcesContent":["import React from 'react'\nimport { makeStyles, Typography, Divider } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n wrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n width: '75%'\n }\n}))\n\nexport const WorkOrderHeader = ({ cost, hours }) => {\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n <div className={classes.wrapper}>\n <div>\n <Typography variant='h3'> ${cost} </Typography>\n <Typography variant='caption'> Total Cost </Typography>\n </div>\n <div>\n <Divider variant='vertical' />\n </div>\n <div>\n <Typography variant='h3'> {hours} </Typography>\n <Typography variant='caption'> Total Hours </Typography>\n </div>\n </div>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport { makeStyles, Collapse } from '@material-ui/core'\nimport { AmbientCard } from '../AmbientCard'\nimport { FluentIconButton } from '../../../inputs/buttons/FluentIconButton'\nimport { LayoutUnit } from '../../../../layout/LayoutUnit'\nimport { ChevronDownIcon, ChevronUpIcon } from '@fluentui/react-icons'\nimport { WorkOrderHeader } from './WorkOrderHeader'\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n moreButton: {\n display: 'flex',\n // justifyContent: 'flex-end',\n },\n}));\n\nexport const WorkOrderCard = ({\n title,\n onClick,\n status,\n label,\n cost,\n hours,\n service,\n list,\n extendedList,\n launch,\n}) => {\n const classes = useStyles();\n const [expanded, setExpanded] = useState(false);\n\n return (\n <div className={classes.root}>\n <AmbientCard\n title={title}\n onClick={onClick}\n ariaLabel=\"launch\"\n fullWidth\n status={status}\n label={label}\n launch={launch}\n extendedContent={expanded}\n >\n {cost && (\n <div>\n <div>\n <WorkOrderHeader cost={cost} hours={hours} />\n </div>\n <LayoutUnit unit=\"sm\" />\n {service}\n <LayoutUnit unit=\"sm\" />\n </div>\n )}\n {!cost && <div> {service}</div>}\n\n <div>\n {list}\n <LayoutUnit unit=\"xxs\" />\n {extendedList && (\n <div className={classes.moreButton}>\n <FluentIconButton\n onClick={() => setExpanded(!expanded)}\n icon={expanded ? ChevronUpIcon : ChevronDownIcon}\n className={classes.icon}\n />\n </div>\n )}\n <Collapse in={expanded} timeout=\"auto\">\n <div>{extendedList}</div>\n </Collapse>\n </div>\n </AmbientCard>\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAGA,MAAMA,cAAY,YAAY,WAAW;CACvC,MAAM,EAAE;CACR,SAAS;EACP,SAAS;EACT,gBAAgB;EAChB,OAAO;EACR;CACF,EAAE;AAEH,MAAa,mBAAmB,EAAE,MAAM,YAAY;CAClD,MAAM,UAAUA,aAAW;AAE3B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC,SAAI,WAAW,QAAQ,WACtB,oCAAC,aACC,oCAAC,cAAW,SAAQ,QAAK,MAAG,MAAK,IAAc,EAC/C,oCAAC,cAAW,SAAQ,aAAU,eAAyB,CACnD,EACN,oCAAC,aACC,oCAAC,WAAQ,SAAQ,aAAa,CAC1B,EACN,oCAAC,aACC,oCAAC,cAAW,SAAQ,QAAK,KAAE,OAAM,IAAc,EAC/C,oCAAC,cAAW,SAAQ,aAAU,gBAA0B,CACpD,CACF,CACF;;;;;ACtBV,MAAM,YAAY,YAAW,WAAU;CACrC,MAAM,EAAE;CACR,YAAY,EACV,SAAS,QAEV;CACF,EAAE;AAEH,MAAa,iBAAiB,EAC5B,OACA,SACA,QACA,OACA,MACA,OACA,SACA,MACA,cACA,aACI;CACJ,MAAM,UAAU,WAAW;CAC3B,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;AAE/C,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC;EACQ;EACE;EACT,WAAU;EACV;EACQ;EACD;EACC;EACR,iBAAiB;IAEhB,QACC,oCAAC,aACC,oCAAC,aACC,oCAAC;EAAsB;EAAa;GAAS,CACzC,EACN,oCAAC,cAAW,MAAK,OAAO,EACvB,SACD,oCAAC,cAAW,MAAK,OAAO,CACpB,EAEP,CAAC,QAAQ,oCAAC,aAAI,KAAE,QAAc,EAE/B,oCAAC,aACE,MACD,oCAAC,cAAW,MAAK,QAAQ,EACxB,gBACC,oCAAC,SAAI,WAAW,QAAQ,cACtB,oCAAC;EACC,eAAe,YAAY,CAAC,SAAS;EACrC,MAAM,WAAW,gBAAgB;EACjC,WAAW,QAAQ;GACnB,CACE,EAER,oCAAC;EAAS,IAAI;EAAU,SAAQ;IAC9B,oCAAC,aAAK,aAAmB,CAChB,CACP,CACM,CACV"}
1
+ {"version":3,"file":"WorkOrderCard-s-6QK3Re.js","names":["useStyles"],"sources":["../src/UI/surfaces/cards/workOrderCard/WorkOrderHeader.jsx","../src/UI/surfaces/cards/workOrderCard/WorkOrderCard.jsx"],"sourcesContent":["import React from 'react'\nimport { makeStyles, Typography, Divider } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n wrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n width: '75%'\n }\n}))\n\nexport const WorkOrderHeader = ({ cost, hours }) => {\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n <div className={classes.wrapper}>\n <div>\n <Typography variant='h3'> ${cost} </Typography>\n <Typography variant='caption'> Total Cost </Typography>\n </div>\n <div>\n <Divider variant='vertical' />\n </div>\n <div>\n <Typography variant='h3'> {hours} </Typography>\n <Typography variant='caption'> Total Hours </Typography>\n </div>\n </div>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport { makeStyles, Collapse } from '@material-ui/core'\nimport { AmbientCard } from '../AmbientCard'\nimport { FluentIconButton } from '../../../inputs/buttons/FluentIconButton'\nimport { LayoutUnit } from '../../../../layout/LayoutUnit'\nimport { ChevronDownIcon, ChevronUpIcon } from '@fluentui/react-icons'\nimport { WorkOrderHeader } from './WorkOrderHeader'\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n moreButton: {\n display: 'flex',\n // justifyContent: 'flex-end',\n },\n}));\n\nexport const WorkOrderCard = ({\n title,\n onClick,\n status,\n label,\n cost,\n hours,\n service,\n list,\n extendedList,\n launch,\n}) => {\n const classes = useStyles();\n const [expanded, setExpanded] = useState(false);\n\n return (\n <div className={classes.root}>\n <AmbientCard\n title={title}\n onClick={onClick}\n ariaLabel=\"launch\"\n fullWidth\n status={status}\n label={label}\n launch={launch}\n extendedContent={expanded}\n >\n {cost && (\n <div>\n <div>\n <WorkOrderHeader cost={cost} hours={hours} />\n </div>\n <LayoutUnit unit=\"sm\" />\n {service}\n <LayoutUnit unit=\"sm\" />\n </div>\n )}\n {!cost && <div> {service}</div>}\n\n <div>\n {list}\n <LayoutUnit unit=\"xxs\" />\n {extendedList && (\n <div className={classes.moreButton}>\n <FluentIconButton\n onClick={() => setExpanded(!expanded)}\n icon={expanded ? ChevronUpIcon : ChevronDownIcon}\n className={classes.icon}\n />\n </div>\n )}\n <Collapse in={expanded} timeout=\"auto\">\n <div>{extendedList}</div>\n </Collapse>\n </div>\n </AmbientCard>\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAGA,MAAMA,cAAY,YAAY,WAAW;CACvC,MAAM,EAAE;CACR,SAAS;EACP,SAAS;EACT,gBAAgB;EAChB,OAAO;EACR;CACF,EAAE;AAEH,MAAa,mBAAmB,EAAE,MAAM,YAAY;CAClD,MAAM,UAAUA,aAAW;AAE3B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC,SAAI,WAAW,QAAQ,WACtB,oCAAC,aACC,oCAAC,cAAW,SAAQ,QAAK,MAAG,MAAK,IAAc,EAC/C,oCAAC,cAAW,SAAQ,aAAU,eAAyB,CACnD,EACN,oCAAC,aACC,oCAAC,WAAQ,SAAQ,aAAa,CAC1B,EACN,oCAAC,aACC,oCAAC,cAAW,SAAQ,QAAK,KAAE,OAAM,IAAc,EAC/C,oCAAC,cAAW,SAAQ,aAAU,gBAA0B,CACpD,CACF,CACF;;;;;ACtBV,MAAM,YAAY,YAAW,WAAU;CACrC,MAAM,EAAE;CACR,YAAY,EACV,SAAS,QAEV;CACF,EAAE;AAEH,MAAa,iBAAiB,EAC5B,OACA,SACA,QACA,OACA,MACA,OACA,SACA,MACA,cACA,aACI;CACJ,MAAM,UAAU,WAAW;CAC3B,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;AAE/C,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC;EACQ;EACE;EACT,WAAU;EACV;EACQ;EACD;EACC;EACR,iBAAiB;IAEhB,QACC,oCAAC,aACC,oCAAC,aACC,oCAAC;EAAsB;EAAa;GAAS,CACzC,EACN,oCAAC,cAAW,MAAK,OAAO,EACvB,SACD,oCAAC,cAAW,MAAK,OAAO,CACpB,EAEP,CAAC,QAAQ,oCAAC,aAAI,KAAE,QAAc,EAE/B,oCAAC,aACE,MACD,oCAAC,cAAW,MAAK,QAAQ,EACxB,gBACC,oCAAC,SAAI,WAAW,QAAQ,cACtB,oCAAC;EACC,eAAe,YAAY,CAAC,SAAS;EACrC,MAAM,WAAW,gBAAgB;EACjC,WAAW,QAAQ;GACnB,CACE,EAER,oCAAC;EAAS,IAAI;EAAU,SAAQ;IAC9B,oCAAC,aAAK,aAAmB,CAChB,CACP,CACM,CACV"}
@@ -10,7 +10,7 @@ import { t as UtilitySideBar } from "./UtilitySideBar-wvrocDGI.js";
10
10
  import { t as WorkflowTreeMenu } from "./WorkflowTreeMenu-CTxpL6vb.js";
11
11
  import { i as transformWorkflowPlayTree } from "./workflowUtilities-Brby0vts.js";
12
12
  import { t as WorkflowContent } from "./WorkflowContent-CU_-pOym.js";
13
- import { t as useUpdateSearchParams } from "./useUpdateSearchParams-DV8yJL_e.js";
13
+ import { t as useUpdateSearchParams } from "./useUpdateSearchParams-en3_FDTj.js";
14
14
  import React, { useCallback, useEffect, useState } from "react";
15
15
  import { makeStyles } from "@material-ui/core";
16
16
  import { useLocation } from "react-router-dom";
@@ -184,4 +184,4 @@ var WorkflowContainer_default = WorkflowContainer;
184
184
 
185
185
  //#endregion
186
186
  export { WorkflowContainer_default as n, WorkflowContainer as t };
187
- //# sourceMappingURL=WorkflowContainer-DvkjhRjh.js.map
187
+ //# sourceMappingURL=WorkflowContainer-CA0eMzMU.js.map