@strapi/admin 5.29.0 → 5.30.1

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 (375) hide show
  1. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  2. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  3. package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
  4. package/dist/admin/admin/src/components/ContentBox.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
  6. package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
  7. package/dist/admin/admin/src/components/Filters.js +1 -1
  8. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  9. package/dist/admin/admin/src/components/Filters.mjs +1 -1
  10. package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
  11. package/dist/admin/admin/src/components/Form.js +8 -3
  12. package/dist/admin/admin/src/components/Form.js.map +1 -1
  13. package/dist/admin/admin/src/components/Form.mjs +8 -3
  14. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  15. package/dist/admin/admin/src/components/FormInputs/Enumeration.js +1 -1
  16. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +1 -1
  18. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  19. package/dist/admin/admin/src/components/FormInputs/Number.js +1 -1
  20. package/dist/admin/admin/src/components/FormInputs/Number.js.map +1 -1
  21. package/dist/admin/admin/src/components/FormInputs/Number.mjs +1 -1
  22. package/dist/admin/admin/src/components/FormInputs/Number.mjs.map +1 -1
  23. package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
  24. package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/FormInputs/String.js +2 -1
  26. package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
  27. package/dist/admin/admin/src/components/FormInputs/String.mjs +2 -1
  28. package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/FormInputs/Time.js.map +1 -1
  30. package/dist/admin/admin/src/components/FormInputs/Time.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
  32. package/dist/admin/admin/src/components/GapDropZone.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  34. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
  36. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  38. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
  39. package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
  40. package/dist/admin/admin/src/components/Layouts/GridLayout.mjs.map +1 -1
  41. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +8 -4
  42. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  43. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +8 -4
  44. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/NpsSurvey.js +5 -3
  46. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  47. package/dist/admin/admin/src/components/NpsSurvey.mjs +5 -3
  48. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  50. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  51. package/dist/admin/admin/src/components/PrivateRoute.js.map +1 -1
  52. package/dist/admin/admin/src/components/PrivateRoute.mjs.map +1 -1
  53. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  54. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  55. package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
  56. package/dist/admin/admin/src/components/ResizeIndicator.mjs.map +1 -1
  57. package/dist/admin/admin/src/components/Table.js +1 -1
  58. package/dist/admin/admin/src/components/Table.js.map +1 -1
  59. package/dist/admin/admin/src/components/Table.mjs +1 -1
  60. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  61. package/dist/admin/admin/src/components/Theme.js +34 -1
  62. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  63. package/dist/admin/admin/src/components/Theme.mjs +34 -1
  64. package/dist/admin/admin/src/components/Theme.mjs.map +1 -1
  65. package/dist/admin/admin/src/components/Widgets.js.map +1 -1
  66. package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
  67. package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
  68. package/dist/admin/admin/src/core/apis/CustomFields.mjs.map +1 -1
  69. package/dist/admin/admin/src/core/apis/Plugin.js +0 -1
  70. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  71. package/dist/admin/admin/src/core/apis/Plugin.mjs +0 -1
  72. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  73. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  74. package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
  75. package/dist/admin/admin/src/core/apis/rbac.js.map +1 -1
  76. package/dist/admin/admin/src/core/apis/rbac.mjs.map +1 -1
  77. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  78. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  79. package/dist/admin/admin/src/features/BackButton.js.map +1 -1
  80. package/dist/admin/admin/src/features/BackButton.mjs.map +1 -1
  81. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  82. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  83. package/dist/admin/admin/src/features/Widgets.js.map +1 -1
  84. package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
  85. package/dist/admin/admin/src/hooks/usePersistentState.js.map +1 -1
  86. package/dist/admin/admin/src/hooks/usePersistentState.mjs.map +1 -1
  87. package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
  88. package/dist/admin/admin/src/hooks/useRBAC.mjs.map +1 -1
  89. package/dist/admin/admin/src/pages/Auth/components/Login.js +1 -1
  90. package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
  91. package/dist/admin/admin/src/pages/Auth/components/Login.mjs +1 -1
  92. package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
  93. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  94. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  95. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  96. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  97. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js +2 -2
  98. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js.map +1 -1
  99. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs +2 -2
  100. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs.map +1 -1
  101. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +1 -1
  102. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs.map +1 -1
  103. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js.map +1 -1
  104. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs.map +1 -1
  105. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js.map +1 -1
  106. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs.map +1 -1
  107. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js.map +1 -1
  108. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs.map +1 -1
  109. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  110. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  111. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +8 -1
  112. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  113. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +9 -2
  114. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  115. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
  116. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
  117. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  118. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  119. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js +1 -0
  120. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js.map +1 -1
  121. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs +1 -0
  122. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs.map +1 -1
  123. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  124. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
  125. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  126. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  127. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
  128. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
  129. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +2 -0
  130. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  131. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +2 -0
  132. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  133. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  134. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  135. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +1 -0
  136. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  137. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs +1 -0
  138. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
  139. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.js.map +1 -1
  140. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.mjs.map +1 -1
  141. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
  142. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
  143. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +10 -2
  144. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  145. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +10 -2
  146. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  147. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +9 -2
  148. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  149. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +9 -2
  150. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
  151. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
  152. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
  153. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  154. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  155. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  156. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
  157. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  158. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  159. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  160. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
  161. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  162. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  163. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  164. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  165. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js +2 -1
  166. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js.map +1 -1
  167. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs +2 -1
  168. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs.map +1 -1
  169. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
  170. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
  171. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.js.map +1 -1
  172. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.mjs.map +1 -1
  173. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  174. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  175. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +2 -0
  176. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
  177. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs +2 -0
  178. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
  179. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +9 -2
  180. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  181. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +9 -2
  182. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  183. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +3 -1
  184. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  185. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +3 -1
  186. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  187. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.js.map +1 -1
  188. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.mjs.map +1 -1
  189. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
  190. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs.map +1 -1
  191. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
  192. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.mjs.map +1 -1
  193. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  194. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
  195. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +1 -1
  196. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  197. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +1 -1
  198. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  199. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +9 -2
  200. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  201. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +9 -2
  202. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  203. package/dist/admin/admin/src/pages/UseCasePage.js +1 -0
  204. package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
  205. package/dist/admin/admin/src/pages/UseCasePage.mjs +1 -0
  206. package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
  207. package/dist/admin/admin/src/services/api.js +2 -1
  208. package/dist/admin/admin/src/services/api.js.map +1 -1
  209. package/dist/admin/admin/src/services/api.mjs +2 -1
  210. package/dist/admin/admin/src/services/api.mjs.map +1 -1
  211. package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
  212. package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
  213. package/dist/admin/admin/src/services/transferTokens.js.map +1 -1
  214. package/dist/admin/admin/src/services/transferTokens.mjs.map +1 -1
  215. package/dist/admin/admin/src/services/users.js.map +1 -1
  216. package/dist/admin/admin/src/services/users.mjs.map +1 -1
  217. package/dist/admin/admin/src/services/webhooks.js.map +1 -1
  218. package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
  219. package/dist/admin/admin/src/translations/en.json.js +4 -0
  220. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  221. package/dist/admin/admin/src/translations/en.json.mjs +4 -0
  222. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  223. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  224. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  225. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  226. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  227. package/dist/admin/admin/src/utils/getPrefixedId.js.map +1 -1
  228. package/dist/admin/admin/src/utils/getPrefixedId.mjs.map +1 -1
  229. package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
  230. package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
  231. package/dist/admin/admin/src/utils/urls.js.map +1 -1
  232. package/dist/admin/admin/src/utils/urls.mjs.map +1 -1
  233. package/dist/admin/admin/src/utils/users.js.map +1 -1
  234. package/dist/admin/admin/src/utils/users.mjs.map +1 -1
  235. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
  236. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -1
  237. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
  238. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
  239. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
  240. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
  241. package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
  242. package/dist/admin/ee/admin/src/pages/AuthResponse.mjs.map +1 -1
  243. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
  244. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
  245. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +3 -3
  246. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
  247. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +3 -3
  248. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
  249. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  250. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs.map +1 -1
  251. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
  252. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.mjs.map +1 -1
  253. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
  254. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
  255. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.js.map +1 -1
  256. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.mjs.map +1 -1
  257. package/dist/admin/ee/admin/src/services/ai.js +14 -1
  258. package/dist/admin/ee/admin/src/services/ai.js.map +1 -1
  259. package/dist/admin/ee/admin/src/services/ai.mjs +14 -2
  260. package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -1
  261. package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
  262. package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
  263. package/dist/admin/ee.js +1 -0
  264. package/dist/admin/ee.js.map +1 -1
  265. package/dist/admin/ee.mjs +1 -1
  266. package/dist/admin/src/components/Form.d.ts +1 -1
  267. package/dist/admin/src/core/store/configure.d.ts +2 -2
  268. package/dist/admin/src/core/store/hooks.d.ts +2 -2
  269. package/dist/admin/src/ee.d.ts +1 -1
  270. package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
  271. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
  272. package/dist/admin/src/selectors.d.ts +2 -2
  273. package/dist/admin/src/services/admin.d.ts +6 -6
  274. package/dist/admin/src/services/api.d.ts +1 -1
  275. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  276. package/dist/admin/src/services/auth.d.ts +13 -13
  277. package/dist/admin/src/services/contentApi.d.ts +1 -1
  278. package/dist/admin/src/services/contentManager.d.ts +1 -1
  279. package/dist/admin/src/services/homepage.d.ts +3 -3
  280. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  281. package/dist/admin/src/services/users.d.ts +8 -8
  282. package/dist/admin/src/services/webhooks.d.ts +2 -2
  283. package/dist/admin/tests/utils.d.ts +1 -1
  284. package/dist/ee/admin/src/services/ai.d.ts +6 -3
  285. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  286. package/dist/ee/server/src/ai/containers/ai.d.ts +11 -0
  287. package/dist/ee/server/src/ai/containers/ai.d.ts.map +1 -0
  288. package/dist/ee/server/src/ai/controllers/ai.d.ts +1 -0
  289. package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -1
  290. package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -1
  291. package/dist/ee/server/src/index.d.ts +1 -0
  292. package/dist/ee/server/src/index.d.ts.map +1 -1
  293. package/dist/server/ee/server/src/ai/containers/ai.js +18 -0
  294. package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -0
  295. package/dist/server/ee/server/src/ai/containers/ai.mjs +16 -0
  296. package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -0
  297. package/dist/server/ee/server/src/ai/controllers/ai.js +6 -0
  298. package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
  299. package/dist/server/ee/server/src/ai/controllers/ai.mjs +6 -0
  300. package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
  301. package/dist/server/ee/server/src/ai/routes/ai.js +11 -0
  302. package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
  303. package/dist/server/ee/server/src/ai/routes/ai.mjs +11 -0
  304. package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
  305. package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
  306. package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
  307. package/dist/server/ee/server/src/controllers/authentication-utils/constants.js.map +1 -1
  308. package/dist/server/ee/server/src/controllers/authentication-utils/constants.mjs.map +1 -1
  309. package/dist/server/ee/server/src/controllers/authentication-utils/utils.js.map +1 -1
  310. package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs.map +1 -1
  311. package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
  312. package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
  313. package/dist/server/ee/server/src/controllers/user.js.map +1 -1
  314. package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
  315. package/dist/server/ee/server/src/index.js +7 -0
  316. package/dist/server/ee/server/src/index.js.map +1 -1
  317. package/dist/server/ee/server/src/index.mjs +7 -0
  318. package/dist/server/ee/server/src/index.mjs.map +1 -1
  319. package/dist/server/ee/server/src/services/auth.js.map +1 -1
  320. package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
  321. package/dist/server/ee/server/src/services/passport/sso.js.map +1 -1
  322. package/dist/server/ee/server/src/services/passport/sso.mjs.map +1 -1
  323. package/dist/server/ee/server/src/utils/index.js.map +1 -1
  324. package/dist/server/ee/server/src/utils/index.mjs.map +1 -1
  325. package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
  326. package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
  327. package/dist/server/server/src/controllers/user.js +10 -0
  328. package/dist/server/server/src/controllers/user.js.map +1 -1
  329. package/dist/server/server/src/controllers/user.mjs +10 -0
  330. package/dist/server/server/src/controllers/user.mjs.map +1 -1
  331. package/dist/server/server/src/domain/action/index.js.map +1 -1
  332. package/dist/server/server/src/domain/action/index.mjs.map +1 -1
  333. package/dist/server/server/src/domain/condition/index.js.map +1 -1
  334. package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
  335. package/dist/server/server/src/domain/permission/index.js.map +1 -1
  336. package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
  337. package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
  338. package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
  339. package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
  340. package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
  341. package/dist/server/server/src/services/api-token.js.map +1 -1
  342. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  343. package/dist/server/server/src/services/auth.js.map +1 -1
  344. package/dist/server/server/src/services/auth.mjs.map +1 -1
  345. package/dist/server/server/src/services/content-type.js.map +1 -1
  346. package/dist/server/server/src/services/content-type.mjs.map +1 -1
  347. package/dist/server/server/src/services/encryption.js.map +1 -1
  348. package/dist/server/server/src/services/encryption.mjs.map +1 -1
  349. package/dist/server/server/src/services/homepage.js.map +1 -1
  350. package/dist/server/server/src/services/homepage.mjs.map +1 -1
  351. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
  352. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
  353. package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
  354. package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
  355. package/dist/server/server/src/services/role.js.map +1 -1
  356. package/dist/server/server/src/services/role.mjs.map +1 -1
  357. package/dist/server/server/src/services/transfer/token.js.map +1 -1
  358. package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
  359. package/dist/server/server/src/services/user.js +30 -0
  360. package/dist/server/server/src/services/user.js.map +1 -1
  361. package/dist/server/server/src/services/user.mjs +30 -0
  362. package/dist/server/server/src/services/user.mjs.map +1 -1
  363. package/dist/server/server/src/utils/index.js.map +1 -1
  364. package/dist/server/server/src/utils/index.mjs.map +1 -1
  365. package/dist/server/server/src/validation/action-provider.js.map +1 -1
  366. package/dist/server/server/src/validation/action-provider.mjs.map +1 -1
  367. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
  368. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.mjs.map +1 -1
  369. package/dist/server/server/src/validation/common-validators.js.map +1 -1
  370. package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
  371. package/dist/server/src/controllers/user.d.ts.map +1 -1
  372. package/dist/server/src/services/user.d.ts.map +1 -1
  373. package/dist/shared/contracts/ai.d.ts +16 -0
  374. package/dist/shared/contracts/ai.d.ts.map +1 -1
  375. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"urls.js","sources":["../../../../../admin/src/utils/urls.ts"],"sourcesContent":["import trimEnd from 'lodash/trimEnd';\n\nconst prefixFileUrlWithBackendUrl = (fileURL?: string): string | undefined => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n\n/**\n * @description Creates an absolute URL, if there is no URL or it\n * is relative, we use the `window.location.origin` as a fallback.\n * IF it's an absolute URL, we return it as is.\n */\nconst createAbsoluteUrl = (url?: string): string => {\n if (!url) {\n return window.location.origin;\n }\n if (url.startsWith('/')) {\n /**\n * This will also manage protocol relative URLs which is fine because\n * as we can see from the test, we still get the expected result.\n */\n return trimEnd(new URL(url, window.location.origin).toString(), '/');\n } else {\n return url;\n }\n};\n\nexport { createAbsoluteUrl, prefixFileUrlWithBackendUrl };\n"],"names":["prefixFileUrlWithBackendUrl","fileURL","startsWith","window","strapi","backendURL","createAbsoluteUrl","url","location","origin","trimEnd","URL","toString"],"mappings":";;;;AAEA,MAAMA,8BAA8B,CAACC,OAAAA,GAAAA;AACnC,IAAA,OAAO,CAAC,CAACA,OAAAA,IAAWA,OAAQC,CAAAA,UAAU,CAAC,GAAO,CAAA,GAAA,CAAC,EAAEC,MAAAA,CAAOC,MAAM,CAACC,UAAU,CAAC,EAAEJ,OAAAA,CAAQ,CAAC,GAAGA,OAAAA;AAC1F;AAEA;;;;IAKA,MAAMK,oBAAoB,CAACC,GAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,GAAK,EAAA;QACR,OAAOJ,MAAAA,CAAOK,QAAQ,CAACC,MAAM;AAC/B;IACA,IAAIF,GAAAA,CAAIL,UAAU,CAAC,GAAM,CAAA,EAAA;AACvB;;;QAIA,OAAOQ,OAAQ,CAAA,IAAIC,GAAIJ,CAAAA,GAAAA,EAAKJ,MAAOK,CAAAA,QAAQ,CAACC,MAAM,CAAEG,CAAAA,QAAQ,EAAI,EAAA,GAAA,CAAA;KAC3D,MAAA;QACL,OAAOL,GAAAA;AACT;AACF;;;;;"}
