udp-react-enterprise-component-library 25.18.1-beta.14 → 25.18.1-beta.16

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 (272) hide show
  1. package/dist/{BarChartWidget-D0YHgxLm.js → BarChartWidget-DvxJmSJp.js} +2 -2
  2. package/dist/{BarChartWidget-D0YHgxLm.js.map → BarChartWidget-DvxJmSJp.js.map} +1 -1
  3. package/dist/{BubbleWidget-Cs5d4ltm.js → BubbleWidget-sXx3k5jw.js} +2 -2
  4. package/dist/{BubbleWidget-Cs5d4ltm.js.map → BubbleWidget-sXx3k5jw.js.map} +1 -1
  5. package/dist/{ChatUDP-B7dgnKO0.js → ChatUDP-Dy_TzC1C.js} +2 -2
  6. package/dist/{ChatUDP-B7dgnKO0.js.map → ChatUDP-Dy_TzC1C.js.map} +1 -1
  7. package/dist/{DateTrendWidget-CL1SXIdH.js → DateTrendWidget-CwSCalMf.js} +2 -2
  8. package/dist/{DateTrendWidget-CL1SXIdH.js.map → DateTrendWidget-CwSCalMf.js.map} +1 -1
  9. package/dist/{DensePlotWidget-BC__SHpk.js → DensePlotWidget-DekKAdvx.js} +2 -2
  10. package/dist/{DensePlotWidget-BC__SHpk.js.map → DensePlotWidget-DekKAdvx.js.map} +1 -1
  11. package/dist/{DonutChartWidget-_PqIlK7j.js → DonutChartWidget-mKcG-bWw.js} +2 -2
  12. package/dist/{DonutChartWidget-_PqIlK7j.js.map → DonutChartWidget-mKcG-bWw.js.map} +1 -1
  13. package/dist/{FluentProfileMenuCard-CnUOy-ne.js → FluentProfileMenuCard-DNEXKlnU.js} +3 -3
  14. package/dist/{FluentProfileMenuCard-CnUOy-ne.js.map → FluentProfileMenuCard-DNEXKlnU.js.map} +1 -1
  15. package/dist/{InsightRenderer-UkS3B5zg.js → InsightRenderer-BwE5OX4C.js} +2 -2
  16. package/dist/{InsightRenderer-UkS3B5zg.js.map → InsightRenderer-BwE5OX4C.js.map} +1 -1
  17. package/dist/{LineAndSparklinesWidget-BIOUv_gL.js → LineAndSparklinesWidget-BEWoRerh.js} +2 -2
  18. package/dist/{LineAndSparklinesWidget-BIOUv_gL.js.map → LineAndSparklinesWidget-BEWoRerh.js.map} +1 -1
  19. package/dist/{LineGraphWidget-Cs6V1fm8.js → LineGraphWidget-Dc-G6-QJ.js} +2 -2
  20. package/dist/{LineGraphWidget-Cs6V1fm8.js.map → LineGraphWidget-Dc-G6-QJ.js.map} +1 -1
  21. package/dist/{MttMainTimeline-CwttwjLy.js → MttMainTimeline-BsI0z3aG.js} +2 -2
  22. package/dist/{MttMainTimeline-CwttwjLy.js.map → MttMainTimeline-BsI0z3aG.js.map} +1 -1
  23. package/dist/{MttSummary-Br4SrY1Q.js → MttSummary-DowXi1ZV.js} +2 -2
  24. package/dist/{MttSummary-Br4SrY1Q.js.map → MttSummary-DowXi1ZV.js.map} +1 -1
  25. package/dist/{ProgressBarWidget-CJb2yLHN.js → ProgressBarWidget-A-EV1csL.js} +2 -2
  26. package/dist/{ProgressBarWidget-CJb2yLHN.js.map → ProgressBarWidget-A-EV1csL.js.map} +1 -1
  27. package/dist/{PropertyFields-CxrUoqQG.js → PropertyFields-E53XCnE7.js} +2 -2
  28. package/dist/{PropertyFields-CxrUoqQG.js.map → PropertyFields-E53XCnE7.js.map} +1 -1
  29. package/dist/{RecentlyLoadedNodesWidget-BDYNo-Of.js → RecentlyLoadedNodesWidget-CFSKFiGc.js} +2 -2
  30. package/dist/{RecentlyLoadedNodesWidget-BDYNo-Of.js.map → RecentlyLoadedNodesWidget-CFSKFiGc.js.map} +1 -1
  31. package/dist/{RemindersWidget-Uk_ZyAW-.js → RemindersWidget-iGOcibjO.js} +2 -2
  32. package/dist/{RemindersWidget-Uk_ZyAW-.js.map → RemindersWidget-iGOcibjO.js.map} +1 -1
  33. package/dist/{Shell-BnKSMfKq.js → Shell-CtVpJXxY.js} +2 -2
  34. package/dist/{Shell-BnKSMfKq.js.map → Shell-CtVpJXxY.js.map} +1 -1
  35. package/dist/{SimpleTable-BMjywRbx.js → SimpleTable-qZ0yJQ7F.js} +1 -1
  36. package/dist/{SimpleTable-BMjywRbx.js.map → SimpleTable-qZ0yJQ7F.js.map} +1 -1
  37. package/dist/{SparklineWidget-CQtdgO_B.js → SparklineWidget-CVrtRT-m.js} +2 -2
  38. package/dist/{SparklineWidget-CQtdgO_B.js.map → SparklineWidget-CVrtRT-m.js.map} +1 -1
  39. package/dist/{SparsePlotWidget-DdDpBWsn.js → SparsePlotWidget-DtSUgvpM.js} +2 -2
  40. package/dist/{SparsePlotWidget-DdDpBWsn.js.map → SparsePlotWidget-DtSUgvpM.js.map} +1 -1
  41. package/dist/UI/accordion/index.js +1 -1
  42. package/dist/UI/advancedSearchBuilder/index.js +1 -1
  43. package/dist/UI/charts/amcharts/index.js +1 -1
  44. package/dist/UI/charts/index.js +3 -3
  45. package/dist/UI/components/dataDisplay/index.js +1 -1
  46. package/dist/UI/components/feedback/index.js +1 -1
  47. package/dist/UI/components/index.js +3 -3
  48. package/dist/UI/containers/index.js +1 -1
  49. package/dist/UI/dataDisplay/FluentActivity/index.js +1 -1
  50. package/dist/UI/dataDisplay/FluentDataTable/index.js +1 -1
  51. package/dist/UI/dataDisplay/index.js +3 -3
  52. package/dist/UI/feedback/index.js +1 -1
  53. package/dist/UI/fileViewer/index.js +1 -1
  54. package/dist/UI/floorplans/index.js +1 -1
  55. package/dist/UI/forms/index.js +2 -2
  56. package/dist/UI/iframe/index.js +1 -1
  57. package/dist/UI/index.js +44 -46
  58. package/dist/UI/loading/index.js +1 -1
  59. package/dist/UI/mapLayout/index.js +1 -1
  60. package/dist/UI/maps/index.js +1 -1
  61. package/dist/UI/navigation/index.js +4 -4
  62. package/dist/UI/navigation/menus/index.js +1 -1
  63. package/dist/UI/navigation/tabs/defaultTabs/index.js +1 -1
  64. package/dist/UI/navigation/tabs/index.js +2 -2
  65. package/dist/UI/property/index.js +3 -3
  66. package/dist/UI/property/widgets/index.js +1 -1
  67. package/dist/UI/stepper/index.js +1 -1
  68. package/dist/UI/support/index.js +1 -1
  69. package/dist/UI/surfaces/NestedGrid/index.js +2 -2
  70. package/dist/UI/surfaces/NestedGrid/ui/index.js +1 -1
  71. package/dist/UI/surfaces/cards/index.js +1 -1
  72. package/dist/UI/surfaces/index.js +4 -4
  73. package/dist/UI/templates/index.js +1 -1
  74. package/dist/UI/timeline/fluentTimeline/index.js +1 -1
  75. package/dist/UI/timeline/index.js +2 -2
  76. package/dist/UI/utilityDisplay/alerts/index.js +1 -1
  77. package/dist/UI/utilityDisplay/index.js +5 -5
  78. package/dist/UI/utilityDisplay/ui/index.js +1 -1
  79. package/dist/UI/utilityDisplay/utilities/index.js +1 -1
  80. package/dist/UI/utilityDisplay/utilityHeader/index.js +1 -1
  81. package/dist/UI/widgets/FluentComponents/index.js +1 -1
  82. package/dist/UI/widgets/index.js +1 -1
  83. package/dist/UI/widgets/library/BarChartWidget/index.js +1 -1
  84. package/dist/UI/widgets/library/BubbleWidget/index.js +1 -1
  85. package/dist/UI/widgets/library/DateTrendWidget/index.js +1 -1
  86. package/dist/UI/widgets/library/DensePlotWidget/index.js +1 -1
  87. package/dist/UI/widgets/library/DonutChartWidget/index.js +1 -1
  88. package/dist/UI/widgets/library/LineAndSparklinesWidget/index.js +1 -1
  89. package/dist/UI/widgets/library/LineGraphWidget/index.js +1 -1
  90. package/dist/UI/widgets/library/ProgressBarWidget/index.js +1 -1
  91. package/dist/UI/widgets/library/RecentlyLoadedNodesWidget/index.js +1 -1
  92. package/dist/UI/widgets/library/RemindersWidget/index.js +1 -1
  93. package/dist/UI/widgets/library/SparklineWidget/index.js +1 -1
  94. package/dist/UI/widgets/library/SparsePlotWidget/index.js +1 -1
  95. package/dist/UI/widgets/library/TableWidget/index.js +1 -1
  96. package/dist/{UdpAuditEvents-Dsvqz2Ad.js → UdpAuditEvents-C15mWgaI.js} +2 -2
  97. package/dist/{UdpAuditEvents-Dsvqz2Ad.js.map → UdpAuditEvents-C15mWgaI.js.map} +1 -1
  98. package/dist/{UdpDataBrowserPage-DIq--ak3.js → UdpDataBrowserPage-ByYTIFed.js} +2 -2
  99. package/dist/{UdpDataBrowserPage-DIq--ak3.js.map → UdpDataBrowserPage-ByYTIFed.js.map} +1 -1
  100. package/dist/{UdpFormsBuilderPage-C1_7kI_t.js → UdpFormsBuilderPage-h5Q62J02.js} +2 -2
  101. package/dist/{UdpFormsBuilderPage-C1_7kI_t.js.map → UdpFormsBuilderPage-h5Q62J02.js.map} +1 -1
  102. package/dist/{UdpFormsListPage-CH3hqgMT.js → UdpFormsListPage-D6eyoogV.js} +2 -2
  103. package/dist/{UdpFormsListPage-CH3hqgMT.js.map → UdpFormsListPage-D6eyoogV.js.map} +1 -1
  104. package/dist/{UdpGridPanelManagementPage-Dk0miZ38.js → UdpGridPanelManagementPage-CTLw0vlP.js} +2 -2
  105. package/dist/{UdpGridPanelManagementPage-Dk0miZ38.js.map → UdpGridPanelManagementPage-CTLw0vlP.js.map} +1 -1
  106. package/dist/{UdpImportFromFileMappingPage-BWaYkxhW.js → UdpImportFromFileMappingPage-B-GRm1zk.js} +2 -2
  107. package/dist/{UdpImportFromFileMappingPage-BWaYkxhW.js.map → UdpImportFromFileMappingPage-B-GRm1zk.js.map} +1 -1
  108. package/dist/{UdpInquiryMaintenanceEnginePage-DTanTz7X.js → UdpInquiryMaintenanceEnginePage-BascqEkC.js} +3 -3
  109. package/dist/{UdpInquiryMaintenanceEnginePage-DTanTz7X.js.map → UdpInquiryMaintenanceEnginePage-BascqEkC.js.map} +1 -1
  110. package/dist/{UdpMaintenanceEnginePage-DIyBfIMk.js → UdpMaintenanceEnginePage-DbI1T8S6.js} +3 -3
  111. package/dist/{UdpMaintenanceEnginePage-DIyBfIMk.js.map → UdpMaintenanceEnginePage-DbI1T8S6.js.map} +1 -1
  112. package/dist/{UdpNotesPage-B3cesDaw.js → UdpNotesPage-BRk1UPem.js} +2 -2
  113. package/dist/{UdpNotesPage-B3cesDaw.js.map → UdpNotesPage-BRk1UPem.js.map} +1 -1
  114. package/dist/{UdpPages-Duf7s2Bf.js → UdpPages-DXB-xgq5.js} +21 -21
  115. package/dist/{UdpPages-Duf7s2Bf.js.map → UdpPages-DXB-xgq5.js.map} +1 -1
  116. package/dist/{UdpPrivateForm-Cju6dVDc.js → UdpPrivateForm-CamStDVL.js} +2 -2
  117. package/dist/{UdpPrivateForm-Cju6dVDc.js.map → UdpPrivateForm-CamStDVL.js.map} +1 -1
  118. package/dist/{UdpPublicForm-D3D8GPrh.js → UdpPublicForm-BLcb2F_H.js} +2 -2
  119. package/dist/{UdpPublicForm-D3D8GPrh.js.map → UdpPublicForm-BLcb2F_H.js.map} +1 -1
  120. package/dist/{UdpRemindersPage-DBQ0SQO4.js → UdpRemindersPage-CkGREvgu.js} +2 -2
  121. package/dist/{UdpRemindersPage-DBQ0SQO4.js.map → UdpRemindersPage-CkGREvgu.js.map} +1 -1
  122. package/dist/{UdpReportsPage-DMA-kvyF.js → UdpReportsPage-CmmjWDIs.js} +2 -2
  123. package/dist/{UdpReportsPage-DMA-kvyF.js.map → UdpReportsPage-CmmjWDIs.js.map} +1 -1
  124. package/dist/{UdpRoutes-MhKxW3An.js → UdpRoutes-CI1py_NT.js} +2 -2
  125. package/dist/{UdpRoutes-MhKxW3An.js.map → UdpRoutes-CI1py_NT.js.map} +1 -1
  126. package/dist/{UdpVerticalManagementPage-SWVycbx7.js → UdpVerticalManagementPage-Bpf_2UGu.js} +2 -2
  127. package/dist/{UdpVerticalManagementPage-SWVycbx7.js.map → UdpVerticalManagementPage-Bpf_2UGu.js.map} +1 -1
  128. package/dist/{UserFormSideSheet-DGU02bqo.js → UserFormSideSheet-D7hlvi7a.js} +1 -1
  129. package/dist/{UserFormSideSheet-2QRJUUnm.js → UserFormSideSheet-DI9PhY_8.js} +1 -1
  130. package/dist/{UserFormSideSheet-2QRJUUnm.js.map → UserFormSideSheet-DI9PhY_8.js.map} +1 -1
  131. package/dist/{VirtualBrowser-CKvzgu8L.js → VirtualBrowser-5hAz3UE3.js} +2 -2
  132. package/dist/{VirtualBrowser-CKvzgu8L.js.map → VirtualBrowser-5hAz3UE3.js.map} +1 -1
  133. package/dist/{VirtualBrowser-CxAjZWKa.js → VirtualBrowser-rYIbYWoG.js} +2 -2
  134. package/dist/{VirtualForm-Dj5FMp9u.js → VirtualForm-IeyAdA0M.js} +1 -1
  135. package/dist/{VirtualForm-Dj5FMp9u.js.map → VirtualForm-IeyAdA0M.js.map} +1 -1
  136. package/dist/actions/index.js +2 -2
  137. package/dist/actions/sidebar/index.js +1 -1
  138. package/dist/actions/utils/index.js +1 -1
  139. package/dist/{amcharts-ptK5Ggb0.js → amcharts-C-oU6vTx.js} +2 -2
  140. package/dist/{amcharts-ptK5Ggb0.js.map → amcharts-C-oU6vTx.js.map} +1 -1
  141. package/dist/{cards-Bpy1zoxV.js → cards-DPBDLDXw.js} +1 -1
  142. package/dist/{cards-Bpy1zoxV.js.map → cards-DPBDLDXw.js.map} +1 -1
  143. package/dist/chunk-B4enJp2Q.js +18 -0
  144. package/dist/componentSystems/multiThreadTimeline/functions/index.js +2 -2
  145. package/dist/componentSystems/multiThreadTimeline/index.js +8 -8
  146. package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +3 -3
  147. package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +3 -3
  148. package/dist/componentSystems/multiThreadTimeline/ui/index.js +2 -2
  149. package/dist/componentSystems/multiThreadTimeline/ui/modified/index.js +1 -1
  150. package/dist/componentSystems/pageRenderer/hocs/index.js +1 -1
  151. package/dist/componentSystems/pageRenderer/hooks/index.js +1 -1
  152. package/dist/componentSystems/pageRenderer/index.js +4 -4
  153. package/dist/componentSystems/pageRenderer/utils/index.js +1 -1
  154. package/dist/componentSystems/pageRenderer/wrappers/index.js +1 -1
  155. package/dist/dataBrowser/forms/index.js +1 -1
  156. package/dist/dataBrowser/index.js +1 -1
  157. package/dist/{dataDisplay-CBFgak2F.js → dataDisplay-BSQWZtf2.js} +1 -1
  158. package/dist/{dataDisplay-CBFgak2F.js.map → dataDisplay-BSQWZtf2.js.map} +1 -1
  159. package/dist/{defaultTabs-CVeUq9lw.js → defaultTabs-DWvaZLda.js} +1 -1
  160. package/dist/{defaultTabs-CVeUq9lw.js.map → defaultTabs-DWvaZLda.js.map} +1 -1
  161. package/dist/index.js +41 -42
  162. package/dist/inquiry/index.js +4 -4
  163. package/dist/inquiry/search/index.js +3 -3
  164. package/dist/{inquiry-J7m3wdvC.js → inquiry-OhbvzcJ3.js} +2 -2
  165. package/dist/{inquiry-J7m3wdvC.js.map → inquiry-OhbvzcJ3.js.map} +1 -1
  166. package/dist/maintenanceEngine/crudBrowser/index.js +1 -1
  167. package/dist/maintenanceEngine/index.js +5 -5
  168. package/dist/maintenanceEngine/tableBrowser/index.js +1 -1
  169. package/dist/maintenanceEngine/virtualBrowser/index.js +3 -3
  170. package/dist/{mttFunctions-Du5Q0h5k.js → mttFunctions-ioZ0_5JX.js} +2 -2
  171. package/dist/{mttFunctions-Du5Q0h5k.js.map → mttFunctions-ioZ0_5JX.js.map} +1 -1
  172. package/dist/routes/index.js +1 -1
  173. package/dist/{search-CAGMOHR-.js → search-DdbraDFl.js} +2 -2
  174. package/dist/{search-CAGMOHR-.js.map → search-DdbraDFl.js.map} +1 -1
  175. package/dist/shell/index.js +6 -6
  176. package/dist/shell/ui/addUser/index.js +2 -2
  177. package/dist/shell/ui/appSwitcher/index.js +1 -1
  178. package/dist/shell/ui/index.js +5 -5
  179. package/dist/types/src/UI/index.d.ts +0 -1
  180. package/dist/types/src/UI/index.d.ts.map +1 -1
  181. package/dist/types/src/index.d.ts +0 -1
  182. package/dist/types/src/index.d.ts.map +1 -1
  183. package/dist/types/tsconfig.tsbuildinfo +1 -1
  184. package/dist/udp/pages/ChatUDP/index.js +1 -1
  185. package/dist/udp/pages/UdpAuditEvents/index.js +1 -1
  186. package/dist/udp/pages/UdpDataBrowserPage/index.js +1 -1
  187. package/dist/udp/pages/UdpFormsBuilderPage/index.js +1 -1
  188. package/dist/udp/pages/UdpFormsListPage/index.js +1 -1
  189. package/dist/udp/pages/UdpGridPanelManagementPage/index.js +1 -1
  190. package/dist/udp/pages/UdpImportFromFileMappingPage/index.js +1 -1
  191. package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +6 -6
  192. package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +5 -5
  193. package/dist/udp/pages/UdpNotesPage/index.js +1 -1
  194. package/dist/udp/pages/UdpPages/index.js +25 -25
  195. package/dist/udp/pages/UdpPrivateForm/index.js +1 -1
  196. package/dist/udp/pages/UdpPublicForm/index.js +1 -1
  197. package/dist/udp/pages/UdpRemindersPage/index.js +1 -1
  198. package/dist/udp/pages/UdpReportsPage/index.js +1 -1
  199. package/dist/udp/pages/UdpVerticalManagementPage/index.js +1 -1
  200. package/dist/udp/pages/index.js +25 -25
  201. package/dist/{ui-gRqaK08H.js → ui-D8rpUgCH.js} +1 -1
  202. package/dist/{ui-gRqaK08H.js.map → ui-D8rpUgCH.js.map} +1 -1
  203. package/dist/{widgets-DRc97wsQ.js → widgets-TW8ap2gq.js} +2 -2
  204. package/dist/{widgets-DRc97wsQ.js.map → widgets-TW8ap2gq.js.map} +1 -1
  205. package/dist/workflow/components/index.js +1 -1
  206. package/dist/workflow/index.js +2 -2
  207. package/dist/workflow/menus/index.js +1 -1
  208. package/export-map.json +2 -3
  209. package/package.json +2 -2
  210. package/dist/InputsExample-ClC-vFVK.js +0 -11
  211. package/dist/InputsExample-ClC-vFVK.js.map +0 -1
  212. package/dist/UI/demos/index.js +0 -4
  213. package/dist/chunk-Bp6m_JJh.js +0 -13
  214. package/dist/types/src/UI/demos/InputsExample.d.ts +0 -5
  215. package/dist/types/src/UI/demos/InputsExample.d.ts.map +0 -1
  216. package/dist/types/src/UI/demos/index.d.ts +0 -4
  217. package/dist/types/src/UI/demos/index.d.ts.map +0 -1
  218. package/dist/wrappers-CGE2HK5z.js +0 -1
  219. /package/dist/{FluentActivity-DNv5ppko.js → FluentActivity-ZmR91KuL.js} +0 -0
  220. /package/dist/{FluentDataTable-BXPIqR8m.js → FluentDataTable-D6CwFLEV.js} +0 -0
  221. /package/dist/{NestedGrid-CQ_tEe-B.js → NestedGrid-Bpe6Gn2t.js} +0 -0
  222. /package/dist/{accordion-BLXGkcTH.js → accordion-Cna7x6KZ.js} +0 -0
  223. /package/dist/{addUser-D2pqu0AW.js → addUser-Rm753Rdx.js} +0 -0
  224. /package/dist/{advancedSearchBuilder-DAGBcP1-.js → advancedSearchBuilder-B90LZRh_.js} +0 -0
  225. /package/dist/{alerts-Gbvcpl4E.js → alerts-BEzneJqz.js} +0 -0
  226. /package/dist/{appSwitcher-Cj_OxE8O.js → appSwitcher-CyJs9WuC.js} +0 -0
  227. /package/dist/{charts-R51kXdbo.js → charts-Du-Q0llq.js} +0 -0
  228. /package/dist/{components-BbPynQ4E.js → components-C5coF-wQ.js} +0 -0
  229. /package/dist/{components-HFPHj0Z0.js → components-CoC-8_zm.js} +0 -0
  230. /package/dist/{containers-Do3V9CjC.js → containers-_3rkuZoE.js} +0 -0
  231. /package/dist/{crudBrowser-CNJMNMPk.js → crudBrowser-CdhcPPcg.js} +0 -0
  232. /package/dist/{dataDisplay-CHdSKRO0.js → dataDisplay-DIgTM1UM.js} +0 -0
  233. /package/dist/{demos-D1hYYoOq.js → feedback-B05CkZXj.js} +0 -0
  234. /package/dist/{feedback-DL6EKTOa.js → feedback-BDi9oRUo.js} +0 -0
  235. /package/dist/{feedback-Dw-Qh7A6.js → fileViewer-DRwdxYw_.js} +0 -0
  236. /package/dist/{fileViewer-CMBhBXGp.js → floorplans-Dl2AyLhb.js} +0 -0
  237. /package/dist/{floorplans-CtbDAfnq.js → fluentTimeline--3Q718UR.js} +0 -0
  238. /package/dist/{fluentTimeline-BbvrZFSz.js → forms-BHhy_qYQ.js} +0 -0
  239. /package/dist/{forms-Bqbd2PSS.js → forms-CVEaCedp.js} +0 -0
  240. /package/dist/{forms-uSV7-14b.js → functions-CwSJZI3C.js} +0 -0
  241. /package/dist/{functions-BKH-pLPX.js → hocs-DuC-vCkb.js} +0 -0
  242. /package/dist/{hocs-DwAy8u5A.js → hooks-D_mILYbQ.js} +0 -0
  243. /package/dist/{hooks-B7ab4j1m.js → iframe-AW8kvPvm.js} +0 -0
  244. /package/dist/{iframe-CM2OOxOu.js → loading-B3JBL1wZ.js} +0 -0
  245. /package/dist/{loading-BwkuGJoi.js → mapLayout-C6RRQSQH.js} +0 -0
  246. /package/dist/{mapLayout-Cg6spO9k.js → maps-BtJVT799.js} +0 -0
  247. /package/dist/{maps-D2whP8Zh.js → menus-C7WHOHJR.js} +0 -0
  248. /package/dist/{menus-DugtDOhA.js → menus-DShZlpFc.js} +0 -0
  249. /package/dist/{menus-VWidUTp_.js → modified-BPc6aUrP.js} +0 -0
  250. /package/dist/{modified--RrdyRlS.js → mttMainTimeline-DUbkEEOm.js} +0 -0
  251. /package/dist/{mttMainTimeline-DFHSLEBw.js → mttSummary-CQ7CNsq1.js} +0 -0
  252. /package/dist/{mttSummary-BrQ0Tb62.js → navigation-CJVbXvHa.js} +0 -0
  253. /package/dist/{navigation-2kyWDJg1.js → property-CbQRfYWe.js} +0 -0
  254. /package/dist/{property-CB8U10nw.js → sidebar-CNPzO9Fp.js} +0 -0
  255. /package/dist/{sidebar-C8yBp4eL.js → stepper-B7huBKfi.js} +0 -0
  256. /package/dist/{stepper-sZXSP0dk.js → support-NC4OMh9O.js} +0 -0
  257. /package/dist/{support-BhMVhBcD.js → surfaces-BCTDrjpT.js} +0 -0
  258. /package/dist/{surfaces-B445R0FQ.js → tableBrowser-Bn8IK1Xe.js} +0 -0
  259. /package/dist/{tableBrowser-BRVY65f3.js → tabs-BNJtY5Hp.js} +0 -0
  260. /package/dist/{tabs-BMrd1KM-.js → templates-B2aOg0L7.js} +0 -0
  261. /package/dist/{templates-Cz1v1M4q.js → timeline-DJIkHTcL.js} +0 -0
  262. /package/dist/{timeline-x3kpYbLD.js → ui-BcDKhtx3.js} +0 -0
  263. /package/dist/{ui-BjpkPJO5.js → ui-C--uraG2.js} +0 -0
  264. /package/dist/{ui-Bqag992Z.js → ui-DKHa8sM6.js} +0 -0
  265. /package/dist/{ui-DBhxlgrk.js → utilities-CxBf7Ev-.js} +0 -0
  266. /package/dist/{utilities-CMoiGbGt.js → utilityDisplay-BaXrFO-O.js} +0 -0
  267. /package/dist/{utilityDisplay-BHYWs3gf.js → utilityHeader-Dt6H4wad.js} +0 -0
  268. /package/dist/{utilityHeader-BsUlwtE7.js → utils-B-VgChNQ.js} +0 -0
  269. /package/dist/{utils-CRdMZZPC.js → utils-CfkvLUFW.js} +0 -0
  270. /package/dist/{utils-Cpcp_Rx8.js → virtualBrowser-n3zfV2w2.js} +0 -0
  271. /package/dist/{virtualBrowser-pfw07Czd.js → widgets-CATYcCRH.js} +0 -0
  272. /package/dist/{widgets-BcHFxfRK.js → wrappers-BaMCCFNw.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { t as __export } from "./chunk-Bp6m_JJh.js";
1
+ import { t as __export } from "./chunk-B4enJp2Q.js";
2
2
  import { t as WidgetCard_default } from "./WidgetCard-CDqYxK5O.js";
3
3
  import { t as FluentStatsSnippet_default } from "./FluentStatsSnippet-BuDlbH0Q.js";
4
4
  import { t as convertISODate } from "./ConvertISODate-TfG2U4Iu.js";
@@ -82,4 +82,4 @@ var BarChartWidget_exports = /* @__PURE__ */ __export({
82
82
 
83
83
  //#endregion
84
84
  export { params as i, BarChartWidget_default as n, layout as r, BarChartWidget_exports as t };
85
- //# sourceMappingURL=BarChartWidget-D0YHgxLm.js.map
85
+ //# sourceMappingURL=BarChartWidget-DvxJmSJp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BarChartWidget-D0YHgxLm.js","names":["params","WidgetCard","FluentStatsSnippet"],"sources":["../src/UI/widgets/library/BarChartWidget/BarChartWidget.jsx","../src/UI/widgets/library/BarChartWidget/index.ts"],"sourcesContent":["import React, { forwardRef, Fragment } from 'react'\nimport { Grid, Box, Typography } from '@material-ui/core'\nimport { MuiVegaLite } from '@material-vega/material-ui'\nimport WidgetCard from '../../WidgetCard'\nimport FluentStatsSnippet from '../../FluentComponents/atoms/FluentStatsSnippet'\nimport { convertISODate } from '../../utils/ConvertISODate'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nexport const params = {\n mode: {\n defaultValue: 'chart'\n }\n}\n\nconst BarChartWidget = (props, ref) => {\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme, dateRange } = params\n\n return (\n <WidgetCard\n ref={ref}\n {...other}\n title={mockData?.title}\n theme={theme && theme}\n >\n {mockData ? (\n <>\n {dateRange && (\n <Typography gutterBottom variant='caption' component='h3'>\n From: {convertISODate(dateRange.from)} to:{' '}\n {convertISODate(dateRange.to)}\n </Typography>\n )}\n {mockData?.stats && (\n <Grid container>\n {mockData?.stats.map((stat) => (\n <Grid item xs={3} key={stat.label}>\n <FluentStatsSnippet\n label={stat.label}\n amount={stat.currentValue}\n prevAmount={stat.previousValue}\n />\n </Grid>\n ))}\n </Grid>\n )}\n <Box clone flex={1} mt={1} overflow='hidden'>\n <MuiVegaLite\n width='container'\n height='container'\n autoResize='true'\n variant='verticalBarChart'\n spec={{\n $schema: 'https://vega.github.io/schema/vega-lite/v4.json',\n data: {\n values: mockData?.data\n },\n mark: 'bar',\n encoding: {\n x: {\n field: 'xAxis',\n type: mockData?.xAxisType,\n axis: {\n ticks: false\n },\n band: 0.5\n },\n y: {\n field: 'yAxis',\n type: mockData?.yAxisType,\n axis: {\n format: mockData?.yAxisFormat\n }\n }\n }\n }}\n />\n </Box>\n {children}\n </>\n ) : (\n <Typography variant='subtitle2'>\n Could not retrieve widget data. Please contact support.\n </Typography>\n )}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(BarChartWidget)\n","export * from './BarChartWidget';\nexport {default} from './BarChartWidget';\n"],"mappings":";;;;;;;;;AAOA,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAa,SAAS,EACpB,MAAM,EACJ,cAAc,SACf,EACF;AAED,MAAM,kBAAkB,OAAO,QAAQ;CACrC,MAAM,EAAE,UAAU,kBAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,OAAO,cAAcA;AAE/C,QACE,oCAACC;EACM;EACL,GAAI;EACJ,OAAO,UAAU;EACjB,OAAO,SAAS;IAEf,WACC,0DACG,aACC,oCAAC;EAAW;EAAa,SAAQ;EAAU,WAAU;IAAK,UACjD,eAAe,UAAU,KAAK,EAAC,QAAK,KAC1C,eAAe,UAAU,GAAG,CAClB,EAEd,UAAU,SACT,oCAAC,QAAK,mBACH,UAAU,MAAM,KAAK,SACpB,oCAAC;EAAK;EAAK,IAAI;EAAG,KAAK,KAAK;IAC1B,oCAACC;EACC,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,YAAY,KAAK;GACjB,CACG,CACP,CACG,EAET,oCAAC;EAAI;EAAM,MAAM;EAAG,IAAI;EAAG,UAAS;IAClC,oCAAC;EACC,OAAM;EACN,QAAO;EACP,YAAW;EACX,SAAQ;EACR,MAAM;GACJ,SAAS;GACT,MAAM,EACJ,QAAQ,UAAU,MACnB;GACD,MAAM;GACN,UAAU;IACR,GAAG;KACD,OAAO;KACP,MAAM,UAAU;KAChB,MAAM,EACJ,OAAO,OACR;KACD,MAAM;KACP;IACD,GAAG;KACD,OAAO;KACP,MAAM,UAAU;KAChB,MAAM,EACJ,QAAQ,UAAU,aACnB;KACF;IACF;GACF;GACD,CACE,EACL,SACA,GAEH,oCAAC,cAAW,SAAQ,eAAY,0DAEnB,CAEJ;;AAIjB,6BAAe,WAAW,eAAe"}
1
+ {"version":3,"file":"BarChartWidget-DvxJmSJp.js","names":["params","WidgetCard","FluentStatsSnippet"],"sources":["../src/UI/widgets/library/BarChartWidget/BarChartWidget.jsx","../src/UI/widgets/library/BarChartWidget/index.ts"],"sourcesContent":["import React, { forwardRef, Fragment } from 'react'\nimport { Grid, Box, Typography } from '@material-ui/core'\nimport { MuiVegaLite } from '@material-vega/material-ui'\nimport WidgetCard from '../../WidgetCard'\nimport FluentStatsSnippet from '../../FluentComponents/atoms/FluentStatsSnippet'\nimport { convertISODate } from '../../utils/ConvertISODate'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nexport const params = {\n mode: {\n defaultValue: 'chart'\n }\n}\n\nconst BarChartWidget = (props, ref) => {\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme, dateRange } = params\n\n return (\n <WidgetCard\n ref={ref}\n {...other}\n title={mockData?.title}\n theme={theme && theme}\n >\n {mockData ? (\n <>\n {dateRange && (\n <Typography gutterBottom variant='caption' component='h3'>\n From: {convertISODate(dateRange.from)} to:{' '}\n {convertISODate(dateRange.to)}\n </Typography>\n )}\n {mockData?.stats && (\n <Grid container>\n {mockData?.stats.map((stat) => (\n <Grid item xs={3} key={stat.label}>\n <FluentStatsSnippet\n label={stat.label}\n amount={stat.currentValue}\n prevAmount={stat.previousValue}\n />\n </Grid>\n ))}\n </Grid>\n )}\n <Box clone flex={1} mt={1} overflow='hidden'>\n <MuiVegaLite\n width='container'\n height='container'\n autoResize='true'\n variant='verticalBarChart'\n spec={{\n $schema: 'https://vega.github.io/schema/vega-lite/v4.json',\n data: {\n values: mockData?.data\n },\n mark: 'bar',\n encoding: {\n x: {\n field: 'xAxis',\n type: mockData?.xAxisType,\n axis: {\n ticks: false\n },\n band: 0.5\n },\n y: {\n field: 'yAxis',\n type: mockData?.yAxisType,\n axis: {\n format: mockData?.yAxisFormat\n }\n }\n }\n }}\n />\n </Box>\n {children}\n </>\n ) : (\n <Typography variant='subtitle2'>\n Could not retrieve widget data. Please contact support.\n </Typography>\n )}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(BarChartWidget)\n","export * from './BarChartWidget';\nexport {default} from './BarChartWidget';\n"],"mappings":";;;;;;;;;AAOA,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAa,SAAS,EACpB,MAAM,EACJ,cAAc,SACf,EACF;AAED,MAAM,kBAAkB,OAAO,QAAQ;CACrC,MAAM,EAAE,UAAU,kBAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,OAAO,cAAcA;AAE/C,QACE,oCAACC;EACM;EACL,GAAI;EACJ,OAAO,UAAU;EACjB,OAAO,SAAS;IAEf,WACC,0DACG,aACC,oCAAC;EAAW;EAAa,SAAQ;EAAU,WAAU;IAAK,UACjD,eAAe,UAAU,KAAK,EAAC,QAAK,KAC1C,eAAe,UAAU,GAAG,CAClB,EAEd,UAAU,SACT,oCAAC,QAAK,mBACH,UAAU,MAAM,KAAK,SACpB,oCAAC;EAAK;EAAK,IAAI;EAAG,KAAK,KAAK;IAC1B,oCAACC;EACC,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,YAAY,KAAK;GACjB,CACG,CACP,CACG,EAET,oCAAC;EAAI;EAAM,MAAM;EAAG,IAAI;EAAG,UAAS;IAClC,oCAAC;EACC,OAAM;EACN,QAAO;EACP,YAAW;EACX,SAAQ;EACR,MAAM;GACJ,SAAS;GACT,MAAM,EACJ,QAAQ,UAAU,MACnB;GACD,MAAM;GACN,UAAU;IACR,GAAG;KACD,OAAO;KACP,MAAM,UAAU;KAChB,MAAM,EACJ,OAAO,OACR;KACD,MAAM;KACP;IACD,GAAG;KACD,OAAO;KACP,MAAM,UAAU;KAChB,MAAM,EACJ,QAAQ,UAAU,aACnB;KACF;IACF;GACF;GACD,CACE,EACL,SACA,GAEH,oCAAC,cAAW,SAAQ,eAAY,0DAEnB,CAEJ;;AAIjB,6BAAe,WAAW,eAAe"}
@@ -1,4 +1,4 @@
1
- import { t as __export } from "./chunk-Bp6m_JJh.js";
1
+ import { t as __export } from "./chunk-B4enJp2Q.js";
2
2
  import { t as WidgetCard_default } from "./WidgetCard-CDqYxK5O.js";
3
3
  import { t as FluentStatsSnippet_default } from "./FluentStatsSnippet-BuDlbH0Q.js";
4
4
  import { t as FluentTimeline_default } from "./FluentTimeline-CiDvNDHN.js";
@@ -54,4 +54,4 @@ var BubbleWidget_exports = /* @__PURE__ */ __export({
54
54
 
55
55
  //#endregion
56
56
  export { params as i, BubbleWidget_default as n, layout as r, BubbleWidget_exports as t };
57
- //# sourceMappingURL=BubbleWidget-Cs5d4ltm.js.map
57
+ //# sourceMappingURL=BubbleWidget-sXx3k5jw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleWidget-Cs5d4ltm.js","names":["params","WidgetCard","FluentStatsSnippet","FluentTimeLine"],"sources":["../src/UI/widgets/library/BubbleWidget/BubbleWidget.jsx","../src/UI/widgets/library/BubbleWidget/index.ts"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { Grid, Box } from '@material-ui/core'\nimport WidgetCard from '../../WidgetCard'\nimport FluentStatsSnippet from '../../FluentComponents/atoms/FluentStatsSnippet'\nimport FluentTimeLine from '../../FluentComponents/molecules/FluentTimeline'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nexport const params = {\n mode: {\n defaultValue: 'chart'\n }\n}\n\nconst BubbleWidget = (props, ref) => {\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme } = params\n\n return (\n <WidgetCard ref={ref} {...other} title={mockData?.title} theme={theme}>\n <Grid container>\n {mockData?.stats?.map((stat) => (\n <Grid item xs={3} key={stat.label}>\n <FluentStatsSnippet\n label={stat.label}\n amount={stat.currentValue}\n prevAmount={stat.previousValue}\n />\n </Grid>\n ))}\n </Grid>\n <Box clone flex={1} mt={1} overflow='hidden'>\n <FluentTimeLine categories={mockData?.data} />\n </Box>\n {children}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(BubbleWidget)\n","export * from './BubbleWidget';\nexport {default} from './BubbleWidget';\n"],"mappings":";;;;;;;;AAMA,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAa,SAAS,EACpB,MAAM,EACJ,cAAc,SACf,EACF;AAED,MAAM,gBAAgB,OAAO,QAAQ;CACnC,MAAM,EAAE,UAAU,kBAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,UAAUA;AAEpC,QACE,oCAACC;EAAgB;EAAK,GAAI;EAAO,OAAO,UAAU;EAAc;IAC9D,oCAAC,QAAK,mBACH,UAAU,OAAO,KAAK,SACrB,oCAAC;EAAK;EAAK,IAAI;EAAG,KAAK,KAAK;IAC1B,oCAACC;EACC,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,YAAY,KAAK;GACjB,CACG,CACP,CACG,EACP,oCAAC;EAAI;EAAM,MAAM;EAAG,IAAI;EAAG,UAAS;IAClC,oCAACC,0BAAe,YAAY,UAAU,OAAQ,CAC1C,EACL,SACU;;AAIjB,2BAAe,WAAW,aAAa"}
1
+ {"version":3,"file":"BubbleWidget-sXx3k5jw.js","names":["params","WidgetCard","FluentStatsSnippet","FluentTimeLine"],"sources":["../src/UI/widgets/library/BubbleWidget/BubbleWidget.jsx","../src/UI/widgets/library/BubbleWidget/index.ts"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { Grid, Box } from '@material-ui/core'\nimport WidgetCard from '../../WidgetCard'\nimport FluentStatsSnippet from '../../FluentComponents/atoms/FluentStatsSnippet'\nimport FluentTimeLine from '../../FluentComponents/molecules/FluentTimeline'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nexport const params = {\n mode: {\n defaultValue: 'chart'\n }\n}\n\nconst BubbleWidget = (props, ref) => {\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme } = params\n\n return (\n <WidgetCard ref={ref} {...other} title={mockData?.title} theme={theme}>\n <Grid container>\n {mockData?.stats?.map((stat) => (\n <Grid item xs={3} key={stat.label}>\n <FluentStatsSnippet\n label={stat.label}\n amount={stat.currentValue}\n prevAmount={stat.previousValue}\n />\n </Grid>\n ))}\n </Grid>\n <Box clone flex={1} mt={1} overflow='hidden'>\n <FluentTimeLine categories={mockData?.data} />\n </Box>\n {children}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(BubbleWidget)\n","export * from './BubbleWidget';\nexport {default} from './BubbleWidget';\n"],"mappings":";;;;;;;;AAMA,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAa,SAAS,EACpB,MAAM,EACJ,cAAc,SACf,EACF;AAED,MAAM,gBAAgB,OAAO,QAAQ;CACnC,MAAM,EAAE,UAAU,kBAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,UAAUA;AAEpC,QACE,oCAACC;EAAgB;EAAK,GAAI;EAAO,OAAO,UAAU;EAAc;IAC9D,oCAAC,QAAK,mBACH,UAAU,OAAO,KAAK,SACrB,oCAAC;EAAK;EAAK,IAAI;EAAG,KAAK,KAAK;IAC1B,oCAACC;EACC,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,YAAY,KAAK;GACjB,CACG,CACP,CACG,EACP,oCAAC;EAAI;EAAM,MAAM;EAAG,IAAI;EAAG,UAAS;IAClC,oCAACC,0BAAe,YAAY,UAAU,OAAQ,CAC1C,EACL,SACU;;AAIjB,2BAAe,WAAW,aAAa"}
@@ -1,4 +1,4 @@
1
- import { t as __export } from "./chunk-Bp6m_JJh.js";
1
+ import { t as __export } from "./chunk-B4enJp2Q.js";
2
2
  import { t as ChatContainer } from "./ChatContainer-CW2u13tF.js";
3
3
  import React from "react";
4
4
 
@@ -14,4 +14,4 @@ var ChatUDP_exports = /* @__PURE__ */ __export({ default: () => ChatUDP_default
14
14
 
15
15
  //#endregion
16
16
  export { ChatUDP_default as n, ChatUDP_exports as t };
17
- //# sourceMappingURL=ChatUDP-B7dgnKO0.js.map
17
+ //# sourceMappingURL=ChatUDP-Dy_TzC1C.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatUDP-B7dgnKO0.js","names":[],"sources":["../src/udp/pages/ChatUDP/ChatUDP.jsx","../src/udp/pages/ChatUDP/index.ts"],"sourcesContent":["import React from 'react';\nimport { ChatContainer } from '../../../chatBot/ChatContainer';\n\nconst ChatUDP = () => {\n return (\n <ChatContainer />\n );\n};\n\nexport default ChatUDP;\n","export { default } from './ChatUDP';\nexport * from './ChatUDP';\n"],"mappings":";;;;;AAGA,MAAM,gBAAgB;AACpB,QACE,oCAAC,oBAAiB;;AAItB,sBAAe"}
1
+ {"version":3,"file":"ChatUDP-Dy_TzC1C.js","names":[],"sources":["../src/udp/pages/ChatUDP/ChatUDP.jsx","../src/udp/pages/ChatUDP/index.ts"],"sourcesContent":["import React from 'react';\nimport { ChatContainer } from '../../../chatBot/ChatContainer';\n\nconst ChatUDP = () => {\n return (\n <ChatContainer />\n );\n};\n\nexport default ChatUDP;\n","export { default } from './ChatUDP';\nexport * from './ChatUDP';\n"],"mappings":";;;;;AAGA,MAAM,gBAAgB;AACpB,QACE,oCAAC,oBAAiB;;AAItB,sBAAe"}
@@ -1,4 +1,4 @@
1
- import { t as __export } from "./chunk-Bp6m_JJh.js";
1
+ import { t as __export } from "./chunk-B4enJp2Q.js";
2
2
  import { t as WidgetCard_default } from "./WidgetCard-CDqYxK5O.js";
3
3
  import { n as FluentPrimaryStatNumber_default, t as FluentSecondaryStatNumber_default } from "./FluentSecondaryStatNumber-C4Ynfrum.js";
4
4
  import React, { forwardRef } from "react";
@@ -57,4 +57,4 @@ var DateTrendWidget_exports = /* @__PURE__ */ __export({
57
57
 
58
58
  //#endregion
59
59
  export { DateTrendWidget_default as n, layout as r, DateTrendWidget_exports as t };
60
- //# sourceMappingURL=DateTrendWidget-CL1SXIdH.js.map
60
+ //# sourceMappingURL=DateTrendWidget-CwSCalMf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateTrendWidget-CL1SXIdH.js","names":["WidgetCard","FluentPrimaryStatNumber","FluentSecondaryStatNumber"],"sources":["../src/UI/widgets/library/DateTrendWidget/DateTrendWidget.jsx","../src/UI/widgets/library/DateTrendWidget/index.ts"],"sourcesContent":["import { Grid, makeStyles } from '@material-ui/core'\nimport React, { forwardRef } from 'react'\nimport FluentPrimaryStatNumber from '../../FluentComponents/molecules/FluentPrimaryStatNumber'\nimport FluentSecondaryStatNumber from '../../FluentComponents/molecules/FluentSecondaryStatNumber'\nimport WidgetCard from '../../WidgetCard'\n\nconst useStyles = makeStyles((theme) => ({\n column: {\n width: 160\n }\n}))\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nconst DateTrendWidget = (props, ref) => {\n const classes = useStyles()\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme } = params\n\n return (\n <WidgetCard ref={ref} {...other} title={mockData?.title} theme={theme}>\n <Grid container direction='row' spacing={1}>\n <Grid item className={classes.column}>\n <FluentPrimaryStatNumber\n mainStat={mockData?.primary.value}\n mainLabel={mockData?.primary.label}\n />\n </Grid>\n <Grid item>\n {mockData?.secondary.map((secondary) => (\n <Grid item key={secondary.category}>\n <FluentSecondaryStatNumber\n secondaryStat={secondary.value}\n secondaryLabel={secondary.category}\n trend={secondary.value < 0 ? 'down' : 'up'}\n />\n </Grid>\n ))}\n </Grid>\n </Grid>\n {children}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(DateTrendWidget)\n","export * from './DateTrendWidget';\nexport {default} from './DateTrendWidget';\n"],"mappings":";;;;;;;AAMA,MAAM,YAAY,YAAY,WAAW,EACvC,QAAQ,EACN,OAAO,KACR,EACF,EAAE;AAEH,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAM,mBAAmB,OAAO,QAAQ;CACtC,MAAM,UAAU,WAAW;CAC3B,MAAM,EAAE,UAAU,QAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,UAAU;AAEpC,QACE,oCAACA;EAAgB;EAAK,GAAI;EAAO,OAAO,UAAU;EAAc;IAC9D,oCAAC;EAAK;EAAU,WAAU;EAAM,SAAS;IACvC,oCAAC;EAAK;EAAK,WAAW,QAAQ;IAC5B,oCAACC;EACC,UAAU,UAAU,QAAQ;EAC5B,WAAW,UAAU,QAAQ;GAC7B,CACG,EACP,oCAAC,QAAK,cACH,UAAU,UAAU,KAAK,cACxB,oCAAC;EAAK;EAAK,KAAK,UAAU;IACxB,oCAACC;EACC,eAAe,UAAU;EACzB,gBAAgB,UAAU;EAC1B,OAAO,UAAU,QAAQ,IAAI,SAAS;GACtC,CACG,CACP,CACG,CACF,EACN,SACU;;AAIjB,8BAAe,WAAW,gBAAgB"}
1
+ {"version":3,"file":"DateTrendWidget-CwSCalMf.js","names":["WidgetCard","FluentPrimaryStatNumber","FluentSecondaryStatNumber"],"sources":["../src/UI/widgets/library/DateTrendWidget/DateTrendWidget.jsx","../src/UI/widgets/library/DateTrendWidget/index.ts"],"sourcesContent":["import { Grid, makeStyles } from '@material-ui/core'\nimport React, { forwardRef } from 'react'\nimport FluentPrimaryStatNumber from '../../FluentComponents/molecules/FluentPrimaryStatNumber'\nimport FluentSecondaryStatNumber from '../../FluentComponents/molecules/FluentSecondaryStatNumber'\nimport WidgetCard from '../../WidgetCard'\n\nconst useStyles = makeStyles((theme) => ({\n column: {\n width: 160\n }\n}))\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nconst DateTrendWidget = (props, ref) => {\n const classes = useStyles()\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme } = params\n\n return (\n <WidgetCard ref={ref} {...other} title={mockData?.title} theme={theme}>\n <Grid container direction='row' spacing={1}>\n <Grid item className={classes.column}>\n <FluentPrimaryStatNumber\n mainStat={mockData?.primary.value}\n mainLabel={mockData?.primary.label}\n />\n </Grid>\n <Grid item>\n {mockData?.secondary.map((secondary) => (\n <Grid item key={secondary.category}>\n <FluentSecondaryStatNumber\n secondaryStat={secondary.value}\n secondaryLabel={secondary.category}\n trend={secondary.value < 0 ? 'down' : 'up'}\n />\n </Grid>\n ))}\n </Grid>\n </Grid>\n {children}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(DateTrendWidget)\n","export * from './DateTrendWidget';\nexport {default} from './DateTrendWidget';\n"],"mappings":";;;;;;;AAMA,MAAM,YAAY,YAAY,WAAW,EACvC,QAAQ,EACN,OAAO,KACR,EACF,EAAE;AAEH,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAM,mBAAmB,OAAO,QAAQ;CACtC,MAAM,UAAU,WAAW;CAC3B,MAAM,EAAE,UAAU,QAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,UAAU;AAEpC,QACE,oCAACA;EAAgB;EAAK,GAAI;EAAO,OAAO,UAAU;EAAc;IAC9D,oCAAC;EAAK;EAAU,WAAU;EAAM,SAAS;IACvC,oCAAC;EAAK;EAAK,WAAW,QAAQ;IAC5B,oCAACC;EACC,UAAU,UAAU,QAAQ;EAC5B,WAAW,UAAU,QAAQ;GAC7B,CACG,EACP,oCAAC,QAAK,cACH,UAAU,UAAU,KAAK,cACxB,oCAAC;EAAK;EAAK,KAAK,UAAU;IACxB,oCAACC;EACC,eAAe,UAAU;EACzB,gBAAgB,UAAU;EAC1B,OAAO,UAAU,QAAQ,IAAI,SAAS;GACtC,CACG,CACP,CACG,CACF,EACN,SACU;;AAIjB,8BAAe,WAAW,gBAAgB"}
@@ -1,4 +1,4 @@
1
- import { t as __export } from "./chunk-Bp6m_JJh.js";
1
+ import { t as __export } from "./chunk-B4enJp2Q.js";
2
2
  import { t as WidgetCard_default } from "./WidgetCard-CDqYxK5O.js";
3
3
  import React, { forwardRef } from "react";
4
4
  import { Box } from "@material-ui/core";
@@ -64,4 +64,4 @@ var DensePlotWidget_exports = /* @__PURE__ */ __export({
64
64
 
65
65
  //#endregion
66
66
  export { params as i, DensePlotWidget_default as n, layout as r, DensePlotWidget_exports as t };
67
- //# sourceMappingURL=DensePlotWidget-BC__SHpk.js.map
67
+ //# sourceMappingURL=DensePlotWidget-DekKAdvx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DensePlotWidget-BC__SHpk.js","names":["params","WidgetCard"],"sources":["../src/UI/widgets/library/DensePlotWidget/DensePlotWidget.jsx","../src/UI/widgets/library/DensePlotWidget/index.ts"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { Box } from '@material-ui/core'\nimport { MuiVegaLite } from '@material-vega/material-ui'\nimport WidgetCard from '../../WidgetCard'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nexport const params = {\n mode: {\n defaultValue: 'chart'\n }\n}\n\nconst DensePlotWidget = (props, ref) => {\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme } = params\n\n return (\n <WidgetCard ref={ref} {...other} title={mockData?.title} theme={theme}>\n <Box clone flex={1} mt={1} overflow='hidden'>\n <MuiVegaLite\n variant='scatterplotChart'\n spec={{\n $schema: 'https://vega.github.io/schema/vega-lite/v4.json',\n description: mockData?.description,\n data: {\n values: mockData?.data\n },\n mark: 'point',\n height: 180,\n encoding: {\n x: { field: 'xAxis', type: mockData?.xAxisType },\n y: { field: 'yAxis', type: mockData?.yAxisType }\n }\n }}\n />\n </Box>\n {children}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(DensePlotWidget)\n","export * from './DensePlotWidget';\nexport {default} from './DensePlotWidget';\n"],"mappings":";;;;;;;AAKA,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAa,SAAS,EACpB,MAAM,EACJ,cAAc,SACf,EACF;AAED,MAAM,mBAAmB,OAAO,QAAQ;CACtC,MAAM,EAAE,UAAU,kBAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,UAAUA;AAEpC,QACE,oCAACC;EAAgB;EAAK,GAAI;EAAO,OAAO,UAAU;EAAc;IAC9D,oCAAC;EAAI;EAAM,MAAM;EAAG,IAAI;EAAG,UAAS;IAClC,oCAAC;EACC,SAAQ;EACR,MAAM;GACJ,SAAS;GACT,aAAa,UAAU;GACvB,MAAM,EACJ,QAAQ,UAAU,MACnB;GACD,MAAM;GACN,QAAQ;GACR,UAAU;IACR,GAAG;KAAE,OAAO;KAAS,MAAM,UAAU;KAAW;IAChD,GAAG;KAAE,OAAO;KAAS,MAAM,UAAU;KAAW;IACjD;GACF;GACD,CACE,EACL,SACU;;AAIjB,8BAAe,WAAW,gBAAgB"}
1
+ {"version":3,"file":"DensePlotWidget-DekKAdvx.js","names":["params","WidgetCard"],"sources":["../src/UI/widgets/library/DensePlotWidget/DensePlotWidget.jsx","../src/UI/widgets/library/DensePlotWidget/index.ts"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { Box } from '@material-ui/core'\nimport { MuiVegaLite } from '@material-vega/material-ui'\nimport WidgetCard from '../../WidgetCard'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nexport const params = {\n mode: {\n defaultValue: 'chart'\n }\n}\n\nconst DensePlotWidget = (props, ref) => {\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme } = params\n\n return (\n <WidgetCard ref={ref} {...other} title={mockData?.title} theme={theme}>\n <Box clone flex={1} mt={1} overflow='hidden'>\n <MuiVegaLite\n variant='scatterplotChart'\n spec={{\n $schema: 'https://vega.github.io/schema/vega-lite/v4.json',\n description: mockData?.description,\n data: {\n values: mockData?.data\n },\n mark: 'point',\n height: 180,\n encoding: {\n x: { field: 'xAxis', type: mockData?.xAxisType },\n y: { field: 'yAxis', type: mockData?.yAxisType }\n }\n }}\n />\n </Box>\n {children}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(DensePlotWidget)\n","export * from './DensePlotWidget';\nexport {default} from './DensePlotWidget';\n"],"mappings":";;;;;;;AAKA,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAa,SAAS,EACpB,MAAM,EACJ,cAAc,SACf,EACF;AAED,MAAM,mBAAmB,OAAO,QAAQ;CACtC,MAAM,EAAE,UAAU,kBAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,UAAUA;AAEpC,QACE,oCAACC;EAAgB;EAAK,GAAI;EAAO,OAAO,UAAU;EAAc;IAC9D,oCAAC;EAAI;EAAM,MAAM;EAAG,IAAI;EAAG,UAAS;IAClC,oCAAC;EACC,SAAQ;EACR,MAAM;GACJ,SAAS;GACT,aAAa,UAAU;GACvB,MAAM,EACJ,QAAQ,UAAU,MACnB;GACD,MAAM;GACN,QAAQ;GACR,UAAU;IACR,GAAG;KAAE,OAAO;KAAS,MAAM,UAAU;KAAW;IAChD,GAAG;KAAE,OAAO;KAAS,MAAM,UAAU;KAAW;IACjD;GACF;GACD,CACE,EACL,SACU;;AAIjB,8BAAe,WAAW,gBAAgB"}
@@ -1,4 +1,4 @@
1
- import { t as __export } from "./chunk-Bp6m_JJh.js";
1
+ import { t as __export } from "./chunk-B4enJp2Q.js";
2
2
  import { t as WidgetCard_default } from "./WidgetCard-CDqYxK5O.js";
3
3
  import { t as FluentStatsSnippet_default } from "./FluentStatsSnippet-BuDlbH0Q.js";
4
4
  import { t as ChartSummaryToggle_default } from "./ChartSummaryToggle-x9LKkWUM.js";
@@ -158,4 +158,4 @@ var DonutChartWidget_exports = /* @__PURE__ */ __export({
158
158
 
159
159
  //#endregion
160
160
  export { DonutChartWidget_default as n, layout as r, DonutChartWidget_exports as t };
161
- //# sourceMappingURL=DonutChartWidget-_PqIlK7j.js.map
161
+ //# sourceMappingURL=DonutChartWidget-mKcG-bWw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DonutChartWidget-_PqIlK7j.js","names":["FluentStatsSnippet","WidgetCard","ChartSummaryToggle"],"sources":["../src/UI/widgets/library/DonutChartWidget/DonutChartWidget.jsx","../src/UI/widgets/library/DonutChartWidget/index.ts"],"sourcesContent":["import React, { forwardRef, Fragment } from 'react'\nimport { Grid, Box, Typography } from '@material-ui/core'\nimport { MuiVegaLite } from '@material-vega/material-ui'\nimport WidgetCard from '../../WidgetCard'\nimport FluentStatsSnippet from '../../FluentComponents/atoms/FluentStatsSnippet'\nimport ChartSummaryToggle from '../../FluentComponents/ChartSummaryToggle'\nimport { convertISODate } from '../../utils/ConvertISODate'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nconst DonutChartWidget = (props, ref) => {\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme, dateRange } = params\n\n let body = (\n <Fragment>\n {dateRange && (\n <Typography gutterBottom variant='caption' component='h3'>\n From: {convertISODate(dateRange.from)} to:{' '}\n {convertISODate(dateRange.to)}\n </Typography>\n )}\n <Grid container>\n {mockData?.stats?.map((stat) => (\n <Grid item xs={3} key={stat.label}>\n <FluentStatsSnippet\n label={stat.label}\n amount={stat.currentValue}\n prevAmount={stat.previousValue}\n />\n </Grid>\n ))}\n </Grid>\n <Box clone flex={1} mt={1} overflow='hidden'>\n <MuiVegaLite\n variant='donutChart'\n style={{\n overflow: 'auto',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 0\n }}\n spec={{\n $schema: 'https://vega.github.io/schema/vega/v5.json',\n width: 200,\n height: 200,\n data: [\n {\n name: 'table',\n values: mockData?.data,\n transform: [\n {\n type: 'pie',\n field: 'value'\n }\n ]\n },\n {\n name: 'used',\n source: 'table',\n transform: [\n {\n type: 'formula',\n expr: \"datum.id === 'Other' ? 'Other' : 'Main'\",\n as: 'id'\n },\n {\n type: 'aggregate',\n fields: ['field'],\n groupby: ['id'],\n ops: ['sum'],\n as: ['sum']\n },\n {\n type: 'pivot',\n field: 'label',\n value: 'sum'\n }\n ]\n }\n ],\n scales: [\n {\n name: 'color',\n type: 'ordinal',\n domain: { data: 'table', field: 'label' },\n range: { scheme: 'greys' }\n }\n ],\n marks: [\n {\n type: 'arc',\n from: { data: 'table' },\n encode: {\n enter: {\n fill: { scale: 'color', field: 'label' },\n x: { signal: 'width / 2' },\n y: { signal: 'height / 2' },\n padAngle: { value: 0.01 }\n },\n update: {\n startAngle: { field: 'startAngle' },\n endAngle: { field: 'endAngle' },\n innerRadius: { signal: 'width / 2 - 10' },\n outerRadius: { signal: 'width / 2' }\n }\n }\n },\n {\n type: 'text',\n from: { data: 'used' },\n style: ['percent'],\n encode: {\n enter: {\n x: { signal: 'width / 2' },\n y: { signal: 'height / 2' },\n align: { value: 'center' },\n baseline: { value: 'middle' },\n fontSize: { value: 24 }\n }\n }\n }\n ],\n legends: [\n {\n fill: 'color',\n direction: 'vertical',\n encode: {\n labels: {\n name: 'legendLabel',\n enter: { text: { field: 'label' } }\n }\n },\n orient: 'right',\n labelColor: theme === 'dark' ? 'white' : 'rgba(0, 0, 0, 0.87)'\n }\n ]\n }}\n />\n </Box>\n {children}\n </Fragment>\n )\n\n return (\n <WidgetCard\n theme={theme}\n ref={ref}\n headerActions={\n <ChartSummaryToggle\n value={params.mode}\n onChange={(value) => setParam('mode', value)}\n />\n }\n {...other}\n title={mockData?.title}\n >\n {mockData ? (\n body\n ) : (\n <Typography variant='subtitle2'>\n Could not retrieve widget data. Please contact support.\n </Typography>\n )}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(DonutChartWidget)\n","export * from './DonutChartWidget';\nexport {default} from './DonutChartWidget';\n"],"mappings":"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"}
1
+ {"version":3,"file":"DonutChartWidget-mKcG-bWw.js","names":["FluentStatsSnippet","WidgetCard","ChartSummaryToggle"],"sources":["../src/UI/widgets/library/DonutChartWidget/DonutChartWidget.jsx","../src/UI/widgets/library/DonutChartWidget/index.ts"],"sourcesContent":["import React, { forwardRef, Fragment } from 'react'\nimport { Grid, Box, Typography } from '@material-ui/core'\nimport { MuiVegaLite } from '@material-vega/material-ui'\nimport WidgetCard from '../../WidgetCard'\nimport FluentStatsSnippet from '../../FluentComponents/atoms/FluentStatsSnippet'\nimport ChartSummaryToggle from '../../FluentComponents/ChartSummaryToggle'\nimport { convertISODate } from '../../utils/ConvertISODate'\n\nexport const layout = {\n w: { default: 2, min: 0, max: 4 },\n h: { default: 2, min: 0, max: 4 }\n}\n\nconst DonutChartWidget = (props, ref) => {\n const { children, params, setParam, ...other } = props\n const { mockData, apiUrl, theme, dateRange } = params\n\n let body = (\n <Fragment>\n {dateRange && (\n <Typography gutterBottom variant='caption' component='h3'>\n From: {convertISODate(dateRange.from)} to:{' '}\n {convertISODate(dateRange.to)}\n </Typography>\n )}\n <Grid container>\n {mockData?.stats?.map((stat) => (\n <Grid item xs={3} key={stat.label}>\n <FluentStatsSnippet\n label={stat.label}\n amount={stat.currentValue}\n prevAmount={stat.previousValue}\n />\n </Grid>\n ))}\n </Grid>\n <Box clone flex={1} mt={1} overflow='hidden'>\n <MuiVegaLite\n variant='donutChart'\n style={{\n overflow: 'auto',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 0\n }}\n spec={{\n $schema: 'https://vega.github.io/schema/vega/v5.json',\n width: 200,\n height: 200,\n data: [\n {\n name: 'table',\n values: mockData?.data,\n transform: [\n {\n type: 'pie',\n field: 'value'\n }\n ]\n },\n {\n name: 'used',\n source: 'table',\n transform: [\n {\n type: 'formula',\n expr: \"datum.id === 'Other' ? 'Other' : 'Main'\",\n as: 'id'\n },\n {\n type: 'aggregate',\n fields: ['field'],\n groupby: ['id'],\n ops: ['sum'],\n as: ['sum']\n },\n {\n type: 'pivot',\n field: 'label',\n value: 'sum'\n }\n ]\n }\n ],\n scales: [\n {\n name: 'color',\n type: 'ordinal',\n domain: { data: 'table', field: 'label' },\n range: { scheme: 'greys' }\n }\n ],\n marks: [\n {\n type: 'arc',\n from: { data: 'table' },\n encode: {\n enter: {\n fill: { scale: 'color', field: 'label' },\n x: { signal: 'width / 2' },\n y: { signal: 'height / 2' },\n padAngle: { value: 0.01 }\n },\n update: {\n startAngle: { field: 'startAngle' },\n endAngle: { field: 'endAngle' },\n innerRadius: { signal: 'width / 2 - 10' },\n outerRadius: { signal: 'width / 2' }\n }\n }\n },\n {\n type: 'text',\n from: { data: 'used' },\n style: ['percent'],\n encode: {\n enter: {\n x: { signal: 'width / 2' },\n y: { signal: 'height / 2' },\n align: { value: 'center' },\n baseline: { value: 'middle' },\n fontSize: { value: 24 }\n }\n }\n }\n ],\n legends: [\n {\n fill: 'color',\n direction: 'vertical',\n encode: {\n labels: {\n name: 'legendLabel',\n enter: { text: { field: 'label' } }\n }\n },\n orient: 'right',\n labelColor: theme === 'dark' ? 'white' : 'rgba(0, 0, 0, 0.87)'\n }\n ]\n }}\n />\n </Box>\n {children}\n </Fragment>\n )\n\n return (\n <WidgetCard\n theme={theme}\n ref={ref}\n headerActions={\n <ChartSummaryToggle\n value={params.mode}\n onChange={(value) => setParam('mode', value)}\n />\n }\n {...other}\n title={mockData?.title}\n >\n {mockData ? (\n body\n ) : (\n <Typography variant='subtitle2'>\n Could not retrieve widget data. Please contact support.\n </Typography>\n )}\n </WidgetCard>\n )\n}\n\nexport default forwardRef(DonutChartWidget)\n","export * from './DonutChartWidget';\nexport {default} from './DonutChartWidget';\n"],"mappings":";;;;;;;;;;AAQA,MAAa,SAAS;CACpB,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CACjC,GAAG;EAAE,SAAS;EAAG,KAAK;EAAG,KAAK;EAAG;CAClC;AAED,MAAM,oBAAoB,OAAO,QAAQ;CACvC,MAAM,EAAE,UAAU,QAAQ,UAAU,GAAG,UAAU;CACjD,MAAM,EAAE,UAAU,QAAQ,OAAO,cAAc;CAE/C,IAAI,OACF,oCAAC,gBACE,aACC,oCAAC;EAAW;EAAa,SAAQ;EAAU,WAAU;IAAK,UACjD,eAAe,UAAU,KAAK,EAAC,QAAK,KAC1C,eAAe,UAAU,GAAG,CAClB,EAEf,oCAAC,QAAK,mBACH,UAAU,OAAO,KAAK,SACrB,oCAAC;EAAK;EAAK,IAAI;EAAG,KAAK,KAAK;IAC1B,oCAACA;EACC,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,YAAY,KAAK;GACjB,CACG,CACP,CACG,EACP,oCAAC;EAAI;EAAM,MAAM;EAAG,IAAI;EAAG,UAAS;IAClC,oCAAC;EACC,SAAQ;EACR,OAAO;GACL,UAAU;GACV,SAAS;GACT,YAAY;GACZ,gBAAgB;GAChB,SAAS;GACV;EACD,MAAM;GACJ,SAAS;GACT,OAAO;GACP,QAAQ;GACR,MAAM,CACJ;IACE,MAAM;IACN,QAAQ,UAAU;IAClB,WAAW,CACT;KACE,MAAM;KACN,OAAO;KACR,CACF;IACF,EACD;IACE,MAAM;IACN,QAAQ;IACR,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,IAAI;MACL;KACD;MACE,MAAM;MACN,QAAQ,CAAC,QAAQ;MACjB,SAAS,CAAC,KAAK;MACf,KAAK,CAAC,MAAM;MACZ,IAAI,CAAC,MAAM;MACZ;KACD;MACE,MAAM;MACN,OAAO;MACP,OAAO;MACR;KACF;IACF,CACF;GACD,QAAQ,CACN;IACE,MAAM;IACN,MAAM;IACN,QAAQ;KAAE,MAAM;KAAS,OAAO;KAAS;IACzC,OAAO,EAAE,QAAQ,SAAS;IAC3B,CACF;GACD,OAAO,CACL;IACE,MAAM;IACN,MAAM,EAAE,MAAM,SAAS;IACvB,QAAQ;KACN,OAAO;MACL,MAAM;OAAE,OAAO;OAAS,OAAO;OAAS;MACxC,GAAG,EAAE,QAAQ,aAAa;MAC1B,GAAG,EAAE,QAAQ,cAAc;MAC3B,UAAU,EAAE,OAAO,KAAM;MAC1B;KACD,QAAQ;MACN,YAAY,EAAE,OAAO,cAAc;MACnC,UAAU,EAAE,OAAO,YAAY;MAC/B,aAAa,EAAE,QAAQ,kBAAkB;MACzC,aAAa,EAAE,QAAQ,aAAa;MACrC;KACF;IACF,EACD;IACE,MAAM;IACN,MAAM,EAAE,MAAM,QAAQ;IACtB,OAAO,CAAC,UAAU;IAClB,QAAQ,EACN,OAAO;KACL,GAAG,EAAE,QAAQ,aAAa;KAC1B,GAAG,EAAE,QAAQ,cAAc;KAC3B,OAAO,EAAE,OAAO,UAAU;KAC1B,UAAU,EAAE,OAAO,UAAU;KAC7B,UAAU,EAAE,OAAO,IAAI;KACxB,EACF;IACF,CACF;GACD,SAAS,CACP;IACE,MAAM;IACN,WAAW;IACX,QAAQ,EACN,QAAQ;KACN,MAAM;KACN,OAAO,EAAE,MAAM,EAAE,OAAO,SAAS,EAAE;KACpC,EACF;IACD,QAAQ;IACR,YAAY,UAAU,SAAS,UAAU;IAC1C,CACF;GACF;GACD,CACE,EACL,SACQ;AAGb,QACE,oCAACC;EACQ;EACF;EACL,eACE,oCAACC;GACC,OAAO,OAAO;GACd,WAAW,UAAU,SAAS,QAAQ,MAAM;IAC5C;EAEJ,GAAI;EACJ,OAAO,UAAU;IAEhB,WACC,OAEA,oCAAC,cAAW,SAAQ,eAAY,0DAEnB,CAEJ;;AAIjB,+BAAe,WAAW,iBAAiB"}
@@ -366,9 +366,9 @@ const LanguageSwitcher = (props) => {
366
366
 
367
367
  //#endregion
368
368
  //#region src/shell/ui/HelpCenter.jsx
369
- const UserFormSideSheet = lazy(() => import("./UserFormSideSheet-DGU02bqo.js"));
369
+ const UserFormSideSheet = lazy(() => import("./UserFormSideSheet-D7hlvi7a.js"));
370
370
  const SupportCaseSideSheet = lazy(() => import("./SupportCaseSideSheet-D5VyeXgu.js"));
371
- const preloadUserFormSideSheet = () => import("./UserFormSideSheet-DGU02bqo.js");
371
+ const preloadUserFormSideSheet = () => import("./UserFormSideSheet-D7hlvi7a.js");
372
372
  const preloadSupportCaseSideSheet = () => import("./SupportCaseSideSheet-D5VyeXgu.js");
373
373
  const useStyles$4 = makeStyles((theme) => ({
374
374
  root: { display: "flex" },
@@ -818,4 +818,4 @@ FluentProfileMenuCard.displayName = "FluentProfileMenuCard";
818
818
 
819
819
  //#endregion
820
820
  export { HelpCenter as a, AmbientProjectSwitcher as c, EnvironmentRibbon as i, NavigationSidebar_default as l, SiteHeaderSpacer as n, LanguageSwitcher as o, SiteHeader_default as r, ShellDropdown as s, FluentProfileMenuCard as t };
821
- //# sourceMappingURL=FluentProfileMenuCard-CnUOy-ne.js.map
821
+ //# sourceMappingURL=FluentProfileMenuCard-DNEXKlnU.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FluentProfileMenuCard-CnUOy-ne.js","names":["useStyles","useStyles","expanded","MiniCollapsibleSidebar","useStyles","useStyles","useStyles","prevOpen","useStyles","productId","HelpOutlineIcon","CloseIcon","ChatIcon","useStyles","Typography","useStyles","ShellDropdown","useStyles","UserAvatar"],"sources":["../src/shell/ui/MiniCollapsibleSidebar.jsx","../src/shell/ui/NavigationSidebar.jsx","../src/shell/ui/AmbientProjectSwitcher.jsx","../src/shell/ui/ShellDropdown.jsx","../src/shell/ui/LanguageSwitcher.jsx","../src/shell/ui/HelpCenter.jsx","../src/shell/ui/EnvironmentRibbon.tsx","../src/shell/ui/SiteHeader.jsx","../src/shell/ui/UserAvatar.jsx","../src/shell/ui/FluentProfileMenuCard.jsx"],"sourcesContent":["import { Drawer, makeStyles } from '@material-ui/core'\nimport clsx from 'clsx'\nimport React from 'react'\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n width: theme?.dimensions?.drawerWidth,\n flexShrink: 0,\n whiteSpace: 'nowrap'\n },\n expanded: {\n '&, & > $paper': {\n // width: theme.dimensions.drawerWidth,\n width: theme.spacing(32),\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen\n })\n }\n },\n collapsed: {\n '&, & > $paper': {\n overflowX: 'hidden',\n width: theme.spacing(7) + 1,\n transition: theme?.transitions?.create('width', {\n easing: theme?.transitions?.easing?.sharp,\n duration: theme?.transitions?.duration?.leavingScreen\n })\n }\n },\n paper: {}\n }),\n { name: 'MiniCollapsibleSidebar' }\n)\n\nconst MiniCollapsibleSidebar = (props) => {\n const classes = useStyles(props)\n const { expanded = true, className, children, ...other } = props\n\n return (\n <Drawer\n variant='permanent'\n open\n {...other}\n className={clsx(\n className,\n classes.root,\n expanded ? classes.expanded : classes.collapsed\n )}\n classes={{\n root: classes.root,\n paper: classes.paper\n }}\n >\n {children}\n </Drawer>\n )\n}\n\nexport default MiniCollapsibleSidebar\n","import React, { useState, useCallback } from 'react';\nimport { makeStyles, Toolbar, lighten } from '@material-ui/core';\nimport MiniCollapsibleSidebar from './MiniCollapsibleSidebar';\nimport { SidebarCollapseButton } from './SidebarCollapseButton';\nimport { AppMenu } from '../../UI/navigation/menus/AppMenu';\nimport { useShellStore } from '../../stores/shellStore';\nimport { useBuildEnvironment, APP_RIBBON_SPACE } from './useBuildEnvironment';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n marginTop: 400\n },\n paper: {\n backgroundColor:\n theme?.getThemeData()?.mode === 'dark'\n ? ''\n : lighten(theme?.palette?.primary?.main, 0.9),\n overflowX: 'hidden'\n },\n list: {\n flex: 1,\n paddingTop: 0,\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch'\n },\n spacer: {\n flex: 1,\n minHeight: theme.spacing(2)\n },\n footer: {},\n toolbar: {\n padding: 0,\n minHeight: ({appRibbonSpace}) => theme.spacing(6) + appRibbonSpace\n }\n }),\n { name: 'NavigationSidebar' }\n);\n\nconst NavigationSidebar = (props) => {\n const buildEnv = useBuildEnvironment()\n const classes = useStyles({appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0});\n const {\n data,\n toggleExpandClick,\n navMenuHoverOn,\n user,\n toggle = true,\n useGlobalState = false,\n ...other\n } = props;\n const [expanded, setExpanded] = useState(true);\n const { navigationExpanded, setNavigationExpanded } = useShellStore();\n\n let navExpanded = useGlobalState ? navigationExpanded : expanded;\n\n const [hoverExpand, setHoverExpand] = useState(false);\n\n // ** Remove for now to deal with programmatic toggle **\n // const wide = useMediaQuery(theme.breakpoints.up('sm'))\n // useEffect(() => {\n // // Set the bar to be expanded/collapsed depending on the breakpoint size\n // // This works on load and also when resizing crosses the breakpoint\n // setExpanded(wide)\n // }, [wide])\n\n const handleHoverToggle = () => {\n if (!navExpanded && navMenuHoverOn) {\n setHoverExpand(true);\n }\n };\n const handleHoverLeave = () => {\n if (!navExpanded && navMenuHoverOn) {\n setHoverExpand(false);\n }\n };\n\n const handleToggleClick = useCallback(() => {\n if (useGlobalState) {\n setNavigationExpanded(!navigationExpanded);\n } else {\n setExpanded((expanded) => !expanded);\n }\n }, [setNavigationExpanded, useGlobalState, navigationExpanded]);\n\n return (\n <MiniCollapsibleSidebar\n classes={{ root: classes.root, paper: classes.paper }}\n expanded={navExpanded || hoverExpand}\n onMouseEnter={handleHoverToggle}\n onMouseLeave={handleHoverLeave}\n PaperProps={{ elevation: 0, variant: 'outlined' }}\n {...other}\n >\n <Toolbar className={classes.toolbar} />\n\n {toggle && (\n <SidebarCollapseButton\n id='udpRecord-NavigationSidebar'\n udprecordid='udpRecord-NavigationSidebar'\n expanded={navExpanded}\n onClick={handleToggleClick}\n />\n )}\n {data && <AppMenu menuItems={data} sidebarExpanded={navExpanded} user={user} />}\n </MiniCollapsibleSidebar>\n );\n};\n\nexport default NavigationSidebar;\n","import React, { useState } from 'react'\nimport { makeStyles, Popover, Typography, useTheme } from '@material-ui/core'\nimport { ChevronDownIcon } from '@fluentui/react-icons'\nimport { FluentIconButton } from '../../UI/inputs/buttons/FluentIconButton'\nimport {AmbientPopoverMenuItem} from '../../UI/inputs/buttons/AmbientPopoverMenuItem'\nimport PropTypes from 'prop-types'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n // border: '1px solid white',\n background: props => props.backgroundColor ? props.backgroundColor : theme.palette.secondary.main,\n borderRadius: 50,\n padding: 6,\n paddingLeft:16\n },\n popoverRoot: {},\n icon: {\n color: theme.palette.primary.main,\n borderRadius: 50\n }, \n label: {\n display: 'block',\n width: props => props.width ? props.width : 100,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n }, \n listWrapper: {\n marginRight: theme.spacing(2)\n }\n}))\n\nexport const AmbientProjectSwitcher = (props) => {\n \n const classes = useStyles(props)\n\n const theme = useTheme()\n\n const { data, selectedItem } = props\n\n const [anchorEl, setAnchorEl] = useState(null)\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n const id = open ? 'open' : undefined\n\n return (\n <div className={classes.root}>\n <div className={classes.listWrapper}>\n <Typography className={classes.label} > \n {selectedItem} \n </Typography>\n </div>\n \n <FluentIconButton\n className={classes.icon}\n icon={ChevronDownIcon}\n onClick={handleClick}\n style={{background: theme.palette.common.white}}\n />\n\n <Popover\n classes={{ root: classes.popoverRoot }}\n square\n elevation={6}\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n <div >\n <div>\n {data && data.map((item) => {\n return (\n <AmbientPopoverMenuItem\n label={item.label}\n component={ChevronDownIcon}\n click={()=>item.click(item.label)}\n />\n )\n })}\n </div>\n </div>\n </Popover>\n </div>\n )\n}\n\nAmbientProjectSwitcher.propTypes = {\n /**\n * The array used to map for label and functions to list items. (array).\n */\n data: PropTypes.array,\n /**\n * The active label displayed.\n */\n selectedItem: PropTypes.string,\n /**\n * Change the background color on the project switcher (default: theme secondary)\n */\n backgroundColor: PropTypes.string\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\nimport { FluentTextFieldAutoComplete } from '../../UI/inputs/textField/FluentTextFieldAutoComplete';\n\nconst useStyles = makeStyles(theme => ({\n root: { display: 'flex', alignItems: 'center' },\n field: {\n minWidth: 300,\n maxWidth: 400,\n width: '100%',\n alignSelf: 'left',\n color: '#fff',\n '& .MuiOutlinedInput-root': {\n color: '#fff',\n backgroundColor: 'transparent',\n '& fieldset': {\n borderColor: 'rgba(255,255,255,0.6)',\n },\n '&:hover fieldset': {\n borderColor: 'rgba(255,255,255,0.85)',\n },\n '&.Mui-focused fieldset': {\n borderColor: '#fff',\n },\n '& input': {\n paddingTop: 4,\n paddingBottom: 4,\n height: 20,\n boxSizing: 'border-box',\n color: '#fff',\n },\n '& .MuiAutocomplete-input': {\n color: '#fff',\n },\n },\n '& .MuiInputBase-root': {\n color: '#fff',\n },\n '& .MuiAutocomplete-popupIndicator, & .MuiAutocomplete-clearIndicator': {\n color: '#fff',\n opacity: 0.95,\n },\n '& input::placeholder': {\n color: 'rgba(255,255,255,0.7)',\n },\n },\n}));\n\nfunction getDisplayName(item) {\n if (!item && item !== 0) return '';\n if (typeof item === 'string' || typeof item === 'number') return String(item);\n if (typeof item === 'object') {\n const name = item.name ?? item.label ?? item.title ?? item.displayName;\n return name !== undefined && name !== null ? String(name) : '';\n }\n return String(item);\n}\n\nexport const ShellDropdown = (props) => {\n const classes = useStyles();\n const {\n componentName = 'Item',\n data = [],\n value = null,\n onChange,\n optionLabelDisplayFunction = getDisplayName,\n placeholder,\n className,\n classProps,\n ...other\n } = props;\n\n const placeholderText = placeholder ?? (!value ? `All ${componentName}s` : undefined);\n\n return (\n <div className={`${classes.root} ${className || ''}`}>\n <FluentTextFieldAutoComplete\n className={classes.field}\n classProps={{ autocompleteRoot: classes.field, ...classProps }}\n options={data}\n optionLabelDisplayFunction={optionLabelDisplayFunction}\n onChange={onChange}\n value={value}\n placeholder={placeholderText}\n {...other}\n />\n </div>\n );\n};\n\nShellDropdown.propTypes = {\n componentName: PropTypes.string,\n data: PropTypes.array,\n value: PropTypes.any,\n onChange: PropTypes.func,\n optionLabelDisplayFunction: PropTypes.func,\n placeholder: PropTypes.string,\n className: PropTypes.string,\n classProps: PropTypes.object,\n};\n\nexport default ShellDropdown;\n","import React, { useState, useRef, useEffect } from 'react'\nimport {\n ClickAwayListener,\n Grow,\n Paper,\n Popper,\n MenuList,\n makeStyles,\n IconButton,\n MenuItem\n} from '@material-ui/core'\nimport { TranslateIcon } from '@fluentui/react-icons'\nimport i18n from 'i18next';\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n paper: {\n marginRight: theme.spacing(2)\n }\n}))\n\nexport const LanguageSwitcher = (props) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n const anchorRef = useRef(null)\n const { languages } = props\n\n const handleToggle = () => {\n setOpen((prevOpen) => !prevOpen)\n }\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return\n }\n setOpen(false)\n }\n\n function handleListKeyDown(event) {\n if (event.key === 'Tab') {\n event.preventDefault()\n setOpen(false)\n }\n }\n\n // return focus to the button when we transitioned from !open -> open\n const prevOpen = useRef(open)\n useEffect(() => {\n if (prevOpen.current === true && open === false) {\n anchorRef.current.focus()\n }\n prevOpen.current = open\n }, [open])\n\n const handleLanguageChange = (event) => {\n const currentLanguage = event;\n //setLangKey(currentLanguage.languageCode);\n languageSelector(currentLanguage.languageCode);\n };\n\n const languageSelector = (defaultLang) => {\n i18n.changeLanguage(defaultLang);\n }\n\n if (languages != null) {\n return (\n <div id='udpRecord-LanguageSwitcher' className={classes.root}>\n <div>\n <IconButton\n id='udpRecord-LanguageSwitcher-IconButton'\n udprecordid='udpRecord-LanguageSwitcher-IconButton'\n ref={anchorRef}\n aria-controls={open ? 'menu-list-grow' : undefined}\n aria-haspopup='true'\n onClick={handleToggle}\n >\n <TranslateIcon style={{ color: 'white', opacity: 0.8 }} />\n </IconButton>\n <Popper\n open={open}\n anchorEl={anchorRef.current}\n role={undefined}\n transition\n disablePortal\n >\n {({ TransitionProps, placement }) => (\n <Grow\n {...TransitionProps}\n style={{\n transformOrigin:\n placement === 'bottom' ? 'center top' : 'center bottom'\n }}\n >\n <Paper>\n <ClickAwayListener \n id='udpRecord-LanguageSwitcher-ClickAway' \n udprecordid='udpRecord-LanguageSwitcher-ClickAway' \n onClickAway={handleClose}\n >\n <MenuList\n autoFocusItem={open}\n id='menu-list-grow'\n udprecordid='udpRecord-LanguageSwitcher-MenuList'\n onKeyDown={handleListKeyDown}\n onClick={() => setOpen(false)}\n >\n {languages.map((data) =>\n <MenuItem\n id={'udpRecord-LanguageSwitcher-MenuItem-'+data.languageLabel}\n udprecordid={'udpRecord-LanguageSwitcher-MenuItem-'+data.languageLabel}\n onClick={() => handleLanguageChange(data)}\n value={data.languageCode}\n key={data.languageId}\n >\n {data.languageLabel}\n </MenuItem>)}\n </MenuList>\n </ClickAwayListener>\n </Paper>\n </Grow>\n )}\n </Popper>\n </div>\n </div>\n )\n } else {\n return (\n null\n )\n }\n\n}","import React, { useState, useCallback, useEffect, useRef, Suspense, lazy } from 'react';\nimport {\n makeStyles,\n IconButton,\n Popover,\n Typography,\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n Dialog,\n DialogTitle,\n DialogContent\n} from '@material-ui/core';\nimport {HelpOutline as HelpOutlineIcon, Chat as ChatIcon, Close as CloseIcon} from '@material-ui/icons';\nimport { useActions } from '../../hooks/useActions';\nimport { useTranslation } from 'react-i18next';\nimport { useUser } from '../../../src/utilities/auth/useUser';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { ConfigService } from '../../configService';\n\n// Lazy-load side sheets so they aren't imported until needed. Keep\n// module-level lazy declarations so the imports are deduped and cached.\nconst UserFormSideSheet = lazy(() => import('./addUser/UserFormSideSheet'));\nconst SupportCaseSideSheet = lazy(() => import('../../UI/support/SupportCaseSideSheet'));\n\n// Preload helpers (return the dynamic import promise). Calling these\n// will start fetching the chunk in the background and populate the\n// module cache so React.lazy resolves quickly later.\nconst preloadUserFormSideSheet = () => import('./addUser/UserFormSideSheet');\nconst preloadSupportCaseSideSheet = () => import('../../UI/support/SupportCaseSideSheet');\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n popover: {\n padding: theme.spacing(2),\n maxWidth: 300\n },\n icon: {\n minWidth: 40\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500]\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n dialog: {\n minWidth: '80vw',\n minHeight: '80vh'\n }\n}));\n\nexport const HelpCenter = () => {\n const classes = useStyles();\n const { t } = useTranslation();\n const { triggerAction } = useActions();\n const user = useUser();\n const productId = Number(ConfigService.config.UNITY_PRODUCT_ID);\n\n const udpaiAPI = ConfigService.config.UDPAI_API_BASE;\n const udpaisearch = ConfigService.config.AI_SEARCH_URL;\n const udpaisearchkey = ConfigService.config.AI_SEARCH_KEY;\n const udpaisearchindex = ConfigService.config.AI_SEARCH_INDEX_NAME;\n\n const [anchorEl, setAnchorEl] = useState(null);\n const [isSupportCaseSideSheetOpen, setSupportCaseSideSheetOpen] =\n useState(false);\n const [isUserFormOpen, setUserFormOpen] = useState(false);\n const [supportCaseHealthOk, setSupportCaseHealthOk] = useState(false);\n\n const hasPreloadedRef = useRef(false);\n\n const handleOpenPopover = (event) => {\n setAnchorEl(event.currentTarget);\n\n // Preload both side sheets in the background the first time the popover opens.\n // We assume that if the user opened the popover, they might open one of the sheets.\n if (!hasPreloadedRef.current) {\n hasPreloadedRef.current = true;\n // Start background fetches but don't await them.\n try {\n preloadUserFormSideSheet();\n } catch (e) {\n // ignore preload errors\n }\n try {\n preloadSupportCaseSideSheet();\n } catch (e) {\n // ignore preload errors\n }\n }\n };\n\n const handleClosePopover = () => {\n setAnchorEl(null);\n };\n\n const handleLaunchAction = useCallback(() => {\n setAnchorEl(null);\n triggerAction('CEE75B36-01B0-4FAC-9AE7-C1AC8A2A194F');\n }, [triggerAction]);\n\n const handleOpenSupportCaseSideSheet = () => {\n setSupportCaseSideSheetOpen(true);\n setAnchorEl(null);\n };\n\n const handleCloseSupportCaseSideSheet = () => {\n setSupportCaseSideSheetOpen(false);\n };\n\n const handleOpenUserForm = () => {\n setUserFormOpen(true); // Open UserForm modal\n setAnchorEl(null);\n };\n\n const handleCloseUserForm = () => {\n setUserFormOpen(false); // Close UserForm modal\n };\n\n const open = Boolean(anchorEl);\n const id = open ? 'help-center-popover' : undefined;\n\n // Conditions for rendering buttons\n // 2 assets, 41 sandbox, 51 assets, 53 mm, 68 timesheets\n const shouldShowAddUsers = (productId) => {\n const isValidProduct = [41, 53].includes(productId);\n const isSecurityApiConfigured = !!ConfigService.securityV1ApiUrl;\n const isValidUser =\n user.can.CAN_MANAGE_ROLES_USERS &&\n user.can.CAN_MANAGE_USERS &&\n user.can.CAN_VIEW_USERS;\n return isValidProduct && isSecurityApiConfigured && isValidUser;\n };\n\n const getSupportCaseStatus = useCallback(\n async () =>\n apiMutate(\n ConfigService.productV1ApiUrl,\n `udpunitysupport/healthCheck`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n const getSupportCaseStatusUnity = useCallback(\n async () =>\n apiMutate(\n ConfigService.supportV1ApiUrl,\n `ServiceHealth/Support`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n const showAddUsers = shouldShowAddUsers(productId);\n const shouldShowChatAssistant =\n [2, 41, 51, 68].includes(productId) &&\n udpaiAPI &&\n udpaisearch &&\n udpaisearchkey &&\n udpaisearchindex;\n const shouldShowSupportTicket = productId && supportCaseHealthOk;\n\n useEffect(() => {\n const supportCaseStatus = async () => {\n try {\n if (ConfigService.config.UNITY_PRODUCT_ID === \"1\") {\n const response = await getSupportCaseStatusUnity();\n setSupportCaseHealthOk(response?.status === 200);\n } else {\n const response = await getSupportCaseStatus();\n setSupportCaseHealthOk(response?.status === 200);\n }\n } catch (error) {\n setSupportCaseHealthOk(false);\n }\n };\n supportCaseStatus();\n }, [getSupportCaseStatus, getSupportCaseStatusUnity]);\n\n // Hide the entire help center if neither button should be rendered\n if (!showAddUsers && !shouldShowChatAssistant && !shouldShowSupportTicket) {\n return <div id='udpRecord-HelpCenter' />;\n }\n\n return (\n <div id='udpRecord-HelpCenter' className={classes.root}>\n <IconButton\n id='udpRecord-HelpCenter-IconButton'\n aria-controls={id}\n aria-haspopup='true'\n onClick={handleOpenPopover}\n >\n <HelpOutlineIcon style={{ color: 'white', opacity: 0.8 }} />\n </IconButton>\n <Popover\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClosePopover}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'center'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'center'\n }}\n >\n <div className={classes.popover}>\n <div className={classes.header}>\n <Typography variant='h6'>{t('Help')}</Typography>\n <IconButton\n size='small'\n className={classes.closeButton}\n onClick={handleClosePopover}\n >\n <CloseIcon />\n </IconButton>\n </div>\n <List component='nav' aria-label='Help options'>\n {/* First Button: Add User */}\n {showAddUsers && (\n <ListItem\n button\n id='udpRecord-HelpCenter-AddUsers'\n onClick={handleOpenUserForm}\n >\n <ListItemIcon className={classes.icon}>\n <HelpOutlineIcon />\n </ListItemIcon>\n <ListItemText primary={t('Add User')} />\n </ListItem>\n )}\n\n {/* Second Button: Chat Assistant */}\n {shouldShowChatAssistant && (\n <ListItem\n button\n id='udpRecord-HelpCenter-ChatAssistant'\n onClick={handleLaunchAction}\n >\n <ListItemIcon className={classes.icon}>\n <ChatIcon />\n </ListItemIcon>\n <ListItemText primary={t('Chat Assistant')} />\n </ListItem>\n )}\n\n {/* Third Button: Submit Support Ticket */}\n {shouldShowSupportTicket && (\n <ListItem\n button\n id='udpRecord-HelpCenter-SupportTicket'\n onClick={handleOpenSupportCaseSideSheet}\n >\n <ListItemIcon className={classes.icon}>\n <HelpOutlineIcon />\n </ListItemIcon>\n <ListItemText primary={t('Submit Support Ticket')} />\n </ListItem>\n )}\n </List>\n </div>\n </Popover>\n\n {/* Modal for UserForm (lazy-loaded) */}\n <Suspense fallback={<div>Loading...</div>}>\n <UserFormSideSheet open={isUserFormOpen} onClose={handleCloseUserForm} />\n </Suspense>\n\n {/* Side Sheet for Support Ticket (lazy-loaded) */}\n <Suspense fallback={<div>Loading...</div>}>\n <SupportCaseSideSheet\n open={isSupportCaseSideSheetOpen}\n onClose={handleCloseSupportCaseSideSheet}\n handleCloseSupportCaseSideSheet={handleCloseSupportCaseSideSheet}\n onSubmit={(values) => {\n console.log('Form submitted', values);\n }}\n initialValues={{}}\n />\n </Suspense>\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\n// @ts-ignore\nimport { makeStyles } from '@material-ui/core';\nimport { useTenant } from '../../utilities/tenant/useTenant';\nimport { Typography } from '../../UI/dataDisplay/typography/Typography';\nimport { APP_RIBBON_SPACE, useBuildEnvironment } from './useBuildEnvironment';\n\n\n\nconst useStyles = makeStyles({\n root: {\n width: '100vw',\n height: APP_RIBBON_SPACE,\n backgroundColor: ({environment}: {environment: string | undefined}) => `var(--env-ribbon-${environment})`,\n color: '#ffffff', // Default white text\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n // Use CSS to handle staging text color\n '&.staging': {\n color: '#000000'\n }\n },\n\tcenterText: {\n position: 'absolute',\n left: '50%',\n transform: 'translateX(-50%)',\n fontWeight: 600\n\t},\n\trightText: {\n position: 'absolute',\n right: '10px',\n fontWeight: 500\n\t}\n});\n\nexport const EnvironmentRibbon = () => {\n\tconst tenantInfo = useTenant()\n\tconst buildEnvironment = useBuildEnvironment()\n\n const classes = useStyles({environment: buildEnvironment});\n if(!buildEnvironment) return null;\n\n return (\n <div\n className={`${classes.root} ${buildEnvironment === 'staging' ? 'staging' : ''}`}\n id='udp-environment-banner'\n >\n <Typography className={classes.centerText}>\n {buildEnvironment?.charAt(0).toUpperCase()+buildEnvironment?.slice(1) || ''}\n </Typography>\n\t\t\t<Typography className={classes.rightText}>\n {tenantInfo?.activeTenant?.tenantName}\n </Typography>\n </div>\n );\n};\n","import React from 'react';\nimport {\n AppBar,\n makeStyles,\n Toolbar,\n Typography,\n IconButton,\n useMediaQuery,\n useTheme\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport { WaffleIcon, CollapseMenuIcon } from '@fluentui/react-icons';\nimport { BreadCrumbMenu } from '../../UI/inputs/link/BreadCrumbMenu';\nimport { AmbientProjectSwitcher } from './AmbientProjectSwitcher';\nimport ShellDropdown from './ShellDropdown';\nimport { LanguageSwitcher } from './LanguageSwitcher';\nimport { HelpCenter } from './HelpCenter';\nimport { SiteHeaderRightComponentTarget } from './SiteHeaderRightComponent';\nimport PropTypes from 'prop-types';\nimport {\n useBuildEnvironment,\n APP_RIBBON_SPACE\n} from './useBuildEnvironment';\nimport { EnvironmentRibbon } from './EnvironmentRibbon';\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n color: theme?.palette?.appBar?.contrastText,\n zIndex: theme?.zIndex?.drawer + 1\n // Assume the drawer is always expanded unless the screen is too small for it and inset the left to account for it\n },\n spacer: {\n flex: 1\n },\n headerSpacer: {\n padding: 0,\n minHeight: ({ appRibbonSpace }) => 56 + appRibbonSpace\n },\n toolbar: {\n padding: 0,\n minHeight: theme.spacing(6)\n },\n appLaunch: {\n color: theme?.palette?.getContrastText(theme?.palette?.primary?.main)\n },\n avatar: {\n width: 25,\n height: 25,\n backgroundColor: theme?.palette?.secondary?.main\n },\n search: {\n marginLeft: theme.spacing(2),\n marginTop: theme.spacing(-1.35)\n },\n children: {\n flex: 1,\n minWidth: 5\n }\n }),\n { name: 'SiteHeader' }\n);\n\n/**\n * A spacing component with the same height as the SiteHeader\n */\nexport const SiteHeaderSpacer = (props) => {\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const { className } = props;\n\n return <div className={clsx(className, classes.headerSpacer)} />;\n};\n\n/**\n * Site header including app bar\n */\nconst SiteHeader = (props) => {\n const classes = useStyles(props);\n const {\n className,\n returnTo,\n appContent,\n userAvatar,\n siteName,\n breadCrumbRoot = 'home',\n color = 'primary',\n setAppSwitcherOpen,\n breadCrumbAltLabelList,\n currentLocation,\n switcherData,\n selectedItem,\n switcherWidth,\n hideAppLaunch,\n languages,\n backgroundColor,\n ...other\n } = props;\n\n const theme = useTheme();\n const mobile = useMediaQuery(theme.breakpoints.up('sm'));\n\n return (\n <>\n <AppBar\n elevation={0}\n position='fixed'\n color={color}\n {...other}\n className={className}\n classes={{ root: classes.root }}\n >\n <EnvironmentRibbon />\n <Toolbar className={classes.toolbar}>\n {mobile && !hideAppLaunch && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('desktop', true)}\n >\n <WaffleIcon />\n </IconButton>\n )}\n {!mobile && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('desktop', true)}\n >\n <CollapseMenuIcon />\n </IconButton>\n )}\n\n <Typography\n component='h1'\n variant='h6'\n style={{ marginLeft: hideAppLaunch && 16 }}\n >\n {siteName}\n </Typography>\n\n {mobile && (\n <div style={{ marginLeft: 70 }}>\n {React.isValidElement(breadCrumbRoot) ? (\n breadCrumbRoot\n ) : breadCrumbRoot && typeof breadCrumbRoot === 'object' && (breadCrumbRoot.data || breadCrumbRoot.componentName) ? (\n <ShellDropdown\n componentName={breadCrumbRoot.componentName}\n data={breadCrumbRoot.data}\n value={breadCrumbRoot.value}\n onChange={breadCrumbRoot.onChange}\n optionLabelDisplayFunction={breadCrumbRoot.optionLabelDisplayFunction}\n placeholder={breadCrumbRoot.placeholder}\n className={breadCrumbRoot.className}\n classProps={breadCrumbRoot.classProps}\n />\n ) : (\n <BreadCrumbMenu\n color='primary'\n root={breadCrumbRoot}\n breadCrumbAltLabelList={breadCrumbAltLabelList}\n />\n )}\n </div>\n )}\n <div className={classes.children}>{appContent}</div>\n {switcherData && (\n <AmbientProjectSwitcher\n data={switcherData}\n selectedItem={selectedItem}\n width={switcherWidth}\n backgroundColor={backgroundColor}\n />\n )}\n\n {!mobile && !hideAppLaunch && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('mobile', true)}\n >\n <WaffleIcon />\n </IconButton>\n )}\n <div className={classes.additionalRightComponent}>\n <SiteHeaderRightComponentTarget />\n </div>\n <HelpCenter />\n <LanguageSwitcher languages={languages} />\n <div>{userAvatar}</div>\n </Toolbar>\n </AppBar>\n <SiteHeaderSpacer className={className} />\n </>\n );\n};\n\nexport default SiteHeader;\n\nSiteHeader.propTypes = {\n breadCrumbRoot: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n PropTypes.object\n ]),\n /**\n * Passes the background color on the project switcher (default: theme secondary)\n */\n backgroundColor: PropTypes.string\n};\n","import { Avatar, makeStyles } from '@material-ui/core'\nimport clsx from 'clsx'\nimport React from 'react'\nimport useDevicePixelRatio from '../../utilities/useDevicePixelRatio.ts'\nimport useGravatar from '../../utilities/useGravatar.ts'\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {},\n default: {},\n toolbar: {\n width: 32,\n height: 32\n },\n large: {\n width: 80,\n height: 80\n }\n }),\n { name: 'UserAvatar' }\n)\n\n/**\n * Inteligent user Avatar element\n *\n * - Loads a Gravatar based on the email if one exists\n * - Falls back to a text avatar while loading and when a Gravatar does not exist\n * - Automatically chooses image size based on size prop and device pixel density (and updates if device pixel density changes)\n */\nconst UserAvatar = (props) => {\n const classes = useStyles(props)\n const { name, email, size = 'default', className, ...other } = props\n const dppx = useDevicePixelRatio()\n const dimension = { toolbar: 32, large: 80 }[size] || 40\n const avatar = useGravatar(email, { size: dimension * dppx })\n\n return (\n <Avatar\n alt={name}\n aria-label={`${name}'s avatar`}\n {...other}\n className={clsx(className, classes[size])}\n src={avatar}\n >\n {name?.trim()?.charAt(0) || '?'}\n </Avatar>\n )\n}\n\nexport default UserAvatar\n","import React, { useState, useEffect, forwardRef } from 'react';\nimport { Button, CardContent, makeStyles, Typography } from '@material-ui/core';\nimport UserAvatar from './UserAvatar';\nimport { Autocomplete } from '@material-ui/lab';\nimport { TextField } from '@material-ui/core';\nimport { useHistory } from 'react-router-dom';\nimport { clearStoredPath } from '../../utilities/redirect/LocalRedirectUrlStorage';\nimport { clearStoredExternalPath } from '../../utilities/redirect/ExternalRedirectUrlStorage';\nimport {\n clearStoredTenant,\n storeTenant\n} from '../../utilities/storage/UnitySessionStorage';\nimport { useTranslation } from 'react-i18next';\nimport { useUserActions } from '../../utilities/auth/users';\nimport { ConfigService } from '../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n '& > *': {\n margin: theme.spacing(1)\n },\n '&:last-child': {\n paddingBottom: theme.spacing(2)\n }\n },\n cardHeader: {\n display: 'flex',\n marginBottom: theme.spacing(3)\n },\n currentTenant: {\n margin: 'auto',\n width: '85%',\n marginBottom: theme.spacing(4)\n },\n buttonGroup: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n basicInfoContainer: {\n marginLeft: theme.spacing(1)\n },\n basicInfo: {\n paddingLeft: theme.spacing(1)\n },\n divider: {\n height: theme.spacing(3)\n },\n avatar: {\n fontSize: 40\n }\n}));\n\nexport const FluentProfileMenuCard = forwardRef((props, ref) => {\n const classes = useStyles();\n const devUnityUrl = 'https://unity-dev.univerus.com/';\n const {\n userTenants,\n currentTenant,\n user,\n logout,\n unityUrl = devUnityUrl,\n displayProfileButton = true\n } = props;\n const [currentTenantValue, setCurrentTenantValue] = useState('');\n const history = useHistory();\n const redirectToHome = () => history.push('/');\n const { t, i18n } = useTranslation();\n const { changeTenant } = useUserActions();\n\n const handleAutocompleteOnChange = (newValue, reason) => {\n if (reason !== 'select-option') return;\n setCurrentTenantValue(newValue);\n storeTenant(newValue.tenantId);\n changeTenant(newValue.tenantId);\n redirectToHome();\n };\n\n useEffect(() => {\n if (userTenants && !currentTenantValue) {\n const currentUserTenant = userTenants.find(\n (ut) => ut.tenantId === currentTenant?.tenantId\n );\n setCurrentTenantValue(currentUserTenant);\n }\n }, [currentTenant, userTenants, currentTenantValue]);\n\n const handleProfileClick = () => {\n // if this is unity (productid is 1), go to the profile slug, otherwise open the profile page in a new tab\n if(ConfigService.config.UNITY_PRODUCT_ID == 1) history.push('/profile')\n else window.open(unityUrl + '/profile');\n\n }\n\n if (!user) return null;\n\n return (\n <CardContent ref={ref} className={classes.root}>\n <div className={classes.cardHeader}>\n <UserAvatar\n name={user?.name}\n email={user?.email}\n size='large'\n className={classes.avatar}\n />\n <div className={classes.basicInfoContainer}>\n <Typography className={classes.basicInfo} variant='subtitle2'>\n {user?.name}\n </Typography>\n <Typography className={classes.basicInfo} variant='body2'>\n {user?.email}\n </Typography>\n {/* {displayProfileButton && (\n <div className={classes.buttonGroup}>\n <Button\n id='udpRecord-FluentProfileMenuCard-MyProfile'\n udprecordid='udpRecord-FluentProfileMenuCard-MyProfile'\n onClick={handleProfileClick}\n target='_blank'\n color='secondary'\n >\n {t('My Profile')}\n </Button>\n </div>\n )} */}\n </div>\n </div>\n {userTenants && user && changeTenant && (\n <Autocomplete\n className={classes.currentTenant}\n value={currentTenantValue}\n getOptionSelected={(option, value) =>\n option?.tenantId === value?.tenantId\n }\n disableClearable\n id='current-tenant'\n name='currentTenant'\n options={userTenants ? userTenants : []}\n getOptionLabel={(option) =>\n option?.tenantName ? option?.tenantName : ''\n }\n onChange={(event, newValue, reason) =>\n handleAutocompleteOnChange(newValue, reason)\n }\n renderInput={(params) => (\n <TextField\n {...params}\n inputProps={{...params.inputProps,\n id:'udpRecord-FluentProfileMenuCard-TextField',\n udprecordid:'udpRecord-FluentProfileMenuCard-TextField'\n }}\n label={t('Current Tenant')}\n variant='standard'\n />\n )}\n renderOption={(option, { selected }) => (\n <li\n style={{ width: '100%', height: '100%' }}\n udprecordid={`udpRecord-FluentProfileMenuCard-${option.tenantName.replace(/\\s+/g, '')}`}\n {...option}\n >\n {option.tenantName}\n </li>\n )}\n />\n )}\n <Button\n id='udpRecord-FluentProfileMenuCard-SignOut'\n udprecordid='udpRecord-FluentProfileMenuCard-SignOut'\n onClick={() => {\n clearStoredPath();\n clearStoredExternalPath();\n clearStoredTenant();\n logout();\n }}\n variant='outlined'\n color='secondary'\n >\n {t('Sign out')}\n </Button>\n </CardContent>\n );\n});\n\nFluentProfileMenuCard.displayName = 'FluentProfileMenuCard';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAMA,cAAY,YACf,WAAW;CACV,MAAM;EACJ,OAAO,OAAO,YAAY;EAC1B,YAAY;EACZ,YAAY;EACb;CACD,UAAU,EACR,iBAAiB;EAEf,OAAO,MAAM,QAAQ,GAAG;EACxB,YAAY,MAAM,YAAY,OAAO,SAAS;GAC5C,QAAQ,MAAM,YAAY,OAAO;GACjC,UAAU,MAAM,YAAY,SAAS;GACtC,CAAC;EACH,EACF;CACD,WAAW,EACT,iBAAiB;EACf,WAAW;EACX,OAAO,MAAM,QAAQ,EAAE,GAAG;EAC1B,YAAY,OAAO,aAAa,OAAO,SAAS;GAC9C,QAAQ,OAAO,aAAa,QAAQ;GACpC,UAAU,OAAO,aAAa,UAAU;GACzC,CAAC;EACH,EACF;CACD,OAAO,EAAE;CACV,GACD,EAAE,MAAM,0BAA0B,CACnC;AAED,MAAM,0BAA0B,UAAU;CACxC,MAAM,UAAUA,YAAU,MAAM;CAChC,MAAM,EAAE,WAAW,MAAM,WAAW,UAAU,GAAG,UAAU;AAE3D,QACE,oCAAC;EACC,SAAQ;EACR;EACA,GAAI;EACJ,WAAW,KACT,WACA,QAAQ,MACR,WAAW,QAAQ,WAAW,QAAQ,UACvC;EACD,SAAS;GACP,MAAM,QAAQ;GACd,OAAO,QAAQ;GAChB;IAEA,SACM;;AAIb,qCAAe;;;;ACpDf,MAAMC,cAAY,YACf,WAAW;CACV,MAAM,EACJ,WAAW,KACZ;CACD,OAAO;EACL,iBACE,OAAO,cAAc,EAAE,SAAS,SAC5B,KACA,QAAQ,OAAO,SAAS,SAAS,MAAM,GAAI;EACjD,WAAW;EACZ;CACD,MAAM;EACJ,MAAM;EACN,YAAY;EACZ,WAAW;EACX,yBAAyB;EAC1B;CACD,QAAQ;EACN,MAAM;EACN,WAAW,MAAM,QAAQ,EAAE;EAC5B;CACD,QAAQ,EAAE;CACV,SAAS;EACP,SAAS;EACT,YAAY,EAAC,qBAAoB,MAAM,QAAQ,EAAE,GAAG;EACrD;CACF,GACD,EAAE,MAAM,qBAAqB,CAC9B;AAED,MAAM,qBAAqB,UAAU;CAEnC,MAAM,UAAUA,YAAU,EAAC,gBADV,qBAAqB,GACgB,mBAAmB,GAAE,CAAC;CAC5E,MAAM,EACJ,MACA,mBACA,gBACA,MACA,SAAS,MACT,iBAAiB,OACjB,GAAG,UACD;CACJ,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAC9C,MAAM,EAAE,oBAAoB,0BAA0B,eAAe;CAErE,IAAI,cAAc,iBAAiB,qBAAqB;CAExD,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;CAUrD,MAAM,0BAA0B;AAC9B,MAAI,CAAC,eAAe,eAClB,gBAAe,KAAK;;CAGxB,MAAM,yBAAyB;AAC7B,MAAI,CAAC,eAAe,eAClB,gBAAe,MAAM;;CAIzB,MAAM,oBAAoB,kBAAkB;AAC1C,MAAI,eACF,uBAAsB,CAAC,mBAAmB;MAE1C,cAAa,eAAa,CAACC,WAAS;IAErC;EAAC;EAAuB;EAAgB;EAAmB,CAAC;AAE/D,QACE,oCAACC;EACC,SAAS;GAAE,MAAM,QAAQ;GAAM,OAAO,QAAQ;GAAO;EACrD,UAAU,eAAe;EACzB,cAAc;EACd,cAAc;EACd,YAAY;GAAE,WAAW;GAAG,SAAS;GAAY;EACjD,GAAI;IAEJ,oCAAC,WAAQ,WAAW,QAAQ,UAAW,EAEtC,UACC,oCAAC;EACC,IAAG;EACH,aAAY;EACZ,UAAU;EACV,SAAS;GACT,EAEH,QAAQ,oCAAC;EAAQ,WAAW;EAAM,iBAAiB;EAAmB;GAAQ,CACxD;;AAI7B,gCAAe;;;;ACtGf,MAAMC,cAAY,YAAY,WAAW;CACvC,MAAM;EACJ,SAAS;EAET,aAAY,UAAS,MAAM,kBAAkB,MAAM,kBAAkB,MAAM,QAAQ,UAAU;EAC7F,cAAc;EACd,SAAS;EACT,aAAY;EACb;CACD,aAAa,EAAE;CACf,MAAM;EACJ,OAAO,MAAM,QAAQ,QAAQ;EAC7B,cAAc;EACf;CACD,OAAO;EACL,SAAS;EACT,QAAO,UAAS,MAAM,QAAQ,MAAM,QAAQ;EAC5C,UAAU;EACV,YAAY;EACZ,cAAc;EACf;CACD,aAAa,EACX,aAAa,MAAM,QAAQ,EAAE,EAC9B;CACF,EAAE;AAEH,MAAa,0BAA0B,UAAU;CAE/C,MAAM,UAAUA,YAAU,MAAM;CAEhC,MAAM,QAAQ,UAAU;CAExB,MAAM,EAAE,MAAM,iBAAiB;CAE/B,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAE9C,MAAM,eAAe,UAAU;AAC7B,cAAY,MAAM,cAAc;;CAGlC,MAAM,oBAAoB;AACxB,cAAY,KAAK;;CAGnB,MAAM,OAAO,QAAQ,SAAS;CAC9B,MAAM,KAAK,OAAO,SAAS;AAE3B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC,SAAI,WAAW,QAAQ,eACtB,oCAAC,cAAW,WAAW,QAAQ,SAC5B,aACU,CACT,EAEN,oCAAC;EACC,WAAW,QAAQ;EACnB,MAAM;EACN,SAAS;EACT,OAAO,EAAC,YAAY,MAAM,QAAQ,OAAO,OAAM;GAC/C,EAEF,oCAAC;EACC,SAAS,EAAE,MAAM,QAAQ,aAAa;EACtC;EACA,WAAW;EACP;EACE;EACI;EACV,SAAS;EACT,cAAc;GACZ,UAAU;GACV,YAAY;GACb;EACD,iBAAiB;GACf,UAAU;GACV,YAAY;GACb;IAED,oCAAC,aACC,oCAAC,aACE,QAAQ,KAAK,KAAK,SAAS;AAC1B,SACE,oCAAC;GACC,OAAO,KAAK;GACZ,WAAW;GACX,aAAW,KAAK,MAAM,KAAK,MAAM;IACjC;GAEJ,CACE,CACF,CACE,CACN;;AAIV,uBAAuB,YAAY;CAIjC,MAAM,UAAU;CAIhB,cAAc,UAAU;CAIxB,iBAAiB,UAAU;;;;;AC/G7B,MAAMC,cAAY,YAAW,WAAU;CACrC,MAAM;EAAE,SAAS;EAAQ,YAAY;EAAU;CAC/C,OAAO;EACL,UAAU;EACV,UAAU;EACV,OAAO;EACP,WAAW;EACX,OAAO;EACP,4BAA4B;GAC1B,OAAO;GACP,iBAAiB;GACjB,cAAc,EACZ,aAAa,yBACd;GACD,oBAAoB,EAClB,aAAa,0BACd;GACD,0BAA0B,EACxB,aAAa,QACd;GACD,WAAW;IACT,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,WAAW;IACX,OAAO;IACR;GACD,4BAA4B,EAC1B,OAAO,QACR;GACF;EACD,wBAAwB,EACtB,OAAO,QACR;EACD,wEAAwE;GACtE,OAAO;GACP,SAAS;GACV;EACD,wBAAwB,EACtB,OAAO,yBACR;EACF;CACF,EAAE;AAEH,SAAS,eAAe,MAAM;AAC5B,KAAI,CAAC,QAAQ,SAAS,EAAG,QAAO;AAChC,KAAI,OAAO,SAAS,YAAY,OAAO,SAAS,SAAU,QAAO,OAAO,KAAK;AAC7E,KAAI,OAAO,SAAS,UAAU;EAC5B,MAAM,OAAO,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK;AAC3D,SAAO,SAAS,UAAa,SAAS,OAAO,OAAO,KAAK,GAAG;;AAE9D,QAAO,OAAO,KAAK;;AAGrB,MAAa,iBAAiB,UAAU;CACtC,MAAM,UAAUA,aAAW;CAC3B,MAAM,EACJ,gBAAgB,QAChB,OAAO,EAAE,EACT,QAAQ,MACR,UACA,6BAA6B,gBAC7B,aACA,WACA,YACA,GAAG,UACD;CAEJ,MAAM,kBAAkB,gBAAgB,CAAC,QAAQ,OAAO,cAAc,KAAK;AAE3E,QACE,oCAAC,SAAI,WAAW,GAAG,QAAQ,KAAK,GAAG,aAAa,QAC9C,oCAAC;EACC,WAAW,QAAQ;EACnB,YAAY;GAAE,kBAAkB,QAAQ;GAAO,GAAG;GAAY;EAC9D,SAAS;EACmB;EAClB;EACH;EACP,aAAa;EACb,GAAI;GACJ,CACE;;AAIV,cAAc,YAAY;CACxB,eAAe,UAAU;CACzB,MAAM,UAAU;CAChB,OAAO,UAAU;CACjB,UAAU,UAAU;CACpB,4BAA4B,UAAU;CACtC,aAAa,UAAU;CACvB,WAAW,UAAU;CACrB,YAAY,UAAU;CACvB;AAED,4BAAe;;;;ACvFf,MAAMC,cAAY,YAAY,WAAW;CACvC,MAAM,EACJ,SAAS,QACV;CACD,OAAO,EACL,aAAa,MAAM,QAAQ,EAAE,EAC9B;CACF,EAAE;AAEH,MAAa,oBAAoB,UAAU;CACzC,MAAM,UAAUA,aAAW;CAC3B,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,YAAY,OAAO,KAAK;CAC9B,MAAM,EAAE,cAAc;CAEtB,MAAM,qBAAqB;AACzB,WAAS,eAAa,CAACC,WAAS;;CAGlC,MAAM,eAAe,UAAU;AAC7B,MAAI,UAAU,WAAW,UAAU,QAAQ,SAAS,MAAM,OAAO,CAC/D;AAEF,UAAQ,MAAM;;CAGhB,SAAS,kBAAkB,OAAO;AAChC,MAAI,MAAM,QAAQ,OAAO;AACvB,SAAM,gBAAgB;AACtB,WAAQ,MAAM;;;CAKlB,MAAM,WAAW,OAAO,KAAK;AAC7B,iBAAgB;AACd,MAAI,SAAS,YAAY,QAAQ,SAAS,MACxC,WAAU,QAAQ,OAAO;AAE3B,WAAS,UAAU;IAClB,CAAC,KAAK,CAAC;CAEV,MAAM,wBAAwB,UAAU;AAGtC,mBAFwB,MAES,aAAa;;CAGhD,MAAM,oBAAoB,gBAAgB;AACxC,OAAK,eAAe,YAAY;;AAGlC,KAAI,aAAa,KACf,QACE,oCAAC;EAAI,IAAG;EAA6B,WAAW,QAAQ;IACtD,oCAAC,aACC,oCAAC;EACC,IAAG;EACH,aAAY;EACZ,KAAK;EACL,iBAAe,OAAO,mBAAmB;EACzC,iBAAc;EACd,SAAS;IAET,oCAAC,iBAAc,OAAO;EAAE,OAAO;EAAS,SAAS;EAAK,GAAI,CAC/C,EACb,oCAAC;EACO;EACN,UAAU,UAAU;EACpB,MAAM;EACN;EACA;KAEE,EAAE,iBAAiB,gBACnB,oCAAC;EACC,GAAI;EACJ,OAAO,EACL,iBACE,cAAc,WAAW,eAAe,iBAC3C;IAED,oCAAC,aACC,oCAAC;EACC,IAAG;EACH,aAAY;EACZ,aAAa;IAEb,oCAAC;EACC,eAAe;EACf,IAAG;EACH,aAAY;EACZ,WAAW;EACX,eAAe,QAAQ,MAAM;IAE5B,UAAU,KAAK,SACd,oCAAC;EACC,IAAI,yCAAuC,KAAK;EAChD,aAAa,yCAAuC,KAAK;EACzD,eAAe,qBAAqB,KAAK;EACzC,OAAO,KAAK;EACZ,KAAK,KAAK;IAET,KAAK,cACG,CAAC,CACL,CACO,CACd,CACH,CAEF,CACL,CACF;KAGR,QACE;;;;;AC3GN,MAAM,oBAAoB,WAAW,OAAO,mCAA+B;AAC3E,MAAM,uBAAuB,WAAW,OAAO,sCAAyC;AAKxF,MAAM,iCAAiC,OAAO;AAC9C,MAAM,oCAAoC,OAAO;AAEjD,MAAMC,cAAY,YAAY,WAAW;CACvC,MAAM,EACJ,SAAS,QACV;CACD,SAAS;EACP,SAAS,MAAM,QAAQ,EAAE;EACzB,UAAU;EACX;CACD,MAAM,EACJ,UAAU,IACX;CACD,aAAa;EACX,UAAU;EACV,OAAO,MAAM,QAAQ,EAAE;EACvB,KAAK,MAAM,QAAQ,EAAE;EACrB,OAAO,MAAM,QAAQ,KAAK;EAC3B;CACD,QAAQ;EACN,SAAS;EACT,YAAY;EACZ,gBAAgB;EACjB;CACD,QAAQ;EACN,UAAU;EACV,WAAW;EACZ;CACF,EAAE;AAEH,MAAa,mBAAmB;CAC9B,MAAM,UAAUA,aAAW;CAC3B,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,kBAAkB,YAAY;CACtC,MAAM,OAAO,SAAS;CACtB,MAAM,YAAY,OAAO,cAAc,OAAO,iBAAiB;CAE/D,MAAM,WAAW,cAAc,OAAO;CACtC,MAAM,cAAc,cAAc,OAAO;CACzC,MAAM,iBAAiB,cAAc,OAAO;CAC5C,MAAM,mBAAmB,cAAc,OAAO;CAE9C,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAC9C,MAAM,CAAC,4BAA4B,+BACjC,SAAS,MAAM;CACjB,MAAM,CAAC,gBAAgB,mBAAmB,SAAS,MAAM;CACzD,MAAM,CAAC,qBAAqB,0BAA0B,SAAS,MAAM;CAErE,MAAM,kBAAkB,OAAO,MAAM;CAErC,MAAM,qBAAqB,UAAU;AACnC,cAAY,MAAM,cAAc;AAIhC,MAAI,CAAC,gBAAgB,SAAS;AAC5B,mBAAgB,UAAU;AAE1B,OAAI;AACF,8BAA0B;YACnB,GAAG;AAGZ,OAAI;AACF,iCAA6B;YACtB,GAAG;;;CAMhB,MAAM,2BAA2B;AAC/B,cAAY,KAAK;;CAGnB,MAAM,qBAAqB,kBAAkB;AAC3C,cAAY,KAAK;AACjB,gBAAc,uCAAuC;IACpD,CAAC,cAAc,CAAC;CAEnB,MAAM,uCAAuC;AAC3C,8BAA4B,KAAK;AACjC,cAAY,KAAK;;CAGnB,MAAM,wCAAwC;AAC5C,8BAA4B,MAAM;;CAGpC,MAAM,2BAA2B;AAC/B,kBAAgB,KAAK;AACrB,cAAY,KAAK;;CAGnB,MAAM,4BAA4B;AAChC,kBAAgB,MAAM;;CAGxB,MAAM,OAAO,QAAQ,SAAS;CAC9B,MAAM,KAAK,OAAO,wBAAwB;CAI1C,MAAM,sBAAsB,gBAAc;EACxC,MAAM,iBAAiB,CAAC,IAAI,GAAG,CAAC,SAASC,YAAU;EACnD,MAAM,0BAA0B,CAAC,CAAC,cAAc;EAChD,MAAM,cACJ,KAAK,IAAI,0BACT,KAAK,IAAI,oBACT,KAAK,IAAI;AACX,SAAO,kBAAkB,2BAA2B;;CAGtD,MAAM,uBAAuB,YAC3B,YACE,UACE,cAAc,iBACd,+BACA;EACE,QAAQ;EACR,SAAS,EACP,iBAAiB,MAAM,iBACxB;EACF,CACF,EACH,CAAC,MAAM,gBAAgB,CACxB;CAED,MAAM,4BAA4B,YAChC,YACE,UACE,cAAc,iBACd,yBACA;EACE,QAAQ;EACR,SAAS,EACP,iBAAiB,MAAM,iBACxB;EACF,CACF,EACH,CAAC,MAAM,gBAAgB,CACxB;CAED,MAAM,eAAe,mBAAmB,UAAU;CAClD,MAAM,0BACJ;EAAC;EAAG;EAAI;EAAI;EAAG,CAAC,SAAS,UAAU,IACnC,YACA,eACA,kBACA;CACF,MAAM,0BAA0B,aAAa;AAE7C,iBAAgB;EACd,MAAM,oBAAoB,YAAY;AACpC,OAAI;AACF,QAAI,cAAc,OAAO,qBAAqB,IAE5C,yBADiB,MAAM,2BAA2B,GACjB,WAAW,IAAI;QAGhD,yBADiB,MAAM,sBAAsB,GACZ,WAAW,IAAI;YAE3C,OAAO;AACd,2BAAuB,MAAM;;;AAGjC,qBAAmB;IAClB,CAAC,sBAAsB,0BAA0B,CAAC;AAGrD,KAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,wBAChD,QAAO,oCAAC,SAAI,IAAG,yBAAyB;AAG1C,QACE,oCAAC;EAAI,IAAG;EAAuB,WAAW,QAAQ;IAChD,oCAAC;EACC,IAAG;EACH,iBAAe;EACf,iBAAc;EACd,SAAS;IAET,oCAACC,eAAgB,OAAO;EAAE,OAAO;EAAS,SAAS;EAAK,GAAI,CACjD,EACb,oCAAC;EACK;EACE;EACI;EACV,SAAS;EACT,cAAc;GACZ,UAAU;GACV,YAAY;GACb;EACD,iBAAiB;GACf,UAAU;GACV,YAAY;GACb;IAED,oCAAC,SAAI,WAAW,QAAQ,WACtB,oCAAC,SAAI,WAAW,QAAQ,UACtB,oCAAC,cAAW,SAAQ,QAAM,EAAE,OAAO,CAAc,EACjD,oCAAC;EACC,MAAK;EACL,WAAW,QAAQ;EACnB,SAAS;IAET,oCAACC,YAAY,CACF,CACT,EACN,oCAAC;EAAK,WAAU;EAAM,cAAW;IAE9B,gBACC,oCAAC;EACC;EACA,IAAG;EACH,SAAS;IAET,oCAAC,gBAAa,WAAW,QAAQ,QAC/B,oCAACD,kBAAkB,CACN,EACf,oCAAC,gBAAa,SAAS,EAAE,WAAW,GAAI,CAC/B,EAIZ,2BACC,oCAAC;EACC;EACA,IAAG;EACH,SAAS;IAET,oCAAC,gBAAa,WAAW,QAAQ,QAC/B,oCAACE,WAAW,CACC,EACf,oCAAC,gBAAa,SAAS,EAAE,iBAAiB,GAAI,CACrC,EAIZ,2BACC,oCAAC;EACC;EACA,IAAG;EACH,SAAS;IAET,oCAAC,gBAAa,WAAW,QAAQ,QAC/B,oCAACF,kBAAkB,CACN,EACf,oCAAC,gBAAa,SAAS,EAAE,wBAAwB,GAAI,CAC5C,CAER,CACH,CACE,EAGV,oCAAC,YAAS,UAAU,oCAAC,aAAI,aAAgB,IACvC,oCAAC;EAAkB,MAAM;EAAgB,SAAS;GAAuB,CAChE,EAGX,oCAAC,YAAS,UAAU,oCAAC,aAAI,aAAgB,IACvC,oCAAC;EACC,MAAM;EACN,SAAS;EACwB;EACjC,WAAW,WAAW;AACpB,WAAQ,IAAI,kBAAkB,OAAO;;EAEvC,eAAe,EAAE;GACjB,CACO,CACP;;;;;ACpSV,MAAMG,cAAY,WAAW;CAC3B,MAAM;EACJ,OAAO;EACP,QAAQ;EACR,kBAAkB,EAAC,kBAAoD,oBAAoB,YAAY;EACvG,OAAO;EACP,SAAS;EACT,YAAY;EACZ,UAAU;EAEV,aAAa,EACX,OAAO,WACR;EACF;CACF,YAAY;EACT,UAAU;EACV,MAAM;EACN,WAAW;EACX,YAAY;EACd;CACD,WAAW;EACR,UAAU;EACV,OAAO;EACP,YAAY;EACd;CACD,CAAC;AAEF,MAAa,0BAA0B;CACtC,MAAM,aAAa,WAAW;CAC9B,MAAM,mBAAmB,qBAAqB;CAE7C,MAAM,UAAUA,YAAU,EAAC,aAAa,kBAAiB,CAAC;AAC1D,KAAG,CAAC,iBAAmB,QAAO;AAE9B,QACE,oCAAC;EACC,WAAW,GAAG,QAAQ,KAAK,GAAG,qBAAqB,YAAY,YAAY;EAC3E,IAAG;IAEH,oCAACC,gBAAW,WAAW,QAAQ,cAC5B,kBAAkB,OAAO,EAAE,CAAC,aAAa,GAAC,kBAAkB,MAAM,EAAE,IAAI,GAC9D,EAChB,oCAACA,gBAAW,WAAW,QAAQ,aACzB,YAAY,cAAc,WAChB,CACT;;;;;AC/BV,MAAMC,cAAY,YACf,WAAW;CACV,MAAM;EACJ,OAAO,OAAO,SAAS,QAAQ;EAC/B,QAAQ,OAAO,QAAQ,SAAS;EAEjC;CACD,QAAQ,EACN,MAAM,GACP;CACD,cAAc;EACZ,SAAS;EACT,YAAY,EAAE,qBAAqB,KAAK;EACzC;CACD,SAAS;EACP,SAAS;EACT,WAAW,MAAM,QAAQ,EAAE;EAC5B;CACD,WAAW,EACT,OAAO,OAAO,SAAS,gBAAgB,OAAO,SAAS,SAAS,KAAK,EACtE;CACD,QAAQ;EACN,OAAO;EACP,QAAQ;EACR,iBAAiB,OAAO,SAAS,WAAW;EAC7C;CACD,QAAQ;EACN,YAAY,MAAM,QAAQ,EAAE;EAC5B,WAAW,MAAM,QAAQ,MAAM;EAChC;CACD,UAAU;EACR,MAAM;EACN,UAAU;EACX;CACF,GACD,EAAE,MAAM,cAAc,CACvB;;;;AAKD,MAAa,oBAAoB,UAAU;CAEzC,MAAM,UAAUA,YAAU,EACxB,gBAFe,qBAAqB,GAET,mBAAmB,GAC/C,CAAC;CACF,MAAM,EAAE,cAAc;AAEtB,QAAO,oCAAC,SAAI,WAAW,KAAK,WAAW,QAAQ,aAAa,GAAI;;;;;AAMlE,MAAM,cAAc,UAAU;CAC5B,MAAM,UAAUA,YAAU,MAAM;CAChC,MAAM,EACJ,WACA,UACA,YACA,YACA,UACA,iBAAiB,QACjB,QAAQ,WACR,oBACA,wBACA,iBACA,cACA,cACA,eACA,eACA,WACA,iBACA,GAAG,UACD;CAGJ,MAAM,SAAS,cADD,UAAU,CACW,YAAY,GAAG,KAAK,CAAC;AAExD,QACE,0DACE,oCAAC;EACC,WAAW;EACX,UAAS;EACF;EACP,GAAI;EACO;EACX,SAAS,EAAE,MAAM,QAAQ,MAAM;IAE/B,oCAAC,wBAAoB,EACrB,oCAAC,WAAQ,WAAW,QAAQ,WACzB,UAAU,CAAC,iBACV,oCAAC;EACC,WAAW,QAAQ;EACnB,cAAW;EACX,eAAe,mBAAmB,WAAW,KAAK;IAElD,oCAAC,iBAAa,CACH,EAEd,CAAC,UACA,oCAAC;EACC,WAAW,QAAQ;EACnB,cAAW;EACX,eAAe,mBAAmB,WAAW,KAAK;IAElD,oCAAC,uBAAmB,CACT,EAGf,oCAAC;EACC,WAAU;EACV,SAAQ;EACR,OAAO,EAAE,YAAY,iBAAiB,IAAI;IAEzC,SACU,EAEZ,UACC,oCAAC,SAAI,OAAO,EAAE,YAAY,IAAI,IAC3B,MAAM,eAAe,eAAe,GACnC,iBACE,kBAAkB,OAAO,mBAAmB,aAAa,eAAe,QAAQ,eAAe,iBACjG,oCAACC;EACC,eAAe,eAAe;EAC9B,MAAM,eAAe;EACrB,OAAO,eAAe;EACtB,UAAU,eAAe;EACzB,4BAA4B,eAAe;EAC3C,aAAa,eAAe;EAC5B,WAAW,eAAe;EAC1B,YAAY,eAAe;GAC3B,GAEF,oCAAC;EACC,OAAM;EACN,MAAM;EACkB;GACxB,CAEA,EAER,oCAAC,SAAI,WAAW,QAAQ,YAAW,WAAiB,EACnD,gBACC,oCAAC;EACC,MAAM;EACQ;EACd,OAAO;EACU;GACjB,EAGH,CAAC,UAAU,CAAC,iBACX,oCAAC;EACC,WAAW,QAAQ;EACnB,cAAW;EACX,eAAe,mBAAmB,UAAU,KAAK;IAEjD,oCAAC,iBAAa,CACH,EAEf,oCAAC,SAAI,WAAW,QAAQ,4BACtB,oCAAC,qCAAiC,CAC9B,EACN,oCAAC,iBAAa,EACd,oCAAC,oBAA4B,YAAa,EAC1C,oCAAC,aAAK,WAAiB,CACf,CACH,EACT,oCAAC,oBAA4B,YAAa,CACzC;;AAIP,yBAAe;AAEf,WAAW,YAAY;CACrB,gBAAgB,UAAU,UAAU;EAClC,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACX,CAAC;CAIF,iBAAiB,UAAU;CAC5B;;;;AC7MD,MAAMC,cAAY,YACf,WAAW;CACV,MAAM,EAAE;CACR,SAAS,EAAE;CACX,SAAS;EACP,OAAO;EACP,QAAQ;EACT;CACD,OAAO;EACL,OAAO;EACP,QAAQ;EACT;CACF,GACD,EAAE,MAAM,cAAc,CACvB;;;;;;;;AASD,MAAM,cAAc,UAAU;CAC5B,MAAM,UAAUA,YAAU,MAAM;CAChC,MAAM,EAAE,MAAM,OAAO,OAAO,WAAW,WAAW,GAAG,UAAU;CAC/D,MAAM,OAAO,qBAAqB;CAElC,MAAM,SAAS,YAAY,OAAO,EAAE,OADlB;EAAE,SAAS;EAAI,OAAO;EAAI,CAAC,SAAS,MACA,MAAM,CAAC;AAE7D,QACE,oCAAC;EACC,KAAK;EACL,cAAY,GAAG,KAAK;EACpB,GAAI;EACJ,WAAW,KAAK,WAAW,QAAQ,MAAM;EACzC,KAAK;IAEJ,MAAM,MAAM,EAAE,OAAO,EAAE,IAAI,IACrB;;AAIb,yBAAe;;;;ACjCf,MAAM,YAAY,YAAY,WAAW;CACvC,MAAM;EACJ,SAAS,EACP,QAAQ,MAAM,QAAQ,EAAE,EACzB;EACD,gBAAgB,EACd,eAAe,MAAM,QAAQ,EAAE,EAChC;EACF;CACD,YAAY;EACV,SAAS;EACT,cAAc,MAAM,QAAQ,EAAE;EAC/B;CACD,eAAe;EACb,QAAQ;EACR,OAAO;EACP,cAAc,MAAM,QAAQ,EAAE;EAC/B;CACD,aAAa;EACX,SAAS;EACT,eAAe;EACf,YAAY;EACb;CACD,oBAAoB,EAClB,YAAY,MAAM,QAAQ,EAAE,EAC7B;CACD,WAAW,EACT,aAAa,MAAM,QAAQ,EAAE,EAC9B;CACD,SAAS,EACP,QAAQ,MAAM,QAAQ,EAAE,EACzB;CACD,QAAQ,EACN,UAAU,IACX;CACF,EAAE;AAEH,MAAa,wBAAwB,YAAY,OAAO,QAAQ;CAC9D,MAAM,UAAU,WAAW;CAC3B,MAAM,cAAc;CACpB,MAAM,EACJ,aACA,eACA,MACA,QACA,WAAW,aACX,uBAAuB,SACrB;CACJ,MAAM,CAAC,oBAAoB,yBAAyB,SAAS,GAAG;CAChE,MAAM,UAAU,YAAY;CAC5B,MAAM,uBAAuB,QAAQ,KAAK,IAAI;CAC9C,MAAM,EAAE,GAAG,iBAAS,gBAAgB;CACpC,MAAM,EAAE,iBAAiB,gBAAgB;CAEzC,MAAM,8BAA8B,UAAU,WAAW;AACvD,MAAI,WAAW,gBAAiB;AAChC,wBAAsB,SAAS;AAC/B,cAAY,SAAS,SAAS;AAC9B,eAAa,SAAS,SAAS;AAC/B,kBAAgB;;AAGlB,iBAAgB;AACd,MAAI,eAAe,CAAC,mBAIlB,uBAH0B,YAAY,MACnC,OAAO,GAAG,aAAa,eAAe,SACxC,CACuC;IAEzC;EAAC;EAAe;EAAa;EAAmB,CAAC;AASpD,KAAI,CAAC,KAAM,QAAO;AAElB,QACE,oCAAC;EAAiB;EAAK,WAAW,QAAQ;IACxC,oCAAC,SAAI,WAAW,QAAQ,cACtB,oCAACC;EACC,MAAM,MAAM;EACZ,OAAO,MAAM;EACb,MAAK;EACL,WAAW,QAAQ;GACnB,EACF,oCAAC,SAAI,WAAW,QAAQ,sBACtB,oCAAC;EAAW,WAAW,QAAQ;EAAW,SAAQ;IAC/C,MAAM,KACI,EACb,oCAAC;EAAW,WAAW,QAAQ;EAAW,SAAQ;IAC/C,MAAM,MACI,CAcT,CACF,EACL,eAAe,QAAQ,gBACtB,oCAAC;EACC,WAAW,QAAQ;EACnB,OAAO;EACP,oBAAoB,QAAQ,UAC1B,QAAQ,aAAa,OAAO;EAE9B;EACA,IAAG;EACH,MAAK;EACL,SAAS,cAAc,cAAc,EAAE;EACvC,iBAAiB,WACf,QAAQ,aAAa,QAAQ,aAAa;EAE5C,WAAW,OAAO,UAAU,WAC1B,2BAA2B,UAAU,OAAO;EAE9C,cAAc,WACZ,oCAAC;GACC,GAAI;GACJ,YAAY;IAAC,GAAG,OAAO;IACrB,IAAG;IACH,aAAY;IACb;GACD,OAAO,EAAE,iBAAiB;GAC1B,SAAQ;IACR;EAEJ,eAAe,QAAQ,EAAE,eACvB,oCAAC;GACC,OAAO;IAAE,OAAO;IAAQ,QAAQ;IAAQ;GACxC,aAAa,mCAAmC,OAAO,WAAW,QAAQ,QAAQ,GAAG;GACrF,GAAI;KAEH,OAAO,WACL;GAEP,EAEJ,oCAAC;EACC,IAAG;EACH,aAAY;EACZ,eAAe;AACb,oBAAiB;AACjB,4BAAyB;AACzB,sBAAmB;AACnB,WAAQ;;EAEV,SAAQ;EACR,OAAM;IAEL,EAAE,WAAW,CACP,CACG;EAEhB;AAEF,sBAAsB,cAAc"}
1
+ {"version":3,"file":"FluentProfileMenuCard-DNEXKlnU.js","names":["useStyles","useStyles","expanded","MiniCollapsibleSidebar","useStyles","useStyles","useStyles","prevOpen","useStyles","productId","HelpOutlineIcon","CloseIcon","ChatIcon","useStyles","Typography","useStyles","ShellDropdown","useStyles","UserAvatar"],"sources":["../src/shell/ui/MiniCollapsibleSidebar.jsx","../src/shell/ui/NavigationSidebar.jsx","../src/shell/ui/AmbientProjectSwitcher.jsx","../src/shell/ui/ShellDropdown.jsx","../src/shell/ui/LanguageSwitcher.jsx","../src/shell/ui/HelpCenter.jsx","../src/shell/ui/EnvironmentRibbon.tsx","../src/shell/ui/SiteHeader.jsx","../src/shell/ui/UserAvatar.jsx","../src/shell/ui/FluentProfileMenuCard.jsx"],"sourcesContent":["import { Drawer, makeStyles } from '@material-ui/core'\nimport clsx from 'clsx'\nimport React from 'react'\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n width: theme?.dimensions?.drawerWidth,\n flexShrink: 0,\n whiteSpace: 'nowrap'\n },\n expanded: {\n '&, & > $paper': {\n // width: theme.dimensions.drawerWidth,\n width: theme.spacing(32),\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen\n })\n }\n },\n collapsed: {\n '&, & > $paper': {\n overflowX: 'hidden',\n width: theme.spacing(7) + 1,\n transition: theme?.transitions?.create('width', {\n easing: theme?.transitions?.easing?.sharp,\n duration: theme?.transitions?.duration?.leavingScreen\n })\n }\n },\n paper: {}\n }),\n { name: 'MiniCollapsibleSidebar' }\n)\n\nconst MiniCollapsibleSidebar = (props) => {\n const classes = useStyles(props)\n const { expanded = true, className, children, ...other } = props\n\n return (\n <Drawer\n variant='permanent'\n open\n {...other}\n className={clsx(\n className,\n classes.root,\n expanded ? classes.expanded : classes.collapsed\n )}\n classes={{\n root: classes.root,\n paper: classes.paper\n }}\n >\n {children}\n </Drawer>\n )\n}\n\nexport default MiniCollapsibleSidebar\n","import React, { useState, useCallback } from 'react';\nimport { makeStyles, Toolbar, lighten } from '@material-ui/core';\nimport MiniCollapsibleSidebar from './MiniCollapsibleSidebar';\nimport { SidebarCollapseButton } from './SidebarCollapseButton';\nimport { AppMenu } from '../../UI/navigation/menus/AppMenu';\nimport { useShellStore } from '../../stores/shellStore';\nimport { useBuildEnvironment, APP_RIBBON_SPACE } from './useBuildEnvironment';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n marginTop: 400\n },\n paper: {\n backgroundColor:\n theme?.getThemeData()?.mode === 'dark'\n ? ''\n : lighten(theme?.palette?.primary?.main, 0.9),\n overflowX: 'hidden'\n },\n list: {\n flex: 1,\n paddingTop: 0,\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch'\n },\n spacer: {\n flex: 1,\n minHeight: theme.spacing(2)\n },\n footer: {},\n toolbar: {\n padding: 0,\n minHeight: ({appRibbonSpace}) => theme.spacing(6) + appRibbonSpace\n }\n }),\n { name: 'NavigationSidebar' }\n);\n\nconst NavigationSidebar = (props) => {\n const buildEnv = useBuildEnvironment()\n const classes = useStyles({appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0});\n const {\n data,\n toggleExpandClick,\n navMenuHoverOn,\n user,\n toggle = true,\n useGlobalState = false,\n ...other\n } = props;\n const [expanded, setExpanded] = useState(true);\n const { navigationExpanded, setNavigationExpanded } = useShellStore();\n\n let navExpanded = useGlobalState ? navigationExpanded : expanded;\n\n const [hoverExpand, setHoverExpand] = useState(false);\n\n // ** Remove for now to deal with programmatic toggle **\n // const wide = useMediaQuery(theme.breakpoints.up('sm'))\n // useEffect(() => {\n // // Set the bar to be expanded/collapsed depending on the breakpoint size\n // // This works on load and also when resizing crosses the breakpoint\n // setExpanded(wide)\n // }, [wide])\n\n const handleHoverToggle = () => {\n if (!navExpanded && navMenuHoverOn) {\n setHoverExpand(true);\n }\n };\n const handleHoverLeave = () => {\n if (!navExpanded && navMenuHoverOn) {\n setHoverExpand(false);\n }\n };\n\n const handleToggleClick = useCallback(() => {\n if (useGlobalState) {\n setNavigationExpanded(!navigationExpanded);\n } else {\n setExpanded((expanded) => !expanded);\n }\n }, [setNavigationExpanded, useGlobalState, navigationExpanded]);\n\n return (\n <MiniCollapsibleSidebar\n classes={{ root: classes.root, paper: classes.paper }}\n expanded={navExpanded || hoverExpand}\n onMouseEnter={handleHoverToggle}\n onMouseLeave={handleHoverLeave}\n PaperProps={{ elevation: 0, variant: 'outlined' }}\n {...other}\n >\n <Toolbar className={classes.toolbar} />\n\n {toggle && (\n <SidebarCollapseButton\n id='udpRecord-NavigationSidebar'\n udprecordid='udpRecord-NavigationSidebar'\n expanded={navExpanded}\n onClick={handleToggleClick}\n />\n )}\n {data && <AppMenu menuItems={data} sidebarExpanded={navExpanded} user={user} />}\n </MiniCollapsibleSidebar>\n );\n};\n\nexport default NavigationSidebar;\n","import React, { useState } from 'react'\nimport { makeStyles, Popover, Typography, useTheme } from '@material-ui/core'\nimport { ChevronDownIcon } from '@fluentui/react-icons'\nimport { FluentIconButton } from '../../UI/inputs/buttons/FluentIconButton'\nimport {AmbientPopoverMenuItem} from '../../UI/inputs/buttons/AmbientPopoverMenuItem'\nimport PropTypes from 'prop-types'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n // border: '1px solid white',\n background: props => props.backgroundColor ? props.backgroundColor : theme.palette.secondary.main,\n borderRadius: 50,\n padding: 6,\n paddingLeft:16\n },\n popoverRoot: {},\n icon: {\n color: theme.palette.primary.main,\n borderRadius: 50\n }, \n label: {\n display: 'block',\n width: props => props.width ? props.width : 100,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n }, \n listWrapper: {\n marginRight: theme.spacing(2)\n }\n}))\n\nexport const AmbientProjectSwitcher = (props) => {\n \n const classes = useStyles(props)\n\n const theme = useTheme()\n\n const { data, selectedItem } = props\n\n const [anchorEl, setAnchorEl] = useState(null)\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n const id = open ? 'open' : undefined\n\n return (\n <div className={classes.root}>\n <div className={classes.listWrapper}>\n <Typography className={classes.label} > \n {selectedItem} \n </Typography>\n </div>\n \n <FluentIconButton\n className={classes.icon}\n icon={ChevronDownIcon}\n onClick={handleClick}\n style={{background: theme.palette.common.white}}\n />\n\n <Popover\n classes={{ root: classes.popoverRoot }}\n square\n elevation={6}\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n <div >\n <div>\n {data && data.map((item) => {\n return (\n <AmbientPopoverMenuItem\n label={item.label}\n component={ChevronDownIcon}\n click={()=>item.click(item.label)}\n />\n )\n })}\n </div>\n </div>\n </Popover>\n </div>\n )\n}\n\nAmbientProjectSwitcher.propTypes = {\n /**\n * The array used to map for label and functions to list items. (array).\n */\n data: PropTypes.array,\n /**\n * The active label displayed.\n */\n selectedItem: PropTypes.string,\n /**\n * Change the background color on the project switcher (default: theme secondary)\n */\n backgroundColor: PropTypes.string\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\nimport { FluentTextFieldAutoComplete } from '../../UI/inputs/textField/FluentTextFieldAutoComplete';\n\nconst useStyles = makeStyles(theme => ({\n root: { display: 'flex', alignItems: 'center' },\n field: {\n minWidth: 300,\n maxWidth: 400,\n width: '100%',\n alignSelf: 'left',\n color: '#fff',\n '& .MuiOutlinedInput-root': {\n color: '#fff',\n backgroundColor: 'transparent',\n '& fieldset': {\n borderColor: 'rgba(255,255,255,0.6)',\n },\n '&:hover fieldset': {\n borderColor: 'rgba(255,255,255,0.85)',\n },\n '&.Mui-focused fieldset': {\n borderColor: '#fff',\n },\n '& input': {\n paddingTop: 4,\n paddingBottom: 4,\n height: 20,\n boxSizing: 'border-box',\n color: '#fff',\n },\n '& .MuiAutocomplete-input': {\n color: '#fff',\n },\n },\n '& .MuiInputBase-root': {\n color: '#fff',\n },\n '& .MuiAutocomplete-popupIndicator, & .MuiAutocomplete-clearIndicator': {\n color: '#fff',\n opacity: 0.95,\n },\n '& input::placeholder': {\n color: 'rgba(255,255,255,0.7)',\n },\n },\n}));\n\nfunction getDisplayName(item) {\n if (!item && item !== 0) return '';\n if (typeof item === 'string' || typeof item === 'number') return String(item);\n if (typeof item === 'object') {\n const name = item.name ?? item.label ?? item.title ?? item.displayName;\n return name !== undefined && name !== null ? String(name) : '';\n }\n return String(item);\n}\n\nexport const ShellDropdown = (props) => {\n const classes = useStyles();\n const {\n componentName = 'Item',\n data = [],\n value = null,\n onChange,\n optionLabelDisplayFunction = getDisplayName,\n placeholder,\n className,\n classProps,\n ...other\n } = props;\n\n const placeholderText = placeholder ?? (!value ? `All ${componentName}s` : undefined);\n\n return (\n <div className={`${classes.root} ${className || ''}`}>\n <FluentTextFieldAutoComplete\n className={classes.field}\n classProps={{ autocompleteRoot: classes.field, ...classProps }}\n options={data}\n optionLabelDisplayFunction={optionLabelDisplayFunction}\n onChange={onChange}\n value={value}\n placeholder={placeholderText}\n {...other}\n />\n </div>\n );\n};\n\nShellDropdown.propTypes = {\n componentName: PropTypes.string,\n data: PropTypes.array,\n value: PropTypes.any,\n onChange: PropTypes.func,\n optionLabelDisplayFunction: PropTypes.func,\n placeholder: PropTypes.string,\n className: PropTypes.string,\n classProps: PropTypes.object,\n};\n\nexport default ShellDropdown;\n","import React, { useState, useRef, useEffect } from 'react'\nimport {\n ClickAwayListener,\n Grow,\n Paper,\n Popper,\n MenuList,\n makeStyles,\n IconButton,\n MenuItem\n} from '@material-ui/core'\nimport { TranslateIcon } from '@fluentui/react-icons'\nimport i18n from 'i18next';\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n paper: {\n marginRight: theme.spacing(2)\n }\n}))\n\nexport const LanguageSwitcher = (props) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n const anchorRef = useRef(null)\n const { languages } = props\n\n const handleToggle = () => {\n setOpen((prevOpen) => !prevOpen)\n }\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return\n }\n setOpen(false)\n }\n\n function handleListKeyDown(event) {\n if (event.key === 'Tab') {\n event.preventDefault()\n setOpen(false)\n }\n }\n\n // return focus to the button when we transitioned from !open -> open\n const prevOpen = useRef(open)\n useEffect(() => {\n if (prevOpen.current === true && open === false) {\n anchorRef.current.focus()\n }\n prevOpen.current = open\n }, [open])\n\n const handleLanguageChange = (event) => {\n const currentLanguage = event;\n //setLangKey(currentLanguage.languageCode);\n languageSelector(currentLanguage.languageCode);\n };\n\n const languageSelector = (defaultLang) => {\n i18n.changeLanguage(defaultLang);\n }\n\n if (languages != null) {\n return (\n <div id='udpRecord-LanguageSwitcher' className={classes.root}>\n <div>\n <IconButton\n id='udpRecord-LanguageSwitcher-IconButton'\n udprecordid='udpRecord-LanguageSwitcher-IconButton'\n ref={anchorRef}\n aria-controls={open ? 'menu-list-grow' : undefined}\n aria-haspopup='true'\n onClick={handleToggle}\n >\n <TranslateIcon style={{ color: 'white', opacity: 0.8 }} />\n </IconButton>\n <Popper\n open={open}\n anchorEl={anchorRef.current}\n role={undefined}\n transition\n disablePortal\n >\n {({ TransitionProps, placement }) => (\n <Grow\n {...TransitionProps}\n style={{\n transformOrigin:\n placement === 'bottom' ? 'center top' : 'center bottom'\n }}\n >\n <Paper>\n <ClickAwayListener \n id='udpRecord-LanguageSwitcher-ClickAway' \n udprecordid='udpRecord-LanguageSwitcher-ClickAway' \n onClickAway={handleClose}\n >\n <MenuList\n autoFocusItem={open}\n id='menu-list-grow'\n udprecordid='udpRecord-LanguageSwitcher-MenuList'\n onKeyDown={handleListKeyDown}\n onClick={() => setOpen(false)}\n >\n {languages.map((data) =>\n <MenuItem\n id={'udpRecord-LanguageSwitcher-MenuItem-'+data.languageLabel}\n udprecordid={'udpRecord-LanguageSwitcher-MenuItem-'+data.languageLabel}\n onClick={() => handleLanguageChange(data)}\n value={data.languageCode}\n key={data.languageId}\n >\n {data.languageLabel}\n </MenuItem>)}\n </MenuList>\n </ClickAwayListener>\n </Paper>\n </Grow>\n )}\n </Popper>\n </div>\n </div>\n )\n } else {\n return (\n null\n )\n }\n\n}","import React, { useState, useCallback, useEffect, useRef, Suspense, lazy } from 'react';\nimport {\n makeStyles,\n IconButton,\n Popover,\n Typography,\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n Dialog,\n DialogTitle,\n DialogContent\n} from '@material-ui/core';\nimport {HelpOutline as HelpOutlineIcon, Chat as ChatIcon, Close as CloseIcon} from '@material-ui/icons';\nimport { useActions } from '../../hooks/useActions';\nimport { useTranslation } from 'react-i18next';\nimport { useUser } from '../../../src/utilities/auth/useUser';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { ConfigService } from '../../configService';\n\n// Lazy-load side sheets so they aren't imported until needed. Keep\n// module-level lazy declarations so the imports are deduped and cached.\nconst UserFormSideSheet = lazy(() => import('./addUser/UserFormSideSheet'));\nconst SupportCaseSideSheet = lazy(() => import('../../UI/support/SupportCaseSideSheet'));\n\n// Preload helpers (return the dynamic import promise). Calling these\n// will start fetching the chunk in the background and populate the\n// module cache so React.lazy resolves quickly later.\nconst preloadUserFormSideSheet = () => import('./addUser/UserFormSideSheet');\nconst preloadSupportCaseSideSheet = () => import('../../UI/support/SupportCaseSideSheet');\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n popover: {\n padding: theme.spacing(2),\n maxWidth: 300\n },\n icon: {\n minWidth: 40\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500]\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n dialog: {\n minWidth: '80vw',\n minHeight: '80vh'\n }\n}));\n\nexport const HelpCenter = () => {\n const classes = useStyles();\n const { t } = useTranslation();\n const { triggerAction } = useActions();\n const user = useUser();\n const productId = Number(ConfigService.config.UNITY_PRODUCT_ID);\n\n const udpaiAPI = ConfigService.config.UDPAI_API_BASE;\n const udpaisearch = ConfigService.config.AI_SEARCH_URL;\n const udpaisearchkey = ConfigService.config.AI_SEARCH_KEY;\n const udpaisearchindex = ConfigService.config.AI_SEARCH_INDEX_NAME;\n\n const [anchorEl, setAnchorEl] = useState(null);\n const [isSupportCaseSideSheetOpen, setSupportCaseSideSheetOpen] =\n useState(false);\n const [isUserFormOpen, setUserFormOpen] = useState(false);\n const [supportCaseHealthOk, setSupportCaseHealthOk] = useState(false);\n\n const hasPreloadedRef = useRef(false);\n\n const handleOpenPopover = (event) => {\n setAnchorEl(event.currentTarget);\n\n // Preload both side sheets in the background the first time the popover opens.\n // We assume that if the user opened the popover, they might open one of the sheets.\n if (!hasPreloadedRef.current) {\n hasPreloadedRef.current = true;\n // Start background fetches but don't await them.\n try {\n preloadUserFormSideSheet();\n } catch (e) {\n // ignore preload errors\n }\n try {\n preloadSupportCaseSideSheet();\n } catch (e) {\n // ignore preload errors\n }\n }\n };\n\n const handleClosePopover = () => {\n setAnchorEl(null);\n };\n\n const handleLaunchAction = useCallback(() => {\n setAnchorEl(null);\n triggerAction('CEE75B36-01B0-4FAC-9AE7-C1AC8A2A194F');\n }, [triggerAction]);\n\n const handleOpenSupportCaseSideSheet = () => {\n setSupportCaseSideSheetOpen(true);\n setAnchorEl(null);\n };\n\n const handleCloseSupportCaseSideSheet = () => {\n setSupportCaseSideSheetOpen(false);\n };\n\n const handleOpenUserForm = () => {\n setUserFormOpen(true); // Open UserForm modal\n setAnchorEl(null);\n };\n\n const handleCloseUserForm = () => {\n setUserFormOpen(false); // Close UserForm modal\n };\n\n const open = Boolean(anchorEl);\n const id = open ? 'help-center-popover' : undefined;\n\n // Conditions for rendering buttons\n // 2 assets, 41 sandbox, 51 assets, 53 mm, 68 timesheets\n const shouldShowAddUsers = (productId) => {\n const isValidProduct = [41, 53].includes(productId);\n const isSecurityApiConfigured = !!ConfigService.securityV1ApiUrl;\n const isValidUser =\n user.can.CAN_MANAGE_ROLES_USERS &&\n user.can.CAN_MANAGE_USERS &&\n user.can.CAN_VIEW_USERS;\n return isValidProduct && isSecurityApiConfigured && isValidUser;\n };\n\n const getSupportCaseStatus = useCallback(\n async () =>\n apiMutate(\n ConfigService.productV1ApiUrl,\n `udpunitysupport/healthCheck`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n const getSupportCaseStatusUnity = useCallback(\n async () =>\n apiMutate(\n ConfigService.supportV1ApiUrl,\n `ServiceHealth/Support`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n const showAddUsers = shouldShowAddUsers(productId);\n const shouldShowChatAssistant =\n [2, 41, 51, 68].includes(productId) &&\n udpaiAPI &&\n udpaisearch &&\n udpaisearchkey &&\n udpaisearchindex;\n const shouldShowSupportTicket = productId && supportCaseHealthOk;\n\n useEffect(() => {\n const supportCaseStatus = async () => {\n try {\n if (ConfigService.config.UNITY_PRODUCT_ID === \"1\") {\n const response = await getSupportCaseStatusUnity();\n setSupportCaseHealthOk(response?.status === 200);\n } else {\n const response = await getSupportCaseStatus();\n setSupportCaseHealthOk(response?.status === 200);\n }\n } catch (error) {\n setSupportCaseHealthOk(false);\n }\n };\n supportCaseStatus();\n }, [getSupportCaseStatus, getSupportCaseStatusUnity]);\n\n // Hide the entire help center if neither button should be rendered\n if (!showAddUsers && !shouldShowChatAssistant && !shouldShowSupportTicket) {\n return <div id='udpRecord-HelpCenter' />;\n }\n\n return (\n <div id='udpRecord-HelpCenter' className={classes.root}>\n <IconButton\n id='udpRecord-HelpCenter-IconButton'\n aria-controls={id}\n aria-haspopup='true'\n onClick={handleOpenPopover}\n >\n <HelpOutlineIcon style={{ color: 'white', opacity: 0.8 }} />\n </IconButton>\n <Popover\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClosePopover}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'center'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'center'\n }}\n >\n <div className={classes.popover}>\n <div className={classes.header}>\n <Typography variant='h6'>{t('Help')}</Typography>\n <IconButton\n size='small'\n className={classes.closeButton}\n onClick={handleClosePopover}\n >\n <CloseIcon />\n </IconButton>\n </div>\n <List component='nav' aria-label='Help options'>\n {/* First Button: Add User */}\n {showAddUsers && (\n <ListItem\n button\n id='udpRecord-HelpCenter-AddUsers'\n onClick={handleOpenUserForm}\n >\n <ListItemIcon className={classes.icon}>\n <HelpOutlineIcon />\n </ListItemIcon>\n <ListItemText primary={t('Add User')} />\n </ListItem>\n )}\n\n {/* Second Button: Chat Assistant */}\n {shouldShowChatAssistant && (\n <ListItem\n button\n id='udpRecord-HelpCenter-ChatAssistant'\n onClick={handleLaunchAction}\n >\n <ListItemIcon className={classes.icon}>\n <ChatIcon />\n </ListItemIcon>\n <ListItemText primary={t('Chat Assistant')} />\n </ListItem>\n )}\n\n {/* Third Button: Submit Support Ticket */}\n {shouldShowSupportTicket && (\n <ListItem\n button\n id='udpRecord-HelpCenter-SupportTicket'\n onClick={handleOpenSupportCaseSideSheet}\n >\n <ListItemIcon className={classes.icon}>\n <HelpOutlineIcon />\n </ListItemIcon>\n <ListItemText primary={t('Submit Support Ticket')} />\n </ListItem>\n )}\n </List>\n </div>\n </Popover>\n\n {/* Modal for UserForm (lazy-loaded) */}\n <Suspense fallback={<div>Loading...</div>}>\n <UserFormSideSheet open={isUserFormOpen} onClose={handleCloseUserForm} />\n </Suspense>\n\n {/* Side Sheet for Support Ticket (lazy-loaded) */}\n <Suspense fallback={<div>Loading...</div>}>\n <SupportCaseSideSheet\n open={isSupportCaseSideSheetOpen}\n onClose={handleCloseSupportCaseSideSheet}\n handleCloseSupportCaseSideSheet={handleCloseSupportCaseSideSheet}\n onSubmit={(values) => {\n console.log('Form submitted', values);\n }}\n initialValues={{}}\n />\n </Suspense>\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\n// @ts-ignore\nimport { makeStyles } from '@material-ui/core';\nimport { useTenant } from '../../utilities/tenant/useTenant';\nimport { Typography } from '../../UI/dataDisplay/typography/Typography';\nimport { APP_RIBBON_SPACE, useBuildEnvironment } from './useBuildEnvironment';\n\n\n\nconst useStyles = makeStyles({\n root: {\n width: '100vw',\n height: APP_RIBBON_SPACE,\n backgroundColor: ({environment}: {environment: string | undefined}) => `var(--env-ribbon-${environment})`,\n color: '#ffffff', // Default white text\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n // Use CSS to handle staging text color\n '&.staging': {\n color: '#000000'\n }\n },\n\tcenterText: {\n position: 'absolute',\n left: '50%',\n transform: 'translateX(-50%)',\n fontWeight: 600\n\t},\n\trightText: {\n position: 'absolute',\n right: '10px',\n fontWeight: 500\n\t}\n});\n\nexport const EnvironmentRibbon = () => {\n\tconst tenantInfo = useTenant()\n\tconst buildEnvironment = useBuildEnvironment()\n\n const classes = useStyles({environment: buildEnvironment});\n if(!buildEnvironment) return null;\n\n return (\n <div\n className={`${classes.root} ${buildEnvironment === 'staging' ? 'staging' : ''}`}\n id='udp-environment-banner'\n >\n <Typography className={classes.centerText}>\n {buildEnvironment?.charAt(0).toUpperCase()+buildEnvironment?.slice(1) || ''}\n </Typography>\n\t\t\t<Typography className={classes.rightText}>\n {tenantInfo?.activeTenant?.tenantName}\n </Typography>\n </div>\n );\n};\n","import React from 'react';\nimport {\n AppBar,\n makeStyles,\n Toolbar,\n Typography,\n IconButton,\n useMediaQuery,\n useTheme\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport { WaffleIcon, CollapseMenuIcon } from '@fluentui/react-icons';\nimport { BreadCrumbMenu } from '../../UI/inputs/link/BreadCrumbMenu';\nimport { AmbientProjectSwitcher } from './AmbientProjectSwitcher';\nimport ShellDropdown from './ShellDropdown';\nimport { LanguageSwitcher } from './LanguageSwitcher';\nimport { HelpCenter } from './HelpCenter';\nimport { SiteHeaderRightComponentTarget } from './SiteHeaderRightComponent';\nimport PropTypes from 'prop-types';\nimport {\n useBuildEnvironment,\n APP_RIBBON_SPACE\n} from './useBuildEnvironment';\nimport { EnvironmentRibbon } from './EnvironmentRibbon';\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n color: theme?.palette?.appBar?.contrastText,\n zIndex: theme?.zIndex?.drawer + 1\n // Assume the drawer is always expanded unless the screen is too small for it and inset the left to account for it\n },\n spacer: {\n flex: 1\n },\n headerSpacer: {\n padding: 0,\n minHeight: ({ appRibbonSpace }) => 56 + appRibbonSpace\n },\n toolbar: {\n padding: 0,\n minHeight: theme.spacing(6)\n },\n appLaunch: {\n color: theme?.palette?.getContrastText(theme?.palette?.primary?.main)\n },\n avatar: {\n width: 25,\n height: 25,\n backgroundColor: theme?.palette?.secondary?.main\n },\n search: {\n marginLeft: theme.spacing(2),\n marginTop: theme.spacing(-1.35)\n },\n children: {\n flex: 1,\n minWidth: 5\n }\n }),\n { name: 'SiteHeader' }\n);\n\n/**\n * A spacing component with the same height as the SiteHeader\n */\nexport const SiteHeaderSpacer = (props) => {\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const { className } = props;\n\n return <div className={clsx(className, classes.headerSpacer)} />;\n};\n\n/**\n * Site header including app bar\n */\nconst SiteHeader = (props) => {\n const classes = useStyles(props);\n const {\n className,\n returnTo,\n appContent,\n userAvatar,\n siteName,\n breadCrumbRoot = 'home',\n color = 'primary',\n setAppSwitcherOpen,\n breadCrumbAltLabelList,\n currentLocation,\n switcherData,\n selectedItem,\n switcherWidth,\n hideAppLaunch,\n languages,\n backgroundColor,\n ...other\n } = props;\n\n const theme = useTheme();\n const mobile = useMediaQuery(theme.breakpoints.up('sm'));\n\n return (\n <>\n <AppBar\n elevation={0}\n position='fixed'\n color={color}\n {...other}\n className={className}\n classes={{ root: classes.root }}\n >\n <EnvironmentRibbon />\n <Toolbar className={classes.toolbar}>\n {mobile && !hideAppLaunch && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('desktop', true)}\n >\n <WaffleIcon />\n </IconButton>\n )}\n {!mobile && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('desktop', true)}\n >\n <CollapseMenuIcon />\n </IconButton>\n )}\n\n <Typography\n component='h1'\n variant='h6'\n style={{ marginLeft: hideAppLaunch && 16 }}\n >\n {siteName}\n </Typography>\n\n {mobile && (\n <div style={{ marginLeft: 70 }}>\n {React.isValidElement(breadCrumbRoot) ? (\n breadCrumbRoot\n ) : breadCrumbRoot && typeof breadCrumbRoot === 'object' && (breadCrumbRoot.data || breadCrumbRoot.componentName) ? (\n <ShellDropdown\n componentName={breadCrumbRoot.componentName}\n data={breadCrumbRoot.data}\n value={breadCrumbRoot.value}\n onChange={breadCrumbRoot.onChange}\n optionLabelDisplayFunction={breadCrumbRoot.optionLabelDisplayFunction}\n placeholder={breadCrumbRoot.placeholder}\n className={breadCrumbRoot.className}\n classProps={breadCrumbRoot.classProps}\n />\n ) : (\n <BreadCrumbMenu\n color='primary'\n root={breadCrumbRoot}\n breadCrumbAltLabelList={breadCrumbAltLabelList}\n />\n )}\n </div>\n )}\n <div className={classes.children}>{appContent}</div>\n {switcherData && (\n <AmbientProjectSwitcher\n data={switcherData}\n selectedItem={selectedItem}\n width={switcherWidth}\n backgroundColor={backgroundColor}\n />\n )}\n\n {!mobile && !hideAppLaunch && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('mobile', true)}\n >\n <WaffleIcon />\n </IconButton>\n )}\n <div className={classes.additionalRightComponent}>\n <SiteHeaderRightComponentTarget />\n </div>\n <HelpCenter />\n <LanguageSwitcher languages={languages} />\n <div>{userAvatar}</div>\n </Toolbar>\n </AppBar>\n <SiteHeaderSpacer className={className} />\n </>\n );\n};\n\nexport default SiteHeader;\n\nSiteHeader.propTypes = {\n breadCrumbRoot: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n PropTypes.object\n ]),\n /**\n * Passes the background color on the project switcher (default: theme secondary)\n */\n backgroundColor: PropTypes.string\n};\n","import { Avatar, makeStyles } from '@material-ui/core'\nimport clsx from 'clsx'\nimport React from 'react'\nimport useDevicePixelRatio from '../../utilities/useDevicePixelRatio.ts'\nimport useGravatar from '../../utilities/useGravatar.ts'\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {},\n default: {},\n toolbar: {\n width: 32,\n height: 32\n },\n large: {\n width: 80,\n height: 80\n }\n }),\n { name: 'UserAvatar' }\n)\n\n/**\n * Inteligent user Avatar element\n *\n * - Loads a Gravatar based on the email if one exists\n * - Falls back to a text avatar while loading and when a Gravatar does not exist\n * - Automatically chooses image size based on size prop and device pixel density (and updates if device pixel density changes)\n */\nconst UserAvatar = (props) => {\n const classes = useStyles(props)\n const { name, email, size = 'default', className, ...other } = props\n const dppx = useDevicePixelRatio()\n const dimension = { toolbar: 32, large: 80 }[size] || 40\n const avatar = useGravatar(email, { size: dimension * dppx })\n\n return (\n <Avatar\n alt={name}\n aria-label={`${name}'s avatar`}\n {...other}\n className={clsx(className, classes[size])}\n src={avatar}\n >\n {name?.trim()?.charAt(0) || '?'}\n </Avatar>\n )\n}\n\nexport default UserAvatar\n","import React, { useState, useEffect, forwardRef } from 'react';\nimport { Button, CardContent, makeStyles, Typography } from '@material-ui/core';\nimport UserAvatar from './UserAvatar';\nimport { Autocomplete } from '@material-ui/lab';\nimport { TextField } from '@material-ui/core';\nimport { useHistory } from 'react-router-dom';\nimport { clearStoredPath } from '../../utilities/redirect/LocalRedirectUrlStorage';\nimport { clearStoredExternalPath } from '../../utilities/redirect/ExternalRedirectUrlStorage';\nimport {\n clearStoredTenant,\n storeTenant\n} from '../../utilities/storage/UnitySessionStorage';\nimport { useTranslation } from 'react-i18next';\nimport { useUserActions } from '../../utilities/auth/users';\nimport { ConfigService } from '../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n '& > *': {\n margin: theme.spacing(1)\n },\n '&:last-child': {\n paddingBottom: theme.spacing(2)\n }\n },\n cardHeader: {\n display: 'flex',\n marginBottom: theme.spacing(3)\n },\n currentTenant: {\n margin: 'auto',\n width: '85%',\n marginBottom: theme.spacing(4)\n },\n buttonGroup: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n basicInfoContainer: {\n marginLeft: theme.spacing(1)\n },\n basicInfo: {\n paddingLeft: theme.spacing(1)\n },\n divider: {\n height: theme.spacing(3)\n },\n avatar: {\n fontSize: 40\n }\n}));\n\nexport const FluentProfileMenuCard = forwardRef((props, ref) => {\n const classes = useStyles();\n const devUnityUrl = 'https://unity-dev.univerus.com/';\n const {\n userTenants,\n currentTenant,\n user,\n logout,\n unityUrl = devUnityUrl,\n displayProfileButton = true\n } = props;\n const [currentTenantValue, setCurrentTenantValue] = useState('');\n const history = useHistory();\n const redirectToHome = () => history.push('/');\n const { t, i18n } = useTranslation();\n const { changeTenant } = useUserActions();\n\n const handleAutocompleteOnChange = (newValue, reason) => {\n if (reason !== 'select-option') return;\n setCurrentTenantValue(newValue);\n storeTenant(newValue.tenantId);\n changeTenant(newValue.tenantId);\n redirectToHome();\n };\n\n useEffect(() => {\n if (userTenants && !currentTenantValue) {\n const currentUserTenant = userTenants.find(\n (ut) => ut.tenantId === currentTenant?.tenantId\n );\n setCurrentTenantValue(currentUserTenant);\n }\n }, [currentTenant, userTenants, currentTenantValue]);\n\n const handleProfileClick = () => {\n // if this is unity (productid is 1), go to the profile slug, otherwise open the profile page in a new tab\n if(ConfigService.config.UNITY_PRODUCT_ID == 1) history.push('/profile')\n else window.open(unityUrl + '/profile');\n\n }\n\n if (!user) return null;\n\n return (\n <CardContent ref={ref} className={classes.root}>\n <div className={classes.cardHeader}>\n <UserAvatar\n name={user?.name}\n email={user?.email}\n size='large'\n className={classes.avatar}\n />\n <div className={classes.basicInfoContainer}>\n <Typography className={classes.basicInfo} variant='subtitle2'>\n {user?.name}\n </Typography>\n <Typography className={classes.basicInfo} variant='body2'>\n {user?.email}\n </Typography>\n {/* {displayProfileButton && (\n <div className={classes.buttonGroup}>\n <Button\n id='udpRecord-FluentProfileMenuCard-MyProfile'\n udprecordid='udpRecord-FluentProfileMenuCard-MyProfile'\n onClick={handleProfileClick}\n target='_blank'\n color='secondary'\n >\n {t('My Profile')}\n </Button>\n </div>\n )} */}\n </div>\n </div>\n {userTenants && user && changeTenant && (\n <Autocomplete\n className={classes.currentTenant}\n value={currentTenantValue}\n getOptionSelected={(option, value) =>\n option?.tenantId === value?.tenantId\n }\n disableClearable\n id='current-tenant'\n name='currentTenant'\n options={userTenants ? userTenants : []}\n getOptionLabel={(option) =>\n option?.tenantName ? option?.tenantName : ''\n }\n onChange={(event, newValue, reason) =>\n handleAutocompleteOnChange(newValue, reason)\n }\n renderInput={(params) => (\n <TextField\n {...params}\n inputProps={{...params.inputProps,\n id:'udpRecord-FluentProfileMenuCard-TextField',\n udprecordid:'udpRecord-FluentProfileMenuCard-TextField'\n }}\n label={t('Current Tenant')}\n variant='standard'\n />\n )}\n renderOption={(option, { selected }) => (\n <li\n style={{ width: '100%', height: '100%' }}\n udprecordid={`udpRecord-FluentProfileMenuCard-${option.tenantName.replace(/\\s+/g, '')}`}\n {...option}\n >\n {option.tenantName}\n </li>\n )}\n />\n )}\n <Button\n id='udpRecord-FluentProfileMenuCard-SignOut'\n udprecordid='udpRecord-FluentProfileMenuCard-SignOut'\n onClick={() => {\n clearStoredPath();\n clearStoredExternalPath();\n clearStoredTenant();\n logout();\n }}\n variant='outlined'\n color='secondary'\n >\n {t('Sign out')}\n </Button>\n </CardContent>\n );\n});\n\nFluentProfileMenuCard.displayName = 'FluentProfileMenuCard';\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { t as ConfigService } from "./configService-C4uoG3wj.js";
2
2
  import { t as useUser } from "./useUser-wpHGo6jU.js";
3
3
  import { t as useAxiosGet } from "./useAxiosGet-vvPjwB4W.js";
4
- import { t as amcharts_exports } from "./amcharts-ptK5Ggb0.js";
4
+ import { t as amcharts_exports } from "./amcharts-C-oU6vTx.js";
5
5
  import React, { useMemo } from "react";
6
6
 
7
7
  //#region src/UI/charts/InsightRenderer.tsx
@@ -80,4 +80,4 @@ const InsightRenderer = (props) => {
80
80
 
81
81
  //#endregion
82
82
  export { InsightRenderer as t };
83
- //# sourceMappingURL=InsightRenderer-UkS3B5zg.js.map
83
+ //# sourceMappingURL=InsightRenderer-BwE5OX4C.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InsightRenderer-UkS3B5zg.js","names":["InsightRenderer: React.FC<InsightRendererProps>","properties: InsightTypeProperties","UdpCharts","kpis:\n | { value?: string; label?: string; active?: boolean }[]\n | undefined","kpiField: { operation?: string; property?: string }","dataConfig: { [key: string]: any } | null","dataMapping: {\n name: string;\n value: { name: string; operation: string | undefined };\n alias?: string;\n }[]"],"sources":["../src/UI/charts/InsightRenderer.tsx"],"sourcesContent":["import React, { useMemo, useState, useEffect } from 'react';\nimport * as UdpCharts from './amcharts';\nimport { Insight, InsightTypeField, InsightTypeProperties } from './types';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport QueryResult from '../../models/QueryResult';\nimport { ConfigService } from '../../configService';\nexport type UdpChart =\n | 'UdpBarChart'\n | 'UdpDonutChart'\n | 'UdpLineChart'\n | 'UdpDistributionChart';\nexport interface InsightRendererProps {\n insight: Insight | undefined;\n data: QueryResult | undefined;\n insightId: string | undefined;\n}\n\nconst capitilizeFirstLetter = (s: string): string =>\n s?.charAt?.(0)?.toUpperCase?.() + s?.slice?.(1);\nconst decapitilizeFirstLetter = (s: string): string =>\n s?.charAt?.(0)?.toLowerCase?.() + s?.slice?.(1);\n\nfunction getAggregateValue<T>(data: QueryResult | undefined, key: string): T {\n return data?.aggregateResults?.[0]?.[key] as T;\n}\n/**\n * InsightRenderer component\n *\n * This component is responsible for rendering insights based on the provided props.\n *\n * @prop {Insight} `insight` - The insight metadata\n * @prop {any} `data` - Search results associated with the insight\n * @prop {string} `insightId` - InsightId, if included the component will get the data from server\n * @returns {JSX.Element} - The rendered insight component.\n */\nexport const InsightRenderer: React.FC<InsightRendererProps> = (props: InsightRendererProps) => {\n const { insight: insightProp, data, insightId } = props;\n const user = useUser();\n const [{ data: loadedInsight }] = useAxiosGet(\n ConfigService.integrationV2ApiUrl,\n `Insight/${insightId}/Full`,\n {},\n !insightId || !user\n ) as unknown as [{ data: Insight }];\n\n // Use the insight passed in or the insightId\n const insight = useMemo(() => {\n if (!!insightId) return loadedInsight;\n else return insightProp;\n }, [loadedInsight, insightId, insightProp]);\n\n // determine chart component\n const Chart = useMemo(() => {\n if (!insight?.insightInsightType?.properties) return null;\n let properties: InsightTypeProperties;\n if (typeof insight?.insightInsightType?.properties === 'string') {\n properties = JSON.parse(\n insight?.insightInsightType?.properties as unknown as string\n ) as InsightTypeProperties;\n } else {\n properties = insight?.insightInsightType?.properties;\n }\n // @ts-ignore\n return UdpCharts?.[properties?.component];\n }, [insight?.insightInsightType]);\n\n const kpis:\n | { value?: string; label?: string; active?: boolean }[]\n | undefined = useMemo(() => {\n if (insight == null) return undefined;\n return insight?.insightInsightKpi?.map?.((kpi) => {\n const kpiField: { operation?: string; property?: string } =\n typeof kpi.field === 'object' ? kpi.field : JSON.parse(kpi.field);\n console.log(kpiField);\n return {\n label: kpi.label,\n active: kpi.active,\n value: getAggregateValue<string>(\n data,\n `${\n decapitilizeFirstLetter(kpiField.property ?? '') ?? ''\n }${capitilizeFirstLetter(kpiField.operation?.toLowerCase() ?? '')}`\n )\n };\n });\n }, [data, insight?.insightInsightKpi]);\n\n const dataConfig: { [key: string]: any } | null = useMemo(() => {\n if (insight == null) return null;\n const dataMapping: {\n name: string;\n value: { name: string; operation: string | undefined };\n alias?: string;\n }[] =\n typeof insight.dataMapping === 'object'\n ? insight.dataMapping\n : JSON.parse(insight.dataMapping ?? '{}');\n const dataFields: InsightTypeField[] =\n typeof insight.insightInsightType?.dataFields === 'object'\n ? insight.insightInsightType?.dataFields\n : JSON.parse(insight.insightInsightType?.dataFields ?? '{}');\n\n return dataFields?.reduce?.((value: { [key: string]: any }, field) => {\n const fieldValue = dataMapping?.find?.(\n (dm) => dm.name === field.name\n )?.value;\n if (fieldValue?.operation != undefined) {\n value[field.name] =\n decapitilizeFirstLetter(fieldValue?.name) + fieldValue.operation;\n } else {\n // @ts-ignore\n value[field.name] = fieldValue?.alias ?? fieldValue?.name ?? fieldValue;\n }\n\n return value;\n }, {});\n }, [insight?.dataMapping, insight?.insightInsightType]);\n const combinedData = useMemo(() => {\n if (data?.aggregateResults == null || data?.aggregateResults?.length === 0)\n return data?.pageList;\n return data?.pageList.map((page, i) => ({\n ...page,\n ...data?.aggregateResults?.[i]\n }));\n }, [data]);\n if (Chart == null) return null;\n return (\n <Chart\n data={combinedData}\n title={insight?.title}\n subheader={insight?.subheader}\n {...dataConfig}\n kpis={kpis?.filter((kpi) => kpi.active)}\n />\n );\n};\n"],"mappings":";;;;;;;AAkBA,MAAM,yBAAyB,MAC7B,GAAG,SAAS,EAAE,EAAE,eAAe,GAAG,GAAG,QAAQ,EAAE;AACjD,MAAM,2BAA2B,MAC/B,GAAG,SAAS,EAAE,EAAE,eAAe,GAAG,GAAG,QAAQ,EAAE;AAEjD,SAAS,kBAAqB,MAA+B,KAAgB;AAC3E,QAAO,MAAM,mBAAmB,KAAK;;;;;;;;;;;;AAYvC,MAAaA,mBAAmD,UAAgC;CAC9F,MAAM,EAAE,SAAS,aAAa,MAAM,cAAc;CAClD,MAAM,OAAO,SAAS;CACtB,MAAM,CAAC,EAAE,MAAM,mBAAmB,YAChC,cAAc,qBACd,WAAW,UAAU,QACrB,EAAE,EACF,CAAC,aAAa,CAAC,KAChB;CAGD,MAAM,UAAU,cAAc;AAC5B,MAAI,CAAC,CAAC,UAAW,QAAO;MACnB,QAAO;IACX;EAAC;EAAe;EAAW;EAAY,CAAC;CAG3C,MAAM,QAAQ,cAAc;AAC1B,MAAI,CAAC,SAAS,oBAAoB,WAAY,QAAO;EACrD,IAAIC;AACJ,MAAI,OAAO,SAAS,oBAAoB,eAAe,SACrD,cAAa,KAAK,MAChB,SAAS,oBAAoB,WAC9B;MAED,cAAa,SAAS,oBAAoB;AAG5C,SAAOC,mBAAY,YAAY;IAC9B,CAAC,SAAS,mBAAmB,CAAC;CAEjC,MAAMC,OAEU,cAAc;AAC5B,MAAI,WAAW,KAAM,QAAO;AAC5B,SAAO,SAAS,mBAAmB,OAAO,QAAQ;GAChD,MAAMC,WACJ,OAAO,IAAI,UAAU,WAAW,IAAI,QAAQ,KAAK,MAAM,IAAI,MAAM;AACnE,WAAQ,IAAI,SAAS;AACrB,UAAO;IACL,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,OAAO,kBACL,MACA,GACE,wBAAwB,SAAS,YAAY,GAAG,IAAI,KACnD,sBAAsB,SAAS,WAAW,aAAa,IAAI,GAAG,GAClE;IACF;IACD;IACD,CAAC,MAAM,SAAS,kBAAkB,CAAC;CAEtC,MAAMC,aAA4C,cAAc;AAC9D,MAAI,WAAW,KAAM,QAAO;EAC5B,MAAMC,cAKJ,OAAO,QAAQ,gBAAgB,WAC3B,QAAQ,cACR,KAAK,MAAM,QAAQ,eAAe,KAAK;AAM7C,UAJE,OAAO,QAAQ,oBAAoB,eAAe,WAC9C,QAAQ,oBAAoB,aAC5B,KAAK,MAAM,QAAQ,oBAAoB,cAAc,KAAK,GAE7C,UAAU,OAA+B,UAAU;GACpE,MAAM,aAAa,aAAa,QAC7B,OAAO,GAAG,SAAS,MAAM,KAC3B,EAAE;AACH,OAAI,YAAY,aAAa,OAC3B,OAAM,MAAM,QACV,wBAAwB,YAAY,KAAK,GAAG,WAAW;OAGzD,OAAM,MAAM,QAAQ,YAAY,SAAS,YAAY,QAAQ;AAG/D,UAAO;KACN,EAAE,CAAC;IACL,CAAC,SAAS,aAAa,SAAS,mBAAmB,CAAC;CACvD,MAAM,eAAe,cAAc;AACjC,MAAI,MAAM,oBAAoB,QAAQ,MAAM,kBAAkB,WAAW,EACvE,QAAO,MAAM;AACf,SAAO,MAAM,SAAS,KAAK,MAAM,OAAO;GACtC,GAAG;GACH,GAAG,MAAM,mBAAmB;GAC7B,EAAE;IACF,CAAC,KAAK,CAAC;AACV,KAAI,SAAS,KAAM,QAAO;AAC1B,QACE,oCAAC;EACC,MAAM;EACN,OAAO,SAAS;EAChB,WAAW,SAAS;EACpB,GAAI;EACJ,MAAM,MAAM,QAAQ,QAAQ,IAAI,OAAO;GACvC"}
1
+ {"version":3,"file":"InsightRenderer-BwE5OX4C.js","names":["InsightRenderer: React.FC<InsightRendererProps>","properties: InsightTypeProperties","UdpCharts","kpis:\n | { value?: string; label?: string; active?: boolean }[]\n | undefined","kpiField: { operation?: string; property?: string }","dataConfig: { [key: string]: any } | null","dataMapping: {\n name: string;\n value: { name: string; operation: string | undefined };\n alias?: string;\n }[]"],"sources":["../src/UI/charts/InsightRenderer.tsx"],"sourcesContent":["import React, { useMemo, useState, useEffect } from 'react';\nimport * as UdpCharts from './amcharts';\nimport { Insight, InsightTypeField, InsightTypeProperties } from './types';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport QueryResult from '../../models/QueryResult';\nimport { ConfigService } from '../../configService';\nexport type UdpChart =\n | 'UdpBarChart'\n | 'UdpDonutChart'\n | 'UdpLineChart'\n | 'UdpDistributionChart';\nexport interface InsightRendererProps {\n insight: Insight | undefined;\n data: QueryResult | undefined;\n insightId: string | undefined;\n}\n\nconst capitilizeFirstLetter = (s: string): string =>\n s?.charAt?.(0)?.toUpperCase?.() + s?.slice?.(1);\nconst decapitilizeFirstLetter = (s: string): string =>\n s?.charAt?.(0)?.toLowerCase?.() + s?.slice?.(1);\n\nfunction getAggregateValue<T>(data: QueryResult | undefined, key: string): T {\n return data?.aggregateResults?.[0]?.[key] as T;\n}\n/**\n * InsightRenderer component\n *\n * This component is responsible for rendering insights based on the provided props.\n *\n * @prop {Insight} `insight` - The insight metadata\n * @prop {any} `data` - Search results associated with the insight\n * @prop {string} `insightId` - InsightId, if included the component will get the data from server\n * @returns {JSX.Element} - The rendered insight component.\n */\nexport const InsightRenderer: React.FC<InsightRendererProps> = (props: InsightRendererProps) => {\n const { insight: insightProp, data, insightId } = props;\n const user = useUser();\n const [{ data: loadedInsight }] = useAxiosGet(\n ConfigService.integrationV2ApiUrl,\n `Insight/${insightId}/Full`,\n {},\n !insightId || !user\n ) as unknown as [{ data: Insight }];\n\n // Use the insight passed in or the insightId\n const insight = useMemo(() => {\n if (!!insightId) return loadedInsight;\n else return insightProp;\n }, [loadedInsight, insightId, insightProp]);\n\n // determine chart component\n const Chart = useMemo(() => {\n if (!insight?.insightInsightType?.properties) return null;\n let properties: InsightTypeProperties;\n if (typeof insight?.insightInsightType?.properties === 'string') {\n properties = JSON.parse(\n insight?.insightInsightType?.properties as unknown as string\n ) as InsightTypeProperties;\n } else {\n properties = insight?.insightInsightType?.properties;\n }\n // @ts-ignore\n return UdpCharts?.[properties?.component];\n }, [insight?.insightInsightType]);\n\n const kpis:\n | { value?: string; label?: string; active?: boolean }[]\n | undefined = useMemo(() => {\n if (insight == null) return undefined;\n return insight?.insightInsightKpi?.map?.((kpi) => {\n const kpiField: { operation?: string; property?: string } =\n typeof kpi.field === 'object' ? kpi.field : JSON.parse(kpi.field);\n console.log(kpiField);\n return {\n label: kpi.label,\n active: kpi.active,\n value: getAggregateValue<string>(\n data,\n `${\n decapitilizeFirstLetter(kpiField.property ?? '') ?? ''\n }${capitilizeFirstLetter(kpiField.operation?.toLowerCase() ?? '')}`\n )\n };\n });\n }, [data, insight?.insightInsightKpi]);\n\n const dataConfig: { [key: string]: any } | null = useMemo(() => {\n if (insight == null) return null;\n const dataMapping: {\n name: string;\n value: { name: string; operation: string | undefined };\n alias?: string;\n }[] =\n typeof insight.dataMapping === 'object'\n ? insight.dataMapping\n : JSON.parse(insight.dataMapping ?? '{}');\n const dataFields: InsightTypeField[] =\n typeof insight.insightInsightType?.dataFields === 'object'\n ? insight.insightInsightType?.dataFields\n : JSON.parse(insight.insightInsightType?.dataFields ?? '{}');\n\n return dataFields?.reduce?.((value: { [key: string]: any }, field) => {\n const fieldValue = dataMapping?.find?.(\n (dm) => dm.name === field.name\n )?.value;\n if (fieldValue?.operation != undefined) {\n value[field.name] =\n decapitilizeFirstLetter(fieldValue?.name) + fieldValue.operation;\n } else {\n // @ts-ignore\n value[field.name] = fieldValue?.alias ?? fieldValue?.name ?? fieldValue;\n }\n\n return value;\n }, {});\n }, [insight?.dataMapping, insight?.insightInsightType]);\n const combinedData = useMemo(() => {\n if (data?.aggregateResults == null || data?.aggregateResults?.length === 0)\n return data?.pageList;\n return data?.pageList.map((page, i) => ({\n ...page,\n ...data?.aggregateResults?.[i]\n }));\n }, [data]);\n if (Chart == null) return null;\n return (\n <Chart\n data={combinedData}\n title={insight?.title}\n subheader={insight?.subheader}\n {...dataConfig}\n kpis={kpis?.filter((kpi) => kpi.active)}\n />\n );\n};\n"],"mappings":";;;;;;;AAkBA,MAAM,yBAAyB,MAC7B,GAAG,SAAS,EAAE,EAAE,eAAe,GAAG,GAAG,QAAQ,EAAE;AACjD,MAAM,2BAA2B,MAC/B,GAAG,SAAS,EAAE,EAAE,eAAe,GAAG,GAAG,QAAQ,EAAE;AAEjD,SAAS,kBAAqB,MAA+B,KAAgB;AAC3E,QAAO,MAAM,mBAAmB,KAAK;;;;;;;;;;;;AAYvC,MAAaA,mBAAmD,UAAgC;CAC9F,MAAM,EAAE,SAAS,aAAa,MAAM,cAAc;CAClD,MAAM,OAAO,SAAS;CACtB,MAAM,CAAC,EAAE,MAAM,mBAAmB,YAChC,cAAc,qBACd,WAAW,UAAU,QACrB,EAAE,EACF,CAAC,aAAa,CAAC,KAChB;CAGD,MAAM,UAAU,cAAc;AAC5B,MAAI,CAAC,CAAC,UAAW,QAAO;MACnB,QAAO;IACX;EAAC;EAAe;EAAW;EAAY,CAAC;CAG3C,MAAM,QAAQ,cAAc;AAC1B,MAAI,CAAC,SAAS,oBAAoB,WAAY,QAAO;EACrD,IAAIC;AACJ,MAAI,OAAO,SAAS,oBAAoB,eAAe,SACrD,cAAa,KAAK,MAChB,SAAS,oBAAoB,WAC9B;MAED,cAAa,SAAS,oBAAoB;AAG5C,SAAOC,mBAAY,YAAY;IAC9B,CAAC,SAAS,mBAAmB,CAAC;CAEjC,MAAMC,OAEU,cAAc;AAC5B,MAAI,WAAW,KAAM,QAAO;AAC5B,SAAO,SAAS,mBAAmB,OAAO,QAAQ;GAChD,MAAMC,WACJ,OAAO,IAAI,UAAU,WAAW,IAAI,QAAQ,KAAK,MAAM,IAAI,MAAM;AACnE,WAAQ,IAAI,SAAS;AACrB,UAAO;IACL,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,OAAO,kBACL,MACA,GACE,wBAAwB,SAAS,YAAY,GAAG,IAAI,KACnD,sBAAsB,SAAS,WAAW,aAAa,IAAI,GAAG,GAClE;IACF;IACD;IACD,CAAC,MAAM,SAAS,kBAAkB,CAAC;CAEtC,MAAMC,aAA4C,cAAc;AAC9D,MAAI,WAAW,KAAM,QAAO;EAC5B,MAAMC,cAKJ,OAAO,QAAQ,gBAAgB,WAC3B,QAAQ,cACR,KAAK,MAAM,QAAQ,eAAe,KAAK;AAM7C,UAJE,OAAO,QAAQ,oBAAoB,eAAe,WAC9C,QAAQ,oBAAoB,aAC5B,KAAK,MAAM,QAAQ,oBAAoB,cAAc,KAAK,GAE7C,UAAU,OAA+B,UAAU;GACpE,MAAM,aAAa,aAAa,QAC7B,OAAO,GAAG,SAAS,MAAM,KAC3B,EAAE;AACH,OAAI,YAAY,aAAa,OAC3B,OAAM,MAAM,QACV,wBAAwB,YAAY,KAAK,GAAG,WAAW;OAGzD,OAAM,MAAM,QAAQ,YAAY,SAAS,YAAY,QAAQ;AAG/D,UAAO;KACN,EAAE,CAAC;IACL,CAAC,SAAS,aAAa,SAAS,mBAAmB,CAAC;CACvD,MAAM,eAAe,cAAc;AACjC,MAAI,MAAM,oBAAoB,QAAQ,MAAM,kBAAkB,WAAW,EACvE,QAAO,MAAM;AACf,SAAO,MAAM,SAAS,KAAK,MAAM,OAAO;GACtC,GAAG;GACH,GAAG,MAAM,mBAAmB;GAC7B,EAAE;IACF,CAAC,KAAK,CAAC;AACV,KAAI,SAAS,KAAM,QAAO;AAC1B,QACE,oCAAC;EACC,MAAM;EACN,OAAO,SAAS;EAChB,WAAW,SAAS;EACpB,GAAI;EACJ,MAAM,MAAM,QAAQ,QAAQ,IAAI,OAAO;GACvC"}
@@ -1,4 +1,4 @@
1
- import { t as __export } from "./chunk-Bp6m_JJh.js";
1
+ import { t as __export } from "./chunk-B4enJp2Q.js";
2
2
  import { t as WidgetCard_default } from "./WidgetCard-CDqYxK5O.js";
3
3
  import { t as convertISODate } from "./ConvertISODate-TfG2U4Iu.js";
4
4
  import { t as FluentStatNumber_default } from "./FluentStatNumber-lMrplG01.js";
@@ -98,4 +98,4 @@ var LineAndSparklinesWidget_exports = /* @__PURE__ */ __export({
98
98
 
99
99
  //#endregion
100
100
  export { LineAndSparklinesWidget_default as n, layout as r, LineAndSparklinesWidget_exports as t };
101
- //# sourceMappingURL=LineAndSparklinesWidget-BIOUv_gL.js.map
101
+ //# sourceMappingURL=LineAndSparklinesWidget-BEWoRerh.js.map