@strapi/admin 5.37.1 → 5.38.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 (992) hide show
  1. package/dist/admin/admin/src/App.js +1 -1
  2. package/dist/admin/admin/src/App.js.map +1 -1
  3. package/dist/admin/admin/src/App.mjs +1 -1
  4. package/dist/admin/admin/src/App.mjs.map +1 -1
  5. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  6. package/dist/admin/admin/src/StrapiApp.mjs +2 -2
  7. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  8. package/dist/admin/admin/src/assets/images/free-trial.png.js.map +1 -1
  9. package/dist/admin/admin/src/assets/images/free-trial.png.mjs.map +1 -1
  10. package/dist/admin/admin/src/assets/images/logo-strapi-2022.svg.js.map +1 -1
  11. package/dist/admin/admin/src/assets/images/logo-strapi-2022.svg.mjs.map +1 -1
  12. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  13. package/dist/admin/admin/src/components/ConfirmDialog.mjs.map +1 -1
  14. package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
  15. package/dist/admin/admin/src/components/ContentBox.mjs.map +1 -1
  16. package/dist/admin/admin/src/components/Context.js.map +1 -1
  17. package/dist/admin/admin/src/components/Context.mjs.map +1 -1
  18. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
  19. package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
  20. package/dist/admin/admin/src/components/DragLayer.js.map +1 -1
  21. package/dist/admin/admin/src/components/DragLayer.mjs.map +1 -1
  22. package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
  23. package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
  24. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  25. package/dist/admin/admin/src/components/Filters.mjs +1 -1
  26. package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
  27. package/dist/admin/admin/src/components/Form.js +14 -0
  28. package/dist/admin/admin/src/components/Form.js.map +1 -1
  29. package/dist/admin/admin/src/components/Form.mjs +15 -1
  30. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
  32. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/FormInputs/Checkbox.js.map +1 -1
  34. package/dist/admin/admin/src/components/FormInputs/Checkbox.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
  36. package/dist/admin/admin/src/components/FormInputs/Date.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/FormInputs/DateTime.js.map +1 -1
  38. package/dist/admin/admin/src/components/FormInputs/DateTime.mjs.map +1 -1
  39. package/dist/admin/admin/src/components/FormInputs/Email.js.map +1 -1
  40. package/dist/admin/admin/src/components/FormInputs/Email.mjs.map +1 -1
  41. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  42. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  43. package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
  44. package/dist/admin/admin/src/components/FormInputs/Json.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/FormInputs/Number.js.map +1 -1
  46. package/dist/admin/admin/src/components/FormInputs/Number.mjs.map +1 -1
  47. package/dist/admin/admin/src/components/FormInputs/Password.js.map +1 -1
  48. package/dist/admin/admin/src/components/FormInputs/Password.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
  50. package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
  51. package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
  52. package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
  53. package/dist/admin/admin/src/components/FormInputs/Textarea.js.map +1 -1
  54. package/dist/admin/admin/src/components/FormInputs/Textarea.mjs.map +1 -1
  55. package/dist/admin/admin/src/components/FormInputs/Time.js.map +1 -1
  56. package/dist/admin/admin/src/components/FormInputs/Time.mjs.map +1 -1
  57. package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
  58. package/dist/admin/admin/src/components/GapDropZone.mjs.map +1 -1
  59. package/dist/admin/admin/src/components/GradientBadge.js.map +1 -1
  60. package/dist/admin/admin/src/components/GradientBadge.mjs.map +1 -1
  61. package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
  62. package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
  63. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js.map +1 -1
  64. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs.map +1 -1
  65. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  66. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +1 -1
  67. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
  68. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.js.map +1 -1
  69. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs +1 -1
  70. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs.map +1 -1
  71. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.js.map +1 -1
  72. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.mjs.map +1 -1
  73. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
  74. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
  75. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  76. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs +2 -2
  77. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
  78. package/dist/admin/admin/src/components/GuidedTour/Tours.js +1 -1
  79. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  80. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +2 -2
  81. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  82. package/dist/admin/admin/src/components/GuidedTour/utils/constants.js.map +1 -1
  83. package/dist/admin/admin/src/components/GuidedTour/utils/constants.mjs.map +1 -1
  84. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js.map +1 -1
  85. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs.map +1 -1
  86. package/dist/admin/admin/src/components/LanguageProvider.js.map +1 -1
  87. package/dist/admin/admin/src/components/LanguageProvider.mjs.map +1 -1
  88. package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
  89. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
  90. package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
  91. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
  92. package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
  93. package/dist/admin/admin/src/components/Layouts/GridLayout.mjs.map +1 -1
  94. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  95. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +1 -1
  96. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  97. package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
  98. package/dist/admin/admin/src/components/Layouts/Layout.mjs +1 -1
  99. package/dist/admin/admin/src/components/Layouts/Layout.mjs.map +1 -1
  100. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  101. package/dist/admin/admin/src/components/LeftMenu.mjs +1 -1
  102. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  103. package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
  104. package/dist/admin/admin/src/components/MainNav/MainNav.mjs.map +1 -1
  105. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
  106. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +1 -1
  107. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -1
  108. package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
  109. package/dist/admin/admin/src/components/MainNav/NavBrand.mjs.map +1 -1
  110. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -1
  111. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs +2 -2
  112. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs.map +1 -1
  113. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  114. package/dist/admin/admin/src/components/MainNav/NavLink.mjs +2 -2
  115. package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
  116. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  117. package/dist/admin/admin/src/components/MainNav/NavUser.mjs +2 -2
  118. package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
  119. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
  120. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +1 -1
  121. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -1
  122. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  123. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  124. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  125. package/dist/admin/admin/src/components/PageHelpers.mjs +2 -2
  126. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  127. package/dist/admin/admin/src/components/Pagination.js.map +1 -1
  128. package/dist/admin/admin/src/components/Pagination.mjs +1 -1
  129. package/dist/admin/admin/src/components/Pagination.mjs.map +1 -1
  130. package/dist/admin/admin/src/components/PluginsInitializer.js.map +1 -1
  131. package/dist/admin/admin/src/components/PluginsInitializer.mjs.map +1 -1
  132. package/dist/admin/admin/src/components/PrivateRoute.js.map +1 -1
  133. package/dist/admin/admin/src/components/PrivateRoute.mjs.map +1 -1
  134. package/dist/admin/admin/src/components/Providers.js.map +1 -1
  135. package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
  136. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  137. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  138. package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
  139. package/dist/admin/admin/src/components/ResizeIndicator.mjs.map +1 -1
  140. package/dist/admin/admin/src/components/SearchInput.js.map +1 -1
  141. package/dist/admin/admin/src/components/SearchInput.mjs.map +1 -1
  142. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  143. package/dist/admin/admin/src/components/SubNav.mjs +3 -3
  144. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  145. package/dist/admin/admin/src/components/Table.js.map +1 -1
  146. package/dist/admin/admin/src/components/Table.mjs +1 -1
  147. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  148. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  149. package/dist/admin/admin/src/components/Theme.mjs.map +1 -1
  150. package/dist/admin/admin/src/components/UnauthenticatedLogo.js.map +1 -1
  151. package/dist/admin/admin/src/components/UnauthenticatedLogo.mjs.map +1 -1
  152. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  153. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
  154. package/dist/admin/admin/src/components/WidgetHelpers.js.map +1 -1
  155. package/dist/admin/admin/src/components/WidgetHelpers.mjs +3 -3
  156. package/dist/admin/admin/src/components/WidgetHelpers.mjs.map +1 -1
  157. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  158. package/dist/admin/admin/src/components/WidgetRoot.mjs +2 -2
  159. package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
  160. package/dist/admin/admin/src/components/Widgets.js.map +1 -1
  161. package/dist/admin/admin/src/components/Widgets.mjs +3 -3
  162. package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
  163. package/dist/admin/admin/src/constants/filters.js.map +1 -1
  164. package/dist/admin/admin/src/constants/filters.mjs.map +1 -1
  165. package/dist/admin/admin/src/constants/theme.js.map +1 -1
  166. package/dist/admin/admin/src/constants/theme.mjs.map +1 -1
  167. package/dist/admin/admin/src/constants.js.map +1 -1
  168. package/dist/admin/admin/src/constants.mjs.map +1 -1
  169. package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
  170. package/dist/admin/admin/src/core/apis/CustomFields.mjs.map +1 -1
  171. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  172. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  173. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  174. package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
  175. package/dist/admin/admin/src/core/apis/rbac.js.map +1 -1
  176. package/dist/admin/admin/src/core/apis/rbac.mjs.map +1 -1
  177. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  178. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  179. package/dist/admin/admin/src/core/store/configure.js.map +1 -1
  180. package/dist/admin/admin/src/core/store/configure.mjs.map +1 -1
  181. package/dist/admin/admin/src/core/store/hooks.js.map +1 -1
  182. package/dist/admin/admin/src/core/store/hooks.mjs.map +1 -1
  183. package/dist/admin/admin/src/core/utils/basename.js.map +1 -1
  184. package/dist/admin/admin/src/core/utils/basename.mjs.map +1 -1
  185. package/dist/admin/admin/src/core/utils/createHook.js.map +1 -1
  186. package/dist/admin/admin/src/core/utils/createHook.mjs.map +1 -1
  187. package/dist/admin/admin/src/features/AppInfo.js.map +1 -1
  188. package/dist/admin/admin/src/features/AppInfo.mjs.map +1 -1
  189. package/dist/admin/admin/src/features/Auth.js +0 -1
  190. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  191. package/dist/admin/admin/src/features/Auth.mjs +1 -2
  192. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  193. package/dist/admin/admin/src/features/BackButton.js.map +1 -1
  194. package/dist/admin/admin/src/features/BackButton.mjs.map +1 -1
  195. package/dist/admin/admin/src/features/Configuration.js.map +1 -1
  196. package/dist/admin/admin/src/features/Configuration.mjs.map +1 -1
  197. package/dist/admin/admin/src/features/Notifications.js.map +1 -1
  198. package/dist/admin/admin/src/features/Notifications.mjs.map +1 -1
  199. package/dist/admin/admin/src/features/StrapiApp.js.map +1 -1
  200. package/dist/admin/admin/src/features/StrapiApp.mjs.map +1 -1
  201. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  202. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  203. package/dist/admin/admin/src/features/Widgets.js.map +1 -1
  204. package/dist/admin/admin/src/features/Widgets.mjs +1 -1
  205. package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
  206. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js.map +1 -1
  207. package/dist/admin/admin/src/hooks/useAPIErrorHandler.mjs.map +1 -1
  208. package/dist/admin/admin/src/hooks/useAdminRoles.js.map +1 -1
  209. package/dist/admin/admin/src/hooks/useAdminRoles.mjs.map +1 -1
  210. package/dist/admin/admin/src/hooks/useClipboard.js.map +1 -1
  211. package/dist/admin/admin/src/hooks/useClipboard.mjs.map +1 -1
  212. package/dist/admin/admin/src/hooks/useControllableState.js.map +1 -1
  213. package/dist/admin/admin/src/hooks/useControllableState.mjs.map +1 -1
  214. package/dist/admin/admin/src/hooks/useDebounce.js.map +1 -1
  215. package/dist/admin/admin/src/hooks/useDebounce.mjs.map +1 -1
  216. package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -1
  217. package/dist/admin/admin/src/hooks/useDeviceType.mjs.map +1 -1
  218. package/dist/admin/admin/src/hooks/useElementOnScreen.js.map +1 -1
  219. package/dist/admin/admin/src/hooks/useElementOnScreen.mjs.map +1 -1
  220. package/dist/admin/admin/src/hooks/useEnterprise.js.map +1 -1
  221. package/dist/admin/admin/src/hooks/useEnterprise.mjs.map +1 -1
  222. package/dist/admin/admin/src/hooks/useFetchClient.js.map +1 -1
  223. package/dist/admin/admin/src/hooks/useFetchClient.mjs.map +1 -1
  224. package/dist/admin/admin/src/hooks/useFocusInputField.js.map +1 -1
  225. package/dist/admin/admin/src/hooks/useFocusInputField.mjs.map +1 -1
  226. package/dist/admin/admin/src/hooks/useForceUpdate.js.map +1 -1
  227. package/dist/admin/admin/src/hooks/useForceUpdate.mjs.map +1 -1
  228. package/dist/admin/admin/src/hooks/useInjectReducer.js.map +1 -1
  229. package/dist/admin/admin/src/hooks/useInjectReducer.mjs.map +1 -1
  230. package/dist/admin/admin/src/hooks/useIsMounted.js.map +1 -1
  231. package/dist/admin/admin/src/hooks/useIsMounted.mjs.map +1 -1
  232. package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
  233. package/dist/admin/admin/src/hooks/useMediaQuery.mjs.map +1 -1
  234. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  235. package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
  236. package/dist/admin/admin/src/hooks/useOnce.js.map +1 -1
  237. package/dist/admin/admin/src/hooks/useOnce.mjs.map +1 -1
  238. package/dist/admin/admin/src/hooks/usePersistentState.js.map +1 -1
  239. package/dist/admin/admin/src/hooks/usePersistentState.mjs.map +1 -1
  240. package/dist/admin/admin/src/hooks/usePrev.js.map +1 -1
  241. package/dist/admin/admin/src/hooks/usePrev.mjs.map +1 -1
  242. package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
  243. package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
  244. package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
  245. package/dist/admin/admin/src/hooks/useRBAC.mjs.map +1 -1
  246. package/dist/admin/admin/src/hooks/useSettingsMenu.js.map +1 -1
  247. package/dist/admin/admin/src/hooks/useSettingsMenu.mjs.map +1 -1
  248. package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
  249. package/dist/admin/admin/src/hooks/useThrottledCallback.mjs.map +1 -1
  250. package/dist/admin/admin/src/hooks/useWarnIfUnsavedChanges.js.map +1 -1
  251. package/dist/admin/admin/src/hooks/useWarnIfUnsavedChanges.mjs.map +1 -1
  252. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  253. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  254. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
  255. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs +1 -1
  256. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs.map +1 -1
  257. package/dist/admin/admin/src/pages/Auth/AuthPage.js.map +1 -1
  258. package/dist/admin/admin/src/pages/Auth/AuthPage.mjs.map +1 -1
  259. package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js.map +1 -1
  260. package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.mjs.map +1 -1
  261. package/dist/admin/admin/src/pages/Auth/components/ForgotPasswordSuccess.js.map +1 -1
  262. package/dist/admin/admin/src/pages/Auth/components/ForgotPasswordSuccess.mjs.map +1 -1
  263. package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
  264. package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
  265. package/dist/admin/admin/src/pages/Auth/components/Oops.js.map +1 -1
  266. package/dist/admin/admin/src/pages/Auth/components/Oops.mjs.map +1 -1
  267. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  268. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  269. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
  270. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs.map +1 -1
  271. package/dist/admin/admin/src/pages/Auth/constants.js.map +1 -1
  272. package/dist/admin/admin/src/pages/Auth/constants.mjs.map +1 -1
  273. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  274. package/dist/admin/admin/src/pages/Home/HomePage.mjs +1 -1
  275. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  276. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
  277. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs +1 -1
  278. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs.map +1 -1
  279. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  280. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs +1 -1
  281. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
  282. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
  283. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs +1 -1
  284. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs.map +1 -1
  285. package/dist/admin/admin/src/pages/NotFoundPage.js.map +1 -1
  286. package/dist/admin/admin/src/pages/NotFoundPage.mjs.map +1 -1
  287. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  288. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  289. package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
  290. package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
  291. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-dark.jpg.js.map +1 -1
  292. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-dark.jpg.mjs.map +1 -1
  293. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-light.jpg.js.map +1 -1
  294. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-light.jpg.mjs.map +1 -1
  295. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-dark.jpg.js.map +1 -1
  296. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-dark.jpg.mjs.map +1 -1
  297. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-light.jpg.js.map +1 -1
  298. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-light.jpg.mjs.map +1 -1
  299. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-dark.jpg.js.map +1 -1
  300. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-dark.jpg.mjs.map +1 -1
  301. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-light.jpg.js.map +1 -1
  302. package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-light.jpg.mjs.map +1 -1
  303. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  304. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +1 -1
  305. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  306. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  307. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +1 -1
  308. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  309. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
  310. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
  311. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  312. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +2 -2
  313. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  314. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
  315. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +1 -1
  316. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
  317. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenDescription.js.map +1 -1
  318. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenDescription.mjs.map +1 -1
  319. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js.map +1 -1
  320. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs.map +1 -1
  321. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js.map +1 -1
  322. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs.map +1 -1
  323. package/dist/admin/admin/src/pages/Settings/constants.js.map +1 -1
  324. package/dist/admin/admin/src/pages/Settings/constants.mjs.map +1 -1
  325. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/CreateView.js.map +1 -1
  326. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/CreateView.mjs.map +1 -1
  327. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  328. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
  329. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.js.map +1 -1
  330. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.mjs.map +1 -1
  331. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.js.map +1 -1
  332. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.mjs.map +1 -1
  333. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  334. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs +1 -1
  335. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs.map +1 -1
  336. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  337. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -2
  338. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  339. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ContentTypesSection.js.map +1 -1
  340. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ContentTypesSection.mjs.map +1 -1
  341. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js.map +1 -1
  342. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs.map +1 -1
  343. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.js.map +1 -1
  344. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.mjs.map +1 -1
  345. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.js.map +1 -1
  346. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.mjs.map +1 -1
  347. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js.map +1 -1
  348. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.mjs.map +1 -1
  349. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.js.map +1 -1
  350. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.mjs.map +1 -1
  351. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
  352. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
  353. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  354. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  355. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +1 -1
  356. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  357. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +2 -2
  358. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  359. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  360. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs +2 -2
  361. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
  362. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/constants.js.map +1 -1
  363. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/constants.mjs.map +1 -1
  364. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.js.map +1 -1
  365. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.mjs.map +1 -1
  366. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
  367. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
  368. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
  369. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
  370. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
  371. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
  372. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
  373. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
  374. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  375. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +1 -1
  376. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  377. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  378. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +1 -1
  379. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
  380. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
  381. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs +1 -1
  382. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
  383. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js.map +1 -1
  384. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.mjs.map +1 -1
  385. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  386. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +1 -1
  387. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  388. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
  389. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.mjs +1 -1
  390. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.mjs.map +1 -1
  391. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  392. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
  393. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  394. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +1 -1
  395. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  396. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypes.js.map +1 -1
  397. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypes.mjs.map +1 -1
  398. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  399. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
  400. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js.map +1 -1
  401. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.mjs.map +1 -1
  402. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  403. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +1 -1
  404. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  405. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  406. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  407. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RequiredSign.js.map +1 -1
  408. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RequiredSign.mjs.map +1 -1
  409. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js.map +1 -1
  410. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs.map +1 -1
  411. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleRow.js.map +1 -1
  412. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleRow.mjs.map +1 -1
  413. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.js.map +1 -1
  414. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.mjs.map +1 -1
  415. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
  416. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
  417. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/constants.js.map +1 -1
  418. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/constants.mjs.map +1 -1
  419. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.js.map +1 -1
  420. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.mjs.map +1 -1
  421. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js.map +1 -1
  422. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.mjs.map +1 -1
  423. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
  424. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
  425. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/getCheckboxState.js.map +1 -1
  426. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/getCheckboxState.mjs.map +1 -1
  427. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js.map +1 -1
  428. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.mjs.map +1 -1
  429. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.js.map +1 -1
  430. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.mjs.map +1 -1
  431. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/removeConditionKeyFromData.js.map +1 -1
  432. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/removeConditionKeyFromData.mjs.map +1 -1
  433. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js.map +1 -1
  434. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.mjs.map +1 -1
  435. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.js.map +1 -1
  436. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.mjs.map +1 -1
  437. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/CreateView.js.map +1 -1
  438. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/CreateView.mjs.map +1 -1
  439. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  440. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  441. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
  442. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
  443. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  444. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +1 -1
  445. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  446. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  447. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  448. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js.map +1 -1
  449. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.mjs.map +1 -1
  450. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.js.map +1 -1
  451. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.mjs.map +1 -1
  452. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper.js.map +1 -1
  453. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper.mjs.map +1 -1
  454. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
  455. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
  456. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
  457. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs +1 -1
  458. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs.map +1 -1
  459. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js.map +1 -1
  460. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.mjs.map +1 -1
  461. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/CreatePage.js.map +1 -1
  462. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/CreatePage.mjs.map +1 -1
  463. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
  464. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.mjs.map +1 -1
  465. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  466. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs +1 -1
  467. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
  468. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +1 -3
  469. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
  470. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs +2 -4
  471. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs.map +1 -1
  472. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/EventsTable.js.map +1 -1
  473. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/EventsTable.mjs.map +1 -1
  474. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  475. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +1 -1
  476. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  477. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/TriggerContainer.js.map +1 -1
  478. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/TriggerContainer.mjs.map +1 -1
  479. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  480. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +1 -1
  481. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  482. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.js.map +1 -1
  483. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.mjs.map +1 -1
  484. package/dist/admin/admin/src/pages/Settings/utils/forms.js.map +1 -1
  485. package/dist/admin/admin/src/pages/Settings/utils/forms.mjs.map +1 -1
  486. package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
  487. package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
  488. package/dist/admin/admin/src/reducer.js.map +1 -1
  489. package/dist/admin/admin/src/reducer.mjs +1 -1
  490. package/dist/admin/admin/src/reducer.mjs.map +1 -1
  491. package/dist/admin/admin/src/render.js.map +1 -1
  492. package/dist/admin/admin/src/render.mjs.map +1 -1
  493. package/dist/admin/admin/src/router.js +4 -4
  494. package/dist/admin/admin/src/router.js.map +1 -1
  495. package/dist/admin/admin/src/router.mjs.map +1 -1
  496. package/dist/admin/admin/src/selectors.js.map +1 -1
  497. package/dist/admin/admin/src/selectors.mjs.map +1 -1
  498. package/dist/admin/admin/src/services/admin.js.map +1 -1
  499. package/dist/admin/admin/src/services/admin.mjs.map +1 -1
  500. package/dist/admin/admin/src/services/api.js.map +1 -1
  501. package/dist/admin/admin/src/services/api.mjs.map +1 -1
  502. package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
  503. package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
  504. package/dist/admin/admin/src/services/auth.js.map +1 -1
  505. package/dist/admin/admin/src/services/auth.mjs.map +1 -1
  506. package/dist/admin/admin/src/services/contentApi.js.map +1 -1
  507. package/dist/admin/admin/src/services/contentApi.mjs.map +1 -1
  508. package/dist/admin/admin/src/services/homepage.js.map +1 -1
  509. package/dist/admin/admin/src/services/homepage.mjs.map +1 -1
  510. package/dist/admin/admin/src/services/transferTokens.js.map +1 -1
  511. package/dist/admin/admin/src/services/transferTokens.mjs.map +1 -1
  512. package/dist/admin/admin/src/services/users.js.map +1 -1
  513. package/dist/admin/admin/src/services/users.mjs.map +1 -1
  514. package/dist/admin/admin/src/services/webhooks.js.map +1 -1
  515. package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
  516. package/dist/admin/admin/src/translations/es.json.js +356 -120
  517. package/dist/admin/admin/src/translations/es.json.js.map +1 -1
  518. package/dist/admin/admin/src/translations/es.json.mjs +355 -121
  519. package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
  520. package/dist/admin/admin/src/translations/fr.json.js +126 -1
  521. package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
  522. package/dist/admin/admin/src/translations/fr.json.mjs +126 -1
  523. package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
  524. package/dist/admin/admin/src/translations/languageNativeNames.js.map +1 -1
  525. package/dist/admin/admin/src/translations/languageNativeNames.mjs.map +1 -1
  526. package/dist/admin/admin/src/utils/arrays.js.map +1 -1
  527. package/dist/admin/admin/src/utils/arrays.mjs.map +1 -1
  528. package/dist/admin/admin/src/utils/baseQuery.js.map +1 -1
  529. package/dist/admin/admin/src/utils/baseQuery.mjs.map +1 -1
  530. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  531. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  532. package/dist/admin/admin/src/utils/deviceId.js.map +1 -1
  533. package/dist/admin/admin/src/utils/deviceId.mjs.map +1 -1
  534. package/dist/admin/admin/src/utils/getFetchClient.js +1 -3
  535. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  536. package/dist/admin/admin/src/utils/getFetchClient.mjs +1 -3
  537. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  538. package/dist/admin/admin/src/utils/getPrefixedId.js.map +1 -1
  539. package/dist/admin/admin/src/utils/getPrefixedId.mjs.map +1 -1
  540. package/dist/admin/admin/src/utils/locales.js.map +1 -1
  541. package/dist/admin/admin/src/utils/locales.mjs.map +1 -1
  542. package/dist/admin/admin/src/utils/normalizeAPIError.js.map +1 -1
  543. package/dist/admin/admin/src/utils/normalizeAPIError.mjs.map +1 -1
  544. package/dist/admin/admin/src/utils/objects.js.map +1 -1
  545. package/dist/admin/admin/src/utils/objects.mjs.map +1 -1
  546. package/dist/admin/admin/src/utils/once.js.map +1 -1
  547. package/dist/admin/admin/src/utils/once.mjs.map +1 -1
  548. package/dist/admin/admin/src/utils/resizeHandlers.js.map +1 -1
  549. package/dist/admin/admin/src/utils/resizeHandlers.mjs.map +1 -1
  550. package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
  551. package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
  552. package/dist/admin/admin/src/utils/shims.js.map +1 -1
  553. package/dist/admin/admin/src/utils/shims.mjs.map +1 -1
  554. package/dist/admin/admin/src/utils/strings.js.map +1 -1
  555. package/dist/admin/admin/src/utils/strings.mjs.map +1 -1
  556. package/dist/admin/admin/src/utils/translatedErrors.js.map +1 -1
  557. package/dist/admin/admin/src/utils/translatedErrors.mjs.map +1 -1
  558. package/dist/admin/admin/src/utils/urls.js.map +1 -1
  559. package/dist/admin/admin/src/utils/urls.mjs.map +1 -1
  560. package/dist/admin/admin/src/utils/users.js.map +1 -1
  561. package/dist/admin/admin/src/utils/users.mjs.map +1 -1
  562. package/dist/admin/admin/src/utils/widgetLayout.js.map +1 -1
  563. package/dist/admin/admin/src/utils/widgetLayout.mjs.map +1 -1
  564. package/dist/admin/admin/tests/mockData.js.map +1 -1
  565. package/dist/admin/admin/tests/mockData.mjs.map +1 -1
  566. package/dist/admin/admin/tests/server.js.map +1 -1
  567. package/dist/admin/admin/tests/server.mjs.map +1 -1
  568. package/dist/admin/admin/tests/store.js.map +1 -1
  569. package/dist/admin/admin/tests/store.mjs.map +1 -1
  570. package/dist/admin/admin/tests/utils.js.map +1 -1
  571. package/dist/admin/admin/tests/utils.mjs +1 -1
  572. package/dist/admin/admin/tests/utils.mjs.map +1 -1
  573. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
  574. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -1
  575. package/dist/admin/ee/admin/src/components/GlobalNotifications.js.map +1 -1
  576. package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs.map +1 -1
  577. package/dist/admin/ee/admin/src/constants.js.map +1 -1
  578. package/dist/admin/ee/admin/src/constants.mjs.map +1 -1
  579. package/dist/admin/ee/admin/src/hooks/useAIAvailability.js.map +1 -1
  580. package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs.map +1 -1
  581. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js.map +1 -1
  582. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs.map +1 -1
  583. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
  584. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
  585. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js.map +1 -1
  586. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.mjs.map +1 -1
  587. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js.map +1 -1
  588. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.mjs +1 -1
  589. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.mjs.map +1 -1
  590. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js.map +1 -1
  591. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.mjs +1 -1
  592. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.mjs.map +1 -1
  593. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
  594. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs +1 -1
  595. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
  596. package/dist/admin/ee/admin/src/pages/AuthPage/constants.js.map +1 -1
  597. package/dist/admin/ee/admin/src/pages/AuthPage/constants.mjs.map +1 -1
  598. package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
  599. package/dist/admin/ee/admin/src/pages/AuthResponse.mjs.map +1 -1
  600. package/dist/admin/ee/admin/src/pages/HomePage.js.map +1 -1
  601. package/dist/admin/ee/admin/src/pages/HomePage.mjs.map +1 -1
  602. package/dist/admin/ee/admin/src/pages/SettingsPage/constants.js.map +1 -1
  603. package/dist/admin/ee/admin/src/pages/SettingsPage/constants.mjs.map +1 -1
  604. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
  605. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +1 -1
  606. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
  607. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
  608. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
  609. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
  610. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
  611. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js.map +1 -1
  612. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs.map +1 -1
  613. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  614. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs +1 -1
  615. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs.map +1 -1
  616. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
  617. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs.map +1 -1
  618. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
  619. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.mjs.map +1 -1
  620. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js.map +1 -1
  621. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs.map +1 -1
  622. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
  623. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
  624. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  625. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  626. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/ListPage.js.map +1 -1
  627. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/ListPage.mjs.map +1 -1
  628. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js.map +1 -1
  629. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.mjs.map +1 -1
  630. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.js.map +1 -1
  631. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.mjs.map +1 -1
  632. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.js.map +1 -1
  633. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.mjs.map +1 -1
  634. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable.js.map +1 -1
  635. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable.mjs.map +1 -1
  636. package/dist/admin/ee/admin/src/services/ai.js.map +1 -1
  637. package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -1
  638. package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
  639. package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
  640. package/dist/admin/index.js +10 -6
  641. package/dist/admin/index.js.map +1 -1
  642. package/dist/admin/index.mjs +1 -0
  643. package/dist/admin/index.mjs.map +1 -1
  644. package/dist/admin/src/components/DefaultDocument.js.map +1 -1
  645. package/dist/admin/src/components/DefaultDocument.mjs.map +1 -1
  646. package/dist/admin/src/components/Form.d.ts +1 -0
  647. package/dist/admin/src/components/NoJavascript.js.map +1 -1
  648. package/dist/admin/src/components/NoJavascript.mjs.map +1 -1
  649. package/dist/admin/src/index.d.ts +1 -0
  650. package/dist/server/ee/server/src/ai/containers/ai.js +0 -4
  651. package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -1
  652. package/dist/server/ee/server/src/ai/containers/ai.mjs +0 -4
  653. package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -1
  654. package/dist/server/ee/server/src/ai/controllers/ai.js +0 -4
  655. package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
  656. package/dist/server/ee/server/src/ai/controllers/ai.mjs +0 -4
  657. package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
  658. package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
  659. package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
  660. package/dist/server/ee/server/src/audit-logs/content-types/audit-log.js.map +1 -1
  661. package/dist/server/ee/server/src/audit-logs/content-types/audit-log.mjs.map +1 -1
  662. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.js.map +1 -1
  663. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.mjs.map +1 -1
  664. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.js.map +1 -1
  665. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.mjs.map +1 -1
  666. package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
  667. package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
  668. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
  669. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
  670. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.js.map +1 -1
  671. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.mjs.map +1 -1
  672. package/dist/server/ee/server/src/bootstrap.js.map +1 -1
  673. package/dist/server/ee/server/src/bootstrap.mjs.map +1 -1
  674. package/dist/server/ee/server/src/config/admin-actions.js.map +1 -1
  675. package/dist/server/ee/server/src/config/admin-actions.mjs.map +1 -1
  676. package/dist/server/ee/server/src/content-types/index.js.map +1 -1
  677. package/dist/server/ee/server/src/content-types/index.mjs.map +1 -1
  678. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  679. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  680. package/dist/server/ee/server/src/controllers/authentication-utils/constants.js.map +1 -1
  681. package/dist/server/ee/server/src/controllers/authentication-utils/constants.mjs.map +1 -1
  682. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  683. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
  684. package/dist/server/ee/server/src/controllers/authentication-utils/utils.js.map +1 -1
  685. package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs +1 -1
  686. package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs.map +1 -1
  687. package/dist/server/ee/server/src/controllers/authentication.js +5 -5
  688. package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
  689. package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
  690. package/dist/server/ee/server/src/controllers/index.js.map +1 -1
  691. package/dist/server/ee/server/src/controllers/index.mjs.map +1 -1
  692. package/dist/server/ee/server/src/controllers/role.js.map +1 -1
  693. package/dist/server/ee/server/src/controllers/role.mjs +1 -1
  694. package/dist/server/ee/server/src/controllers/role.mjs.map +1 -1
  695. package/dist/server/ee/server/src/controllers/user.js +4 -4
  696. package/dist/server/ee/server/src/controllers/user.js.map +1 -1
  697. package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
  698. package/dist/server/ee/server/src/index.js +16 -16
  699. package/dist/server/ee/server/src/index.js.map +1 -1
  700. package/dist/server/ee/server/src/index.mjs.map +1 -1
  701. package/dist/server/ee/server/src/register.js.map +1 -1
  702. package/dist/server/ee/server/src/register.mjs.map +1 -1
  703. package/dist/server/ee/server/src/routes/index.js.map +1 -1
  704. package/dist/server/ee/server/src/routes/index.mjs.map +1 -1
  705. package/dist/server/ee/server/src/routes/license-limit.js.map +1 -1
  706. package/dist/server/ee/server/src/routes/license-limit.mjs.map +1 -1
  707. package/dist/server/ee/server/src/routes/sso.js.map +1 -1
  708. package/dist/server/ee/server/src/routes/sso.mjs.map +1 -1
  709. package/dist/server/ee/server/src/routes/utils.js.map +1 -1
  710. package/dist/server/ee/server/src/routes/utils.mjs.map +1 -1
  711. package/dist/server/ee/server/src/services/auth.js.map +1 -1
  712. package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
  713. package/dist/server/ee/server/src/services/index.js.map +1 -1
  714. package/dist/server/ee/server/src/services/index.mjs.map +1 -1
  715. package/dist/server/ee/server/src/services/metrics.js.map +1 -1
  716. package/dist/server/ee/server/src/services/metrics.mjs.map +1 -1
  717. package/dist/server/ee/server/src/services/passport/provider-registry.js.map +1 -1
  718. package/dist/server/ee/server/src/services/passport/provider-registry.mjs.map +1 -1
  719. package/dist/server/ee/server/src/services/passport/sso.js.map +1 -1
  720. package/dist/server/ee/server/src/services/passport/sso.mjs.map +1 -1
  721. package/dist/server/ee/server/src/services/passport.js.map +1 -1
  722. package/dist/server/ee/server/src/services/passport.mjs.map +1 -1
  723. package/dist/server/ee/server/src/services/persist-tables.js.map +1 -1
  724. package/dist/server/ee/server/src/services/persist-tables.mjs +4 -4
  725. package/dist/server/ee/server/src/services/persist-tables.mjs.map +1 -1
  726. package/dist/server/ee/server/src/services/role.js.map +1 -1
  727. package/dist/server/ee/server/src/services/role.mjs.map +1 -1
  728. package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
  729. package/dist/server/ee/server/src/services/seat-enforcement.mjs +1 -1
  730. package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
  731. package/dist/server/ee/server/src/services/user.js.map +1 -1
  732. package/dist/server/ee/server/src/services/user.mjs +1 -1
  733. package/dist/server/ee/server/src/services/user.mjs.map +1 -1
  734. package/dist/server/ee/server/src/utils/index.js.map +1 -1
  735. package/dist/server/ee/server/src/utils/index.mjs.map +1 -1
  736. package/dist/server/ee/server/src/utils/sso-lock.js.map +1 -1
  737. package/dist/server/ee/server/src/utils/sso-lock.mjs.map +1 -1
  738. package/dist/server/ee/server/src/validation/authentication.js.map +1 -1
  739. package/dist/server/ee/server/src/validation/authentication.mjs.map +1 -1
  740. package/dist/server/ee/server/src/validation/role.js.map +1 -1
  741. package/dist/server/ee/server/src/validation/role.mjs.map +1 -1
  742. package/dist/server/ee/server/src/validation/user.js.map +1 -1
  743. package/dist/server/ee/server/src/validation/user.mjs.map +1 -1
  744. package/dist/server/index.js +18 -18
  745. package/dist/server/index.js.map +1 -1
  746. package/dist/server/index.mjs +2 -2
  747. package/dist/server/index.mjs.map +1 -1
  748. package/dist/server/server/src/bootstrap.js.map +1 -1
  749. package/dist/server/server/src/bootstrap.mjs +1 -1
  750. package/dist/server/server/src/bootstrap.mjs.map +1 -1
  751. package/dist/server/server/src/config/admin-actions.js.map +1 -1
  752. package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
  753. package/dist/server/server/src/config/admin-conditions.js.map +1 -1
  754. package/dist/server/server/src/config/admin-conditions.mjs.map +1 -1
  755. package/dist/server/server/src/config/email-templates/forgot-password.js.map +1 -1
  756. package/dist/server/server/src/config/email-templates/forgot-password.mjs.map +1 -1
  757. package/dist/server/server/src/config/index.js.map +1 -1
  758. package/dist/server/server/src/config/index.mjs.map +1 -1
  759. package/dist/server/server/src/content-types/Permission.js.map +1 -1
  760. package/dist/server/server/src/content-types/Permission.mjs.map +1 -1
  761. package/dist/server/server/src/content-types/Role.js.map +1 -1
  762. package/dist/server/server/src/content-types/Role.mjs.map +1 -1
  763. package/dist/server/server/src/content-types/User.js.map +1 -1
  764. package/dist/server/server/src/content-types/User.mjs.map +1 -1
  765. package/dist/server/server/src/content-types/api-token-permission.js.map +1 -1
  766. package/dist/server/server/src/content-types/api-token-permission.mjs.map +1 -1
  767. package/dist/server/server/src/content-types/api-token.js.map +1 -1
  768. package/dist/server/server/src/content-types/api-token.mjs.map +1 -1
  769. package/dist/server/server/src/content-types/index.js.map +1 -1
  770. package/dist/server/server/src/content-types/index.mjs.map +1 -1
  771. package/dist/server/server/src/content-types/session.js.map +1 -1
  772. package/dist/server/server/src/content-types/session.mjs.map +1 -1
  773. package/dist/server/server/src/content-types/transfer-token-permission.js.map +1 -1
  774. package/dist/server/server/src/content-types/transfer-token-permission.mjs.map +1 -1
  775. package/dist/server/server/src/content-types/transfer-token.js.map +1 -1
  776. package/dist/server/server/src/content-types/transfer-token.mjs.map +1 -1
  777. package/dist/server/server/src/controllers/admin.js.map +1 -1
  778. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  779. package/dist/server/server/src/controllers/api-token.js.map +1 -1
  780. package/dist/server/server/src/controllers/api-token.mjs +3 -3
  781. package/dist/server/server/src/controllers/api-token.mjs.map +1 -1
  782. package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
  783. package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
  784. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  785. package/dist/server/server/src/controllers/authentication.mjs +2 -2
  786. package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
  787. package/dist/server/server/src/controllers/content-api.js.map +1 -1
  788. package/dist/server/server/src/controllers/content-api.mjs.map +1 -1
  789. package/dist/server/server/src/controllers/formatters/conditions.js.map +1 -1
  790. package/dist/server/server/src/controllers/formatters/conditions.mjs.map +1 -1
  791. package/dist/server/server/src/controllers/homepage.js.map +1 -1
  792. package/dist/server/server/src/controllers/homepage.mjs.map +1 -1
  793. package/dist/server/server/src/controllers/index.js.map +1 -1
  794. package/dist/server/server/src/controllers/index.mjs.map +1 -1
  795. package/dist/server/server/src/controllers/permission.js.map +1 -1
  796. package/dist/server/server/src/controllers/permission.mjs.map +1 -1
  797. package/dist/server/server/src/controllers/role.js.map +1 -1
  798. package/dist/server/server/src/controllers/role.mjs +1 -1
  799. package/dist/server/server/src/controllers/role.mjs.map +1 -1
  800. package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
  801. package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
  802. package/dist/server/server/src/controllers/transfer/runner.js.map +1 -1
  803. package/dist/server/server/src/controllers/transfer/runner.mjs.map +1 -1
  804. package/dist/server/server/src/controllers/transfer/token.js.map +1 -1
  805. package/dist/server/server/src/controllers/transfer/token.mjs +2 -2
  806. package/dist/server/server/src/controllers/transfer/token.mjs.map +1 -1
  807. package/dist/server/server/src/controllers/user.js.map +1 -1
  808. package/dist/server/server/src/controllers/user.mjs +1 -1
  809. package/dist/server/server/src/controllers/user.mjs.map +1 -1
  810. package/dist/server/server/src/controllers/validation/schema.js.map +1 -1
  811. package/dist/server/server/src/controllers/validation/schema.mjs.map +1 -1
  812. package/dist/server/server/src/controllers/webhooks.js.map +1 -1
  813. package/dist/server/server/src/controllers/webhooks.mjs.map +1 -1
  814. package/dist/server/server/src/destroy.js.map +1 -1
  815. package/dist/server/server/src/destroy.mjs.map +1 -1
  816. package/dist/server/server/src/domain/action/index.js.map +1 -1
  817. package/dist/server/server/src/domain/action/index.mjs.map +1 -1
  818. package/dist/server/server/src/domain/action/provider.js.map +1 -1
  819. package/dist/server/server/src/domain/action/provider.mjs +1 -1
  820. package/dist/server/server/src/domain/action/provider.mjs.map +1 -1
  821. package/dist/server/server/src/domain/condition/index.js.map +1 -1
  822. package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
  823. package/dist/server/server/src/domain/condition/provider.js.map +1 -1
  824. package/dist/server/server/src/domain/condition/provider.mjs.map +1 -1
  825. package/dist/server/server/src/domain/permission/index.js.map +1 -1
  826. package/dist/server/server/src/domain/permission/index.mjs +1 -1
  827. package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
  828. package/dist/server/server/src/domain/user.js.map +1 -1
  829. package/dist/server/server/src/domain/user.mjs.map +1 -1
  830. package/dist/server/server/src/middlewares/data-transfer.js.map +1 -1
  831. package/dist/server/server/src/middlewares/data-transfer.mjs.map +1 -1
  832. package/dist/server/server/src/middlewares/index.js.map +1 -1
  833. package/dist/server/server/src/middlewares/index.mjs.map +1 -1
  834. package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
  835. package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
  836. package/dist/server/server/src/policies/hasPermissions.js.map +1 -1
  837. package/dist/server/server/src/policies/hasPermissions.mjs.map +1 -1
  838. package/dist/server/server/src/policies/index.js.map +1 -1
  839. package/dist/server/server/src/policies/index.mjs.map +1 -1
  840. package/dist/server/server/src/policies/isAuthenticatedAdmin.js.map +1 -1
  841. package/dist/server/server/src/policies/isAuthenticatedAdmin.mjs.map +1 -1
  842. package/dist/server/server/src/policies/isTelemetryEnabled.js.map +1 -1
  843. package/dist/server/server/src/policies/isTelemetryEnabled.mjs.map +1 -1
  844. package/dist/server/server/src/register.js.map +1 -1
  845. package/dist/server/server/src/register.mjs.map +1 -1
  846. package/dist/server/server/src/routes/admin.js.map +1 -1
  847. package/dist/server/server/src/routes/admin.mjs.map +1 -1
  848. package/dist/server/server/src/routes/api-tokens.js.map +1 -1
  849. package/dist/server/server/src/routes/api-tokens.mjs.map +1 -1
  850. package/dist/server/server/src/routes/authentication.js.map +1 -1
  851. package/dist/server/server/src/routes/authentication.mjs.map +1 -1
  852. package/dist/server/server/src/routes/content-api.js.map +1 -1
  853. package/dist/server/server/src/routes/content-api.mjs.map +1 -1
  854. package/dist/server/server/src/routes/homepage.js.map +1 -1
  855. package/dist/server/server/src/routes/homepage.mjs.map +1 -1
  856. package/dist/server/server/src/routes/index.js.map +1 -1
  857. package/dist/server/server/src/routes/index.mjs.map +1 -1
  858. package/dist/server/server/src/routes/permissions.js.map +1 -1
  859. package/dist/server/server/src/routes/permissions.mjs.map +1 -1
  860. package/dist/server/server/src/routes/roles.js.map +1 -1
  861. package/dist/server/server/src/routes/roles.mjs.map +1 -1
  862. package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
  863. package/dist/server/server/src/routes/serve-admin-panel.mjs +1 -1
  864. package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
  865. package/dist/server/server/src/routes/transfer.js.map +1 -1
  866. package/dist/server/server/src/routes/transfer.mjs.map +1 -1
  867. package/dist/server/server/src/routes/users.js.map +1 -1
  868. package/dist/server/server/src/routes/users.mjs.map +1 -1
  869. package/dist/server/server/src/routes/webhooks.js.map +1 -1
  870. package/dist/server/server/src/routes/webhooks.mjs.map +1 -1
  871. package/dist/server/server/src/services/action.js.map +1 -1
  872. package/dist/server/server/src/services/action.mjs.map +1 -1
  873. package/dist/server/server/src/services/api-token.js.map +1 -1
  874. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  875. package/dist/server/server/src/services/auth.js.map +1 -1
  876. package/dist/server/server/src/services/auth.mjs.map +1 -1
  877. package/dist/server/server/src/services/condition.js.map +1 -1
  878. package/dist/server/server/src/services/condition.mjs.map +1 -1
  879. package/dist/server/server/src/services/constants.js.map +1 -1
  880. package/dist/server/server/src/services/constants.mjs.map +1 -1
  881. package/dist/server/server/src/services/content-type.js +9 -9
  882. package/dist/server/server/src/services/content-type.js.map +1 -1
  883. package/dist/server/server/src/services/content-type.mjs +1 -1
  884. package/dist/server/server/src/services/content-type.mjs.map +1 -1
  885. package/dist/server/server/src/services/encryption.js.map +1 -1
  886. package/dist/server/server/src/services/encryption.mjs.map +1 -1
  887. package/dist/server/server/src/services/homepage.js.map +1 -1
  888. package/dist/server/server/src/services/homepage.mjs +1 -1
  889. package/dist/server/server/src/services/homepage.mjs.map +1 -1
  890. package/dist/server/server/src/services/index.js.map +1 -1
  891. package/dist/server/server/src/services/index.mjs.map +1 -1
  892. package/dist/server/server/src/services/metrics.js.map +1 -1
  893. package/dist/server/server/src/services/metrics.mjs.map +1 -1
  894. package/dist/server/server/src/services/passport/local-strategy.js.map +1 -1
  895. package/dist/server/server/src/services/passport/local-strategy.mjs.map +1 -1
  896. package/dist/server/server/src/services/passport.js.map +1 -1
  897. package/dist/server/server/src/services/passport.mjs.map +1 -1
  898. package/dist/server/server/src/services/permission/engine.js.map +1 -1
  899. package/dist/server/server/src/services/permission/engine.mjs.map +1 -1
  900. package/dist/server/server/src/services/permission/permissions-manager/index.js.map +1 -1
  901. package/dist/server/server/src/services/permission/permissions-manager/index.mjs.map +1 -1
  902. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js.map +1 -1
  903. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs.map +1 -1
  904. package/dist/server/server/src/services/permission/permissions-manager/query-builders.js.map +1 -1
  905. package/dist/server/server/src/services/permission/permissions-manager/query-builders.mjs.map +1 -1
  906. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
  907. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs +2 -2
  908. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
  909. package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
  910. package/dist/server/server/src/services/permission/permissions-manager/validate.mjs +2 -2
  911. package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
  912. package/dist/server/server/src/services/permission/queries.js +9 -9
  913. package/dist/server/server/src/services/permission/queries.js.map +1 -1
  914. package/dist/server/server/src/services/permission/queries.mjs +1 -1
  915. package/dist/server/server/src/services/permission/queries.mjs.map +1 -1
  916. package/dist/server/server/src/services/permission/sections-builder/builder.js.map +1 -1
  917. package/dist/server/server/src/services/permission/sections-builder/builder.mjs.map +1 -1
  918. package/dist/server/server/src/services/permission/sections-builder/handlers.js +10 -10
  919. package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
  920. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs +1 -1
  921. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
  922. package/dist/server/server/src/services/permission/sections-builder/index.js.map +1 -1
  923. package/dist/server/server/src/services/permission/sections-builder/index.mjs +1 -1
  924. package/dist/server/server/src/services/permission/sections-builder/index.mjs.map +1 -1
  925. package/dist/server/server/src/services/permission/sections-builder/section.js.map +1 -1
  926. package/dist/server/server/src/services/permission/sections-builder/section.mjs.map +1 -1
  927. package/dist/server/server/src/services/permission/sections-builder/utils.js.map +1 -1
  928. package/dist/server/server/src/services/permission/sections-builder/utils.mjs.map +1 -1
  929. package/dist/server/server/src/services/permission.js.map +1 -1
  930. package/dist/server/server/src/services/permission.mjs.map +1 -1
  931. package/dist/server/server/src/services/project-settings.js.map +1 -1
  932. package/dist/server/server/src/services/project-settings.mjs.map +1 -1
  933. package/dist/server/server/src/services/role.js.map +1 -1
  934. package/dist/server/server/src/services/role.mjs +2 -2
  935. package/dist/server/server/src/services/role.mjs.map +1 -1
  936. package/dist/server/server/src/services/token.js.map +1 -1
  937. package/dist/server/server/src/services/token.mjs.map +1 -1
  938. package/dist/server/server/src/services/transfer/permission.js.map +1 -1
  939. package/dist/server/server/src/services/transfer/permission.mjs.map +1 -1
  940. package/dist/server/server/src/services/transfer/token.js.map +1 -1
  941. package/dist/server/server/src/services/transfer/token.mjs +1 -1
  942. package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
  943. package/dist/server/server/src/services/transfer/utils.js.map +1 -1
  944. package/dist/server/server/src/services/transfer/utils.mjs.map +1 -1
  945. package/dist/server/server/src/services/user.js.map +1 -1
  946. package/dist/server/server/src/services/user.mjs +2 -2
  947. package/dist/server/server/src/services/user.mjs.map +1 -1
  948. package/dist/server/server/src/strategies/admin.js.map +1 -1
  949. package/dist/server/server/src/strategies/admin.mjs.map +1 -1
  950. package/dist/server/server/src/strategies/api-token.js.map +1 -1
  951. package/dist/server/server/src/strategies/api-token.mjs.map +1 -1
  952. package/dist/server/server/src/strategies/data-transfer.js.map +1 -1
  953. package/dist/server/server/src/strategies/data-transfer.mjs.map +1 -1
  954. package/dist/server/server/src/utils/index.js.map +1 -1
  955. package/dist/server/server/src/utils/index.mjs.map +1 -1
  956. package/dist/server/server/src/validation/action-provider.js.map +1 -1
  957. package/dist/server/server/src/validation/action-provider.mjs.map +1 -1
  958. package/dist/server/server/src/validation/api-tokens.js.map +1 -1
  959. package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
  960. package/dist/server/server/src/validation/authentication/forgot-password.js.map +1 -1
  961. package/dist/server/server/src/validation/authentication/forgot-password.mjs.map +1 -1
  962. package/dist/server/server/src/validation/authentication/login.js.map +1 -1
  963. package/dist/server/server/src/validation/authentication/login.mjs.map +1 -1
  964. package/dist/server/server/src/validation/authentication/register.js.map +1 -1
  965. package/dist/server/server/src/validation/authentication/register.mjs.map +1 -1
  966. package/dist/server/server/src/validation/authentication/reset-password.js.map +1 -1
  967. package/dist/server/server/src/validation/authentication/reset-password.mjs.map +1 -1
  968. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
  969. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.mjs.map +1 -1
  970. package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js.map +1 -1
  971. package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.mjs.map +1 -1
  972. package/dist/server/server/src/validation/common-validators.js +2 -4
  973. package/dist/server/server/src/validation/common-validators.js.map +1 -1
  974. package/dist/server/server/src/validation/common-validators.mjs +4 -5
  975. package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
  976. package/dist/server/server/src/validation/permission.js.map +1 -1
  977. package/dist/server/server/src/validation/permission.mjs.map +1 -1
  978. package/dist/server/server/src/validation/policies/hasPermissions.js.map +1 -1
  979. package/dist/server/server/src/validation/policies/hasPermissions.mjs.map +1 -1
  980. package/dist/server/server/src/validation/project-settings.js.map +1 -1
  981. package/dist/server/server/src/validation/project-settings.mjs.map +1 -1
  982. package/dist/server/server/src/validation/role.js.map +1 -1
  983. package/dist/server/server/src/validation/role.mjs.map +1 -1
  984. package/dist/server/server/src/validation/transfer/token.js.map +1 -1
  985. package/dist/server/server/src/validation/transfer/token.mjs.map +1 -1
  986. package/dist/server/server/src/validation/user.js +1 -4
  987. package/dist/server/server/src/validation/user.js.map +1 -1
  988. package/dist/server/server/src/validation/user.mjs +1 -4
  989. package/dist/server/server/src/validation/user.mjs.map +1 -1
  990. package/dist/server/shared/utils/session-auth.js.map +1 -1
  991. package/dist/server/shared/utils/session-auth.mjs.map +1 -1
  992. package/package.json +17 -12