1
+ {"version":3,"file":"urls.js","sources":["../../../../../admin/src/utils/urls.ts"],"sourcesContent":["import trimEnd from 'lodash/trimEnd';\n\nconst prefixFileUrlWithBackendUrl = (fileURL?: string): string | undefined => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n\n/**\n * @description Creates an absolute URL, if there is no URL or it\n * is relative, we use the `window.location.origin` as a fallback.\n * IF it's an absolute URL, we return it as is.\n */\nconst createAbsoluteUrl = (url?: string): string => {\n if (!url) {\n return window.location.origin;\n }\n if (url.startsWith('/')) {\n /**\n * This will also manage protocol relative URLs which is fine because\n * as we can see from the test, we still get the expected result.\n */\n return trimEnd(new URL(url, window.location.origin).toString(), '/');\n } else {\n return url;\n }\n};\n\nexport { createAbsoluteUrl, prefixFileUrlWithBackendUrl };\n"],"names":["prefixFileUrlWithBackendUrl","fileURL","startsWith","window","strapi","backendURL","createAbsoluteUrl","url","location","origin","trimEnd","URL","toString"],"mappings":";;;;AAEA,MAAMA,8BAA8B,CAACC,OAAAA,GAAAA;AACnC,IAAA,OAAO,CAAC,CAACA,OAAWA,IAAAA,OAAAA,CAAQC,UAAU,CAAC,GAAA,CAAA,GAAO,CAAGC,EAAAA,MAAAA,CAAOC,MAAM,CAACC,UAAU,CAAA,EAAGJ,SAAS,GAAGA,OAAAA;AAC1F;AAEA;;;;IAKA,MAAMK,oBAAoB,CAACC,GAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,GAAK,EAAA;QACR,OAAOJ,MAAAA,CAAOK,QAAQ,CAACC,MAAM;AAC/B;IACA,IAAIF,GAAAA,CAAIL,UAAU,CAAC,GAAM,CAAA,EAAA;AACvB;;;QAIA,OAAOQ,OAAQ,CAAA,IAAIC,GAAIJ,CAAAA,GAAAA,EAAKJ,MAAOK,CAAAA,QAAQ,CAACC,MAAM,CAAEG,CAAAA,QAAQ,EAAI,EAAA,GAAA,CAAA;KAC3D,MAAA;QACL,OAAOL,GAAAA;AACT;AACF;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"urls.mjs","sources":["../../../../../admin/src/utils/urls.ts"],"sourcesContent":["import trimEnd from 'lodash/trimEnd';\n\nconst prefixFileUrlWithBackendUrl = (fileURL?: string): string | undefined => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n\n/**\n * @description Creates an absolute URL, if there is no URL or it\n * is relative, we use the `window.location.origin` as a fallback.\n * IF it's an absolute URL, we return it as is.\n */\nconst createAbsoluteUrl = (url?: string): string => {\n if (!url) {\n return window.location.origin;\n }\n if (url.startsWith('/')) {\n /**\n * This will also manage protocol relative URLs which is fine because\n * as we can see from the test, we still get the expected result.\n */\n return trimEnd(new URL(url, window.location.origin).toString(), '/');\n } else {\n return url;\n }\n};\n\nexport { createAbsoluteUrl, prefixFileUrlWithBackendUrl };\n"],"names":["prefixFileUrlWithBackendUrl","fileURL","startsWith","window","strapi","backendURL","createAbsoluteUrl","url","location","origin","trimEnd","URL","toString"],"mappings":";;AAEA,MAAMA,8BAA8B,CAACC,OAAAA,GAAAA;AACnC,IAAA,OAAO,CAAC,CAACA,OAAAA,IAAWA,OAAQC,CAAAA,UAAU,CAAC,GAAO,CAAA,GAAA,CAAC,EAAEC,MAAAA,CAAOC,MAAM,CAACC,UAAU,CAAC,EAAEJ,OAAAA,CAAQ,CAAC,GAAGA,OAAAA;AAC1F;AAEA;;;;IAKA,MAAMK,oBAAoB,CAACC,GAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,GAAK,EAAA;QACR,OAAOJ,MAAAA,CAAOK,QAAQ,CAACC,MAAM;AAC/B;IACA,IAAIF,GAAAA,CAAIL,UAAU,CAAC,GAAM,CAAA,EAAA;AACvB;;;QAIA,OAAOQ,OAAQ,CAAA,IAAIC,GAAIJ,CAAAA,GAAAA,EAAKJ,MAAOK,CAAAA,QAAQ,CAACC,MAAM,CAAEG,CAAAA,QAAQ,EAAI,EAAA,GAAA,CAAA;KAC3D,MAAA;QACL,OAAOL,GAAAA;AACT;AACF;;;;"}
1
+ {"version":3,"file":"urls.mjs","sources":["../../../../../admin/src/utils/urls.ts"],"sourcesContent":["import trimEnd from 'lodash/trimEnd';\n\nconst prefixFileUrlWithBackendUrl = (fileURL?: string): string | undefined => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n\n/**\n * @description Creates an absolute URL, if there is no URL or it\n * is relative, we use the `window.location.origin` as a fallback.\n * IF it's an absolute URL, we return it as is.\n */\nconst createAbsoluteUrl = (url?: string): string => {\n if (!url) {\n return window.location.origin;\n }\n if (url.startsWith('/')) {\n /**\n * This will also manage protocol relative URLs which is fine because\n * as we can see from the test, we still get the expected result.\n */\n return trimEnd(new URL(url, window.location.origin).toString(), '/');\n } else {\n return url;\n }\n};\n\nexport { createAbsoluteUrl, prefixFileUrlWithBackendUrl };\n"],"names":["prefixFileUrlWithBackendUrl","fileURL","startsWith","window","strapi","backendURL","createAbsoluteUrl","url","location","origin","trimEnd","URL","toString"],"mappings":";;AAEA,MAAMA,8BAA8B,CAACC,OAAAA,GAAAA;AACnC,IAAA,OAAO,CAAC,CAACA,OAAWA,IAAAA,OAAAA,CAAQC,UAAU,CAAC,GAAA,CAAA,GAAO,CAAGC,EAAAA,MAAAA,CAAOC,MAAM,CAACC,UAAU,CAAA,EAAGJ,SAAS,GAAGA,OAAAA;AAC1F;AAEA;;;;IAKA,MAAMK,oBAAoB,CAACC,GAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,GAAK,EAAA;QACR,OAAOJ,MAAAA,CAAOK,QAAQ,CAACC,MAAM;AAC/B;IACA,IAAIF,GAAAA,CAAIL,UAAU,CAAC,GAAM,CAAA,EAAA;AACvB;;;QAIA,OAAOQ,OAAQ,CAAA,IAAIC,GAAIJ,CAAAA,GAAAA,EAAKJ,MAAOK,CAAAA,QAAQ,CAACC,MAAM,CAAEG,CAAAA,QAAQ,EAAI,EAAA,GAAA,CAAA;KAC3D,MAAA;QACL,OAAOL,GAAAA;AACT;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"users.js","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch (error) {\n return null;\n }\n};\n\nconst bufferToHex = (buffer: ArrayBuffer) => {\n return [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, '0')).join('');\n};\nconst digestMessage = async (message: string) => {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\n return bufferToHex(hashBuffer);\n};\n\nexport { getDisplayName, getInitials, hashAdminUserEmail };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim","getInitials","user","substring","split","map","name","join","toUpperCase","hashAdminUserEmail","payload","digestMessage","error","bufferToHex","buffer","Uint8Array","b","toString","padStart","message","msgUint8","TextEncoder","encode","hashBuffer","crypto","subtle","digest"],"mappings":";;AAEA;;;;AAMC,IACKA,MAAAA,cAAAA,GAAiB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAiB,GAAG,EAAE,GAAA;AAClF,IAAA,IAAID,QAAU,EAAA;QACZ,OAAOA,QAAAA;AACT;;AAGA,IAAA,IAAIF,SAAW,EAAA;QACb,OAAO,CAAC,EAAEA,SAAU,CAAA,CAAC,EAAEC,QAAY,IAAA,EAAA,CAAG,CAAC,CAACG,IAAI,EAAA;AAC9C;AAEA,IAAA,OAAOD,KAAS,IAAA,EAAA;AAClB;AAEA;;;;AAMC,IACKE,MAAAA,WAAAA,GAAc,CAACC,IAAAA,GAAsB,EAAE,GAAA;IAC3C,OAAOA,IAAAA,EAAMN,aAAaM,IAAML,EAAAA,QAAAA,GAC5B,CAAC,EAAEK,IAAAA,CAAKN,SAAS,CAACO,SAAS,CAAC,CAAG,EAAA,CAAA,CAAA,CAAG,EAAED,IAAKL,CAAAA,QAAQ,CAACM,SAAS,CAAC,GAAG,CAAG,CAAA,CAAA,CAAC,GACnER,cAAeO,CAAAA,IAAAA,CAAAA,CACZE,KAAK,CAAC,GAAA,CAAA,CACNC,GAAG,CAAC,CAACC,OAASA,IAAKH,CAAAA,SAAS,CAAC,CAAG,EAAA,CAAA,CAAA,CAAA,CAChCI,IAAI,CAAC,EAAA,CAAA,CACLJ,SAAS,CAAC,CAAA,EAAG,GACbK,WAAW,EAAA;AACpB;AAEA;;qGAIA,MAAMC,qBAAqB,OAAOC,OAAAA,GAAAA;AAChC,IAAA,IAAI,CAACA,OAAAA,IAAW,CAACA,OAAAA,CAAQX,KAAK,EAAE;QAC9B,OAAO,IAAA;AACT;IAEA,IAAI;QACF,OAAO,MAAMY,aAAcD,CAAAA,OAAAA,CAAQX,KAAK,CAAA;AAC1C,KAAA,CAAE,OAAOa,KAAO,EAAA;QACd,OAAO,IAAA;AACT;AACF;AAEA,MAAMC,cAAc,CAACC,MAAAA,GAAAA;IACnB,OAAO;AAAI,QAAA,GAAA,IAAIC,UAAWD,CAAAA,MAAAA;AAAQ,KAAA,CAACT,GAAG,CAAC,CAACW,CAAAA,GAAMA,CAAEC,CAAAA,QAAQ,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,CAAG,EAAA,GAAA,CAAA,CAAA,CAAMX,IAAI,CAAC,EAAA,CAAA;AACtF,CAAA;AACA,MAAMI,gBAAgB,OAAOQ,OAAAA,GAAAA;AAC3B,IAAA,MAAMC,QAAW,GAAA,IAAIC,WAAcC,EAAAA,CAAAA,MAAM,CAACH,OAAAA,CAAAA;AAC1C,IAAA,MAAMI,aAAa,MAAMC,MAAAA,CAAOC,MAAM,CAACC,MAAM,CAAC,SAAWN,EAAAA,QAAAA,CAAAA;AAEzD,IAAA,OAAOP,WAAYU,CAAAA,UAAAA,CAAAA;AACrB,CAAA;;;;;;"}
1
+ {"version":3,"file":"users.js","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch (error) {\n return null;\n }\n};\n\nconst bufferToHex = (buffer: ArrayBuffer) => {\n return [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, '0')).join('');\n};\nconst digestMessage = async (message: string) => {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\n return bufferToHex(hashBuffer);\n};\n\nexport { getDisplayName, getInitials, hashAdminUserEmail };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim","getInitials","user","substring","split","map","name","join","toUpperCase","hashAdminUserEmail","payload","digestMessage","error","bufferToHex","buffer","Uint8Array","b","toString","padStart","message","msgUint8","TextEncoder","encode","hashBuffer","crypto","subtle","digest"],"mappings":";;AAEA;;;;AAMC,IACKA,MAAAA,cAAAA,GAAiB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAiB,GAAG,EAAE,GAAA;AAClF,IAAA,IAAID,QAAU,EAAA;QACZ,OAAOA,QAAAA;AACT;;AAGA,IAAA,IAAIF,SAAW,EAAA;AACb,QAAA,OAAO,GAAGA,SAAU,CAAA,CAAC,EAAEC,QAAY,IAAA,EAAA,CAAA,CAAI,CAACG,IAAI,EAAA;AAC9C;AAEA,IAAA,OAAOD,KAAS,IAAA,EAAA;AAClB;AAEA;;;;AAMC,IACKE,MAAAA,WAAAA,GAAc,CAACC,IAAAA,GAAsB,EAAE,GAAA;AAC3C,IAAA,OAAOA,MAAMN,SAAaM,IAAAA,IAAAA,EAAML,WAC5B,CAAGK,EAAAA,IAAAA,CAAKN,SAAS,CAACO,SAAS,CAAC,CAAA,EAAG,KAAKD,IAAKL,CAAAA,QAAQ,CAACM,SAAS,CAAC,GAAG,CAAI,CAAA,CAAA,CAAA,GACnER,cAAeO,CAAAA,IAAAA,CAAAA,CACZE,KAAK,CAAC,GAAA,CAAA,CACNC,GAAG,CAAC,CAACC,OAASA,IAAKH,CAAAA,SAAS,CAAC,CAAG,EAAA,CAAA,CAAA,CAAA,CAChCI,IAAI,CAAC,EAAA,CAAA,CACLJ,SAAS,CAAC,CAAA,EAAG,GACbK,WAAW,EAAA;AACpB;AAEA;;qGAIA,MAAMC,qBAAqB,OAAOC,OAAAA,GAAAA;AAChC,IAAA,IAAI,CAACA,OAAAA,IAAW,CAACA,OAAAA,CAAQX,KAAK,EAAE;QAC9B,OAAO,IAAA;AACT;IAEA,IAAI;QACF,OAAO,MAAMY,aAAcD,CAAAA,OAAAA,CAAQX,KAAK,CAAA;AAC1C,KAAA,CAAE,OAAOa,KAAO,EAAA;QACd,OAAO,IAAA;AACT;AACF;AAEA,MAAMC,cAAc,CAACC,MAAAA,GAAAA;IACnB,OAAO;AAAI,QAAA,GAAA,IAAIC,UAAWD,CAAAA,MAAAA;AAAQ,KAAA,CAACT,GAAG,CAAC,CAACW,CAAAA,GAAMA,CAAEC,CAAAA,QAAQ,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,CAAG,EAAA,GAAA,CAAA,CAAA,CAAMX,IAAI,CAAC,EAAA,CAAA;AACtF,CAAA;AACA,MAAMI,gBAAgB,OAAOQ,OAAAA,GAAAA;AAC3B,IAAA,MAAMC,QAAW,GAAA,IAAIC,WAAcC,EAAAA,CAAAA,MAAM,CAACH,OAAAA,CAAAA;AAC1C,IAAA,MAAMI,aAAa,MAAMC,MAAAA,CAAOC,MAAM,CAACC,MAAM,CAAC,SAAWN,EAAAA,QAAAA,CAAAA;AAEzD,IAAA,OAAOP,WAAYU,CAAAA,UAAAA,CAAAA;AACrB,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"users.mjs","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch (error) {\n return null;\n }\n};\n\nconst bufferToHex = (buffer: ArrayBuffer) => {\n return [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, '0')).join('');\n};\nconst digestMessage = async (message: string) => {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\n return bufferToHex(hashBuffer);\n};\n\nexport { getDisplayName, getInitials, hashAdminUserEmail };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim","getInitials","user","substring","split","map","name","join","toUpperCase","hashAdminUserEmail","payload","digestMessage","error","bufferToHex","buffer","Uint8Array","b","toString","padStart","message","msgUint8","TextEncoder","encode","hashBuffer","crypto","subtle","digest"],"mappings":"AAEA;;;;AAMC,IACKA,MAAAA,cAAAA,GAAiB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAiB,GAAG,EAAE,GAAA;AAClF,IAAA,IAAID,QAAU,EAAA;QACZ,OAAOA,QAAAA;AACT;;AAGA,IAAA,IAAIF,SAAW,EAAA;QACb,OAAO,CAAC,EAAEA,SAAU,CAAA,CAAC,EAAEC,QAAY,IAAA,EAAA,CAAG,CAAC,CAACG,IAAI,EAAA;AAC9C;AAEA,IAAA,OAAOD,KAAS,IAAA,EAAA;AAClB;AAEA;;;;AAMC,IACKE,MAAAA,WAAAA,GAAc,CAACC,IAAAA,GAAsB,EAAE,GAAA;IAC3C,OAAOA,IAAAA,EAAMN,aAAaM,IAAML,EAAAA,QAAAA,GAC5B,CAAC,EAAEK,IAAAA,CAAKN,SAAS,CAACO,SAAS,CAAC,CAAG,EAAA,CAAA,CAAA,CAAG,EAAED,IAAKL,CAAAA,QAAQ,CAACM,SAAS,CAAC,GAAG,CAAG,CAAA,CAAA,CAAC,GACnER,cAAeO,CAAAA,IAAAA,CAAAA,CACZE,KAAK,CAAC,GAAA,CAAA,CACNC,GAAG,CAAC,CAACC,OAASA,IAAKH,CAAAA,SAAS,CAAC,CAAG,EAAA,CAAA,CAAA,CAAA,CAChCI,IAAI,CAAC,EAAA,CAAA,CACLJ,SAAS,CAAC,CAAA,EAAG,GACbK,WAAW,EAAA;AACpB;AAEA;;qGAIA,MAAMC,qBAAqB,OAAOC,OAAAA,GAAAA;AAChC,IAAA,IAAI,CAACA,OAAAA,IAAW,CAACA,OAAAA,CAAQX,KAAK,EAAE;QAC9B,OAAO,IAAA;AACT;IAEA,IAAI;QACF,OAAO,MAAMY,aAAcD,CAAAA,OAAAA,CAAQX,KAAK,CAAA;AAC1C,KAAA,CAAE,OAAOa,KAAO,EAAA;QACd,OAAO,IAAA;AACT;AACF;AAEA,MAAMC,cAAc,CAACC,MAAAA,GAAAA;IACnB,OAAO;AAAI,QAAA,GAAA,IAAIC,UAAWD,CAAAA,MAAAA;AAAQ,KAAA,CAACT,GAAG,CAAC,CAACW,CAAAA,GAAMA,CAAEC,CAAAA,QAAQ,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,CAAG,EAAA,GAAA,CAAA,CAAA,CAAMX,IAAI,CAAC,EAAA,CAAA;AACtF,CAAA;AACA,MAAMI,gBAAgB,OAAOQ,OAAAA,GAAAA;AAC3B,IAAA,MAAMC,QAAW,GAAA,IAAIC,WAAcC,EAAAA,CAAAA,MAAM,CAACH,OAAAA,CAAAA;AAC1C,IAAA,MAAMI,aAAa,MAAMC,MAAAA,CAAOC,MAAM,CAACC,MAAM,CAAC,SAAWN,EAAAA,QAAAA,CAAAA;AAEzD,IAAA,OAAOP,WAAYU,CAAAA,UAAAA,CAAAA;AACrB,CAAA;;;;"}
1
+ {"version":3,"file":"users.mjs","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch (error) {\n return null;\n }\n};\n\nconst bufferToHex = (buffer: ArrayBuffer) => {\n return [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, '0')).join('');\n};\nconst digestMessage = async (message: string) => {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\n return bufferToHex(hashBuffer);\n};\n\nexport { getDisplayName, getInitials, hashAdminUserEmail };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim","getInitials","user","substring","split","map","name","join","toUpperCase","hashAdminUserEmail","payload","digestMessage","error","bufferToHex","buffer","Uint8Array","b","toString","padStart","message","msgUint8","TextEncoder","encode","hashBuffer","crypto","subtle","digest"],"mappings":"AAEA;;;;AAMC,IACKA,MAAAA,cAAAA,GAAiB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAiB,GAAG,EAAE,GAAA;AAClF,IAAA,IAAID,QAAU,EAAA;QACZ,OAAOA,QAAAA;AACT;;AAGA,IAAA,IAAIF,SAAW,EAAA;AACb,QAAA,OAAO,GAAGA,SAAU,CAAA,CAAC,EAAEC,QAAY,IAAA,EAAA,CAAA,CAAI,CAACG,IAAI,EAAA;AAC9C;AAEA,IAAA,OAAOD,KAAS,IAAA,EAAA;AAClB;AAEA;;;;AAMC,IACKE,MAAAA,WAAAA,GAAc,CAACC,IAAAA,GAAsB,EAAE,GAAA;AAC3C,IAAA,OAAOA,MAAMN,SAAaM,IAAAA,IAAAA,EAAML,WAC5B,CAAGK,EAAAA,IAAAA,CAAKN,SAAS,CAACO,SAAS,CAAC,CAAA,EAAG,KAAKD,IAAKL,CAAAA,QAAQ,CAACM,SAAS,CAAC,GAAG,CAAI,CAAA,CAAA,CAAA,GACnER,cAAeO,CAAAA,IAAAA,CAAAA,CACZE,KAAK,CAAC,GAAA,CAAA,CACNC,GAAG,CAAC,CAACC,OAASA,IAAKH,CAAAA,SAAS,CAAC,CAAG,EAAA,CAAA,CAAA,CAAA,CAChCI,IAAI,CAAC,EAAA,CAAA,CACLJ,SAAS,CAAC,CAAA,EAAG,GACbK,WAAW,EAAA;AACpB;AAEA;;qGAIA,MAAMC,qBAAqB,OAAOC,OAAAA,GAAAA;AAChC,IAAA,IAAI,CAACA,OAAAA,IAAW,CAACA,OAAAA,CAAQX,KAAK,EAAE;QAC9B,OAAO,IAAA;AACT;IAEA,IAAI;QACF,OAAO,MAAMY,aAAcD,CAAAA,OAAAA,CAAQX,KAAK,CAAA;AAC1C,KAAA,CAAE,OAAOa,KAAO,EAAA;QACd,OAAO,IAAA;AACT;AACF;AAEA,MAAMC,cAAc,CAACC,MAAAA,GAAAA;IACnB,OAAO;AAAI,QAAA,GAAA,IAAIC,UAAWD,CAAAA,MAAAA;AAAQ,KAAA,CAACT,GAAG,CAAC,CAACW,CAAAA,GAAMA,CAAEC,CAAAA,QAAQ,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,CAAG,EAAA,GAAA,CAAA,CAAA,CAAMX,IAAI,CAAC,EAAA,CAAA;AACtF,CAAA;AACA,MAAMI,gBAAgB,OAAOQ,OAAAA,GAAAA;AAC3B,IAAA,MAAMC,QAAW,GAAA,IAAIC,WAAcC,EAAAA,CAAAA,MAAM,CAACH,OAAAA,CAAAA;AAC1C,IAAA,MAAMI,aAAa,MAAMC,MAAAA,CAAOC,MAAM,CAACC,MAAM,CAAC,SAAWN,EAAAA,QAAAA,CAAAA;AAEzD,IAAA,OAAOP,WAAYU,CAAAA,UAAAA,CAAAA;AACrB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Widgets.js","sources":["../../../../../../../ee/admin/src/components/AuditLogs/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { RelativeTime as BaseRelativeTime } from '../../../../../admin/src/components/RelativeTime';\nimport { useQueryParams } from '../../../../../admin/src/hooks/useQueryParams';\nimport { AuditLog } from '../../../../../shared/contracts/audit-logs';\nimport { AUDIT_LOGS_DEFAULT_PAGE_SIZE } from '../../constants';\nimport { getDefaultMessage } from '../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages';\nimport { useGetAuditLogsQuery } from '../../services/auditLogs';\n\nconst RelativeTime = styled(BaseRelativeTime)`\n display: inline-block;\n\n &::first-letter {\n text-transform: uppercase;\n }\n`;\n\nconst LastActivityTable = ({ items }: { items: AuditLog[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getAuditLogDetailsLink = (item: AuditLog): string => {\n return `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;\n };\n\n const handleRowClick = (document: AuditLog) => () => {\n trackUsage('willOpenAuditLogDetailsFromHome');\n const link = getAuditLogDetailsLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => {\n const action = formatMessage(\n {\n id: `Settings.permissions.auditLogs.${item.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(item.action),\n },\n { model: (item.payload.model as string) ?? '' }\n );\n const userDisplayName = item.user?.displayName ?? '-';\n return (\n <Tr\n onClick={handleRowClick(item)}\n cursor=\"pointer\"\n key={`lastActivity_auditLog_${item.id}`}\n >\n <Td>\n <Typography title={action} variant=\"omega\" textColor=\"neutral800\">\n {action}\n </Typography>\n </Td>\n <Td>\n <Typography variant=\"omega\" textColor=\"neutral800\">\n <RelativeTime timestamp={new Date(item.date)} />\n </Typography>\n </Td>\n <Td>\n <Typography title={userDisplayName} variant=\"omega\" textColor=\"neutral800\">\n {userDisplayName}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getAuditLogDetailsLink(item)}\n onClick={() => trackUsage('willOpenAuditLogDetailsFromHome')}\n label={formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n );\n};\n\nconst AuditLogsWidget = () => {\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams();\n const { data, isLoading, error } = useGetAuditLogsQuery(\n {\n ...query,\n page: 1,\n pageSize: 4,\n sort: 'date:DESC',\n },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data?.results) {\n return <Widget.Error />;\n }\n\n if (data.results.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'widget.last-activity.no-activity',\n defaultMessage: 'No activity',\n })}\n </Widget.NoData>\n );\n }\n\n return <LastActivityTable items={data.results ?? []} />;\n};\n\nexport { AuditLogsWidget };\n"],"names":["RelativeTime","styled","BaseRelativeTime","LastActivityTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getAuditLogDetailsLink","item","AUDIT_LOGS_DEFAULT_PAGE_SIZE","id","handleRowClick","document","link","_jsx","Table","colCount","rowCount","length","Tbody","map","action","defaultMessage","getDefaultMessage","model","payload","userDisplayName","user","displayName","_jsxs","Tr","onClick","cursor","Td","Typography","title","variant","textColor","timestamp","Date","date","e","stopPropagation","Box","display","IconButton","tag","Link","to","label","Eye","AuditLogsWidget","query","useQueryParams","data","isLoading","error","useGetAuditLogsQuery","page","pageSize","sort","refetchOnMountOrArgChange","Widget","Loading","results","Error","NoData"],"mappings":"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"}
1
+ {"version":3,"file":"Widgets.js","sources":["../../../../../../../ee/admin/src/components/AuditLogs/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { RelativeTime as BaseRelativeTime } from '../../../../../admin/src/components/RelativeTime';\nimport { useQueryParams } from '../../../../../admin/src/hooks/useQueryParams';\nimport { AuditLog } from '../../../../../shared/contracts/audit-logs';\nimport { AUDIT_LOGS_DEFAULT_PAGE_SIZE } from '../../constants';\nimport { getDefaultMessage } from '../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages';\nimport { useGetAuditLogsQuery } from '../../services/auditLogs';\n\nconst RelativeTime = styled(BaseRelativeTime)`\n display: inline-block;\n\n &::first-letter {\n text-transform: uppercase;\n }\n`;\n\nconst LastActivityTable = ({ items }: { items: AuditLog[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getAuditLogDetailsLink = (item: AuditLog): string => {\n return `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;\n };\n\n const handleRowClick = (document: AuditLog) => () => {\n trackUsage('willOpenAuditLogDetailsFromHome');\n const link = getAuditLogDetailsLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => {\n const action = formatMessage(\n {\n id: `Settings.permissions.auditLogs.${item.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(item.action),\n },\n { model: (item.payload.model as string) ?? '' }\n );\n const userDisplayName = item.user?.displayName ?? '-';\n return (\n <Tr\n onClick={handleRowClick(item)}\n cursor=\"pointer\"\n key={`lastActivity_auditLog_${item.id}`}\n >\n <Td>\n <Typography title={action} variant=\"omega\" textColor=\"neutral800\">\n {action}\n </Typography>\n </Td>\n <Td>\n <Typography variant=\"omega\" textColor=\"neutral800\">\n <RelativeTime timestamp={new Date(item.date)} />\n </Typography>\n </Td>\n <Td>\n <Typography title={userDisplayName} variant=\"omega\" textColor=\"neutral800\">\n {userDisplayName}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getAuditLogDetailsLink(item)}\n onClick={() => trackUsage('willOpenAuditLogDetailsFromHome')}\n label={formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n );\n};\n\nconst AuditLogsWidget = () => {\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams();\n const { data, isLoading, error } = useGetAuditLogsQuery(\n {\n ...query,\n page: 1,\n pageSize: 4,\n sort: 'date:DESC',\n },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data?.results) {\n return <Widget.Error />;\n }\n\n if (data.results.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'widget.last-activity.no-activity',\n defaultMessage: 'No activity',\n })}\n </Widget.NoData>\n );\n }\n\n return <LastActivityTable items={data.results ?? []} />;\n};\n\nexport { AuditLogsWidget };\n"],"names":["RelativeTime","styled","BaseRelativeTime","LastActivityTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getAuditLogDetailsLink","item","AUDIT_LOGS_DEFAULT_PAGE_SIZE","id","handleRowClick","document","link","_jsx","Table","colCount","rowCount","length","Tbody","map","action","defaultMessage","getDefaultMessage","model","payload","userDisplayName","user","displayName","_jsxs","Tr","onClick","cursor","Td","Typography","title","variant","textColor","timestamp","Date","date","e","stopPropagation","Box","display","IconButton","tag","Link","to","label","Eye","AuditLogsWidget","query","useQueryParams","data","isLoading","error","useGetAuditLogsQuery","page","pageSize","sort","refetchOnMountOrArgChange","Widget","Loading","results","Error","NoData"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAMA,YAAAA,GAAeC,aAAOC,CAAAA,2BAAAA,CAAiB;;;;;;AAM7C,CAAC;AAED,MAAMC,iBAAoB,GAAA,CAAC,EAAEC,KAAK,EAAyB,GAAA;IACzD,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,uBAAAA,EAAAA;AACvB,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;AAEjB,IAAA,MAAMC,yBAAyB,CAACC,IAAAA,GAAAA;QAC9B,OAAO,CAAC,8BAA8B,EAAEC,sCAAAA,CAA6B,0BAA0B,EAAED,IAAAA,CAAKE,EAAE,CAAE,CAAA;AAC5G,KAAA;IAEA,MAAMC,cAAAA,GAAiB,CAACC,QAAuB,GAAA,IAAA;YAC7CT,UAAW,CAAA,iCAAA,CAAA;AACX,YAAA,MAAMU,OAAON,sBAAuBK,CAAAA,QAAAA,CAAAA;YACpCP,QAASQ,CAAAA,IAAAA,CAAAA;AACX,SAAA;AAEA,IAAA,qBACEC,cAACC,CAAAA,kBAAAA,EAAAA;QAAMC,QAAU,EAAA,CAAA;AAAGC,QAAAA,QAAAA,EAAUjB,OAAOkB,MAAU,IAAA,CAAA;AAC7C,QAAA,QAAA,gBAAAJ,cAACK,CAAAA,kBAAAA,EAAAA;AACEnB,YAAAA,QAAAA,EAAAA,KAAAA,EAAOoB,IAAI,CAACZ,IAAAA,GAAAA;AACX,gBAAA,MAAMa,SAASpB,aACb,CAAA;AACES,oBAAAA,EAAAA,EAAI,CAAC,+BAA+B,EAAEF,IAAAA,CAAKa,MAAM,CAAE,CAAA;;oBAEnDC,cAAgBC,EAAAA,+CAAAA,CAAkBf,KAAKa,MAAM;iBAE/C,EAAA;AAAEG,oBAAAA,KAAAA,EAAO,IAAChB,CAAKiB,OAAO,CAACD,KAAK,IAAe;AAAG,iBAAA,CAAA;AAEhD,gBAAA,MAAME,eAAkBlB,GAAAA,IAAAA,CAAKmB,IAAI,EAAEC,WAAe,IAAA,GAAA;AAClD,gBAAA,qBACEC,eAACC,CAAAA,eAAAA,EAAAA;AACCC,oBAAAA,OAAAA,EAASpB,cAAeH,CAAAA,IAAAA,CAAAA;oBACxBwB,MAAO,EAAA,SAAA;;sCAGPlB,cAACmB,CAAAA,eAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAnB,cAACoB,CAAAA,uBAAAA,EAAAA;gCAAWC,KAAOd,EAAAA,MAAAA;gCAAQe,OAAQ,EAAA,OAAA;gCAAQC,SAAU,EAAA,YAAA;AAClDhB,gCAAAA,QAAAA,EAAAA;;;sCAGLP,cAACmB,CAAAA,eAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAnB,cAACoB,CAAAA,uBAAAA,EAAAA;gCAAWE,OAAQ,EAAA,OAAA;gCAAQC,SAAU,EAAA,YAAA;AACpC,gCAAA,QAAA,gBAAAvB,cAAClB,CAAAA,YAAAA,EAAAA;oCAAa0C,SAAW,EAAA,IAAIC,IAAK/B,CAAAA,IAAAA,CAAKgC,IAAI;;;;sCAG/C1B,cAACmB,CAAAA,eAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAnB,cAACoB,CAAAA,uBAAAA,EAAAA;gCAAWC,KAAOT,EAAAA,eAAAA;gCAAiBU,OAAQ,EAAA,OAAA;gCAAQC,SAAU,EAAA,YAAA;AAC3DX,gCAAAA,QAAAA,EAAAA;;;sCAGLZ,cAACmB,CAAAA,eAAAA,EAAAA;4BAAGF,OAAS,EAAA,CAACU,CAAMA,GAAAA,CAAAA,CAAEC,eAAe,EAAA;AACnC,4BAAA,QAAA,gBAAA5B,cAAC6B,CAAAA,gBAAAA,EAAAA;gCAAIC,OAAQ,EAAA,cAAA;AACX,gCAAA,QAAA,gBAAA9B,cAAC+B,CAAAA,uBAAAA,EAAAA;oCACCC,GAAKC,EAAAA,mBAAAA;AACLC,oCAAAA,EAAAA,EAAIzC,sBAAuBC,CAAAA,IAAAA,CAAAA;AAC3BuB,oCAAAA,OAAAA,EAAS,IAAM5B,UAAW,CAAA,iCAAA,CAAA;AAC1B8C,oCAAAA,KAAAA,EAAOhD,aAAc,CAAA;wCACnBS,EAAI,EAAA,gBAAA;wCACJY,cAAgB,EAAA;AAClB,qCAAA,CAAA;oCACAc,OAAQ,EAAA,OAAA;AAER,oCAAA,QAAA,gBAAAtB,cAACoC,CAAAA,SAAAA,EAAAA,EAAAA;;;;;AA7BF,iBAAA,EAAA,CAAC,sBAAsB,EAAE1C,IAAKE,CAAAA,EAAE,CAAE,CAAA,CAAA;AAmC7C,aAAA;;;AAIR,CAAA;AAEA,MAAMyC,eAAkB,GAAA,IAAA;IACtB,MAAM,EAAElD,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAAC,EAAEkD,KAAK,EAAE,CAAC,GAAGC,6BAAAA,EAAAA;IACpB,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAEC,KAAK,EAAE,GAAGC,8BACjC,CAAA;AACE,QAAA,GAAGL,KAAK;QACRM,IAAM,EAAA,CAAA;QACNC,QAAU,EAAA,CAAA;QACVC,IAAM,EAAA;KAER,EAAA;QACEC,yBAA2B,EAAA;AAC7B,KAAA,CAAA;AAGF,IAAA,IAAIN,SAAW,EAAA;QACb,qBAAOzC,cAAA,CAACgD,mBAAOC,OAAO,EAAA,EAAA,CAAA;AACxB;IAEA,IAAIP,KAAAA,IAAS,CAACF,IAAAA,EAAMU,OAAS,EAAA;QAC3B,qBAAOlD,cAAA,CAACgD,mBAAOG,KAAK,EAAA,EAAA,CAAA;AACtB;AAEA,IAAA,IAAIX,IAAKU,CAAAA,OAAO,CAAC9C,MAAM,KAAK,CAAG,EAAA;QAC7B,qBACEJ,cAAA,CAACgD,mBAAOI,MAAM,EAAA;sBACXjE,aAAc,CAAA;gBACbS,EAAI,EAAA,kCAAA;gBACJY,cAAgB,EAAA;AAClB,aAAA;;AAGN;AAEA,IAAA,qBAAOR,cAACf,CAAAA,iBAAAA,EAAAA;QAAkBC,KAAOsD,EAAAA,IAAAA,CAAKU,OAAO,IAAI;;AACnD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Widgets.mjs","sources":["../../../../../../../ee/admin/src/components/AuditLogs/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { RelativeTime as BaseRelativeTime } from '../../../../../admin/src/components/RelativeTime';\nimport { useQueryParams } from '../../../../../admin/src/hooks/useQueryParams';\nimport { AuditLog } from '../../../../../shared/contracts/audit-logs';\nimport { AUDIT_LOGS_DEFAULT_PAGE_SIZE } from '../../constants';\nimport { getDefaultMessage } from '../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages';\nimport { useGetAuditLogsQuery } from '../../services/auditLogs';\n\nconst RelativeTime = styled(BaseRelativeTime)`\n display: inline-block;\n\n &::first-letter {\n text-transform: uppercase;\n }\n`;\n\nconst LastActivityTable = ({ items }: { items: AuditLog[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getAuditLogDetailsLink = (item: AuditLog): string => {\n return `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;\n };\n\n const handleRowClick = (document: AuditLog) => () => {\n trackUsage('willOpenAuditLogDetailsFromHome');\n const link = getAuditLogDetailsLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => {\n const action = formatMessage(\n {\n id: `Settings.permissions.auditLogs.${item.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(item.action),\n },\n { model: (item.payload.model as string) ?? '' }\n );\n const userDisplayName = item.user?.displayName ?? '-';\n return (\n <Tr\n onClick={handleRowClick(item)}\n cursor=\"pointer\"\n key={`lastActivity_auditLog_${item.id}`}\n >\n <Td>\n <Typography title={action} variant=\"omega\" textColor=\"neutral800\">\n {action}\n </Typography>\n </Td>\n <Td>\n <Typography variant=\"omega\" textColor=\"neutral800\">\n <RelativeTime timestamp={new Date(item.date)} />\n </Typography>\n </Td>\n <Td>\n <Typography title={userDisplayName} variant=\"omega\" textColor=\"neutral800\">\n {userDisplayName}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getAuditLogDetailsLink(item)}\n onClick={() => trackUsage('willOpenAuditLogDetailsFromHome')}\n label={formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n );\n};\n\nconst AuditLogsWidget = () => {\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams();\n const { data, isLoading, error } = useGetAuditLogsQuery(\n {\n ...query,\n page: 1,\n pageSize: 4,\n sort: 'date:DESC',\n },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data?.results) {\n return <Widget.Error />;\n }\n\n if (data.results.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'widget.last-activity.no-activity',\n defaultMessage: 'No activity',\n })}\n </Widget.NoData>\n );\n }\n\n return <LastActivityTable items={data.results ?? []} />;\n};\n\nexport { AuditLogsWidget };\n"],"names":["RelativeTime","styled","BaseRelativeTime","LastActivityTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getAuditLogDetailsLink","item","AUDIT_LOGS_DEFAULT_PAGE_SIZE","id","handleRowClick","document","link","_jsx","Table","colCount","rowCount","length","Tbody","map","action","defaultMessage","getDefaultMessage","model","payload","userDisplayName","user","displayName","_jsxs","Tr","onClick","cursor","Td","Typography","title","variant","textColor","timestamp","Date","date","e","stopPropagation","Box","display","IconButton","tag","Link","to","label","Eye","AuditLogsWidget","query","useQueryParams","data","isLoading","error","useGetAuditLogsQuery","page","pageSize","sort","refetchOnMountOrArgChange","Widget","Loading","results","Error","NoData"],"mappings":"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"}
1
+ {"version":3,"file":"Widgets.mjs","sources":["../../../../../../../ee/admin/src/components/AuditLogs/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { RelativeTime as BaseRelativeTime } from '../../../../../admin/src/components/RelativeTime';\nimport { useQueryParams } from '../../../../../admin/src/hooks/useQueryParams';\nimport { AuditLog } from '../../../../../shared/contracts/audit-logs';\nimport { AUDIT_LOGS_DEFAULT_PAGE_SIZE } from '../../constants';\nimport { getDefaultMessage } from '../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages';\nimport { useGetAuditLogsQuery } from '../../services/auditLogs';\n\nconst RelativeTime = styled(BaseRelativeTime)`\n display: inline-block;\n\n &::first-letter {\n text-transform: uppercase;\n }\n`;\n\nconst LastActivityTable = ({ items }: { items: AuditLog[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getAuditLogDetailsLink = (item: AuditLog): string => {\n return `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;\n };\n\n const handleRowClick = (document: AuditLog) => () => {\n trackUsage('willOpenAuditLogDetailsFromHome');\n const link = getAuditLogDetailsLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => {\n const action = formatMessage(\n {\n id: `Settings.permissions.auditLogs.${item.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(item.action),\n },\n { model: (item.payload.model as string) ?? '' }\n );\n const userDisplayName = item.user?.displayName ?? '-';\n return (\n <Tr\n onClick={handleRowClick(item)}\n cursor=\"pointer\"\n key={`lastActivity_auditLog_${item.id}`}\n >\n <Td>\n <Typography title={action} variant=\"omega\" textColor=\"neutral800\">\n {action}\n </Typography>\n </Td>\n <Td>\n <Typography variant=\"omega\" textColor=\"neutral800\">\n <RelativeTime timestamp={new Date(item.date)} />\n </Typography>\n </Td>\n <Td>\n <Typography title={userDisplayName} variant=\"omega\" textColor=\"neutral800\">\n {userDisplayName}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getAuditLogDetailsLink(item)}\n onClick={() => trackUsage('willOpenAuditLogDetailsFromHome')}\n label={formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n );\n};\n\nconst AuditLogsWidget = () => {\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams();\n const { data, isLoading, error } = useGetAuditLogsQuery(\n {\n ...query,\n page: 1,\n pageSize: 4,\n sort: 'date:DESC',\n },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data?.results) {\n return <Widget.Error />;\n }\n\n if (data.results.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'widget.last-activity.no-activity',\n defaultMessage: 'No activity',\n })}\n </Widget.NoData>\n );\n }\n\n return <LastActivityTable items={data.results ?? []} />;\n};\n\nexport { AuditLogsWidget };\n"],"names":["RelativeTime","styled","BaseRelativeTime","LastActivityTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getAuditLogDetailsLink","item","AUDIT_LOGS_DEFAULT_PAGE_SIZE","id","handleRowClick","document","link","_jsx","Table","colCount","rowCount","length","Tbody","map","action","defaultMessage","getDefaultMessage","model","payload","userDisplayName","user","displayName","_jsxs","Tr","onClick","cursor","Td","Typography","title","variant","textColor","timestamp","Date","date","e","stopPropagation","Box","display","IconButton","tag","Link","to","label","Eye","AuditLogsWidget","query","useQueryParams","data","isLoading","error","useGetAuditLogsQuery","page","pageSize","sort","refetchOnMountOrArgChange","Widget","Loading","results","Error","NoData"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLicenseLimitNotification.js","sources":["../../../../../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\nconst MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, type } = license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n licenseLimitStatus === 'OVER_LIMIT';\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: type === 'gold' ? BILLING_SELF_HOSTED_URL : MANAGE_SEATS_URL,\n label: formatMessage({\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage: type === 'gold' ? 'Contact sales' : 'Manage seats',\n }),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isError,\n type,\n ]);\n};\n"],"names":["STORAGE_KEY_PREFIX","BILLING_SELF_HOSTED_URL","MANAGE_SEATS_URL","useLicenseLimitNotification","formatMessage","useIntl","license","isError","isLoading","useLicenseLimits","toggleNotification","useNotification","pathname","useLocation","enforcementUserCount","permittedSeats","licenseLimitStatus","type","React","useEffect","shouldDisplayNotification","isNil","window","sessionStorage","getItem","notificationType","message","id","defaultMessage","title","link","url","label","blockTransition","onClose","setItem"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAMA,kBAAqB,GAAA,gCAAA;AAE3B,MAAMC,uBAA0B,GAAA,yCAAA;AAChC,MAAMC,gBAAmB,GAAA,wCAAA;MAEZC,2BAA8B,GAAA,IAAA;IACzC,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,iCAAAA,EAAAA;IACxC,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,6BAAAA,EAAAA;IAC/B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,0BAAAA,EAAAA;IAErB,MAAM,EAAEC,oBAAoB,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,IAAI,EAAE,GAAGX,OAAAA,IAAW,EAAC;AAEvFY,IAAAA,gBAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIZ,WAAWC,SAAW,EAAA;AACxB,YAAA;AACF;AAEA,QAAA,MAAMY,4BACJ,CAACC,KAAAA,CAAMN,mBACP,CAACO,MAAAA,CAAOC,cAAc,CAACC,OAAO,CAAC,CAAC,EAAExB,kBAAmB,CAAA,CAAC,EAAEY,QAAS,CAAA,CAAC,KAClEI,kBAAuB,KAAA,YAAA;QAEzB,IAAIS,gBAAAA;AAEJ,QAAA,IAAIT,uBAAuB,YAAc,EAAA;YACvCS,gBAAmB,GAAA,QAAA;AACrB;AAEA,QAAA,IAAIL,yBAA2B,EAAA;YAC7BV,kBAAmB,CAAA;gBACjBO,IAAMQ,EAAAA,gBAAAA;AACNC,gBAAAA,OAAAA,EAAStB,aACP,CAAA;oBACEuB,EAAI,EAAA,uCAAA;oBACJC,cACE,EAAA;iBAEJ,EAAA;AAAEZ,oBAAAA;AAAmB,iBAAA,CAAA;AAEvBa,gBAAAA,KAAAA,EAAOzB,aACL,CAAA;oBACEuB,EAAI,EAAA,6CAAA;oBACJC,cACE,EAAA;iBAEJ,EAAA;AACEZ,oBAAAA,kBAAAA;AACAF,oBAAAA,oBAAAA;AACAC,oBAAAA;AACF,iBAAA,CAAA;gBAEFe,IAAM,EAAA;oBACJC,GAAKd,EAAAA,IAAAA,KAAS,SAAShB,uBAA0BC,GAAAA,gBAAAA;AACjD8B,oBAAAA,KAAAA,EAAO5B,aAAc,CAAA;wBACnBuB,EAAI,EAAA,yCAAA;wBACJC,cAAgBX,EAAAA,IAAAA,KAAS,SAAS,eAAkB,GAAA;AACtD,qBAAA;AACF,iBAAA;gBACAgB,eAAiB,EAAA,IAAA;AACjBC,gBAAAA,OAAAA,CAAAA,GAAAA;oBACEZ,MAAOC,CAAAA,cAAc,CAACY,OAAO,CAAC,CAAC,EAAEnC,kBAAAA,CAAmB,CAAC,EAAEY,QAAS,CAAA,CAAC,EAAE,MAAA,CAAA;AACrE;AACF,aAAA,CAAA;AACF;KACC,EAAA;AACDF,QAAAA,kBAAAA;AACAJ,QAAAA,OAAAA;AACAM,QAAAA,QAAAA;AACAR,QAAAA,aAAAA;AACAI,QAAAA,SAAAA;AACAO,QAAAA,cAAAA;AACAC,QAAAA,kBAAAA;AACAF,QAAAA,oBAAAA;AACAP,QAAAA,OAAAA;AACAU,QAAAA;AACD,KAAA,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useLicenseLimitNotification.js","sources":["../../../../../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\nconst MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, type } = license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n licenseLimitStatus === 'OVER_LIMIT';\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: type === 'gold' ? BILLING_SELF_HOSTED_URL : MANAGE_SEATS_URL,\n label: formatMessage({\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage: type === 'gold' ? 'Contact sales' : 'Manage seats',\n }),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isError,\n type,\n ]);\n};\n"],"names":["STORAGE_KEY_PREFIX","BILLING_SELF_HOSTED_URL","MANAGE_SEATS_URL","useLicenseLimitNotification","formatMessage","useIntl","license","isError","isLoading","useLicenseLimits","toggleNotification","useNotification","pathname","useLocation","enforcementUserCount","permittedSeats","licenseLimitStatus","type","React","useEffect","shouldDisplayNotification","isNil","window","sessionStorage","getItem","notificationType","message","id","defaultMessage","title","link","url","label","blockTransition","onClose","setItem"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAMA,kBAAqB,GAAA,gCAAA;AAE3B,MAAMC,uBAA0B,GAAA,yCAAA;AAChC,MAAMC,gBAAmB,GAAA,wCAAA;MAEZC,2BAA8B,GAAA,IAAA;IACzC,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,iCAAAA,EAAAA;IACxC,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,6BAAAA,EAAAA;IAC/B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,0BAAAA,EAAAA;IAErB,MAAM,EAAEC,oBAAoB,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,IAAI,EAAE,GAAGX,OAAAA,IAAW,EAAC;AAEvFY,IAAAA,gBAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIZ,WAAWC,SAAW,EAAA;AACxB,YAAA;AACF;AAEA,QAAA,MAAMY,4BACJ,CAACC,KAAAA,CAAMN,cACP,CAAA,IAAA,CAACO,OAAOC,cAAc,CAACC,OAAO,CAAC,GAAGxB,kBAAmB,CAAA,CAAC,EAAEY,QAAAA,CAAAA,CAAU,KAClEI,kBAAuB,KAAA,YAAA;QAEzB,IAAIS,gBAAAA;AAEJ,QAAA,IAAIT,uBAAuB,YAAc,EAAA;YACvCS,gBAAmB,GAAA,QAAA;AACrB;AAEA,QAAA,IAAIL,yBAA2B,EAAA;YAC7BV,kBAAmB,CAAA;gBACjBO,IAAMQ,EAAAA,gBAAAA;AACNC,gBAAAA,OAAAA,EAAStB,aACP,CAAA;oBACEuB,EAAI,EAAA,uCAAA;oBACJC,cACE,EAAA;iBAEJ,EAAA;AAAEZ,oBAAAA;AAAmB,iBAAA,CAAA;AAEvBa,gBAAAA,KAAAA,EAAOzB,aACL,CAAA;oBACEuB,EAAI,EAAA,6CAAA;oBACJC,cACE,EAAA;iBAEJ,EAAA;AACEZ,oBAAAA,kBAAAA;AACAF,oBAAAA,oBAAAA;AACAC,oBAAAA;AACF,iBAAA,CAAA;gBAEFe,IAAM,EAAA;oBACJC,GAAKd,EAAAA,IAAAA,KAAS,SAAShB,uBAA0BC,GAAAA,gBAAAA;AACjD8B,oBAAAA,KAAAA,EAAO5B,aAAc,CAAA;wBACnBuB,EAAI,EAAA,yCAAA;wBACJC,cAAgBX,EAAAA,IAAAA,KAAS,SAAS,eAAkB,GAAA;AACtD,qBAAA;AACF,iBAAA;gBACAgB,eAAiB,EAAA,IAAA;AACjBC,gBAAAA,OAAAA,CAAAA,GAAAA;oBACEZ,MAAOC,CAAAA,cAAc,CAACY,OAAO,CAAC,GAAGnC,kBAAmB,CAAA,CAAC,EAAEY,QAAAA,CAAAA,CAAU,EAAE,MAAA,CAAA;AACrE;AACF,aAAA,CAAA;AACF;KACC,EAAA;AACDF,QAAAA,kBAAAA;AACAJ,QAAAA,OAAAA;AACAM,QAAAA,QAAAA;AACAR,QAAAA,aAAAA;AACAI,QAAAA,SAAAA;AACAO,QAAAA,cAAAA;AACAC,QAAAA,kBAAAA;AACAF,QAAAA,oBAAAA;AACAP,QAAAA,OAAAA;AACAU,QAAAA;AACD,KAAA,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLicenseLimitNotification.mjs","sources":["../../../../../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\nconst MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, type } = license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n licenseLimitStatus === 'OVER_LIMIT';\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: type === 'gold' ? BILLING_SELF_HOSTED_URL : MANAGE_SEATS_URL,\n label: formatMessage({\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage: type === 'gold' ? 'Contact sales' : 'Manage seats',\n }),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isError,\n type,\n ]);\n};\n"],"names":["STORAGE_KEY_PREFIX","BILLING_SELF_HOSTED_URL","MANAGE_SEATS_URL","useLicenseLimitNotification","formatMessage","useIntl","license","isError","isLoading","useLicenseLimits","toggleNotification","useNotification","pathname","useLocation","enforcementUserCount","permittedSeats","licenseLimitStatus","type","React","useEffect","shouldDisplayNotification","isNil","window","sessionStorage","getItem","notificationType","message","id","defaultMessage","title","link","url","label","blockTransition","onClose","setItem"],"mappings":";;;;;;;AAeA,MAAMA,kBAAqB,GAAA,gCAAA;AAE3B,MAAMC,uBAA0B,GAAA,yCAAA;AAChC,MAAMC,gBAAmB,GAAA,wCAAA;MAEZC,2BAA8B,GAAA,IAAA;IACzC,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,gBAAAA,EAAAA;IACxC,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;IAErB,MAAM,EAAEC,oBAAoB,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,IAAI,EAAE,GAAGX,OAAAA,IAAW,EAAC;AAEvFY,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIZ,WAAWC,SAAW,EAAA;AACxB,YAAA;AACF;AAEA,QAAA,MAAMY,4BACJ,CAACC,KAAAA,CAAMN,mBACP,CAACO,MAAAA,CAAOC,cAAc,CAACC,OAAO,CAAC,CAAC,EAAExB,kBAAmB,CAAA,CAAC,EAAEY,QAAS,CAAA,CAAC,KAClEI,kBAAuB,KAAA,YAAA;QAEzB,IAAIS,gBAAAA;AAEJ,QAAA,IAAIT,uBAAuB,YAAc,EAAA;YACvCS,gBAAmB,GAAA,QAAA;AACrB;AAEA,QAAA,IAAIL,yBAA2B,EAAA;YAC7BV,kBAAmB,CAAA;gBACjBO,IAAMQ,EAAAA,gBAAAA;AACNC,gBAAAA,OAAAA,EAAStB,aACP,CAAA;oBACEuB,EAAI,EAAA,uCAAA;oBACJC,cACE,EAAA;iBAEJ,EAAA;AAAEZ,oBAAAA;AAAmB,iBAAA,CAAA;AAEvBa,gBAAAA,KAAAA,EAAOzB,aACL,CAAA;oBACEuB,EAAI,EAAA,6CAAA;oBACJC,cACE,EAAA;iBAEJ,EAAA;AACEZ,oBAAAA,kBAAAA;AACAF,oBAAAA,oBAAAA;AACAC,oBAAAA;AACF,iBAAA,CAAA;gBAEFe,IAAM,EAAA;oBACJC,GAAKd,EAAAA,IAAAA,KAAS,SAAShB,uBAA0BC,GAAAA,gBAAAA;AACjD8B,oBAAAA,KAAAA,EAAO5B,aAAc,CAAA;wBACnBuB,EAAI,EAAA,yCAAA;wBACJC,cAAgBX,EAAAA,IAAAA,KAAS,SAAS,eAAkB,GAAA;AACtD,qBAAA;AACF,iBAAA;gBACAgB,eAAiB,EAAA,IAAA;AACjBC,gBAAAA,OAAAA,CAAAA,GAAAA;oBACEZ,MAAOC,CAAAA,cAAc,CAACY,OAAO,CAAC,CAAC,EAAEnC,kBAAAA,CAAmB,CAAC,EAAEY,QAAS,CAAA,CAAC,EAAE,MAAA,CAAA;AACrE;AACF,aAAA,CAAA;AACF;KACC,EAAA;AACDF,QAAAA,kBAAAA;AACAJ,QAAAA,OAAAA;AACAM,QAAAA,QAAAA;AACAR,QAAAA,aAAAA;AACAI,QAAAA,SAAAA;AACAO,QAAAA,cAAAA;AACAC,QAAAA,kBAAAA;AACAF,QAAAA,oBAAAA;AACAP,QAAAA,OAAAA;AACAU,QAAAA;AACD,KAAA,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useLicenseLimitNotification.mjs","sources":["../../../../../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\nconst MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, type } = license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n licenseLimitStatus === 'OVER_LIMIT';\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: type === 'gold' ? BILLING_SELF_HOSTED_URL : MANAGE_SEATS_URL,\n label: formatMessage({\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage: type === 'gold' ? 'Contact sales' : 'Manage seats',\n }),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isError,\n type,\n ]);\n};\n"],"names":["STORAGE_KEY_PREFIX","BILLING_SELF_HOSTED_URL","MANAGE_SEATS_URL","useLicenseLimitNotification","formatMessage","useIntl","license","isError","isLoading","useLicenseLimits","toggleNotification","useNotification","pathname","useLocation","enforcementUserCount","permittedSeats","licenseLimitStatus","type","React","useEffect","shouldDisplayNotification","isNil","window","sessionStorage","getItem","notificationType","message","id","defaultMessage","title","link","url","label","blockTransition","onClose","setItem"],"mappings":";;;;;;;AAeA,MAAMA,kBAAqB,GAAA,gCAAA;AAE3B,MAAMC,uBAA0B,GAAA,yCAAA;AAChC,MAAMC,gBAAmB,GAAA,wCAAA;MAEZC,2BAA8B,GAAA,IAAA;IACzC,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,gBAAAA,EAAAA;IACxC,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;IAErB,MAAM,EAAEC,oBAAoB,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,IAAI,EAAE,GAAGX,OAAAA,IAAW,EAAC;AAEvFY,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIZ,WAAWC,SAAW,EAAA;AACxB,YAAA;AACF;AAEA,QAAA,MAAMY,4BACJ,CAACC,KAAAA,CAAMN,cACP,CAAA,IAAA,CAACO,OAAOC,cAAc,CAACC,OAAO,CAAC,GAAGxB,kBAAmB,CAAA,CAAC,EAAEY,QAAAA,CAAAA,CAAU,KAClEI,kBAAuB,KAAA,YAAA;QAEzB,IAAIS,gBAAAA;AAEJ,QAAA,IAAIT,uBAAuB,YAAc,EAAA;YACvCS,gBAAmB,GAAA,QAAA;AACrB;AAEA,QAAA,IAAIL,yBAA2B,EAAA;YAC7BV,kBAAmB,CAAA;gBACjBO,IAAMQ,EAAAA,gBAAAA;AACNC,gBAAAA,OAAAA,EAAStB,aACP,CAAA;oBACEuB,EAAI,EAAA,uCAAA;oBACJC,cACE,EAAA;iBAEJ,EAAA;AAAEZ,oBAAAA;AAAmB,iBAAA,CAAA;AAEvBa,gBAAAA,KAAAA,EAAOzB,aACL,CAAA;oBACEuB,EAAI,EAAA,6CAAA;oBACJC,cACE,EAAA;iBAEJ,EAAA;AACEZ,oBAAAA,kBAAAA;AACAF,oBAAAA,oBAAAA;AACAC,oBAAAA;AACF,iBAAA,CAAA;gBAEFe,IAAM,EAAA;oBACJC,GAAKd,EAAAA,IAAAA,KAAS,SAAShB,uBAA0BC,GAAAA,gBAAAA;AACjD8B,oBAAAA,KAAAA,EAAO5B,aAAc,CAAA;wBACnBuB,EAAI,EAAA,yCAAA;wBACJC,cAAgBX,EAAAA,IAAAA,KAAS,SAAS,eAAkB,GAAA;AACtD,qBAAA;AACF,iBAAA;gBACAgB,eAAiB,EAAA,IAAA;AACjBC,gBAAAA,OAAAA,CAAAA,GAAAA;oBACEZ,MAAOC,CAAAA,cAAc,CAACY,OAAO,CAAC,GAAGnC,kBAAmB,CAAA,CAAC,EAAEY,QAAAA,CAAAA,CAAU,EAAE,MAAA,CAAA;AACrE;AACF,aAAA,CAAA;AACF;KACC,EAAA;AACDF,QAAAA,kBAAAA;AACAJ,QAAAA,OAAAA;AACAM,QAAAA,QAAAA;AACAR,QAAAA,aAAAA;AACAI,QAAAA,SAAAA;AACAO,QAAAA,cAAAA;AACAC,QAAAA,kBAAAA;AACAF,QAAAA,oBAAAA;AACAP,QAAAA,OAAAA;AACAU,QAAAA;AACD,KAAA,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SSOProviders.js","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/SSOProviders.tsx"],"sourcesContent":["import { Flex, Grid, Tooltip, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProvidersProps {\n providers: GetProviders.Response;\n displayAllProviders?: boolean;\n}\n\nconst SSOProviders = ({ providers, displayAllProviders }: SSOProvidersProps) => {\n const { formatMessage } = useIntl();\n\n if (displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n }\n\n if (providers.length > 2 && !displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.slice(0, 2).map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n <Grid.Item col={4} direction=\"column\" alignItems=\"stretch\">\n <Tooltip\n label={formatMessage({\n id: 'global.see-more',\n })}\n >\n <SSOButton as={Link} to=\"/auth/providers\">\n <span aria-hidden>•••</span>\n </SSOButton>\n </Tooltip>\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <SSOProvidersWrapper justifyContent=\"center\">\n {providers.map((provider) => (\n <SSOProviderButton key={provider.uid} provider={provider} />\n ))}\n </SSOProvidersWrapper>\n );\n};\n\nconst SSOProvidersWrapper = styled(Flex)`\n & a:not(:first-child):not(:last-child) {\n margin: 0 ${({ theme }) => theme.spaces[2]};\n }\n & a:first-child {\n margin-right: ${({ theme }) => theme.spaces[2]};\n }\n & a:last-child {\n margin-left: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviderButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProviderButtonProps {\n provider: GetProviders.Response[number];\n}\n\nconst SSOProviderButton = ({ provider }: SSOProviderButtonProps) => {\n return (\n <Tooltip label={provider.displayName}>\n <SSOButton href={`${window.strapi.backendURL}/admin/connect/${provider.uid}`}>\n {provider.icon ? (\n <img src={provider.icon} aria-hidden alt=\"\" height=\"32px\" />\n ) : (\n <Typography>{provider.displayName}</Typography>\n )}\n </SSOButton>\n </Tooltip>\n );\n};\n\nconst SSOButton = styled.a`\n width: 13.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 4.8rem;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: inherit;\n &:link {\n text-decoration: none;\n }\n color: ${({ theme }) => theme.colors.neutral600};\n`;\n\nexport { SSOProviders };\nexport type { SSOProvidersProps };\n"],"names":["SSOProviders","providers","displayAllProviders","formatMessage","useIntl","_jsx","Grid","Root","gap","map","provider","Item","col","direction","alignItems","SSOProviderButton","uid","length","_jsxs","slice","Tooltip","label","id","SSOButton","as","Link","to","span","aria-hidden","SSOProvidersWrapper","justifyContent","styled","Flex","theme","spaces","displayName","href","window","strapi","backendURL","icon","img","src","alt","height","Typography","a","colors","neutral150","borderRadius","neutral600"],"mappings":"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"}
1
+ {"version":3,"file":"SSOProviders.js","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/SSOProviders.tsx"],"sourcesContent":["import { Flex, Grid, Tooltip, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProvidersProps {\n providers: GetProviders.Response;\n displayAllProviders?: boolean;\n}\n\nconst SSOProviders = ({ providers, displayAllProviders }: SSOProvidersProps) => {\n const { formatMessage } = useIntl();\n\n if (displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n }\n\n if (providers.length > 2 && !displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.slice(0, 2).map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n <Grid.Item col={4} direction=\"column\" alignItems=\"stretch\">\n <Tooltip\n label={formatMessage({\n id: 'global.see-more',\n })}\n >\n <SSOButton as={Link} to=\"/auth/providers\">\n <span aria-hidden>•••</span>\n </SSOButton>\n </Tooltip>\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <SSOProvidersWrapper justifyContent=\"center\">\n {providers.map((provider) => (\n <SSOProviderButton key={provider.uid} provider={provider} />\n ))}\n </SSOProvidersWrapper>\n );\n};\n\nconst SSOProvidersWrapper = styled(Flex)`\n & a:not(:first-child):not(:last-child) {\n margin: 0 ${({ theme }) => theme.spaces[2]};\n }\n & a:first-child {\n margin-right: ${({ theme }) => theme.spaces[2]};\n }\n & a:last-child {\n margin-left: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviderButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProviderButtonProps {\n provider: GetProviders.Response[number];\n}\n\nconst SSOProviderButton = ({ provider }: SSOProviderButtonProps) => {\n return (\n <Tooltip label={provider.displayName}>\n <SSOButton href={`${window.strapi.backendURL}/admin/connect/${provider.uid}`}>\n {provider.icon ? (\n <img src={provider.icon} aria-hidden alt=\"\" height=\"32px\" />\n ) : (\n <Typography>{provider.displayName}</Typography>\n )}\n </SSOButton>\n </Tooltip>\n );\n};\n\nconst SSOButton = styled.a`\n width: 13.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 4.8rem;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: inherit;\n &:link {\n text-decoration: none;\n }\n color: ${({ theme }) => theme.colors.neutral600};\n`;\n\nexport { SSOProviders };\nexport type { SSOProvidersProps };\n"],"names":["SSOProviders","providers","displayAllProviders","formatMessage","useIntl","_jsx","Grid","Root","gap","map","provider","Item","col","direction","alignItems","SSOProviderButton","uid","length","_jsxs","slice","Tooltip","label","id","SSOButton","as","Link","to","span","aria-hidden","SSOProvidersWrapper","justifyContent","styled","Flex","theme","spaces","displayName","href","window","strapi","backendURL","icon","img","src","alt","height","Typography","a","colors","neutral150","borderRadius","neutral600"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SSOProviders.mjs","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/SSOProviders.tsx"],"sourcesContent":["import { Flex, Grid, Tooltip, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProvidersProps {\n providers: GetProviders.Response;\n displayAllProviders?: boolean;\n}\n\nconst SSOProviders = ({ providers, displayAllProviders }: SSOProvidersProps) => {\n const { formatMessage } = useIntl();\n\n if (displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n }\n\n if (providers.length > 2 && !displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.slice(0, 2).map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n <Grid.Item col={4} direction=\"column\" alignItems=\"stretch\">\n <Tooltip\n label={formatMessage({\n id: 'global.see-more',\n })}\n >\n <SSOButton as={Link} to=\"/auth/providers\">\n <span aria-hidden>•••</span>\n </SSOButton>\n </Tooltip>\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <SSOProvidersWrapper justifyContent=\"center\">\n {providers.map((provider) => (\n <SSOProviderButton key={provider.uid} provider={provider} />\n ))}\n </SSOProvidersWrapper>\n );\n};\n\nconst SSOProvidersWrapper = styled(Flex)`\n & a:not(:first-child):not(:last-child) {\n margin: 0 ${({ theme }) => theme.spaces[2]};\n }\n & a:first-child {\n margin-right: ${({ theme }) => theme.spaces[2]};\n }\n & a:last-child {\n margin-left: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviderButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProviderButtonProps {\n provider: GetProviders.Response[number];\n}\n\nconst SSOProviderButton = ({ provider }: SSOProviderButtonProps) => {\n return (\n <Tooltip label={provider.displayName}>\n <SSOButton href={`${window.strapi.backendURL}/admin/connect/${provider.uid}`}>\n {provider.icon ? (\n <img src={provider.icon} aria-hidden alt=\"\" height=\"32px\" />\n ) : (\n <Typography>{provider.displayName}</Typography>\n )}\n </SSOButton>\n </Tooltip>\n );\n};\n\nconst SSOButton = styled.a`\n width: 13.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 4.8rem;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: inherit;\n &:link {\n text-decoration: none;\n }\n color: ${({ theme }) => theme.colors.neutral600};\n`;\n\nexport { SSOProviders };\nexport type { SSOProvidersProps };\n"],"names":["SSOProviders","providers","displayAllProviders","formatMessage","useIntl","_jsx","Grid","Root","gap","map","provider","Item","col","direction","alignItems","SSOProviderButton","uid","length","_jsxs","slice","Tooltip","label","id","SSOButton","as","Link","to","span","aria-hidden","SSOProvidersWrapper","justifyContent","styled","Flex","theme","spaces","displayName","href","window","strapi","backendURL","icon","img","src","alt","height","Typography","a","colors","neutral150","borderRadius","neutral600"],"mappings":"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"}
1
+ {"version":3,"file":"SSOProviders.mjs","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/SSOProviders.tsx"],"sourcesContent":["import { Flex, Grid, Tooltip, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProvidersProps {\n providers: GetProviders.Response;\n displayAllProviders?: boolean;\n}\n\nconst SSOProviders = ({ providers, displayAllProviders }: SSOProvidersProps) => {\n const { formatMessage } = useIntl();\n\n if (displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n }\n\n if (providers.length > 2 && !displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.slice(0, 2).map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n <Grid.Item col={4} direction=\"column\" alignItems=\"stretch\">\n <Tooltip\n label={formatMessage({\n id: 'global.see-more',\n })}\n >\n <SSOButton as={Link} to=\"/auth/providers\">\n <span aria-hidden>•••</span>\n </SSOButton>\n </Tooltip>\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <SSOProvidersWrapper justifyContent=\"center\">\n {providers.map((provider) => (\n <SSOProviderButton key={provider.uid} provider={provider} />\n ))}\n </SSOProvidersWrapper>\n );\n};\n\nconst SSOProvidersWrapper = styled(Flex)`\n & a:not(:first-child):not(:last-child) {\n margin: 0 ${({ theme }) => theme.spaces[2]};\n }\n & a:first-child {\n margin-right: ${({ theme }) => theme.spaces[2]};\n }\n & a:last-child {\n margin-left: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviderButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProviderButtonProps {\n provider: GetProviders.Response[number];\n}\n\nconst SSOProviderButton = ({ provider }: SSOProviderButtonProps) => {\n return (\n <Tooltip label={provider.displayName}>\n <SSOButton href={`${window.strapi.backendURL}/admin/connect/${provider.uid}`}>\n {provider.icon ? (\n <img src={provider.icon} aria-hidden alt=\"\" height=\"32px\" />\n ) : (\n <Typography>{provider.displayName}</Typography>\n )}\n </SSOButton>\n </Tooltip>\n );\n};\n\nconst SSOButton = styled.a`\n width: 13.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 4.8rem;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: inherit;\n &:link {\n text-decoration: none;\n }\n color: ${({ theme }) => theme.colors.neutral600};\n`;\n\nexport { SSOProviders };\nexport type { SSOProvidersProps };\n"],"names":["SSOProviders","providers","displayAllProviders","formatMessage","useIntl","_jsx","Grid","Root","gap","map","provider","Item","col","direction","alignItems","SSOProviderButton","uid","length","_jsxs","slice","Tooltip","label","id","SSOButton","as","Link","to","span","aria-hidden","SSOProvidersWrapper","justifyContent","styled","Flex","theme","spaces","displayName","href","window","strapi","backendURL","icon","img","src","alt","height","Typography","a","colors","neutral150","borderRadius","neutral600"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AuthResponse.js","sources":["../../../../../../ee/admin/src/pages/AuthResponse.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { Page } from '../../../../admin/src/components/PageHelpers';\nimport { useTypedDispatch } from '../../../../admin/src/core/store/hooks';\nimport { login } from '../../../../admin/src/reducer';\nimport { getCookieValue } from '../../../../admin/src/utils/cookies';\n\nconst AuthResponse = () => {\n const match = useMatch('/auth/login/:authResponse');\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const dispatch = useTypedDispatch();\n\n const redirectToOops = React.useCallback(() => {\n navigate({\n pathname: '/auth/oops',\n search: `?info=${encodeURIComponent(\n formatMessage({\n id: 'Auth.form.button.login.providers.error',\n defaultMessage: 'We cannot connect you through the selected provider.',\n })\n )}`,\n });\n }, [navigate, formatMessage]);\n\n React.useEffect(() => {\n if (match?.params.authResponse === 'error') {\n redirectToOops();\n }\n\n if (match?.params.authResponse === 'success') {\n const jwtToken = getCookieValue('jwtToken');\n\n if (jwtToken) {\n dispatch(\n login({\n token: jwtToken,\n })\n );\n\n navigate('/auth/login');\n } else {\n redirectToOops();\n }\n }\n }, [dispatch, match, redirectToOops, navigate]);\n\n return <Page.Loading />;\n};\n\nexport { AuthResponse };\n"],"names":["AuthResponse","match","useMatch","formatMessage","useIntl","navigate","useNavigate","dispatch","useTypedDispatch","redirectToOops","React","useCallback","pathname","search","encodeURIComponent","id","defaultMessage","useEffect","params","authResponse","jwtToken","getCookieValue","login","token","_jsx","Page","Loading"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAMA,YAAe,GAAA,IAAA;AACnB,IAAA,MAAMC,QAAQC,uBAAS,CAAA,2BAAA,CAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;AACjB,IAAA,MAAMC,QAAWC,GAAAA,sBAAAA,EAAAA;IAEjB,MAAMC,cAAAA,GAAiBC,gBAAMC,CAAAA,WAAW,CAAC,IAAA;QACvCN,QAAS,CAAA;YACPO,QAAU,EAAA,YAAA;AACVC,YAAAA,MAAAA,EAAQ,CAAC,MAAM,EAAEC,kBAAAA,CACfX,aAAc,CAAA;gBACZY,EAAI,EAAA,wCAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA,CAAA,CAAA,CACA;AACJ,SAAA,CAAA;KACC,EAAA;AAACX,QAAAA,QAAAA;AAAUF,QAAAA;AAAc,KAAA,CAAA;AAE5BO,IAAAA,gBAAAA,CAAMO,SAAS,CAAC,IAAA;QACd,IAAIhB,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,OAAS,EAAA;AAC1CV,YAAAA,cAAAA,EAAAA;AACF;QAEA,IAAIR,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,SAAW,EAAA;AAC5C,YAAA,MAAMC,WAAWC,sBAAe,CAAA,UAAA,CAAA;AAEhC,YAAA,IAAID,QAAU,EAAA;AACZb,gBAAAA,QAAAA,CACEe,aAAM,CAAA;oBACJC,KAAOH,EAAAA;AACT,iBAAA,CAAA,CAAA;gBAGFf,QAAS,CAAA,aAAA,CAAA;aACJ,MAAA;AACLI,gBAAAA,cAAAA,EAAAA;AACF;AACF;KACC,EAAA;AAACF,QAAAA,QAAAA;AAAUN,QAAAA,KAAAA;AAAOQ,QAAAA,cAAAA;AAAgBJ,QAAAA;AAAS,KAAA,CAAA;IAE9C,qBAAOmB,cAAA,CAACC,iBAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;;;;"}
1
+ {"version":3,"file":"AuthResponse.js","sources":["../../../../../../ee/admin/src/pages/AuthResponse.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { Page } from '../../../../admin/src/components/PageHelpers';\nimport { useTypedDispatch } from '../../../../admin/src/core/store/hooks';\nimport { login } from '../../../../admin/src/reducer';\nimport { getCookieValue } from '../../../../admin/src/utils/cookies';\n\nconst AuthResponse = () => {\n const match = useMatch('/auth/login/:authResponse');\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const dispatch = useTypedDispatch();\n\n const redirectToOops = React.useCallback(() => {\n navigate({\n pathname: '/auth/oops',\n search: `?info=${encodeURIComponent(\n formatMessage({\n id: 'Auth.form.button.login.providers.error',\n defaultMessage: 'We cannot connect you through the selected provider.',\n })\n )}`,\n });\n }, [navigate, formatMessage]);\n\n React.useEffect(() => {\n if (match?.params.authResponse === 'error') {\n redirectToOops();\n }\n\n if (match?.params.authResponse === 'success') {\n const jwtToken = getCookieValue('jwtToken');\n\n if (jwtToken) {\n dispatch(\n login({\n token: jwtToken,\n })\n );\n\n navigate('/auth/login');\n } else {\n redirectToOops();\n }\n }\n }, [dispatch, match, redirectToOops, navigate]);\n\n return <Page.Loading />;\n};\n\nexport { AuthResponse };\n"],"names":["AuthResponse","match","useMatch","formatMessage","useIntl","navigate","useNavigate","dispatch","useTypedDispatch","redirectToOops","React","useCallback","pathname","search","encodeURIComponent","id","defaultMessage","useEffect","params","authResponse","jwtToken","getCookieValue","login","token","_jsx","Page","Loading"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAMA,YAAe,GAAA,IAAA;AACnB,IAAA,MAAMC,QAAQC,uBAAS,CAAA,2BAAA,CAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;AACjB,IAAA,MAAMC,QAAWC,GAAAA,sBAAAA,EAAAA;IAEjB,MAAMC,cAAAA,GAAiBC,gBAAMC,CAAAA,WAAW,CAAC,IAAA;QACvCN,QAAS,CAAA;YACPO,QAAU,EAAA,YAAA;AACVC,YAAAA,MAAAA,EAAQ,CAAC,MAAM,EAAEC,kBAAAA,CACfX,aAAc,CAAA;gBACZY,EAAI,EAAA,wCAAA;gBACJC,cAAgB,EAAA;aAEjB,CAAA,CAAA,CAAA;AACL,SAAA,CAAA;KACC,EAAA;AAACX,QAAAA,QAAAA;AAAUF,QAAAA;AAAc,KAAA,CAAA;AAE5BO,IAAAA,gBAAAA,CAAMO,SAAS,CAAC,IAAA;QACd,IAAIhB,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,OAAS,EAAA;AAC1CV,YAAAA,cAAAA,EAAAA;AACF;QAEA,IAAIR,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,SAAW,EAAA;AAC5C,YAAA,MAAMC,WAAWC,sBAAe,CAAA,UAAA,CAAA;AAEhC,YAAA,IAAID,QAAU,EAAA;AACZb,gBAAAA,QAAAA,CACEe,aAAM,CAAA;oBACJC,KAAOH,EAAAA;AACT,iBAAA,CAAA,CAAA;gBAGFf,QAAS,CAAA,aAAA,CAAA;aACJ,MAAA;AACLI,gBAAAA,cAAAA,EAAAA;AACF;AACF;KACC,EAAA;AAACF,QAAAA,QAAAA;AAAUN,QAAAA,KAAAA;AAAOQ,QAAAA,cAAAA;AAAgBJ,QAAAA;AAAS,KAAA,CAAA;IAE9C,qBAAOmB,cAAA,CAACC,iBAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AuthResponse.mjs","sources":["../../../../../../ee/admin/src/pages/AuthResponse.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { Page } from '../../../../admin/src/components/PageHelpers';\nimport { useTypedDispatch } from '../../../../admin/src/core/store/hooks';\nimport { login } from '../../../../admin/src/reducer';\nimport { getCookieValue } from '../../../../admin/src/utils/cookies';\n\nconst AuthResponse = () => {\n const match = useMatch('/auth/login/:authResponse');\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const dispatch = useTypedDispatch();\n\n const redirectToOops = React.useCallback(() => {\n navigate({\n pathname: '/auth/oops',\n search: `?info=${encodeURIComponent(\n formatMessage({\n id: 'Auth.form.button.login.providers.error',\n defaultMessage: 'We cannot connect you through the selected provider.',\n })\n )}`,\n });\n }, [navigate, formatMessage]);\n\n React.useEffect(() => {\n if (match?.params.authResponse === 'error') {\n redirectToOops();\n }\n\n if (match?.params.authResponse === 'success') {\n const jwtToken = getCookieValue('jwtToken');\n\n if (jwtToken) {\n dispatch(\n login({\n token: jwtToken,\n })\n );\n\n navigate('/auth/login');\n } else {\n redirectToOops();\n }\n }\n }, [dispatch, match, redirectToOops, navigate]);\n\n return <Page.Loading />;\n};\n\nexport { AuthResponse };\n"],"names":["AuthResponse","match","useMatch","formatMessage","useIntl","navigate","useNavigate","dispatch","useTypedDispatch","redirectToOops","React","useCallback","pathname","search","encodeURIComponent","id","defaultMessage","useEffect","params","authResponse","jwtToken","getCookieValue","login","token","_jsx","Page","Loading"],"mappings":";;;;;;;;;AAUA,MAAMA,YAAe,GAAA,IAAA;AACnB,IAAA,MAAMC,QAAQC,QAAS,CAAA,2BAAA,CAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAWC,GAAAA,WAAAA,EAAAA;AACjB,IAAA,MAAMC,QAAWC,GAAAA,gBAAAA,EAAAA;IAEjB,MAAMC,cAAAA,GAAiBC,KAAMC,CAAAA,WAAW,CAAC,IAAA;QACvCN,QAAS,CAAA;YACPO,QAAU,EAAA,YAAA;AACVC,YAAAA,MAAAA,EAAQ,CAAC,MAAM,EAAEC,kBAAAA,CACfX,aAAc,CAAA;gBACZY,EAAI,EAAA,wCAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA,CAAA,CAAA,CACA;AACJ,SAAA,CAAA;KACC,EAAA;AAACX,QAAAA,QAAAA;AAAUF,QAAAA;AAAc,KAAA,CAAA;AAE5BO,IAAAA,KAAAA,CAAMO,SAAS,CAAC,IAAA;QACd,IAAIhB,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,OAAS,EAAA;AAC1CV,YAAAA,cAAAA,EAAAA;AACF;QAEA,IAAIR,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,SAAW,EAAA;AAC5C,YAAA,MAAMC,WAAWC,cAAe,CAAA,UAAA,CAAA;AAEhC,YAAA,IAAID,QAAU,EAAA;AACZb,gBAAAA,QAAAA,CACEe,KAAM,CAAA;oBACJC,KAAOH,EAAAA;AACT,iBAAA,CAAA,CAAA;gBAGFf,QAAS,CAAA,aAAA,CAAA;aACJ,MAAA;AACLI,gBAAAA,cAAAA,EAAAA;AACF;AACF;KACC,EAAA;AAACF,QAAAA,QAAAA;AAAUN,QAAAA,KAAAA;AAAOQ,QAAAA,cAAAA;AAAgBJ,QAAAA;AAAS,KAAA,CAAA;IAE9C,qBAAOmB,GAAA,CAACC,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;;;;"}
1
+ {"version":3,"file":"AuthResponse.mjs","sources":["../../../../../../ee/admin/src/pages/AuthResponse.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { Page } from '../../../../admin/src/components/PageHelpers';\nimport { useTypedDispatch } from '../../../../admin/src/core/store/hooks';\nimport { login } from '../../../../admin/src/reducer';\nimport { getCookieValue } from '../../../../admin/src/utils/cookies';\n\nconst AuthResponse = () => {\n const match = useMatch('/auth/login/:authResponse');\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const dispatch = useTypedDispatch();\n\n const redirectToOops = React.useCallback(() => {\n navigate({\n pathname: '/auth/oops',\n search: `?info=${encodeURIComponent(\n formatMessage({\n id: 'Auth.form.button.login.providers.error',\n defaultMessage: 'We cannot connect you through the selected provider.',\n })\n )}`,\n });\n }, [navigate, formatMessage]);\n\n React.useEffect(() => {\n if (match?.params.authResponse === 'error') {\n redirectToOops();\n }\n\n if (match?.params.authResponse === 'success') {\n const jwtToken = getCookieValue('jwtToken');\n\n if (jwtToken) {\n dispatch(\n login({\n token: jwtToken,\n })\n );\n\n navigate('/auth/login');\n } else {\n redirectToOops();\n }\n }\n }, [dispatch, match, redirectToOops, navigate]);\n\n return <Page.Loading />;\n};\n\nexport { AuthResponse };\n"],"names":["AuthResponse","match","useMatch","formatMessage","useIntl","navigate","useNavigate","dispatch","useTypedDispatch","redirectToOops","React","useCallback","pathname","search","encodeURIComponent","id","defaultMessage","useEffect","params","authResponse","jwtToken","getCookieValue","login","token","_jsx","Page","Loading"],"mappings":";;;;;;;;;AAUA,MAAMA,YAAe,GAAA,IAAA;AACnB,IAAA,MAAMC,QAAQC,QAAS,CAAA,2BAAA,CAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAWC,GAAAA,WAAAA,EAAAA;AACjB,IAAA,MAAMC,QAAWC,GAAAA,gBAAAA,EAAAA;IAEjB,MAAMC,cAAAA,GAAiBC,KAAMC,CAAAA,WAAW,CAAC,IAAA;QACvCN,QAAS,CAAA;YACPO,QAAU,EAAA,YAAA;AACVC,YAAAA,MAAAA,EAAQ,CAAC,MAAM,EAAEC,kBAAAA,CACfX,aAAc,CAAA;gBACZY,EAAI,EAAA,wCAAA;gBACJC,cAAgB,EAAA;aAEjB,CAAA,CAAA,CAAA;AACL,SAAA,CAAA;KACC,EAAA;AAACX,QAAAA,QAAAA;AAAUF,QAAAA;AAAc,KAAA,CAAA;AAE5BO,IAAAA,KAAAA,CAAMO,SAAS,CAAC,IAAA;QACd,IAAIhB,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,OAAS,EAAA;AAC1CV,YAAAA,cAAAA,EAAAA;AACF;QAEA,IAAIR,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,SAAW,EAAA;AAC5C,YAAA,MAAMC,WAAWC,cAAe,CAAA,UAAA,CAAA;AAEhC,YAAA,IAAID,QAAU,EAAA;AACZb,gBAAAA,QAAAA,CACEe,KAAM,CAAA;oBACJC,KAAOH,EAAAA;AACT,iBAAA,CAAA,CAAA;gBAGFf,QAAS,CAAA,aAAA,CAAA;aACJ,MAAA;AACLI,gBAAAA,cAAAA,EAAAA;AACF;AACF;KACC,EAAA;AAACF,QAAAA,QAAAA;AAAUN,QAAAA,KAAAA;AAAOQ,QAAAA,cAAAA;AAAgBJ,QAAAA;AAAS,KAAA,CAAA;IAE9C,qBAAOmB,GAAA,CAACC,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AIUsage.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.tsx"],"sourcesContent":["import { Flex, Typography, Grid, ProgressBar } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetAIUsageQuery } from '../../../../../services/ai';\n\nconst StyledProgressBar = styled(ProgressBar)`\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral200};\n > div {\n background-color: ${({ theme }) => theme.colors.neutral700};\n }\n`;\n\nconst StyledGridItem = styled(Grid.Item)`\n ${({ theme }) => theme.breakpoints.large} {\n grid-column: 7 / 13;\n }\n`;\n\nexport const AIUsage = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetAIUsageQuery(undefined, {\n refetchOnMountOrArgChange: true,\n });\n\n if (isLoading) {\n return null;\n }\n\n if (error || !data) {\n return null;\n }\n\n if (!data.subscription?.cmsAiEnabled) {\n return null;\n }\n\n // Calculate remaining credits and total\n const totalCredits = data.subscription.cmsAiCreditsBase;\n const usedCredits = data.cmsAiCreditsUsed;\n const maxCredits = data.subscription.cmsAiCreditsMaxUsage;\n const overage = usedCredits - totalCredits;\n const percentRemaining = (usedCredits / totalCredits) * 100;\n const percentOverage = (usedCredits / maxCredits) * 100;\n\n const isInOverages = overage > 0 && maxCredits !== totalCredits;\n\n return (\n <StyledGridItem col={6} s={12} direction=\"column\" alignItems=\"start\" gap={2}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.ai-usage',\n defaultMessage: 'AI Usage',\n })}\n </Typography>\n <Flex gap={2} direction=\"column\" alignItems=\"flex-start\">\n {!isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentRemaining} size=\"M\" />\n </Flex>\n <Typography variant=\"omega\">\n {`${usedCredits.toFixed(2)} credits used from ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n {isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentOverage} size=\"M\" color=\"danger\" />\n </Flex>\n <Typography variant=\"omega\" textColor=\"danger600\">\n {`${overage.toFixed(2)} credits used above the ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n </Flex>\n </StyledGridItem>\n );\n};\n"],"names":["StyledProgressBar","styled","ProgressBar","theme","colors","neutral200","neutral700","StyledGridItem","Grid","Item","breakpoints","large","AIUsage","formatMessage","useIntl","data","isLoading","error","useGetAIUsageQuery","undefined","refetchOnMountOrArgChange","subscription","cmsAiEnabled","totalCredits","cmsAiCreditsBase","usedCredits","cmsAiCreditsUsed","maxCredits","cmsAiCreditsMaxUsage","overage","percentRemaining","percentOverage","isInOverages","_jsxs","col","s","direction","alignItems","gap","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","_Fragment","width","value","size","toFixed","color"],"mappings":"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"}
1
+ {"version":3,"file":"AIUsage.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.tsx"],"sourcesContent":["import { Flex, Typography, Grid, ProgressBar } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetAIUsageQuery } from '../../../../../services/ai';\n\nconst StyledProgressBar = styled(ProgressBar)`\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral200};\n > div {\n background-color: ${({ theme }) => theme.colors.neutral700};\n }\n`;\n\nconst StyledGridItem = styled(Grid.Item)`\n ${({ theme }) => theme.breakpoints.large} {\n grid-column: 7 / 13;\n }\n`;\n\nexport const AIUsage = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetAIUsageQuery(undefined, {\n refetchOnMountOrArgChange: true,\n });\n\n if (isLoading) {\n return null;\n }\n\n if (error || !data) {\n return null;\n }\n\n if (!data.subscription?.cmsAiEnabled) {\n return null;\n }\n\n // Calculate remaining credits and total\n const totalCredits = data.subscription.cmsAiCreditsBase;\n const usedCredits = data.cmsAiCreditsUsed;\n const maxCredits = data.subscription.cmsAiCreditsMaxUsage;\n const overage = usedCredits - totalCredits;\n const percentRemaining = (usedCredits / totalCredits) * 100;\n const percentOverage = (usedCredits / maxCredits) * 100;\n\n const isInOverages = overage > 0 && maxCredits !== totalCredits;\n\n return (\n <StyledGridItem col={6} s={12} direction=\"column\" alignItems=\"start\" gap={2}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.ai-usage',\n defaultMessage: 'AI Usage',\n })}\n </Typography>\n <Flex gap={2} direction=\"column\" alignItems=\"flex-start\">\n {!isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentRemaining} size=\"M\" />\n </Flex>\n <Typography variant=\"omega\">\n {`${usedCredits.toFixed(2)} credits used from ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n {isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentOverage} size=\"M\" color=\"danger\" />\n </Flex>\n <Typography variant=\"omega\" textColor=\"danger600\">\n {`${overage.toFixed(2)} credits used above the ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n </Flex>\n </StyledGridItem>\n );\n};\n"],"names":["StyledProgressBar","styled","ProgressBar","theme","colors","neutral200","neutral700","StyledGridItem","Grid","Item","breakpoints","large","AIUsage","formatMessage","useIntl","data","isLoading","error","useGetAIUsageQuery","undefined","refetchOnMountOrArgChange","subscription","cmsAiEnabled","totalCredits","cmsAiCreditsBase","usedCredits","cmsAiCreditsUsed","maxCredits","cmsAiCreditsMaxUsage","overage","percentRemaining","percentOverage","isInOverages","_jsxs","col","s","direction","alignItems","gap","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","_Fragment","width","value","size","toFixed","color"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AIUsage.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.tsx"],"sourcesContent":["import { Flex, Typography, Grid, ProgressBar } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetAIUsageQuery } from '../../../../../services/ai';\n\nconst StyledProgressBar = styled(ProgressBar)`\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral200};\n > div {\n background-color: ${({ theme }) => theme.colors.neutral700};\n }\n`;\n\nconst StyledGridItem = styled(Grid.Item)`\n ${({ theme }) => theme.breakpoints.large} {\n grid-column: 7 / 13;\n }\n`;\n\nexport const AIUsage = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetAIUsageQuery(undefined, {\n refetchOnMountOrArgChange: true,\n });\n\n if (isLoading) {\n return null;\n }\n\n if (error || !data) {\n return null;\n }\n\n if (!data.subscription?.cmsAiEnabled) {\n return null;\n }\n\n // Calculate remaining credits and total\n const totalCredits = data.subscription.cmsAiCreditsBase;\n const usedCredits = data.cmsAiCreditsUsed;\n const maxCredits = data.subscription.cmsAiCreditsMaxUsage;\n const overage = usedCredits - totalCredits;\n const percentRemaining = (usedCredits / totalCredits) * 100;\n const percentOverage = (usedCredits / maxCredits) * 100;\n\n const isInOverages = overage > 0 && maxCredits !== totalCredits;\n\n return (\n <StyledGridItem col={6} s={12} direction=\"column\" alignItems=\"start\" gap={2}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.ai-usage',\n defaultMessage: 'AI Usage',\n })}\n </Typography>\n <Flex gap={2} direction=\"column\" alignItems=\"flex-start\">\n {!isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentRemaining} size=\"M\" />\n </Flex>\n <Typography variant=\"omega\">\n {`${usedCredits.toFixed(2)} credits used from ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n {isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentOverage} size=\"M\" color=\"danger\" />\n </Flex>\n <Typography variant=\"omega\" textColor=\"danger600\">\n {`${overage.toFixed(2)} credits used above the ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n </Flex>\n </StyledGridItem>\n );\n};\n"],"names":["StyledProgressBar","styled","ProgressBar","theme","colors","neutral200","neutral700","StyledGridItem","Grid","Item","breakpoints","large","AIUsage","formatMessage","useIntl","data","isLoading","error","useGetAIUsageQuery","undefined","refetchOnMountOrArgChange","subscription","cmsAiEnabled","totalCredits","cmsAiCreditsBase","usedCredits","cmsAiCreditsUsed","maxCredits","cmsAiCreditsMaxUsage","overage","percentRemaining","percentOverage","isInOverages","_jsxs","col","s","direction","alignItems","gap","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","_Fragment","width","value","size","toFixed","color"],"mappings":"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"}
1
+ {"version":3,"file":"AIUsage.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.tsx"],"sourcesContent":["import { Flex, Typography, Grid, ProgressBar } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetAIUsageQuery } from '../../../../../services/ai';\n\nconst StyledProgressBar = styled(ProgressBar)`\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral200};\n > div {\n background-color: ${({ theme }) => theme.colors.neutral700};\n }\n`;\n\nconst StyledGridItem = styled(Grid.Item)`\n ${({ theme }) => theme.breakpoints.large} {\n grid-column: 7 / 13;\n }\n`;\n\nexport const AIUsage = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetAIUsageQuery(undefined, {\n refetchOnMountOrArgChange: true,\n });\n\n if (isLoading) {\n return null;\n }\n\n if (error || !data) {\n return null;\n }\n\n if (!data.subscription?.cmsAiEnabled) {\n return null;\n }\n\n // Calculate remaining credits and total\n const totalCredits = data.subscription.cmsAiCreditsBase;\n const usedCredits = data.cmsAiCreditsUsed;\n const maxCredits = data.subscription.cmsAiCreditsMaxUsage;\n const overage = usedCredits - totalCredits;\n const percentRemaining = (usedCredits / totalCredits) * 100;\n const percentOverage = (usedCredits / maxCredits) * 100;\n\n const isInOverages = overage > 0 && maxCredits !== totalCredits;\n\n return (\n <StyledGridItem col={6} s={12} direction=\"column\" alignItems=\"start\" gap={2}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.ai-usage',\n defaultMessage: 'AI Usage',\n })}\n </Typography>\n <Flex gap={2} direction=\"column\" alignItems=\"flex-start\">\n {!isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentRemaining} size=\"M\" />\n </Flex>\n <Typography variant=\"omega\">\n {`${usedCredits.toFixed(2)} credits used from ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n {isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentOverage} size=\"M\" color=\"danger\" />\n </Flex>\n <Typography variant=\"omega\" textColor=\"danger600\">\n {`${overage.toFixed(2)} credits used above the ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n </Flex>\n </StyledGridItem>\n );\n};\n"],"names":["StyledProgressBar","styled","ProgressBar","theme","colors","neutral200","neutral700","StyledGridItem","Grid","Item","breakpoints","large","AIUsage","formatMessage","useIntl","data","isLoading","error","useGetAIUsageQuery","undefined","refetchOnMountOrArgChange","subscription","cmsAiEnabled","totalCredits","cmsAiCreditsBase","usedCredits","cmsAiCreditsUsed","maxCredits","cmsAiCreditsMaxUsage","overage","percentRemaining","percentOverage","isInOverages","_jsxs","col","s","direction","alignItems","gap","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","_Fragment","width","value","size","toFixed","color"],"mappings":"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"}
@@ -124,7 +124,7 @@ const ListPage = ()=>{
124
124
  children: results.map((log)=>/*#__PURE__*/ jsxRuntime.jsxs(Table.Table.Row, {
125
125
  onClick: ()=>setQuery({
126
126
  id: log.id
127
- }),
127
+ }, 'push', true),
128
128
  children: [
129
129
  headers.map((header)=>{
130
130
  const { name, cellFormatter } = header;
@@ -172,7 +172,7 @@ const ListPage = ()=>{
172
172
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
173
173
  onClick: ()=>setQuery({
174
174
  id: log.id
175
- }),
175
+ }, 'push', true),
176
176
  withTooltip: false,
177
177
  label: formatMessage({
178
178
  id: 'app.component.table.view',
@@ -203,7 +203,7 @@ const ListPage = ()=>{
203
203
  query?.id && /*#__PURE__*/ jsxRuntime.jsx(Modal.Modal, {
204
204
  handleClose: ()=>setQuery({
205
205
  id: ''
206
- }, 'remove'),
206
+ }, 'remove', true),
207
207
  logId: query.id.toString()
208
208
  })
209
209
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage.js","sources":["../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Layouts } from '../../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <Layouts.Action\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n }\n />\n <Layouts.Content>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id })}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id })}\n withTooltip={false}\n label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Pagination.Root {...auditLogs?.pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {query?.id && (\n <Modal handleClose={() => setQuery({ id: '' }, 'remove')} logId={query.id.toString()} />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canReadAuditLogs","canReadUsers","isLoading","isLoadingRBAC","useRBAC","auditLogs","readUsers","users","read","query","setQuery","useQueryParams","isLoadingData","hasError","useAuditLogsData","formatTimeStamp","useFormatTimeStamp","displayedFilters","getDisplayedFilters","headers","name","label","id","defaultMessage","sortable","cellFormatter","user","displayName","_jsx","Page","Error","results","_jsxs","Main","aria-busy","Title","Layouts","Header","title","subtitle","Action","startActions","Filters","Root","options","Trigger","Popover","zIndex","List","Content","Table","rows","Head","map","header","HeaderCell","Empty","Loading","Body","log","Row","onClick","Cell","Typography","textColor","action","getDefaultMessage","model","payload","date","e","stopPropagation","Flex","justifyContent","IconButton","withTooltip","target","variant","Eye","Pagination","pagination","PageSize","Links","Modal","handleClose","logId","toString","ProtectedListPage","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage.js","sources":["../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Layouts } from '../../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <Layouts.Action\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n }\n />\n <Layouts.Content>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id }, 'push', true)}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id }, 'push', true)}\n withTooltip={false}\n label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Pagination.Root {...auditLogs?.pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {query?.id && (\n <Modal\n handleClose={() => setQuery({ id: '' }, 'remove', true)}\n logId={query.id.toString()}\n />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canReadAuditLogs","canReadUsers","isLoading","isLoadingRBAC","useRBAC","auditLogs","readUsers","users","read","query","setQuery","useQueryParams","isLoadingData","hasError","useAuditLogsData","formatTimeStamp","useFormatTimeStamp","displayedFilters","getDisplayedFilters","headers","name","label","id","defaultMessage","sortable","cellFormatter","user","displayName","_jsx","Page","Error","results","_jsxs","Main","aria-busy","Title","Layouts","Header","title","subtitle","Action","startActions","Filters","Root","options","Trigger","Popover","zIndex","List","Content","Table","rows","Head","map","header","HeaderCell","Empty","Loading","Body","log","Row","onClick","Cell","Typography","textColor","action","getDefaultMessage","model","payload","date","e","stopPropagation","Flex","justifyContent","IconButton","withTooltip","target","variant","Eye","Pagination","pagination","PageSize","Links","Modal","handleClose","logId","toString","ProtectedListPage","main","Protect"],"mappings":";;;;;;;;;;;;;;;;;;;;AAoBA,MAAMA,QAAW,GAAA,IAAA;IACf,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,WAAAA,GAAcC,uBAAiB,CAACC,KAAAA,GAAUA,MAAMC,SAAS,CAACH,WAAW,CAACI,QAAQ,CAAA;AAEpF,IAAA,MAAM,EACJC,cAAAA,EAAgB,EAAEC,OAAAA,EAASC,gBAAgB,EAAEC,YAAY,EAAE,EAC3DC,SAAAA,EAAWC,aAAa,EACzB,GAAGC,eAAQ,CAAA;AACV,QAAA,GAAGX,aAAaY,SAAS;QACzBC,SAAWb,EAAAA,WAAAA,EAAac,KAAMC,CAAAA,IAAAA,IAAQ;AACxC,KAAA,CAAA;AAEA,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,SAAS,GAAGC,6BAAAA,EAAAA;IAC9B,MAAM,EACJN,SAAS,EACTE,KAAK,EACLL,SAAWU,EAAAA,aAAa,EACxBC,QAAQ,EACT,GAAGC,iCAAiB,CAAA;AACnBd,QAAAA,gBAAAA;AACAC,QAAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAMc,eAAkBC,GAAAA,qCAAAA,EAAAA;AAExB,IAAA,MAAMC,mBAAmBC,uCAAoB,CAAA;AAAE3B,QAAAA,aAAAA;AAAegB,QAAAA,KAAAA;AAAON,QAAAA;AAAa,KAAA,CAAA;AAElF,IAAA,MAAMkB,OAA4C,GAAA;AAChD,QAAA;YACEC,IAAM,EAAA,QAAA;AACNC,YAAAA,KAAAA,EAAO9B,aAAc,CAAA;gBACnB+B,EAAI,EAAA,uCAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACAC,QAAU,EAAA;AACZ,SAAA;AACA,QAAA;YACEJ,IAAM,EAAA,MAAA;AACNC,YAAAA,KAAAA,EAAO9B,aAAc,CAAA;gBACnB+B,EAAI,EAAA,qCAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACAC,QAAU,EAAA;AACZ,SAAA;AACA,QAAA;YACEJ,IAAM,EAAA,MAAA;AACNC,YAAAA,KAAAA,EAAO9B,aAAc,CAAA;gBACnB+B,EAAI,EAAA,qCAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACAC,QAAU,EAAA,KAAA;;YAEVC,aAAe,EAAA,CAAC,EAAEC,IAAI,EAAE,GAAMA,IAAOA,GAAAA,IAAAA,CAAKC,WAAW,GAAG;AAC1D;AACD,KAAA;AAED,IAAA,IAAId,QAAU,EAAA;QACZ,qBAAOe,cAAA,CAACC,iBAAKC,KAAK,EAAA,EAAA,CAAA;AACpB;AAEA,IAAA,MAAM5B,YAAYU,aAAiBT,IAAAA,aAAAA;AAEnC,IAAA,MAAM,EAAE4B,OAAU,GAAA,EAAE,EAAE,GAAG1B,aAAa,EAAC;IAEvC,qBACE2B,eAAA,CAACH,iBAAKI,IAAI,EAAA;QAACC,WAAWhC,EAAAA,SAAAA;;AACpB,0BAAA0B,cAAA,CAACC,iBAAKM,KAAK,EAAA;0BACR5C,aACC,CAAA;oBAAE+B,EAAI,EAAA,oBAAA;oBAAsBC,cAAgB,EAAA;iBAC5C,EAAA;AACEH,oBAAAA,IAAAA,EAAM7B,aAAc,CAAA;wBAClB+B,EAAI,EAAA,kBAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA;AACF,iBAAA;;AAGJ,0BAAAK,cAAA,CAACQ,eAAQC,MAAM,EAAA;AACbC,gBAAAA,KAAAA,EAAO/C,aAAc,CAAA;oBACnB+B,EAAI,EAAA,kBAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA;AACAgB,gBAAAA,QAAAA,EAAUhD,aAAc,CAAA;oBACtB+B,EAAI,EAAA,yDAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;AAEF,0BAAAK,cAAA,CAACQ,eAAQI,MAAM,EAAA;gBACbC,YACE,gBAAAT,eAAA,CAACU,gBAAQC,IAAI,EAAA;oBAACC,OAAS3B,EAAAA,gBAAAA;;AACrB,sCAAAW,cAAA,CAACc,gBAAQG,OAAO,EAAA,EAAA,CAAA;AAChB,sCAAAjB,cAAA,CAACc,gBAAQI,OAAO,EAAA;4BAACC,MAAQ,EAAA;;AACzB,sCAAAnB,cAAA,CAACc,gBAAQM,IAAI,EAAA,EAAA;;;;AAInB,0BAAAhB,eAAA,CAACI,eAAQa,OAAO,EAAA;;AACd,kCAAArB,cAAA,CAACsB,YAAMP,IAAI,EAAA;wBAACQ,IAAMpB,EAAAA,OAAAA;wBAASZ,OAASA,EAAAA,OAAAA;wBAASjB,SAAWA,EAAAA,SAAAA;gDACtD8B,eAAA,CAACkB,YAAMD,OAAO,EAAA;;AACZ,8CAAArB,cAAA,CAACsB,YAAME,IAAI,EAAA;AACRjC,oCAAAA,QAAAA,EAAAA,OAAAA,CAAQkC,GAAG,CAAC,CAACC,MACZ,iBAAA1B,cAAA,CAACsB,YAAMK,UAAU,EAAA;AAAoB,4CAAA,GAAGD;AAAjBA,yCAAAA,EAAAA,MAAAA,CAAOlC,IAAI,CAAA;;AAGtC,8CAAAQ,cAAA,CAACsB,YAAMM,KAAK,EAAA,EAAA,CAAA;AACZ,8CAAA5B,cAAA,CAACsB,YAAMO,OAAO,EAAA,EAAA,CAAA;AACd,8CAAA7B,cAAA,CAACsB,YAAMQ,IAAI,EAAA;AACR3B,oCAAAA,QAAAA,EAAAA,OAAAA,CAAQsB,GAAG,CAAC,CAACM,GACZ,iBAAA3B,eAAA,CAACkB,YAAMU,GAAG,EAAA;AAAcC,4CAAAA,OAAAA,EAAS,IAAMnD,QAAS,CAAA;AAAEY,oDAAAA,EAAAA,EAAIqC,IAAIrC;AAAG,iDAAA,EAAG,MAAQ,EAAA,IAAA,CAAA;;gDACrEH,OAAQkC,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACZ,oDAAA,MAAM,EAAElC,IAAI,EAAEK,aAAa,EAAE,GAAG6B,MAAAA;oDAEhC,OAAQlC,IAAAA;wDACN,KAAK,QAAA;4DACH,qBACEQ,cAAA,CAACsB,YAAMY,IAAI,EAAA;AACT,gEAAA,QAAA,gBAAAlC,cAACmC,CAAAA,uBAAAA,EAAAA;oEAAWC,SAAU,EAAA,YAAA;8EACnBzE,aACC,CAAA;AACE+B,wEAAAA,EAAAA,EAAI,CAAC,+BAA+B,EAAEqC,GAAAA,CAAIM,MAAM,CAAE,CAAA;;wEAElD1C,cAAgB2C,EAAAA,+CAAAA,CAAkBP,IAAIM,MAAM;qEAE9C,EAAA;AAAEE,wEAAAA,KAAAA,EAAO,GAACR,CAAIS,OAAO,EAAED,KAAoB,IAAA;AAAG,qEAAA;;AARnC/C,6DAAAA,EAAAA,IAAAA,CAAAA;wDAarB,KAAK,MAAA;4DACH,qBACEQ,cAAA,CAACsB,YAAMY,IAAI,EAAA;AACT,gEAAA,QAAA,gBAAAlC,cAACmC,CAAAA,uBAAAA,EAAAA;oEAAWC,SAAU,EAAA,YAAA;AACnBjD,oEAAAA,QAAAA,EAAAA,eAAAA,CAAgB4C,IAAIU,IAAI;;AAFZjD,6DAAAA,EAAAA,IAAAA,CAAAA;wDAMrB,KAAK,MAAA;4DACH,qBACEQ,cAAA,CAACsB,YAAMY,IAAI,EAAA;AACT,gEAAA,QAAA,gBAAAlC,cAACmC,CAAAA,uBAAAA,EAAAA;oEAAWC,SAAU,EAAA,YAAA;8EACnBvC,aAAgBA,GAAAA,aAAAA,CAAckC,KAAKL,MAAU,CAAA,GAAA;;AAFjClC,6DAAAA,EAAAA,IAAAA,CAAAA;AAMrB,wDAAA;4DACE,qBACEQ,cAAA,CAACsB,YAAMY,IAAI,EAAA;AACT,gEAAA,QAAA,gBAAAlC,cAACmC,CAAAA,uBAAAA,EAAAA;oEAAWC,SAAU,EAAA,YAAA;8EACnB,GAAI,CAAC5C,IAAAA,CAAuB,IAAe;;AAF/BA,6DAAAA,EAAAA,IAAAA,CAAAA;AAMvB;AACF,iDAAA,CAAA;AACA,8DAAAQ,cAAA,CAACsB,YAAMY,IAAI,EAAA;oDAACD,OAAS,EAAA,CAACS,CAAMA,GAAAA,CAAAA,CAAEC,eAAe,EAAA;AAC3C,oDAAA,QAAA,gBAAA3C,cAAC4C,CAAAA,iBAAAA,EAAAA;wDAAKC,cAAe,EAAA,KAAA;AACnB,wDAAA,QAAA,gBAAA7C,cAAC8C,CAAAA,uBAAAA,EAAAA;AACCb,4DAAAA,OAAAA,EAAS,IAAMnD,QAAS,CAAA;AAAEY,oEAAAA,EAAAA,EAAIqC,IAAIrC;AAAG,iEAAA,EAAG,MAAQ,EAAA,IAAA,CAAA;4DAChDqD,WAAa,EAAA,KAAA;AACbtD,4DAAAA,KAAAA,EAAO9B,aACL,CAAA;gEAAE+B,EAAI,EAAA,0BAAA;gEAA4BC,cAAgB,EAAA;6DAClD,EAAA;AAAEqD,gEAAAA,MAAAA,EAAQ,CAAGjB,EAAAA,GAAAA,CAAIM,MAAM,CAAC,OAAO;AAAE,6DAAA,CAAA;4DAEnCY,OAAQ,EAAA,OAAA;AAER,4DAAA,QAAA,gBAAAjD,cAACkD,CAAAA,SAAAA,EAAAA,EAAAA;;;;;AAzDOnB,yCAAAA,EAAAA,GAAAA,CAAIrC,EAAE,CAAA;;;;;AAmE9B,kCAAAU,eAAA,CAAC+C,sBAAWpC,IAAI,EAAA;AAAE,wBAAA,GAAGtC,WAAW2E,UAAU;;AACxC,0CAAApD,cAAA,CAACmD,sBAAWE,QAAQ,EAAA,EAAA,CAAA;AACpB,0CAAArD,cAAA,CAACmD,sBAAWG,KAAK,EAAA,EAAA;;;;;AAGpBzE,YAAAA,KAAAA,EAAOa,oBACNM,cAACuD,CAAAA,WAAAA,EAAAA;AACCC,gBAAAA,WAAAA,EAAa,IAAM1E,QAAS,CAAA;wBAAEY,EAAI,EAAA;AAAG,qBAAA,EAAG,QAAU,EAAA,IAAA,CAAA;gBAClD+D,KAAO5E,EAAAA,KAAAA,CAAMa,EAAE,CAACgE,QAAQ;;;;AAKlC;AAEA,MAAMC,iBAAoB,GAAA,IAAA;IACxB,MAAM9F,WAAAA,GAAcC,sBAClB,CAAA,CAACC,KAAUA,GAAAA,KAAAA,CAAMC,SAAS,CAACH,WAAW,CAACI,QAAQ,EAAEQ,SAAWmF,EAAAA,IAAAA,CAAAA;IAG9D,qBACE5D,cAAA,CAACC,iBAAK4D,OAAO,EAAA;QAAChG,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAmC,cAACtC,CAAAA,QAAAA,EAAAA,EAAAA;;AAGP;;;;;"}
@@ -122,7 +122,7 @@ const ListPage = ()=>{
122
122
  children: results.map((log)=>/*#__PURE__*/ jsxs(Table.Row, {
123
123
  onClick: ()=>setQuery({
124
124
  id: log.id
125
- }),
125
+ }, 'push', true),
126
126
  children: [
127
127
  headers.map((header)=>{
128
128
  const { name, cellFormatter } = header;
@@ -170,7 +170,7 @@ const ListPage = ()=>{
170
170
  children: /*#__PURE__*/ jsx(IconButton, {
171
171
  onClick: ()=>setQuery({
172
172
  id: log.id
173
- }),
173
+ }, 'push', true),
174
174
  withTooltip: false,
175
175
  label: formatMessage({
176
176
  id: 'app.component.table.view',
@@ -201,7 +201,7 @@ const ListPage = ()=>{
201
201
  query?.id && /*#__PURE__*/ jsx(Modal, {
202
202
  handleClose: ()=>setQuery({
203
203
  id: ''
204
- }, 'remove'),
204
+ }, 'remove', true),
205
205
  logId: query.id.toString()
206
206
  })
207
207
  ]