udp-react-enterprise-component-library 25.16.2-beta.2 → 25.16.2-beta.4

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 (392) hide show
  1. package/dist/{ActionLoadingContext-DxqZH8--.js → ActionLoadingContext-DVpCwfbg.js} +1 -1
  2. package/dist/{ActionLoadingContext-DxqZH8--.js.map → ActionLoadingContext-DVpCwfbg.js.map} +1 -1
  3. package/dist/{ActionProvider-BiNM-ubX.js → ActionProvider-BX693NQ_.js} +5 -5
  4. package/dist/{ActionProvider-BiNM-ubX.js.map → ActionProvider-BX693NQ_.js.map} +1 -1
  5. package/dist/{AmbientAutoComplete-09VfbDE4.js → AmbientAutoComplete-J8PArVAs.js} +3 -2
  6. package/dist/AmbientAutoComplete-J8PArVAs.js.map +1 -0
  7. package/dist/{AppMenu-DzMsTuWv.js → AppMenu-CEp4BrdJ.js} +2 -2
  8. package/dist/{AppMenu-DzMsTuWv.js.map → AppMenu-CEp4BrdJ.js.map} +1 -1
  9. package/dist/{BaseTreeMenu-DkcHI-BC.js → BaseTreeMenu-CN_g4GEm.js} +1 -1
  10. package/dist/{BaseTreeMenu-DkcHI-BC.js.map → BaseTreeMenu-CN_g4GEm.js.map} +1 -1
  11. package/dist/{BreadCrumbMenu-BxpMqfvj.js → BreadCrumbMenu-RkiR54r9.js} +1 -1
  12. package/dist/{BreadCrumbMenu-BxpMqfvj.js.map → BreadCrumbMenu-RkiR54r9.js.map} +1 -1
  13. package/dist/{CatalogUtilities-Cm2RALT1.js → CatalogUtilities-CgNFjItY.js} +1 -1
  14. package/dist/{CatalogUtilities-Cm2RALT1.js.map → CatalogUtilities-CgNFjItY.js.map} +1 -1
  15. package/dist/{ChatBotProvider-BE_DhBqN.js → ChatBotProvider-ZTkBY_Lp.js} +1 -1
  16. package/dist/{ChatBotProvider-BE_DhBqN.js.map → ChatBotProvider-ZTkBY_Lp.js.map} +1 -1
  17. package/dist/{CircularProgress-CSGPlrG_.js → CircularProgress-CGB2A7S2.js} +1 -1
  18. package/dist/{CircularProgress-CSGPlrG_.js.map → CircularProgress-CGB2A7S2.js.map} +1 -1
  19. package/dist/{Controls-CHns-SHo.js → Controls-B0ogviQm.js} +2 -2
  20. package/dist/{Controls-CHns-SHo.js.map → Controls-B0ogviQm.js.map} +1 -1
  21. package/dist/{CrudBrowserContainer-BCn9YKhz.js → CrudBrowserContainer-CwD2cxD0.js} +3 -3
  22. package/dist/{CrudBrowserContainer-BCn9YKhz.js.map → CrudBrowserContainer-CwD2cxD0.js.map} +1 -1
  23. package/dist/{CrudForm-Bb9BvEVm.js → CrudForm-CN5vjshw.js} +3 -3
  24. package/dist/{CrudForm-Bb9BvEVm.js.map → CrudForm-CN5vjshw.js.map} +1 -1
  25. package/dist/{CrudTableSidePanel-Cwd9NuYq.js → CrudTableSidePanel-DBg4P_v7.js} +2 -2
  26. package/dist/{CrudTableSidePanel-Cwd9NuYq.js.map → CrudTableSidePanel-DBg4P_v7.js.map} +1 -1
  27. package/dist/{DataBrowserContainer-CwyuvRqK.js → DataBrowserContainer-CMCGX613.js} +3 -3
  28. package/dist/{DataBrowserContainer-CwyuvRqK.js.map → DataBrowserContainer-CMCGX613.js.map} +1 -1
  29. package/dist/{DragDropFileUpload-CVmPVcA5.js → DragDropFileUpload-D1ihiCC2.js} +2 -2
  30. package/dist/{DragDropFileUpload-CVmPVcA5.js.map → DragDropFileUpload-D1ihiCC2.js.map} +1 -1
  31. package/dist/{EmailDisplay-BEV_maxX.js → EmailDisplay-CpnpgDOC.js} +1 -1
  32. package/dist/{EmailDisplay-BEV_maxX.js.map → EmailDisplay-CpnpgDOC.js.map} +1 -1
  33. package/dist/{ExportSidesheet-J4UlfjNv.js → ExportSidesheet-JSM9EoLc.js} +2 -2
  34. package/dist/{ExportSidesheet-J4UlfjNv.js.map → ExportSidesheet-JSM9EoLc.js.map} +1 -1
  35. package/dist/{ExternalRedirectUrlStorage-CpypX4nx.js → ExternalRedirectUrlStorage-Bbj9JzIW.js} +1 -1
  36. package/dist/{ExternalRedirectUrlStorage-CpypX4nx.js.map → ExternalRedirectUrlStorage-Bbj9JzIW.js.map} +1 -1
  37. package/dist/{FUIAppSwitcher-Cjr-UgW4.js → FUIAppSwitcher-u6lx2hy2.js} +3 -3
  38. package/dist/{FUIAppSwitcher-Cjr-UgW4.js.map → FUIAppSwitcher-u6lx2hy2.js.map} +1 -1
  39. package/dist/{FieldArrayCard-L1-QJjiY.js → FieldArrayCard-lEUXQyMD.js} +2 -2
  40. package/dist/{FieldArrayCard-L1-QJjiY.js.map → FieldArrayCard-lEUXQyMD.js.map} +1 -1
  41. package/dist/{FluentInputSlider-GXgusPZa.js → FluentInputSlider-BqI2PdVF.js} +1 -1
  42. package/dist/{FluentInputSlider-GXgusPZa.js.map → FluentInputSlider-BqI2PdVF.js.map} +1 -1
  43. package/dist/{FluentMap-CAhZE-7q.js → FluentMap-BPiZxyEZ.js} +2 -2
  44. package/dist/{FluentMap-CAhZE-7q.js.map → FluentMap-BPiZxyEZ.js.map} +1 -1
  45. package/dist/{FluentProfileMenuCard-CZ00DNnC.js → FluentProfileMenuCard-3lEpSHmy.js} +9 -9
  46. package/dist/{FluentProfileMenuCard-CZ00DNnC.js.map → FluentProfileMenuCard-3lEpSHmy.js.map} +1 -1
  47. package/dist/{FluentSimpleSelect-B3vzgEP5.js → FluentSimpleSelect-I2CtivEs.js} +2 -2
  48. package/dist/{FluentSimpleSelect-B3vzgEP5.js.map → FluentSimpleSelect-I2CtivEs.js.map} +1 -1
  49. package/dist/{FluentTextField-CgQcsDtq.js → FluentTextField-CPpViNni.js} +1 -1
  50. package/dist/{FluentTextField-CgQcsDtq.js.map → FluentTextField-CPpViNni.js.map} +1 -1
  51. package/dist/{GeoLocation-CpjesoCi.js → GeoLocation-BaD7pKM9.js} +2 -2
  52. package/dist/{GeoLocation-CpjesoCi.js.map → GeoLocation-BaD7pKM9.js.map} +1 -1
  53. package/dist/{GeoMap-CW3Pgzvz.js → GeoMap-BZDwrLIm.js} +6 -6
  54. package/dist/{GeoMap-CW3Pgzvz.js.map → GeoMap-BZDwrLIm.js.map} +1 -1
  55. package/dist/{GridRow-CfCj0Upc.js → GridRow-KktUKRX-.js} +1 -1
  56. package/dist/{GridRow-CfCj0Upc.js.map → GridRow-KktUKRX-.js.map} +1 -1
  57. package/dist/{ImportDataFromFileMapping-BG9XyC8n.js → ImportDataFromFileMapping-DRdpqXNn.js} +3 -3
  58. package/dist/{ImportDataFromFileMapping-BG9XyC8n.js.map → ImportDataFromFileMapping-DRdpqXNn.js.map} +1 -1
  59. package/dist/{InquiryHeaderControl-BCiMFs_v.js → InquiryHeaderControl-DClEzP6_.js} +1 -1
  60. package/dist/{InquiryHeaderControl-BCiMFs_v.js.map → InquiryHeaderControl-DClEzP6_.js.map} +1 -1
  61. package/dist/{KeyValueTextField-B2h4ugP1.js → KeyValueTextField-YjvoszxB.js} +2 -2
  62. package/dist/{KeyValueTextField-B2h4ugP1.js.map → KeyValueTextField-YjvoszxB.js.map} +1 -1
  63. package/dist/{LinearProgress-BiBVB7Dw.js → LinearProgress-DvXOb1Ck.js} +1 -1
  64. package/dist/{LinearProgress-BiBVB7Dw.js.map → LinearProgress-DvXOb1Ck.js.map} +1 -1
  65. package/dist/{LoadingOverlay-DMaSZ_lL.js → LoadingOverlay-DC798-1h.js} +1 -1
  66. package/dist/{LoadingOverlay-DMaSZ_lL.js.map → LoadingOverlay-DC798-1h.js.map} +1 -1
  67. package/dist/{LocalRedirectUrlStorage-BY-L7N4U.js → LocalRedirectUrlStorage-CRvlUZw0.js} +1 -1
  68. package/dist/{LocalRedirectUrlStorage-BY-L7N4U.js.map → LocalRedirectUrlStorage-CRvlUZw0.js.map} +1 -1
  69. package/dist/{Map-D2_8ACTx.js → Map-B_ESwi9p.js} +2 -2
  70. package/dist/{Map-D2_8ACTx.js.map → Map-B_ESwi9p.js.map} +1 -1
  71. package/dist/{Map-ChRg-LpE.js → Map-DWXcBhH1.js} +4 -4
  72. package/dist/{Map-ChRg-LpE.js.map → Map-DWXcBhH1.js.map} +1 -1
  73. package/dist/{MapContent-CM4jG7Cx.js → MapContent-CTPX858a.js} +1 -1
  74. package/dist/{MapContent-CM4jG7Cx.js.map → MapContent-CTPX858a.js.map} +1 -1
  75. package/dist/{MapContext-DMHlc2jW.js → MapContext-BmClJmMl.js} +1 -1
  76. package/dist/{MapContext-DMHlc2jW.js.map → MapContext-BmClJmMl.js.map} +1 -1
  77. package/dist/{MapContext-DyuJF6vT.js → MapContext-C0QCTK9-.js} +1 -1
  78. package/dist/{MapContext-DyuJF6vT.js.map → MapContext-C0QCTK9-.js.map} +1 -1
  79. package/dist/{MapControlsStandard-DB_YFXNg.js → MapControlsStandard-CKhBcU2K.js} +2 -2
  80. package/dist/{MapControlsStandard-DB_YFXNg.js.map → MapControlsStandard-CKhBcU2K.js.map} +1 -1
  81. package/dist/{MenuPage-Ci8NbB6g.js → MenuPage-0dfmiHLT.js} +4 -4
  82. package/dist/{MenuPage-CcKJfqJ-.js → MenuPage-BnjXs_I5.js} +3 -3
  83. package/dist/{MenuPage-CcKJfqJ-.js.map → MenuPage-BnjXs_I5.js.map} +1 -1
  84. package/dist/{MyExportsPage-BcWRfSLn.js → MyExportsPage-DoCWrkNv.js} +4 -4
  85. package/dist/{MyExportsPage-CRhaN5IG.js → MyExportsPage-lei8IuBA.js} +3 -3
  86. package/dist/{MyExportsPage-CRhaN5IG.js.map → MyExportsPage-lei8IuBA.js.map} +1 -1
  87. package/dist/{PageActionWrapper-BLi6xXdd.js → PageActionWrapper-CLLGHLUx.js} +2 -2
  88. package/dist/{PageActionWrapper-BLi6xXdd.js.map → PageActionWrapper-CLLGHLUx.js.map} +1 -1
  89. package/dist/{PageLoading-DflvopNL.js → PageLoading-CE6S65Ww.js} +1 -1
  90. package/dist/{PageLoading-DflvopNL.js.map → PageLoading-CE6S65Ww.js.map} +1 -1
  91. package/dist/{PageNotFoundRoute-CZArnjgk.js → PageNotFoundRoute-Cw7o-U9o.js} +2 -2
  92. package/dist/{PageNotFoundRoute-BbN60Viu.js → PageNotFoundRoute-Dzo6_TFT.js} +2 -2
  93. package/dist/{PageNotFoundRoute-BbN60Viu.js.map → PageNotFoundRoute-Dzo6_TFT.js.map} +1 -1
  94. package/dist/{PageSectionSpacer-BrUQDVvj.js → PageSectionSpacer-8DZPMnIx.js} +1 -1
  95. package/dist/{PageSectionSpacer-BrUQDVvj.js.map → PageSectionSpacer-8DZPMnIx.js.map} +1 -1
  96. package/dist/{PageStatus-DBJUjhU1.js → PageStatus-moFTkRZx.js} +1 -1
  97. package/dist/{PageStatus-DBJUjhU1.js.map → PageStatus-moFTkRZx.js.map} +1 -1
  98. package/dist/{PageSubHeaderAction-P5JNbI1r.js → PageSubHeaderAction-PjiQrg61.js} +1 -1
  99. package/dist/{PageSubHeaderAction-P5JNbI1r.js.map → PageSubHeaderAction-PjiQrg61.js.map} +1 -1
  100. package/dist/{PasswordResetRedirect-DPc0VUWd.js → PasswordResetRedirect-CgIwYhcb.js} +2 -2
  101. package/dist/{PasswordResetRedirect-BLo-YFvK.js → PasswordResetRedirect-Cvhj2vjU.js} +2 -2
  102. package/dist/{PasswordResetRedirect-BLo-YFvK.js.map → PasswordResetRedirect-Cvhj2vjU.js.map} +1 -1
  103. package/dist/{PowerBIReport-DoNECBnv.js → PowerBIReport-DWt7IHNZ.js} +3 -3
  104. package/dist/{PowerBIReport-DoNECBnv.js.map → PowerBIReport-DWt7IHNZ.js.map} +1 -1
  105. package/dist/{RejectIcon-C4cwL2EM.js → RejectIcon-IOZLOqY3.js} +1 -1
  106. package/dist/{RejectIcon-C4cwL2EM.js.map → RejectIcon-IOZLOqY3.js.map} +1 -1
  107. package/dist/{SearchMethodUdpGrid-DUklUn5Q.js → SearchMethodUdpGrid-DO52Bj_B.js} +1 -1
  108. package/dist/{SearchMethodUdpGrid-DUklUn5Q.js.map → SearchMethodUdpGrid-DO52Bj_B.js.map} +1 -1
  109. package/dist/{SearchServiceDatasource-CE-VlvY1.js → SearchServiceDatasource-DofS4I45.js} +1 -1
  110. package/dist/{SearchServiceDatasource-CE-VlvY1.js.map → SearchServiceDatasource-DofS4I45.js.map} +1 -1
  111. package/dist/{Shell-B0HzAa4L.js → Shell-Clp49hyi.js} +9 -9
  112. package/dist/{Shell-B0HzAa4L.js.map → Shell-Clp49hyi.js.map} +1 -1
  113. package/dist/{SideBarTemplate-DQnJKwXP.js → SideBarTemplate-DKYcwE38.js} +2 -2
  114. package/dist/{SideBarTemplate-DQnJKwXP.js.map → SideBarTemplate-DKYcwE38.js.map} +1 -1
  115. package/dist/{Source-BOqgbkAn.js → Source-C21-iTa_.js} +1 -1
  116. package/dist/{Source-BOqgbkAn.js.map → Source-C21-iTa_.js.map} +1 -1
  117. package/dist/{SubHeaderAction-DTDxR5S1.js → SubHeaderAction-F_GKrUBX.js} +1 -1
  118. package/dist/{SubHeaderAction-DTDxR5S1.js.map → SubHeaderAction-F_GKrUBX.js.map} +1 -1
  119. package/dist/{SupportCaseSideSheet-D48N1B5u.js → SupportCaseSideSheet-B5a-_ehT.js} +4 -4
  120. package/dist/{SupportCaseSideSheet-D48N1B5u.js.map → SupportCaseSideSheet-B5a-_ehT.js.map} +1 -1
  121. package/dist/{TableContainer-CjJCsvvs.js → TableContainer-CJFW0Teg.js} +2 -2
  122. package/dist/{TableContainer-CjJCsvvs.js.map → TableContainer-CJFW0Teg.js.map} +1 -1
  123. package/dist/{TileDisplay-Btcf3Wrm.js → TileDisplay-DvHKTjpO.js} +2 -2
  124. package/dist/{TileDisplay-Btcf3Wrm.js.map → TileDisplay-DvHKTjpO.js.map} +1 -1
  125. package/dist/{TileLayer-Ckm0zl4x.js → TileLayer-D3RksO00.js} +2 -2
  126. package/dist/{TileLayer-Ckm0zl4x.js.map → TileLayer-D3RksO00.js.map} +1 -1
  127. package/dist/UI/components/dataDisplay/index.js +1 -1
  128. package/dist/UI/components/index.js +1 -1
  129. package/dist/UI/dataDisplay/cardList/index.js +2 -2
  130. package/dist/UI/dataDisplay/index.js +2 -2
  131. package/dist/UI/feedback/index.js +1 -1
  132. package/dist/UI/fileViewer/index.js +2 -2
  133. package/dist/UI/floorplans/index.js +2 -2
  134. package/dist/UI/forms/index.js +6 -6
  135. package/dist/UI/index.js +30 -30
  136. package/dist/UI/inputs/fieldArrayCard/index.js +2 -2
  137. package/dist/UI/inputs/link/index.js +1 -1
  138. package/dist/UI/inputs/menus/index.js +2 -2
  139. package/dist/UI/inputs/sliders/index.js +1 -1
  140. package/dist/UI/inputs/textField/index.js +3 -3
  141. package/dist/UI/loading/index.js +3 -3
  142. package/dist/UI/mapLayout/index.js +4 -4
  143. package/dist/UI/navigation/index.js +2 -2
  144. package/dist/UI/navigation/menus/index.js +2 -2
  145. package/dist/UI/support/index.js +5 -5
  146. package/dist/UI/templates/index.js +5 -5
  147. package/dist/UI/templates/newGrid/index.js +4 -4
  148. package/dist/UI/utilityDisplay/index.js +5 -5
  149. package/dist/{UdpMaintenanceConfigPage-DdfyBkU_.js → UdpMaintenanceConfigPage-BcCKx7BV.js} +3 -3
  150. package/dist/{UdpMaintenanceConfigPage-BcGLnZst.js → UdpMaintenanceConfigPage-O7UcWFPr.js} +3 -3
  151. package/dist/{UdpMaintenanceConfigPage-BcGLnZst.js.map → UdpMaintenanceConfigPage-O7UcWFPr.js.map} +1 -1
  152. package/dist/{UdpMaintenanceEnginePage-BPXeLhFN.js → UdpMaintenanceEnginePage-COO3GwG9.js} +31 -5
  153. package/dist/UdpMaintenanceEnginePage-COO3GwG9.js.map +1 -0
  154. package/dist/UdpMaintenanceEnginePage-pzq1GqGZ.js +131 -0
  155. package/dist/{UdpRoutes-B4nogDAu.js → UdpRoutes-VUrO9k-C.js} +46 -14
  156. package/dist/UdpRoutes-VUrO9k-C.js.map +1 -0
  157. package/dist/{UserFormSideSheet-DpO8GKQO.js → UserFormSideSheet-CpeyFv3r.js} +1 -1
  158. package/dist/{UserFormSideSheet-DpO8GKQO.js.map → UserFormSideSheet-CpeyFv3r.js.map} +1 -1
  159. package/dist/{UtilityBar-XWmjM6xO.js → UtilityBar-CyUTKcIa.js} +3 -3
  160. package/dist/{UtilityBar-XWmjM6xO.js.map → UtilityBar-CyUTKcIa.js.map} +1 -1
  161. package/dist/{UtilityBarInport-Dei5BcYo.js → UtilityBarInport-BK2d93K5.js} +1 -1
  162. package/dist/{UtilityBarInport-Dei5BcYo.js.map → UtilityBarInport-BK2d93K5.js.map} +1 -1
  163. package/dist/{UtilitySideBar-CTYzpnie.js → UtilitySideBar-BTwLKDoy.js} +2 -2
  164. package/dist/{UtilitySideBar-CTYzpnie.js.map → UtilitySideBar-BTwLKDoy.js.map} +1 -1
  165. package/dist/{VectorLayer-lxWaAEEB.js → VectorLayer-DhNuJLQ_.js} +2 -2
  166. package/dist/{VectorLayer-lxWaAEEB.js.map → VectorLayer-DhNuJLQ_.js.map} +1 -1
  167. package/dist/{VirtualBrowser-BcE288WI.js → VirtualBrowser-B9Hi3Ns8.js} +1 -1
  168. package/dist/{VirtualBrowser-MrJ2WyXZ.js → VirtualBrowser-DitDAizB.js} +1 -1
  169. package/dist/{VirtualBrowser-MrJ2WyXZ.js.map → VirtualBrowser-DitDAizB.js.map} +1 -1
  170. package/dist/{WorkflowContainer-6pvb3tjn.js → WorkflowContainer-6vFVCbss.js} +5 -5
  171. package/dist/{WorkflowContainer-6pvb3tjn.js.map → WorkflowContainer-6vFVCbss.js.map} +1 -1
  172. package/dist/{WorkflowContainer-CJ6gQNV-.js → WorkflowContainer-VHsUGDIl.js} +12 -12
  173. package/dist/{WorkflowContent-B4na5XXv.js → WorkflowContent-DN9BPOCP.js} +7 -7
  174. package/dist/{WorkflowContent-B4na5XXv.js.map → WorkflowContent-DN9BPOCP.js.map} +1 -1
  175. package/dist/{WorkflowTaskFlow-Cb1JZOU2.js → WorkflowTaskFlow-B067pxDZ.js} +1 -1
  176. package/dist/{WorkflowTaskFlow-Cb1JZOU2.js.map → WorkflowTaskFlow-B067pxDZ.js.map} +1 -1
  177. package/dist/{WorkflowTreeMenu-CoDNDQxm.js → WorkflowTreeMenu-pXKq9TyH.js} +1 -1
  178. package/dist/{WorkflowTreeMenu-CoDNDQxm.js.map → WorkflowTreeMenu-pXKq9TyH.js.map} +1 -1
  179. package/dist/{ZoomControl-BQ6aV6cO.js → ZoomControl-BTO3raDM.js} +2 -2
  180. package/dist/{ZoomControl-BQ6aV6cO.js.map → ZoomControl-BTO3raDM.js.map} +1 -1
  181. package/dist/actions/index.js +4 -4
  182. package/dist/actions/sidebar/index.js +1 -1
  183. package/dist/actions/utils/index.js +1 -1
  184. package/dist/{cardList-CEQIqKIS.js → cardList-xcTEI1o0.js} +2 -2
  185. package/dist/{cardList-CEQIqKIS.js.map → cardList-xcTEI1o0.js.map} +1 -1
  186. package/dist/componentSystems/multiThreadTimeline/functions/index.js +1 -1
  187. package/dist/componentSystems/multiThreadTimeline/index.js +5 -5
  188. package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +1 -1
  189. package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +1 -1
  190. package/dist/componentSystems/multiThreadTimeline/ui/index.js +2 -2
  191. package/dist/componentSystems/multiThreadTimeline/ui/modified/index.js +1 -1
  192. package/dist/componentSystems/pageRenderer/hocs/index.js +1 -1
  193. package/dist/componentSystems/pageRenderer/hooks/index.js +1 -1
  194. package/dist/componentSystems/pageRenderer/index.js +4 -4
  195. package/dist/componentSystems/pageRenderer/utils/index.js +1 -1
  196. package/dist/componentSystems/pageRenderer/wrappers/index.js +1 -1
  197. package/dist/contexts/index.js +1 -1
  198. package/dist/{RecentlyLoadedNodesTable-DnBy6AEU.js → dashboard-BE80OHJw.js} +15 -3
  199. package/dist/dashboard-BE80OHJw.js.map +1 -0
  200. package/dist/dataBrowser/forms/index.js +1 -1
  201. package/dist/dataBrowser/index.js +7 -7
  202. package/dist/enums/index.js +2 -2
  203. package/dist/{fileViewer-CZYbh-Ns.js → fileViewer-CG0HJ-Ko.js} +2 -2
  204. package/dist/{fileViewer-CZYbh-Ns.js.map → fileViewer-CG0HJ-Ko.js.map} +1 -1
  205. package/dist/{floorplans-t1AcjVJw.js → floorplans-bd5zEyHl.js} +2 -2
  206. package/dist/{floorplans-t1AcjVJw.js.map → floorplans-bd5zEyHl.js.map} +1 -1
  207. package/dist/{formatBytes-BZH6z2HH.js → formatBytes-BXxFuDvk.js} +1 -1
  208. package/dist/{formatBytes-BZH6z2HH.js.map → formatBytes-BXxFuDvk.js.map} +1 -1
  209. package/dist/{forms-DcftP5g4.js → forms-D77JesD_.js} +3 -3
  210. package/dist/{forms-DcftP5g4.js.map → forms-D77JesD_.js.map} +1 -1
  211. package/dist/hooks/index.js +2 -2
  212. package/dist/{hooks-D1nzA6OI.js → hooks-BRJfLTY_.js} +2 -2
  213. package/dist/{hooks-D1nzA6OI.js.map → hooks-BRJfLTY_.js.map} +1 -1
  214. package/dist/index.js +103 -104
  215. package/dist/index.js.map +1 -1
  216. package/dist/inquiry/dashboard/index.js +1 -3
  217. package/dist/inquiry/index.js +22 -53
  218. package/dist/inquiry/inquiryBar/index.js +1 -2
  219. package/dist/inquiry/search/index.js +1 -2
  220. package/dist/{Inquiry-BmG2eye6.js → inquiry-CgxJFvsR.js} +69 -46
  221. package/dist/inquiry-CgxJFvsR.js.map +1 -0
  222. package/dist/{InquiryNodeControls-NSUmP5z6.js → inquiryBar-C2HJJSqs.js} +1 -1
  223. package/dist/inquiryBar-C2HJJSqs.js.map +1 -0
  224. package/dist/layout/index.js +2 -2
  225. package/dist/maintenanceEngine/crudBrowser/index.js +7 -7
  226. package/dist/maintenanceEngine/index.js +12 -12
  227. package/dist/maintenanceEngine/tableBrowser/index.js +3 -3
  228. package/dist/maintenanceEngine/virtualBrowser/index.js +2 -2
  229. package/dist/map-library/Controls/index.js +2 -2
  230. package/dist/map-library/Layers/index.js +2 -2
  231. package/dist/map-library/Map/index.js +5 -5
  232. package/dist/map-library/functions/index.js +1 -1
  233. package/dist/map-library/geoLocation/index.js +2 -2
  234. package/dist/map-library/ui/index.js +2 -2
  235. package/dist/{mapFunctions-Bj-QtX0N.js → mapFunctions-D63LqAPS.js} +1 -1
  236. package/dist/{mapFunctions-Bj-QtX0N.js.map → mapFunctions-D63LqAPS.js.map} +1 -1
  237. package/dist/{mapLayout-C-bB84bX.js → mapLayout-DXSAQKQp.js} +4 -4
  238. package/dist/{mapLayout-C-bB84bX.js.map → mapLayout-DXSAQKQp.js.map} +1 -1
  239. package/dist/maps/index.js +12 -12
  240. package/dist/maps/leafletMaps/index.js +4 -4
  241. package/dist/maps/leafletMaps/ui/index.js +2 -2
  242. package/dist/maps/openLayerMaps/Controls/index.js +2 -2
  243. package/dist/maps/openLayerMaps/Layers/index.js +2 -2
  244. package/dist/maps/openLayerMaps/Map/index.js +2 -2
  245. package/dist/maps/openLayerMaps/Source/index.js +1 -1
  246. package/dist/maps/openLayerMaps/ui/index.js +2 -2
  247. package/dist/menuPage/index.js +4 -4
  248. package/dist/{menuUtilities-8wivnoDW.js → menuUtilities-Cb70He2X.js} +19 -3
  249. package/dist/menuUtilities-Cb70He2X.js.map +1 -0
  250. package/dist/{newGrid-C5cV3hvO.js → newGrid-D9TY42ly.js} +2 -2
  251. package/dist/{newGrid-C5cV3hvO.js.map → newGrid-D9TY42ly.js.map} +1 -1
  252. package/dist/page/index.js +1 -1
  253. package/dist/{redirectToLink-CluBHXV_.js → redirectToLink-DUidqyQh.js} +1 -1
  254. package/dist/{redirectToLink-CluBHXV_.js.map → redirectToLink-DUidqyQh.js.map} +1 -1
  255. package/dist/{redirectToProduct-CajO9PkB.js → redirectToProduct-8RiwlOkw.js} +1 -1
  256. package/dist/{redirectToProduct-CajO9PkB.js.map → redirectToProduct-8RiwlOkw.js.map} +1 -1
  257. package/dist/reports/index.js +3 -3
  258. package/dist/routes/index.js +4 -4
  259. package/dist/{InquirySearchContainer-BJZlyWSv.js → search-CvKz7AKM.js} +1 -1
  260. package/dist/search-CvKz7AKM.js.map +1 -0
  261. package/dist/shell/index.js +34 -34
  262. package/dist/shell/ui/addUser/index.js +2 -2
  263. package/dist/shell/ui/appSwitcher/index.js +4 -4
  264. package/dist/shell/ui/index.js +19 -19
  265. package/dist/stores/index.js +1 -1
  266. package/dist/{tagEnums-K1z2SNKZ.js → tagEnums-BHtWD8NV.js} +1 -1
  267. package/dist/{tagEnums-K1z2SNKZ.js.map → tagEnums-BHtWD8NV.js.map} +1 -1
  268. package/dist/{templates-BQJBVScH.js → templates-BzHuN6Sp.js} +2 -2
  269. package/dist/{templates-BQJBVScH.js.map → templates-BzHuN6Sp.js.map} +1 -1
  270. package/dist/treeMenu/index.js +1 -1
  271. package/dist/types/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts +1 -1
  272. package/dist/types/tsconfig.tsbuildinfo +1 -1
  273. package/dist/types/udp/utilities/useDateStringColumnDef.d.ts +1 -1
  274. package/dist/types/utilities/menus/menuUtilities.d.ts +4 -0
  275. package/dist/udp/export/index.js +6 -6
  276. package/dist/udp/fileImportMapping/index.js +6 -6
  277. package/dist/udp/pages/index.js +58 -44
  278. package/dist/{udpPages-CmWJMQ6t.js → udpPages-Bvmlnzes.js} +12 -12
  279. package/dist/{udpPages-CmWJMQ6t.js.map → udpPages-Bvmlnzes.js.map} +1 -1
  280. package/dist/uploader/index.js +2 -2
  281. package/dist/{useAuthedUser-BRX-xjnS.js → useAuthedUser-CXowatE7.js} +1 -1
  282. package/dist/{useAuthedUser-BRX-xjnS.js.map → useAuthedUser-CXowatE7.js.map} +1 -1
  283. package/dist/{useDefaultFormValues-B55mvF77.js → useDefaultFormValues-DFnzUcHv.js} +1 -1
  284. package/dist/{useDefaultFormValues-B55mvF77.js.map → useDefaultFormValues-DFnzUcHv.js.map} +1 -1
  285. package/dist/{useGravatar-D5PYsAWb.js → useGravatar-CD9SN7Qi.js} +1 -1
  286. package/dist/{useGravatar-D5PYsAWb.js.map → useGravatar-CD9SN7Qi.js.map} +1 -1
  287. package/dist/{useIsUnityAuthenticated-BKhKxtov.js → useIsUnityAuthenticated-BQZPEwr1.js} +1 -1
  288. package/dist/{useIsUnityAuthenticated-BKhKxtov.js.map → useIsUnityAuthenticated-BQZPEwr1.js.map} +1 -1
  289. package/dist/{usePrevious-DcRHSVFh.js → usePrevious-DKfZQsm9.js} +1 -1
  290. package/dist/{usePrevious-DcRHSVFh.js.map → usePrevious-DKfZQsm9.js.map} +1 -1
  291. package/dist/{useSingleLogout-DIeeNNkW.js → useSingleLogout-DZf89uRJ.js} +4 -4
  292. package/dist/{useSingleLogout-DIeeNNkW.js.map → useSingleLogout-DZf89uRJ.js.map} +1 -1
  293. package/dist/{users-Be55HGkm.js → users-DpxNzxRw.js} +1 -1
  294. package/dist/{users-Be55HGkm.js.map → users-DpxNzxRw.js.map} +1 -1
  295. package/dist/utilities/DemoJuly/index.js +2 -2
  296. package/dist/utilities/aggrid/index.js +1 -1
  297. package/dist/utilities/auth/index.js +8 -8
  298. package/dist/utilities/catalog/index.js +2 -2
  299. package/dist/utilities/chatBot/index.js +2 -2
  300. package/dist/utilities/crud/index.js +2 -2
  301. package/dist/utilities/customIcons/index.js +2 -2
  302. package/dist/utilities/entities/index.js +1 -1
  303. package/dist/utilities/floorplanFunctions/index.js +1 -1
  304. package/dist/utilities/iconLibrary/index.js +1 -1
  305. package/dist/utilities/index.js +52 -52
  306. package/dist/utilities/input/index.js +1 -1
  307. package/dist/utilities/maintenanceEngine/index.js +1 -1
  308. package/dist/utilities/menus/index.js +4 -4
  309. package/dist/utilities/page/index.js +2 -2
  310. package/dist/utilities/provider/index.js +6 -6
  311. package/dist/utilities/redirect/index.js +3 -3
  312. package/dist/utilities/rules/index.js +1 -1
  313. package/dist/utilities/search/index.js +1 -1
  314. package/dist/utilities/storage/index.js +1 -1
  315. package/dist/utilities/style/index.js +1 -1
  316. package/dist/utilities/tenant/index.js +1 -1
  317. package/dist/utilities/tree/index.js +1 -1
  318. package/dist/utilities/uploader/index.js +2 -2
  319. package/dist/utilities/utilityBar/index.js +4 -4
  320. package/dist/utilities/workflow/index.js +3 -3
  321. package/dist/workflow/components/index.js +2 -2
  322. package/dist/workflow/index.js +14 -14
  323. package/dist/workflow/menus/index.js +2 -2
  324. package/dist/{workflowEnums-BPeGiQKg.js → workflowEnums-BOQUbwNm.js} +1 -1
  325. package/dist/{workflowEnums-BPeGiQKg.js.map → workflowEnums-BOQUbwNm.js.map} +1 -1
  326. package/dist/{workflowStore-CBcKriB2.js → workflowStore-D-NHniHF.js} +1 -1
  327. package/dist/{workflowStore-CBcKriB2.js.map → workflowStore-D-NHniHF.js.map} +1 -1
  328. package/dist/{workflowUtilities-DMsosjJ_.js → workflowUtilities-xEyO79d5.js} +2 -2
  329. package/dist/{workflowUtilities-DMsosjJ_.js.map → workflowUtilities-xEyO79d5.js.map} +1 -1
  330. package/export-map.json +3 -2
  331. package/package.json +2 -2
  332. package/dist/AmbientAutoComplete-09VfbDE4.js.map +0 -1
  333. package/dist/Inquiry-BmG2eye6.js.map +0 -1
  334. package/dist/InquiryDashboard-EoAeiIWK.js +0 -17
  335. package/dist/InquiryDashboard-EoAeiIWK.js.map +0 -1
  336. package/dist/InquiryNodeControls-NSUmP5z6.js.map +0 -1
  337. package/dist/InquirySearchContainer-BJZlyWSv.js.map +0 -1
  338. package/dist/RecentlyLoadedNodesTable-DnBy6AEU.js.map +0 -1
  339. package/dist/UdpMaintenanceEnginePage-BK9IdWlV.js +0 -59
  340. package/dist/UdpMaintenanceEnginePage-BPXeLhFN.js.map +0 -1
  341. package/dist/UdpRoutes-B4nogDAu.js.map +0 -1
  342. package/dist/inquiry/index.js.map +0 -1
  343. package/dist/menuUtilities-8wivnoDW.js.map +0 -1
  344. package/dist/virtualBrowser-BjGPv8Ks.js +0 -1
  345. package/dist/workflow-B3zdi9Fz.js +0 -1
  346. package/dist/wrappers-CLy_1LEL.js +0 -1
  347. /package/dist/{DemoJuly-46P2EFI7.js → DemoJuly-CIBuhheG.js} +0 -0
  348. /package/dist/{addUser-DdxKkJbW.js → addUser-CXeM67ys.js} +0 -0
  349. /package/dist/{aggrid-TPfO-kkM.js → aggrid-BOGlLEu1.js} +0 -0
  350. /package/dist/{appSwitcher-ERlag4rB.js → appSwitcher-BbbKY0qq.js} +0 -0
  351. /package/dist/{auth-BOzVI3A0.js → auth-BNJpOA6O.js} +0 -0
  352. /package/dist/{catalog-DoJ2_1fY.js → catalog-UNxalJg4.js} +0 -0
  353. /package/dist/{chatBot-flH0_FCC.js → chatBot-rvlTLli1.js} +0 -0
  354. /package/dist/{components-DqInG_Nm.js → components-BlwSZhpD.js} +0 -0
  355. /package/dist/{crud-BCrruPIb.js → crud-CKoJlzZC.js} +0 -0
  356. /package/dist/{crudBrowser-BG7BYo4m.js → crudBrowser-DX85rr54.js} +0 -0
  357. /package/dist/{customIcons-D0bpSyKS.js → customIcons-C708lO6o.js} +0 -0
  358. /package/dist/{dashboard-DfDQY2Uz.js → entities-Ciil7n1F.js} +0 -0
  359. /package/dist/{entities-B32Z17Rb.js → floorplanFunctions-CrklH06W.js} +0 -0
  360. /package/dist/{floorplanFunctions-QEXAOJwy.js → forms-80OJxgty.js} +0 -0
  361. /package/dist/{forms-DJnB4tsd.js → functions-Hd-GdWRI.js} +0 -0
  362. /package/dist/{functions-MWuMR-lY.js → hocs-BBwSfA6i.js} +0 -0
  363. /package/dist/{hocs-1cIHPs7M.js → hooks-BA76hHir.js} +0 -0
  364. /package/dist/{hooks-BJgvHLxQ.js → iconLibrary-CJx5yVFL.js} +0 -0
  365. /package/dist/{iconLibrary-C8sePp_X.js → input-Cjsjq3RH.js} +0 -0
  366. /package/dist/{input-B3JblbZF.js → leafletMaps-Dap7ksrP.js} +0 -0
  367. /package/dist/{inquiryBar-CTeb-8eD.js → maintenanceEngine--CHGMGJK.js} +0 -0
  368. /package/dist/{leafletMaps-DKJcEBvd.js → menus-CORA9-y-.js} +0 -0
  369. /package/dist/{maintenanceEngine-CpZ9tfB0.js → menus-F0wpxN7s.js} +0 -0
  370. /package/dist/{menus-B-Xz-Ggy.js → modified-CBLRolfb.js} +0 -0
  371. /package/dist/{menus-QHvrjl6w.js → mttMainTimeline-DM0dra3i.js} +0 -0
  372. /package/dist/{modified-Bg5LeKdV.js → mttSummary-BpsBHjLu.js} +0 -0
  373. /package/dist/{mttMainTimeline-DgGEegXs.js → page-CTPx1eMF.js} +0 -0
  374. /package/dist/{mttSummary-Dbl2ZLl1.js → provider-YG1Pp4jc.js} +0 -0
  375. /package/dist/{page-BGtqWrDb.js → redirect-DxcAuEfC.js} +0 -0
  376. /package/dist/{provider-D1EvAE26.js → rules-B-ksPdxk.js} +0 -0
  377. /package/dist/{redirect-DEombgSz.js → search-D_aYYsru.js} +0 -0
  378. /package/dist/{rules-Bbd-Yg6p.js → sidebar-CP5i0Zg7.js} +0 -0
  379. /package/dist/{search-D3z7GAO_.js → storage-C7L-23mT.js} +0 -0
  380. /package/dist/{search-YPsWhV_L.js → style-9iKHS-Wi.js} +0 -0
  381. /package/dist/{sidebar-C96Z7xFg.js → tableBrowser-W5DVnX-k.js} +0 -0
  382. /package/dist/{storage-Dxdn7n1x.js → tenant-DalfWrIm.js} +0 -0
  383. /package/dist/{style-C58TNESf.js → tree-TL7VR3tx.js} +0 -0
  384. /package/dist/{tableBrowser-_iJW5ftf.js → ui-HqpIaxXX.js} +0 -0
  385. /package/dist/{tenant-Dv4CtN1T.js → ui-en5KNlmI.js} +0 -0
  386. /package/dist/{tree-BE3grkxa.js → uploader-DcYXiktt.js} +0 -0
  387. /package/dist/{ui-Dk8IEfOq.js → utilityBar-CFHi-LbU.js} +0 -0
  388. /package/dist/{ui-_KR24HU9.js → utils-CCCTU1x9.js} +0 -0
  389. /package/dist/{uploader-CslKfeTU.js → utils-DNdEZ0qE.js} +0 -0
  390. /package/dist/{utilityBar-efXsIsm6.js → virtualBrowser-CCd9f5nk.js} +0 -0
  391. /package/dist/{utils-Ccah2Nvr.js → workflow-CTqF0deg.js} +0 -0
  392. /package/dist/{utils-K0OjqNhn.js → wrappers-DZvJVCmc.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ExportSidesheet-J4UlfjNv.js","names":["entity","searchObject","Typography","LinearProgress"],"sources":["../src/udp/export/useUdpExport.js","../src/udp/export/VisualSearchObject.jsx","../src/udp/export/ExportSidesheet.jsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { executeQueryAdHoc } from '../utilities/methodUtils';\nimport { executeQueryWithParameters } from '../utilities/methodUtils';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\n\nexport const useUdpExport = (apiCatalogId, productId) => {\n const [entity, setEntity] = useState();\n const [searchObject, setSearchObject] = useState();\n const [fileFormat, setFileFormat] = useState('.XLSX');\n const [numRowsToExport, setNumRowsToExport] = useState(null);\n const [validSearch, setValidSearch] = useState(false);\n const [errorList, setErrorList] = useState([]);\n const [activeExportJob, setActiveExportJob] = useState();\n const [exportLoading, setExportLoading] = useState(false);\n const [fileResultData, setFileResultData] = useState();\n\n const { data: selectedEntity, loading: entityLoading } =\n usePromotedMethodEntity(entity, true, apiCatalogId, productId);\n const { data: udpJobEntity } = usePromotedMethodEntity(\n 'udpJob',\n true,\n apiCatalogId,\n productId\n );\n\n const refetchActiveJobData = useCallback(async () => {\n if (udpJobEntity?.unityBaseGetMethod?.apiMethodId) {\n await executeQueryWithParameters(\n {\n data: { id: activeExportJob?.id }\n },\n udpJobEntity?.unityBaseGetMethod?.apiMethodId\n )\n .then((res) => {\n setActiveExportJob(res.data);\n })\n .catch((err) => {\n addErrorIfNotExists(\n 'jobstatus',\n 'Error getting job status ',\n 'error'\n );\n });\n }\n }, [activeExportJob?.id, udpJobEntity?.unityBaseGetMethod?.apiMethodId]);\n\n const refetchfileResultData = useCallback(async () => {\n if (udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId) {\n await executeQueryWithParameters(\n {\n data: { JobId: activeExportJob?.id }\n },\n udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId\n )\n .then((res) => {\n setFileResultData(res.data);\n })\n .catch((err) => {\n addErrorIfNotExists('fileError', 'Error getting file ', 'error');\n });\n }\n }, [\n activeExportJob?.id,\n udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId\n ]);\n\n const clearParameters = useCallback(() => {\n setEntity(null);\n setSearchObject(null);\n setNumRowsToExport(null);\n setActiveExportJob(null);\n setErrorList([]);\n }, []);\n\n const updateExportParameters = useCallback((entity, searchObject) => {\n setEntity(entity);\n setSearchObject(searchObject);\n }, []);\n\n const addErrorIfNotExists = (id, message, severity = 'error') => {\n setErrorList((prev) => {\n const exists = prev.some((error) => error.id === id);\n if (!exists) {\n return [...prev, { id, message, severity }];\n }\n return prev;\n });\n };\n\n const initialSearchWithParams = useCallback(async () => {\n await executeQueryAdHoc(\n {\n data: {\n ...searchObject,\n pageSize: 1\n }\n },\n selectedEntity?.unityBaseSearchMethod?.apiMethodId\n )\n .then((res) => {\n setNumRowsToExport(res?.data?.total);\n })\n .catch((err) => {\n addErrorIfNotExists(\n 'searchObject',\n 'Error fetching row count',\n 'error'\n );\n });\n }, [searchObject, selectedEntity]);\n\n const createExport = useCallback(async () => {\n if (selectedEntity?.unityBaseExportMethod?.apiMethodId) {\n setExportLoading(true);\n await executeQueryWithParameters(\n {\n data: {\n requestBody: {\n debug: true,\n exportAcrossAssociations: false,\n exportOnAllAssociations: false,\n exportSiblings: false,\n search: searchObject\n }\n }\n },\n selectedEntity?.unityBaseExportMethod?.apiMethodId\n )\n .then((res) => {\n setActiveExportJob(res?.data);\n setExportLoading(false);\n })\n .catch((err) => {\n addErrorIfNotExists(\n 'exportRequest',\n 'Error creating the export job',\n 'error'\n );\n setExportLoading(false);\n });\n }\n }, [searchObject, selectedEntity?.unityBaseExportMethod?.apiMethodId]);\n\n useEffect(() => {\n if (!entityLoading) {\n if (selectedEntity?.unityBaseSearchMethod === null) {\n addErrorIfNotExists(\n 'search',\n `${getSanitizedName(entity)}'s search method must be promoted`,\n 'error'\n );\n } else {\n initialSearchWithParams();\n }\n if (selectedEntity?.unityBaseExportMethod === null) {\n addErrorIfNotExists(\n 'export',\n `${getSanitizedName(entity)}'s export method must be promoted`,\n 'error'\n );\n }\n }\n }, [initialSearchWithParams, selectedEntity, entity, entityLoading]);\n\n useEffect(() => {\n if (entity) {\n if (\n udpJobEntity &&\n !udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId\n ) {\n addErrorIfNotExists(\n 'fileResultGet',\n `UdpJob's GetFileResult must be promoted to download the file`,\n 'warning'\n );\n }\n\n if (udpJobEntity && !udpJobEntity?.unityBaseGetMethod?.apiMethodId) {\n addErrorIfNotExists(\n 'fileBaseGet',\n `UdpJob's Get method must be promoted to view job status`,\n 'warning'\n );\n }\n }\n }, [entity, udpJobEntity]);\n\n useEffect(() => {\n let isValid = true;\n errorList?.forEach((item) => {\n if (item.severity === 'error') {\n isValid = false;\n }\n });\n setValidSearch(isValid);\n }, [errorList]);\n\n useEffect(() => {\n if (\n !activeExportJob ||\n activeExportJob?.statusId === 3 ||\n activeExportJob?.statusId === 4\n )\n return;\n\n const intervalId = setInterval(() => {\n refetchActiveJobData();\n }, 5000);\n\n return () => clearInterval(intervalId);\n }, [activeExportJob, refetchActiveJobData]);\n\n useEffect(() => {\n if (activeExportJob?.statusId === 3) {\n refetchfileResultData();\n }\n }, [activeExportJob?.statusId, refetchfileResultData]);\n\n const handleFileDownload = useCallback(() => {\n if (fileResultData?.link) {\n const link = document.createElement('a');\n link.href = fileResultData?.link;\n link.download = '';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }, [fileResultData?.link]);\n\n return {\n updateExportParameters,\n createExport,\n entity,\n searchObject,\n fileFormat,\n numRowsToExport,\n validSearch,\n errorList,\n activeExportJob,\n exportLoading,\n handleFileDownload,\n clearParameters\n };\n};\n","import React, { useMemo } from 'react';\nimport { Box, Chip } from '@material-ui/core';\nimport { StatusChip } from '../../UI/dataDisplay/StatusChip';\n\nexport const VisualSearchObject = ({ searchObject }) => {\n // 1️⃣ Safely default to an empty object if searchObject is null/undefined:\n const safeSO = searchObject || {};\n\n // 2️⃣ Destructure with defaults for each property:\n const {\n filterElements = [],\n filterGroups = [],\n logicalSearchOperator = 1,\n } = safeSO;\n\n const filtersByGroup = useMemo(() => {\n return filterElements.reduce((acc, fe) => {\n const gid = fe.groupId ?? 0;\n (acc[gid] = acc[gid] || []).push(fe);\n return acc;\n }, {});\n }, [filterElements]);\n\n const groupLookup = useMemo(() => {\n const lookup = {};\n filterGroups.forEach(g => {\n lookup[g.groupId] = { ...g, children: [] };\n });\n filterGroups.forEach(g => {\n if (g.parentGroupId && lookup[g.parentGroupId]) {\n lookup[g.parentGroupId].children.push(lookup[g.groupId]);\n }\n });\n return lookup;\n }, [filterGroups]);\n\n const topLevelGroups = useMemo(() => {\n return filterGroups\n .filter(g => !g.parentGroupId)\n .map(g => groupLookup[g.groupId]);\n }, [filterGroups, groupLookup]);\n\n // virtual root\n const rootGroup = {\n groupId: 0,\n logicalSearchOperator,\n children: topLevelGroups,\n };\n\n // 4️⃣ Recursive render\n const OpLabel = { 1: 'AND', 2: 'OR' };\n const renderGroup = (group, level = 0) => (\n <Box\n key={group.groupId}\n border={1}\n borderColor=\"grey.300\"\n borderRadius={4}\n p={1}\n ml={level * 2}\n mb={1}\n bgcolor={level === 0 ? 'grey.100' : 'transparent'}\n >\n <Box mb={1}>\n <StatusChip\n label={OpLabel[group.logicalSearchOperator] || 'AND'}\n status=\"info\"\n size=\"small\"\n />\n </Box>\n <Box display=\"flex\" flexWrap=\"wrap\" mb={group.children.length ? 1 : 0}>\n {(filtersByGroup[group.groupId] || []).map((fe, i) => (\n <Chip\n key={`g${group.groupId}-f${i}`}\n size=\"small\"\n label={`${fe.searchField} ${fe.searchOperator} ${fe.searchValue}`}\n style={{ marginRight: 4, marginBottom: 4 }}\n />\n ))}\n </Box>\n {group.children.map(c => renderGroup(c, level + 1))}\n </Box>\n );\n\n // 5️⃣ Finally, render nothing if truly empty:\n const hasAnything =\n filterElements.length > 0 || filterGroups.length > 0;\n\n if (!hasAnything) return null;\n\n return (\n <Box>\n {renderGroup(rootGroup)}\n </Box>\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { AmbientCard } from '../../UI/surfaces/cards/AmbientCard';\nimport { Typography } from '../../UI/dataDisplay/typography/Typography';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { FluentListItem } from '../../UI/dataDisplay/FluentListItem';\nimport { VisualSearchObject } from './VisualSearchObject';\nimport { AmbientAlert } from '../../UI/feedback/AmbientAlert';\nimport { Skeleton } from '@material-ui/lab';\nimport { StatusChip } from '../../UI/dataDisplay/StatusChip';\nimport { Slide } from '@material-ui/core';\nimport { LinearProgress } from '../../UI/loading/LinearProgress';\nimport { EmptyStateDisplay } from '../../UI/dataDisplay/EmptyStateDisplay';\nimport { StatusCircleCheckmarkIcon } from '@fluentui/react-icons';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { useHistory } from 'react-router-dom';\n\nexport const ExportSidesheet = (props) => {\n const {\n entity,\n numRowsToExport,\n fileFormat,\n searchObject,\n errorList,\n activeExportJob,\n handleFileDownload,\n exportSidesheetOpen,\n handleCloseExportSidesheet,\n createExport,\n exportLoading,\n validSearch\n } = props;\n\n const history = useHistory();\n const [page, setPage] = useState('exportSummary');\n\n useEffect(() => {\n if (activeExportJob?.id) {\n setPage('transition');\n }\n }, [activeExportJob?.id]);\n\n const handleSummaryExited = () => {\n setPage('exportProgress');\n };\n\n const getJobStatus = (value) => {\n if (value === 1) {\n return { status: null, label: 'Pending' };\n } else if (value === 2) {\n return { status: 'info', label: 'Running' };\n } else if (value === 3) {\n return { status: 'success', label: 'Completed' };\n } else if (value === 4) {\n return { status: 'error', label: 'Failed' };\n }\n };\n\n const onCloseSidesheet = () => {\n setPage('exportSummary');\n handleCloseExportSidesheet();\n };\n\n return (\n <SideSheet\n open={exportSidesheetOpen}\n onClose={onCloseSidesheet}\n width={'50%'}\n onSubmit={createExport}\n buttonLabel={'Create Export'}\n buttonTwoLabel='My Exports'\n buttonTwoAction={() => history.push('/myexports')}\n progress={exportLoading}\n buttonOneDisabled={!validSearch || activeExportJob}\n >\n <div>\n {errorList?.map((error) => (\n <AmbientAlert\n alertMessage={error.message}\n showAlert={true}\n alertSeverity={error.severity}\n />\n ))}\n <Slide\n in={page === 'exportSummary'}\n onExited={handleSummaryExited}\n direction='right'\n unmountOnExit\n appear={false}\n >\n <div style={{ display: 'flex', flexDirection: 'column', gap: 10 }}>\n <AmbientCard title='Export Summary' fullWidth removeTopLayoutUnit>\n <Typography>\n You are about to export all records from this table using your\n search criteria.\n </Typography>\n <div style={{ marginTop: 16 }}>\n <FluentListItem\n subject='Table'\n value={getSanitizedName(entity)}\n />\n <FluentListItem\n subject='Number of Rows'\n value={numRowsToExport ?? <Skeleton width={40} height={26} />}\n />\n </div>\n </AmbientCard>\n <AmbientCard title='Applied Filters' fullWidth>\n <VisualSearchObject searchObject={searchObject} />\n </AmbientCard>\n <AmbientCard title='Export Options' fullWidth>\n <FluentListItem subject='File Format' value={fileFormat} />\n </AmbientCard>\n </div>\n </Slide>\n <Slide in={page === 'exportProgress'} direction='left' mountOnEnter>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 10 }}>\n <AmbientCard title={`Job Details`} fullWidth removeTopLayoutUnit>\n <div style={{ marginBottom: 25 }}>\n <Typography>\n Exports are handled in the background. You can safely close\n this window.\n </Typography>\n </div>\n <FluentListItem subject='Job Id' value={activeExportJob?.id} />\n <FluentListItem\n subject='Status'\n value={\n <StatusChip\n status={getJobStatus(activeExportJob?.statusId)?.status}\n label={getJobStatus(activeExportJob?.statusId)?.label}\n />\n }\n />\n </AmbientCard>\n <AmbientCard\n title={`Export ${getJobStatus(activeExportJob?.statusId)?.label}`}\n fullWidth\n removeTopLayoutUnit\n >\n {(activeExportJob?.statusId === 1 ||\n activeExportJob?.statusId === 2) && <LinearProgress />}\n {activeExportJob?.statusId === 3 &&\n (!errorList.some((err) => err?.id === 'fileResultGet') ? (\n <EmptyStateDisplay\n icon={StatusCircleCheckmarkIcon}\n primaryText={'File is ready!'}\n actionLabel='Download'\n action={handleFileDownload && (() => handleFileDownload())}\n />\n ) : (\n <Typography>\n To download the file, please go to the My Exports page.\n </Typography>\n ))}\n </AmbientCard>\n </div>\n </Slide>\n </div>\n </SideSheet>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"ExportSidesheet-JSM9EoLc.js","names":["entity","searchObject","Typography","LinearProgress"],"sources":["../src/udp/export/useUdpExport.js","../src/udp/export/VisualSearchObject.jsx","../src/udp/export/ExportSidesheet.jsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { executeQueryAdHoc } from '../utilities/methodUtils';\nimport { executeQueryWithParameters } from '../utilities/methodUtils';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\n\nexport const useUdpExport = (apiCatalogId, productId) => {\n const [entity, setEntity] = useState();\n const [searchObject, setSearchObject] = useState();\n const [fileFormat, setFileFormat] = useState('.XLSX');\n const [numRowsToExport, setNumRowsToExport] = useState(null);\n const [validSearch, setValidSearch] = useState(false);\n const [errorList, setErrorList] = useState([]);\n const [activeExportJob, setActiveExportJob] = useState();\n const [exportLoading, setExportLoading] = useState(false);\n const [fileResultData, setFileResultData] = useState();\n\n const { data: selectedEntity, loading: entityLoading } =\n usePromotedMethodEntity(entity, true, apiCatalogId, productId);\n const { data: udpJobEntity } = usePromotedMethodEntity(\n 'udpJob',\n true,\n apiCatalogId,\n productId\n );\n\n const refetchActiveJobData = useCallback(async () => {\n if (udpJobEntity?.unityBaseGetMethod?.apiMethodId) {\n await executeQueryWithParameters(\n {\n data: { id: activeExportJob?.id }\n },\n udpJobEntity?.unityBaseGetMethod?.apiMethodId\n )\n .then((res) => {\n setActiveExportJob(res.data);\n })\n .catch((err) => {\n addErrorIfNotExists(\n 'jobstatus',\n 'Error getting job status ',\n 'error'\n );\n });\n }\n }, [activeExportJob?.id, udpJobEntity?.unityBaseGetMethod?.apiMethodId]);\n\n const refetchfileResultData = useCallback(async () => {\n if (udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId) {\n await executeQueryWithParameters(\n {\n data: { JobId: activeExportJob?.id }\n },\n udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId\n )\n .then((res) => {\n setFileResultData(res.data);\n })\n .catch((err) => {\n addErrorIfNotExists('fileError', 'Error getting file ', 'error');\n });\n }\n }, [\n activeExportJob?.id,\n udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId\n ]);\n\n const clearParameters = useCallback(() => {\n setEntity(null);\n setSearchObject(null);\n setNumRowsToExport(null);\n setActiveExportJob(null);\n setErrorList([]);\n }, []);\n\n const updateExportParameters = useCallback((entity, searchObject) => {\n setEntity(entity);\n setSearchObject(searchObject);\n }, []);\n\n const addErrorIfNotExists = (id, message, severity = 'error') => {\n setErrorList((prev) => {\n const exists = prev.some((error) => error.id === id);\n if (!exists) {\n return [...prev, { id, message, severity }];\n }\n return prev;\n });\n };\n\n const initialSearchWithParams = useCallback(async () => {\n await executeQueryAdHoc(\n {\n data: {\n ...searchObject,\n pageSize: 1\n }\n },\n selectedEntity?.unityBaseSearchMethod?.apiMethodId\n )\n .then((res) => {\n setNumRowsToExport(res?.data?.total);\n })\n .catch((err) => {\n addErrorIfNotExists(\n 'searchObject',\n 'Error fetching row count',\n 'error'\n );\n });\n }, [searchObject, selectedEntity]);\n\n const createExport = useCallback(async () => {\n if (selectedEntity?.unityBaseExportMethod?.apiMethodId) {\n setExportLoading(true);\n await executeQueryWithParameters(\n {\n data: {\n requestBody: {\n debug: true,\n exportAcrossAssociations: false,\n exportOnAllAssociations: false,\n exportSiblings: false,\n search: searchObject\n }\n }\n },\n selectedEntity?.unityBaseExportMethod?.apiMethodId\n )\n .then((res) => {\n setActiveExportJob(res?.data);\n setExportLoading(false);\n })\n .catch((err) => {\n addErrorIfNotExists(\n 'exportRequest',\n 'Error creating the export job',\n 'error'\n );\n setExportLoading(false);\n });\n }\n }, [searchObject, selectedEntity?.unityBaseExportMethod?.apiMethodId]);\n\n useEffect(() => {\n if (!entityLoading) {\n if (selectedEntity?.unityBaseSearchMethod === null) {\n addErrorIfNotExists(\n 'search',\n `${getSanitizedName(entity)}'s search method must be promoted`,\n 'error'\n );\n } else {\n initialSearchWithParams();\n }\n if (selectedEntity?.unityBaseExportMethod === null) {\n addErrorIfNotExists(\n 'export',\n `${getSanitizedName(entity)}'s export method must be promoted`,\n 'error'\n );\n }\n }\n }, [initialSearchWithParams, selectedEntity, entity, entityLoading]);\n\n useEffect(() => {\n if (entity) {\n if (\n udpJobEntity &&\n !udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId\n ) {\n addErrorIfNotExists(\n 'fileResultGet',\n `UdpJob's GetFileResult must be promoted to download the file`,\n 'warning'\n );\n }\n\n if (udpJobEntity && !udpJobEntity?.unityBaseGetMethod?.apiMethodId) {\n addErrorIfNotExists(\n 'fileBaseGet',\n `UdpJob's Get method must be promoted to view job status`,\n 'warning'\n );\n }\n }\n }, [entity, udpJobEntity]);\n\n useEffect(() => {\n let isValid = true;\n errorList?.forEach((item) => {\n if (item.severity === 'error') {\n isValid = false;\n }\n });\n setValidSearch(isValid);\n }, [errorList]);\n\n useEffect(() => {\n if (\n !activeExportJob ||\n activeExportJob?.statusId === 3 ||\n activeExportJob?.statusId === 4\n )\n return;\n\n const intervalId = setInterval(() => {\n refetchActiveJobData();\n }, 5000);\n\n return () => clearInterval(intervalId);\n }, [activeExportJob, refetchActiveJobData]);\n\n useEffect(() => {\n if (activeExportJob?.statusId === 3) {\n refetchfileResultData();\n }\n }, [activeExportJob?.statusId, refetchfileResultData]);\n\n const handleFileDownload = useCallback(() => {\n if (fileResultData?.link) {\n const link = document.createElement('a');\n link.href = fileResultData?.link;\n link.download = '';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }, [fileResultData?.link]);\n\n return {\n updateExportParameters,\n createExport,\n entity,\n searchObject,\n fileFormat,\n numRowsToExport,\n validSearch,\n errorList,\n activeExportJob,\n exportLoading,\n handleFileDownload,\n clearParameters\n };\n};\n","import React, { useMemo } from 'react';\nimport { Box, Chip } from '@material-ui/core';\nimport { StatusChip } from '../../UI/dataDisplay/StatusChip';\n\nexport const VisualSearchObject = ({ searchObject }) => {\n // 1️⃣ Safely default to an empty object if searchObject is null/undefined:\n const safeSO = searchObject || {};\n\n // 2️⃣ Destructure with defaults for each property:\n const {\n filterElements = [],\n filterGroups = [],\n logicalSearchOperator = 1,\n } = safeSO;\n\n const filtersByGroup = useMemo(() => {\n return filterElements.reduce((acc, fe) => {\n const gid = fe.groupId ?? 0;\n (acc[gid] = acc[gid] || []).push(fe);\n return acc;\n }, {});\n }, [filterElements]);\n\n const groupLookup = useMemo(() => {\n const lookup = {};\n filterGroups.forEach(g => {\n lookup[g.groupId] = { ...g, children: [] };\n });\n filterGroups.forEach(g => {\n if (g.parentGroupId && lookup[g.parentGroupId]) {\n lookup[g.parentGroupId].children.push(lookup[g.groupId]);\n }\n });\n return lookup;\n }, [filterGroups]);\n\n const topLevelGroups = useMemo(() => {\n return filterGroups\n .filter(g => !g.parentGroupId)\n .map(g => groupLookup[g.groupId]);\n }, [filterGroups, groupLookup]);\n\n // virtual root\n const rootGroup = {\n groupId: 0,\n logicalSearchOperator,\n children: topLevelGroups,\n };\n\n // 4️⃣ Recursive render\n const OpLabel = { 1: 'AND', 2: 'OR' };\n const renderGroup = (group, level = 0) => (\n <Box\n key={group.groupId}\n border={1}\n borderColor=\"grey.300\"\n borderRadius={4}\n p={1}\n ml={level * 2}\n mb={1}\n bgcolor={level === 0 ? 'grey.100' : 'transparent'}\n >\n <Box mb={1}>\n <StatusChip\n label={OpLabel[group.logicalSearchOperator] || 'AND'}\n status=\"info\"\n size=\"small\"\n />\n </Box>\n <Box display=\"flex\" flexWrap=\"wrap\" mb={group.children.length ? 1 : 0}>\n {(filtersByGroup[group.groupId] || []).map((fe, i) => (\n <Chip\n key={`g${group.groupId}-f${i}`}\n size=\"small\"\n label={`${fe.searchField} ${fe.searchOperator} ${fe.searchValue}`}\n style={{ marginRight: 4, marginBottom: 4 }}\n />\n ))}\n </Box>\n {group.children.map(c => renderGroup(c, level + 1))}\n </Box>\n );\n\n // 5️⃣ Finally, render nothing if truly empty:\n const hasAnything =\n filterElements.length > 0 || filterGroups.length > 0;\n\n if (!hasAnything) return null;\n\n return (\n <Box>\n {renderGroup(rootGroup)}\n </Box>\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { AmbientCard } from '../../UI/surfaces/cards/AmbientCard';\nimport { Typography } from '../../UI/dataDisplay/typography/Typography';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { FluentListItem } from '../../UI/dataDisplay/FluentListItem';\nimport { VisualSearchObject } from './VisualSearchObject';\nimport { AmbientAlert } from '../../UI/feedback/AmbientAlert';\nimport { Skeleton } from '@material-ui/lab';\nimport { StatusChip } from '../../UI/dataDisplay/StatusChip';\nimport { Slide } from '@material-ui/core';\nimport { LinearProgress } from '../../UI/loading/LinearProgress';\nimport { EmptyStateDisplay } from '../../UI/dataDisplay/EmptyStateDisplay';\nimport { StatusCircleCheckmarkIcon } from '@fluentui/react-icons';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { useHistory } from 'react-router-dom';\n\nexport const ExportSidesheet = (props) => {\n const {\n entity,\n numRowsToExport,\n fileFormat,\n searchObject,\n errorList,\n activeExportJob,\n handleFileDownload,\n exportSidesheetOpen,\n handleCloseExportSidesheet,\n createExport,\n exportLoading,\n validSearch\n } = props;\n\n const history = useHistory();\n const [page, setPage] = useState('exportSummary');\n\n useEffect(() => {\n if (activeExportJob?.id) {\n setPage('transition');\n }\n }, [activeExportJob?.id]);\n\n const handleSummaryExited = () => {\n setPage('exportProgress');\n };\n\n const getJobStatus = (value) => {\n if (value === 1) {\n return { status: null, label: 'Pending' };\n } else if (value === 2) {\n return { status: 'info', label: 'Running' };\n } else if (value === 3) {\n return { status: 'success', label: 'Completed' };\n } else if (value === 4) {\n return { status: 'error', label: 'Failed' };\n }\n };\n\n const onCloseSidesheet = () => {\n setPage('exportSummary');\n handleCloseExportSidesheet();\n };\n\n return (\n <SideSheet\n open={exportSidesheetOpen}\n onClose={onCloseSidesheet}\n width={'50%'}\n onSubmit={createExport}\n buttonLabel={'Create Export'}\n buttonTwoLabel='My Exports'\n buttonTwoAction={() => history.push('/myexports')}\n progress={exportLoading}\n buttonOneDisabled={!validSearch || activeExportJob}\n >\n <div>\n {errorList?.map((error) => (\n <AmbientAlert\n alertMessage={error.message}\n showAlert={true}\n alertSeverity={error.severity}\n />\n ))}\n <Slide\n in={page === 'exportSummary'}\n onExited={handleSummaryExited}\n direction='right'\n unmountOnExit\n appear={false}\n >\n <div style={{ display: 'flex', flexDirection: 'column', gap: 10 }}>\n <AmbientCard title='Export Summary' fullWidth removeTopLayoutUnit>\n <Typography>\n You are about to export all records from this table using your\n search criteria.\n </Typography>\n <div style={{ marginTop: 16 }}>\n <FluentListItem\n subject='Table'\n value={getSanitizedName(entity)}\n />\n <FluentListItem\n subject='Number of Rows'\n value={numRowsToExport ?? <Skeleton width={40} height={26} />}\n />\n </div>\n </AmbientCard>\n <AmbientCard title='Applied Filters' fullWidth>\n <VisualSearchObject searchObject={searchObject} />\n </AmbientCard>\n <AmbientCard title='Export Options' fullWidth>\n <FluentListItem subject='File Format' value={fileFormat} />\n </AmbientCard>\n </div>\n </Slide>\n <Slide in={page === 'exportProgress'} direction='left' mountOnEnter>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 10 }}>\n <AmbientCard title={`Job Details`} fullWidth removeTopLayoutUnit>\n <div style={{ marginBottom: 25 }}>\n <Typography>\n Exports are handled in the background. You can safely close\n this window.\n </Typography>\n </div>\n <FluentListItem subject='Job Id' value={activeExportJob?.id} />\n <FluentListItem\n subject='Status'\n value={\n <StatusChip\n status={getJobStatus(activeExportJob?.statusId)?.status}\n label={getJobStatus(activeExportJob?.statusId)?.label}\n />\n }\n />\n </AmbientCard>\n <AmbientCard\n title={`Export ${getJobStatus(activeExportJob?.statusId)?.label}`}\n fullWidth\n removeTopLayoutUnit\n >\n {(activeExportJob?.statusId === 1 ||\n activeExportJob?.statusId === 2) && <LinearProgress />}\n {activeExportJob?.statusId === 3 &&\n (!errorList.some((err) => err?.id === 'fileResultGet') ? (\n <EmptyStateDisplay\n icon={StatusCircleCheckmarkIcon}\n primaryText={'File is ready!'}\n actionLabel='Download'\n action={handleFileDownload && (() => handleFileDownload())}\n />\n ) : (\n <Typography>\n To download the file, please go to the My Exports page.\n </Typography>\n ))}\n </AmbientCard>\n </div>\n </Slide>\n </div>\n </SideSheet>\n );\n};\n"],"mappings":"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"}
@@ -12,4 +12,4 @@ const clearStoredExternalPath = () => {
12
12
 
13
13
  //#endregion
14
14
  export { getStoredExternalPath as n, storeExternalPath as r, clearStoredExternalPath as t };
15
- //# sourceMappingURL=ExternalRedirectUrlStorage-CpypX4nx.js.map
15
+ //# sourceMappingURL=ExternalRedirectUrlStorage-Bbj9JzIW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalRedirectUrlStorage-CpypX4nx.js","names":[],"sources":["../src/utilities/redirect/ExternalRedirectUrlStorage.js"],"sourcesContent":["const SessionStorageKey = 'external-url';\n\nexport const storeExternalPath = url => {\n window.sessionStorage.setItem(SessionStorageKey, url);\n};\n\nexport const getStoredExternalPath = () => {\n return window.sessionStorage.getItem(SessionStorageKey);\n};\n\nexport const clearStoredExternalPath = () => {\n window.sessionStorage.removeItem(SessionStorageKey);\n};\n"],"mappings":";AAAA,MAAM,oBAAoB;AAE1B,MAAa,qBAAoB,QAAO;AACtC,QAAO,eAAe,QAAQ,mBAAmB,IAAI;;AAGvD,MAAa,8BAA8B;AACzC,QAAO,OAAO,eAAe,QAAQ,kBAAkB;;AAGzD,MAAa,gCAAgC;AAC3C,QAAO,eAAe,WAAW,kBAAkB"}
1
+ {"version":3,"file":"ExternalRedirectUrlStorage-Bbj9JzIW.js","names":[],"sources":["../src/utilities/redirect/ExternalRedirectUrlStorage.js"],"sourcesContent":["const SessionStorageKey = 'external-url';\n\nexport const storeExternalPath = url => {\n window.sessionStorage.setItem(SessionStorageKey, url);\n};\n\nexport const getStoredExternalPath = () => {\n return window.sessionStorage.getItem(SessionStorageKey);\n};\n\nexport const clearStoredExternalPath = () => {\n window.sessionStorage.removeItem(SessionStorageKey);\n};\n"],"mappings":";AAAA,MAAM,oBAAoB;AAE1B,MAAa,qBAAoB,QAAO;AACtC,QAAO,eAAe,QAAQ,mBAAmB,IAAI;;AAGvD,MAAa,8BAA8B;AACzC,QAAO,OAAO,eAAe,QAAQ,kBAAkB;;AAGzD,MAAa,gCAAgC;AAC3C,QAAO,eAAe,WAAW,kBAAkB"}
@@ -1,8 +1,8 @@
1
1
  import { t as FluentButton } from "./FluentButton-3xMbN_Vs.js";
2
2
  import { t as useUser } from "./useUser--tP6DN4i.js";
3
3
  import { t as FluentIcon } from "./FluentIcon-iRSVzrph.js";
4
- import { t as redirectToLinkOnClick } from "./redirectToLink-CluBHXV_.js";
5
- import { t as redirectToProductOnClick } from "./redirectToProduct-CajO9PkB.js";
4
+ import { t as redirectToLinkOnClick } from "./redirectToLink-DUidqyQh.js";
5
+ import { t as redirectToProductOnClick } from "./redirectToProduct-8RiwlOkw.js";
6
6
  import React, { Fragment, useState } from "react";
7
7
  import { AppBar, ButtonBase, Divider, IconButton, Toolbar, Typography, makeStyles, useTheme } from "@material-ui/core";
8
8
  import { ConfigService } from "udp-react-stencil-component-library";
@@ -357,4 +357,4 @@ var FUIAppSwitcher_default = FUIAppSwitcher;
357
357
 
358
358
  //#endregion
359
359
  export { FUIAppSwitcher_default as t };
360
- //# sourceMappingURL=FUIAppSwitcher-Cjr-UgW4.js.map
360
+ //# sourceMappingURL=FUIAppSwitcher-u6lx2hy2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FUIAppSwitcher-Cjr-UgW4.js","names":["useStyles","useStyles","Link","useStyles","FUIAppListItem","useStyles","useStyles","useStyles","props","apps","ProductAppListItem","FUIAppHeader","UnityApps","ProductAppList","FUIAppList"],"sources":["../src/shell/ui/appSwitcher/FUIAppHeader.jsx","../src/shell/ui/appSwitcher/FUIAppListItem.jsx","../src/shell/ui/appSwitcher/FUIAppList.jsx","../src/shell/ui/appSwitcher/UnityApps.jsx","../src/shell/ui/appSwitcher/ProductAppListItem.jsx","../src/shell/ui/appSwitcher/ProductAppList.jsx","../src/shell/ui/appSwitcher/FUIAppSwitcher.jsx"],"sourcesContent":["import React from 'react';\nimport {\n makeStyles,\n Typography,\n IconButton,\n AppBar,\n Toolbar\n} from '@material-ui/core';\nimport { WaffleIcon, ForwardIcon } from '@fluentui/react-icons';\nimport { FluentIcon } from '../../../utilities/iconLibrary/FluentIcon';\nimport { FluentButton } from '../../../UI/inputs/buttons/FluentButton';\nimport { useTranslation } from 'react-i18next';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useStyles = makeStyles((theme) => ({\n main: {\n flexGrow: 1,\n padding: '0 24px',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n secondary: {},\n appIcon: {\n width: 24,\n height: 24,\n color: theme.palette.text.primary\n },\n appLink: {\n display: 'flex',\n flexDirection: 'row'\n },\n arrow: {},\n arrowIcon: {\n width: 12,\n height: 12\n },\n linkTitle: {\n marginRight: theme.spacing(1)\n },\n toolbar: {\n padding: 0,\n minHeight: theme.spacing(6)\n }\n}));\n\nconst FUIAppHeader = (props) => {\n const classes = useStyles();\n const { onClose, unityUrl } = props;\n const { t, i18n } = useTranslation();\n const user = useUser();\n\n const openInNewTab = (url) => {\n const newWindow = window.open(\n url + `?tenantId=${user.currentTenantId}`,\n '_blank',\n 'noopener,noreferrer'\n );\n if (newWindow) newWindow.opener = null;\n };\n return (\n <AppBar elevation={0} color='transparent' position='static'>\n <Toolbar className={classes.toolbar}>\n <div className={classes.main}>\n <IconButton\n className={classes.menuButton}\n edge='start'\n onClick={onClose}\n >\n <FluentIcon component={WaffleIcon} className={classes.appIcon} />\n </IconButton>\n {ConfigService.config.UNITY_PRODUCT_ID != 1 && (\n <FluentButton\n className={classes.appLink}\n onClick={() => openInNewTab(unityUrl)}\n >\n <div className={classes.linkTitle}>\n <Typography className={classes.secondary} variant='body1'>\n {t('Back to Unity')}\n </Typography>\n </div>\n\n <div className={classes.arrow}>\n <FluentIcon\n component={ForwardIcon}\n className={classes.arrowIcon}\n />\n </div>\n </FluentButton>\n )}\n </div>\n </Toolbar>\n </AppBar>\n );\n};\nexport default FUIAppHeader;\n","import React, { useState } from 'react'\nimport { makeStyles, Typography, ButtonBase } from '@material-ui/core'\nimport { FluentIcon } from '../../../utilities/iconLibrary/FluentIcon'\nimport { Link } from 'react-router-dom'\nimport { redirectToProductOnClick } from '../../../utilities/DemoJuly/redirectToProduct' // TODO for demo purposes\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'row',\n marginTop: theme.spacing(3),\n marginRight: theme.spacing(6),\n width: 110,\n alignItems: 'center'\n },\n iconStyle: {\n backgroundColor: (props) => props.verticalColor,\n color: theme.palette.getContrastText(theme.palette.secondary.dark),\n width: 40,\n height: 40,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n },\n iconContainer: {\n marginRight: theme.spacing(1)\n },\n imageIcon: {\n width: 28,\n height: 28\n },\n label: {\n marginTop: theme.spacing(0.5)\n },\n images: {\n width: theme.spacing(6),\n height: theme.spacing(6)\n }\n}))\n\nconst FUIAppListItem = (props) => {\n const classes = useStyles()\n const { iconStyle } = useStyles(props)\n const {\n icon,\n label,\n color,\n redirectInfo,\n link,\n image,\n params,\n closeSwitcher,\n user\n } = props\n const [open, setOpen] = useState(false)\n\n const handleClick = () => {\n if (redirectInfo) {\n redirectToProductOnClick(redirectInfo, user.currentTenantId) // TODO for demo purposes\n } else {\n closeSwitcher()\n }\n setOpen(!open)\n }\n\n const iconButton =\n !!icon || !!image ? (\n redirectInfo ? (\n <ButtonBase onClick={handleClick}>\n {image ? (\n <img src={image} alt={label} className={classes.images} />\n ) : (\n <div className={`${iconStyle}`}>\n <FluentIcon\n component={icon}\n style={{ color: `${color ? color : ''}` }}\n />\n </div>\n )}\n </ButtonBase>\n ) : (\n <ButtonBase\n component={Link}\n to={{\n pathname: link,\n state: params\n }}\n onClick={handleClick}\n >\n {image ? (\n <img src={image} alt={label} className={classes.images} />\n ) : (\n <div className={`${iconStyle}`}>\n <FluentIcon\n component={icon}\n style={{ color: `${color ? color : ''}` }}\n />\n </div>\n )}\n </ButtonBase>\n )\n ) : null\n\n return (\n <div className={classes.root}>\n <div className={classes.iconContainer}>{iconButton}</div>\n <div>\n <Typography variant='caption' className={classes.label}>\n {label}\n </Typography>\n </div>\n </div>\n )\n}\nexport default FUIAppListItem\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core'\nimport FUIAppListItem from './FUIAppListItem'\n\nconst useStyles = makeStyles(\n {\n root: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n maxWidth: 500\n }\n },\n { name: 'FUIAppList' }\n)\n\nconst FUIAppList = (props) => {\n const { apps, verticalColor, closeSwitcher, user } = props\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n {apps.map((item) => {\n return (\n <FUIAppListItem\n key={item.label}\n verticalColor={verticalColor}\n closeSwitcher={closeSwitcher}\n user={user}\n {...item}\n />\n )\n })}\n </div>\n )\n}\nexport default FUIAppList\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n firstStyle: {\n backgroundColor: (props) => props.backgroundColor,\n padding: theme.spacing(2),\n marginTop: 24\n },\n secondStyle: {\n // color: props => props.color,\n color: 'black'\n }\n}));\n\nconst UnityApps = (props) => {\n const { firstStyle, secondStyle } = useStyles(props);\n const { children } = props;\n return (\n <div>\n <div className={`${firstStyle} ${secondStyle}`}>{children}</div>\n </div>\n );\n};\nexport default UnityApps;\n","import React, { useState } from 'react';\nimport { makeStyles, IconButton } from '@material-ui/core';\nimport { redirectToLinkOnClick } from '../../../utilities/menus/redirectToLink';\nimport { FluentIcon } from '../../../utilities/iconLibrary/FluentIcon';\n\nconst useStyles = makeStyles((theme) => ({\n icons: {\n color: (props) => props.color\n },\n buttonGroup: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '16px !important',\n width: 190\n },\n label: {\n paddingLeft: theme.spacing(3)\n },\n images: {\n width: theme.spacing(3),\n height: theme.spacing(3),\n cursor: 'pointer',\n color: 'lightslategray'\n }\n}));\n\nconst ProductAppListItem = (props) => {\n const classes = useStyles(props);\n const { label, redirectInfo, image, icon, getAccessToken, user } = props;\n const [open, setOpen] = useState(false);\n\n const handleClick = () => {\n redirectToLinkOnClick(redirectInfo, getAccessToken, user);\n setOpen(!open);\n };\n\n return image ? (\n <div className={classes.buttonGroup}>\n <IconButton className={classes.icons} onClick={handleClick}>\n <img src={image} alt={label} className={classes.images} />\n </IconButton>\n <div className={classes.label}>{label}</div>\n </div>\n ) : (\n <div className={classes.buttonGroup}>\n {icon && (\n <FluentIcon\n component={icon}\n className={classes.images}\n onClick={handleClick}\n />\n )}\n <div className={classes.label}>{label}</div>\n </div>\n );\n};\nexport default ProductAppListItem;\n","import React from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport Arrow from '@material-ui/icons/esm/ArrowForward';\nimport ProductAppListItem from './ProductAppListItem';\nimport { useTranslation } from 'react-i18next';\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n '& > *': {\n margin: theme.spacing(0.5)\n },\n display: 'flex',\n flexWrap: 'wrap'\n },\n icons: {\n color: (props) => props.color\n },\n buttonGroup: {\n display: 'flex',\n marginRight: theme.spacing(3),\n width: 170\n },\n label: {\n color: theme.palette.getContrastText(theme.palette.secondary.light),\n marginTop: theme.spacing(2)\n },\n title: {\n color: theme.palette.getContrastText(theme.palette.secondary.light),\n minWidth: 320\n },\n\n moreAppContainer: {\n width: '100%'\n },\n moreApps: {\n color: theme.palette.getContrastText(theme.palette.secondary.light),\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end'\n },\n arrow: {\n size: 18,\n marginLeft: theme.spacing(1)\n }\n}));\n\nconst ProductAppList = (props) => {\n const classes = useStyles(props);\n const { apps, user } = props;\n const { t, i18n } = useTranslation();\n\n const AppGroup = (props) => {\n const { title, apps } = props;\n return (\n <div className={classes.root}>\n <Typography variant='h6' className={classes.title}>\n {t(title)}\n </Typography>\n {apps}\n {/* <div className={classes.moreAppContainer}>\n <div className={classes.moreApps}>\n <div>\n <Typography variant=\"caption\">All Apps</Typography>\n </div>\n <div className={classes.arrow}>\n <Arrow />\n </div>\n </div>\n </div> */}\n </div>\n );\n };\n\n return (\n <div>\n <AppGroup\n apps={apps.map((item) => {\n return (\n <ProductAppListItem\n key={item.id}\n label={t(item.label)}\n redirectInfo={item.redirectInfo}\n image={item.image}\n icon={item.icon}\n user={user}\n getAccessToken={item.getAccessToken}\n />\n );\n })}\n />\n </div>\n );\n};\nexport default ProductAppList;\n","import React, { Fragment } from 'react';\nimport { makeStyles, Typography, Divider, useTheme } from '@material-ui/core';\nimport FUIAppHeader from './FUIAppHeader';\nimport FUIAppList from './FUIAppList';\nimport UnityApps from './UnityApps';\nimport ProductAppList from './ProductAppList';\nimport { useTranslation } from 'react-i18next';\n\n\nconst useStyles = makeStyles((theme) => ({\n // root: { width: 540 },\n card: { marginRight: theme.spacing(1.5), marginBottom: theme.spacing(1.5) },\n content: {\n padding: theme.spacing(2)\n },\n appList: {\n marginTop: theme.spacing(1)\n },\n list: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap'\n },\n divider: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n },\n unityBuilders: {\n // width: 300,\n },\n title: {\n marginTop: theme.spacing(2)\n },\n column: {\n display: 'flex',\n flexDirection: 'row'\n },\n favorite: {\n display: 'flex',\n flexDirection: 'row',\n marginTop: theme.spacing(-1)\n }\n}));\n\nconst FUIAppSwitcher = (props) => {\n const { onClose, favoriteMenu, builderMenu, appMenu, unityUrl, user, header } = props;\n const classes = useStyles(props);\n const theme = useTheme();\n const appHintColor = theme.palette.primary.light;\n const appColor = theme.palette.primary.main;\n const { t, i18n } = useTranslation();\n return (\n <div className={classes.root}>\n <FUIAppHeader onClose={onClose} unityUrl={unityUrl} user={user} />\n <div className={classes.content}>\n <div className={classes.column}>\n <div className={classes.right}>\n <div className={classes.appList}>\n {header}\n {appMenu?.length ? (\n <>\n <Typography variant='h6' className={classes.title}>\n {t('Unity Apps')}\n </Typography>\n <UnityApps\n backgroundColor={appHintColor}\n children={\n <ProductAppList\n apps={appMenu}\n color={appColor}\n user={user}\n />\n }\n />\n <Divider className={classes.divider} />\n </>\n ) : null}\n {builderMenu?.length ? (\n <>\n <Typography variant='h6' className={classes.title}>\n {t('Unity Builders')}\n </Typography>\n <div className={classes.unityBuilders}>\n <FUIAppList\n apps={builderMenu}\n verticalColor={appColor}\n closeSwitcher={onClose}\n user={user}\n />\n </div>\n <Divider className={classes.divider} />{' '}\n </>\n ) : null}\n {favoriteMenu?.length ? (\n <>\n <Typography variant='h6' className={classes.title}>\n {t('Favorites')}\n </Typography>\n <div className={classes.favorite}>\n <FUIAppList\n apps={favoriteMenu}\n verticalColor={appColor}\n closeSwitcher={onClose}\n user={user}\n />\n </div>\n </>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n};\nexport default FUIAppSwitcher;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FUIAppSwitcher-u6lx2hy2.js","names":["useStyles","useStyles","Link","useStyles","FUIAppListItem","useStyles","useStyles","useStyles","props","apps","ProductAppListItem","FUIAppHeader","UnityApps","ProductAppList","FUIAppList"],"sources":["../src/shell/ui/appSwitcher/FUIAppHeader.jsx","../src/shell/ui/appSwitcher/FUIAppListItem.jsx","../src/shell/ui/appSwitcher/FUIAppList.jsx","../src/shell/ui/appSwitcher/UnityApps.jsx","../src/shell/ui/appSwitcher/ProductAppListItem.jsx","../src/shell/ui/appSwitcher/ProductAppList.jsx","../src/shell/ui/appSwitcher/FUIAppSwitcher.jsx"],"sourcesContent":["import React from 'react';\nimport {\n makeStyles,\n Typography,\n IconButton,\n AppBar,\n Toolbar\n} from '@material-ui/core';\nimport { WaffleIcon, ForwardIcon } from '@fluentui/react-icons';\nimport { FluentIcon } from '../../../utilities/iconLibrary/FluentIcon';\nimport { FluentButton } from '../../../UI/inputs/buttons/FluentButton';\nimport { useTranslation } from 'react-i18next';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useStyles = makeStyles((theme) => ({\n main: {\n flexGrow: 1,\n padding: '0 24px',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n secondary: {},\n appIcon: {\n width: 24,\n height: 24,\n color: theme.palette.text.primary\n },\n appLink: {\n display: 'flex',\n flexDirection: 'row'\n },\n arrow: {},\n arrowIcon: {\n width: 12,\n height: 12\n },\n linkTitle: {\n marginRight: theme.spacing(1)\n },\n toolbar: {\n padding: 0,\n minHeight: theme.spacing(6)\n }\n}));\n\nconst FUIAppHeader = (props) => {\n const classes = useStyles();\n const { onClose, unityUrl } = props;\n const { t, i18n } = useTranslation();\n const user = useUser();\n\n const openInNewTab = (url) => {\n const newWindow = window.open(\n url + `?tenantId=${user.currentTenantId}`,\n '_blank',\n 'noopener,noreferrer'\n );\n if (newWindow) newWindow.opener = null;\n };\n return (\n <AppBar elevation={0} color='transparent' position='static'>\n <Toolbar className={classes.toolbar}>\n <div className={classes.main}>\n <IconButton\n className={classes.menuButton}\n edge='start'\n onClick={onClose}\n >\n <FluentIcon component={WaffleIcon} className={classes.appIcon} />\n </IconButton>\n {ConfigService.config.UNITY_PRODUCT_ID != 1 && (\n <FluentButton\n className={classes.appLink}\n onClick={() => openInNewTab(unityUrl)}\n >\n <div className={classes.linkTitle}>\n <Typography className={classes.secondary} variant='body1'>\n {t('Back to Unity')}\n </Typography>\n </div>\n\n <div className={classes.arrow}>\n <FluentIcon\n component={ForwardIcon}\n className={classes.arrowIcon}\n />\n </div>\n </FluentButton>\n )}\n </div>\n </Toolbar>\n </AppBar>\n );\n};\nexport default FUIAppHeader;\n","import React, { useState } from 'react'\nimport { makeStyles, Typography, ButtonBase } from '@material-ui/core'\nimport { FluentIcon } from '../../../utilities/iconLibrary/FluentIcon'\nimport { Link } from 'react-router-dom'\nimport { redirectToProductOnClick } from '../../../utilities/DemoJuly/redirectToProduct' // TODO for demo purposes\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'row',\n marginTop: theme.spacing(3),\n marginRight: theme.spacing(6),\n width: 110,\n alignItems: 'center'\n },\n iconStyle: {\n backgroundColor: (props) => props.verticalColor,\n color: theme.palette.getContrastText(theme.palette.secondary.dark),\n width: 40,\n height: 40,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n },\n iconContainer: {\n marginRight: theme.spacing(1)\n },\n imageIcon: {\n width: 28,\n height: 28\n },\n label: {\n marginTop: theme.spacing(0.5)\n },\n images: {\n width: theme.spacing(6),\n height: theme.spacing(6)\n }\n}))\n\nconst FUIAppListItem = (props) => {\n const classes = useStyles()\n const { iconStyle } = useStyles(props)\n const {\n icon,\n label,\n color,\n redirectInfo,\n link,\n image,\n params,\n closeSwitcher,\n user\n } = props\n const [open, setOpen] = useState(false)\n\n const handleClick = () => {\n if (redirectInfo) {\n redirectToProductOnClick(redirectInfo, user.currentTenantId) // TODO for demo purposes\n } else {\n closeSwitcher()\n }\n setOpen(!open)\n }\n\n const iconButton =\n !!icon || !!image ? (\n redirectInfo ? (\n <ButtonBase onClick={handleClick}>\n {image ? (\n <img src={image} alt={label} className={classes.images} />\n ) : (\n <div className={`${iconStyle}`}>\n <FluentIcon\n component={icon}\n style={{ color: `${color ? color : ''}` }}\n />\n </div>\n )}\n </ButtonBase>\n ) : (\n <ButtonBase\n component={Link}\n to={{\n pathname: link,\n state: params\n }}\n onClick={handleClick}\n >\n {image ? (\n <img src={image} alt={label} className={classes.images} />\n ) : (\n <div className={`${iconStyle}`}>\n <FluentIcon\n component={icon}\n style={{ color: `${color ? color : ''}` }}\n />\n </div>\n )}\n </ButtonBase>\n )\n ) : null\n\n return (\n <div className={classes.root}>\n <div className={classes.iconContainer}>{iconButton}</div>\n <div>\n <Typography variant='caption' className={classes.label}>\n {label}\n </Typography>\n </div>\n </div>\n )\n}\nexport default FUIAppListItem\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core'\nimport FUIAppListItem from './FUIAppListItem'\n\nconst useStyles = makeStyles(\n {\n root: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n maxWidth: 500\n }\n },\n { name: 'FUIAppList' }\n)\n\nconst FUIAppList = (props) => {\n const { apps, verticalColor, closeSwitcher, user } = props\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n {apps.map((item) => {\n return (\n <FUIAppListItem\n key={item.label}\n verticalColor={verticalColor}\n closeSwitcher={closeSwitcher}\n user={user}\n {...item}\n />\n )\n })}\n </div>\n )\n}\nexport default FUIAppList\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n firstStyle: {\n backgroundColor: (props) => props.backgroundColor,\n padding: theme.spacing(2),\n marginTop: 24\n },\n secondStyle: {\n // color: props => props.color,\n color: 'black'\n }\n}));\n\nconst UnityApps = (props) => {\n const { firstStyle, secondStyle } = useStyles(props);\n const { children } = props;\n return (\n <div>\n <div className={`${firstStyle} ${secondStyle}`}>{children}</div>\n </div>\n );\n};\nexport default UnityApps;\n","import React, { useState } from 'react';\nimport { makeStyles, IconButton } from '@material-ui/core';\nimport { redirectToLinkOnClick } from '../../../utilities/menus/redirectToLink';\nimport { FluentIcon } from '../../../utilities/iconLibrary/FluentIcon';\n\nconst useStyles = makeStyles((theme) => ({\n icons: {\n color: (props) => props.color\n },\n buttonGroup: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '16px !important',\n width: 190\n },\n label: {\n paddingLeft: theme.spacing(3)\n },\n images: {\n width: theme.spacing(3),\n height: theme.spacing(3),\n cursor: 'pointer',\n color: 'lightslategray'\n }\n}));\n\nconst ProductAppListItem = (props) => {\n const classes = useStyles(props);\n const { label, redirectInfo, image, icon, getAccessToken, user } = props;\n const [open, setOpen] = useState(false);\n\n const handleClick = () => {\n redirectToLinkOnClick(redirectInfo, getAccessToken, user);\n setOpen(!open);\n };\n\n return image ? (\n <div className={classes.buttonGroup}>\n <IconButton className={classes.icons} onClick={handleClick}>\n <img src={image} alt={label} className={classes.images} />\n </IconButton>\n <div className={classes.label}>{label}</div>\n </div>\n ) : (\n <div className={classes.buttonGroup}>\n {icon && (\n <FluentIcon\n component={icon}\n className={classes.images}\n onClick={handleClick}\n />\n )}\n <div className={classes.label}>{label}</div>\n </div>\n );\n};\nexport default ProductAppListItem;\n","import React from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport Arrow from '@material-ui/icons/esm/ArrowForward';\nimport ProductAppListItem from './ProductAppListItem';\nimport { useTranslation } from 'react-i18next';\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n '& > *': {\n margin: theme.spacing(0.5)\n },\n display: 'flex',\n flexWrap: 'wrap'\n },\n icons: {\n color: (props) => props.color\n },\n buttonGroup: {\n display: 'flex',\n marginRight: theme.spacing(3),\n width: 170\n },\n label: {\n color: theme.palette.getContrastText(theme.palette.secondary.light),\n marginTop: theme.spacing(2)\n },\n title: {\n color: theme.palette.getContrastText(theme.palette.secondary.light),\n minWidth: 320\n },\n\n moreAppContainer: {\n width: '100%'\n },\n moreApps: {\n color: theme.palette.getContrastText(theme.palette.secondary.light),\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end'\n },\n arrow: {\n size: 18,\n marginLeft: theme.spacing(1)\n }\n}));\n\nconst ProductAppList = (props) => {\n const classes = useStyles(props);\n const { apps, user } = props;\n const { t, i18n } = useTranslation();\n\n const AppGroup = (props) => {\n const { title, apps } = props;\n return (\n <div className={classes.root}>\n <Typography variant='h6' className={classes.title}>\n {t(title)}\n </Typography>\n {apps}\n {/* <div className={classes.moreAppContainer}>\n <div className={classes.moreApps}>\n <div>\n <Typography variant=\"caption\">All Apps</Typography>\n </div>\n <div className={classes.arrow}>\n <Arrow />\n </div>\n </div>\n </div> */}\n </div>\n );\n };\n\n return (\n <div>\n <AppGroup\n apps={apps.map((item) => {\n return (\n <ProductAppListItem\n key={item.id}\n label={t(item.label)}\n redirectInfo={item.redirectInfo}\n image={item.image}\n icon={item.icon}\n user={user}\n getAccessToken={item.getAccessToken}\n />\n );\n })}\n />\n </div>\n );\n};\nexport default ProductAppList;\n","import React, { Fragment } from 'react';\nimport { makeStyles, Typography, Divider, useTheme } from '@material-ui/core';\nimport FUIAppHeader from './FUIAppHeader';\nimport FUIAppList from './FUIAppList';\nimport UnityApps from './UnityApps';\nimport ProductAppList from './ProductAppList';\nimport { useTranslation } from 'react-i18next';\n\n\nconst useStyles = makeStyles((theme) => ({\n // root: { width: 540 },\n card: { marginRight: theme.spacing(1.5), marginBottom: theme.spacing(1.5) },\n content: {\n padding: theme.spacing(2)\n },\n appList: {\n marginTop: theme.spacing(1)\n },\n list: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap'\n },\n divider: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n },\n unityBuilders: {\n // width: 300,\n },\n title: {\n marginTop: theme.spacing(2)\n },\n column: {\n display: 'flex',\n flexDirection: 'row'\n },\n favorite: {\n display: 'flex',\n flexDirection: 'row',\n marginTop: theme.spacing(-1)\n }\n}));\n\nconst FUIAppSwitcher = (props) => {\n const { onClose, favoriteMenu, builderMenu, appMenu, unityUrl, user, header } = props;\n const classes = useStyles(props);\n const theme = useTheme();\n const appHintColor = theme.palette.primary.light;\n const appColor = theme.palette.primary.main;\n const { t, i18n } = useTranslation();\n return (\n <div className={classes.root}>\n <FUIAppHeader onClose={onClose} unityUrl={unityUrl} user={user} />\n <div className={classes.content}>\n <div className={classes.column}>\n <div className={classes.right}>\n <div className={classes.appList}>\n {header}\n {appMenu?.length ? (\n <>\n <Typography variant='h6' className={classes.title}>\n {t('Unity Apps')}\n </Typography>\n <UnityApps\n backgroundColor={appHintColor}\n children={\n <ProductAppList\n apps={appMenu}\n color={appColor}\n user={user}\n />\n }\n />\n <Divider className={classes.divider} />\n </>\n ) : null}\n {builderMenu?.length ? (\n <>\n <Typography variant='h6' className={classes.title}>\n {t('Unity Builders')}\n </Typography>\n <div className={classes.unityBuilders}>\n <FUIAppList\n apps={builderMenu}\n verticalColor={appColor}\n closeSwitcher={onClose}\n user={user}\n />\n </div>\n <Divider className={classes.divider} />{' '}\n </>\n ) : null}\n {favoriteMenu?.length ? (\n <>\n <Typography variant='h6' className={classes.title}>\n {t('Favorites')}\n </Typography>\n <div className={classes.favorite}>\n <FUIAppList\n apps={favoriteMenu}\n verticalColor={appColor}\n closeSwitcher={onClose}\n user={user}\n />\n </div>\n </>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n};\nexport default FUIAppSwitcher;\n"],"mappings":"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"}
@@ -12,7 +12,7 @@ import { t as FluentDatePicker } from "./FluentDatePicker-DPhZX5WK.js";
12
12
  import { t as AmbientGridTemplate } from "./AmbientGridTemplate-Cbl9GXcd.js";
13
13
  import { t as IconButtonWithTooltip } from "./IconButtonWithToolTip-C8Gr_PHd.js";
14
14
  import { t as FilterOperators } from "./SearchOperator-D9838PIe.js";
15
- import { t as FluentTextField } from "./FluentTextField-CgQcsDtq.js";
15
+ import { t as FluentTextField } from "./FluentTextField-CPpViNni.js";
16
16
  import { t as FluentCheckbox } from "./FluentCheckbox-BOUbx-K4.js";
17
17
  import { t as FormControlLabel$1 } from "./FormControlLabel-D89w22Fg.js";
18
18
  import { t as Grid$1 } from "./Grid-C5CPbhBt.js";
@@ -401,4 +401,4 @@ const FieldArrayCard = (props) => {
401
401
 
402
402
  //#endregion
403
403
  export { FieldType as n, FieldArrayCard as t };
404
- //# sourceMappingURL=FieldArrayCard-L1-QJjiY.js.map
404
+ //# sourceMappingURL=FieldArrayCard-lEUXQyMD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldArrayCard-L1-QJjiY.js","names":["Grid","AutocompleteFinalField","DateRangeField","FormControlLabel","Typography","Grid","SearchSideSheet"],"sources":["../src/UI/inputs/fieldArrayCard/fieldArrayCardEnum.ts","../src/UI/inputs/fieldArrayCard/SearchSideSheet.jsx","../src/UI/inputs/fieldArrayCard/AutocompleteFinalField.jsx","../src/UI/inputs/fieldArrayCard/DateRangeField.jsx","../src/UI/inputs/fieldArrayCard/FieldArrayCard.jsx"],"sourcesContent":["export enum FieldType {\n Text = 'text',\n Date = 'date',\n DateRange = 'dateRange',\n Time = 'time',\n DateTime = 'dateTime',\n Toggle = 'toggle',\n Checkbox = 'checkbox',\n DropdownMenu = 'dropdownMenu',\n}","import React, { useCallback, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { AmbientGridTemplate } from '../../templates/AmbientGridTemplate';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { FilterOperators } from '../../../models/SearchOperator';\nimport { SideSheet } from '../../surfaces/SideSheet';\nimport { useAgGridApi } from '../../../utilities/aggrid/AgTable';\n\nconst SearchSideSheet = props => {\n const {\n open,\n handleClose,\n exclude,\n title,\n productApiBase,\n searchApi,\n colDefs = [],\n gridTitle,\n idField,\n formIdField,\n handleSearch,\n width = '800px',\n height='58vh'\n } = props;\n const [selectedData, setSelectedData] = useState([]);\n const { t } = useTranslation();\n const { gridApi, onGridReady, gridColumnApi } = useAgGridApi();\n const paginationPageSize = 20;\n\n // TODO: use queryId or new data grid from stencil\n const searchData = useCallback(\n async data =>\n apiMutate(\n productApiBase,\n searchApi,\n {\n method: 'post',\n },\n data\n ),\n [productApiBase, searchApi]\n );\n\n const onSelectionChanged = useCallback(() => {\n const selectedRows = gridApi?.getSelectedRows() ?? [];\n setSelectedData(selectedRows);\n }, [gridApi]);\n\n const handleCloseSideSheet = useCallback(\n data => {\n handleClose(data);\n setSelectedData([]);\n },\n [handleClose]\n );\n\n const dataSource = useMemo(\n () => ({\n getRows: async ({ request, success, fail }) => {\n if (handleSearch) {\n handleSearch(paginationPageSize, request, success, fail);\n return;\n }\n const filterElements = request?.filterModel\n ? Object.entries(request.filterModel)?.map(([key, value]) => {\n return {\n searchField: key,\n searchOperator: FilterOperators[value?.type],\n searchValue: value?.filter,\n };\n })\n : [];\n\n const orderElements = request?.sortModel\n ? request.sortModel?.map(sortObj => {\n return {\n sortColumn: sortObj?.colId,\n sortDirection: sortObj?.sort?.toUpperCase(),\n };\n })\n : [];\n await searchData({\n data: {\n filterElements: filterElements,\n orderElements: orderElements,\n pagesize: paginationPageSize,\n pageNumber: (request?.startRow ?? 0) / paginationPageSize + 1,\n },\n })\n .then(response => {\n success({\n rowData: response.data?.pageList,\n rowCount: response.data?.total,\n });\n })\n .catch(error => {\n fail();\n });\n\n },\n }),\n [searchData, handleSearch]\n );\n return (\n <SideSheet\n open={open}\n onClose={() => handleCloseSideSheet()}\n title={title}\n width={width}\n buttonLabel={t('Choose')}\n onSubmit={() => {\n handleCloseSideSheet(selectedData);\n }}\n >\n <AmbientGridTemplate\n title={gridTitle}\n rowModelType=\"serverSide\"\n serverSideDatasource={dataSource}\n cacheBlockSize={paginationPageSize}\n serverSideStoreType=\"partial\"\n paginationPageSize={paginationPageSize}\n columnDefs={[\n {\n field: '',\n checkboxSelection: true,\n maxWidth: 60,\n minWidth: 60,\n cellRenderer: params => {\n console.log({\n exclude,\n formIdField,\n idField,\n bool: exclude?.find(\n selectedItem =>\n selectedItem[formIdField] === params.data?.[idField]\n ),\n });\n if (\n params?.data &&\n !!exclude?.find(\n selectedItem =>\n selectedItem[formIdField] === params.data?.[idField]\n )\n ) {\n params.node.setSelected(true);\n }\n },\n },\n ...colDefs,\n ]}\n hideGroupTab\n hideColumnTab\n suppressRowClickSelection={true}\n onSelectionChanged={onSelectionChanged}\n rowSelection=\"multiple\"\n api={gridApi}\n gridReady={onGridReady}\n columnApi={gridColumnApi}\n dynamicSizing={true}\n height={height}\n />\n </SideSheet>\n );\n};\n\nexport default SearchSideSheet;\n","import React, { useMemo } from 'react';\nimport { FluentTextFieldAutoComplete } from '../textField/FluentTextFieldAutoComplete';\n\n// this is only to used in FieldArrayCard\nconst AutocompleteFinalField = props => {\n const { value, options, idField = 'id' ,...otherProps } = props;\n\n const currentValue = useMemo(() => {\n if (typeof value === 'object') {\n return value;\n }\n\n return options.find(option => option[idField] === value) || null;\n }, [idField, options, value]);\n\n return (\n <FluentTextFieldAutoComplete\n {...otherProps}\n options={options}\n value={currentValue}\n />\n );\n};\n\nexport default AutocompleteFinalField;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Field } from '../../../utilities/form';\nimport { FluentDatePicker } from '../pickers/FluentDatePicker';\nimport { Grid } from '../../Grid';\n\nconst DateRangeField = props => {\n const {\n fieldName,\n startDateProps = {},\n endDateProps = {},\n sameRow = false,\n initialValues,\n } = props;\n const [maxStartDate, setMaxStartDate] = useState();\n const [minEndDate, setMinEndDate] = useState();\n const { t } = useTranslation();\n\n useEffect(() => {\n const currentStartDate = initialValues[startDateProps?.name ?? 'startDate'];\n if (currentStartDate) {\n let minDate = new Date(currentStartDate);\n minDate.setDate(minDate?.getDate() + 1);\n setMinEndDate(minDate);\n } else {\n setMinEndDate(undefined);\n }\n }, [initialValues, startDateProps.name]);\n\n useEffect(() => {\n const currentEndDate = initialValues[endDateProps?.name ?? 'endDate'];\n if (currentEndDate) {\n let maxDate = new Date(currentEndDate);\n maxDate.setDate(maxDate?.getDate() - 1);\n maxDate.setHours(0, 0, 0, 0);\n setMaxStartDate(maxDate);\n } else {\n setMaxStartDate(undefined);\n }\n }, [endDateProps.name, initialValues]);\n\n return (\n <Grid container spacing={sameRow ? 2 : 0}>\n <Grid item xs={12} sm={sameRow ? 6 : 12}>\n <Field\n {...startDateProps}\n parse={value => (value ? value : null)}\n format={value => (value ? value : null)}\n label={startDateProps?.label ?? t('Start Date')}\n name={`${fieldName}.${startDateProps?.name ?? 'startDate'}`}\n key={`${fieldName}.${startDateProps?.name ?? 'startDate'}`}\n component={FluentDatePicker}\n size=\"small\"\n maxDate={maxStartDate}\n allowNull\n />\n </Grid>\n <Grid item xs={12} sm={sameRow ? 6 : 12}>\n <Field\n {...endDateProps}\n parse={value => value ?? null}\n format={value => value ?? null}\n label={endDateProps?.label ?? t('End Date')}\n name={`${fieldName}.${endDateProps?.name ?? 'endDate'}`}\n key={`${fieldName}.${endDateProps?.name ?? 'endDate'}`}\n component={FluentDatePicker}\n size=\"small\"\n minDate={minEndDate}\n allowNull\n />\n </Grid>\n </Grid>\n );\n};\n\nexport default DateRangeField;\n","import { AddIcon, DeleteIcon } from '@fluentui/react-icons';\nimport { makeStyles } from '@material-ui/core';\nimport React, { useCallback, useState } from 'react';\nimport { FieldArray } from 'react-final-form-arrays';\nimport { useTranslation } from 'react-i18next';\nimport SearchSideSheet from './SearchSideSheet';\nimport AutocompleteFinalField from './AutocompleteFinalField';\nimport DateRangeField from './DateRangeField';\nimport { FieldType } from './fieldArrayCardEnum';\nimport { AmbientCard } from '../../surfaces/cards/AmbientCard';\nimport { DateTimeField } from '../datetimes/DateTimeField';\nimport { EmptyStateDisplay } from '../../dataDisplay/EmptyStateDisplay';\nimport { Field } from '../../../utilities/form';\nimport { FluentCheckbox } from '../checkbox/FluentCheckbox';\nimport { FluentDatePicker } from '../pickers/FluentDatePicker';\nimport { FluentTextField } from '../textField/FluentTextField';\nimport { FluentTimePicker } from '../pickers/FluentTimePicker';\nimport { FluentToggle } from '../toggle/FluentToggle';\nimport { FormControlLabel } from '../../utilityDisplay/FormControlLabel';\nimport { Grid } from '../../Grid';\nimport { IconButtonWithTooltip } from '../buttons/IconButtonWithToolTip';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport { Typography } from '../../dataDisplay/typography/Typography';\n\nconst useStyles = makeStyles(theme => ({\n toggleWrapper: {\n marginLeft: theme.spacing(-0.1),\n gap: theme.spacing(1),\n marginTop: theme.spacing(0.8),\n },\n checkboxField: {\n marginLeft: theme.spacing(-1.1),\n },\n sectionHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n alignItems: 'center',\n marginBottom: theme.spacing(1),\n },\n fieldsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n },\n cardsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n },\n cardHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const FieldArrayCard = props => {\n const {\n title = ' ',\n fieldArrayName,\n getRowTitle,\n fieldConfig,\n removeTopLayoutUnit = false,\n defaultAddedItemValues,\n //search sidesheet props\n enableSearchSideSheet,\n searchSideSheetTitle,\n searchFieldId = 'id',\n formFieldId = 'id',\n formatAddedSearchItems,\n productApiBase,\n searchApi,\n searchGridColDefs,\n searchGridTitle,\n handleSearch,\n disableExcludeInSearch = false,\n searchSideSheetWidth,\n searchSideSheetHeight,\n } = props;\n const classes = useStyles();\n const [openSideSheet, setOpenSideSheet] = useState(false);\n const { t } = useTranslation();\n\n const getField = useCallback(\n (finalFieldName, config, fieldObj) => {\n const { fieldName, fieldType, fieldLabel, componentProps } = config;\n\n let fieldComponent = null;\n\n switch (fieldType) {\n case FieldType.DropdownMenu:\n fieldComponent = (\n <Field\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={AutocompleteFinalField}\n label={fieldLabel}\n />\n );\n break;\n case FieldType.Date:\n fieldComponent = (\n <Field\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={FluentDatePicker}\n label={fieldLabel}\n size=\"small\"\n allowNull\n />\n );\n break;\n case FieldType.DateRange:\n fieldComponent = (\n <DateRangeField\n {...componentProps}\n fieldName={finalFieldName}\n initialValues={fieldObj}\n />\n );\n break;\n case FieldType.Time:\n fieldComponent = (\n <Field\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={FluentTimePicker}\n label={fieldLabel}\n size=\"small\"\n />\n );\n break;\n case FieldType.DateTime:\n fieldComponent = (\n <Field\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={DateTimeField}\n label={fieldLabel}\n size=\"small\"\n allowNull\n />\n );\n break;\n case FieldType.Toggle:\n fieldComponent = (\n <FormControlLabel\n control={\n <Field\n defaultChecked={false}\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={FluentToggle}\n type=\"checkbox\"\n />\n }\n label={fieldLabel}\n className={classes.toggleWrapper}\n />\n );\n break;\n case FieldType.Checkbox:\n fieldComponent = (\n <FormControlLabel\n control={\n <Field\n defaultChecked={false}\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={FluentCheckbox}\n type=\"checkbox\"\n />\n }\n label={fieldLabel}\n className={classes.checkboxField}\n />\n );\n break;\n default:\n fieldComponent = (\n <Field\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={FluentTextField}\n label={fieldLabel}\n />\n );\n break;\n }\n\n return fieldComponent;\n },\n [classes.checkboxField, classes.toggleWrapper]\n );\n\n const handleCloseSideSheet = useCallback(\n (selectedRecords, fieldArray) => {\n const formattedRecords = formatAddedSearchItems\n ? formatAddedSearchItems(selectedRecords ?? [])\n : selectedRecords;\n\n if (formattedRecords?.length) {\n for (const record of formattedRecords) {\n if (\n disableExcludeInSearch ||\n !!!fieldArray?.value?.find(\n item => item[formFieldId] === record[formFieldId]\n )\n )\n fieldArray.push(record);\n }\n }\n\n setOpenSideSheet(false);\n },\n [disableExcludeInSearch, formFieldId, formatAddedSearchItems]\n );\n\n const handleAddField = useCallback(\n fields => {\n if (enableSearchSideSheet) {\n setOpenSideSheet(true);\n } else {\n if (defaultAddedItemValues) {\n fields.push(defaultAddedItemValues);\n } else {\n fields.push({});\n }\n }\n },\n [defaultAddedItemValues, enableSearchSideSheet]\n );\n\n return (\n <div>\n <FieldArray name={fieldArrayName}>\n {({ fields }) => {\n return (\n <div>\n <div className={classes.sectionHeader}>\n <div>\n {title && <Typography variant=\"h6\">{title}</Typography>}\n </div>\n <IconButtonWithTooltip\n onClick={() => {\n handleAddField(fields);\n }}\n icon={AddIcon}\n title={t('Add')}\n />\n </div>\n\n <div className={classes.cardsWrapper}>\n {fields?.value?.length > 0 ? (\n fields.map((name, index) => {\n const rowTitle =\n getRowTitle && getRowTitle(fields?.value?.[index]);\n return (\n <AmbientCard fullWidth>\n <div className={classes.cardHeader}>\n <Typography variant=\"h6\">{rowTitle}</Typography>\n\n <IconButtonWithTooltip\n onClick={() => fields.remove(index)}\n icon={DeleteIcon}\n title={t('Delete')}\n />\n </div>\n {rowTitle && !removeTopLayoutUnit && (\n <LayoutUnit unit=\"xxs\" />\n )}\n <div className={classes.fieldsWrapper}>\n {fieldConfig?.map(config => {\n if (Array.isArray(config)) {\n return (\n <Grid container spacing={2}>\n {config?.map(innerConfig => {\n return (\n <Grid\n item\n xs={12}\n sm={12 / config?.length}\n >\n {getField(\n name,\n innerConfig,\n fields?.value?.[index]\n )}\n </Grid>\n );\n })}\n </Grid>\n );\n } else {\n return getField(\n name,\n config,\n fields?.value?.[index]\n );\n }\n })}\n </div>\n </AmbientCard>\n );\n })\n ) : (\n <AmbientCard fullWidth cardHeight=\"155px\">\n <EmptyStateDisplay\n primaryText={t('No records to show')}\n secondaryText={t('Try adding one')}\n />\n </AmbientCard>\n )}\n </div>\n <SearchSideSheet\n open={openSideSheet}\n handleClose={data => {\n handleCloseSideSheet(data, fields);\n }}\n exclude={disableExcludeInSearch ? [] : fields?.value}\n title={searchSideSheetTitle}\n productApiBase={productApiBase}\n searchApi={searchApi}\n colDefs={searchGridColDefs}\n idField={searchFieldId}\n formIdField={formFieldId}\n gridTitle={searchGridTitle}\n handleSearch={handleSearch}\n width={searchSideSheetWidth}\n height={searchSideSheetHeight}\n />\n </div>\n );\n }}\n </FieldArray>\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"FieldArrayCard-lEUXQyMD.js","names":["Grid","AutocompleteFinalField","DateRangeField","FormControlLabel","Typography","Grid","SearchSideSheet"],"sources":["../src/UI/inputs/fieldArrayCard/fieldArrayCardEnum.ts","../src/UI/inputs/fieldArrayCard/SearchSideSheet.jsx","../src/UI/inputs/fieldArrayCard/AutocompleteFinalField.jsx","../src/UI/inputs/fieldArrayCard/DateRangeField.jsx","../src/UI/inputs/fieldArrayCard/FieldArrayCard.jsx"],"sourcesContent":["export enum FieldType {\n Text = 'text',\n Date = 'date',\n DateRange = 'dateRange',\n Time = 'time',\n DateTime = 'dateTime',\n Toggle = 'toggle',\n Checkbox = 'checkbox',\n DropdownMenu = 'dropdownMenu',\n}","import React, { useCallback, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { AmbientGridTemplate } from '../../templates/AmbientGridTemplate';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { FilterOperators } from '../../../models/SearchOperator';\nimport { SideSheet } from '../../surfaces/SideSheet';\nimport { useAgGridApi } from '../../../utilities/aggrid/AgTable';\n\nconst SearchSideSheet = props => {\n const {\n open,\n handleClose,\n exclude,\n title,\n productApiBase,\n searchApi,\n colDefs = [],\n gridTitle,\n idField,\n formIdField,\n handleSearch,\n width = '800px',\n height='58vh'\n } = props;\n const [selectedData, setSelectedData] = useState([]);\n const { t } = useTranslation();\n const { gridApi, onGridReady, gridColumnApi } = useAgGridApi();\n const paginationPageSize = 20;\n\n // TODO: use queryId or new data grid from stencil\n const searchData = useCallback(\n async data =>\n apiMutate(\n productApiBase,\n searchApi,\n {\n method: 'post',\n },\n data\n ),\n [productApiBase, searchApi]\n );\n\n const onSelectionChanged = useCallback(() => {\n const selectedRows = gridApi?.getSelectedRows() ?? [];\n setSelectedData(selectedRows);\n }, [gridApi]);\n\n const handleCloseSideSheet = useCallback(\n data => {\n handleClose(data);\n setSelectedData([]);\n },\n [handleClose]\n );\n\n const dataSource = useMemo(\n () => ({\n getRows: async ({ request, success, fail }) => {\n if (handleSearch) {\n handleSearch(paginationPageSize, request, success, fail);\n return;\n }\n const filterElements = request?.filterModel\n ? Object.entries(request.filterModel)?.map(([key, value]) => {\n return {\n searchField: key,\n searchOperator: FilterOperators[value?.type],\n searchValue: value?.filter,\n };\n })\n : [];\n\n const orderElements = request?.sortModel\n ? request.sortModel?.map(sortObj => {\n return {\n sortColumn: sortObj?.colId,\n sortDirection: sortObj?.sort?.toUpperCase(),\n };\n })\n : [];\n await searchData({\n data: {\n filterElements: filterElements,\n orderElements: orderElements,\n pagesize: paginationPageSize,\n pageNumber: (request?.startRow ?? 0) / paginationPageSize + 1,\n },\n })\n .then(response => {\n success({\n rowData: response.data?.pageList,\n rowCount: response.data?.total,\n });\n })\n .catch(error => {\n fail();\n });\n\n },\n }),\n [searchData, handleSearch]\n );\n return (\n <SideSheet\n open={open}\n onClose={() => handleCloseSideSheet()}\n title={title}\n width={width}\n buttonLabel={t('Choose')}\n onSubmit={() => {\n handleCloseSideSheet(selectedData);\n }}\n >\n <AmbientGridTemplate\n title={gridTitle}\n rowModelType=\"serverSide\"\n serverSideDatasource={dataSource}\n cacheBlockSize={paginationPageSize}\n serverSideStoreType=\"partial\"\n paginationPageSize={paginationPageSize}\n columnDefs={[\n {\n field: '',\n checkboxSelection: true,\n maxWidth: 60,\n minWidth: 60,\n cellRenderer: params => {\n console.log({\n exclude,\n formIdField,\n idField,\n bool: exclude?.find(\n selectedItem =>\n selectedItem[formIdField] === params.data?.[idField]\n ),\n });\n if (\n params?.data &&\n !!exclude?.find(\n selectedItem =>\n selectedItem[formIdField] === params.data?.[idField]\n )\n ) {\n params.node.setSelected(true);\n }\n },\n },\n ...colDefs,\n ]}\n hideGroupTab\n hideColumnTab\n suppressRowClickSelection={true}\n onSelectionChanged={onSelectionChanged}\n rowSelection=\"multiple\"\n api={gridApi}\n gridReady={onGridReady}\n columnApi={gridColumnApi}\n dynamicSizing={true}\n height={height}\n />\n </SideSheet>\n );\n};\n\nexport default SearchSideSheet;\n","import React, { useMemo } from 'react';\nimport { FluentTextFieldAutoComplete } from '../textField/FluentTextFieldAutoComplete';\n\n// this is only to used in FieldArrayCard\nconst AutocompleteFinalField = props => {\n const { value, options, idField = 'id' ,...otherProps } = props;\n\n const currentValue = useMemo(() => {\n if (typeof value === 'object') {\n return value;\n }\n\n return options.find(option => option[idField] === value) || null;\n }, [idField, options, value]);\n\n return (\n <FluentTextFieldAutoComplete\n {...otherProps}\n options={options}\n value={currentValue}\n />\n );\n};\n\nexport default AutocompleteFinalField;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Field } from '../../../utilities/form';\nimport { FluentDatePicker } from '../pickers/FluentDatePicker';\nimport { Grid } from '../../Grid';\n\nconst DateRangeField = props => {\n const {\n fieldName,\n startDateProps = {},\n endDateProps = {},\n sameRow = false,\n initialValues,\n } = props;\n const [maxStartDate, setMaxStartDate] = useState();\n const [minEndDate, setMinEndDate] = useState();\n const { t } = useTranslation();\n\n useEffect(() => {\n const currentStartDate = initialValues[startDateProps?.name ?? 'startDate'];\n if (currentStartDate) {\n let minDate = new Date(currentStartDate);\n minDate.setDate(minDate?.getDate() + 1);\n setMinEndDate(minDate);\n } else {\n setMinEndDate(undefined);\n }\n }, [initialValues, startDateProps.name]);\n\n useEffect(() => {\n const currentEndDate = initialValues[endDateProps?.name ?? 'endDate'];\n if (currentEndDate) {\n let maxDate = new Date(currentEndDate);\n maxDate.setDate(maxDate?.getDate() - 1);\n maxDate.setHours(0, 0, 0, 0);\n setMaxStartDate(maxDate);\n } else {\n setMaxStartDate(undefined);\n }\n }, [endDateProps.name, initialValues]);\n\n return (\n <Grid container spacing={sameRow ? 2 : 0}>\n <Grid item xs={12} sm={sameRow ? 6 : 12}>\n <Field\n {...startDateProps}\n parse={value => (value ? value : null)}\n format={value => (value ? value : null)}\n label={startDateProps?.label ?? t('Start Date')}\n name={`${fieldName}.${startDateProps?.name ?? 'startDate'}`}\n key={`${fieldName}.${startDateProps?.name ?? 'startDate'}`}\n component={FluentDatePicker}\n size=\"small\"\n maxDate={maxStartDate}\n allowNull\n />\n </Grid>\n <Grid item xs={12} sm={sameRow ? 6 : 12}>\n <Field\n {...endDateProps}\n parse={value => value ?? null}\n format={value => value ?? null}\n label={endDateProps?.label ?? t('End Date')}\n name={`${fieldName}.${endDateProps?.name ?? 'endDate'}`}\n key={`${fieldName}.${endDateProps?.name ?? 'endDate'}`}\n component={FluentDatePicker}\n size=\"small\"\n minDate={minEndDate}\n allowNull\n />\n </Grid>\n </Grid>\n );\n};\n\nexport default DateRangeField;\n","import { AddIcon, DeleteIcon } from '@fluentui/react-icons';\nimport { makeStyles } from '@material-ui/core';\nimport React, { useCallback, useState } from 'react';\nimport { FieldArray } from 'react-final-form-arrays';\nimport { useTranslation } from 'react-i18next';\nimport SearchSideSheet from './SearchSideSheet';\nimport AutocompleteFinalField from './AutocompleteFinalField';\nimport DateRangeField from './DateRangeField';\nimport { FieldType } from './fieldArrayCardEnum';\nimport { AmbientCard } from '../../surfaces/cards/AmbientCard';\nimport { DateTimeField } from '../datetimes/DateTimeField';\nimport { EmptyStateDisplay } from '../../dataDisplay/EmptyStateDisplay';\nimport { Field } from '../../../utilities/form';\nimport { FluentCheckbox } from '../checkbox/FluentCheckbox';\nimport { FluentDatePicker } from '../pickers/FluentDatePicker';\nimport { FluentTextField } from '../textField/FluentTextField';\nimport { FluentTimePicker } from '../pickers/FluentTimePicker';\nimport { FluentToggle } from '../toggle/FluentToggle';\nimport { FormControlLabel } from '../../utilityDisplay/FormControlLabel';\nimport { Grid } from '../../Grid';\nimport { IconButtonWithTooltip } from '../buttons/IconButtonWithToolTip';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport { Typography } from '../../dataDisplay/typography/Typography';\n\nconst useStyles = makeStyles(theme => ({\n toggleWrapper: {\n marginLeft: theme.spacing(-0.1),\n gap: theme.spacing(1),\n marginTop: theme.spacing(0.8),\n },\n checkboxField: {\n marginLeft: theme.spacing(-1.1),\n },\n sectionHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n alignItems: 'center',\n marginBottom: theme.spacing(1),\n },\n fieldsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n },\n cardsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n },\n cardHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const FieldArrayCard = props => {\n const {\n title = ' ',\n fieldArrayName,\n getRowTitle,\n fieldConfig,\n removeTopLayoutUnit = false,\n defaultAddedItemValues,\n //search sidesheet props\n enableSearchSideSheet,\n searchSideSheetTitle,\n searchFieldId = 'id',\n formFieldId = 'id',\n formatAddedSearchItems,\n productApiBase,\n searchApi,\n searchGridColDefs,\n searchGridTitle,\n handleSearch,\n disableExcludeInSearch = false,\n searchSideSheetWidth,\n searchSideSheetHeight,\n } = props;\n const classes = useStyles();\n const [openSideSheet, setOpenSideSheet] = useState(false);\n const { t } = useTranslation();\n\n const getField = useCallback(\n (finalFieldName, config, fieldObj) => {\n const { fieldName, fieldType, fieldLabel, componentProps } = config;\n\n let fieldComponent = null;\n\n switch (fieldType) {\n case FieldType.DropdownMenu:\n fieldComponent = (\n <Field\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={AutocompleteFinalField}\n label={fieldLabel}\n />\n );\n break;\n case FieldType.Date:\n fieldComponent = (\n <Field\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={FluentDatePicker}\n label={fieldLabel}\n size=\"small\"\n allowNull\n />\n );\n break;\n case FieldType.DateRange:\n fieldComponent = (\n <DateRangeField\n {...componentProps}\n fieldName={finalFieldName}\n initialValues={fieldObj}\n />\n );\n break;\n case FieldType.Time:\n fieldComponent = (\n <Field\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={FluentTimePicker}\n label={fieldLabel}\n size=\"small\"\n />\n );\n break;\n case FieldType.DateTime:\n fieldComponent = (\n <Field\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={DateTimeField}\n label={fieldLabel}\n size=\"small\"\n allowNull\n />\n );\n break;\n case FieldType.Toggle:\n fieldComponent = (\n <FormControlLabel\n control={\n <Field\n defaultChecked={false}\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={FluentToggle}\n type=\"checkbox\"\n />\n }\n label={fieldLabel}\n className={classes.toggleWrapper}\n />\n );\n break;\n case FieldType.Checkbox:\n fieldComponent = (\n <FormControlLabel\n control={\n <Field\n defaultChecked={false}\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={FluentCheckbox}\n type=\"checkbox\"\n />\n }\n label={fieldLabel}\n className={classes.checkboxField}\n />\n );\n break;\n default:\n fieldComponent = (\n <Field\n {...componentProps}\n name={`${finalFieldName}.${fieldName}`}\n component={FluentTextField}\n label={fieldLabel}\n />\n );\n break;\n }\n\n return fieldComponent;\n },\n [classes.checkboxField, classes.toggleWrapper]\n );\n\n const handleCloseSideSheet = useCallback(\n (selectedRecords, fieldArray) => {\n const formattedRecords = formatAddedSearchItems\n ? formatAddedSearchItems(selectedRecords ?? [])\n : selectedRecords;\n\n if (formattedRecords?.length) {\n for (const record of formattedRecords) {\n if (\n disableExcludeInSearch ||\n !!!fieldArray?.value?.find(\n item => item[formFieldId] === record[formFieldId]\n )\n )\n fieldArray.push(record);\n }\n }\n\n setOpenSideSheet(false);\n },\n [disableExcludeInSearch, formFieldId, formatAddedSearchItems]\n );\n\n const handleAddField = useCallback(\n fields => {\n if (enableSearchSideSheet) {\n setOpenSideSheet(true);\n } else {\n if (defaultAddedItemValues) {\n fields.push(defaultAddedItemValues);\n } else {\n fields.push({});\n }\n }\n },\n [defaultAddedItemValues, enableSearchSideSheet]\n );\n\n return (\n <div>\n <FieldArray name={fieldArrayName}>\n {({ fields }) => {\n return (\n <div>\n <div className={classes.sectionHeader}>\n <div>\n {title && <Typography variant=\"h6\">{title}</Typography>}\n </div>\n <IconButtonWithTooltip\n onClick={() => {\n handleAddField(fields);\n }}\n icon={AddIcon}\n title={t('Add')}\n />\n </div>\n\n <div className={classes.cardsWrapper}>\n {fields?.value?.length > 0 ? (\n fields.map((name, index) => {\n const rowTitle =\n getRowTitle && getRowTitle(fields?.value?.[index]);\n return (\n <AmbientCard fullWidth>\n <div className={classes.cardHeader}>\n <Typography variant=\"h6\">{rowTitle}</Typography>\n\n <IconButtonWithTooltip\n onClick={() => fields.remove(index)}\n icon={DeleteIcon}\n title={t('Delete')}\n />\n </div>\n {rowTitle && !removeTopLayoutUnit && (\n <LayoutUnit unit=\"xxs\" />\n )}\n <div className={classes.fieldsWrapper}>\n {fieldConfig?.map(config => {\n if (Array.isArray(config)) {\n return (\n <Grid container spacing={2}>\n {config?.map(innerConfig => {\n return (\n <Grid\n item\n xs={12}\n sm={12 / config?.length}\n >\n {getField(\n name,\n innerConfig,\n fields?.value?.[index]\n )}\n </Grid>\n );\n })}\n </Grid>\n );\n } else {\n return getField(\n name,\n config,\n fields?.value?.[index]\n );\n }\n })}\n </div>\n </AmbientCard>\n );\n })\n ) : (\n <AmbientCard fullWidth cardHeight=\"155px\">\n <EmptyStateDisplay\n primaryText={t('No records to show')}\n secondaryText={t('Try adding one')}\n />\n </AmbientCard>\n )}\n </div>\n <SearchSideSheet\n open={openSideSheet}\n handleClose={data => {\n handleCloseSideSheet(data, fields);\n }}\n exclude={disableExcludeInSearch ? [] : fields?.value}\n title={searchSideSheetTitle}\n productApiBase={productApiBase}\n searchApi={searchApi}\n colDefs={searchGridColDefs}\n idField={searchFieldId}\n formIdField={formFieldId}\n gridTitle={searchGridTitle}\n handleSearch={handleSearch}\n width={searchSideSheetWidth}\n height={searchSideSheetHeight}\n />\n </div>\n );\n }}\n </FieldArray>\n </div>\n );\n};\n"],"mappings":"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"}
@@ -47,4 +47,4 @@ var FluentInputSlider_default = FluentInputSlider;
47
47
 
48
48
  //#endregion
49
49
  export { FluentInputSlider_default as t };
50
- //# sourceMappingURL=FluentInputSlider-GXgusPZa.js.map
50
+ //# sourceMappingURL=FluentInputSlider-BqI2PdVF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FluentInputSlider-GXgusPZa.js","names":[],"sources":["../src/UI/inputs/sliders/FluentInputSlider.jsx"],"sourcesContent":["import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport Slider from '@material-ui/core/Slider'\nimport Input from '@material-ui/core/Input'\nimport { ZoomIcon } from '@fluentui/react-icons'\n\nconst useStyles = makeStyles({\n root: {\n width: 250\n },\n input: {\n width: 42\n }\n})\n// @todo: make icon a props, updated to fluent design specs\nconst FluentInputSlider = (props) => {\n const { value, handleSliderChange, handleInputChange, handleBlur } = props\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n <Grid container spacing={2} alignItems='center'>\n <Grid item>\n <ZoomIcon />\n </Grid>\n <Grid item xs>\n <Slider\n value={typeof value === 'number' ? value : 0}\n onChange={handleSliderChange}\n aria-labelledby='input-slider'\n step={1}\n marks\n min={0}\n max={20}\n />\n </Grid>\n <Grid item>\n <Input\n className={classes.input}\n value={value}\n margin='dense'\n onChange={handleInputChange}\n onBlur={handleBlur}\n inputProps={{\n step: 1,\n min: 0,\n max: 20,\n type: 'number',\n 'aria-labelledby': 'input-slider'\n }}\n />\n </Grid>\n </Grid>\n </div>\n )\n}\nexport default FluentInputSlider\n"],"mappings":";;;;;;;;AAOA,MAAM,YAAY,WAAW;CAC3B,MAAM,EACJ,OAAO,KACR;CACD,OAAO,EACL,OAAO,IACR;CACF,CAAC;AAEF,MAAM,qBAAqB,UAAU;CACnC,MAAM,EAAE,OAAO,oBAAoB,mBAAmB,eAAe;CACrE,MAAM,UAAU,WAAW;AAE3B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC;EAAK;EAAU,SAAS;EAAG,YAAW;IACrC,oCAAC,QAAK,cACJ,oCAAC,eAAW,CACP,EACP,oCAAC;EAAK;EAAK;IACT,oCAAC;EACC,OAAO,OAAO,UAAU,WAAW,QAAQ;EAC3C,UAAU;EACV,mBAAgB;EAChB,MAAM;EACN;EACA,KAAK;EACL,KAAK;GACL,CACG,EACP,oCAAC,QAAK,cACJ,oCAAC;EACC,WAAW,QAAQ;EACZ;EACP,QAAO;EACP,UAAU;EACV,QAAQ;EACR,YAAY;GACV,MAAM;GACN,KAAK;GACL,KAAK;GACL,MAAM;GACN,mBAAmB;GACpB;GACD,CACG,CACF,CACH;;AAGV,gCAAe"}
1
+ {"version":3,"file":"FluentInputSlider-BqI2PdVF.js","names":[],"sources":["../src/UI/inputs/sliders/FluentInputSlider.jsx"],"sourcesContent":["import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport Slider from '@material-ui/core/Slider'\nimport Input from '@material-ui/core/Input'\nimport { ZoomIcon } from '@fluentui/react-icons'\n\nconst useStyles = makeStyles({\n root: {\n width: 250\n },\n input: {\n width: 42\n }\n})\n// @todo: make icon a props, updated to fluent design specs\nconst FluentInputSlider = (props) => {\n const { value, handleSliderChange, handleInputChange, handleBlur } = props\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n <Grid container spacing={2} alignItems='center'>\n <Grid item>\n <ZoomIcon />\n </Grid>\n <Grid item xs>\n <Slider\n value={typeof value === 'number' ? value : 0}\n onChange={handleSliderChange}\n aria-labelledby='input-slider'\n step={1}\n marks\n min={0}\n max={20}\n />\n </Grid>\n <Grid item>\n <Input\n className={classes.input}\n value={value}\n margin='dense'\n onChange={handleInputChange}\n onBlur={handleBlur}\n inputProps={{\n step: 1,\n min: 0,\n max: 20,\n type: 'number',\n 'aria-labelledby': 'input-slider'\n }}\n />\n </Grid>\n </Grid>\n </div>\n )\n}\nexport default FluentInputSlider\n"],"mappings":";;;;;;;;AAOA,MAAM,YAAY,WAAW;CAC3B,MAAM,EACJ,OAAO,KACR;CACD,OAAO,EACL,OAAO,IACR;CACF,CAAC;AAEF,MAAM,qBAAqB,UAAU;CACnC,MAAM,EAAE,OAAO,oBAAoB,mBAAmB,eAAe;CACrE,MAAM,UAAU,WAAW;AAE3B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC;EAAK;EAAU,SAAS;EAAG,YAAW;IACrC,oCAAC,QAAK,cACJ,oCAAC,eAAW,CACP,EACP,oCAAC;EAAK;EAAK;IACT,oCAAC;EACC,OAAO,OAAO,UAAU,WAAW,QAAQ;EAC3C,UAAU;EACV,mBAAgB;EAChB,MAAM;EACN;EACA,KAAK;EACL,KAAK;GACL,CACG,EACP,oCAAC,QAAK,cACJ,oCAAC;EACC,WAAW,QAAQ;EACZ;EACP,QAAO;EACP,UAAU;EACV,QAAQ;EACR,YAAY;GACV,MAAM;GACN,KAAK;GACL,KAAK;GACL,MAAM;GACN,mBAAmB;GACpB;GACD,CACG,CACF,CACH;;AAGV,gCAAe"}
@@ -1,4 +1,4 @@
1
- import { t as MapContent } from "./MapContent-CM4jG7Cx.js";
1
+ import { t as MapContent } from "./MapContent-CTPX858a.js";
2
2
  import React from "react";
3
3
  import { ImageOverlay, MapContainer, TileLayer } from "react-leaflet";
4
4
  import L from "leaflet";
@@ -69,4 +69,4 @@ const FluentMap = ({ onClick, onMouseOver, onMouseOut, data, IconComponent, boun
69
69
 
70
70
  //#endregion
71
71
  export { FluentImageMap as n, FluentMap as t };
72
- //# sourceMappingURL=FluentMap-CAhZE-7q.js.map
72
+ //# sourceMappingURL=FluentMap-BPiZxyEZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FluentMap-CAhZE-7q.js","names":["Marker"],"sources":["../src/maps/leafletMaps/FluentImageMap.jsx","../src/maps/leafletMaps/FluentMap.jsx"],"sourcesContent":["import React from 'react'\nimport { MapContainer, ImageOverlay } from 'react-leaflet'\nimport L from 'leaflet'\nimport Marker from \"react-leaflet-enhanced-marker\";\n\nexport const FluentImageMap = (\n { onClick,\n coordinates, \n bounds, \n style,\n dragging=false,\n doubleClickZoom=false,\n scrollWheelZoom=false,\n attributionControl=false,\n zoomControl=false,\n IconComponent,\n MapTile\n }) => {\n\n return (\n <MapContainer \n crs={L.CRS.Simple} \n bounds={bounds} \n style={style}\n dragging={dragging}\n doubleClickZoom={doubleClickZoom}\n scrollWheelZoom={scrollWheelZoom}\n attributionControl={attributionControl}\n zoomControl={zoomControl}\n >\n <ImageOverlay\n bounds={bounds}\n url={MapTile}\n />\n {coordinates && coordinates.map((item) => {\n return (\n <Marker\n icon={<IconComponent available={item.status}/>}\n position={[item.long, item.lat]}\n eventHandlers={{ click: ()=>onClick(item.title) }}\n \n />\n );\n })}\n \n </MapContainer>\n )\n\n}\n","import React from 'react';\nimport { MapContainer, TileLayer } from 'react-leaflet';\nimport 'leaflet/dist/leaflet.css';\nimport { MapContent } from './ui/MapContent';\nimport \"react-leaflet-markercluster/dist/styles.min.css\";\nimport L from \"leaflet\";\n\nconst defaultCenter = [49.280806, -122.828007]; // Univerus Vancouver Office \nconst defaultZoom = 13; // Ranges from 0 to 18\nconst defaultStyle = { height: '100%', width: '100%' };\n\nexport const FluentMap = ({\n onClick,\n onMouseOver,\n onMouseOut,\n data, // {ex. long, lat, title, iconProps (component, color) }\n IconComponent,\n bounds,\n style = defaultStyle,\n centerCoordinates = defaultCenter,\n zoom = defaultZoom,\n dragging = true,\n doubleClickZoom = true,\n scrollWheelZoom = true,\n attributionControl = true,\n zoomControl = true,\n highlightMarkersOnClick = true,\n PopupComponent,\n children,\n useDefaultMarker = true,\n useMarkerClustering = false\n}) => {\n\n return (\n <MapContainer\n bounds={bounds}\n style={style}\n center={centerCoordinates}\n zoom={zoom}\n dragging={dragging}\n doubleClickZoom={doubleClickZoom}\n scrollWheelZoom={scrollWheelZoom}\n attributionControl={attributionControl}\n zoomControl={zoomControl}\n preferCanvas={true}\n renderer={L.canvas({})}\n >\n <TileLayer\n attribution='&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n url=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\"\n />\n <MapContent \n data={data}\n IconComponent={IconComponent}\n onClick={onClick}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n highlightMarkersOnClick={highlightMarkersOnClick}\n PopupComponent={PopupComponent}\n children={children}\n useDefaultMarker={useDefaultMarker}\n useMarkerClustering={useMarkerClustering}\n />\n </MapContainer>\n )\n}"],"mappings":";;;;;;;;;AAKA,MAAa,kBACL,EAAE,SACD,aACA,QACA,OACA,WAAS,OACT,kBAAgB,OAChB,kBAAgB,OAChB,qBAAmB,OACnB,cAAY,OACZ,eACA,cACK;AAEV,QACE,oCAAC;EACC,KAAK,EAAE,IAAI;EACH;EACD;EACG;EACO;EACA;EACG;EACP;IAEb,oCAAC;EACW;EACR,KAAK;GACP,EACC,eAAe,YAAY,KAAK,SAAS;AACxC,SACE,oCAACA;GACC,MAAM,oCAAC,iBAAc,WAAW,KAAK,SAAS;GAC9C,UAAU,CAAC,KAAK,MAAM,KAAK,IAAI;GAC/B,eAAe,EAAE,aAAW,QAAQ,KAAK,MAAM,EAAE;IAEjD;GAEJ,CAES;;;;;ACtCrB,MAAM,gBAAgB,CAAC,WAAW,YAAY;AAC9C,MAAM,cAAc;AACpB,MAAM,eAAe;CAAE,QAAQ;CAAQ,OAAO;CAAQ;AAEtD,MAAa,aAAa,EACtB,SACA,aACA,YACA,MACA,eACA,QACA,QAAQ,cACR,oBAAoB,eACpB,OAAO,aACP,WAAW,MACX,kBAAkB,MAClB,kBAAkB,MAClB,qBAAqB,MACrB,cAAc,MACd,0BAA0B,MAC1B,gBACA,UACA,mBAAmB,MACnB,sBAAsB,YACpB;AAEF,QACI,oCAAC;EACW;EACD;EACP,QAAQ;EACF;EACI;EACO;EACA;EACG;EACP;EACb,cAAc;EACd,UAAU,EAAE,OAAO,EAAE,CAAC;IAEtB,oCAAC;EACG,aAAY;EACZ,KAAI;GACN,EACF,oCAAC;EACS;EACS;EACN;EACI;EACD;EACa;EACT;EACN;EACQ;EACG;GACvB,CACS"}
1
+ {"version":3,"file":"FluentMap-BPiZxyEZ.js","names":["Marker"],"sources":["../src/maps/leafletMaps/FluentImageMap.jsx","../src/maps/leafletMaps/FluentMap.jsx"],"sourcesContent":["import React from 'react'\nimport { MapContainer, ImageOverlay } from 'react-leaflet'\nimport L from 'leaflet'\nimport Marker from \"react-leaflet-enhanced-marker\";\n\nexport const FluentImageMap = (\n { onClick,\n coordinates, \n bounds, \n style,\n dragging=false,\n doubleClickZoom=false,\n scrollWheelZoom=false,\n attributionControl=false,\n zoomControl=false,\n IconComponent,\n MapTile\n }) => {\n\n return (\n <MapContainer \n crs={L.CRS.Simple} \n bounds={bounds} \n style={style}\n dragging={dragging}\n doubleClickZoom={doubleClickZoom}\n scrollWheelZoom={scrollWheelZoom}\n attributionControl={attributionControl}\n zoomControl={zoomControl}\n >\n <ImageOverlay\n bounds={bounds}\n url={MapTile}\n />\n {coordinates && coordinates.map((item) => {\n return (\n <Marker\n icon={<IconComponent available={item.status}/>}\n position={[item.long, item.lat]}\n eventHandlers={{ click: ()=>onClick(item.title) }}\n \n />\n );\n })}\n \n </MapContainer>\n )\n\n}\n","import React from 'react';\nimport { MapContainer, TileLayer } from 'react-leaflet';\nimport 'leaflet/dist/leaflet.css';\nimport { MapContent } from './ui/MapContent';\nimport \"react-leaflet-markercluster/dist/styles.min.css\";\nimport L from \"leaflet\";\n\nconst defaultCenter = [49.280806, -122.828007]; // Univerus Vancouver Office \nconst defaultZoom = 13; // Ranges from 0 to 18\nconst defaultStyle = { height: '100%', width: '100%' };\n\nexport const FluentMap = ({\n onClick,\n onMouseOver,\n onMouseOut,\n data, // {ex. long, lat, title, iconProps (component, color) }\n IconComponent,\n bounds,\n style = defaultStyle,\n centerCoordinates = defaultCenter,\n zoom = defaultZoom,\n dragging = true,\n doubleClickZoom = true,\n scrollWheelZoom = true,\n attributionControl = true,\n zoomControl = true,\n highlightMarkersOnClick = true,\n PopupComponent,\n children,\n useDefaultMarker = true,\n useMarkerClustering = false\n}) => {\n\n return (\n <MapContainer\n bounds={bounds}\n style={style}\n center={centerCoordinates}\n zoom={zoom}\n dragging={dragging}\n doubleClickZoom={doubleClickZoom}\n scrollWheelZoom={scrollWheelZoom}\n attributionControl={attributionControl}\n zoomControl={zoomControl}\n preferCanvas={true}\n renderer={L.canvas({})}\n >\n <TileLayer\n attribution='&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n url=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\"\n />\n <MapContent \n data={data}\n IconComponent={IconComponent}\n onClick={onClick}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n highlightMarkersOnClick={highlightMarkersOnClick}\n PopupComponent={PopupComponent}\n children={children}\n useDefaultMarker={useDefaultMarker}\n useMarkerClustering={useMarkerClustering}\n />\n </MapContainer>\n )\n}"],"mappings":";;;;;;;;;AAKA,MAAa,kBACL,EAAE,SACD,aACA,QACA,OACA,WAAS,OACT,kBAAgB,OAChB,kBAAgB,OAChB,qBAAmB,OACnB,cAAY,OACZ,eACA,cACK;AAEV,QACE,oCAAC;EACC,KAAK,EAAE,IAAI;EACH;EACD;EACG;EACO;EACA;EACG;EACP;IAEb,oCAAC;EACW;EACR,KAAK;GACP,EACC,eAAe,YAAY,KAAK,SAAS;AACxC,SACE,oCAACA;GACC,MAAM,oCAAC,iBAAc,WAAW,KAAK,SAAS;GAC9C,UAAU,CAAC,KAAK,MAAM,KAAK,IAAI;GAC/B,eAAe,EAAE,aAAW,QAAQ,KAAK,MAAM,EAAE;IAEjD;GAEJ,CAES;;;;;ACtCrB,MAAM,gBAAgB,CAAC,WAAW,YAAY;AAC9C,MAAM,cAAc;AACpB,MAAM,eAAe;CAAE,QAAQ;CAAQ,OAAO;CAAQ;AAEtD,MAAa,aAAa,EACtB,SACA,aACA,YACA,MACA,eACA,QACA,QAAQ,cACR,oBAAoB,eACpB,OAAO,aACP,WAAW,MACX,kBAAkB,MAClB,kBAAkB,MAClB,qBAAqB,MACrB,cAAc,MACd,0BAA0B,MAC1B,gBACA,UACA,mBAAmB,MACnB,sBAAsB,YACpB;AAEF,QACI,oCAAC;EACW;EACD;EACP,QAAQ;EACF;EACI;EACO;EACA;EACG;EACP;EACb,cAAc;EACd,UAAU,EAAE,OAAO,EAAE,CAAC;IAEtB,oCAAC;EACG,aAAY;EACZ,KAAI;GACN,EACF,oCAAC;EACS;EACS;EACN;EACI;EACD;EACa;EACT;EACN;EACQ;EACG;GACvB,CACS"}
@@ -9,14 +9,14 @@ import { n as SiteHeaderRightComponentTarget } from "./SiteHeaderRightComponent-
9
9
  import { t as AmbientPopoverMenuItem } from "./AmbientPopoverMenuItem-xvRiIMUe.js";
10
10
  import { t as SidebarCollapseButton } from "./SidebarCollapseButton-RZB7hk6o.js";
11
11
  import { n as EnvironmentRibbon, r as useBuildEnvironment, t as APP_RIBBON_SPACE } from "./EnvironmentRibbon-CRhI4qRC.js";
12
- import { t as AppMenu } from "./AppMenu-DzMsTuWv.js";
13
- import { t as BreadCrumbMenu } from "./BreadCrumbMenu-BxpMqfvj.js";
14
- import { n as SupportCaseSideSheet_default } from "./SupportCaseSideSheet-D48N1B5u.js";
15
- import { t as UserFormSideSheet_default } from "./UserFormSideSheet-DpO8GKQO.js";
16
- import { n as useDevicePixelRatio, t as useGravatar } from "./useGravatar-D5PYsAWb.js";
17
- import { t as clearStoredPath } from "./LocalRedirectUrlStorage-BY-L7N4U.js";
18
- import { t as clearStoredExternalPath } from "./ExternalRedirectUrlStorage-CpypX4nx.js";
19
- import { n as useUserActions } from "./users-Be55HGkm.js";
12
+ import { t as AppMenu } from "./AppMenu-CEp4BrdJ.js";
13
+ import { t as BreadCrumbMenu } from "./BreadCrumbMenu-RkiR54r9.js";
14
+ import { n as SupportCaseSideSheet_default } from "./SupportCaseSideSheet-B5a-_ehT.js";
15
+ import { t as UserFormSideSheet_default } from "./UserFormSideSheet-CpeyFv3r.js";
16
+ import { n as useDevicePixelRatio, t as useGravatar } from "./useGravatar-CD9SN7Qi.js";
17
+ import { t as clearStoredPath } from "./LocalRedirectUrlStorage-CRvlUZw0.js";
18
+ import { t as clearStoredExternalPath } from "./ExternalRedirectUrlStorage-Bbj9JzIW.js";
19
+ import { n as useUserActions } from "./users-DpxNzxRw.js";
20
20
  import React, { forwardRef, useCallback, useEffect, useRef, useState } from "react";
21
21
  import { AppBar, Avatar, Button, CardContent, ClickAwayListener, Dialog, DialogContent, DialogTitle, Drawer, Grow, IconButton, List, ListItem, ListItemIcon, ListItemText, MenuItem, MenuList, Paper, Popover, Popper, TextField, Toolbar, Typography, lighten, makeStyles, useMediaQuery, useTheme } from "@material-ui/core";
22
22
  import { ConfigService } from "udp-react-stencil-component-library";
@@ -768,4 +768,4 @@ FluentProfileMenuCard.displayName = "FluentProfileMenuCard";
768
768
 
769
769
  //#endregion
770
770
  export { LanguageSwitcher as a, NavigationSidebar_default as c, HelpCenter as i, SiteHeaderSpacer as n, ShellDropdown as o, SiteHeader_default as r, AmbientProjectSwitcher as s, FluentProfileMenuCard as t };
771
- //# sourceMappingURL=FluentProfileMenuCard-CZ00DNnC.js.map
771
+ //# sourceMappingURL=FluentProfileMenuCard-3lEpSHmy.js.map