@@ -1 +1 @@
1
- {"version":3,"file":"PageHelpers.js","sources":["../../../../../admin/src/components/PageHelpers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n EmptyStateLayout,\n type EmptyStateLayoutProps,\n Flex,\n Loader,\n Main,\n MainProps,\n} from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { EmptyPermissions, EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { useAuth, Permission } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useCheckPermissionsQuery } from '../services/auth';\n\n/* -------------------------------------------------------------------------------------------------\n * Main\n * -----------------------------------------------------------------------------------------------*/\ninterface PageMainProps extends MainProps {\n children: React.ReactNode;\n}\n\nconst PageMain = ({ children, ...restProps }: PageMainProps) => {\n return <Main {...restProps}>{children}</Main>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Loading\n * -----------------------------------------------------------------------------------------------*/\ninterface LoadingProps {\n /**\n * @default 'Loading content.'\n */\n children?: React.ReactNode;\n}\n\n/**\n * @public\n * @description A loading component that should be rendered as the page\n * whilst you load the content for the aforementioned page.\n */\nconst Loading = ({ children = 'Loading content.' }: LoadingProps) => {\n return (\n <PageMain height=\"100dvh\" aria-busy={true}>\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Loader>{children}</Loader>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Error\n * -----------------------------------------------------------------------------------------------*/\ninterface ErrorProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * TODO: should we start passing our errors here so they're persisted on the screen?\n * This could follow something similar to how the global app error works...?\n */\n\n/**\n * @public\n * @description An error component that should be rendered as the page\n * when an error occurs.\n */\nconst Error = (props: ErrorProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <EmptyStateLayout\n icon={<WarningCircle width=\"16rem\" />}\n content={formatMessage({\n id: 'anErrorOccurred',\n defaultMessage: 'Whoops! Something went wrong. Please, try again.',\n })}\n {...props}\n />\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoPermissions\n * -----------------------------------------------------------------------------------------------*/\ninterface NoPermissionsProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when the user does not have the permissions to access the content.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoPermissions = (props: NoPermissionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyPermissions width=\"16rem\" />}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-permissions',\n defaultMessage: \"You don't have the permissions to access that content\",\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoData\n * -----------------------------------------------------------------------------------------------*/\ninterface NoDataProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when there is no data available to display.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoData = (props: NoDataProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\" background=\"neutral100\">\n <Flex alignItems=\"center\" height=\"100%\" width=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n action={props.action}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Protect\n * -----------------------------------------------------------------------------------------------*/\nexport interface ProtectProps {\n /**\n * The children to render if the user has the required permissions.\n * If providing a function, it will be called with an object containing\n * the permissions the user has based on the array you passed to the component.\n */\n children: React.ReactNode | ((args: { permissions: Permission[] }) => React.ReactNode);\n /**\n * The permissions the user needs to have to access the content.\n */\n permissions?: Array<Omit<Partial<Permission>, 'action'> & Pick<Permission, 'action'>>;\n}\n\n/**\n * @public\n * @description A wrapper component that should be used to protect a page. It will check the permissions\n * you pass to it and render the children if the user has the required permissions. If a user does not have ALL\n * the required permissions, it will redirect the user to the home page. Whilst these checks happen it will render\n * the loading component and should the check fail it will render the error component with a notification.\n */\nconst Protect = ({ permissions = [], children }: ProtectProps) => {\n const userPermissions = useAuth('Protect', (state) => state.permissions);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const matchingPermissions = userPermissions.filter(\n (permission) =>\n permissions.findIndex(\n (perm) => perm.action === permission.action && perm.subject === permission.subject\n ) >= 0\n );\n\n const shouldCheckConditions = matchingPermissions.some(\n (perm) => Array.isArray(perm.conditions) && perm.conditions.length > 0\n );\n\n const { isLoading, error, data } = useCheckPermissionsQuery(\n {\n permissions: matchingPermissions.map((perm) => ({\n action: perm.action,\n subject: perm.subject,\n })),\n },\n {\n skip: !shouldCheckConditions,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (isLoading) {\n return <Loading />;\n }\n\n if (error) {\n return <Error />;\n }\n\n const { data: permissionsData } = data || {};\n\n const canAccess =\n shouldCheckConditions && permissionsData\n ? !permissionsData.includes(false)\n : matchingPermissions.length > 0;\n\n if (!canAccess) {\n return <NoPermissions />;\n }\n\n return (\n <>\n {typeof children === 'function' ? children({ permissions: matchingPermissions }) : children}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Title\n * -----------------------------------------------------------------------------------------------*/\nexport interface TitleProps {\n children: string;\n}\n\n/**\n * @public\n * @description This component takes the children (must be a string) and sets\n * it as the title of the html.\n */\nconst Title = ({ children: title }: TitleProps) => {\n React.useEffect(() => {\n document.title = `${title} | Strapi`;\n }, [title]);\n\n return null;\n};\n\nconst Page = {\n Error,\n Loading,\n NoPermissions,\n Protect,\n NoData,\n Main: PageMain,\n Title,\n};\n\nexport { Page };\nexport type { ErrorProps, LoadingProps, NoPermissionsProps, PageMainProps as MainProps };\n"],"names":["PageMain","children","restProps","_jsx","Main","Loading","height","aria-busy","Flex","alignItems","justifyContent","Loader","Error","props","formatMessage","useIntl","EmptyStateLayout","icon","WarningCircle","width","content","id","defaultMessage","NoPermissions","Box","minWidth","EmptyPermissions","NoData","background","EmptyDocuments","action","Protect","permissions","userPermissions","useAuth","state","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","matchingPermissions","filter","permission","findIndex","perm","subject","shouldCheckConditions","some","Array","isArray","conditions","length","isLoading","error","data","useCheckPermissionsQuery","map","skip","React","useEffect","type","message","permissionsData","canAccess","includes","_Fragment","Title","title","document","Page"],"mappings":"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"}
1
+ {"version":3,"file":"PageHelpers.js","sources":["../../../../../admin/src/components/PageHelpers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n EmptyStateLayout,\n type EmptyStateLayoutProps,\n Flex,\n Loader,\n Main,\n MainProps,\n} from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { EmptyPermissions, EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { useAuth, Permission } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useCheckPermissionsQuery } from '../services/auth';\n\n/* -------------------------------------------------------------------------------------------------\n * Main\n * -----------------------------------------------------------------------------------------------*/\ninterface PageMainProps extends MainProps {\n children: React.ReactNode;\n}\n\nconst PageMain = ({ children, ...restProps }: PageMainProps) => {\n return <Main {...restProps}>{children}</Main>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Loading\n * -----------------------------------------------------------------------------------------------*/\ninterface LoadingProps {\n /**\n * @default 'Loading content.'\n */\n children?: React.ReactNode;\n}\n\n/**\n * @public\n * @description A loading component that should be rendered as the page\n * whilst you load the content for the aforementioned page.\n */\nconst Loading = ({ children = 'Loading content.' }: LoadingProps) => {\n return (\n <PageMain height=\"100dvh\" aria-busy={true}>\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Loader>{children}</Loader>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Error\n * -----------------------------------------------------------------------------------------------*/\ninterface ErrorProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * TODO: should we start passing our errors here so they're persisted on the screen?\n * This could follow something similar to how the global app error works...?\n */\n\n/**\n * @public\n * @description An error component that should be rendered as the page\n * when an error occurs.\n */\nconst Error = (props: ErrorProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <EmptyStateLayout\n icon={<WarningCircle width=\"16rem\" />}\n content={formatMessage({\n id: 'anErrorOccurred',\n defaultMessage: 'Whoops! Something went wrong. Please, try again.',\n })}\n {...props}\n />\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoPermissions\n * -----------------------------------------------------------------------------------------------*/\ninterface NoPermissionsProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when the user does not have the permissions to access the content.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoPermissions = (props: NoPermissionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyPermissions width=\"16rem\" />}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-permissions',\n defaultMessage: \"You don't have the permissions to access that content\",\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoData\n * -----------------------------------------------------------------------------------------------*/\ninterface NoDataProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when there is no data available to display.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoData = (props: NoDataProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\" background=\"neutral100\">\n <Flex alignItems=\"center\" height=\"100%\" width=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n action={props.action}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Protect\n * -----------------------------------------------------------------------------------------------*/\nexport interface ProtectProps {\n /**\n * The children to render if the user has the required permissions.\n * If providing a function, it will be called with an object containing\n * the permissions the user has based on the array you passed to the component.\n */\n children: React.ReactNode | ((args: { permissions: Permission[] }) => React.ReactNode);\n /**\n * The permissions the user needs to have to access the content.\n */\n permissions?: Array<Omit<Partial<Permission>, 'action'> & Pick<Permission, 'action'>>;\n}\n\n/**\n * @public\n * @description A wrapper component that should be used to protect a page. It will check the permissions\n * you pass to it and render the children if the user has the required permissions. If a user does not have ALL\n * the required permissions, it will redirect the user to the home page. Whilst these checks happen it will render\n * the loading component and should the check fail it will render the error component with a notification.\n */\nconst Protect = ({ permissions = [], children }: ProtectProps) => {\n const userPermissions = useAuth('Protect', (state) => state.permissions);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const matchingPermissions = userPermissions.filter(\n (permission) =>\n permissions.findIndex(\n (perm) => perm.action === permission.action && perm.subject === permission.subject\n ) >= 0\n );\n\n const shouldCheckConditions = matchingPermissions.some(\n (perm) => Array.isArray(perm.conditions) && perm.conditions.length > 0\n );\n\n const { isLoading, error, data } = useCheckPermissionsQuery(\n {\n permissions: matchingPermissions.map((perm) => ({\n action: perm.action,\n subject: perm.subject,\n })),\n },\n {\n skip: !shouldCheckConditions,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (isLoading) {\n return <Loading />;\n }\n\n if (error) {\n return <Error />;\n }\n\n const { data: permissionsData } = data || {};\n\n const canAccess =\n shouldCheckConditions && permissionsData\n ? !permissionsData.includes(false)\n : matchingPermissions.length > 0;\n\n if (!canAccess) {\n return <NoPermissions />;\n }\n\n return (\n <>\n {typeof children === 'function' ? children({ permissions: matchingPermissions }) : children}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Title\n * -----------------------------------------------------------------------------------------------*/\nexport interface TitleProps {\n children: string;\n}\n\n/**\n * @public\n * @description This component takes the children (must be a string) and sets\n * it as the title of the html.\n */\nconst Title = ({ children: title }: TitleProps) => {\n React.useEffect(() => {\n document.title = `${title} | Strapi`;\n }, [title]);\n\n return null;\n};\n\nconst Page = {\n Error,\n Loading,\n NoPermissions,\n Protect,\n NoData,\n Main: PageMain,\n Title,\n};\n\nexport { Page };\nexport type { ErrorProps, LoadingProps, NoPermissionsProps, PageMainProps as MainProps };\n"],"names":["PageMain","children","restProps","_jsx","Main","Loading","height","aria-busy","Flex","alignItems","justifyContent","Loader","Error","props","formatMessage","useIntl","EmptyStateLayout","icon","WarningCircle","width","content","id","defaultMessage","NoPermissions","Box","minWidth","EmptyPermissions","NoData","background","EmptyDocuments","action","Protect","permissions","userPermissions","useAuth","state","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","matchingPermissions","filter","permission","findIndex","perm","subject","shouldCheckConditions","some","Array","isArray","conditions","length","isLoading","error","data","useCheckPermissionsQuery","map","skip","React","useEffect","type","message","permissionsData","canAccess","includes","_Fragment","Title","title","document","Page"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { jsx, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { Main, Flex, Loader, EmptyStateLayout, Box } from '@strapi/design-system';
3
+ import { Main, Flex, Box, EmptyStateLayout, Loader } from '@strapi/design-system';
4
4
  import { WarningCircle } from '@strapi/icons';
5
- import { EmptyPermissions, EmptyDocuments } from '@strapi/icons/symbols';
5
+ import { EmptyDocuments, EmptyPermissions } from '@strapi/icons/symbols';
6
6
  import { useIntl } from 'react-intl';
7
7
  import { useAuth } from '../features/Auth.mjs';
8
8
  import { useNotification } from '../features/Notifications.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"PageHelpers.mjs","sources":["../../../../../admin/src/components/PageHelpers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n EmptyStateLayout,\n type EmptyStateLayoutProps,\n Flex,\n Loader,\n Main,\n MainProps,\n} from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { EmptyPermissions, EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { useAuth, Permission } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useCheckPermissionsQuery } from '../services/auth';\n\n/* -------------------------------------------------------------------------------------------------\n * Main\n * -----------------------------------------------------------------------------------------------*/\ninterface PageMainProps extends MainProps {\n children: React.ReactNode;\n}\n\nconst PageMain = ({ children, ...restProps }: PageMainProps) => {\n return <Main {...restProps}>{children}</Main>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Loading\n * -----------------------------------------------------------------------------------------------*/\ninterface LoadingProps {\n /**\n * @default 'Loading content.'\n */\n children?: React.ReactNode;\n}\n\n/**\n * @public\n * @description A loading component that should be rendered as the page\n * whilst you load the content for the aforementioned page.\n */\nconst Loading = ({ children = 'Loading content.' }: LoadingProps) => {\n return (\n <PageMain height=\"100dvh\" aria-busy={true}>\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Loader>{children}</Loader>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Error\n * -----------------------------------------------------------------------------------------------*/\ninterface ErrorProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * TODO: should we start passing our errors here so they're persisted on the screen?\n * This could follow something similar to how the global app error works...?\n */\n\n/**\n * @public\n * @description An error component that should be rendered as the page\n * when an error occurs.\n */\nconst Error = (props: ErrorProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <EmptyStateLayout\n icon={<WarningCircle width=\"16rem\" />}\n content={formatMessage({\n id: 'anErrorOccurred',\n defaultMessage: 'Whoops! Something went wrong. Please, try again.',\n })}\n {...props}\n />\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoPermissions\n * -----------------------------------------------------------------------------------------------*/\ninterface NoPermissionsProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when the user does not have the permissions to access the content.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoPermissions = (props: NoPermissionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyPermissions width=\"16rem\" />}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-permissions',\n defaultMessage: \"You don't have the permissions to access that content\",\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoData\n * -----------------------------------------------------------------------------------------------*/\ninterface NoDataProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when there is no data available to display.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoData = (props: NoDataProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\" background=\"neutral100\">\n <Flex alignItems=\"center\" height=\"100%\" width=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n action={props.action}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Protect\n * -----------------------------------------------------------------------------------------------*/\nexport interface ProtectProps {\n /**\n * The children to render if the user has the required permissions.\n * If providing a function, it will be called with an object containing\n * the permissions the user has based on the array you passed to the component.\n */\n children: React.ReactNode | ((args: { permissions: Permission[] }) => React.ReactNode);\n /**\n * The permissions the user needs to have to access the content.\n */\n permissions?: Array<Omit<Partial<Permission>, 'action'> & Pick<Permission, 'action'>>;\n}\n\n/**\n * @public\n * @description A wrapper component that should be used to protect a page. It will check the permissions\n * you pass to it and render the children if the user has the required permissions. If a user does not have ALL\n * the required permissions, it will redirect the user to the home page. Whilst these checks happen it will render\n * the loading component and should the check fail it will render the error component with a notification.\n */\nconst Protect = ({ permissions = [], children }: ProtectProps) => {\n const userPermissions = useAuth('Protect', (state) => state.permissions);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const matchingPermissions = userPermissions.filter(\n (permission) =>\n permissions.findIndex(\n (perm) => perm.action === permission.action && perm.subject === permission.subject\n ) >= 0\n );\n\n const shouldCheckConditions = matchingPermissions.some(\n (perm) => Array.isArray(perm.conditions) && perm.conditions.length > 0\n );\n\n const { isLoading, error, data } = useCheckPermissionsQuery(\n {\n permissions: matchingPermissions.map((perm) => ({\n action: perm.action,\n subject: perm.subject,\n })),\n },\n {\n skip: !shouldCheckConditions,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (isLoading) {\n return <Loading />;\n }\n\n if (error) {\n return <Error />;\n }\n\n const { data: permissionsData } = data || {};\n\n const canAccess =\n shouldCheckConditions && permissionsData\n ? !permissionsData.includes(false)\n : matchingPermissions.length > 0;\n\n if (!canAccess) {\n return <NoPermissions />;\n }\n\n return (\n <>\n {typeof children === 'function' ? children({ permissions: matchingPermissions }) : children}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Title\n * -----------------------------------------------------------------------------------------------*/\nexport interface TitleProps {\n children: string;\n}\n\n/**\n * @public\n * @description This component takes the children (must be a string) and sets\n * it as the title of the html.\n */\nconst Title = ({ children: title }: TitleProps) => {\n React.useEffect(() => {\n document.title = `${title} | Strapi`;\n }, [title]);\n\n return null;\n};\n\nconst Page = {\n Error,\n Loading,\n NoPermissions,\n Protect,\n NoData,\n Main: PageMain,\n Title,\n};\n\nexport { Page };\nexport type { ErrorProps, LoadingProps, NoPermissionsProps, PageMainProps as MainProps };\n"],"names":["PageMain","children","restProps","_jsx","Main","Loading","height","aria-busy","Flex","alignItems","justifyContent","Loader","Error","props","formatMessage","useIntl","EmptyStateLayout","icon","WarningCircle","width","content","id","defaultMessage","NoPermissions","Box","minWidth","EmptyPermissions","NoData","background","EmptyDocuments","action","Protect","permissions","userPermissions","useAuth","state","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","matchingPermissions","filter","permission","findIndex","perm","subject","shouldCheckConditions","some","Array","isArray","conditions","length","isLoading","error","data","useCheckPermissionsQuery","map","skip","React","useEffect","type","message","permissionsData","canAccess","includes","_Fragment","Title","title","document","Page"],"mappings":"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"}
1
+ {"version":3,"file":"PageHelpers.mjs","sources":["../../../../../admin/src/components/PageHelpers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n EmptyStateLayout,\n type EmptyStateLayoutProps,\n Flex,\n Loader,\n Main,\n MainProps,\n} from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { EmptyPermissions, EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { useAuth, Permission } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useCheckPermissionsQuery } from '../services/auth';\n\n/* -------------------------------------------------------------------------------------------------\n * Main\n * -----------------------------------------------------------------------------------------------*/\ninterface PageMainProps extends MainProps {\n children: React.ReactNode;\n}\n\nconst PageMain = ({ children, ...restProps }: PageMainProps) => {\n return <Main {...restProps}>{children}</Main>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Loading\n * -----------------------------------------------------------------------------------------------*/\ninterface LoadingProps {\n /**\n * @default 'Loading content.'\n */\n children?: React.ReactNode;\n}\n\n/**\n * @public\n * @description A loading component that should be rendered as the page\n * whilst you load the content for the aforementioned page.\n */\nconst Loading = ({ children = 'Loading content.' }: LoadingProps) => {\n return (\n <PageMain height=\"100dvh\" aria-busy={true}>\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Loader>{children}</Loader>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Error\n * -----------------------------------------------------------------------------------------------*/\ninterface ErrorProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * TODO: should we start passing our errors here so they're persisted on the screen?\n * This could follow something similar to how the global app error works...?\n */\n\n/**\n * @public\n * @description An error component that should be rendered as the page\n * when an error occurs.\n */\nconst Error = (props: ErrorProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <EmptyStateLayout\n icon={<WarningCircle width=\"16rem\" />}\n content={formatMessage({\n id: 'anErrorOccurred',\n defaultMessage: 'Whoops! Something went wrong. Please, try again.',\n })}\n {...props}\n />\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoPermissions\n * -----------------------------------------------------------------------------------------------*/\ninterface NoPermissionsProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when the user does not have the permissions to access the content.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoPermissions = (props: NoPermissionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyPermissions width=\"16rem\" />}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-permissions',\n defaultMessage: \"You don't have the permissions to access that content\",\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoData\n * -----------------------------------------------------------------------------------------------*/\ninterface NoDataProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when there is no data available to display.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoData = (props: NoDataProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\" background=\"neutral100\">\n <Flex alignItems=\"center\" height=\"100%\" width=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n action={props.action}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Protect\n * -----------------------------------------------------------------------------------------------*/\nexport interface ProtectProps {\n /**\n * The children to render if the user has the required permissions.\n * If providing a function, it will be called with an object containing\n * the permissions the user has based on the array you passed to the component.\n */\n children: React.ReactNode | ((args: { permissions: Permission[] }) => React.ReactNode);\n /**\n * The permissions the user needs to have to access the content.\n */\n permissions?: Array<Omit<Partial<Permission>, 'action'> & Pick<Permission, 'action'>>;\n}\n\n/**\n * @public\n * @description A wrapper component that should be used to protect a page. It will check the permissions\n * you pass to it and render the children if the user has the required permissions. If a user does not have ALL\n * the required permissions, it will redirect the user to the home page. Whilst these checks happen it will render\n * the loading component and should the check fail it will render the error component with a notification.\n */\nconst Protect = ({ permissions = [], children }: ProtectProps) => {\n const userPermissions = useAuth('Protect', (state) => state.permissions);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const matchingPermissions = userPermissions.filter(\n (permission) =>\n permissions.findIndex(\n (perm) => perm.action === permission.action && perm.subject === permission.subject\n ) >= 0\n );\n\n const shouldCheckConditions = matchingPermissions.some(\n (perm) => Array.isArray(perm.conditions) && perm.conditions.length > 0\n );\n\n const { isLoading, error, data } = useCheckPermissionsQuery(\n {\n permissions: matchingPermissions.map((perm) => ({\n action: perm.action,\n subject: perm.subject,\n })),\n },\n {\n skip: !shouldCheckConditions,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (isLoading) {\n return <Loading />;\n }\n\n if (error) {\n return <Error />;\n }\n\n const { data: permissionsData } = data || {};\n\n const canAccess =\n shouldCheckConditions && permissionsData\n ? !permissionsData.includes(false)\n : matchingPermissions.length > 0;\n\n if (!canAccess) {\n return <NoPermissions />;\n }\n\n return (\n <>\n {typeof children === 'function' ? children({ permissions: matchingPermissions }) : children}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Title\n * -----------------------------------------------------------------------------------------------*/\nexport interface TitleProps {\n children: string;\n}\n\n/**\n * @public\n * @description This component takes the children (must be a string) and sets\n * it as the title of the html.\n */\nconst Title = ({ children: title }: TitleProps) => {\n React.useEffect(() => {\n document.title = `${title} | Strapi`;\n }, [title]);\n\n return null;\n};\n\nconst Page = {\n Error,\n Loading,\n NoPermissions,\n Protect,\n NoData,\n Main: PageMain,\n Title,\n};\n\nexport { Page };\nexport type { ErrorProps, LoadingProps, NoPermissionsProps, PageMainProps as MainProps };\n"],"names":["PageMain","children","restProps","_jsx","Main","Loading","height","aria-busy","Flex","alignItems","justifyContent","Loader","Error","props","formatMessage","useIntl","EmptyStateLayout","icon","WarningCircle","width","content","id","defaultMessage","NoPermissions","Box","minWidth","EmptyPermissions","NoData","background","EmptyDocuments","action","Protect","permissions","userPermissions","useAuth","state","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","matchingPermissions","filter","permission","findIndex","perm","subject","shouldCheckConditions","some","Array","isArray","conditions","length","isLoading","error","data","useCheckPermissionsQuery","map","skip","React","useEffect","type","message","permissionsData","canAccess","includes","_Fragment","Title","title","document","Page"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../../../admin/src/components/Pagination.tsx"],"sourcesContent":["/* eslint-disable import/export */\nimport * as React from 'react';\n\nimport {\n Flex,\n SingleSelectOption,\n SingleSelect,\n Typography,\n Dots,\n NextLink,\n PageLink,\n Pagination as PaginationImpl,\n PreviousLink,\n} from '@strapi/design-system';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { useQueryParams } from '../hooks/useQueryParams';\n\nimport { createContext } from './Context';\n\nimport type { Pagination as PaginationApi } from '../../../shared/contracts/shared';\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\ninterface PaginationContextValue {\n /**\n * @description the complete query object, this could include query params\n * injected by other plugins, if you're navigating to a different page you\n * should ensure these are still passed.\n */\n currentQuery?: object;\n pageCount: string;\n pageSize: string;\n page: string;\n setPageSize: (pageSize: string) => void;\n total: NonNullable<RootProps['total']>;\n}\n\nconst [PaginationProvider, usePagination] = createContext<PaginationContextValue>('Pagination');\n\ninterface RootProps {\n children: React.ReactNode;\n /**\n * @default 0\n * @description the total number of pages\n * that exist in the dataset.\n */\n pageCount?: PaginationApi['pageCount'];\n /**\n * @default 1\n * @description the initial page number.\n */\n defaultPage?: PaginationApi['page'];\n /**\n * @default 10\n * @description the initial number of items to display\n */\n defaultPageSize?: PaginationApi['pageSize'];\n /**\n * @description a callback that is called when the page size changes.\n */\n onPageSizeChange?: (pageSize: string) => void;\n /**\n * @default 0\n * @description the total number of items in the dataset.\n */\n total?: PaginationApi['total'];\n}\n\n/**\n * @description The root component for the composable pagination component.\n * It's advised to spread the entire pagination option object into this component.\n *\n * @example\n * ```tsx\n * const MyComponent = () => {\n * return (\n * <Pagination.Root {...response.pagination}>\n * <Pagination.PageSize />\n * <Pagination.Links />\n * </Pagination.Root>\n * );\n * };\n * ```\n */\nconst Root = React.forwardRef<HTMLDivElement, RootProps>(\n (\n { children, defaultPageSize = 10, pageCount = 0, defaultPage = 1, onPageSizeChange, total = 0 },\n forwardedRef\n ) => {\n const [{ query }, setQuery] = useQueryParams<Pick<PaginationContextValue, 'page' | 'pageSize'>>(\n {\n pageSize: defaultPageSize.toString(),\n page: defaultPage.toString(),\n }\n );\n\n const setPageSize = (pageSize: string) => {\n setQuery({ pageSize, page: '1' });\n\n if (onPageSizeChange) {\n onPageSizeChange(pageSize);\n }\n };\n\n return (\n <Flex\n ref={forwardedRef}\n paddingTop={4}\n paddingBottom={4}\n alignItems=\"flex-end\"\n justifyContent=\"space-between\"\n >\n <PaginationProvider\n currentQuery={query}\n page={query.page}\n pageSize={query.pageSize}\n pageCount={pageCount.toString()}\n setPageSize={setPageSize}\n total={total}\n >\n {children}\n </PaginationProvider>\n </Flex>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PageSize\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @description The page size component is responsible for rendering the select input that allows\n * the user to change the number of items displayed per page.\n * If the total number of items is less than the minimum option, this component will not render.\n */\nconst PageSize = ({ options = ['10', '20', '50', '100'] }: Pagination.PageSizeProps) => {\n const { formatMessage } = useIntl();\n\n const pageSize = usePagination('PageSize', (state) => state.pageSize);\n const totalCount = usePagination('PageSize', (state) => state.total);\n const setPageSize = usePagination('PageSize', (state) => state.setPageSize);\n\n const handleChange = (value: string) => {\n setPageSize(value);\n };\n\n const minimumOption = parseInt(options[0], 10);\n\n if (minimumOption >= totalCount) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n <SingleSelect\n size=\"S\"\n aria-label={formatMessage({\n id: 'components.PageFooter.select',\n defaultMessage: 'Entries per page',\n })}\n // @ts-expect-error from the DS V2 this won't be needed because we're only returning strings.\n onChange={handleChange}\n value={pageSize}\n >\n {options.map((option) => (\n <SingleSelectOption key={option} value={option}>\n {option}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Typography textColor=\"neutral600\" tag=\"span\">\n {formatMessage({\n id: 'components.PageFooter.select',\n defaultMessage: 'Entries per page',\n })}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Links\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * The component works as follows\n * `1` , 2, 3, ... 10\n * 1, `2`, 3, ... 10\n * 1, 2, `3`, 4, ... 10\n * 1, 2, 3, `4`, 5, ... 10\n * 1, ..,4, `5`, 6, ... 10\n *\n * 1, ...., 8, 9, `10`\n * 1, ...., 8, `9`, 10\n * 1, ...., 7, `8`, 9, 10\n * 1, ... 6, `7`, 8, 9, 10\n */\n\n/**\n * @description The links component is responsible for rendering the pagination links.\n * If the total number of pages is less than or equal to 1, this component will not render.\n */\nconst Links = ({ boundaryCount = 1, siblingCount = 1 }: Pagination.LinksProps) => {\n const { formatMessage } = useIntl();\n\n const query = usePagination('Links', (state) => state.currentQuery);\n const currentPage = usePagination('Links', (state) => state.page);\n const totalPages = usePagination('Links', (state) => state.pageCount);\n\n const pageCount = parseInt(totalPages, 10);\n const activePage = parseInt(currentPage, 10);\n\n const range = (start: number, end: number) => {\n const length = end - start + 1;\n\n return Array.from({ length }, (_, i) => start + i);\n };\n\n const startPages = range(1, Math.min(boundaryCount, pageCount));\n const endPages = range(Math.max(pageCount - boundaryCount + 1, boundaryCount + 1), pageCount);\n\n const siblingsStart = Math.max(\n Math.min(\n // Natural start\n activePage - siblingCount,\n // Lower boundary when page is high\n pageCount - boundaryCount - siblingCount * 2 - 1\n ),\n // Greater than startPages\n boundaryCount + 2\n );\n\n const siblingsEnd = Math.min(\n Math.max(\n // Natural end\n activePage + siblingCount,\n // Upper boundary when page is low\n boundaryCount + siblingCount * 2 + 2\n ),\n // Less than endPages\n endPages.length > 0 ? endPages[0] - 2 : pageCount - 1\n );\n\n const items = [\n ...startPages,\n\n // Start ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsStart > boundaryCount + 2\n ? ['start-ellipsis']\n : boundaryCount + 1 < pageCount - boundaryCount\n ? [boundaryCount + 1]\n : []),\n\n // Sibling pages\n ...range(siblingsStart, siblingsEnd),\n\n // End ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsEnd < pageCount - boundaryCount - 1\n ? ['end-ellipsis']\n : pageCount - boundaryCount > boundaryCount\n ? [pageCount - boundaryCount]\n : []),\n\n ...endPages,\n ];\n\n if (pageCount <= 1) {\n return null;\n }\n\n return (\n <PaginationImpl activePage={activePage} pageCount={pageCount}>\n <PreviousLink tag={Link} to={{ search: stringify({ ...query, page: activePage - 1 }) }}>\n {formatMessage({\n id: 'components.pagination.go-to-previous',\n defaultMessage: 'Go to previous page',\n })}\n </PreviousLink>\n {items.map((item) => {\n if (typeof item === 'number') {\n return (\n <PageLink\n tag={Link}\n key={item}\n number={item}\n to={{ search: stringify({ ...query, page: item }) }}\n >\n {formatMessage(\n { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n { page: item }\n )}\n </PageLink>\n );\n }\n\n return <Dots key={item} />;\n })}\n\n <NextLink tag={Link} to={{ search: stringify({ ...query, page: activePage + 1 }) }}>\n {formatMessage({\n id: 'components.pagination.go-to-next',\n defaultMessage: 'Go to next page',\n })}\n </NextLink>\n </PaginationImpl>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst Pagination = {\n Root,\n Links,\n PageSize,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Pagination {\n export interface Props extends RootProps {}\n\n export interface PageSizeProps {\n options?: string[];\n }\n\n export interface LinksProps {\n /**\n * @default 1\n * @description Number of always visible pages at the beginning and end.\n */\n boundaryCount?: number;\n /**\n * @default 1\n * @description Number of always visible pages before and after the current page.\n */\n siblingCount?: number;\n }\n}\n\nexport { Pagination };\n"],"names":["PaginationProvider","usePagination","createContext","Root","React","forwardRef","children","defaultPageSize","pageCount","defaultPage","onPageSizeChange","total","forwardedRef","query","setQuery","useQueryParams","pageSize","toString","page","setPageSize","_jsx","Flex","ref","paddingTop","paddingBottom","alignItems","justifyContent","currentQuery","PageSize","options","formatMessage","useIntl","state","totalCount","handleChange","value","minimumOption","parseInt","_jsxs","gap","SingleSelect","size","aria-label","id","defaultMessage","onChange","map","option","SingleSelectOption","Typography","textColor","tag","Links","boundaryCount","siblingCount","currentPage","totalPages","activePage","range","start","end","length","Array","from","_","i","startPages","Math","min","endPages","max","siblingsStart","siblingsEnd","items","PaginationImpl","PreviousLink","Link","to","search","stringify","item","PageLink","number","Dots","NextLink","Pagination"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,MAAM,CAACA,kBAAAA,EAAoBC,aAAc,CAAA,GAAGC,qBAAsC,CAAA,YAAA,CAAA;AA+BlF;;;;;;;;;;;;;;;IAgBA,MAAMC,qBAAOC,gBAAMC,CAAAA,UAAU,CAC3B,CACE,EAAEC,QAAQ,EAAEC,eAAkB,GAAA,EAAE,EAAEC,SAAY,GAAA,CAAC,EAAEC,WAAAA,GAAc,CAAC,EAAEC,gBAAgB,EAAEC,KAAAA,GAAQ,CAAC,EAAE,EAC/FC,YAAAA,GAAAA;AAEA,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,QAAAA,CAAS,GAAGC,6BAC5B,CAAA;AACEC,QAAAA,QAAAA,EAAUT,gBAAgBU,QAAQ,EAAA;AAClCC,QAAAA,IAAAA,EAAMT,YAAYQ,QAAQ;AAC5B,KAAA,CAAA;AAGF,IAAA,MAAME,cAAc,CAACH,QAAAA,GAAAA;QACnBF,QAAS,CAAA;AAAEE,YAAAA,QAAAA;YAAUE,IAAM,EAAA;AAAI,SAAA,CAAA;AAE/B,QAAA,IAAIR,gBAAkB,EAAA;YACpBA,gBAAiBM,CAAAA,QAAAA,CAAAA;AACnB;AACF,KAAA;AAEA,IAAA,qBACEI,cAACC,CAAAA,iBAAAA,EAAAA;QACCC,GAAKV,EAAAA,YAAAA;QACLW,UAAY,EAAA,CAAA;QACZC,aAAe,EAAA,CAAA;QACfC,UAAW,EAAA,UAAA;QACXC,cAAe,EAAA,eAAA;AAEf,QAAA,QAAA,gBAAAN,cAACpB,CAAAA,kBAAAA,EAAAA;YACC2B,YAAcd,EAAAA,KAAAA;AACdK,YAAAA,IAAAA,EAAML,MAAMK,IAAI;AAChBF,YAAAA,QAAAA,EAAUH,MAAMG,QAAQ;AACxBR,YAAAA,SAAAA,EAAWA,UAAUS,QAAQ,EAAA;YAC7BE,WAAaA,EAAAA,WAAAA;YACbR,KAAOA,EAAAA,KAAAA;AAENL,YAAAA,QAAAA,EAAAA;;;AAIT,CAAA,CAAA;AAGF;;;;;;AAQC,IACD,MAAMsB,QAAAA,GAAW,CAAC,EAAEC,OAAU,GAAA;AAAC,IAAA,IAAA;AAAM,IAAA,IAAA;AAAM,IAAA,IAAA;AAAM,IAAA;CAAM,EAA4B,GAAA;IACjF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMf,WAAWf,aAAc,CAAA,UAAA,EAAY,CAAC+B,KAAAA,GAAUA,MAAMhB,QAAQ,CAAA;AACpE,IAAA,MAAMiB,aAAahC,aAAc,CAAA,UAAA,EAAY,CAAC+B,KAAAA,GAAUA,MAAMrB,KAAK,CAAA;AACnE,IAAA,MAAMQ,cAAclB,aAAc,CAAA,UAAA,EAAY,CAAC+B,KAAAA,GAAUA,MAAMb,WAAW,CAAA;AAE1E,IAAA,MAAMe,eAAe,CAACC,KAAAA,GAAAA;QACpBhB,WAAYgB,CAAAA,KAAAA,CAAAA;AACd,KAAA;AAEA,IAAA,MAAMC,aAAgBC,GAAAA,QAAAA,CAASR,OAAO,CAAC,EAAE,EAAE,EAAA,CAAA;AAE3C,IAAA,IAAIO,iBAAiBH,UAAY,EAAA;QAC/B,OAAO,IAAA;AACT;AAEA,IAAA,qBACEK,eAACjB,CAAAA,iBAAAA,EAAAA;QAAKkB,GAAK,EAAA,CAAA;;0BACTnB,cAACoB,CAAAA,yBAAAA,EAAAA;gBACCC,IAAK,EAAA,GAAA;AACLC,gBAAAA,YAAAA,EAAYZ,aAAc,CAAA;oBACxBa,EAAI,EAAA,8BAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA;;gBAEAC,QAAUX,EAAAA,YAAAA;gBACVC,KAAOnB,EAAAA,QAAAA;AAENa,gBAAAA,QAAAA,EAAAA,OAAAA,CAAQiB,GAAG,CAAC,CAACC,MAAAA,iBACZ3B,cAAC4B,CAAAA,+BAAAA,EAAAA;wBAAgCb,KAAOY,EAAAA,MAAAA;AACrCA,wBAAAA,QAAAA,EAAAA;AADsBA,qBAAAA,EAAAA,MAAAA,CAAAA;;0BAK7B3B,cAAC6B,CAAAA,uBAAAA,EAAAA;gBAAWC,SAAU,EAAA,YAAA;gBAAaC,GAAI,EAAA,MAAA;0BACpCrB,aAAc,CAAA;oBACba,EAAI,EAAA,8BAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;;;AAIR,CAAA;AAEA;;;;;;;;;;;;;;;;;IAsBA,MAAMQ,QAAQ,CAAC,EAAEC,gBAAgB,CAAC,EAAEC,YAAe,GAAA,CAAC,EAAyB,GAAA;IAC3E,MAAM,EAAExB,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMlB,QAAQZ,aAAc,CAAA,OAAA,EAAS,CAAC+B,KAAAA,GAAUA,MAAML,YAAY,CAAA;AAClE,IAAA,MAAM4B,cAActD,aAAc,CAAA,OAAA,EAAS,CAAC+B,KAAAA,GAAUA,MAAMd,IAAI,CAAA;AAChE,IAAA,MAAMsC,aAAavD,aAAc,CAAA,OAAA,EAAS,CAAC+B,KAAAA,GAAUA,MAAMxB,SAAS,CAAA;IAEpE,MAAMA,SAAAA,GAAY6B,SAASmB,UAAY,EAAA,EAAA,CAAA;IACvC,MAAMC,UAAAA,GAAapB,SAASkB,WAAa,EAAA,EAAA,CAAA;IAEzC,MAAMG,KAAAA,GAAQ,CAACC,KAAeC,EAAAA,GAAAA,GAAAA;QAC5B,MAAMC,MAAAA,GAASD,MAAMD,KAAQ,GAAA,CAAA;QAE7B,OAAOG,KAAAA,CAAMC,IAAI,CAAC;AAAEF,YAAAA;SAAU,EAAA,CAACG,CAAGC,EAAAA,CAAAA,GAAMN,KAAQM,GAAAA,CAAAA,CAAAA;AAClD,KAAA;AAEA,IAAA,MAAMC,aAAaR,KAAM,CAAA,CAAA,EAAGS,IAAKC,CAAAA,GAAG,CAACf,aAAe7C,EAAAA,SAAAA,CAAAA,CAAAA;IACpD,MAAM6D,QAAAA,GAAWX,MAAMS,IAAKG,CAAAA,GAAG,CAAC9D,SAAY6C,GAAAA,aAAAA,GAAgB,CAAGA,EAAAA,aAAAA,GAAgB,CAAI7C,CAAAA,EAAAA,SAAAA,CAAAA;AAEnF,IAAA,MAAM+D,gBAAgBJ,IAAKG,CAAAA,GAAG,CAC5BH,IAAKC,CAAAA,GAAG;AAENX,IAAAA,UAAAA,GAAaH;AAEb9C,IAAAA,SAAAA,GAAY6C,aAAgBC,GAAAA,YAAAA,GAAe,CAAI,GAAA,CAAA,CAAA;IAGjDD,aAAgB,GAAA,CAAA,CAAA;AAGlB,IAAA,MAAMmB,cAAcL,IAAKC,CAAAA,GAAG,CAC1BD,IAAKG,CAAAA,GAAG;AAENb,IAAAA,UAAAA,GAAaH;IAEbD,aAAgBC,GAAAA,YAAAA,GAAe,CAAI,GAAA,CAAA,CAAA;IAGrCe,QAASR,CAAAA,MAAM,GAAG,CAAIQ,GAAAA,QAAQ,CAAC,CAAE,CAAA,GAAG,IAAI7D,SAAY,GAAA,CAAA,CAAA;AAGtD,IAAA,MAAMiE,KAAQ,GAAA;AACTP,QAAAA,GAAAA,UAAAA;;;AAICK,QAAAA,GAAAA,aAAAA,GAAgBlB,gBAAgB,CAChC,GAAA;AAAC,YAAA;SAAiB,GAClBA,aAAAA,GAAgB,CAAI7C,GAAAA,SAAAA,GAAY6C,aAC9B,GAAA;YAACA,aAAgB,GAAA;AAAE,SAAA,GACnB,EAAE;;AAGLK,QAAAA,GAAAA,KAAAA,CAAMa,aAAeC,EAAAA,WAAAA,CAAAA;;;WAIpBA,WAAchE,GAAAA,SAAAA,GAAY6C,gBAAgB,CAC1C,GAAA;AAAC,YAAA;SAAe,GAChB7C,SAAAA,GAAY6C,gBAAgBA,aAC1B,GAAA;YAAC7C,SAAY6C,GAAAA;AAAc,SAAA,GAC3B,EAAE;AAELgB,QAAAA,GAAAA;AACJ,KAAA;AAED,IAAA,IAAI7D,aAAa,CAAG,EAAA;QAClB,OAAO,IAAA;AACT;AAEA,IAAA,qBACE8B,eAACoC,CAAAA,uBAAAA,EAAAA;QAAejB,UAAYA,EAAAA,UAAAA;QAAYjD,SAAWA,EAAAA,SAAAA;;0BACjDY,cAACuD,CAAAA,yBAAAA,EAAAA;gBAAaxB,GAAKyB,EAAAA,mBAAAA;gBAAMC,EAAI,EAAA;AAAEC,oBAAAA,MAAAA,EAAQC,YAAU,CAAA;AAAE,wBAAA,GAAGlE,KAAK;AAAEK,wBAAAA,IAAAA,EAAMuC,UAAa,GAAA;AAAE,qBAAA;AAAG,iBAAA;0BAClF3B,aAAc,CAAA;oBACba,EAAI,EAAA,sCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;YAED6B,KAAM3B,CAAAA,GAAG,CAAC,CAACkC,IAAAA,GAAAA;gBACV,IAAI,OAAOA,SAAS,QAAU,EAAA;AAC5B,oBAAA,qBACE5D,cAAC6D,CAAAA,qBAAAA,EAAAA;wBACC9B,GAAKyB,EAAAA,mBAAAA;wBAELM,MAAQF,EAAAA,IAAAA;wBACRH,EAAI,EAAA;AAAEC,4BAAAA,MAAAA,EAAQC,YAAU,CAAA;AAAE,gCAAA,GAAGlE,KAAK;gCAAEK,IAAM8D,EAAAA;AAAK,6BAAA;AAAG,yBAAA;kCAEjDlD,aACC,CAAA;4BAAEa,EAAI,EAAA,6BAAA;4BAA+BC,cAAgB,EAAA;yBACrD,EAAA;4BAAE1B,IAAM8D,EAAAA;AAAK,yBAAA;AANVA,qBAAAA,EAAAA,IAAAA,CAAAA;AAUX;AAEA,gBAAA,qBAAO5D,eAAC+D,iBAAUH,EAAAA,EAAAA,EAAAA,IAAAA,CAAAA;AACpB,aAAA,CAAA;0BAEA5D,cAACgE,CAAAA,qBAAAA,EAAAA;gBAASjC,GAAKyB,EAAAA,mBAAAA;gBAAMC,EAAI,EAAA;AAAEC,oBAAAA,MAAAA,EAAQC,YAAU,CAAA;AAAE,wBAAA,GAAGlE,KAAK;AAAEK,wBAAAA,IAAAA,EAAMuC,UAAa,GAAA;AAAE,qBAAA;AAAG,iBAAA;0BAC9E3B,aAAc,CAAA;oBACba,EAAI,EAAA,kCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;;;AAIR,CAAA;AAEA;;AAEkG,2GAE5FyC,UAAa,GAAA;AACjBlF,IAAAA,IAAAA;AACAiD,IAAAA,KAAAA;AACAxB,IAAAA;AACF;;;;"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../../../admin/src/components/Pagination.tsx"],"sourcesContent":["/* eslint-disable import/export */\nimport * as React from 'react';\n\nimport {\n Flex,\n SingleSelectOption,\n SingleSelect,\n Typography,\n Dots,\n NextLink,\n PageLink,\n Pagination as PaginationImpl,\n PreviousLink,\n} from '@strapi/design-system';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { useQueryParams } from '../hooks/useQueryParams';\n\nimport { createContext } from './Context';\n\nimport type { Pagination as PaginationApi } from '../../../shared/contracts/shared';\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\ninterface PaginationContextValue {\n /**\n * @description the complete query object, this could include query params\n * injected by other plugins, if you're navigating to a different page you\n * should ensure these are still passed.\n */\n currentQuery?: object;\n pageCount: string;\n pageSize: string;\n page: string;\n setPageSize: (pageSize: string) => void;\n total: NonNullable<RootProps['total']>;\n}\n\nconst [PaginationProvider, usePagination] = createContext<PaginationContextValue>('Pagination');\n\ninterface RootProps {\n children: React.ReactNode;\n /**\n * @default 0\n * @description the total number of pages\n * that exist in the dataset.\n */\n pageCount?: PaginationApi['pageCount'];\n /**\n * @default 1\n * @description the initial page number.\n */\n defaultPage?: PaginationApi['page'];\n /**\n * @default 10\n * @description the initial number of items to display\n */\n defaultPageSize?: PaginationApi['pageSize'];\n /**\n * @description a callback that is called when the page size changes.\n */\n onPageSizeChange?: (pageSize: string) => void;\n /**\n * @default 0\n * @description the total number of items in the dataset.\n */\n total?: PaginationApi['total'];\n}\n\n/**\n * @description The root component for the composable pagination component.\n * It's advised to spread the entire pagination option object into this component.\n *\n * @example\n * ```tsx\n * const MyComponent = () => {\n * return (\n * <Pagination.Root {...response.pagination}>\n * <Pagination.PageSize />\n * <Pagination.Links />\n * </Pagination.Root>\n * );\n * };\n * ```\n */\nconst Root = React.forwardRef<HTMLDivElement, RootProps>(\n (\n { children, defaultPageSize = 10, pageCount = 0, defaultPage = 1, onPageSizeChange, total = 0 },\n forwardedRef\n ) => {\n const [{ query }, setQuery] = useQueryParams<Pick<PaginationContextValue, 'page' | 'pageSize'>>(\n {\n pageSize: defaultPageSize.toString(),\n page: defaultPage.toString(),\n }\n );\n\n const setPageSize = (pageSize: string) => {\n setQuery({ pageSize, page: '1' });\n\n if (onPageSizeChange) {\n onPageSizeChange(pageSize);\n }\n };\n\n return (\n <Flex\n ref={forwardedRef}\n paddingTop={4}\n paddingBottom={4}\n alignItems=\"flex-end\"\n justifyContent=\"space-between\"\n >\n <PaginationProvider\n currentQuery={query}\n page={query.page}\n pageSize={query.pageSize}\n pageCount={pageCount.toString()}\n setPageSize={setPageSize}\n total={total}\n >\n {children}\n </PaginationProvider>\n </Flex>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PageSize\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @description The page size component is responsible for rendering the select input that allows\n * the user to change the number of items displayed per page.\n * If the total number of items is less than the minimum option, this component will not render.\n */\nconst PageSize = ({ options = ['10', '20', '50', '100'] }: Pagination.PageSizeProps) => {\n const { formatMessage } = useIntl();\n\n const pageSize = usePagination('PageSize', (state) => state.pageSize);\n const totalCount = usePagination('PageSize', (state) => state.total);\n const setPageSize = usePagination('PageSize', (state) => state.setPageSize);\n\n const handleChange = (value: string) => {\n setPageSize(value);\n };\n\n const minimumOption = parseInt(options[0], 10);\n\n if (minimumOption >= totalCount) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n <SingleSelect\n size=\"S\"\n aria-label={formatMessage({\n id: 'components.PageFooter.select',\n defaultMessage: 'Entries per page',\n })}\n // @ts-expect-error from the DS V2 this won't be needed because we're only returning strings.\n onChange={handleChange}\n value={pageSize}\n >\n {options.map((option) => (\n <SingleSelectOption key={option} value={option}>\n {option}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Typography textColor=\"neutral600\" tag=\"span\">\n {formatMessage({\n id: 'components.PageFooter.select',\n defaultMessage: 'Entries per page',\n })}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Links\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * The component works as follows\n * `1` , 2, 3, ... 10\n * 1, `2`, 3, ... 10\n * 1, 2, `3`, 4, ... 10\n * 1, 2, 3, `4`, 5, ... 10\n * 1, ..,4, `5`, 6, ... 10\n *\n * 1, ...., 8, 9, `10`\n * 1, ...., 8, `9`, 10\n * 1, ...., 7, `8`, 9, 10\n * 1, ... 6, `7`, 8, 9, 10\n */\n\n/**\n * @description The links component is responsible for rendering the pagination links.\n * If the total number of pages is less than or equal to 1, this component will not render.\n */\nconst Links = ({ boundaryCount = 1, siblingCount = 1 }: Pagination.LinksProps) => {\n const { formatMessage } = useIntl();\n\n const query = usePagination('Links', (state) => state.currentQuery);\n const currentPage = usePagination('Links', (state) => state.page);\n const totalPages = usePagination('Links', (state) => state.pageCount);\n\n const pageCount = parseInt(totalPages, 10);\n const activePage = parseInt(currentPage, 10);\n\n const range = (start: number, end: number) => {\n const length = end - start + 1;\n\n return Array.from({ length }, (_, i) => start + i);\n };\n\n const startPages = range(1, Math.min(boundaryCount, pageCount));\n const endPages = range(Math.max(pageCount - boundaryCount + 1, boundaryCount + 1), pageCount);\n\n const siblingsStart = Math.max(\n Math.min(\n // Natural start\n activePage - siblingCount,\n // Lower boundary when page is high\n pageCount - boundaryCount - siblingCount * 2 - 1\n ),\n // Greater than startPages\n boundaryCount + 2\n );\n\n const siblingsEnd = Math.min(\n Math.max(\n // Natural end\n activePage + siblingCount,\n // Upper boundary when page is low\n boundaryCount + siblingCount * 2 + 2\n ),\n // Less than endPages\n endPages.length > 0 ? endPages[0] - 2 : pageCount - 1\n );\n\n const items = [\n ...startPages,\n\n // Start ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsStart > boundaryCount + 2\n ? ['start-ellipsis']\n : boundaryCount + 1 < pageCount - boundaryCount\n ? [boundaryCount + 1]\n : []),\n\n // Sibling pages\n ...range(siblingsStart, siblingsEnd),\n\n // End ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsEnd < pageCount - boundaryCount - 1\n ? ['end-ellipsis']\n : pageCount - boundaryCount > boundaryCount\n ? [pageCount - boundaryCount]\n : []),\n\n ...endPages,\n ];\n\n if (pageCount <= 1) {\n return null;\n }\n\n return (\n <PaginationImpl activePage={activePage} pageCount={pageCount}>\n <PreviousLink tag={Link} to={{ search: stringify({ ...query, page: activePage - 1 }) }}>\n {formatMessage({\n id: 'components.pagination.go-to-previous',\n defaultMessage: 'Go to previous page',\n })}\n </PreviousLink>\n {items.map((item) => {\n if (typeof item === 'number') {\n return (\n <PageLink\n tag={Link}\n key={item}\n number={item}\n to={{ search: stringify({ ...query, page: item }) }}\n >\n {formatMessage(\n { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n { page: item }\n )}\n </PageLink>\n );\n }\n\n return <Dots key={item} />;\n })}\n\n <NextLink tag={Link} to={{ search: stringify({ ...query, page: activePage + 1 }) }}>\n {formatMessage({\n id: 'components.pagination.go-to-next',\n defaultMessage: 'Go to next page',\n })}\n </NextLink>\n </PaginationImpl>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst Pagination = {\n Root,\n Links,\n PageSize,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Pagination {\n export interface Props extends RootProps {}\n\n export interface PageSizeProps {\n options?: string[];\n }\n\n export interface LinksProps {\n /**\n * @default 1\n * @description Number of always visible pages at the beginning and end.\n */\n boundaryCount?: number;\n /**\n * @default 1\n * @description Number of always visible pages before and after the current page.\n */\n siblingCount?: number;\n }\n}\n\nexport { Pagination };\n"],"names":["PaginationProvider","usePagination","createContext","Root","React","forwardRef","children","defaultPageSize","pageCount","defaultPage","onPageSizeChange","total","forwardedRef","query","setQuery","useQueryParams","pageSize","toString","page","setPageSize","_jsx","Flex","ref","paddingTop","paddingBottom","alignItems","justifyContent","currentQuery","PageSize","options","formatMessage","useIntl","state","totalCount","handleChange","value","minimumOption","parseInt","_jsxs","gap","SingleSelect","size","aria-label","id","defaultMessage","onChange","map","option","SingleSelectOption","Typography","textColor","tag","Links","boundaryCount","siblingCount","currentPage","totalPages","activePage","range","start","end","length","Array","from","_","i","startPages","Math","min","endPages","max","siblingsStart","siblingsEnd","items","PaginationImpl","PreviousLink","Link","to","search","stringify","item","PageLink","number","Dots","NextLink","Pagination"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,MAAM,CAACA,kBAAAA,EAAoBC,aAAAA,CAAc,GAAGC,qBAAAA,CAAsC,YAAA,CAAA;AA+BlF;;;;;;;;;;;;;;;IAgBA,MAAMC,qBAAOC,gBAAAA,CAAMC,UAAU,CAC3B,CACE,EAAEC,QAAQ,EAAEC,eAAAA,GAAkB,EAAE,EAAEC,SAAAA,GAAY,CAAC,EAAEC,WAAAA,GAAc,CAAC,EAAEC,gBAAgB,EAAEC,KAAAA,GAAQ,CAAC,EAAE,EAC/FC,YAAAA,GAAAA;AAEA,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,QAAAA,CAAS,GAAGC,6BAAAA,CAC5B;AACEC,QAAAA,QAAAA,EAAUT,gBAAgBU,QAAQ,EAAA;AAClCC,QAAAA,IAAAA,EAAMT,YAAYQ,QAAQ;AAC5B,KAAA,CAAA;AAGF,IAAA,MAAME,cAAc,CAACH,QAAAA,GAAAA;QACnBF,QAAAA,CAAS;AAAEE,YAAAA,QAAAA;YAAUE,IAAAA,EAAM;AAAI,SAAA,CAAA;AAE/B,QAAA,IAAIR,gBAAAA,EAAkB;YACpBA,gBAAAA,CAAiBM,QAAAA,CAAAA;AACnB,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,qBACEI,cAAA,CAACC,iBAAAA,EAAAA;QACCC,GAAAA,EAAKV,YAAAA;QACLW,UAAAA,EAAY,CAAA;QACZC,aAAAA,EAAe,CAAA;QACfC,UAAAA,EAAW,UAAA;QACXC,cAAAA,EAAe,eAAA;AAEf,QAAA,QAAA,gBAAAN,cAAA,CAACpB,kBAAAA,EAAAA;YACC2B,YAAAA,EAAcd,KAAAA;AACdK,YAAAA,IAAAA,EAAML,MAAMK,IAAI;AAChBF,YAAAA,QAAAA,EAAUH,MAAMG,QAAQ;AACxBR,YAAAA,SAAAA,EAAWA,UAAUS,QAAQ,EAAA;YAC7BE,WAAAA,EAAaA,WAAAA;YACbR,KAAAA,EAAOA,KAAAA;AAENL,YAAAA,QAAAA,EAAAA;;;AAIT,CAAA,CAAA;AAGF;;;;;;AAQC,IACD,MAAMsB,QAAAA,GAAW,CAAC,EAAEC,OAAAA,GAAU;AAAC,IAAA,IAAA;AAAM,IAAA,IAAA;AAAM,IAAA,IAAA;AAAM,IAAA;CAAM,EAA4B,GAAA;IACjF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMf,WAAWf,aAAAA,CAAc,UAAA,EAAY,CAAC+B,KAAAA,GAAUA,MAAMhB,QAAQ,CAAA;AACpE,IAAA,MAAMiB,aAAahC,aAAAA,CAAc,UAAA,EAAY,CAAC+B,KAAAA,GAAUA,MAAMrB,KAAK,CAAA;AACnE,IAAA,MAAMQ,cAAclB,aAAAA,CAAc,UAAA,EAAY,CAAC+B,KAAAA,GAAUA,MAAMb,WAAW,CAAA;AAE1E,IAAA,MAAMe,eAAe,CAACC,KAAAA,GAAAA;QACpBhB,WAAAA,CAAYgB,KAAAA,CAAAA;AACd,IAAA,CAAA;AAEA,IAAA,MAAMC,aAAAA,GAAgBC,QAAAA,CAASR,OAAO,CAAC,EAAE,EAAE,EAAA,CAAA;AAE3C,IAAA,IAAIO,iBAAiBH,UAAAA,EAAY;QAC/B,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,qBACEK,eAAA,CAACjB,iBAAAA,EAAAA;QAAKkB,GAAAA,EAAK,CAAA;;0BACTnB,cAAA,CAACoB,yBAAAA,EAAAA;gBACCC,IAAAA,EAAK,GAAA;AACLC,gBAAAA,YAAAA,EAAYZ,aAAAA,CAAc;oBACxBa,EAAAA,EAAI,8BAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;;gBAEAC,QAAAA,EAAUX,YAAAA;gBACVC,KAAAA,EAAOnB,QAAAA;AAENa,gBAAAA,QAAAA,EAAAA,OAAAA,CAAQiB,GAAG,CAAC,CAACC,MAAAA,iBACZ3B,cAAA,CAAC4B,+BAAAA,EAAAA;wBAAgCb,KAAAA,EAAOY,MAAAA;AACrCA,wBAAAA,QAAAA,EAAAA;AADsBA,qBAAAA,EAAAA,MAAAA,CAAAA;;0BAK7B3B,cAAA,CAAC6B,uBAAAA,EAAAA;gBAAWC,SAAAA,EAAU,YAAA;gBAAaC,GAAAA,EAAI,MAAA;0BACpCrB,aAAAA,CAAc;oBACba,EAAAA,EAAI,8BAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;;;AAIR,CAAA;AAEA;;;;;;;;;;;;;;;;;IAsBA,MAAMQ,QAAQ,CAAC,EAAEC,gBAAgB,CAAC,EAAEC,YAAAA,GAAe,CAAC,EAAyB,GAAA;IAC3E,MAAM,EAAExB,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMlB,QAAQZ,aAAAA,CAAc,OAAA,EAAS,CAAC+B,KAAAA,GAAUA,MAAML,YAAY,CAAA;AAClE,IAAA,MAAM4B,cAActD,aAAAA,CAAc,OAAA,EAAS,CAAC+B,KAAAA,GAAUA,MAAMd,IAAI,CAAA;AAChE,IAAA,MAAMsC,aAAavD,aAAAA,CAAc,OAAA,EAAS,CAAC+B,KAAAA,GAAUA,MAAMxB,SAAS,CAAA;IAEpE,MAAMA,SAAAA,GAAY6B,SAASmB,UAAAA,EAAY,EAAA,CAAA;IACvC,MAAMC,UAAAA,GAAapB,SAASkB,WAAAA,EAAa,EAAA,CAAA;IAEzC,MAAMG,KAAAA,GAAQ,CAACC,KAAAA,EAAeC,GAAAA,GAAAA;QAC5B,MAAMC,MAAAA,GAASD,MAAMD,KAAAA,GAAQ,CAAA;QAE7B,OAAOG,KAAAA,CAAMC,IAAI,CAAC;AAAEF,YAAAA;SAAO,EAAG,CAACG,CAAAA,EAAGC,CAAAA,GAAMN,KAAAA,GAAQM,CAAAA,CAAAA;AAClD,IAAA,CAAA;AAEA,IAAA,MAAMC,aAAaR,KAAAA,CAAM,CAAA,EAAGS,IAAAA,CAAKC,GAAG,CAACf,aAAAA,EAAe7C,SAAAA,CAAAA,CAAAA;IACpD,MAAM6D,QAAAA,GAAWX,MAAMS,IAAAA,CAAKG,GAAG,CAAC9D,SAAAA,GAAY6C,aAAAA,GAAgB,CAAA,EAAGA,aAAAA,GAAgB,CAAA,CAAA,EAAI7C,SAAAA,CAAAA;AAEnF,IAAA,MAAM+D,gBAAgBJ,IAAAA,CAAKG,GAAG,CAC5BH,IAAAA,CAAKC,GAAG;AAENX,IAAAA,UAAAA,GAAaH;AAEb9C,IAAAA,SAAAA,GAAY6C,aAAAA,GAAgBC,YAAAA,GAAe,CAAA,GAAI,CAAA,CAAA;IAGjDD,aAAAA,GAAgB,CAAA,CAAA;AAGlB,IAAA,MAAMmB,cAAcL,IAAAA,CAAKC,GAAG,CAC1BD,IAAAA,CAAKG,GAAG;AAENb,IAAAA,UAAAA,GAAaH;IAEbD,aAAAA,GAAgBC,YAAAA,GAAe,CAAA,GAAI,CAAA,CAAA;IAGrCe,QAAAA,CAASR,MAAM,GAAG,CAAA,GAAIQ,QAAQ,CAAC,CAAA,CAAE,GAAG,IAAI7D,SAAAA,GAAY,CAAA,CAAA;AAGtD,IAAA,MAAMiE,KAAAA,GAAQ;AACTP,QAAAA,GAAAA,UAAAA;;;AAICK,QAAAA,GAAAA,aAAAA,GAAgBlB,gBAAgB,CAAA,GAChC;AAAC,YAAA;SAAiB,GAClBA,aAAAA,GAAgB,CAAA,GAAI7C,SAAAA,GAAY6C,aAAAA,GAC9B;YAACA,aAAAA,GAAgB;AAAE,SAAA,GACnB,EAAE;;AAGLK,QAAAA,GAAAA,KAAAA,CAAMa,aAAAA,EAAeC,WAAAA,CAAAA;;;WAIpBA,WAAAA,GAAchE,SAAAA,GAAY6C,gBAAgB,CAAA,GAC1C;AAAC,YAAA;SAAe,GAChB7C,SAAAA,GAAY6C,gBAAgBA,aAAAA,GAC1B;YAAC7C,SAAAA,GAAY6C;AAAc,SAAA,GAC3B,EAAE;AAELgB,QAAAA,GAAAA;AACJ,KAAA;AAED,IAAA,IAAI7D,aAAa,CAAA,EAAG;QAClB,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,qBACE8B,eAAA,CAACoC,uBAAAA,EAAAA;QAAejB,UAAAA,EAAYA,UAAAA;QAAYjD,SAAAA,EAAWA,SAAAA;;0BACjDY,cAAA,CAACuD,yBAAAA,EAAAA;gBAAaxB,GAAAA,EAAKyB,mBAAAA;gBAAMC,EAAAA,EAAI;AAAEC,oBAAAA,MAAAA,EAAQC,YAAAA,CAAU;AAAE,wBAAA,GAAGlE,KAAK;AAAEK,wBAAAA,IAAAA,EAAMuC,UAAAA,GAAa;AAAE,qBAAA;AAAG,iBAAA;0BAClF3B,aAAAA,CAAc;oBACba,EAAAA,EAAI,sCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;YAED6B,KAAAA,CAAM3B,GAAG,CAAC,CAACkC,IAAAA,GAAAA;gBACV,IAAI,OAAOA,SAAS,QAAA,EAAU;AAC5B,oBAAA,qBACE5D,cAAA,CAAC6D,qBAAAA,EAAAA;wBACC9B,GAAAA,EAAKyB,mBAAAA;wBAELM,MAAAA,EAAQF,IAAAA;wBACRH,EAAAA,EAAI;AAAEC,4BAAAA,MAAAA,EAAQC,YAAAA,CAAU;AAAE,gCAAA,GAAGlE,KAAK;gCAAEK,IAAAA,EAAM8D;AAAK,6BAAA;AAAG,yBAAA;kCAEjDlD,aAAAA,CACC;4BAAEa,EAAAA,EAAI,6BAAA;4BAA+BC,cAAAA,EAAgB;yBAAoB,EACzE;4BAAE1B,IAAAA,EAAM8D;AAAK,yBAAA;AANVA,qBAAAA,EAAAA,IAAAA,CAAAA;AAUX,gBAAA;AAEA,gBAAA,qBAAO5D,eAAC+D,iBAAAA,EAAAA,EAAAA,EAAUH,IAAAA,CAAAA;AACpB,YAAA,CAAA,CAAA;0BAEA5D,cAAA,CAACgE,qBAAAA,EAAAA;gBAASjC,GAAAA,EAAKyB,mBAAAA;gBAAMC,EAAAA,EAAI;AAAEC,oBAAAA,MAAAA,EAAQC,YAAAA,CAAU;AAAE,wBAAA,GAAGlE,KAAK;AAAEK,wBAAAA,IAAAA,EAAMuC,UAAAA,GAAa;AAAE,qBAAA;AAAG,iBAAA;0BAC9E3B,aAAAA,CAAc;oBACba,EAAAA,EAAI,kCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;;;AAIR,CAAA;AAEA;;AAEkG,2GAE5FyC,UAAAA,GAAa;AACjBlF,IAAAA,IAAAA;AACAiD,IAAAA,KAAAA;AACAxB,IAAAA;AACF;;;;"}
@@ -1,4 +1,4 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { Flex, SingleSelect, SingleSelectOption, Typography, Pagination as Pagination$1, PreviousLink, PageLink, Dots, NextLink } from '@strapi/design-system';
4
4
  import { stringify } from 'qs';
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.mjs","sources":["../../../../../admin/src/components/Pagination.tsx"],"sourcesContent":["/* eslint-disable import/export */\nimport * as React from 'react';\n\nimport {\n Flex,\n SingleSelectOption,\n SingleSelect,\n Typography,\n Dots,\n NextLink,\n PageLink,\n Pagination as PaginationImpl,\n PreviousLink,\n} from '@strapi/design-system';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { useQueryParams } from '../hooks/useQueryParams';\n\nimport { createContext } from './Context';\n\nimport type { Pagination as PaginationApi } from '../../../shared/contracts/shared';\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\ninterface PaginationContextValue {\n /**\n * @description the complete query object, this could include query params\n * injected by other plugins, if you're navigating to a different page you\n * should ensure these are still passed.\n */\n currentQuery?: object;\n pageCount: string;\n pageSize: string;\n page: string;\n setPageSize: (pageSize: string) => void;\n total: NonNullable<RootProps['total']>;\n}\n\nconst [PaginationProvider, usePagination] = createContext<PaginationContextValue>('Pagination');\n\ninterface RootProps {\n children: React.ReactNode;\n /**\n * @default 0\n * @description the total number of pages\n * that exist in the dataset.\n */\n pageCount?: PaginationApi['pageCount'];\n /**\n * @default 1\n * @description the initial page number.\n */\n defaultPage?: PaginationApi['page'];\n /**\n * @default 10\n * @description the initial number of items to display\n */\n defaultPageSize?: PaginationApi['pageSize'];\n /**\n * @description a callback that is called when the page size changes.\n */\n onPageSizeChange?: (pageSize: string) => void;\n /**\n * @default 0\n * @description the total number of items in the dataset.\n */\n total?: PaginationApi['total'];\n}\n\n/**\n * @description The root component for the composable pagination component.\n * It's advised to spread the entire pagination option object into this component.\n *\n * @example\n * ```tsx\n * const MyComponent = () => {\n * return (\n * <Pagination.Root {...response.pagination}>\n * <Pagination.PageSize />\n * <Pagination.Links />\n * </Pagination.Root>\n * );\n * };\n * ```\n */\nconst Root = React.forwardRef<HTMLDivElement, RootProps>(\n (\n { children, defaultPageSize = 10, pageCount = 0, defaultPage = 1, onPageSizeChange, total = 0 },\n forwardedRef\n ) => {\n const [{ query }, setQuery] = useQueryParams<Pick<PaginationContextValue, 'page' | 'pageSize'>>(\n {\n pageSize: defaultPageSize.toString(),\n page: defaultPage.toString(),\n }\n );\n\n const setPageSize = (pageSize: string) => {\n setQuery({ pageSize, page: '1' });\n\n if (onPageSizeChange) {\n onPageSizeChange(pageSize);\n }\n };\n\n return (\n <Flex\n ref={forwardedRef}\n paddingTop={4}\n paddingBottom={4}\n alignItems=\"flex-end\"\n justifyContent=\"space-between\"\n >\n <PaginationProvider\n currentQuery={query}\n page={query.page}\n pageSize={query.pageSize}\n pageCount={pageCount.toString()}\n setPageSize={setPageSize}\n total={total}\n >\n {children}\n </PaginationProvider>\n </Flex>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PageSize\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @description The page size component is responsible for rendering the select input that allows\n * the user to change the number of items displayed per page.\n * If the total number of items is less than the minimum option, this component will not render.\n */\nconst PageSize = ({ options = ['10', '20', '50', '100'] }: Pagination.PageSizeProps) => {\n const { formatMessage } = useIntl();\n\n const pageSize = usePagination('PageSize', (state) => state.pageSize);\n const totalCount = usePagination('PageSize', (state) => state.total);\n const setPageSize = usePagination('PageSize', (state) => state.setPageSize);\n\n const handleChange = (value: string) => {\n setPageSize(value);\n };\n\n const minimumOption = parseInt(options[0], 10);\n\n if (minimumOption >= totalCount) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n <SingleSelect\n size=\"S\"\n aria-label={formatMessage({\n id: 'components.PageFooter.select',\n defaultMessage: 'Entries per page',\n })}\n // @ts-expect-error from the DS V2 this won't be needed because we're only returning strings.\n onChange={handleChange}\n value={pageSize}\n >\n {options.map((option) => (\n <SingleSelectOption key={option} value={option}>\n {option}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Typography textColor=\"neutral600\" tag=\"span\">\n {formatMessage({\n id: 'components.PageFooter.select',\n defaultMessage: 'Entries per page',\n })}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Links\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * The component works as follows\n * `1` , 2, 3, ... 10\n * 1, `2`, 3, ... 10\n * 1, 2, `3`, 4, ... 10\n * 1, 2, 3, `4`, 5, ... 10\n * 1, ..,4, `5`, 6, ... 10\n *\n * 1, ...., 8, 9, `10`\n * 1, ...., 8, `9`, 10\n * 1, ...., 7, `8`, 9, 10\n * 1, ... 6, `7`, 8, 9, 10\n */\n\n/**\n * @description The links component is responsible for rendering the pagination links.\n * If the total number of pages is less than or equal to 1, this component will not render.\n */\nconst Links = ({ boundaryCount = 1, siblingCount = 1 }: Pagination.LinksProps) => {\n const { formatMessage } = useIntl();\n\n const query = usePagination('Links', (state) => state.currentQuery);\n const currentPage = usePagination('Links', (state) => state.page);\n const totalPages = usePagination('Links', (state) => state.pageCount);\n\n const pageCount = parseInt(totalPages, 10);\n const activePage = parseInt(currentPage, 10);\n\n const range = (start: number, end: number) => {\n const length = end - start + 1;\n\n return Array.from({ length }, (_, i) => start + i);\n };\n\n const startPages = range(1, Math.min(boundaryCount, pageCount));\n const endPages = range(Math.max(pageCount - boundaryCount + 1, boundaryCount + 1), pageCount);\n\n const siblingsStart = Math.max(\n Math.min(\n // Natural start\n activePage - siblingCount,\n // Lower boundary when page is high\n pageCount - boundaryCount - siblingCount * 2 - 1\n ),\n // Greater than startPages\n boundaryCount + 2\n );\n\n const siblingsEnd = Math.min(\n Math.max(\n // Natural end\n activePage + siblingCount,\n // Upper boundary when page is low\n boundaryCount + siblingCount * 2 + 2\n ),\n // Less than endPages\n endPages.length > 0 ? endPages[0] - 2 : pageCount - 1\n );\n\n const items = [\n ...startPages,\n\n // Start ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsStart > boundaryCount + 2\n ? ['start-ellipsis']\n : boundaryCount + 1 < pageCount - boundaryCount\n ? [boundaryCount + 1]\n : []),\n\n // Sibling pages\n ...range(siblingsStart, siblingsEnd),\n\n // End ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsEnd < pageCount - boundaryCount - 1\n ? ['end-ellipsis']\n : pageCount - boundaryCount > boundaryCount\n ? [pageCount - boundaryCount]\n : []),\n\n ...endPages,\n ];\n\n if (pageCount <= 1) {\n return null;\n }\n\n return (\n <PaginationImpl activePage={activePage} pageCount={pageCount}>\n <PreviousLink tag={Link} to={{ search: stringify({ ...query, page: activePage - 1 }) }}>\n {formatMessage({\n id: 'components.pagination.go-to-previous',\n defaultMessage: 'Go to previous page',\n })}\n </PreviousLink>\n {items.map((item) => {\n if (typeof item === 'number') {\n return (\n <PageLink\n tag={Link}\n key={item}\n number={item}\n to={{ search: stringify({ ...query, page: item }) }}\n >\n {formatMessage(\n { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n { page: item }\n )}\n </PageLink>\n );\n }\n\n return <Dots key={item} />;\n })}\n\n <NextLink tag={Link} to={{ search: stringify({ ...query, page: activePage + 1 }) }}>\n {formatMessage({\n id: 'components.pagination.go-to-next',\n defaultMessage: 'Go to next page',\n })}\n </NextLink>\n </PaginationImpl>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst Pagination = {\n Root,\n Links,\n PageSize,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Pagination {\n export interface Props extends RootProps {}\n\n export interface PageSizeProps {\n options?: string[];\n }\n\n export interface LinksProps {\n /**\n * @default 1\n * @description Number of always visible pages at the beginning and end.\n */\n boundaryCount?: number;\n /**\n * @default 1\n * @description Number of always visible pages before and after the current page.\n */\n siblingCount?: number;\n }\n}\n\nexport { Pagination };\n"],"names":["PaginationProvider","usePagination","createContext","Root","React","forwardRef","children","defaultPageSize","pageCount","defaultPage","onPageSizeChange","total","forwardedRef","query","setQuery","useQueryParams","pageSize","toString","page","setPageSize","_jsx","Flex","ref","paddingTop","paddingBottom","alignItems","justifyContent","currentQuery","PageSize","options","formatMessage","useIntl","state","totalCount","handleChange","value","minimumOption","parseInt","_jsxs","gap","SingleSelect","size","aria-label","id","defaultMessage","onChange","map","option","SingleSelectOption","Typography","textColor","tag","Links","boundaryCount","siblingCount","currentPage","totalPages","activePage","range","start","end","length","Array","from","_","i","startPages","Math","min","endPages","max","siblingsStart","siblingsEnd","items","PaginationImpl","PreviousLink","Link","to","search","stringify","item","PageLink","number","Dots","NextLink","Pagination"],"mappings":"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"}
1
+ {"version":3,"file":"Pagination.mjs","sources":["../../../../../admin/src/components/Pagination.tsx"],"sourcesContent":["/* eslint-disable import/export */\nimport * as React from 'react';\n\nimport {\n Flex,\n SingleSelectOption,\n SingleSelect,\n Typography,\n Dots,\n NextLink,\n PageLink,\n Pagination as PaginationImpl,\n PreviousLink,\n} from '@strapi/design-system';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { useQueryParams } from '../hooks/useQueryParams';\n\nimport { createContext } from './Context';\n\nimport type { Pagination as PaginationApi } from '../../../shared/contracts/shared';\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\ninterface PaginationContextValue {\n /**\n * @description the complete query object, this could include query params\n * injected by other plugins, if you're navigating to a different page you\n * should ensure these are still passed.\n */\n currentQuery?: object;\n pageCount: string;\n pageSize: string;\n page: string;\n setPageSize: (pageSize: string) => void;\n total: NonNullable<RootProps['total']>;\n}\n\nconst [PaginationProvider, usePagination] = createContext<PaginationContextValue>('Pagination');\n\ninterface RootProps {\n children: React.ReactNode;\n /**\n * @default 0\n * @description the total number of pages\n * that exist in the dataset.\n */\n pageCount?: PaginationApi['pageCount'];\n /**\n * @default 1\n * @description the initial page number.\n */\n defaultPage?: PaginationApi['page'];\n /**\n * @default 10\n * @description the initial number of items to display\n */\n defaultPageSize?: PaginationApi['pageSize'];\n /**\n * @description a callback that is called when the page size changes.\n */\n onPageSizeChange?: (pageSize: string) => void;\n /**\n * @default 0\n * @description the total number of items in the dataset.\n */\n total?: PaginationApi['total'];\n}\n\n/**\n * @description The root component for the composable pagination component.\n * It's advised to spread the entire pagination option object into this component.\n *\n * @example\n * ```tsx\n * const MyComponent = () => {\n * return (\n * <Pagination.Root {...response.pagination}>\n * <Pagination.PageSize />\n * <Pagination.Links />\n * </Pagination.Root>\n * );\n * };\n * ```\n */\nconst Root = React.forwardRef<HTMLDivElement, RootProps>(\n (\n { children, defaultPageSize = 10, pageCount = 0, defaultPage = 1, onPageSizeChange, total = 0 },\n forwardedRef\n ) => {\n const [{ query }, setQuery] = useQueryParams<Pick<PaginationContextValue, 'page' | 'pageSize'>>(\n {\n pageSize: defaultPageSize.toString(),\n page: defaultPage.toString(),\n }\n );\n\n const setPageSize = (pageSize: string) => {\n setQuery({ pageSize, page: '1' });\n\n if (onPageSizeChange) {\n onPageSizeChange(pageSize);\n }\n };\n\n return (\n <Flex\n ref={forwardedRef}\n paddingTop={4}\n paddingBottom={4}\n alignItems=\"flex-end\"\n justifyContent=\"space-between\"\n >\n <PaginationProvider\n currentQuery={query}\n page={query.page}\n pageSize={query.pageSize}\n pageCount={pageCount.toString()}\n setPageSize={setPageSize}\n total={total}\n >\n {children}\n </PaginationProvider>\n </Flex>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PageSize\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @description The page size component is responsible for rendering the select input that allows\n * the user to change the number of items displayed per page.\n * If the total number of items is less than the minimum option, this component will not render.\n */\nconst PageSize = ({ options = ['10', '20', '50', '100'] }: Pagination.PageSizeProps) => {\n const { formatMessage } = useIntl();\n\n const pageSize = usePagination('PageSize', (state) => state.pageSize);\n const totalCount = usePagination('PageSize', (state) => state.total);\n const setPageSize = usePagination('PageSize', (state) => state.setPageSize);\n\n const handleChange = (value: string) => {\n setPageSize(value);\n };\n\n const minimumOption = parseInt(options[0], 10);\n\n if (minimumOption >= totalCount) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n <SingleSelect\n size=\"S\"\n aria-label={formatMessage({\n id: 'components.PageFooter.select',\n defaultMessage: 'Entries per page',\n })}\n // @ts-expect-error from the DS V2 this won't be needed because we're only returning strings.\n onChange={handleChange}\n value={pageSize}\n >\n {options.map((option) => (\n <SingleSelectOption key={option} value={option}>\n {option}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Typography textColor=\"neutral600\" tag=\"span\">\n {formatMessage({\n id: 'components.PageFooter.select',\n defaultMessage: 'Entries per page',\n })}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Links\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * The component works as follows\n * `1` , 2, 3, ... 10\n * 1, `2`, 3, ... 10\n * 1, 2, `3`, 4, ... 10\n * 1, 2, 3, `4`, 5, ... 10\n * 1, ..,4, `5`, 6, ... 10\n *\n * 1, ...., 8, 9, `10`\n * 1, ...., 8, `9`, 10\n * 1, ...., 7, `8`, 9, 10\n * 1, ... 6, `7`, 8, 9, 10\n */\n\n/**\n * @description The links component is responsible for rendering the pagination links.\n * If the total number of pages is less than or equal to 1, this component will not render.\n */\nconst Links = ({ boundaryCount = 1, siblingCount = 1 }: Pagination.LinksProps) => {\n const { formatMessage } = useIntl();\n\n const query = usePagination('Links', (state) => state.currentQuery);\n const currentPage = usePagination('Links', (state) => state.page);\n const totalPages = usePagination('Links', (state) => state.pageCount);\n\n const pageCount = parseInt(totalPages, 10);\n const activePage = parseInt(currentPage, 10);\n\n const range = (start: number, end: number) => {\n const length = end - start + 1;\n\n return Array.from({ length }, (_, i) => start + i);\n };\n\n const startPages = range(1, Math.min(boundaryCount, pageCount));\n const endPages = range(Math.max(pageCount - boundaryCount + 1, boundaryCount + 1), pageCount);\n\n const siblingsStart = Math.max(\n Math.min(\n // Natural start\n activePage - siblingCount,\n // Lower boundary when page is high\n pageCount - boundaryCount - siblingCount * 2 - 1\n ),\n // Greater than startPages\n boundaryCount + 2\n );\n\n const siblingsEnd = Math.min(\n Math.max(\n // Natural end\n activePage + siblingCount,\n // Upper boundary when page is low\n boundaryCount + siblingCount * 2 + 2\n ),\n // Less than endPages\n endPages.length > 0 ? endPages[0] - 2 : pageCount - 1\n );\n\n const items = [\n ...startPages,\n\n // Start ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsStart > boundaryCount + 2\n ? ['start-ellipsis']\n : boundaryCount + 1 < pageCount - boundaryCount\n ? [boundaryCount + 1]\n : []),\n\n // Sibling pages\n ...range(siblingsStart, siblingsEnd),\n\n // End ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsEnd < pageCount - boundaryCount - 1\n ? ['end-ellipsis']\n : pageCount - boundaryCount > boundaryCount\n ? [pageCount - boundaryCount]\n : []),\n\n ...endPages,\n ];\n\n if (pageCount <= 1) {\n return null;\n }\n\n return (\n <PaginationImpl activePage={activePage} pageCount={pageCount}>\n <PreviousLink tag={Link} to={{ search: stringify({ ...query, page: activePage - 1 }) }}>\n {formatMessage({\n id: 'components.pagination.go-to-previous',\n defaultMessage: 'Go to previous page',\n })}\n </PreviousLink>\n {items.map((item) => {\n if (typeof item === 'number') {\n return (\n <PageLink\n tag={Link}\n key={item}\n number={item}\n to={{ search: stringify({ ...query, page: item }) }}\n >\n {formatMessage(\n { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n { page: item }\n )}\n </PageLink>\n );\n }\n\n return <Dots key={item} />;\n })}\n\n <NextLink tag={Link} to={{ search: stringify({ ...query, page: activePage + 1 }) }}>\n {formatMessage({\n id: 'components.pagination.go-to-next',\n defaultMessage: 'Go to next page',\n })}\n </NextLink>\n </PaginationImpl>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst Pagination = {\n Root,\n Links,\n PageSize,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Pagination {\n export interface Props extends RootProps {}\n\n export interface PageSizeProps {\n options?: string[];\n }\n\n export interface LinksProps {\n /**\n * @default 1\n * @description Number of always visible pages at the beginning and end.\n */\n boundaryCount?: number;\n /**\n * @default 1\n * @description Number of always visible pages before and after the current page.\n */\n siblingCount?: number;\n }\n}\n\nexport { Pagination };\n"],"names":["PaginationProvider","usePagination","createContext","Root","React","forwardRef","children","defaultPageSize","pageCount","defaultPage","onPageSizeChange","total","forwardedRef","query","setQuery","useQueryParams","pageSize","toString","page","setPageSize","_jsx","Flex","ref","paddingTop","paddingBottom","alignItems","justifyContent","currentQuery","PageSize","options","formatMessage","useIntl","state","totalCount","handleChange","value","minimumOption","parseInt","_jsxs","gap","SingleSelect","size","aria-label","id","defaultMessage","onChange","map","option","SingleSelectOption","Typography","textColor","tag","Links","boundaryCount","siblingCount","currentPage","totalPages","activePage","range","start","end","length","Array","from","_","i","startPages","Math","min","endPages","max","siblingsStart","siblingsEnd","items","PaginationImpl","PreviousLink","Link","to","search","stringify","item","PageLink","number","Dots","NextLink","Pagination"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PluginsInitializer.js","sources":["../../../../../admin/src/components/PluginsInitializer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { produce } from 'immer';\n\nimport { Page } from '../components/PageHelpers';\nimport { StrapiAppContextValue, useStrapiApp } from '../features/StrapiApp';\n\n/**\n * TODO: this isn't great, and we really should focus on fixing this.\n */\nconst PluginsInitializer = ({ children }: { children: React.ReactNode }) => {\n const appPlugins = useStrapiApp('PluginsInitializer', (state) => state.plugins);\n const [{ plugins }, dispatch] = React.useReducer<React.Reducer<State, Action>, State>(\n reducer,\n initialState,\n () => init(appPlugins)\n );\n const setPlugin = React.useRef((pluginId: string) => {\n dispatch({ type: 'SET_PLUGIN_READY', pluginId });\n });\n\n const hasApluginNotReady = Object.keys(plugins).some(\n (plugin) => plugins[plugin].isReady === false\n );\n\n /**\n *\n * I have spent some time trying to understand what is happening here, and wanted to\n * leave that knowledge for my future me:\n *\n * `initializer` is an undocumented property of the `registerPlugin` API. At the time\n * of writing it seems only to be used by the i18n plugin.\n *\n * How does it work?\n *\n * Every plugin that has an `initializer` component defined, receives the\n * `setPlugin` function as a component prop. In the case of i18n the plugin fetches locales\n * first and calls `setPlugin` with `pluginId` once they are loaded, which then triggers the\n * reducer of the admin app defined above.\n *\n * Once all plugins are set to `isReady: true` the app renders.\n *\n * This API is used to block rendering of the admin app. We should remove that in v5 completely\n * and make sure plugins can inject data into the global store before they are initialized, to avoid\n * having a new prop-callback based communication channel between plugins and the core admin app.\n *\n */\n\n if (hasApluginNotReady) {\n const initializers = Object.keys(plugins).reduce((acc, current) => {\n const InitializerComponent = plugins[current].initializer;\n\n if (InitializerComponent) {\n const key = plugins[current].pluginId;\n\n acc.push(<InitializerComponent key={key} setPlugin={setPlugin.current} />);\n }\n\n return acc;\n }, [] as React.ReactNode[]);\n\n return (\n <>\n {initializers}\n <Page.Loading />\n </>\n );\n }\n\n return children;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface State {\n plugins: StrapiAppContextValue['plugins'];\n}\n\nconst initialState: State = {\n plugins: {},\n};\n\ntype SetPluginReadyAction = {\n type: 'SET_PLUGIN_READY';\n pluginId: string;\n};\n\ntype Action = SetPluginReadyAction;\n\nconst reducer: React.Reducer<State, Action> = (state = initialState, action: Action): State =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'SET_PLUGIN_READY': {\n draftState.plugins[action.pluginId].isReady = true;\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * Init state\n * -----------------------------------------------------------------------------------------------*/\n\nconst init = (plugins: State['plugins']): State => {\n return {\n plugins,\n };\n};\n\nexport { PluginsInitializer };\n"],"names":["PluginsInitializer","children","appPlugins","useStrapiApp","state","plugins","dispatch","React","useReducer","reducer","initialState","init","setPlugin","useRef","pluginId","type","hasApluginNotReady","Object","keys","some","plugin","isReady","initializers","reduce","acc","current","InitializerComponent","initializer","key","push","_jsx","_jsxs","_Fragment","Page","Loading","action","produce","draftState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;AAEC,IACKA,MAAAA,kBAAAA,GAAqB,CAAC,EAAEC,QAAQ,EAAiC,GAAA;AACrE,IAAA,MAAMC,aAAaC,sBAAa,CAAA,oBAAA,EAAsB,CAACC,KAAAA,GAAUA,MAAMC,OAAO,CAAA;AAC9E,IAAA,MAAM,CAAC,EAAEA,OAAO,EAAE,EAAEC,QAAAA,CAAS,GAAGC,gBAAAA,CAAMC,UAAU,CAC9CC,OACAC,EAAAA,YAAAA,EACA,IAAMC,IAAKT,CAAAA,UAAAA,CAAAA,CAAAA;AAEb,IAAA,MAAMU,SAAYL,GAAAA,gBAAAA,CAAMM,MAAM,CAAC,CAACC,QAAAA,GAAAA;QAC9BR,QAAS,CAAA;YAAES,IAAM,EAAA,kBAAA;AAAoBD,YAAAA;AAAS,SAAA,CAAA;AAChD,KAAA,CAAA;AAEA,IAAA,MAAME,kBAAqBC,GAAAA,MAAAA,CAAOC,IAAI,CAACb,SAASc,IAAI,CAClD,CAACC,MAAAA,GAAWf,OAAO,CAACe,MAAO,CAAA,CAACC,OAAO,KAAK,KAAA,CAAA;AAG1C;;;;;;;;;;;;;;;;;;;;;AAqBC,MAED,IAAIL,kBAAoB,EAAA;QACtB,MAAMM,YAAAA,GAAeL,OAAOC,IAAI,CAACb,SAASkB,MAAM,CAAC,CAACC,GAAKC,EAAAA,OAAAA,GAAAA;AACrD,YAAA,MAAMC,oBAAuBrB,GAAAA,OAAO,CAACoB,OAAAA,CAAQ,CAACE,WAAW;AAEzD,YAAA,IAAID,oBAAsB,EAAA;AACxB,gBAAA,MAAME,GAAMvB,GAAAA,OAAO,CAACoB,OAAAA,CAAQ,CAACX,QAAQ;gBAErCU,GAAIK,CAAAA,IAAI,eAACC,cAACJ,CAAAA,oBAAAA,EAAAA;AAA+Bd,oBAAAA,SAAAA,EAAWA,UAAUa;AAA1BG,iBAAAA,EAAAA,GAAAA,CAAAA,CAAAA;AACtC;YAEA,OAAOJ,GAAAA;AACT,SAAA,EAAG,EAAE,CAAA;QAEL,qBACEO,eAAA,CAAAC,mBAAA,EAAA;;AACGV,gBAAAA,YAAAA;AACD,8BAAAQ,cAAA,CAACG,iBAAKC,OAAO,EAAA,EAAA;;;AAGnB;IAEA,OAAOjC,QAAAA;AACT;AAUA,MAAMS,YAAsB,GAAA;AAC1BL,IAAAA,OAAAA,EAAS;AACX,CAAA;AASA,MAAMI,OAAAA,GAAwC,CAACL,KAAQM,GAAAA,YAAY,EAAEyB,MACnEC,GAAAA,aAAAA,CAAQhC,OAAO,CAACiC,UAAAA,GAAAA;AACd,QAAA,OAAQF,OAAOpB,IAAI;YACjB,KAAK,kBAAA;AAAoB,gBAAA;AACvBsB,oBAAAA,UAAAA,CAAWhC,OAAO,CAAC8B,MAAAA,CAAOrB,QAAQ,CAAC,CAACO,OAAO,GAAG,IAAA;AAC9C,oBAAA;AACF;AACA,YAAA;gBACE,OAAOgB,UAAAA;AACX;AACF,KAAA,CAAA;AAEF;;qGAIA,MAAM1B,OAAO,CAACN,OAAAA,GAAAA;IACZ,OAAO;AACLA,QAAAA;AACF,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"PluginsInitializer.js","sources":["../../../../../admin/src/components/PluginsInitializer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { produce } from 'immer';\n\nimport { Page } from '../components/PageHelpers';\nimport { StrapiAppContextValue, useStrapiApp } from '../features/StrapiApp';\n\n/**\n * TODO: this isn't great, and we really should focus on fixing this.\n */\nconst PluginsInitializer = ({ children }: { children: React.ReactNode }) => {\n const appPlugins = useStrapiApp('PluginsInitializer', (state) => state.plugins);\n const [{ plugins }, dispatch] = React.useReducer<React.Reducer<State, Action>, State>(\n reducer,\n initialState,\n () => init(appPlugins)\n );\n const setPlugin = React.useRef((pluginId: string) => {\n dispatch({ type: 'SET_PLUGIN_READY', pluginId });\n });\n\n const hasApluginNotReady = Object.keys(plugins).some(\n (plugin) => plugins[plugin].isReady === false\n );\n\n /**\n *\n * I have spent some time trying to understand what is happening here, and wanted to\n * leave that knowledge for my future me:\n *\n * `initializer` is an undocumented property of the `registerPlugin` API. At the time\n * of writing it seems only to be used by the i18n plugin.\n *\n * How does it work?\n *\n * Every plugin that has an `initializer` component defined, receives the\n * `setPlugin` function as a component prop. In the case of i18n the plugin fetches locales\n * first and calls `setPlugin` with `pluginId` once they are loaded, which then triggers the\n * reducer of the admin app defined above.\n *\n * Once all plugins are set to `isReady: true` the app renders.\n *\n * This API is used to block rendering of the admin app. We should remove that in v5 completely\n * and make sure plugins can inject data into the global store before they are initialized, to avoid\n * having a new prop-callback based communication channel between plugins and the core admin app.\n *\n */\n\n if (hasApluginNotReady) {\n const initializers = Object.keys(plugins).reduce((acc, current) => {\n const InitializerComponent = plugins[current].initializer;\n\n if (InitializerComponent) {\n const key = plugins[current].pluginId;\n\n acc.push(<InitializerComponent key={key} setPlugin={setPlugin.current} />);\n }\n\n return acc;\n }, [] as React.ReactNode[]);\n\n return (\n <>\n {initializers}\n <Page.Loading />\n </>\n );\n }\n\n return children;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface State {\n plugins: StrapiAppContextValue['plugins'];\n}\n\nconst initialState: State = {\n plugins: {},\n};\n\ntype SetPluginReadyAction = {\n type: 'SET_PLUGIN_READY';\n pluginId: string;\n};\n\ntype Action = SetPluginReadyAction;\n\nconst reducer: React.Reducer<State, Action> = (state = initialState, action: Action): State =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'SET_PLUGIN_READY': {\n draftState.plugins[action.pluginId].isReady = true;\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * Init state\n * -----------------------------------------------------------------------------------------------*/\n\nconst init = (plugins: State['plugins']): State => {\n return {\n plugins,\n };\n};\n\nexport { PluginsInitializer };\n"],"names":["PluginsInitializer","children","appPlugins","useStrapiApp","state","plugins","dispatch","React","useReducer","reducer","initialState","init","setPlugin","useRef","pluginId","type","hasApluginNotReady","Object","keys","some","plugin","isReady","initializers","reduce","acc","current","InitializerComponent","initializer","key","push","_jsx","_jsxs","_Fragment","Page","Loading","action","produce","draftState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;AAEC,IACD,MAAMA,kBAAAA,GAAqB,CAAC,EAAEC,QAAQ,EAAiC,GAAA;AACrE,IAAA,MAAMC,aAAaC,sBAAAA,CAAa,oBAAA,EAAsB,CAACC,KAAAA,GAAUA,MAAMC,OAAO,CAAA;AAC9E,IAAA,MAAM,CAAC,EAAEA,OAAO,EAAE,EAAEC,QAAAA,CAAS,GAAGC,gBAAAA,CAAMC,UAAU,CAC9CC,OAAAA,EACAC,YAAAA,EACA,IAAMC,IAAAA,CAAKT,UAAAA,CAAAA,CAAAA;AAEb,IAAA,MAAMU,SAAAA,GAAYL,gBAAAA,CAAMM,MAAM,CAAC,CAACC,QAAAA,GAAAA;QAC9BR,QAAAA,CAAS;YAAES,IAAAA,EAAM,kBAAA;AAAoBD,YAAAA;AAAS,SAAA,CAAA;AAChD,IAAA,CAAA,CAAA;AAEA,IAAA,MAAME,kBAAAA,GAAqBC,MAAAA,CAAOC,IAAI,CAACb,SAASc,IAAI,CAClD,CAACC,MAAAA,GAAWf,OAAO,CAACe,MAAAA,CAAO,CAACC,OAAO,KAAK,KAAA,CAAA;AAG1C;;;;;;;;;;;;;;;;;;;;;AAqBC,MAED,IAAIL,kBAAAA,EAAoB;QACtB,MAAMM,YAAAA,GAAeL,OAAOC,IAAI,CAACb,SAASkB,MAAM,CAAC,CAACC,GAAAA,EAAKC,OAAAA,GAAAA;AACrD,YAAA,MAAMC,oBAAAA,GAAuBrB,OAAO,CAACoB,OAAAA,CAAQ,CAACE,WAAW;AAEzD,YAAA,IAAID,oBAAAA,EAAsB;AACxB,gBAAA,MAAME,GAAAA,GAAMvB,OAAO,CAACoB,OAAAA,CAAQ,CAACX,QAAQ;gBAErCU,GAAAA,CAAIK,IAAI,eAACC,cAAA,CAACJ,oBAAAA,EAAAA;AAA+Bd,oBAAAA,SAAAA,EAAWA,UAAUa;AAA1BG,iBAAAA,EAAAA,GAAAA,CAAAA,CAAAA;AACtC,YAAA;YAEA,OAAOJ,GAAAA;AACT,QAAA,CAAA,EAAG,EAAE,CAAA;QAEL,qBACEO,eAAA,CAAAC,mBAAA,EAAA;;AACGV,gBAAAA,YAAAA;AACD,8BAAAQ,cAAA,CAACG,iBAAKC,OAAO,EAAA,EAAA;;;AAGnB,IAAA;IAEA,OAAOjC,QAAAA;AACT;AAUA,MAAMS,YAAAA,GAAsB;AAC1BL,IAAAA,OAAAA,EAAS;AACX,CAAA;AASA,MAAMI,OAAAA,GAAwC,CAACL,KAAAA,GAAQM,YAAY,EAAEyB,MAAAA,GACnEC,aAAAA,CAAQhC,OAAO,CAACiC,UAAAA,GAAAA;AACd,QAAA,OAAQF,OAAOpB,IAAI;YACjB,KAAK,kBAAA;AAAoB,gBAAA;AACvBsB,oBAAAA,UAAAA,CAAWhC,OAAO,CAAC8B,MAAAA,CAAOrB,QAAQ,CAAC,CAACO,OAAO,GAAG,IAAA;AAC9C,oBAAA;AACF,gBAAA;AACA,YAAA;gBACE,OAAOgB,UAAAA;AACX;AACF,IAAA,CAAA,CAAA;AAEF;;qGAIA,MAAM1B,OAAO,CAACN,OAAAA,GAAAA;IACZ,OAAO;AACLA,QAAAA;AACF,KAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PluginsInitializer.mjs","sources":["../../../../../admin/src/components/PluginsInitializer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { produce } from 'immer';\n\nimport { Page } from '../components/PageHelpers';\nimport { StrapiAppContextValue, useStrapiApp } from '../features/StrapiApp';\n\n/**\n * TODO: this isn't great, and we really should focus on fixing this.\n */\nconst PluginsInitializer = ({ children }: { children: React.ReactNode }) => {\n const appPlugins = useStrapiApp('PluginsInitializer', (state) => state.plugins);\n const [{ plugins }, dispatch] = React.useReducer<React.Reducer<State, Action>, State>(\n reducer,\n initialState,\n () => init(appPlugins)\n );\n const setPlugin = React.useRef((pluginId: string) => {\n dispatch({ type: 'SET_PLUGIN_READY', pluginId });\n });\n\n const hasApluginNotReady = Object.keys(plugins).some(\n (plugin) => plugins[plugin].isReady === false\n );\n\n /**\n *\n * I have spent some time trying to understand what is happening here, and wanted to\n * leave that knowledge for my future me:\n *\n * `initializer` is an undocumented property of the `registerPlugin` API. At the time\n * of writing it seems only to be used by the i18n plugin.\n *\n * How does it work?\n *\n * Every plugin that has an `initializer` component defined, receives the\n * `setPlugin` function as a component prop. In the case of i18n the plugin fetches locales\n * first and calls `setPlugin` with `pluginId` once they are loaded, which then triggers the\n * reducer of the admin app defined above.\n *\n * Once all plugins are set to `isReady: true` the app renders.\n *\n * This API is used to block rendering of the admin app. We should remove that in v5 completely\n * and make sure plugins can inject data into the global store before they are initialized, to avoid\n * having a new prop-callback based communication channel between plugins and the core admin app.\n *\n */\n\n if (hasApluginNotReady) {\n const initializers = Object.keys(plugins).reduce((acc, current) => {\n const InitializerComponent = plugins[current].initializer;\n\n if (InitializerComponent) {\n const key = plugins[current].pluginId;\n\n acc.push(<InitializerComponent key={key} setPlugin={setPlugin.current} />);\n }\n\n return acc;\n }, [] as React.ReactNode[]);\n\n return (\n <>\n {initializers}\n <Page.Loading />\n </>\n );\n }\n\n return children;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface State {\n plugins: StrapiAppContextValue['plugins'];\n}\n\nconst initialState: State = {\n plugins: {},\n};\n\ntype SetPluginReadyAction = {\n type: 'SET_PLUGIN_READY';\n pluginId: string;\n};\n\ntype Action = SetPluginReadyAction;\n\nconst reducer: React.Reducer<State, Action> = (state = initialState, action: Action): State =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'SET_PLUGIN_READY': {\n draftState.plugins[action.pluginId].isReady = true;\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * Init state\n * -----------------------------------------------------------------------------------------------*/\n\nconst init = (plugins: State['plugins']): State => {\n return {\n plugins,\n };\n};\n\nexport { PluginsInitializer };\n"],"names":["PluginsInitializer","children","appPlugins","useStrapiApp","state","plugins","dispatch","React","useReducer","reducer","initialState","init","setPlugin","useRef","pluginId","type","hasApluginNotReady","Object","keys","some","plugin","isReady","initializers","reduce","acc","current","InitializerComponent","initializer","key","push","_jsx","_jsxs","_Fragment","Page","Loading","action","produce","draftState"],"mappings":";;;;;;AAOA;;AAEC,IACKA,MAAAA,kBAAAA,GAAqB,CAAC,EAAEC,QAAQ,EAAiC,GAAA;AACrE,IAAA,MAAMC,aAAaC,YAAa,CAAA,oBAAA,EAAsB,CAACC,KAAAA,GAAUA,MAAMC,OAAO,CAAA;AAC9E,IAAA,MAAM,CAAC,EAAEA,OAAO,EAAE,EAAEC,QAAAA,CAAS,GAAGC,KAAAA,CAAMC,UAAU,CAC9CC,OACAC,EAAAA,YAAAA,EACA,IAAMC,IAAKT,CAAAA,UAAAA,CAAAA,CAAAA;AAEb,IAAA,MAAMU,SAAYL,GAAAA,KAAAA,CAAMM,MAAM,CAAC,CAACC,QAAAA,GAAAA;QAC9BR,QAAS,CAAA;YAAES,IAAM,EAAA,kBAAA;AAAoBD,YAAAA;AAAS,SAAA,CAAA;AAChD,KAAA,CAAA;AAEA,IAAA,MAAME,kBAAqBC,GAAAA,MAAAA,CAAOC,IAAI,CAACb,SAASc,IAAI,CAClD,CAACC,MAAAA,GAAWf,OAAO,CAACe,MAAO,CAAA,CAACC,OAAO,KAAK,KAAA,CAAA;AAG1C;;;;;;;;;;;;;;;;;;;;;AAqBC,MAED,IAAIL,kBAAoB,EAAA;QACtB,MAAMM,YAAAA,GAAeL,OAAOC,IAAI,CAACb,SAASkB,MAAM,CAAC,CAACC,GAAKC,EAAAA,OAAAA,GAAAA;AACrD,YAAA,MAAMC,oBAAuBrB,GAAAA,OAAO,CAACoB,OAAAA,CAAQ,CAACE,WAAW;AAEzD,YAAA,IAAID,oBAAsB,EAAA;AACxB,gBAAA,MAAME,GAAMvB,GAAAA,OAAO,CAACoB,OAAAA,CAAQ,CAACX,QAAQ;gBAErCU,GAAIK,CAAAA,IAAI,eAACC,GAACJ,CAAAA,oBAAAA,EAAAA;AAA+Bd,oBAAAA,SAAAA,EAAWA,UAAUa;AAA1BG,iBAAAA,EAAAA,GAAAA,CAAAA,CAAAA;AACtC;YAEA,OAAOJ,GAAAA;AACT,SAAA,EAAG,EAAE,CAAA;QAEL,qBACEO,IAAA,CAAAC,QAAA,EAAA;;AACGV,gBAAAA,YAAAA;AACD,8BAAAQ,GAAA,CAACG,KAAKC,OAAO,EAAA,EAAA;;;AAGnB;IAEA,OAAOjC,QAAAA;AACT;AAUA,MAAMS,YAAsB,GAAA;AAC1BL,IAAAA,OAAAA,EAAS;AACX,CAAA;AASA,MAAMI,OAAAA,GAAwC,CAACL,KAAQM,GAAAA,YAAY,EAAEyB,MACnEC,GAAAA,OAAAA,CAAQhC,OAAO,CAACiC,UAAAA,GAAAA;AACd,QAAA,OAAQF,OAAOpB,IAAI;YACjB,KAAK,kBAAA;AAAoB,gBAAA;AACvBsB,oBAAAA,UAAAA,CAAWhC,OAAO,CAAC8B,MAAAA,CAAOrB,QAAQ,CAAC,CAACO,OAAO,GAAG,IAAA;AAC9C,oBAAA;AACF;AACA,YAAA;gBACE,OAAOgB,UAAAA;AACX;AACF,KAAA,CAAA;AAEF;;qGAIA,MAAM1B,OAAO,CAACN,OAAAA,GAAAA;IACZ,OAAO;AACLA,QAAAA;AACF,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"PluginsInitializer.mjs","sources":["../../../../../admin/src/components/PluginsInitializer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { produce } from 'immer';\n\nimport { Page } from '../components/PageHelpers';\nimport { StrapiAppContextValue, useStrapiApp } from '../features/StrapiApp';\n\n/**\n * TODO: this isn't great, and we really should focus on fixing this.\n */\nconst PluginsInitializer = ({ children }: { children: React.ReactNode }) => {\n const appPlugins = useStrapiApp('PluginsInitializer', (state) => state.plugins);\n const [{ plugins }, dispatch] = React.useReducer<React.Reducer<State, Action>, State>(\n reducer,\n initialState,\n () => init(appPlugins)\n );\n const setPlugin = React.useRef((pluginId: string) => {\n dispatch({ type: 'SET_PLUGIN_READY', pluginId });\n });\n\n const hasApluginNotReady = Object.keys(plugins).some(\n (plugin) => plugins[plugin].isReady === false\n );\n\n /**\n *\n * I have spent some time trying to understand what is happening here, and wanted to\n * leave that knowledge for my future me:\n *\n * `initializer` is an undocumented property of the `registerPlugin` API. At the time\n * of writing it seems only to be used by the i18n plugin.\n *\n * How does it work?\n *\n * Every plugin that has an `initializer` component defined, receives the\n * `setPlugin` function as a component prop. In the case of i18n the plugin fetches locales\n * first and calls `setPlugin` with `pluginId` once they are loaded, which then triggers the\n * reducer of the admin app defined above.\n *\n * Once all plugins are set to `isReady: true` the app renders.\n *\n * This API is used to block rendering of the admin app. We should remove that in v5 completely\n * and make sure plugins can inject data into the global store before they are initialized, to avoid\n * having a new prop-callback based communication channel between plugins and the core admin app.\n *\n */\n\n if (hasApluginNotReady) {\n const initializers = Object.keys(plugins).reduce((acc, current) => {\n const InitializerComponent = plugins[current].initializer;\n\n if (InitializerComponent) {\n const key = plugins[current].pluginId;\n\n acc.push(<InitializerComponent key={key} setPlugin={setPlugin.current} />);\n }\n\n return acc;\n }, [] as React.ReactNode[]);\n\n return (\n <>\n {initializers}\n <Page.Loading />\n </>\n );\n }\n\n return children;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface State {\n plugins: StrapiAppContextValue['plugins'];\n}\n\nconst initialState: State = {\n plugins: {},\n};\n\ntype SetPluginReadyAction = {\n type: 'SET_PLUGIN_READY';\n pluginId: string;\n};\n\ntype Action = SetPluginReadyAction;\n\nconst reducer: React.Reducer<State, Action> = (state = initialState, action: Action): State =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'SET_PLUGIN_READY': {\n draftState.plugins[action.pluginId].isReady = true;\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * Init state\n * -----------------------------------------------------------------------------------------------*/\n\nconst init = (plugins: State['plugins']): State => {\n return {\n plugins,\n };\n};\n\nexport { PluginsInitializer };\n"],"names":["PluginsInitializer","children","appPlugins","useStrapiApp","state","plugins","dispatch","React","useReducer","reducer","initialState","init","setPlugin","useRef","pluginId","type","hasApluginNotReady","Object","keys","some","plugin","isReady","initializers","reduce","acc","current","InitializerComponent","initializer","key","push","_jsx","_jsxs","_Fragment","Page","Loading","action","produce","draftState"],"mappings":";;;;;;AAOA;;AAEC,IACD,MAAMA,kBAAAA,GAAqB,CAAC,EAAEC,QAAQ,EAAiC,GAAA;AACrE,IAAA,MAAMC,aAAaC,YAAAA,CAAa,oBAAA,EAAsB,CAACC,KAAAA,GAAUA,MAAMC,OAAO,CAAA;AAC9E,IAAA,MAAM,CAAC,EAAEA,OAAO,EAAE,EAAEC,QAAAA,CAAS,GAAGC,KAAAA,CAAMC,UAAU,CAC9CC,OAAAA,EACAC,YAAAA,EACA,IAAMC,IAAAA,CAAKT,UAAAA,CAAAA,CAAAA;AAEb,IAAA,MAAMU,SAAAA,GAAYL,KAAAA,CAAMM,MAAM,CAAC,CAACC,QAAAA,GAAAA;QAC9BR,QAAAA,CAAS;YAAES,IAAAA,EAAM,kBAAA;AAAoBD,YAAAA;AAAS,SAAA,CAAA;AAChD,IAAA,CAAA,CAAA;AAEA,IAAA,MAAME,kBAAAA,GAAqBC,MAAAA,CAAOC,IAAI,CAACb,SAASc,IAAI,CAClD,CAACC,MAAAA,GAAWf,OAAO,CAACe,MAAAA,CAAO,CAACC,OAAO,KAAK,KAAA,CAAA;AAG1C;;;;;;;;;;;;;;;;;;;;;AAqBC,MAED,IAAIL,kBAAAA,EAAoB;QACtB,MAAMM,YAAAA,GAAeL,OAAOC,IAAI,CAACb,SAASkB,MAAM,CAAC,CAACC,GAAAA,EAAKC,OAAAA,GAAAA;AACrD,YAAA,MAAMC,oBAAAA,GAAuBrB,OAAO,CAACoB,OAAAA,CAAQ,CAACE,WAAW;AAEzD,YAAA,IAAID,oBAAAA,EAAsB;AACxB,gBAAA,MAAME,GAAAA,GAAMvB,OAAO,CAACoB,OAAAA,CAAQ,CAACX,QAAQ;gBAErCU,GAAAA,CAAIK,IAAI,eAACC,GAAA,CAACJ,oBAAAA,EAAAA;AAA+Bd,oBAAAA,SAAAA,EAAWA,UAAUa;AAA1BG,iBAAAA,EAAAA,GAAAA,CAAAA,CAAAA;AACtC,YAAA;YAEA,OAAOJ,GAAAA;AACT,QAAA,CAAA,EAAG,EAAE,CAAA;QAEL,qBACEO,IAAA,CAAAC,QAAA,EAAA;;AACGV,gBAAAA,YAAAA;AACD,8BAAAQ,GAAA,CAACG,KAAKC,OAAO,EAAA,EAAA;;;AAGnB,IAAA;IAEA,OAAOjC,QAAAA;AACT;AAUA,MAAMS,YAAAA,GAAsB;AAC1BL,IAAAA,OAAAA,EAAS;AACX,CAAA;AASA,MAAMI,OAAAA,GAAwC,CAACL,KAAAA,GAAQM,YAAY,EAAEyB,MAAAA,GACnEC,OAAAA,CAAQhC,OAAO,CAACiC,UAAAA,GAAAA;AACd,QAAA,OAAQF,OAAOpB,IAAI;YACjB,KAAK,kBAAA;AAAoB,gBAAA;AACvBsB,oBAAAA,UAAAA,CAAWhC,OAAO,CAAC8B,MAAAA,CAAOrB,QAAQ,CAAC,CAACO,OAAO,GAAG,IAAA;AAC9C,oBAAA;AACF,gBAAA;AACA,YAAA;gBACE,OAAOgB,UAAAA;AACX;AACF,IAAA,CAAA,CAAA;AAEF;;qGAIA,MAAM1B,OAAO,CAACN,OAAAA,GAAAA;IACZ,OAAO;AACLA,QAAAA;AACF,KAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateRoute.js","sources":["../../../../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":["PrivateRoute","children","token","useAuth","state","pathname","search","useLocation","_jsx","Navigate","to","encodeURIComponent","undefined"],"mappings":";;;;;;;AAUA,MAAMA,YAAe,GAAA,CAAC,EAAEC,QAAQ,EAAqB,GAAA;AACnD,IAAA,MAAMC,QAAQC,YAAQ,CAAA,cAAA,EAAgB,CAACC,KAAAA,GAAUA,MAAMF,KAAK,CAAA;AAC5D,IAAA,MAAM,EAAEG,QAAQ,EAAEC,MAAM,EAAE,GAAGC,0BAAAA,EAAAA;IAE7B,OAAOL,KAAAA,KAAU,IACfD,GAAAA,QAAAA,iBAEAO,cAACC,CAAAA,uBAAAA,EAAAA;QACCC,EAAI,EAAA;YACFL,QAAU,EAAA,aAAA;YACVC,MACED,EAAAA,QAAAA,KAAa,GACT,GAAA,CAAC,YAAY,EAAEM,mBAAmB,CAAGN,EAAAA,QAAAA,CAAAA,EAAWC,MAAQ,CAAA,CAAA,CAAA,CAAA,CAAG,GAC3DM;AACR;;AAGN;;;;"}
1
+ {"version":3,"file":"PrivateRoute.js","sources":["../../../../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":["PrivateRoute","children","token","useAuth","state","pathname","search","useLocation","_jsx","Navigate","to","encodeURIComponent","undefined"],"mappings":";;;;;;;AAUA,MAAMA,YAAAA,GAAe,CAAC,EAAEC,QAAQ,EAAqB,GAAA;AACnD,IAAA,MAAMC,QAAQC,YAAAA,CAAQ,cAAA,EAAgB,CAACC,KAAAA,GAAUA,MAAMF,KAAK,CAAA;AAC5D,IAAA,MAAM,EAAEG,QAAQ,EAAEC,MAAM,EAAE,GAAGC,0BAAAA,EAAAA;IAE7B,OAAOL,KAAAA,KAAU,IAAA,GACfD,QAAAA,iBAEAO,cAAA,CAACC,uBAAAA,EAAAA;QACCC,EAAAA,EAAI;YACFL,QAAAA,EAAU,aAAA;YACVC,MAAAA,EACED,QAAAA,KAAa,GAAA,GACT,CAAC,YAAY,EAAEM,mBAAmB,CAAA,EAAGN,QAAAA,CAAAA,EAAWC,MAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAG,GAC3DM;AACR;;AAGN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateRoute.mjs","sources":["../../../../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":["PrivateRoute","children","token","useAuth","state","pathname","search","useLocation","_jsx","Navigate","to","encodeURIComponent","undefined"],"mappings":";;;;;AAUA,MAAMA,YAAe,GAAA,CAAC,EAAEC,QAAQ,EAAqB,GAAA;AACnD,IAAA,MAAMC,QAAQC,OAAQ,CAAA,cAAA,EAAgB,CAACC,KAAAA,GAAUA,MAAMF,KAAK,CAAA;AAC5D,IAAA,MAAM,EAAEG,QAAQ,EAAEC,MAAM,EAAE,GAAGC,WAAAA,EAAAA;IAE7B,OAAOL,KAAAA,KAAU,IACfD,GAAAA,QAAAA,iBAEAO,GAACC,CAAAA,QAAAA,EAAAA;QACCC,EAAI,EAAA;YACFL,QAAU,EAAA,aAAA;YACVC,MACED,EAAAA,QAAAA,KAAa,GACT,GAAA,CAAC,YAAY,EAAEM,mBAAmB,CAAGN,EAAAA,QAAAA,CAAAA,EAAWC,MAAQ,CAAA,CAAA,CAAA,CAAA,CAAG,GAC3DM;AACR;;AAGN;;;;"}
1
+ {"version":3,"file":"PrivateRoute.mjs","sources":["../../../../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":["PrivateRoute","children","token","useAuth","state","pathname","search","useLocation","_jsx","Navigate","to","encodeURIComponent","undefined"],"mappings":";;;;;AAUA,MAAMA,YAAAA,GAAe,CAAC,EAAEC,QAAQ,EAAqB,GAAA;AACnD,IAAA,MAAMC,QAAQC,OAAAA,CAAQ,cAAA,EAAgB,CAACC,KAAAA,GAAUA,MAAMF,KAAK,CAAA;AAC5D,IAAA,MAAM,EAAEG,QAAQ,EAAEC,MAAM,EAAE,GAAGC,WAAAA,EAAAA;IAE7B,OAAOL,KAAAA,KAAU,IAAA,GACfD,QAAAA,iBAEAO,GAAA,CAACC,QAAAA,EAAAA;QACCC,EAAAA,EAAI;YACFL,QAAAA,EAAU,aAAA;YACVC,MAAAA,EACED,QAAAA,KAAa,GAAA,GACT,CAAC,YAAY,EAAEM,mBAAmB,CAAA,EAAGN,QAAAA,CAAAA,EAAWC,MAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAG,GAC3DM;AACR;;AAGN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.js","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/GuidedTourProvider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,sBAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,cAACC,CAAAA,2BAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,cAACmB,CAAAA,mBAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,cAACoB,CAAAA,8BAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,cAACsB,CAAAA,iBAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,cAACuB,CAAAA,0BAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,cAACwB,CAAAA,iCAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,cAAC4B,CAAAA,WAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,cAAC8B,CAAAA,mCAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,cAAC+B,CAAAA,yBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,cAACgC,CAAAA,qCAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,cAACiC,CAAAA,mCAAAA,EAAAA;gDACCC,eAAiBpC,EAAAA,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAO4B,CAAAA,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
1
+ {"version":3,"file":"Providers.js","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/GuidedTourProvider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,sBAAAA,CAAY;IAClCC,cAAAA,EAAgB;QACdC,OAAAA,EAAS;YACPC,oBAAAA,EAAsB;AACxB;AACF;AACF,CAAA,CAAA;AAQA,MAAMC,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,cAAA,CAACC,2BAAAA,EAAAA;QACCC,UAAAA,EAAYJ,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAAA,EAAQR,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAAA,EAAMT,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAAA,EAAMC,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAAA,EAAcjB,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAAA,EAAUpB,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,cAAA,CAACmB,mBAAAA,EAAAA;YAASpB,KAAAA,EAAOA,KAAAA;AACf,YAAA,QAAA,gBAAAC,cAAA,CAACoB,8BAAAA,EAAAA;gBAAoBC,MAAAA,EAAQ9B,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,cAAA,CAACsB,iBAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,cAAA,CAACuB,0BAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,cAAA,CAACwB,iCAAAA,EAAAA;4BAAiBC,QAAAA,EAAU3B,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,cAAA,CAAC4B,WAAAA,EAAAA;gCAAMC,MAAAA,EAAQ/B,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,cAAA,CAAC8B,mCAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,cAAA,CAAC+B,yBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,cAAA,CAACgC,qCAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,cAAA,CAACiC,mCAAAA,EAAAA;gDACCC,eAAAA,EAAiBpC,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAAA,EAAiBtC,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAAA,CAAO4B,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.mjs","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/GuidedTourProvider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,WAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,GAACC,CAAAA,iBAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,GAACmB,CAAAA,QAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,GAACoB,CAAAA,mBAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,GAACsB,CAAAA,YAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,GAACuB,CAAAA,eAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,GAACwB,CAAAA,gBAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,GAAC4B,CAAAA,KAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,GAAC8B,CAAAA,qBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,GAAC+B,CAAAA,gBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACgC,CAAAA,kBAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,GAACiC,CAAAA,qBAAAA,EAAAA;gDACCC,eAAiBpC,EAAAA,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAO4B,CAAAA,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
1
+ {"version":3,"file":"Providers.mjs","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/GuidedTourProvider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,WAAAA,CAAY;IAClCC,cAAAA,EAAgB;QACdC,OAAAA,EAAS;YACPC,oBAAAA,EAAsB;AACxB;AACF;AACF,CAAA,CAAA;AAQA,MAAMC,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,GAAA,CAACC,iBAAAA,EAAAA;QACCC,UAAAA,EAAYJ,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAAA,EAAQR,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAAA,EAAMT,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAAA,EAAMC,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAAA,EAAcjB,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAAA,EAAUpB,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,GAAA,CAACmB,QAAAA,EAAAA;YAASpB,KAAAA,EAAOA,KAAAA;AACf,YAAA,QAAA,gBAAAC,GAAA,CAACoB,mBAAAA,EAAAA;gBAAoBC,MAAAA,EAAQ9B,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,GAAA,CAACsB,YAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,GAAA,CAACuB,eAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,GAAA,CAACwB,gBAAAA,EAAAA;4BAAiBC,QAAAA,EAAU3B,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,GAAA,CAAC4B,KAAAA,EAAAA;gCAAMC,MAAAA,EAAQ/B,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,GAAA,CAAC8B,qBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,GAAA,CAAC+B,gBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAAA,CAACgC,kBAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,GAAA,CAACiC,qBAAAA,EAAAA;gDACCC,eAAAA,EAAiBpC,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAAA,EAAiBtC,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAAA,CAAO4B,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RelativeTime.js","sources":["../../../../../admin/src/components/RelativeTime.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n"],"names":["intervals","RelativeTime","React","forwardRef","timestamp","customIntervals","restProps","forwardedRef","formatRelativeTime","formatDate","formatTime","useIntl","interval","intervalToDuration","start","end","Date","now","unit","find","intervalUnit","Object","keys","includes","relativeTime","isPast","customInterval","custom","threshold","displayText","text","numeric","_jsx","time","ref","dateTime","toISOString","role","title"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,SAAmC,GAAA;AAAC,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,MAAA;AAAQ,IAAA,OAAA;AAAS,IAAA,SAAA;AAAW,IAAA;AAAU,CAAA;AAanG;;;;;;;;;;;;;AAaC,IACKC,MAAAA,YAAAA,iBAAeC,gBAAMC,CAAAA,UAAU,CACnC,CAAC,EAAEC,SAAS,EAAEC,eAAkB,GAAA,EAAE,EAAE,GAAGC,WAAW,EAAEC,YAAAA,GAAAA;AAClD,IAAA,MAAM,EAAEC,kBAAkB,EAAEC,UAAU,EAAEC,UAAU,EAAE,GAAGC,iBAAAA,EAAAA;AAEvD;;QAGA,MAAMC,WAAWC,0BAAmB,CAAA;QAClCC,KAAOV,EAAAA,SAAAA;AACPW,QAAAA,GAAAA,EAAKC,KAAKC,GAAG;AAEf,KAAA,CAAA;AAEA,IAAA,MAAMC,IAAOlB,GAAAA,SAAAA,CAAUmB,IAAI,CAAC,CAACC,YAAAA,GAAAA;QAC3B,OAAOR,QAAQ,CAACQ,YAAAA,CAAa,GAAG,CAAA,IAAKC,OAAOC,IAAI,CAACV,QAAUW,CAAAA,CAAAA,QAAQ,CAACH,YAAAA,CAAAA;AACtE,KAAA,CAAA;IAEA,MAAMI,YAAAA,GAAeC,cAAOrB,CAAAA,SAAAA,CAAAA,GAAa,CAACQ,QAAQ,CAACM,IAAK,CAAA,GAAGN,QAAQ,CAACM,IAAK,CAAA;;AAGzE,IAAA,MAAMQ,cAAiBrB,GAAAA,eAAAA,CAAgBc,IAAI,CACzC,CAACQ,MAAAA,GAAWf,QAAQ,CAACe,MAAOT,CAAAA,IAAI,CAAC,GAAGS,OAAOC,SAAS,CAAA;AAGtD,IAAA,MAAMC,cAAcH,cAChBA,GAAAA,cAAAA,CAAeI,IAAI,GACnBtB,kBAAAA,CAAmBgB,cAAcN,IAAM,EAAA;QAAEa,OAAS,EAAA;AAAO,KAAA,CAAA;AAE7D,IAAA,qBACEC,cAACC,CAAAA,MAAAA,EAAAA;QACCC,GAAK3B,EAAAA,YAAAA;AACL4B,QAAAA,QAAAA,EAAU/B,UAAUgC,WAAW,EAAA;QAC/BC,IAAK,EAAA,MAAA;AACLC,QAAAA,KAAAA,EAAO,GAAG7B,UAAWL,CAAAA,SAAAA,CAAAA,CAAW,CAAC,EAAEM,WAAWN,SAAY,CAAA,CAAA,CAAA;AACzD,QAAA,GAAGE,SAAS;AAEZuB,QAAAA,QAAAA,EAAAA;;AAGP,CAAA;;;;"}
1
+ {"version":3,"file":"RelativeTime.js","sources":["../../../../../admin/src/components/RelativeTime.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n"],"names":["intervals","RelativeTime","React","forwardRef","timestamp","customIntervals","restProps","forwardedRef","formatRelativeTime","formatDate","formatTime","useIntl","interval","intervalToDuration","start","end","Date","now","unit","find","intervalUnit","Object","keys","includes","relativeTime","isPast","customInterval","custom","threshold","displayText","text","numeric","_jsx","time","ref","dateTime","toISOString","role","title"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,SAAAA,GAAmC;AAAC,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,MAAA;AAAQ,IAAA,OAAA;AAAS,IAAA,SAAA;AAAW,IAAA;AAAU,CAAA;AAanG;;;;;;;;;;;;;AAaC,IACD,MAAMC,YAAAA,iBAAeC,gBAAAA,CAAMC,UAAU,CACnC,CAAC,EAAEC,SAAS,EAAEC,eAAAA,GAAkB,EAAE,EAAE,GAAGC,WAAW,EAAEC,YAAAA,GAAAA;AAClD,IAAA,MAAM,EAAEC,kBAAkB,EAAEC,UAAU,EAAEC,UAAU,EAAE,GAAGC,iBAAAA,EAAAA;AAEvD;;QAGA,MAAMC,WAAWC,0BAAAA,CAAmB;QAClCC,KAAAA,EAAOV,SAAAA;AACPW,QAAAA,GAAAA,EAAKC,KAAKC,GAAG;AAEf,KAAA,CAAA;AAEA,IAAA,MAAMC,IAAAA,GAAOlB,SAAAA,CAAUmB,IAAI,CAAC,CAACC,YAAAA,GAAAA;QAC3B,OAAOR,QAAQ,CAACQ,YAAAA,CAAa,GAAG,CAAA,IAAKC,OAAOC,IAAI,CAACV,QAAAA,CAAAA,CAAUW,QAAQ,CAACH,YAAAA,CAAAA;AACtE,IAAA,CAAA,CAAA;IAEA,MAAMI,YAAAA,GAAeC,cAAAA,CAAOrB,SAAAA,CAAAA,GAAa,CAACQ,QAAQ,CAACM,IAAAA,CAAK,GAAGN,QAAQ,CAACM,IAAAA,CAAK;;AAGzE,IAAA,MAAMQ,cAAAA,GAAiBrB,eAAAA,CAAgBc,IAAI,CACzC,CAACQ,MAAAA,GAAWf,QAAQ,CAACe,MAAAA,CAAOT,IAAI,CAAC,GAAGS,OAAOC,SAAS,CAAA;AAGtD,IAAA,MAAMC,cAAcH,cAAAA,GAChBA,cAAAA,CAAeI,IAAI,GACnBtB,kBAAAA,CAAmBgB,cAAcN,IAAAA,EAAM;QAAEa,OAAAA,EAAS;AAAO,KAAA,CAAA;AAE7D,IAAA,qBACEC,cAAA,CAACC,MAAAA,EAAAA;QACCC,GAAAA,EAAK3B,YAAAA;AACL4B,QAAAA,QAAAA,EAAU/B,UAAUgC,WAAW,EAAA;QAC/BC,IAAAA,EAAK,MAAA;AACLC,QAAAA,KAAAA,EAAO,GAAG7B,UAAAA,CAAWL,SAAAA,CAAAA,CAAW,CAAC,EAAEM,WAAWN,SAAAA,CAAAA,CAAAA,CAAY;AACzD,QAAA,GAAGE,SAAS;AAEZuB,QAAAA,QAAAA,EAAAA;;AAGP,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RelativeTime.mjs","sources":["../../../../../admin/src/components/RelativeTime.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n"],"names":["intervals","RelativeTime","React","forwardRef","timestamp","customIntervals","restProps","forwardedRef","formatRelativeTime","formatDate","formatTime","useIntl","interval","intervalToDuration","start","end","Date","now","unit","find","intervalUnit","Object","keys","includes","relativeTime","isPast","customInterval","custom","threshold","displayText","text","numeric","_jsx","time","ref","dateTime","toISOString","role","title"],"mappings":";;;;;AAKA,MAAMA,SAAmC,GAAA;AAAC,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,MAAA;AAAQ,IAAA,OAAA;AAAS,IAAA,SAAA;AAAW,IAAA;AAAU,CAAA;AAanG;;;;;;;;;;;;;AAaC,IACKC,MAAAA,YAAAA,iBAAeC,KAAMC,CAAAA,UAAU,CACnC,CAAC,EAAEC,SAAS,EAAEC,eAAkB,GAAA,EAAE,EAAE,GAAGC,WAAW,EAAEC,YAAAA,GAAAA;AAClD,IAAA,MAAM,EAAEC,kBAAkB,EAAEC,UAAU,EAAEC,UAAU,EAAE,GAAGC,OAAAA,EAAAA;AAEvD;;QAGA,MAAMC,WAAWC,kBAAmB,CAAA;QAClCC,KAAOV,EAAAA,SAAAA;AACPW,QAAAA,GAAAA,EAAKC,KAAKC,GAAG;AAEf,KAAA,CAAA;AAEA,IAAA,MAAMC,IAAOlB,GAAAA,SAAAA,CAAUmB,IAAI,CAAC,CAACC,YAAAA,GAAAA;QAC3B,OAAOR,QAAQ,CAACQ,YAAAA,CAAa,GAAG,CAAA,IAAKC,OAAOC,IAAI,CAACV,QAAUW,CAAAA,CAAAA,QAAQ,CAACH,YAAAA,CAAAA;AACtE,KAAA,CAAA;IAEA,MAAMI,YAAAA,GAAeC,MAAOrB,CAAAA,SAAAA,CAAAA,GAAa,CAACQ,QAAQ,CAACM,IAAK,CAAA,GAAGN,QAAQ,CAACM,IAAK,CAAA;;AAGzE,IAAA,MAAMQ,cAAiBrB,GAAAA,eAAAA,CAAgBc,IAAI,CACzC,CAACQ,MAAAA,GAAWf,QAAQ,CAACe,MAAOT,CAAAA,IAAI,CAAC,GAAGS,OAAOC,SAAS,CAAA;AAGtD,IAAA,MAAMC,cAAcH,cAChBA,GAAAA,cAAAA,CAAeI,IAAI,GACnBtB,kBAAAA,CAAmBgB,cAAcN,IAAM,EAAA;QAAEa,OAAS,EAAA;AAAO,KAAA,CAAA;AAE7D,IAAA,qBACEC,GAACC,CAAAA,MAAAA,EAAAA;QACCC,GAAK3B,EAAAA,YAAAA;AACL4B,QAAAA,QAAAA,EAAU/B,UAAUgC,WAAW,EAAA;QAC/BC,IAAK,EAAA,MAAA;AACLC,QAAAA,KAAAA,EAAO,GAAG7B,UAAWL,CAAAA,SAAAA,CAAAA,CAAW,CAAC,EAAEM,WAAWN,SAAY,CAAA,CAAA,CAAA;AACzD,QAAA,GAAGE,SAAS;AAEZuB,QAAAA,QAAAA,EAAAA;;AAGP,CAAA;;;;"}
1
+ {"version":3,"file":"RelativeTime.mjs","sources":["../../../../../admin/src/components/RelativeTime.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n"],"names":["intervals","RelativeTime","React","forwardRef","timestamp","customIntervals","restProps","forwardedRef","formatRelativeTime","formatDate","formatTime","useIntl","interval","intervalToDuration","start","end","Date","now","unit","find","intervalUnit","Object","keys","includes","relativeTime","isPast","customInterval","custom","threshold","displayText","text","numeric","_jsx","time","ref","dateTime","toISOString","role","title"],"mappings":";;;;;AAKA,MAAMA,SAAAA,GAAmC;AAAC,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,MAAA;AAAQ,IAAA,OAAA;AAAS,IAAA,SAAA;AAAW,IAAA;AAAU,CAAA;AAanG;;;;;;;;;;;;;AAaC,IACD,MAAMC,YAAAA,iBAAeC,KAAAA,CAAMC,UAAU,CACnC,CAAC,EAAEC,SAAS,EAAEC,eAAAA,GAAkB,EAAE,EAAE,GAAGC,WAAW,EAAEC,YAAAA,GAAAA;AAClD,IAAA,MAAM,EAAEC,kBAAkB,EAAEC,UAAU,EAAEC,UAAU,EAAE,GAAGC,OAAAA,EAAAA;AAEvD;;QAGA,MAAMC,WAAWC,kBAAAA,CAAmB;QAClCC,KAAAA,EAAOV,SAAAA;AACPW,QAAAA,GAAAA,EAAKC,KAAKC,GAAG;AAEf,KAAA,CAAA;AAEA,IAAA,MAAMC,IAAAA,GAAOlB,SAAAA,CAAUmB,IAAI,CAAC,CAACC,YAAAA,GAAAA;QAC3B,OAAOR,QAAQ,CAACQ,YAAAA,CAAa,GAAG,CAAA,IAAKC,OAAOC,IAAI,CAACV,QAAAA,CAAAA,CAAUW,QAAQ,CAACH,YAAAA,CAAAA;AACtE,IAAA,CAAA,CAAA;IAEA,MAAMI,YAAAA,GAAeC,MAAAA,CAAOrB,SAAAA,CAAAA,GAAa,CAACQ,QAAQ,CAACM,IAAAA,CAAK,GAAGN,QAAQ,CAACM,IAAAA,CAAK;;AAGzE,IAAA,MAAMQ,cAAAA,GAAiBrB,eAAAA,CAAgBc,IAAI,CACzC,CAACQ,MAAAA,GAAWf,QAAQ,CAACe,MAAAA,CAAOT,IAAI,CAAC,GAAGS,OAAOC,SAAS,CAAA;AAGtD,IAAA,MAAMC,cAAcH,cAAAA,GAChBA,cAAAA,CAAeI,IAAI,GACnBtB,kBAAAA,CAAmBgB,cAAcN,IAAAA,EAAM;QAAEa,OAAAA,EAAS;AAAO,KAAA,CAAA;AAE7D,IAAA,qBACEC,GAAA,CAACC,MAAAA,EAAAA;QACCC,GAAAA,EAAK3B,YAAAA;AACL4B,QAAAA,QAAAA,EAAU/B,UAAUgC,WAAW,EAAA;QAC/BC,IAAAA,EAAK,MAAA;AACLC,QAAAA,KAAAA,EAAO,GAAG7B,UAAAA,CAAWL,SAAAA,CAAAA,CAAW,CAAC,EAAEM,WAAWN,SAAAA,CAAAA,CAAAA,CAAY;AACzD,QAAA,GAAGE,SAAS;AAEZuB,QAAAA,QAAAA,EAAAA;;AAGP,CAAA;;;;"}