@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":"rulesEngine.mjs","sources":["../../../../../admin/src/utils/rulesEngine.ts"],"sourcesContent":["import jsonLogic from 'json-logic-js';\nimport { z } from 'zod';\n\nexport const ConditionSchema = z.object({\n dependsOn: z.string().min(1),\n operator: z.enum(['is', 'isNot']),\n value: z.union([z.string(), z.number(), z.boolean()]),\n});\n\nexport type Condition = z.infer<typeof ConditionSchema>;\nexport type JsonLogicCondition = jsonLogic.RulesLogic<jsonLogic.AdditionalOperation>;\nexport type RulesEngine = {\n generate: (condition: Condition) => JsonLogicCondition;\n validate: (condition: Condition) => void;\n evaluate: (condition: JsonLogicCondition, data: unknown) => boolean;\n};\n\nexport function createRulesEngine(): RulesEngine {\n /**\n * Transforms a high-level `Condition` object into a JSON Logic-compatible condition.\n *\n * Converts operators like 'is' and 'isNot' into their JSON Logic equivalents ('==' and '!=').\n * Throws an error if the operator is not supported.\n *\n * @param condition - The condition object to convert.\n * @returns A JSON Logic AST representing the condition.\n * @throws {Error} If the operator is not recognized.\n */\n const generate = (condition: Condition): JsonLogicCondition => {\n const { dependsOn, operator, value } = condition;\n const operatorsMap = {\n is: '==',\n isNot: '!=',\n };\n if (!operatorsMap[operator]) {\n throw new Error(`Invalid operator: ${operator}`);\n }\n return { [operatorsMap[operator]]: [{ var: dependsOn }, value] };\n };\n\n /**\n * Validates a condition object against the `ConditionSchema`.\n *\n * Ensures that the condition adheres to the expected structure and types.\n *\n * @param condition - The condition object to validate.\n * @throws {ZodError} If the condition is invalid.\n */\n const validate = (condition: Condition) => {\n ConditionSchema.parse(condition);\n };\n\n /**\n * Evaluates a JSON Logic condition against provided data.\n * @throws {Error} If the condition is invalid.\n */\n const evaluate = (\n condition: jsonLogic.RulesLogic<jsonLogic.AdditionalOperation>,\n data: unknown\n ): boolean => {\n try {\n return jsonLogic.apply(condition, data);\n } catch (err: any) {\n throw new Error(`Invalid condition: ${err.message}`);\n }\n };\n\n return {\n generate,\n validate,\n evaluate,\n };\n}\n"],"names":["ConditionSchema","z","object","dependsOn","string","min","operator","enum","value","union","number","boolean","createRulesEngine","generate","condition","operatorsMap","is","isNot","Error","var","validate","parse","evaluate","data","jsonLogic","apply","err","message"],"mappings":";;;AAGaA,MAAAA,eAAAA,GAAkBC,CAAEC,CAAAA,MAAM,CAAC;AACtCC,IAAAA,SAAAA,EAAWF,CAAEG,CAAAA,MAAM,EAAGC,CAAAA,GAAG,CAAC,CAAA,CAAA;IAC1BC,QAAUL,EAAAA,CAAAA,CAAEM,IAAI,CAAC;AAAC,QAAA,IAAA;AAAM,QAAA;AAAQ,KAAA,CAAA;IAChCC,KAAOP,EAAAA,CAAAA,CAAEQ,KAAK,CAAC;AAACR,QAAAA,CAAAA,CAAEG,MAAM,EAAA;AAAIH,QAAAA,CAAAA,CAAES,MAAM,EAAA;AAAIT,QAAAA,CAAAA,CAAEU,OAAO;AAAG,KAAA;AACtD,CAAG;AAUI,SAASC,iBAAAA,GAAAA;AACd;;;;;;;;;MAUA,MAAMC,WAAW,CAACC,SAAAA,GAAAA;AAChB,QAAA,MAAM,EAAEX,SAAS,EAAEG,QAAQ,EAAEE,KAAK,EAAE,GAAGM,SAAAA;AACvC,QAAA,MAAMC,YAAe,GAAA;YACnBC,EAAI,EAAA,IAAA;YACJC,KAAO,EAAA;AACT,SAAA;AACA,QAAA,IAAI,CAACF,YAAY,CAACT,QAAAA,CAAS,EAAE;AAC3B,YAAA,MAAM,IAAIY,KAAAA,CAAM,CAAC,kBAAkB,EAAEZ,QAAU,CAAA,CAAA,CAAA;AACjD;QACA,OAAO;AAAE,YAAA,CAACS,YAAY,CAACT,QAAS,CAAA,GAAG;AAAC,gBAAA;oBAAEa,GAAKhB,EAAAA;AAAU,iBAAA;AAAGK,gBAAAA;AAAM;AAAC,SAAA;AACjE,KAAA;AAEA;;;;;;;MAQA,MAAMY,WAAW,CAACN,SAAAA,GAAAA;AAChBd,QAAAA,eAAAA,CAAgBqB,KAAK,CAACP,SAAAA,CAAAA;AACxB,KAAA;AAEA;;;MAIA,MAAMQ,QAAW,GAAA,CACfR,SACAS,EAAAA,IAAAA,GAAAA;QAEA,IAAI;YACF,OAAOC,SAAAA,CAAUC,KAAK,CAACX,SAAWS,EAAAA,IAAAA,CAAAA;AACpC,SAAA,CAAE,OAAOG,GAAU,EAAA;AACjB,YAAA,MAAM,IAAIR,KAAM,CAAA,CAAC,mBAAmB,EAAEQ,GAAAA,CAAIC,OAAO,CAAE,CAAA,CAAA;AACrD;AACF,KAAA;IAEA,OAAO;AACLd,QAAAA,QAAAA;AACAO,QAAAA,QAAAA;AACAE,QAAAA;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"rulesEngine.mjs","sources":["../../../../../admin/src/utils/rulesEngine.ts"],"sourcesContent":["import jsonLogic from 'json-logic-js';\nimport { z } from 'zod';\n\nexport const ConditionSchema = z.object({\n dependsOn: z.string().min(1),\n operator: z.enum(['is', 'isNot']),\n value: z.union([z.string(), z.number(), z.boolean()]),\n});\n\nexport type Condition = z.infer<typeof ConditionSchema>;\nexport type JsonLogicCondition = jsonLogic.RulesLogic<jsonLogic.AdditionalOperation>;\nexport type RulesEngine = {\n generate: (condition: Condition) => JsonLogicCondition;\n validate: (condition: Condition) => void;\n evaluate: (condition: JsonLogicCondition, data: unknown) => boolean;\n};\n\nexport function createRulesEngine(): RulesEngine {\n /**\n * Transforms a high-level `Condition` object into a JSON Logic-compatible condition.\n *\n * Converts operators like 'is' and 'isNot' into their JSON Logic equivalents ('==' and '!=').\n * Throws an error if the operator is not supported.\n *\n * @param condition - The condition object to convert.\n * @returns A JSON Logic AST representing the condition.\n * @throws {Error} If the operator is not recognized.\n */\n const generate = (condition: Condition): JsonLogicCondition => {\n const { dependsOn, operator, value } = condition;\n const operatorsMap = {\n is: '==',\n isNot: '!=',\n };\n if (!operatorsMap[operator]) {\n throw new Error(`Invalid operator: ${operator}`);\n }\n return { [operatorsMap[operator]]: [{ var: dependsOn }, value] };\n };\n\n /**\n * Validates a condition object against the `ConditionSchema`.\n *\n * Ensures that the condition adheres to the expected structure and types.\n *\n * @param condition - The condition object to validate.\n * @throws {ZodError} If the condition is invalid.\n */\n const validate = (condition: Condition) => {\n ConditionSchema.parse(condition);\n };\n\n /**\n * Evaluates a JSON Logic condition against provided data.\n * @throws {Error} If the condition is invalid.\n */\n const evaluate = (\n condition: jsonLogic.RulesLogic<jsonLogic.AdditionalOperation>,\n data: unknown\n ): boolean => {\n try {\n return jsonLogic.apply(condition, data);\n } catch (err: any) {\n throw new Error(`Invalid condition: ${err.message}`);\n }\n };\n\n return {\n generate,\n validate,\n evaluate,\n };\n}\n"],"names":["ConditionSchema","z","object","dependsOn","string","min","operator","enum","value","union","number","boolean","createRulesEngine","generate","condition","operatorsMap","is","isNot","Error","var","validate","parse","evaluate","data","jsonLogic","apply","err","message"],"mappings":";;;AAGO,MAAMA,eAAAA,GAAkBC,CAAAA,CAAEC,MAAM,CAAC;AACtCC,IAAAA,SAAAA,EAAWF,CAAAA,CAAEG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;IAC1BC,QAAAA,EAAUL,CAAAA,CAAEM,IAAI,CAAC;AAAC,QAAA,IAAA;AAAM,QAAA;AAAQ,KAAA,CAAA;IAChCC,KAAAA,EAAOP,CAAAA,CAAEQ,KAAK,CAAC;AAACR,QAAAA,CAAAA,CAAEG,MAAM,EAAA;AAAIH,QAAAA,CAAAA,CAAES,MAAM,EAAA;AAAIT,QAAAA,CAAAA,CAAEU,OAAO;AAAG,KAAA;AACtD,CAAA;AAUO,SAASC,iBAAAA,GAAAA;AACd;;;;;;;;;MAUA,MAAMC,WAAW,CAACC,SAAAA,GAAAA;AAChB,QAAA,MAAM,EAAEX,SAAS,EAAEG,QAAQ,EAAEE,KAAK,EAAE,GAAGM,SAAAA;AACvC,QAAA,MAAMC,YAAAA,GAAe;YACnBC,EAAAA,EAAI,IAAA;YACJC,KAAAA,EAAO;AACT,SAAA;AACA,QAAA,IAAI,CAACF,YAAY,CAACT,QAAAA,CAAS,EAAE;AAC3B,YAAA,MAAM,IAAIY,KAAAA,CAAM,CAAC,kBAAkB,EAAEZ,QAAAA,CAAAA,CAAU,CAAA;AACjD,QAAA;QACA,OAAO;AAAE,YAAA,CAACS,YAAY,CAACT,QAAAA,CAAS,GAAG;AAAC,gBAAA;oBAAEa,GAAAA,EAAKhB;AAAU,iBAAA;AAAGK,gBAAAA;AAAM;AAAC,SAAA;AACjE,IAAA,CAAA;AAEA;;;;;;;MAQA,MAAMY,WAAW,CAACN,SAAAA,GAAAA;AAChBd,QAAAA,eAAAA,CAAgBqB,KAAK,CAACP,SAAAA,CAAAA;AACxB,IAAA,CAAA;AAEA;;;MAIA,MAAMQ,QAAAA,GAAW,CACfR,SAAAA,EACAS,IAAAA,GAAAA;QAEA,IAAI;YACF,OAAOC,SAAAA,CAAUC,KAAK,CAACX,SAAAA,EAAWS,IAAAA,CAAAA;AACpC,QAAA,CAAA,CAAE,OAAOG,GAAAA,EAAU;AACjB,YAAA,MAAM,IAAIR,KAAAA,CAAM,CAAC,mBAAmB,EAAEQ,GAAAA,CAAIC,OAAO,CAAA,CAAE,CAAA;AACrD,QAAA;AACF,IAAA,CAAA;IAEA,OAAO;AACLd,QAAAA,QAAAA;AACAO,QAAAA,QAAAA;AACAE,QAAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"shims.js","sources":["../../../../../admin/src/utils/shims.ts"],"sourcesContent":["/* -------------------------------------------------------------------------------------------------\n * requestIdleCallbackShim\n * -----------------------------------------------------------------------------------------------*/\nconst requestIdleCallbackShim: Window['requestIdleCallback'] = (callback) => {\n const start = Date.now();\n\n return setTimeout(() => {\n callback({\n didTimeout: false,\n timeRemaining() {\n return Math.max(0, Date.now() - start);\n },\n });\n }, 1) as unknown as ReturnType<Window['requestIdleCallback']>;\n};\n\nconst _requestIdleCallback =\n typeof requestIdleCallback === 'undefined' ? requestIdleCallbackShim : requestIdleCallback;\n\n/* -------------------------------------------------------------------------------------------------\n * cancelIdleCallbackShim\n * -----------------------------------------------------------------------------------------------*/\nconst cancelIdleCallbackShim: Window['cancelIdleCallback'] = (handle: unknown) => {\n return clearTimeout(handle as any);\n};\n\nconst _cancelIdleCallback =\n typeof cancelIdleCallback === 'undefined' ? cancelIdleCallbackShim : cancelIdleCallback;\n\nexport { _requestIdleCallback as requestIdleCallback };\nexport { _cancelIdleCallback as cancelIdleCallback };\n"],"names":["requestIdleCallbackShim","callback","start","Date","now","setTimeout","didTimeout","timeRemaining","Math","max","_requestIdleCallback","requestIdleCallback","cancelIdleCallbackShim","handle","clearTimeout","_cancelIdleCallback","cancelIdleCallback"],"mappings":";;AAAA;;qGAGA,MAAMA,0BAAyD,CAACC,QAAAA,GAAAA;IAC9D,MAAMC,KAAAA,GAAQC,KAAKC,GAAG,EAAA;AAEtB,IAAA,OAAOC,UAAW,CAAA,IAAA;QAChBJ,QAAS,CAAA;YACPK,UAAY,EAAA,KAAA;AACZC,YAAAA,aAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,KAAKC,GAAG,CAAC,CAAGN,EAAAA,IAAAA,CAAKC,GAAG,EAAKF,GAAAA,KAAAA,CAAAA;AAClC;AACF,SAAA,CAAA;KACC,EAAA,CAAA,CAAA;AACL,CAAA;AAEA,MAAMQ,oBACJ,GAAA,OAAOC,mBAAwB,KAAA,WAAA,GAAcX,uBAA0BW,GAAAA;AAEzE;;qGAGA,MAAMC,yBAAuD,CAACC,MAAAA,GAAAA;AAC5D,IAAA,OAAOC,YAAaD,CAAAA,MAAAA,CAAAA;AACtB,CAAA;AAEA,MAAME,mBACJ,GAAA,OAAOC,kBAAuB,KAAA,WAAA,GAAcJ,sBAAyBI,GAAAA;;;;;"}
1
+ {"version":3,"file":"shims.js","sources":["../../../../../admin/src/utils/shims.ts"],"sourcesContent":["/* -------------------------------------------------------------------------------------------------\n * requestIdleCallbackShim\n * -----------------------------------------------------------------------------------------------*/\nconst requestIdleCallbackShim: Window['requestIdleCallback'] = (callback) => {\n const start = Date.now();\n\n return setTimeout(() => {\n callback({\n didTimeout: false,\n timeRemaining() {\n return Math.max(0, Date.now() - start);\n },\n });\n }, 1) as unknown as ReturnType<Window['requestIdleCallback']>;\n};\n\nconst _requestIdleCallback =\n typeof requestIdleCallback === 'undefined' ? requestIdleCallbackShim : requestIdleCallback;\n\n/* -------------------------------------------------------------------------------------------------\n * cancelIdleCallbackShim\n * -----------------------------------------------------------------------------------------------*/\nconst cancelIdleCallbackShim: Window['cancelIdleCallback'] = (handle: unknown) => {\n return clearTimeout(handle as any);\n};\n\nconst _cancelIdleCallback =\n typeof cancelIdleCallback === 'undefined' ? cancelIdleCallbackShim : cancelIdleCallback;\n\nexport { _requestIdleCallback as requestIdleCallback };\nexport { _cancelIdleCallback as cancelIdleCallback };\n"],"names":["requestIdleCallbackShim","callback","start","Date","now","setTimeout","didTimeout","timeRemaining","Math","max","_requestIdleCallback","requestIdleCallback","cancelIdleCallbackShim","handle","clearTimeout","_cancelIdleCallback","cancelIdleCallback"],"mappings":";;AAAA;;qGAGA,MAAMA,0BAAyD,CAACC,QAAAA,GAAAA;IAC9D,MAAMC,KAAAA,GAAQC,KAAKC,GAAG,EAAA;AAEtB,IAAA,OAAOC,UAAAA,CAAW,IAAA;QAChBJ,QAAAA,CAAS;YACPK,UAAAA,EAAY,KAAA;AACZC,YAAAA,aAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,KAAKC,GAAG,CAAC,CAAA,EAAGN,IAAAA,CAAKC,GAAG,EAAA,GAAKF,KAAAA,CAAAA;AAClC,YAAA;AACF,SAAA,CAAA;IACF,CAAA,EAAG,CAAA,CAAA;AACL,CAAA;AAEA,MAAMQ,oBAAAA,GACJ,OAAOC,mBAAAA,KAAwB,WAAA,GAAcX,uBAAAA,GAA0BW;AAEzE;;qGAGA,MAAMC,yBAAuD,CAACC,MAAAA,GAAAA;AAC5D,IAAA,OAAOC,YAAAA,CAAaD,MAAAA,CAAAA;AACtB,CAAA;AAEA,MAAME,mBAAAA,GACJ,OAAOC,kBAAAA,KAAuB,WAAA,GAAcJ,sBAAAA,GAAyBI;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"shims.mjs","sources":["../../../../../admin/src/utils/shims.ts"],"sourcesContent":["/* -------------------------------------------------------------------------------------------------\n * requestIdleCallbackShim\n * -----------------------------------------------------------------------------------------------*/\nconst requestIdleCallbackShim: Window['requestIdleCallback'] = (callback) => {\n const start = Date.now();\n\n return setTimeout(() => {\n callback({\n didTimeout: false,\n timeRemaining() {\n return Math.max(0, Date.now() - start);\n },\n });\n }, 1) as unknown as ReturnType<Window['requestIdleCallback']>;\n};\n\nconst _requestIdleCallback =\n typeof requestIdleCallback === 'undefined' ? requestIdleCallbackShim : requestIdleCallback;\n\n/* -------------------------------------------------------------------------------------------------\n * cancelIdleCallbackShim\n * -----------------------------------------------------------------------------------------------*/\nconst cancelIdleCallbackShim: Window['cancelIdleCallback'] = (handle: unknown) => {\n return clearTimeout(handle as any);\n};\n\nconst _cancelIdleCallback =\n typeof cancelIdleCallback === 'undefined' ? cancelIdleCallbackShim : cancelIdleCallback;\n\nexport { _requestIdleCallback as requestIdleCallback };\nexport { _cancelIdleCallback as cancelIdleCallback };\n"],"names":["requestIdleCallbackShim","callback","start","Date","now","setTimeout","didTimeout","timeRemaining","Math","max","_requestIdleCallback","requestIdleCallback","cancelIdleCallbackShim","handle","clearTimeout","_cancelIdleCallback","cancelIdleCallback"],"mappings":"AAAA;;qGAGA,MAAMA,0BAAyD,CAACC,QAAAA,GAAAA;IAC9D,MAAMC,KAAAA,GAAQC,KAAKC,GAAG,EAAA;AAEtB,IAAA,OAAOC,UAAW,CAAA,IAAA;QAChBJ,QAAS,CAAA;YACPK,UAAY,EAAA,KAAA;AACZC,YAAAA,aAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,KAAKC,GAAG,CAAC,CAAGN,EAAAA,IAAAA,CAAKC,GAAG,EAAKF,GAAAA,KAAAA,CAAAA;AAClC;AACF,SAAA,CAAA;KACC,EAAA,CAAA,CAAA;AACL,CAAA;AAEA,MAAMQ,oBACJ,GAAA,OAAOC,mBAAwB,KAAA,WAAA,GAAcX,uBAA0BW,GAAAA;AAEzE;;qGAGA,MAAMC,yBAAuD,CAACC,MAAAA,GAAAA;AAC5D,IAAA,OAAOC,YAAaD,CAAAA,MAAAA,CAAAA;AACtB,CAAA;AAEA,MAAME,mBACJ,GAAA,OAAOC,kBAAuB,KAAA,WAAA,GAAcJ,sBAAyBI,GAAAA;;;;"}
1
+ {"version":3,"file":"shims.mjs","sources":["../../../../../admin/src/utils/shims.ts"],"sourcesContent":["/* -------------------------------------------------------------------------------------------------\n * requestIdleCallbackShim\n * -----------------------------------------------------------------------------------------------*/\nconst requestIdleCallbackShim: Window['requestIdleCallback'] = (callback) => {\n const start = Date.now();\n\n return setTimeout(() => {\n callback({\n didTimeout: false,\n timeRemaining() {\n return Math.max(0, Date.now() - start);\n },\n });\n }, 1) as unknown as ReturnType<Window['requestIdleCallback']>;\n};\n\nconst _requestIdleCallback =\n typeof requestIdleCallback === 'undefined' ? requestIdleCallbackShim : requestIdleCallback;\n\n/* -------------------------------------------------------------------------------------------------\n * cancelIdleCallbackShim\n * -----------------------------------------------------------------------------------------------*/\nconst cancelIdleCallbackShim: Window['cancelIdleCallback'] = (handle: unknown) => {\n return clearTimeout(handle as any);\n};\n\nconst _cancelIdleCallback =\n typeof cancelIdleCallback === 'undefined' ? cancelIdleCallbackShim : cancelIdleCallback;\n\nexport { _requestIdleCallback as requestIdleCallback };\nexport { _cancelIdleCallback as cancelIdleCallback };\n"],"names":["requestIdleCallbackShim","callback","start","Date","now","setTimeout","didTimeout","timeRemaining","Math","max","_requestIdleCallback","requestIdleCallback","cancelIdleCallbackShim","handle","clearTimeout","_cancelIdleCallback","cancelIdleCallback"],"mappings":"AAAA;;qGAGA,MAAMA,0BAAyD,CAACC,QAAAA,GAAAA;IAC9D,MAAMC,KAAAA,GAAQC,KAAKC,GAAG,EAAA;AAEtB,IAAA,OAAOC,UAAAA,CAAW,IAAA;QAChBJ,QAAAA,CAAS;YACPK,UAAAA,EAAY,KAAA;AACZC,YAAAA,aAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOC,KAAKC,GAAG,CAAC,CAAA,EAAGN,IAAAA,CAAKC,GAAG,EAAA,GAAKF,KAAAA,CAAAA;AAClC,YAAA;AACF,SAAA,CAAA;IACF,CAAA,EAAG,CAAA,CAAA;AACL,CAAA;AAEA,MAAMQ,oBAAAA,GACJ,OAAOC,mBAAAA,KAAwB,WAAA,GAAcX,uBAAAA,GAA0BW;AAEzE;;qGAGA,MAAMC,yBAAuD,CAACC,MAAAA,GAAAA;AAC5D,IAAA,OAAOC,YAAAA,CAAaD,MAAAA,CAAAA;AACtB,CAAA;AAEA,MAAME,mBAAAA,GACJ,OAAOC,kBAAAA,KAAuB,WAAA,GAAcJ,sBAAAA,GAAyBI;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"strings.js","sources":["../../../../../admin/src/utils/strings.ts"],"sourcesContent":["const capitalise = (str: string): string => str.charAt(0).toUpperCase() + str.slice(1);\n\nfunction getByteSize(value: string) {\n return new TextEncoder().encode(value).length;\n}\n\nexport { capitalise, getByteSize };\n"],"names":["capitalise","str","charAt","toUpperCase","slice","getByteSize","value","TextEncoder","encode","length"],"mappings":";;AAAMA,MAAAA,UAAAA,GAAa,CAACC,GAAAA,GAAwBA,GAAIC,CAAAA,MAAM,CAAC,CAAA,CAAA,CAAGC,WAAW,EAAA,GAAKF,GAAIG,CAAAA,KAAK,CAAC,CAAA;AAEpF,SAASC,YAAYC,KAAa,EAAA;AAChC,IAAA,OAAO,IAAIC,WAAAA,EAAAA,CAAcC,MAAM,CAACF,OAAOG,MAAM;AAC/C;;;;;"}
1
+ {"version":3,"file":"strings.js","sources":["../../../../../admin/src/utils/strings.ts"],"sourcesContent":["const capitalise = (str: string): string => str.charAt(0).toUpperCase() + str.slice(1);\n\nfunction getByteSize(value: string) {\n return new TextEncoder().encode(value).length;\n}\n\nexport { capitalise, getByteSize };\n"],"names":["capitalise","str","charAt","toUpperCase","slice","getByteSize","value","TextEncoder","encode","length"],"mappings":";;AAAA,MAAMA,UAAAA,GAAa,CAACC,GAAAA,GAAwBA,GAAAA,CAAIC,MAAM,CAAC,CAAA,CAAA,CAAGC,WAAW,EAAA,GAAKF,GAAAA,CAAIG,KAAK,CAAC,CAAA;AAEpF,SAASC,YAAYC,KAAa,EAAA;AAChC,IAAA,OAAO,IAAIC,WAAAA,EAAAA,CAAcC,MAAM,CAACF,OAAOG,MAAM;AAC/C;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"strings.mjs","sources":["../../../../../admin/src/utils/strings.ts"],"sourcesContent":["const capitalise = (str: string): string => str.charAt(0).toUpperCase() + str.slice(1);\n\nfunction getByteSize(value: string) {\n return new TextEncoder().encode(value).length;\n}\n\nexport { capitalise, getByteSize };\n"],"names":["capitalise","str","charAt","toUpperCase","slice","getByteSize","value","TextEncoder","encode","length"],"mappings":"AAAMA,MAAAA,UAAAA,GAAa,CAACC,GAAAA,GAAwBA,GAAIC,CAAAA,MAAM,CAAC,CAAA,CAAA,CAAGC,WAAW,EAAA,GAAKF,GAAIG,CAAAA,KAAK,CAAC,CAAA;AAEpF,SAASC,YAAYC,KAAa,EAAA;AAChC,IAAA,OAAO,IAAIC,WAAAA,EAAAA,CAAcC,MAAM,CAACF,OAAOG,MAAM;AAC/C;;;;"}
1
+ {"version":3,"file":"strings.mjs","sources":["../../../../../admin/src/utils/strings.ts"],"sourcesContent":["const capitalise = (str: string): string => str.charAt(0).toUpperCase() + str.slice(1);\n\nfunction getByteSize(value: string) {\n return new TextEncoder().encode(value).length;\n}\n\nexport { capitalise, getByteSize };\n"],"names":["capitalise","str","charAt","toUpperCase","slice","getByteSize","value","TextEncoder","encode","length"],"mappings":"AAAA,MAAMA,UAAAA,GAAa,CAACC,GAAAA,GAAwBA,GAAAA,CAAIC,MAAM,CAAC,CAAA,CAAA,CAAGC,WAAW,EAAA,GAAKF,GAAAA,CAAIG,KAAK,CAAC,CAAA;AAEpF,SAASC,YAAYC,KAAa,EAAA;AAChC,IAAA,OAAO,IAAIC,WAAAA,EAAAA,CAAcC,MAAM,CAACF,OAAOG,MAAM;AAC/C;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"translatedErrors.js","sources":["../../../../../admin/src/utils/translatedErrors.ts"],"sourcesContent":["/**\n * Object containing error messages for input validations.\n * @property {Object} email - Error message for invalid email.\n * @property {string} email.id - Identifier for the error message.\n * @property {string} email.defaultMessage - Default error message for invalid email.\n * @property {Object} json - Error message for invalid JSON format.\n * @property {string} json.id - Identifier for the error message.\n * @property {string} json.defaultMessage - Default error message for invalid JSON format.\n * @property {Object} lowercase - Error message for non-lowercase string.\n * @property {string} lowercase.id - Identifier for the error message.\n * @property {string} lowercase.defaultMessage - Default error message for non-lowercase string.\n * @property {Object} max - Error message for value exceeding maximum.\n * @property {string} max.id - Identifier for the error message.\n * @property {string} max.defaultMessage - Default error message for value exceeding maximum.\n * @property {Object} maxLength - Error message for string length exceeding maximum.\n * @property {string} maxLength.id - Identifier for the error message.\n * @property {string} maxLength.defaultMessage - Default error message for string length exceeding maximum.\n * @property {Object} min - Error message for value less than minimum.\n * @property {string} min.id - Identifier for the error message.\n * @property {string} min.defaultMessage - Default error message for value less than minimum.\n * @property {Object} minLength - Error message for string length less than minimum.\n * @property {string} minLength.id - Identifier for the error message.\n * @property {string} minLength.defaultMessage - Default error message for string length less than minimum.\n * @property {Object} regex - Error message for value not matching regex pattern.\n * @property {string} regex.id - Identifier for the error message.\n * @property {string} regex.defaultMessage - Default error message for value not matching regex pattern.\n * @property {Object} required - Error message for required value.\n * @property {string} required.id - Identifier for the error message.\n * @property {string} required.defaultMessage - Default error message for required value.\n * @property {Object} string - Error message for non-string value.\n * @property {string} string.id - Identifier for the error message.\n * @property {string} string.defaultMessage - Default error message for non-string value.\n * @property {Object} unique - Error message for non-unique value.\n * @property {string} unique.id - Identifier for the error message.\n * @property {string} unique.defaultMessage - Default error message for non-unique value.\n * @property {Object} integer - Error message for non-integer value.\n * @property {string} integer.id - Identifier for the error message.\n * @property {string} integer.defaultMessage - Default error message for non-integer value.\n */\n\nconst errorsTrads = {\n email: {\n id: 'components.Input.error.validation.email',\n defaultMessage: 'This is not a valid email.',\n },\n json: {\n id: 'components.Input.error.validation.json',\n defaultMessage: \"This doesn't match the JSON format\",\n },\n lowercase: {\n id: 'components.Input.error.validation.lowercase',\n defaultMessage: 'The value must be a lowercase string',\n },\n max: {\n id: 'components.Input.error.validation.max',\n defaultMessage: 'The value is too high (max: {max}).',\n },\n maxLength: {\n id: 'components.Input.error.validation.maxLength',\n defaultMessage: 'The value is too long (max: {max}).',\n },\n min: {\n id: 'components.Input.error.validation.min',\n defaultMessage: 'The value is too low (min: {min}).',\n },\n minLength: {\n id: 'components.Input.error.validation.minLength',\n defaultMessage: 'The value is too short (min: {min}).',\n },\n regex: {\n id: 'components.Input.error.validation.regex',\n defaultMessage: 'The value does not match the regex.',\n },\n required: {\n id: 'components.Input.error.validation.required',\n defaultMessage: 'This value is required.',\n },\n string: {\n id: 'components.Input.error.validation.string',\n defaultMessage: 'This is not a valid string.',\n },\n unique: {\n id: 'components.Input.error.validation.unique',\n defaultMessage: 'This value is already used.',\n },\n integer: {\n id: 'component.Input.error.validation.integer',\n defaultMessage: 'The value must be an integer',\n },\n} as const;\n\nexport { errorsTrads as translatedErrors };\n"],"names":["errorsTrads","email","id","defaultMessage","json","lowercase","max","maxLength","min","minLength","regex","required","string","unique","integer"],"mappings":";;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCC,UAEKA,WAAc,GAAA;IAClBC,KAAO,EAAA;QACLC,EAAI,EAAA,yCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAC,IAAM,EAAA;QACJF,EAAI,EAAA,wCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAE,SAAW,EAAA;QACTH,EAAI,EAAA,6CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAG,GAAK,EAAA;QACHJ,EAAI,EAAA,uCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAI,SAAW,EAAA;QACTL,EAAI,EAAA,6CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAK,GAAK,EAAA;QACHN,EAAI,EAAA,uCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAM,SAAW,EAAA;QACTP,EAAI,EAAA,6CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAO,KAAO,EAAA;QACLR,EAAI,EAAA,yCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAQ,QAAU,EAAA;QACRT,EAAI,EAAA,4CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAS,MAAQ,EAAA;QACNV,EAAI,EAAA,0CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAU,MAAQ,EAAA;QACNX,EAAI,EAAA,0CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAW,OAAS,EAAA;QACPZ,EAAI,EAAA,0CAAA;QACJC,cAAgB,EAAA;AAClB;AACF;;;;"}
1
+ {"version":3,"file":"translatedErrors.js","sources":["../../../../../admin/src/utils/translatedErrors.ts"],"sourcesContent":["/**\n * Object containing error messages for input validations.\n * @property {Object} email - Error message for invalid email.\n * @property {string} email.id - Identifier for the error message.\n * @property {string} email.defaultMessage - Default error message for invalid email.\n * @property {Object} json - Error message for invalid JSON format.\n * @property {string} json.id - Identifier for the error message.\n * @property {string} json.defaultMessage - Default error message for invalid JSON format.\n * @property {Object} lowercase - Error message for non-lowercase string.\n * @property {string} lowercase.id - Identifier for the error message.\n * @property {string} lowercase.defaultMessage - Default error message for non-lowercase string.\n * @property {Object} max - Error message for value exceeding maximum.\n * @property {string} max.id - Identifier for the error message.\n * @property {string} max.defaultMessage - Default error message for value exceeding maximum.\n * @property {Object} maxLength - Error message for string length exceeding maximum.\n * @property {string} maxLength.id - Identifier for the error message.\n * @property {string} maxLength.defaultMessage - Default error message for string length exceeding maximum.\n * @property {Object} min - Error message for value less than minimum.\n * @property {string} min.id - Identifier for the error message.\n * @property {string} min.defaultMessage - Default error message for value less than minimum.\n * @property {Object} minLength - Error message for string length less than minimum.\n * @property {string} minLength.id - Identifier for the error message.\n * @property {string} minLength.defaultMessage - Default error message for string length less than minimum.\n * @property {Object} regex - Error message for value not matching regex pattern.\n * @property {string} regex.id - Identifier for the error message.\n * @property {string} regex.defaultMessage - Default error message for value not matching regex pattern.\n * @property {Object} required - Error message for required value.\n * @property {string} required.id - Identifier for the error message.\n * @property {string} required.defaultMessage - Default error message for required value.\n * @property {Object} string - Error message for non-string value.\n * @property {string} string.id - Identifier for the error message.\n * @property {string} string.defaultMessage - Default error message for non-string value.\n * @property {Object} unique - Error message for non-unique value.\n * @property {string} unique.id - Identifier for the error message.\n * @property {string} unique.defaultMessage - Default error message for non-unique value.\n * @property {Object} integer - Error message for non-integer value.\n * @property {string} integer.id - Identifier for the error message.\n * @property {string} integer.defaultMessage - Default error message for non-integer value.\n */\n\nconst errorsTrads = {\n email: {\n id: 'components.Input.error.validation.email',\n defaultMessage: 'This is not a valid email.',\n },\n json: {\n id: 'components.Input.error.validation.json',\n defaultMessage: \"This doesn't match the JSON format\",\n },\n lowercase: {\n id: 'components.Input.error.validation.lowercase',\n defaultMessage: 'The value must be a lowercase string',\n },\n max: {\n id: 'components.Input.error.validation.max',\n defaultMessage: 'The value is too high (max: {max}).',\n },\n maxLength: {\n id: 'components.Input.error.validation.maxLength',\n defaultMessage: 'The value is too long (max: {max}).',\n },\n min: {\n id: 'components.Input.error.validation.min',\n defaultMessage: 'The value is too low (min: {min}).',\n },\n minLength: {\n id: 'components.Input.error.validation.minLength',\n defaultMessage: 'The value is too short (min: {min}).',\n },\n regex: {\n id: 'components.Input.error.validation.regex',\n defaultMessage: 'The value does not match the regex.',\n },\n required: {\n id: 'components.Input.error.validation.required',\n defaultMessage: 'This value is required.',\n },\n string: {\n id: 'components.Input.error.validation.string',\n defaultMessage: 'This is not a valid string.',\n },\n unique: {\n id: 'components.Input.error.validation.unique',\n defaultMessage: 'This value is already used.',\n },\n integer: {\n id: 'component.Input.error.validation.integer',\n defaultMessage: 'The value must be an integer',\n },\n} as const;\n\nexport { errorsTrads as translatedErrors };\n"],"names":["errorsTrads","email","id","defaultMessage","json","lowercase","max","maxLength","min","minLength","regex","required","string","unique","integer"],"mappings":";;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCC,UAEKA,WAAAA,GAAc;IAClBC,KAAAA,EAAO;QACLC,EAAAA,EAAI,yCAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAC,IAAAA,EAAM;QACJF,EAAAA,EAAI,wCAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAE,SAAAA,EAAW;QACTH,EAAAA,EAAI,6CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAG,GAAAA,EAAK;QACHJ,EAAAA,EAAI,uCAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAI,SAAAA,EAAW;QACTL,EAAAA,EAAI,6CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAK,GAAAA,EAAK;QACHN,EAAAA,EAAI,uCAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAM,SAAAA,EAAW;QACTP,EAAAA,EAAI,6CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAO,KAAAA,EAAO;QACLR,EAAAA,EAAI,yCAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAQ,QAAAA,EAAU;QACRT,EAAAA,EAAI,4CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAS,MAAAA,EAAQ;QACNV,EAAAA,EAAI,0CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAU,MAAAA,EAAQ;QACNX,EAAAA,EAAI,0CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAW,OAAAA,EAAS;QACPZ,EAAAA,EAAI,0CAAA;QACJC,cAAAA,EAAgB;AAClB;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"translatedErrors.mjs","sources":["../../../../../admin/src/utils/translatedErrors.ts"],"sourcesContent":["/**\n * Object containing error messages for input validations.\n * @property {Object} email - Error message for invalid email.\n * @property {string} email.id - Identifier for the error message.\n * @property {string} email.defaultMessage - Default error message for invalid email.\n * @property {Object} json - Error message for invalid JSON format.\n * @property {string} json.id - Identifier for the error message.\n * @property {string} json.defaultMessage - Default error message for invalid JSON format.\n * @property {Object} lowercase - Error message for non-lowercase string.\n * @property {string} lowercase.id - Identifier for the error message.\n * @property {string} lowercase.defaultMessage - Default error message for non-lowercase string.\n * @property {Object} max - Error message for value exceeding maximum.\n * @property {string} max.id - Identifier for the error message.\n * @property {string} max.defaultMessage - Default error message for value exceeding maximum.\n * @property {Object} maxLength - Error message for string length exceeding maximum.\n * @property {string} maxLength.id - Identifier for the error message.\n * @property {string} maxLength.defaultMessage - Default error message for string length exceeding maximum.\n * @property {Object} min - Error message for value less than minimum.\n * @property {string} min.id - Identifier for the error message.\n * @property {string} min.defaultMessage - Default error message for value less than minimum.\n * @property {Object} minLength - Error message for string length less than minimum.\n * @property {string} minLength.id - Identifier for the error message.\n * @property {string} minLength.defaultMessage - Default error message for string length less than minimum.\n * @property {Object} regex - Error message for value not matching regex pattern.\n * @property {string} regex.id - Identifier for the error message.\n * @property {string} regex.defaultMessage - Default error message for value not matching regex pattern.\n * @property {Object} required - Error message for required value.\n * @property {string} required.id - Identifier for the error message.\n * @property {string} required.defaultMessage - Default error message for required value.\n * @property {Object} string - Error message for non-string value.\n * @property {string} string.id - Identifier for the error message.\n * @property {string} string.defaultMessage - Default error message for non-string value.\n * @property {Object} unique - Error message for non-unique value.\n * @property {string} unique.id - Identifier for the error message.\n * @property {string} unique.defaultMessage - Default error message for non-unique value.\n * @property {Object} integer - Error message for non-integer value.\n * @property {string} integer.id - Identifier for the error message.\n * @property {string} integer.defaultMessage - Default error message for non-integer value.\n */\n\nconst errorsTrads = {\n email: {\n id: 'components.Input.error.validation.email',\n defaultMessage: 'This is not a valid email.',\n },\n json: {\n id: 'components.Input.error.validation.json',\n defaultMessage: \"This doesn't match the JSON format\",\n },\n lowercase: {\n id: 'components.Input.error.validation.lowercase',\n defaultMessage: 'The value must be a lowercase string',\n },\n max: {\n id: 'components.Input.error.validation.max',\n defaultMessage: 'The value is too high (max: {max}).',\n },\n maxLength: {\n id: 'components.Input.error.validation.maxLength',\n defaultMessage: 'The value is too long (max: {max}).',\n },\n min: {\n id: 'components.Input.error.validation.min',\n defaultMessage: 'The value is too low (min: {min}).',\n },\n minLength: {\n id: 'components.Input.error.validation.minLength',\n defaultMessage: 'The value is too short (min: {min}).',\n },\n regex: {\n id: 'components.Input.error.validation.regex',\n defaultMessage: 'The value does not match the regex.',\n },\n required: {\n id: 'components.Input.error.validation.required',\n defaultMessage: 'This value is required.',\n },\n string: {\n id: 'components.Input.error.validation.string',\n defaultMessage: 'This is not a valid string.',\n },\n unique: {\n id: 'components.Input.error.validation.unique',\n defaultMessage: 'This value is already used.',\n },\n integer: {\n id: 'component.Input.error.validation.integer',\n defaultMessage: 'The value must be an integer',\n },\n} as const;\n\nexport { errorsTrads as translatedErrors };\n"],"names":["errorsTrads","email","id","defaultMessage","json","lowercase","max","maxLength","min","minLength","regex","required","string","unique","integer"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCC,UAEKA,WAAc,GAAA;IAClBC,KAAO,EAAA;QACLC,EAAI,EAAA,yCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAC,IAAM,EAAA;QACJF,EAAI,EAAA,wCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAE,SAAW,EAAA;QACTH,EAAI,EAAA,6CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAG,GAAK,EAAA;QACHJ,EAAI,EAAA,uCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAI,SAAW,EAAA;QACTL,EAAI,EAAA,6CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAK,GAAK,EAAA;QACHN,EAAI,EAAA,uCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAM,SAAW,EAAA;QACTP,EAAI,EAAA,6CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAO,KAAO,EAAA;QACLR,EAAI,EAAA,yCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAQ,QAAU,EAAA;QACRT,EAAI,EAAA,4CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAS,MAAQ,EAAA;QACNV,EAAI,EAAA,0CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAU,MAAQ,EAAA;QACNX,EAAI,EAAA,0CAAA;QACJC,cAAgB,EAAA;AAClB,KAAA;IACAW,OAAS,EAAA;QACPZ,EAAI,EAAA,0CAAA;QACJC,cAAgB,EAAA;AAClB;AACF;;;;"}
1
+ {"version":3,"file":"translatedErrors.mjs","sources":["../../../../../admin/src/utils/translatedErrors.ts"],"sourcesContent":["/**\n * Object containing error messages for input validations.\n * @property {Object} email - Error message for invalid email.\n * @property {string} email.id - Identifier for the error message.\n * @property {string} email.defaultMessage - Default error message for invalid email.\n * @property {Object} json - Error message for invalid JSON format.\n * @property {string} json.id - Identifier for the error message.\n * @property {string} json.defaultMessage - Default error message for invalid JSON format.\n * @property {Object} lowercase - Error message for non-lowercase string.\n * @property {string} lowercase.id - Identifier for the error message.\n * @property {string} lowercase.defaultMessage - Default error message for non-lowercase string.\n * @property {Object} max - Error message for value exceeding maximum.\n * @property {string} max.id - Identifier for the error message.\n * @property {string} max.defaultMessage - Default error message for value exceeding maximum.\n * @property {Object} maxLength - Error message for string length exceeding maximum.\n * @property {string} maxLength.id - Identifier for the error message.\n * @property {string} maxLength.defaultMessage - Default error message for string length exceeding maximum.\n * @property {Object} min - Error message for value less than minimum.\n * @property {string} min.id - Identifier for the error message.\n * @property {string} min.defaultMessage - Default error message for value less than minimum.\n * @property {Object} minLength - Error message for string length less than minimum.\n * @property {string} minLength.id - Identifier for the error message.\n * @property {string} minLength.defaultMessage - Default error message for string length less than minimum.\n * @property {Object} regex - Error message for value not matching regex pattern.\n * @property {string} regex.id - Identifier for the error message.\n * @property {string} regex.defaultMessage - Default error message for value not matching regex pattern.\n * @property {Object} required - Error message for required value.\n * @property {string} required.id - Identifier for the error message.\n * @property {string} required.defaultMessage - Default error message for required value.\n * @property {Object} string - Error message for non-string value.\n * @property {string} string.id - Identifier for the error message.\n * @property {string} string.defaultMessage - Default error message for non-string value.\n * @property {Object} unique - Error message for non-unique value.\n * @property {string} unique.id - Identifier for the error message.\n * @property {string} unique.defaultMessage - Default error message for non-unique value.\n * @property {Object} integer - Error message for non-integer value.\n * @property {string} integer.id - Identifier for the error message.\n * @property {string} integer.defaultMessage - Default error message for non-integer value.\n */\n\nconst errorsTrads = {\n email: {\n id: 'components.Input.error.validation.email',\n defaultMessage: 'This is not a valid email.',\n },\n json: {\n id: 'components.Input.error.validation.json',\n defaultMessage: \"This doesn't match the JSON format\",\n },\n lowercase: {\n id: 'components.Input.error.validation.lowercase',\n defaultMessage: 'The value must be a lowercase string',\n },\n max: {\n id: 'components.Input.error.validation.max',\n defaultMessage: 'The value is too high (max: {max}).',\n },\n maxLength: {\n id: 'components.Input.error.validation.maxLength',\n defaultMessage: 'The value is too long (max: {max}).',\n },\n min: {\n id: 'components.Input.error.validation.min',\n defaultMessage: 'The value is too low (min: {min}).',\n },\n minLength: {\n id: 'components.Input.error.validation.minLength',\n defaultMessage: 'The value is too short (min: {min}).',\n },\n regex: {\n id: 'components.Input.error.validation.regex',\n defaultMessage: 'The value does not match the regex.',\n },\n required: {\n id: 'components.Input.error.validation.required',\n defaultMessage: 'This value is required.',\n },\n string: {\n id: 'components.Input.error.validation.string',\n defaultMessage: 'This is not a valid string.',\n },\n unique: {\n id: 'components.Input.error.validation.unique',\n defaultMessage: 'This value is already used.',\n },\n integer: {\n id: 'component.Input.error.validation.integer',\n defaultMessage: 'The value must be an integer',\n },\n} as const;\n\nexport { errorsTrads as translatedErrors };\n"],"names":["errorsTrads","email","id","defaultMessage","json","lowercase","max","maxLength","min","minLength","regex","required","string","unique","integer"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCC,UAEKA,WAAAA,GAAc;IAClBC,KAAAA,EAAO;QACLC,EAAAA,EAAI,yCAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAC,IAAAA,EAAM;QACJF,EAAAA,EAAI,wCAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAE,SAAAA,EAAW;QACTH,EAAAA,EAAI,6CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAG,GAAAA,EAAK;QACHJ,EAAAA,EAAI,uCAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAI,SAAAA,EAAW;QACTL,EAAAA,EAAI,6CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAK,GAAAA,EAAK;QACHN,EAAAA,EAAI,uCAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAM,SAAAA,EAAW;QACTP,EAAAA,EAAI,6CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAO,KAAAA,EAAO;QACLR,EAAAA,EAAI,yCAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAQ,QAAAA,EAAU;QACRT,EAAAA,EAAI,4CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAS,MAAAA,EAAQ;QACNV,EAAAA,EAAI,0CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAU,MAAAA,EAAQ;QACNX,EAAAA,EAAI,0CAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;IACAW,OAAAA,EAAS;QACPZ,EAAAA,EAAI,0CAAA;QACJC,cAAAA,EAAgB;AAClB;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"urls.js","sources":["../../../../../admin/src/utils/urls.ts"],"sourcesContent":["import trimEnd from 'lodash/trimEnd';\n\nconst prefixFileUrlWithBackendUrl = (fileURL?: string): string | undefined => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n\n/**\n * @description Creates an absolute URL, if there is no URL or it\n * is relative, we use the `window.location.origin` as a fallback.\n * IF it's an absolute URL, we return it as is.\n */\nconst createAbsoluteUrl = (url?: string): string => {\n if (!url) {\n return window.location.origin;\n }\n if (url.startsWith('/')) {\n /**\n * This will also manage protocol relative URLs which is fine because\n * as we can see from the test, we still get the expected result.\n */\n return trimEnd(new URL(url, window.location.origin).toString(), '/');\n } else {\n return url;\n }\n};\n\nexport { createAbsoluteUrl, prefixFileUrlWithBackendUrl };\n"],"names":["prefixFileUrlWithBackendUrl","fileURL","startsWith","window","strapi","backendURL","createAbsoluteUrl","url","location","origin","trimEnd","URL","toString"],"mappings":";;;;AAEA,MAAMA,8BAA8B,CAACC,OAAAA,GAAAA;AACnC,IAAA,OAAO,CAAC,CAACA,OAAWA,IAAAA,OAAAA,CAAQC,UAAU,CAAC,GAAA,CAAA,GAAO,CAAGC,EAAAA,MAAAA,CAAOC,MAAM,CAACC,UAAU,CAAA,EAAGJ,SAAS,GAAGA,OAAAA;AAC1F;AAEA;;;;IAKA,MAAMK,oBAAoB,CAACC,GAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,GAAK,EAAA;QACR,OAAOJ,MAAAA,CAAOK,QAAQ,CAACC,MAAM;AAC/B;IACA,IAAIF,GAAAA,CAAIL,UAAU,CAAC,GAAM,CAAA,EAAA;AACvB;;;QAIA,OAAOQ,OAAQ,CAAA,IAAIC,GAAIJ,CAAAA,GAAAA,EAAKJ,MAAOK,CAAAA,QAAQ,CAACC,MAAM,CAAEG,CAAAA,QAAQ,EAAI,EAAA,GAAA,CAAA;KAC3D,MAAA;QACL,OAAOL,GAAAA;AACT;AACF;;;;;"}
1
+ {"version":3,"file":"urls.js","sources":["../../../../../admin/src/utils/urls.ts"],"sourcesContent":["import trimEnd from 'lodash/trimEnd';\n\nconst prefixFileUrlWithBackendUrl = (fileURL?: string): string | undefined => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n\n/**\n * @description Creates an absolute URL, if there is no URL or it\n * is relative, we use the `window.location.origin` as a fallback.\n * IF it's an absolute URL, we return it as is.\n */\nconst createAbsoluteUrl = (url?: string): string => {\n if (!url) {\n return window.location.origin;\n }\n if (url.startsWith('/')) {\n /**\n * This will also manage protocol relative URLs which is fine because\n * as we can see from the test, we still get the expected result.\n */\n return trimEnd(new URL(url, window.location.origin).toString(), '/');\n } else {\n return url;\n }\n};\n\nexport { createAbsoluteUrl, prefixFileUrlWithBackendUrl };\n"],"names":["prefixFileUrlWithBackendUrl","fileURL","startsWith","window","strapi","backendURL","createAbsoluteUrl","url","location","origin","trimEnd","URL","toString"],"mappings":";;;;AAEA,MAAMA,8BAA8B,CAACC,OAAAA,GAAAA;AACnC,IAAA,OAAO,CAAC,CAACA,OAAAA,IAAWA,OAAAA,CAAQC,UAAU,CAAC,GAAA,CAAA,GAAO,CAAA,EAAGC,MAAAA,CAAOC,MAAM,CAACC,UAAU,CAAA,EAAGJ,SAAS,GAAGA,OAAAA;AAC1F;AAEA;;;;IAKA,MAAMK,oBAAoB,CAACC,GAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,GAAAA,EAAK;QACR,OAAOJ,MAAAA,CAAOK,QAAQ,CAACC,MAAM;AAC/B,IAAA;IACA,IAAIF,GAAAA,CAAIL,UAAU,CAAC,GAAA,CAAA,EAAM;AACvB;;;QAIA,OAAOQ,OAAAA,CAAQ,IAAIC,GAAAA,CAAIJ,GAAAA,EAAKJ,MAAAA,CAAOK,QAAQ,CAACC,MAAM,CAAA,CAAEG,QAAQ,EAAA,EAAI,GAAA,CAAA;IAClE,CAAA,MAAO;QACL,OAAOL,GAAAA;AACT,IAAA;AACF;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"urls.mjs","sources":["../../../../../admin/src/utils/urls.ts"],"sourcesContent":["import trimEnd from 'lodash/trimEnd';\n\nconst prefixFileUrlWithBackendUrl = (fileURL?: string): string | undefined => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n\n/**\n * @description Creates an absolute URL, if there is no URL or it\n * is relative, we use the `window.location.origin` as a fallback.\n * IF it's an absolute URL, we return it as is.\n */\nconst createAbsoluteUrl = (url?: string): string => {\n if (!url) {\n return window.location.origin;\n }\n if (url.startsWith('/')) {\n /**\n * This will also manage protocol relative URLs which is fine because\n * as we can see from the test, we still get the expected result.\n */\n return trimEnd(new URL(url, window.location.origin).toString(), '/');\n } else {\n return url;\n }\n};\n\nexport { createAbsoluteUrl, prefixFileUrlWithBackendUrl };\n"],"names":["prefixFileUrlWithBackendUrl","fileURL","startsWith","window","strapi","backendURL","createAbsoluteUrl","url","location","origin","trimEnd","URL","toString"],"mappings":";;AAEA,MAAMA,8BAA8B,CAACC,OAAAA,GAAAA;AACnC,IAAA,OAAO,CAAC,CAACA,OAAWA,IAAAA,OAAAA,CAAQC,UAAU,CAAC,GAAA,CAAA,GAAO,CAAGC,EAAAA,MAAAA,CAAOC,MAAM,CAACC,UAAU,CAAA,EAAGJ,SAAS,GAAGA,OAAAA;AAC1F;AAEA;;;;IAKA,MAAMK,oBAAoB,CAACC,GAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,GAAK,EAAA;QACR,OAAOJ,MAAAA,CAAOK,QAAQ,CAACC,MAAM;AAC/B;IACA,IAAIF,GAAAA,CAAIL,UAAU,CAAC,GAAM,CAAA,EAAA;AACvB;;;QAIA,OAAOQ,OAAQ,CAAA,IAAIC,GAAIJ,CAAAA,GAAAA,EAAKJ,MAAOK,CAAAA,QAAQ,CAACC,MAAM,CAAEG,CAAAA,QAAQ,EAAI,EAAA,GAAA,CAAA;KAC3D,MAAA;QACL,OAAOL,GAAAA;AACT;AACF;;;;"}
1
+ {"version":3,"file":"urls.mjs","sources":["../../../../../admin/src/utils/urls.ts"],"sourcesContent":["import trimEnd from 'lodash/trimEnd';\n\nconst prefixFileUrlWithBackendUrl = (fileURL?: string): string | undefined => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n\n/**\n * @description Creates an absolute URL, if there is no URL or it\n * is relative, we use the `window.location.origin` as a fallback.\n * IF it's an absolute URL, we return it as is.\n */\nconst createAbsoluteUrl = (url?: string): string => {\n if (!url) {\n return window.location.origin;\n }\n if (url.startsWith('/')) {\n /**\n * This will also manage protocol relative URLs which is fine because\n * as we can see from the test, we still get the expected result.\n */\n return trimEnd(new URL(url, window.location.origin).toString(), '/');\n } else {\n return url;\n }\n};\n\nexport { createAbsoluteUrl, prefixFileUrlWithBackendUrl };\n"],"names":["prefixFileUrlWithBackendUrl","fileURL","startsWith","window","strapi","backendURL","createAbsoluteUrl","url","location","origin","trimEnd","URL","toString"],"mappings":";;AAEA,MAAMA,8BAA8B,CAACC,OAAAA,GAAAA;AACnC,IAAA,OAAO,CAAC,CAACA,OAAAA,IAAWA,OAAAA,CAAQC,UAAU,CAAC,GAAA,CAAA,GAAO,CAAA,EAAGC,MAAAA,CAAOC,MAAM,CAACC,UAAU,CAAA,EAAGJ,SAAS,GAAGA,OAAAA;AAC1F;AAEA;;;;IAKA,MAAMK,oBAAoB,CAACC,GAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,GAAAA,EAAK;QACR,OAAOJ,MAAAA,CAAOK,QAAQ,CAACC,MAAM;AAC/B,IAAA;IACA,IAAIF,GAAAA,CAAIL,UAAU,CAAC,GAAA,CAAA,EAAM;AACvB;;;QAIA,OAAOQ,OAAAA,CAAQ,IAAIC,GAAAA,CAAIJ,GAAAA,EAAKJ,MAAAA,CAAOK,QAAQ,CAACC,MAAM,CAAA,CAAEG,QAAQ,EAAA,EAAI,GAAA,CAAA;IAClE,CAAA,MAAO;QACL,OAAOL,GAAAA;AACT,IAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"users.js","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch (error) {\n return null;\n }\n};\n\nconst bufferToHex = (buffer: ArrayBuffer) => {\n return [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, '0')).join('');\n};\nconst digestMessage = async (message: string) => {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\n return bufferToHex(hashBuffer);\n};\n\nexport { getDisplayName, getInitials, hashAdminUserEmail };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim","getInitials","user","substring","split","map","name","join","toUpperCase","hashAdminUserEmail","payload","digestMessage","error","bufferToHex","buffer","Uint8Array","b","toString","padStart","message","msgUint8","TextEncoder","encode","hashBuffer","crypto","subtle","digest"],"mappings":";;AAEA;;;;AAMC,IACKA,MAAAA,cAAAA,GAAiB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAiB,GAAG,EAAE,GAAA;AAClF,IAAA,IAAID,QAAU,EAAA;QACZ,OAAOA,QAAAA;AACT;;AAGA,IAAA,IAAIF,SAAW,EAAA;AACb,QAAA,OAAO,GAAGA,SAAU,CAAA,CAAC,EAAEC,QAAY,IAAA,EAAA,CAAA,CAAI,CAACG,IAAI,EAAA;AAC9C;AAEA,IAAA,OAAOD,KAAS,IAAA,EAAA;AAClB;AAEA;;;;AAMC,IACKE,MAAAA,WAAAA,GAAc,CAACC,IAAAA,GAAsB,EAAE,GAAA;AAC3C,IAAA,OAAOA,MAAMN,SAAaM,IAAAA,IAAAA,EAAML,WAC5B,CAAGK,EAAAA,IAAAA,CAAKN,SAAS,CAACO,SAAS,CAAC,CAAA,EAAG,KAAKD,IAAKL,CAAAA,QAAQ,CAACM,SAAS,CAAC,GAAG,CAAI,CAAA,CAAA,CAAA,GACnER,cAAeO,CAAAA,IAAAA,CAAAA,CACZE,KAAK,CAAC,GAAA,CAAA,CACNC,GAAG,CAAC,CAACC,OAASA,IAAKH,CAAAA,SAAS,CAAC,CAAG,EAAA,CAAA,CAAA,CAAA,CAChCI,IAAI,CAAC,EAAA,CAAA,CACLJ,SAAS,CAAC,CAAA,EAAG,GACbK,WAAW,EAAA;AACpB;AAEA;;qGAIA,MAAMC,qBAAqB,OAAOC,OAAAA,GAAAA;AAChC,IAAA,IAAI,CAACA,OAAAA,IAAW,CAACA,OAAAA,CAAQX,KAAK,EAAE;QAC9B,OAAO,IAAA;AACT;IAEA,IAAI;QACF,OAAO,MAAMY,aAAcD,CAAAA,OAAAA,CAAQX,KAAK,CAAA;AAC1C,KAAA,CAAE,OAAOa,KAAO,EAAA;QACd,OAAO,IAAA;AACT;AACF;AAEA,MAAMC,cAAc,CAACC,MAAAA,GAAAA;IACnB,OAAO;AAAI,QAAA,GAAA,IAAIC,UAAWD,CAAAA,MAAAA;AAAQ,KAAA,CAACT,GAAG,CAAC,CAACW,CAAAA,GAAMA,CAAEC,CAAAA,QAAQ,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,CAAG,EAAA,GAAA,CAAA,CAAA,CAAMX,IAAI,CAAC,EAAA,CAAA;AACtF,CAAA;AACA,MAAMI,gBAAgB,OAAOQ,OAAAA,GAAAA;AAC3B,IAAA,MAAMC,QAAW,GAAA,IAAIC,WAAcC,EAAAA,CAAAA,MAAM,CAACH,OAAAA,CAAAA;AAC1C,IAAA,MAAMI,aAAa,MAAMC,MAAAA,CAAOC,MAAM,CAACC,MAAM,CAAC,SAAWN,EAAAA,QAAAA,CAAAA;AAEzD,IAAA,OAAOP,WAAYU,CAAAA,UAAAA,CAAAA;AACrB,CAAA;;;;;;"}
1
+ {"version":3,"file":"users.js","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch (error) {\n return null;\n }\n};\n\nconst bufferToHex = (buffer: ArrayBuffer) => {\n return [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, '0')).join('');\n};\nconst digestMessage = async (message: string) => {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\n return bufferToHex(hashBuffer);\n};\n\nexport { getDisplayName, getInitials, hashAdminUserEmail };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim","getInitials","user","substring","split","map","name","join","toUpperCase","hashAdminUserEmail","payload","digestMessage","error","bufferToHex","buffer","Uint8Array","b","toString","padStart","message","msgUint8","TextEncoder","encode","hashBuffer","crypto","subtle","digest"],"mappings":";;AAEA;;;;AAMC,IACD,MAAMA,cAAAA,GAAiB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAiB,GAAG,EAAE,GAAA;AAClF,IAAA,IAAID,QAAAA,EAAU;QACZ,OAAOA,QAAAA;AACT,IAAA;;AAGA,IAAA,IAAIF,SAAAA,EAAW;AACb,QAAA,OAAO,GAAGA,SAAAA,CAAU,CAAC,EAAEC,QAAAA,IAAY,EAAA,CAAA,CAAI,CAACG,IAAI,EAAA;AAC9C,IAAA;AAEA,IAAA,OAAOD,KAAAA,IAAS,EAAA;AAClB;AAEA;;;;AAMC,IACD,MAAME,WAAAA,GAAc,CAACC,IAAAA,GAAsB,EAAE,GAAA;AAC3C,IAAA,OAAOA,MAAMN,SAAAA,IAAaM,IAAAA,EAAML,WAC5B,CAAA,EAAGK,IAAAA,CAAKN,SAAS,CAACO,SAAS,CAAC,CAAA,EAAG,KAAKD,IAAAA,CAAKL,QAAQ,CAACM,SAAS,CAAC,GAAG,CAAA,CAAA,CAAA,CAAI,GACnER,cAAAA,CAAeO,IAAAA,CAAAA,CACZE,KAAK,CAAC,GAAA,CAAA,CACNC,GAAG,CAAC,CAACC,OAASA,IAAAA,CAAKH,SAAS,CAAC,CAAA,EAAG,CAAA,CAAA,CAAA,CAChCI,IAAI,CAAC,EAAA,CAAA,CACLJ,SAAS,CAAC,CAAA,EAAG,GACbK,WAAW,EAAA;AACpB;AAEA;;qGAIA,MAAMC,qBAAqB,OAAOC,OAAAA,GAAAA;AAChC,IAAA,IAAI,CAACA,OAAAA,IAAW,CAACA,OAAAA,CAAQX,KAAK,EAAE;QAC9B,OAAO,IAAA;AACT,IAAA;IAEA,IAAI;QACF,OAAO,MAAMY,aAAAA,CAAcD,OAAAA,CAAQX,KAAK,CAAA;AAC1C,IAAA,CAAA,CAAE,OAAOa,KAAAA,EAAO;QACd,OAAO,IAAA;AACT,IAAA;AACF;AAEA,MAAMC,cAAc,CAACC,MAAAA,GAAAA;IACnB,OAAO;AAAI,QAAA,GAAA,IAAIC,UAAAA,CAAWD,MAAAA;AAAQ,KAAA,CAACT,GAAG,CAAC,CAACW,CAAAA,GAAMA,CAAAA,CAAEC,QAAQ,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,CAAA,EAAG,GAAA,CAAA,CAAA,CAAMX,IAAI,CAAC,EAAA,CAAA;AACtF,CAAA;AACA,MAAMI,gBAAgB,OAAOQ,OAAAA,GAAAA;AAC3B,IAAA,MAAMC,QAAAA,GAAW,IAAIC,WAAAA,EAAAA,CAAcC,MAAM,CAACH,OAAAA,CAAAA;AAC1C,IAAA,MAAMI,aAAa,MAAMC,MAAAA,CAAOC,MAAM,CAACC,MAAM,CAAC,SAAA,EAAWN,QAAAA,CAAAA;AAEzD,IAAA,OAAOP,WAAAA,CAAYU,UAAAA,CAAAA;AACrB,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"users.mjs","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch (error) {\n return null;\n }\n};\n\nconst bufferToHex = (buffer: ArrayBuffer) => {\n return [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, '0')).join('');\n};\nconst digestMessage = async (message: string) => {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\n return bufferToHex(hashBuffer);\n};\n\nexport { getDisplayName, getInitials, hashAdminUserEmail };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim","getInitials","user","substring","split","map","name","join","toUpperCase","hashAdminUserEmail","payload","digestMessage","error","bufferToHex","buffer","Uint8Array","b","toString","padStart","message","msgUint8","TextEncoder","encode","hashBuffer","crypto","subtle","digest"],"mappings":"AAEA;;;;AAMC,IACKA,MAAAA,cAAAA,GAAiB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAiB,GAAG,EAAE,GAAA;AAClF,IAAA,IAAID,QAAU,EAAA;QACZ,OAAOA,QAAAA;AACT;;AAGA,IAAA,IAAIF,SAAW,EAAA;AACb,QAAA,OAAO,GAAGA,SAAU,CAAA,CAAC,EAAEC,QAAY,IAAA,EAAA,CAAA,CAAI,CAACG,IAAI,EAAA;AAC9C;AAEA,IAAA,OAAOD,KAAS,IAAA,EAAA;AAClB;AAEA;;;;AAMC,IACKE,MAAAA,WAAAA,GAAc,CAACC,IAAAA,GAAsB,EAAE,GAAA;AAC3C,IAAA,OAAOA,MAAMN,SAAaM,IAAAA,IAAAA,EAAML,WAC5B,CAAGK,EAAAA,IAAAA,CAAKN,SAAS,CAACO,SAAS,CAAC,CAAA,EAAG,KAAKD,IAAKL,CAAAA,QAAQ,CAACM,SAAS,CAAC,GAAG,CAAI,CAAA,CAAA,CAAA,GACnER,cAAeO,CAAAA,IAAAA,CAAAA,CACZE,KAAK,CAAC,GAAA,CAAA,CACNC,GAAG,CAAC,CAACC,OAASA,IAAKH,CAAAA,SAAS,CAAC,CAAG,EAAA,CAAA,CAAA,CAAA,CAChCI,IAAI,CAAC,EAAA,CAAA,CACLJ,SAAS,CAAC,CAAA,EAAG,GACbK,WAAW,EAAA;AACpB;AAEA;;qGAIA,MAAMC,qBAAqB,OAAOC,OAAAA,GAAAA;AAChC,IAAA,IAAI,CAACA,OAAAA,IAAW,CAACA,OAAAA,CAAQX,KAAK,EAAE;QAC9B,OAAO,IAAA;AACT;IAEA,IAAI;QACF,OAAO,MAAMY,aAAcD,CAAAA,OAAAA,CAAQX,KAAK,CAAA;AAC1C,KAAA,CAAE,OAAOa,KAAO,EAAA;QACd,OAAO,IAAA;AACT;AACF;AAEA,MAAMC,cAAc,CAACC,MAAAA,GAAAA;IACnB,OAAO;AAAI,QAAA,GAAA,IAAIC,UAAWD,CAAAA,MAAAA;AAAQ,KAAA,CAACT,GAAG,CAAC,CAACW,CAAAA,GAAMA,CAAEC,CAAAA,QAAQ,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,CAAG,EAAA,GAAA,CAAA,CAAA,CAAMX,IAAI,CAAC,EAAA,CAAA;AACtF,CAAA;AACA,MAAMI,gBAAgB,OAAOQ,OAAAA,GAAAA;AAC3B,IAAA,MAAMC,QAAW,GAAA,IAAIC,WAAcC,EAAAA,CAAAA,MAAM,CAACH,OAAAA,CAAAA;AAC1C,IAAA,MAAMI,aAAa,MAAMC,MAAAA,CAAOC,MAAM,CAACC,MAAM,CAAC,SAAWN,EAAAA,QAAAA,CAAAA;AAEzD,IAAA,OAAOP,WAAYU,CAAAA,UAAAA,CAAAA;AACrB,CAAA;;;;"}
1
+ {"version":3,"file":"users.mjs","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch (error) {\n return null;\n }\n};\n\nconst bufferToHex = (buffer: ArrayBuffer) => {\n return [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, '0')).join('');\n};\nconst digestMessage = async (message: string) => {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\n return bufferToHex(hashBuffer);\n};\n\nexport { getDisplayName, getInitials, hashAdminUserEmail };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim","getInitials","user","substring","split","map","name","join","toUpperCase","hashAdminUserEmail","payload","digestMessage","error","bufferToHex","buffer","Uint8Array","b","toString","padStart","message","msgUint8","TextEncoder","encode","hashBuffer","crypto","subtle","digest"],"mappings":"AAEA;;;;AAMC,IACD,MAAMA,cAAAA,GAAiB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAiB,GAAG,EAAE,GAAA;AAClF,IAAA,IAAID,QAAAA,EAAU;QACZ,OAAOA,QAAAA;AACT,IAAA;;AAGA,IAAA,IAAIF,SAAAA,EAAW;AACb,QAAA,OAAO,GAAGA,SAAAA,CAAU,CAAC,EAAEC,QAAAA,IAAY,EAAA,CAAA,CAAI,CAACG,IAAI,EAAA;AAC9C,IAAA;AAEA,IAAA,OAAOD,KAAAA,IAAS,EAAA;AAClB;AAEA;;;;AAMC,IACD,MAAME,WAAAA,GAAc,CAACC,IAAAA,GAAsB,EAAE,GAAA;AAC3C,IAAA,OAAOA,MAAMN,SAAAA,IAAaM,IAAAA,EAAML,WAC5B,CAAA,EAAGK,IAAAA,CAAKN,SAAS,CAACO,SAAS,CAAC,CAAA,EAAG,KAAKD,IAAAA,CAAKL,QAAQ,CAACM,SAAS,CAAC,GAAG,CAAA,CAAA,CAAA,CAAI,GACnER,cAAAA,CAAeO,IAAAA,CAAAA,CACZE,KAAK,CAAC,GAAA,CAAA,CACNC,GAAG,CAAC,CAACC,OAASA,IAAAA,CAAKH,SAAS,CAAC,CAAA,EAAG,CAAA,CAAA,CAAA,CAChCI,IAAI,CAAC,EAAA,CAAA,CACLJ,SAAS,CAAC,CAAA,EAAG,GACbK,WAAW,EAAA;AACpB;AAEA;;qGAIA,MAAMC,qBAAqB,OAAOC,OAAAA,GAAAA;AAChC,IAAA,IAAI,CAACA,OAAAA,IAAW,CAACA,OAAAA,CAAQX,KAAK,EAAE;QAC9B,OAAO,IAAA;AACT,IAAA;IAEA,IAAI;QACF,OAAO,MAAMY,aAAAA,CAAcD,OAAAA,CAAQX,KAAK,CAAA;AAC1C,IAAA,CAAA,CAAE,OAAOa,KAAAA,EAAO;QACd,OAAO,IAAA;AACT,IAAA;AACF;AAEA,MAAMC,cAAc,CAACC,MAAAA,GAAAA;IACnB,OAAO;AAAI,QAAA,GAAA,IAAIC,UAAAA,CAAWD,MAAAA;AAAQ,KAAA,CAACT,GAAG,CAAC,CAACW,CAAAA,GAAMA,CAAAA,CAAEC,QAAQ,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,CAAA,EAAG,GAAA,CAAA,CAAA,CAAMX,IAAI,CAAC,EAAA,CAAA;AACtF,CAAA;AACA,MAAMI,gBAAgB,OAAOQ,OAAAA,GAAAA;AAC3B,IAAA,MAAMC,QAAAA,GAAW,IAAIC,WAAAA,EAAAA,CAAcC,MAAM,CAACH,OAAAA,CAAAA;AAC1C,IAAA,MAAMI,aAAa,MAAMC,MAAAA,CAAOC,MAAM,CAACC,MAAM,CAAC,SAAA,EAAWN,QAAAA,CAAAA;AAEzD,IAAA,OAAOP,WAAAA,CAAYU,UAAAA,CAAAA;AACrB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"widgetLayout.js","sources":["../../../../../admin/src/utils/widgetLayout.ts"],"sourcesContent":["/**\n *\n * Comprehensive utilities for widget layout operations including sizing, positioning, and layout calculations.\n *\n * Constraints:\n * - Maximum 3 widgets per row (since minimum widget width is 4 columns)\n * - Widget widths are snapped to discrete values: 4 (1/3), 6 (1/2), 8 (2/3), 12 (3/3)\n */\n\nimport type { Homepage } from '../../../shared/contracts/homepage';\nimport type { WidgetWithUID } from '../core/apis/Widgets';\n\nexport const WIDGET_SIZING = {\n TOTAL_COLUMNS: 12,\n MIN_WIDGET_WIDTH: 4,\n DISCRETE_SIZES: [4, 6, 8, 12] as const,\n} as const;\n\nexport const WIDGET_DATA_ATTRIBUTES = {\n WIDGET_ID: 'data-strapi-widget-id',\n GRID_CONTAINER: 'data-strapi-grid-container',\n} as const;\n\nexport const getWidgetElement = (uid: string): HTMLElement | null => {\n return document.querySelector(`[${WIDGET_DATA_ATTRIBUTES.WIDGET_ID}=\"${uid}\"]`);\n};\n\nexport const getWidgetGridContainer = (): HTMLElement | null => {\n return document.querySelector(`[${WIDGET_DATA_ATTRIBUTES.GRID_CONTAINER}]`);\n};\n\nexport interface WidgetRow {\n widgets: WidgetWithUID[];\n totalWidth: number;\n startIndex: number;\n endIndex: number;\n}\n\n/**\n * Validates if a widget width is valid (within constraints)\n */\nexport const isValidWidgetWidth = (width: number): boolean => {\n return width >= WIDGET_SIZING.MIN_WIDGET_WIDTH && width <= WIDGET_SIZING.TOTAL_COLUMNS;\n};\n\n/**\n * Validates if a resize operation is allowed between two widgets\n */\nexport const isValidResizeOperation = (leftWidth: number, rightWidth: number): boolean => {\n // Check minimum size constraints\n if (!isValidWidgetWidth(leftWidth) || !isValidWidgetWidth(rightWidth)) {\n return false;\n }\n\n // Check if the total doesn't exceed row capacity\n if (leftWidth + rightWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Gets widget width with fallback to default value\n */\nexport const getWidgetWidth = (\n columnWidths: Record<string, number>,\n widgetId: string | undefined,\n defaultWidth: number = 6\n): number => {\n return widgetId ? columnWidths[widgetId] || defaultWidth : defaultWidth;\n};\n\n/**\n * Calculates the current row structure from widgets and their widths\n */\nexport const calculateWidgetRows = (\n widgets: WidgetWithUID[],\n columnWidths: Record<string, number>\n): WidgetRow[] => {\n const rows: WidgetRow[] = [];\n let currentRow: WidgetWithUID[] = [];\n let currentRowWidth = 0;\n let startIndex = 0;\n\n widgets.forEach((widget, index) => {\n const widgetWidth = getWidgetWidth(columnWidths, widget.uid);\n\n // If adding this widget would exceed 12 columns, start a new row\n if (currentRowWidth + widgetWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n if (currentRow.length > 0) {\n rows.push({\n widgets: currentRow,\n totalWidth: currentRowWidth,\n startIndex,\n endIndex: startIndex + currentRow.length - 1,\n });\n }\n currentRow = [widget];\n currentRowWidth = widgetWidth;\n startIndex = index;\n } else {\n currentRow.push(widget);\n currentRowWidth += widgetWidth;\n }\n });\n\n // Add the last row if it has widgets\n if (currentRow.length > 0) {\n rows.push({\n widgets: currentRow,\n totalWidth: currentRowWidth,\n startIndex,\n endIndex: startIndex + currentRow.length - 1,\n });\n }\n\n return rows;\n};\n\n/**\n * Calculates optimal layout for a specific row based on widget count\n * Only enforces constraints when necessary:\n * - 1 widget in row: must be 3/3 (12 columns)\n * - 3 widgets in row: must be 1/3+1/3+1/3 (4+4+4 columns)\n * - 2 widgets in row: preserves existing proportions or uses 1/2+1/2\n */\nexport const calculateOptimalLayoutForRow = (\n widgetsInRow: WidgetWithUID[],\n currentColumnWidths: Record<string, number>\n): Record<string, number> => {\n const newWidths = { ...currentColumnWidths };\n const widgetCount = widgetsInRow.length;\n\n if (widgetCount === 1) {\n // Single widget must take full width (12)\n newWidths[widgetsInRow[0].uid] = 12;\n } else if (widgetCount === 3) {\n // Three widgets must be equal (4 + 4 + 4)\n widgetsInRow.forEach((widget) => {\n newWidths[widget.uid] = 4;\n });\n } else if (widgetCount === 2) {\n // Two widgets can be flexible - preserve existing proportions or use 6 + 6\n const currentWidths = widgetsInRow.map((widget) =>\n getWidgetWidth(currentColumnWidths, widget.uid)\n );\n const totalWidth = currentWidths.reduce((sum, width) => sum + width, 0);\n\n if (totalWidth === 12) {\n // Row is already properly sized, preserve proportions\n widgetsInRow.forEach((widget, index) => {\n newWidths[widget.uid] = currentWidths[index];\n });\n } else {\n // Row needs adjustment, use equal split\n widgetsInRow.forEach((widget) => {\n newWidths[widget.uid] = 6;\n });\n }\n }\n\n return newWidths;\n};\n\nexport const moveWidgetInArray = (\n widgets: WidgetWithUID[],\n widgetId: string,\n insertIndex: number\n): WidgetWithUID[] => {\n const currentIndex = widgets.findIndex((w) => w.uid === widgetId);\n if (currentIndex === -1) return widgets;\n\n // Remove widget from current position\n const widgetsWithoutMoved = widgets.filter((w) => w.uid !== widgetId);\n\n // Insert at new position (adjust index if moving forward)\n const adjustedInsertIndex = insertIndex > currentIndex ? insertIndex - 1 : insertIndex;\n const newWidgets = [...widgetsWithoutMoved];\n newWidgets.splice(adjustedInsertIndex, 0, widgets[currentIndex]);\n\n return newWidgets;\n};\n\nexport const findRowContainingWidget = (\n widgetRows: WidgetRow[],\n widgetId: string,\n widgets: WidgetWithUID[]\n): WidgetRow | undefined => {\n const widgetIndex = widgets.findIndex((w) => w.uid === widgetId);\n if (widgetIndex === -1) return undefined;\n\n return widgetRows.find((row) => widgetIndex >= row.startIndex && widgetIndex <= row.endIndex);\n};\n\nexport const resizeRowAfterRemoval = (\n row: WidgetRow | undefined,\n removedWidgetId: string,\n currentWidths: Record<string, number>\n): Record<string, number> => {\n if (!row) return currentWidths;\n\n const remainingWidgets = row.widgets.filter((w) => w.uid !== removedWidgetId);\n return calculateOptimalLayoutForRow(remainingWidgets, currentWidths);\n};\n\nexport const resizeRowAfterAddition = (\n row: WidgetRow | undefined,\n addedWidget: WidgetWithUID,\n insertIndex: number,\n currentWidths: Record<string, number>\n): Record<string, number> => {\n if (!row) return currentWidths;\n\n // Calculate the new widget arrangement for the target row\n const targetRowWidgets = [...row.widgets];\n const existingIndex = targetRowWidgets.findIndex((w) => w.uid === addedWidget.uid);\n\n if (existingIndex !== -1) {\n // Widget was already in this row, just reorder\n targetRowWidgets.splice(existingIndex, 1);\n }\n\n // Insert at the new position within the row\n let insertPosition = insertIndex - row.startIndex;\n\n // If insertIndex is at the end of the row (row.endIndex + 1),\n // insert at the end of the row instead of beyond it\n if (insertIndex === row.endIndex + 1) {\n insertPosition = row.widgets.length;\n }\n\n targetRowWidgets.splice(insertPosition, 0, addedWidget);\n\n return calculateOptimalLayoutForRow(targetRowWidgets, currentWidths);\n};\n\nexport const isLastWidgetInRow = (\n widgetIndex: number,\n widgets: WidgetWithUID[],\n columnWidths: Record<string, number>\n): boolean => {\n if (widgetIndex >= widgets.length - 1) {\n return true; // Last widget overall\n }\n\n let currentRowWidth = 0;\n\n // Calculate the current row width by going through widgets from the start\n for (let i = 0; i <= widgetIndex; i++) {\n const widgetWidth = getWidgetWidth(columnWidths, widgets[i]?.uid);\n if (currentRowWidth + widgetWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n // This widget starts a new row, so the previous widget was the last in its row\n currentRowWidth = widgetWidth;\n } else {\n currentRowWidth += widgetWidth;\n }\n }\n\n // Check if the next widget would fit in the current row\n const nextWidgetWidth = getWidgetWidth(columnWidths, widgets[widgetIndex + 1]?.uid);\n return currentRowWidth + nextWidgetWidth > WIDGET_SIZING.TOTAL_COLUMNS;\n};\n\nexport const canResizeBetweenWidgets = (\n leftWidgetId: string,\n rightWidgetId: string,\n columnWidths: Record<string, number>,\n widgets: WidgetWithUID[]\n): boolean => {\n const leftWidth = getWidgetWidth(columnWidths, leftWidgetId);\n const rightWidth = getWidgetWidth(columnWidths, rightWidgetId);\n\n // First check if the widgets are actually adjacent in the same row\n const leftIndex = widgets.findIndex((w) => w.uid === leftWidgetId);\n const rightIndex = widgets.findIndex((w) => w.uid === rightWidgetId);\n\n // Widgets must be consecutive in the array and in the same row\n if (rightIndex !== leftIndex + 1) {\n return false;\n }\n\n // Check if they're in the same row by verifying the right widget isn't the first in a new row\n if (isLastWidgetInRow(leftIndex, widgets, columnWidths)) {\n return false; // Left widget is last in its row, so right widget starts a new row\n }\n\n // Check if either widget can be made smaller (must be > 4 columns)\n // or if either widget can be made bigger (must be < 12 columns)\n const canLeftShrink = leftWidth > WIDGET_SIZING.MIN_WIDGET_WIDTH;\n const canRightShrink = rightWidth > WIDGET_SIZING.MIN_WIDGET_WIDTH;\n const canLeftGrow = leftWidth < WIDGET_SIZING.TOTAL_COLUMNS;\n const canRightGrow = rightWidth < WIDGET_SIZING.TOTAL_COLUMNS;\n\n // Resizing is possible if either widget can shrink AND the other can grow\n return (canLeftShrink && canRightGrow) || (canRightShrink && canLeftGrow);\n};\n\n/**\n * Filters widgets to only include those present in the homepage layout\n */\nexport const filterWidgetsByHomepageLayout = (\n widgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): WidgetWithUID[] => {\n const createHomepageWidgetUidsSet = (homepageLayout: Homepage.Layout): Set<string> =>\n new Set(homepageLayout.widgets.map((w) => w.uid));\n const homepageWidgetUids = createHomepageWidgetUidsSet(homepageLayout);\n return widgets.filter((widget) => homepageWidgetUids.has(widget.uid));\n};\n\n/**\n * Sorts widgets according to the homepage layout order\n */\nexport const sortWidgetsByHomepageLayout = (\n widgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): WidgetWithUID[] => {\n const widgetOrderMap = new Map(\n homepageLayout.widgets.map((widget, index) => [widget.uid, index])\n );\n\n return [...widgets].sort((a, b) => {\n const aIndex = widgetOrderMap.get(a.uid) ?? Number.MAX_SAFE_INTEGER;\n const bIndex = widgetOrderMap.get(b.uid) ?? Number.MAX_SAFE_INTEGER;\n return aIndex - bIndex;\n });\n};\n\n/**\n * Applies homepage layout to widgets (filters, sorts, and extracts widths)\n */\nexport const applyHomepageLayout = (\n authorizedWidgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): {\n filteredWidgets: WidgetWithUID[];\n widths: Record<string, number>;\n} => {\n const layoutWidgets = filterWidgetsByHomepageLayout(authorizedWidgets, homepageLayout);\n const sortedWidgets = sortWidgetsByHomepageLayout(layoutWidgets, homepageLayout);\n\n // Extract widths from homepage layout\n const widths: Record<string, number> = {};\n homepageLayout.widgets.forEach(({ uid, width }) => {\n widths[uid] = width;\n });\n\n return {\n filteredWidgets: sortedWidgets,\n widths,\n };\n};\n\n/**\n * Creates default widget widths based on widget count\n * Even count: all widgets get width 6\n * Odd count: all widgets get width 6 except the last one which gets width 12\n */\nexport const createDefaultWidgetWidths = (widgets: WidgetWithUID[]): Record<string, number> => {\n const defaultWidths: Record<string, number> = {};\n const widgetCount = widgets.length;\n\n if (widgetCount > 0) {\n if (widgetCount % 2 === 0) {\n widgets.forEach((widget) => {\n defaultWidths[widget.uid] = 6;\n });\n } else {\n widgets.forEach((widget, index) => {\n defaultWidths[widget.uid] = index === widgetCount - 1 ? 12 : 6;\n });\n }\n }\n\n return defaultWidths;\n};\n"],"names":["WIDGET_SIZING","TOTAL_COLUMNS","MIN_WIDGET_WIDTH","DISCRETE_SIZES","WIDGET_DATA_ATTRIBUTES","WIDGET_ID","GRID_CONTAINER","getWidgetElement","uid","document","querySelector","getWidgetGridContainer","isValidWidgetWidth","width","isValidResizeOperation","leftWidth","rightWidth","getWidgetWidth","columnWidths","widgetId","defaultWidth","calculateWidgetRows","widgets","rows","currentRow","currentRowWidth","startIndex","forEach","widget","index","widgetWidth","length","push","totalWidth","endIndex","calculateOptimalLayoutForRow","widgetsInRow","currentColumnWidths","newWidths","widgetCount","currentWidths","map","reduce","sum","moveWidgetInArray","insertIndex","currentIndex","findIndex","w","widgetsWithoutMoved","filter","adjustedInsertIndex","newWidgets","splice","findRowContainingWidget","widgetRows","widgetIndex","undefined","find","row","resizeRowAfterRemoval","removedWidgetId","remainingWidgets","resizeRowAfterAddition","addedWidget","targetRowWidgets","existingIndex","insertPosition","isLastWidgetInRow","i","nextWidgetWidth","canResizeBetweenWidgets","leftWidgetId","rightWidgetId","leftIndex","rightIndex","canLeftShrink","canRightShrink","canLeftGrow","canRightGrow","filterWidgetsByHomepageLayout","homepageLayout","createHomepageWidgetUidsSet","Set","homepageWidgetUids","has","sortWidgetsByHomepageLayout","widgetOrderMap","Map","sort","a","b","aIndex","get","Number","MAX_SAFE_INTEGER","bIndex","applyHomepageLayout","authorizedWidgets","layoutWidgets","sortedWidgets","widths","filteredWidgets","createDefaultWidgetWidths","defaultWidths"],"mappings":";;AAAA;;;;;;;UAYaA,aAAgB,GAAA;IAC3BC,aAAe,EAAA,EAAA;IACfC,gBAAkB,EAAA,CAAA;IAClBC,cAAgB,EAAA;AAAC,QAAA,CAAA;AAAG,QAAA,CAAA;AAAG,QAAA,CAAA;AAAG,QAAA;AAAG;AAC/B;MAEaC,sBAAyB,GAAA;IACpCC,SAAW,EAAA,uBAAA;IACXC,cAAgB,EAAA;AAClB;AAEO,MAAMC,mBAAmB,CAACC,GAAAA,GAAAA;AAC/B,IAAA,OAAOC,QAASC,CAAAA,aAAa,CAAC,CAAC,CAAC,EAAEN,sBAAuBC,CAAAA,SAAS,CAAC,EAAE,EAAEG,GAAAA,CAAI,EAAE,CAAC,CAAA;AAChF;MAEaG,sBAAyB,GAAA,IAAA;IACpC,OAAOF,QAAAA,CAASC,aAAa,CAAC,CAAC,CAAC,EAAEN,sBAAuBE,CAAAA,cAAc,CAAC,CAAC,CAAC,CAAA;AAC5E;AASA;;IAGaM,MAAAA,kBAAAA,GAAqB,CAACC,KAAAA,GAAAA;AACjC,IAAA,OAAOA,SAASb,aAAcE,CAAAA,gBAAgB,IAAIW,KAAAA,IAASb,cAAcC,aAAa;AACxF;AAEA;;AAEC,IACM,MAAMa,sBAAyB,GAAA,CAACC,SAAmBC,EAAAA,UAAAA,GAAAA;;AAExD,IAAA,IAAI,CAACJ,kBAAAA,CAAmBG,SAAc,CAAA,IAAA,CAACH,mBAAmBI,UAAa,CAAA,EAAA;QACrE,OAAO,KAAA;AACT;;AAGA,IAAA,IAAID,SAAYC,GAAAA,UAAAA,GAAahB,aAAcC,CAAAA,aAAa,EAAE;QACxD,OAAO,KAAA;AACT;IAEA,OAAO,IAAA;AACT;AAEA;;AAEC,IACYgB,MAAAA,cAAAA,GAAiB,CAC5BC,YACAC,EAAAA,QAAAA,EACAC,eAAuB,CAAC,GAAA;AAExB,IAAA,OAAOD,QAAWD,GAAAA,YAAY,CAACC,QAAAA,CAAS,IAAIC,YAAeA,GAAAA,YAAAA;AAC7D;AAEA;;AAEC,IACM,MAAMC,mBAAsB,GAAA,CACjCC,OACAJ,EAAAA,YAAAA,GAAAA;AAEA,IAAA,MAAMK,OAAoB,EAAE;AAC5B,IAAA,IAAIC,aAA8B,EAAE;AACpC,IAAA,IAAIC,eAAkB,GAAA,CAAA;AACtB,IAAA,IAAIC,UAAa,GAAA,CAAA;IAEjBJ,OAAQK,CAAAA,OAAO,CAAC,CAACC,MAAQC,EAAAA,KAAAA,GAAAA;AACvB,QAAA,MAAMC,WAAcb,GAAAA,cAAAA,CAAeC,YAAcU,EAAAA,MAAAA,CAAOpB,GAAG,CAAA;;AAG3D,QAAA,IAAIiB,eAAkBK,GAAAA,WAAAA,GAAc9B,aAAcC,CAAAA,aAAa,EAAE;YAC/D,IAAIuB,UAAAA,CAAWO,MAAM,GAAG,CAAG,EAAA;AACzBR,gBAAAA,IAAAA,CAAKS,IAAI,CAAC;oBACRV,OAASE,EAAAA,UAAAA;oBACTS,UAAYR,EAAAA,eAAAA;AACZC,oBAAAA,UAAAA;oBACAQ,QAAUR,EAAAA,UAAAA,GAAaF,UAAWO,CAAAA,MAAM,GAAG;AAC7C,iBAAA,CAAA;AACF;YACAP,UAAa,GAAA;AAACI,gBAAAA;AAAO,aAAA;YACrBH,eAAkBK,GAAAA,WAAAA;YAClBJ,UAAaG,GAAAA,KAAAA;SACR,MAAA;AACLL,YAAAA,UAAAA,CAAWQ,IAAI,CAACJ,MAAAA,CAAAA;YAChBH,eAAmBK,IAAAA,WAAAA;AACrB;AACF,KAAA,CAAA;;IAGA,IAAIN,UAAAA,CAAWO,MAAM,GAAG,CAAG,EAAA;AACzBR,QAAAA,IAAAA,CAAKS,IAAI,CAAC;YACRV,OAASE,EAAAA,UAAAA;YACTS,UAAYR,EAAAA,eAAAA;AACZC,YAAAA,UAAAA;YACAQ,QAAUR,EAAAA,UAAAA,GAAaF,UAAWO,CAAAA,MAAM,GAAG;AAC7C,SAAA,CAAA;AACF;IAEA,OAAOR,IAAAA;AACT;AAEA;;;;;;AAMC,IACM,MAAMY,4BAA+B,GAAA,CAC1CC,YACAC,EAAAA,mBAAAA,GAAAA;AAEA,IAAA,MAAMC,SAAY,GAAA;AAAE,QAAA,GAAGD;AAAoB,KAAA;IAC3C,MAAME,WAAAA,GAAcH,aAAaL,MAAM;AAEvC,IAAA,IAAIQ,gBAAgB,CAAG,EAAA;;AAErBD,QAAAA,SAAS,CAACF,YAAY,CAAC,EAAE,CAAC5B,GAAG,CAAC,GAAG,EAAA;KAC5B,MAAA,IAAI+B,gBAAgB,CAAG,EAAA;;QAE5BH,YAAaT,CAAAA,OAAO,CAAC,CAACC,MAAAA,GAAAA;AACpBU,YAAAA,SAAS,CAACV,MAAAA,CAAOpB,GAAG,CAAC,GAAG,CAAA;AAC1B,SAAA,CAAA;KACK,MAAA,IAAI+B,gBAAgB,CAAG,EAAA;;QAE5B,MAAMC,aAAAA,GAAgBJ,aAAaK,GAAG,CAAC,CAACb,MACtCX,GAAAA,cAAAA,CAAeoB,mBAAqBT,EAAAA,MAAAA,CAAOpB,GAAG,CAAA,CAAA;QAEhD,MAAMyB,UAAAA,GAAaO,cAAcE,MAAM,CAAC,CAACC,GAAK9B,EAAAA,KAAAA,GAAU8B,MAAM9B,KAAO,EAAA,CAAA,CAAA;AAErE,QAAA,IAAIoB,eAAe,EAAI,EAAA;;YAErBG,YAAaT,CAAAA,OAAO,CAAC,CAACC,MAAQC,EAAAA,KAAAA,GAAAA;AAC5BS,gBAAAA,SAAS,CAACV,MAAOpB,CAAAA,GAAG,CAAC,GAAGgC,aAAa,CAACX,KAAM,CAAA;AAC9C,aAAA,CAAA;SACK,MAAA;;YAELO,YAAaT,CAAAA,OAAO,CAAC,CAACC,MAAAA,GAAAA;AACpBU,gBAAAA,SAAS,CAACV,MAAAA,CAAOpB,GAAG,CAAC,GAAG,CAAA;AAC1B,aAAA,CAAA;AACF;AACF;IAEA,OAAO8B,SAAAA;AACT;AAEaM,MAAAA,iBAAAA,GAAoB,CAC/BtB,OAAAA,EACAH,QACA0B,EAAAA,WAAAA,GAAAA;IAEA,MAAMC,YAAAA,GAAexB,QAAQyB,SAAS,CAAC,CAACC,CAAMA,GAAAA,CAAAA,CAAExC,GAAG,KAAKW,QAAAA,CAAAA;IACxD,IAAI2B,YAAAA,KAAiB,CAAC,CAAA,EAAG,OAAOxB,OAAAA;;IAGhC,MAAM2B,mBAAAA,GAAsB3B,QAAQ4B,MAAM,CAAC,CAACF,CAAMA,GAAAA,CAAAA,CAAExC,GAAG,KAAKW,QAAAA,CAAAA;;AAG5D,IAAA,MAAMgC,mBAAsBN,GAAAA,WAAAA,GAAcC,YAAeD,GAAAA,WAAAA,GAAc,CAAIA,GAAAA,WAAAA;AAC3E,IAAA,MAAMO,UAAa,GAAA;AAAIH,QAAAA,GAAAA;AAAoB,KAAA;AAC3CG,IAAAA,UAAAA,CAAWC,MAAM,CAACF,mBAAAA,EAAqB,CAAG7B,EAAAA,OAAO,CAACwB,YAAa,CAAA,CAAA;IAE/D,OAAOM,UAAAA;AACT;AAEaE,MAAAA,uBAAAA,GAA0B,CACrCC,UAAAA,EACApC,QACAG,EAAAA,OAAAA,GAAAA;IAEA,MAAMkC,WAAAA,GAAclC,QAAQyB,SAAS,CAAC,CAACC,CAAMA,GAAAA,CAAAA,CAAExC,GAAG,KAAKW,QAAAA,CAAAA;IACvD,IAAIqC,WAAAA,KAAgB,CAAC,CAAA,EAAG,OAAOC,SAAAA;IAE/B,OAAOF,UAAAA,CAAWG,IAAI,CAAC,CAACC,GAAAA,GAAQH,WAAeG,IAAAA,GAAAA,CAAIjC,UAAU,IAAI8B,WAAeG,IAAAA,GAAAA,CAAIzB,QAAQ,CAAA;AAC9F;AAEa0B,MAAAA,qBAAAA,GAAwB,CACnCD,GAAAA,EACAE,eACArB,EAAAA,aAAAA,GAAAA;IAEA,IAAI,CAACmB,KAAK,OAAOnB,aAAAA;IAEjB,MAAMsB,gBAAAA,GAAmBH,GAAIrC,CAAAA,OAAO,CAAC4B,MAAM,CAAC,CAACF,CAAAA,GAAMA,CAAExC,CAAAA,GAAG,KAAKqD,eAAAA,CAAAA;AAC7D,IAAA,OAAO1B,6BAA6B2B,gBAAkBtB,EAAAA,aAAAA,CAAAA;AACxD;AAEauB,MAAAA,sBAAAA,GAAyB,CACpCJ,GAAAA,EACAK,aACAnB,WACAL,EAAAA,aAAAA,GAAAA;IAEA,IAAI,CAACmB,KAAK,OAAOnB,aAAAA;;AAGjB,IAAA,MAAMyB,gBAAmB,GAAA;AAAIN,QAAAA,GAAAA,GAAAA,CAAIrC;AAAQ,KAAA;IACzC,MAAM4C,aAAAA,GAAgBD,gBAAiBlB,CAAAA,SAAS,CAAC,CAACC,IAAMA,CAAExC,CAAAA,GAAG,KAAKwD,WAAAA,CAAYxD,GAAG,CAAA;IAEjF,IAAI0D,aAAAA,KAAkB,CAAC,CAAG,EAAA;;QAExBD,gBAAiBZ,CAAAA,MAAM,CAACa,aAAe,EAAA,CAAA,CAAA;AACzC;;IAGA,IAAIC,cAAAA,GAAiBtB,WAAcc,GAAAA,GAAAA,CAAIjC,UAAU;;;AAIjD,IAAA,IAAImB,WAAgBc,KAAAA,GAAAA,CAAIzB,QAAQ,GAAG,CAAG,EAAA;QACpCiC,cAAiBR,GAAAA,GAAAA,CAAIrC,OAAO,CAACS,MAAM;AACrC;IAEAkC,gBAAiBZ,CAAAA,MAAM,CAACc,cAAAA,EAAgB,CAAGH,EAAAA,WAAAA,CAAAA;AAE3C,IAAA,OAAO7B,6BAA6B8B,gBAAkBzB,EAAAA,aAAAA,CAAAA;AACxD;AAEa4B,MAAAA,iBAAAA,GAAoB,CAC/BZ,WAAAA,EACAlC,OACAJ,EAAAA,YAAAA,GAAAA;AAEA,IAAA,IAAIsC,WAAelC,IAAAA,OAAAA,CAAQS,MAAM,GAAG,CAAG,EAAA;AACrC,QAAA,OAAO;AACT;AAEA,IAAA,IAAIN,eAAkB,GAAA,CAAA;;AAGtB,IAAA,IAAK,IAAI4C,CAAAA,GAAI,CAAGA,EAAAA,CAAAA,IAAKb,aAAaa,CAAK,EAAA,CAAA;AACrC,QAAA,MAAMvC,cAAcb,cAAeC,CAAAA,YAAAA,EAAcI,OAAO,CAAC+C,EAAE,EAAE7D,GAAAA,CAAAA;AAC7D,QAAA,IAAIiB,eAAkBK,GAAAA,WAAAA,GAAc9B,aAAcC,CAAAA,aAAa,EAAE;;YAE/DwB,eAAkBK,GAAAA,WAAAA;SACb,MAAA;YACLL,eAAmBK,IAAAA,WAAAA;AACrB;AACF;;AAGA,IAAA,MAAMwC,kBAAkBrD,cAAeC,CAAAA,YAAAA,EAAcI,OAAO,CAACkC,WAAAA,GAAc,EAAE,EAAEhD,GAAAA,CAAAA;IAC/E,OAAOiB,eAAAA,GAAkB6C,eAAkBtE,GAAAA,aAAAA,CAAcC,aAAa;AACxE;AAEasE,MAAAA,uBAAAA,GAA0B,CACrCC,YAAAA,EACAC,eACAvD,YACAI,EAAAA,OAAAA,GAAAA;IAEA,MAAMP,SAAAA,GAAYE,eAAeC,YAAcsD,EAAAA,YAAAA,CAAAA;IAC/C,MAAMxD,UAAAA,GAAaC,eAAeC,YAAcuD,EAAAA,aAAAA,CAAAA;;IAGhD,MAAMC,SAAAA,GAAYpD,QAAQyB,SAAS,CAAC,CAACC,CAAMA,GAAAA,CAAAA,CAAExC,GAAG,KAAKgE,YAAAA,CAAAA;IACrD,MAAMG,UAAAA,GAAarD,QAAQyB,SAAS,CAAC,CAACC,CAAMA,GAAAA,CAAAA,CAAExC,GAAG,KAAKiE,aAAAA,CAAAA;;IAGtD,IAAIE,UAAAA,KAAeD,YAAY,CAAG,EAAA;QAChC,OAAO,KAAA;AACT;;IAGA,IAAIN,iBAAAA,CAAkBM,SAAWpD,EAAAA,OAAAA,EAASJ,YAAe,CAAA,EAAA;AACvD,QAAA,OAAO;AACT;;;IAIA,MAAM0D,aAAAA,GAAgB7D,SAAYf,GAAAA,aAAAA,CAAcE,gBAAgB;IAChE,MAAM2E,cAAAA,GAAiB7D,UAAahB,GAAAA,aAAAA,CAAcE,gBAAgB;IAClE,MAAM4E,WAAAA,GAAc/D,SAAYf,GAAAA,aAAAA,CAAcC,aAAa;IAC3D,MAAM8E,YAAAA,GAAe/D,UAAahB,GAAAA,aAAAA,CAAcC,aAAa;;IAG7D,OAAQ2E,aAAiBG,IAAAA,YAAAA,IAAkBF,cAAkBC,IAAAA,WAAAA;AAC/D;AAEA;;AAEC,IACM,MAAME,6BAAgC,GAAA,CAC3C1D,OACA2D,EAAAA,cAAAA,GAAAA;AAEA,IAAA,MAAMC,2BAA8B,GAAA,CAACD,cACnC,GAAA,IAAIE,GAAIF,CAAAA,cAAAA,CAAe3D,OAAO,CAACmB,GAAG,CAAC,CAACO,CAAAA,GAAMA,EAAExC,GAAG,CAAA,CAAA;AACjD,IAAA,MAAM4E,qBAAqBF,2BAA4BD,CAAAA,cAAAA,CAAAA;IACvD,OAAO3D,OAAAA,CAAQ4B,MAAM,CAAC,CAACtB,SAAWwD,kBAAmBC,CAAAA,GAAG,CAACzD,MAAAA,CAAOpB,GAAG,CAAA,CAAA;AACrE;AAEA;;AAEC,IACM,MAAM8E,2BAA8B,GAAA,CACzChE,OACA2D,EAAAA,cAAAA,GAAAA;IAEA,MAAMM,cAAAA,GAAiB,IAAIC,GAAAA,CACzBP,cAAe3D,CAAAA,OAAO,CAACmB,GAAG,CAAC,CAACb,MAAAA,EAAQC,KAAU,GAAA;AAACD,YAAAA,MAAAA,CAAOpB,GAAG;AAAEqB,YAAAA;AAAM,SAAA,CAAA,CAAA;IAGnE,OAAO;AAAIP,QAAAA,GAAAA;KAAQ,CAACmE,IAAI,CAAC,CAACC,CAAGC,EAAAA,CAAAA,GAAAA;QAC3B,MAAMC,MAAAA,GAASL,eAAeM,GAAG,CAACH,EAAElF,GAAG,CAAA,IAAKsF,OAAOC,gBAAgB;QACnE,MAAMC,MAAAA,GAAST,eAAeM,GAAG,CAACF,EAAEnF,GAAG,CAAA,IAAKsF,OAAOC,gBAAgB;AACnE,QAAA,OAAOH,MAASI,GAAAA,MAAAA;AAClB,KAAA,CAAA;AACF;AAEA;;AAEC,IACM,MAAMC,mBAAsB,GAAA,CACjCC,iBACAjB,EAAAA,cAAAA,GAAAA;IAKA,MAAMkB,aAAAA,GAAgBnB,8BAA8BkB,iBAAmBjB,EAAAA,cAAAA,CAAAA;IACvE,MAAMmB,aAAAA,GAAgBd,4BAA4Ba,aAAelB,EAAAA,cAAAA,CAAAA;;AAGjE,IAAA,MAAMoB,SAAiC,EAAC;IACxCpB,cAAe3D,CAAAA,OAAO,CAACK,OAAO,CAAC,CAAC,EAAEnB,GAAG,EAAEK,KAAK,EAAE,GAAA;QAC5CwF,MAAM,CAAC7F,IAAI,GAAGK,KAAAA;AAChB,KAAA,CAAA;IAEA,OAAO;QACLyF,eAAiBF,EAAAA,aAAAA;AACjBC,QAAAA;AACF,KAAA;AACF;AAEA;;;;IAKaE,MAAAA,yBAAAA,GAA4B,CAACjF,OAAAA,GAAAA;AACxC,IAAA,MAAMkF,gBAAwC,EAAC;IAC/C,MAAMjE,WAAAA,GAAcjB,QAAQS,MAAM;AAElC,IAAA,IAAIQ,cAAc,CAAG,EAAA;QACnB,IAAIA,WAAAA,GAAc,MAAM,CAAG,EAAA;YACzBjB,OAAQK,CAAAA,OAAO,CAAC,CAACC,MAAAA,GAAAA;AACf4E,gBAAAA,aAAa,CAAC5E,MAAAA,CAAOpB,GAAG,CAAC,GAAG,CAAA;AAC9B,aAAA,CAAA;SACK,MAAA;YACLc,OAAQK,CAAAA,OAAO,CAAC,CAACC,MAAQC,EAAAA,KAAAA,GAAAA;gBACvB2E,aAAa,CAAC5E,OAAOpB,GAAG,CAAC,GAAGqB,KAAUU,KAAAA,WAAAA,GAAc,IAAI,EAAK,GAAA,CAAA;AAC/D,aAAA,CAAA;AACF;AACF;IAEA,OAAOiE,aAAAA;AACT;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"widgetLayout.js","sources":["../../../../../admin/src/utils/widgetLayout.ts"],"sourcesContent":["/**\n *\n * Comprehensive utilities for widget layout operations including sizing, positioning, and layout calculations.\n *\n * Constraints:\n * - Maximum 3 widgets per row (since minimum widget width is 4 columns)\n * - Widget widths are snapped to discrete values: 4 (1/3), 6 (1/2), 8 (2/3), 12 (3/3)\n */\n\nimport type { Homepage } from '../../../shared/contracts/homepage';\nimport type { WidgetWithUID } from '../core/apis/Widgets';\n\nexport const WIDGET_SIZING = {\n TOTAL_COLUMNS: 12,\n MIN_WIDGET_WIDTH: 4,\n DISCRETE_SIZES: [4, 6, 8, 12] as const,\n} as const;\n\nexport const WIDGET_DATA_ATTRIBUTES = {\n WIDGET_ID: 'data-strapi-widget-id',\n GRID_CONTAINER: 'data-strapi-grid-container',\n} as const;\n\nexport const getWidgetElement = (uid: string): HTMLElement | null => {\n return document.querySelector(`[${WIDGET_DATA_ATTRIBUTES.WIDGET_ID}=\"${uid}\"]`);\n};\n\nexport const getWidgetGridContainer = (): HTMLElement | null => {\n return document.querySelector(`[${WIDGET_DATA_ATTRIBUTES.GRID_CONTAINER}]`);\n};\n\nexport interface WidgetRow {\n widgets: WidgetWithUID[];\n totalWidth: number;\n startIndex: number;\n endIndex: number;\n}\n\n/**\n * Validates if a widget width is valid (within constraints)\n */\nexport const isValidWidgetWidth = (width: number): boolean => {\n return width >= WIDGET_SIZING.MIN_WIDGET_WIDTH && width <= WIDGET_SIZING.TOTAL_COLUMNS;\n};\n\n/**\n * Validates if a resize operation is allowed between two widgets\n */\nexport const isValidResizeOperation = (leftWidth: number, rightWidth: number): boolean => {\n // Check minimum size constraints\n if (!isValidWidgetWidth(leftWidth) || !isValidWidgetWidth(rightWidth)) {\n return false;\n }\n\n // Check if the total doesn't exceed row capacity\n if (leftWidth + rightWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Gets widget width with fallback to default value\n */\nexport const getWidgetWidth = (\n columnWidths: Record<string, number>,\n widgetId: string | undefined,\n defaultWidth: number = 6\n): number => {\n return widgetId ? columnWidths[widgetId] || defaultWidth : defaultWidth;\n};\n\n/**\n * Calculates the current row structure from widgets and their widths\n */\nexport const calculateWidgetRows = (\n widgets: WidgetWithUID[],\n columnWidths: Record<string, number>\n): WidgetRow[] => {\n const rows: WidgetRow[] = [];\n let currentRow: WidgetWithUID[] = [];\n let currentRowWidth = 0;\n let startIndex = 0;\n\n widgets.forEach((widget, index) => {\n const widgetWidth = getWidgetWidth(columnWidths, widget.uid);\n\n // If adding this widget would exceed 12 columns, start a new row\n if (currentRowWidth + widgetWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n if (currentRow.length > 0) {\n rows.push({\n widgets: currentRow,\n totalWidth: currentRowWidth,\n startIndex,\n endIndex: startIndex + currentRow.length - 1,\n });\n }\n currentRow = [widget];\n currentRowWidth = widgetWidth;\n startIndex = index;\n } else {\n currentRow.push(widget);\n currentRowWidth += widgetWidth;\n }\n });\n\n // Add the last row if it has widgets\n if (currentRow.length > 0) {\n rows.push({\n widgets: currentRow,\n totalWidth: currentRowWidth,\n startIndex,\n endIndex: startIndex + currentRow.length - 1,\n });\n }\n\n return rows;\n};\n\n/**\n * Calculates optimal layout for a specific row based on widget count\n * Only enforces constraints when necessary:\n * - 1 widget in row: must be 3/3 (12 columns)\n * - 3 widgets in row: must be 1/3+1/3+1/3 (4+4+4 columns)\n * - 2 widgets in row: preserves existing proportions or uses 1/2+1/2\n */\nexport const calculateOptimalLayoutForRow = (\n widgetsInRow: WidgetWithUID[],\n currentColumnWidths: Record<string, number>\n): Record<string, number> => {\n const newWidths = { ...currentColumnWidths };\n const widgetCount = widgetsInRow.length;\n\n if (widgetCount === 1) {\n // Single widget must take full width (12)\n newWidths[widgetsInRow[0].uid] = 12;\n } else if (widgetCount === 3) {\n // Three widgets must be equal (4 + 4 + 4)\n widgetsInRow.forEach((widget) => {\n newWidths[widget.uid] = 4;\n });\n } else if (widgetCount === 2) {\n // Two widgets can be flexible - preserve existing proportions or use 6 + 6\n const currentWidths = widgetsInRow.map((widget) =>\n getWidgetWidth(currentColumnWidths, widget.uid)\n );\n const totalWidth = currentWidths.reduce((sum, width) => sum + width, 0);\n\n if (totalWidth === 12) {\n // Row is already properly sized, preserve proportions\n widgetsInRow.forEach((widget, index) => {\n newWidths[widget.uid] = currentWidths[index];\n });\n } else {\n // Row needs adjustment, use equal split\n widgetsInRow.forEach((widget) => {\n newWidths[widget.uid] = 6;\n });\n }\n }\n\n return newWidths;\n};\n\nexport const moveWidgetInArray = (\n widgets: WidgetWithUID[],\n widgetId: string,\n insertIndex: number\n): WidgetWithUID[] => {\n const currentIndex = widgets.findIndex((w) => w.uid === widgetId);\n if (currentIndex === -1) return widgets;\n\n // Remove widget from current position\n const widgetsWithoutMoved = widgets.filter((w) => w.uid !== widgetId);\n\n // Insert at new position (adjust index if moving forward)\n const adjustedInsertIndex = insertIndex > currentIndex ? insertIndex - 1 : insertIndex;\n const newWidgets = [...widgetsWithoutMoved];\n newWidgets.splice(adjustedInsertIndex, 0, widgets[currentIndex]);\n\n return newWidgets;\n};\n\nexport const findRowContainingWidget = (\n widgetRows: WidgetRow[],\n widgetId: string,\n widgets: WidgetWithUID[]\n): WidgetRow | undefined => {\n const widgetIndex = widgets.findIndex((w) => w.uid === widgetId);\n if (widgetIndex === -1) return undefined;\n\n return widgetRows.find((row) => widgetIndex >= row.startIndex && widgetIndex <= row.endIndex);\n};\n\nexport const resizeRowAfterRemoval = (\n row: WidgetRow | undefined,\n removedWidgetId: string,\n currentWidths: Record<string, number>\n): Record<string, number> => {\n if (!row) return currentWidths;\n\n const remainingWidgets = row.widgets.filter((w) => w.uid !== removedWidgetId);\n return calculateOptimalLayoutForRow(remainingWidgets, currentWidths);\n};\n\nexport const resizeRowAfterAddition = (\n row: WidgetRow | undefined,\n addedWidget: WidgetWithUID,\n insertIndex: number,\n currentWidths: Record<string, number>\n): Record<string, number> => {\n if (!row) return currentWidths;\n\n // Calculate the new widget arrangement for the target row\n const targetRowWidgets = [...row.widgets];\n const existingIndex = targetRowWidgets.findIndex((w) => w.uid === addedWidget.uid);\n\n if (existingIndex !== -1) {\n // Widget was already in this row, just reorder\n targetRowWidgets.splice(existingIndex, 1);\n }\n\n // Insert at the new position within the row\n let insertPosition = insertIndex - row.startIndex;\n\n // If insertIndex is at the end of the row (row.endIndex + 1),\n // insert at the end of the row instead of beyond it\n if (insertIndex === row.endIndex + 1) {\n insertPosition = row.widgets.length;\n }\n\n targetRowWidgets.splice(insertPosition, 0, addedWidget);\n\n return calculateOptimalLayoutForRow(targetRowWidgets, currentWidths);\n};\n\nexport const isLastWidgetInRow = (\n widgetIndex: number,\n widgets: WidgetWithUID[],\n columnWidths: Record<string, number>\n): boolean => {\n if (widgetIndex >= widgets.length - 1) {\n return true; // Last widget overall\n }\n\n let currentRowWidth = 0;\n\n // Calculate the current row width by going through widgets from the start\n for (let i = 0; i <= widgetIndex; i++) {\n const widgetWidth = getWidgetWidth(columnWidths, widgets[i]?.uid);\n if (currentRowWidth + widgetWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n // This widget starts a new row, so the previous widget was the last in its row\n currentRowWidth = widgetWidth;\n } else {\n currentRowWidth += widgetWidth;\n }\n }\n\n // Check if the next widget would fit in the current row\n const nextWidgetWidth = getWidgetWidth(columnWidths, widgets[widgetIndex + 1]?.uid);\n return currentRowWidth + nextWidgetWidth > WIDGET_SIZING.TOTAL_COLUMNS;\n};\n\nexport const canResizeBetweenWidgets = (\n leftWidgetId: string,\n rightWidgetId: string,\n columnWidths: Record<string, number>,\n widgets: WidgetWithUID[]\n): boolean => {\n const leftWidth = getWidgetWidth(columnWidths, leftWidgetId);\n const rightWidth = getWidgetWidth(columnWidths, rightWidgetId);\n\n // First check if the widgets are actually adjacent in the same row\n const leftIndex = widgets.findIndex((w) => w.uid === leftWidgetId);\n const rightIndex = widgets.findIndex((w) => w.uid === rightWidgetId);\n\n // Widgets must be consecutive in the array and in the same row\n if (rightIndex !== leftIndex + 1) {\n return false;\n }\n\n // Check if they're in the same row by verifying the right widget isn't the first in a new row\n if (isLastWidgetInRow(leftIndex, widgets, columnWidths)) {\n return false; // Left widget is last in its row, so right widget starts a new row\n }\n\n // Check if either widget can be made smaller (must be > 4 columns)\n // or if either widget can be made bigger (must be < 12 columns)\n const canLeftShrink = leftWidth > WIDGET_SIZING.MIN_WIDGET_WIDTH;\n const canRightShrink = rightWidth > WIDGET_SIZING.MIN_WIDGET_WIDTH;\n const canLeftGrow = leftWidth < WIDGET_SIZING.TOTAL_COLUMNS;\n const canRightGrow = rightWidth < WIDGET_SIZING.TOTAL_COLUMNS;\n\n // Resizing is possible if either widget can shrink AND the other can grow\n return (canLeftShrink && canRightGrow) || (canRightShrink && canLeftGrow);\n};\n\n/**\n * Filters widgets to only include those present in the homepage layout\n */\nexport const filterWidgetsByHomepageLayout = (\n widgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): WidgetWithUID[] => {\n const createHomepageWidgetUidsSet = (homepageLayout: Homepage.Layout): Set<string> =>\n new Set(homepageLayout.widgets.map((w) => w.uid));\n const homepageWidgetUids = createHomepageWidgetUidsSet(homepageLayout);\n return widgets.filter((widget) => homepageWidgetUids.has(widget.uid));\n};\n\n/**\n * Sorts widgets according to the homepage layout order\n */\nexport const sortWidgetsByHomepageLayout = (\n widgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): WidgetWithUID[] => {\n const widgetOrderMap = new Map(\n homepageLayout.widgets.map((widget, index) => [widget.uid, index])\n );\n\n return [...widgets].sort((a, b) => {\n const aIndex = widgetOrderMap.get(a.uid) ?? Number.MAX_SAFE_INTEGER;\n const bIndex = widgetOrderMap.get(b.uid) ?? Number.MAX_SAFE_INTEGER;\n return aIndex - bIndex;\n });\n};\n\n/**\n * Applies homepage layout to widgets (filters, sorts, and extracts widths)\n */\nexport const applyHomepageLayout = (\n authorizedWidgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): {\n filteredWidgets: WidgetWithUID[];\n widths: Record<string, number>;\n} => {\n const layoutWidgets = filterWidgetsByHomepageLayout(authorizedWidgets, homepageLayout);\n const sortedWidgets = sortWidgetsByHomepageLayout(layoutWidgets, homepageLayout);\n\n // Extract widths from homepage layout\n const widths: Record<string, number> = {};\n homepageLayout.widgets.forEach(({ uid, width }) => {\n widths[uid] = width;\n });\n\n return {\n filteredWidgets: sortedWidgets,\n widths,\n };\n};\n\n/**\n * Creates default widget widths based on widget count\n * Even count: all widgets get width 6\n * Odd count: all widgets get width 6 except the last one which gets width 12\n */\nexport const createDefaultWidgetWidths = (widgets: WidgetWithUID[]): Record<string, number> => {\n const defaultWidths: Record<string, number> = {};\n const widgetCount = widgets.length;\n\n if (widgetCount > 0) {\n if (widgetCount % 2 === 0) {\n widgets.forEach((widget) => {\n defaultWidths[widget.uid] = 6;\n });\n } else {\n widgets.forEach((widget, index) => {\n defaultWidths[widget.uid] = index === widgetCount - 1 ? 12 : 6;\n });\n }\n }\n\n return defaultWidths;\n};\n"],"names":["WIDGET_SIZING","TOTAL_COLUMNS","MIN_WIDGET_WIDTH","DISCRETE_SIZES","WIDGET_DATA_ATTRIBUTES","WIDGET_ID","GRID_CONTAINER","getWidgetElement","uid","document","querySelector","getWidgetGridContainer","isValidWidgetWidth","width","isValidResizeOperation","leftWidth","rightWidth","getWidgetWidth","columnWidths","widgetId","defaultWidth","calculateWidgetRows","widgets","rows","currentRow","currentRowWidth","startIndex","forEach","widget","index","widgetWidth","length","push","totalWidth","endIndex","calculateOptimalLayoutForRow","widgetsInRow","currentColumnWidths","newWidths","widgetCount","currentWidths","map","reduce","sum","moveWidgetInArray","insertIndex","currentIndex","findIndex","w","widgetsWithoutMoved","filter","adjustedInsertIndex","newWidgets","splice","findRowContainingWidget","widgetRows","widgetIndex","undefined","find","row","resizeRowAfterRemoval","removedWidgetId","remainingWidgets","resizeRowAfterAddition","addedWidget","targetRowWidgets","existingIndex","insertPosition","isLastWidgetInRow","i","nextWidgetWidth","canResizeBetweenWidgets","leftWidgetId","rightWidgetId","leftIndex","rightIndex","canLeftShrink","canRightShrink","canLeftGrow","canRightGrow","filterWidgetsByHomepageLayout","homepageLayout","createHomepageWidgetUidsSet","Set","homepageWidgetUids","has","sortWidgetsByHomepageLayout","widgetOrderMap","Map","sort","a","b","aIndex","get","Number","MAX_SAFE_INTEGER","bIndex","applyHomepageLayout","authorizedWidgets","layoutWidgets","sortedWidgets","widths","filteredWidgets","createDefaultWidgetWidths","defaultWidths"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"widgetLayout.mjs","sources":["../../../../../admin/src/utils/widgetLayout.ts"],"sourcesContent":["/**\n *\n * Comprehensive utilities for widget layout operations including sizing, positioning, and layout calculations.\n *\n * Constraints:\n * - Maximum 3 widgets per row (since minimum widget width is 4 columns)\n * - Widget widths are snapped to discrete values: 4 (1/3), 6 (1/2), 8 (2/3), 12 (3/3)\n */\n\nimport type { Homepage } from '../../../shared/contracts/homepage';\nimport type { WidgetWithUID } from '../core/apis/Widgets';\n\nexport const WIDGET_SIZING = {\n TOTAL_COLUMNS: 12,\n MIN_WIDGET_WIDTH: 4,\n DISCRETE_SIZES: [4, 6, 8, 12] as const,\n} as const;\n\nexport const WIDGET_DATA_ATTRIBUTES = {\n WIDGET_ID: 'data-strapi-widget-id',\n GRID_CONTAINER: 'data-strapi-grid-container',\n} as const;\n\nexport const getWidgetElement = (uid: string): HTMLElement | null => {\n return document.querySelector(`[${WIDGET_DATA_ATTRIBUTES.WIDGET_ID}=\"${uid}\"]`);\n};\n\nexport const getWidgetGridContainer = (): HTMLElement | null => {\n return document.querySelector(`[${WIDGET_DATA_ATTRIBUTES.GRID_CONTAINER}]`);\n};\n\nexport interface WidgetRow {\n widgets: WidgetWithUID[];\n totalWidth: number;\n startIndex: number;\n endIndex: number;\n}\n\n/**\n * Validates if a widget width is valid (within constraints)\n */\nexport const isValidWidgetWidth = (width: number): boolean => {\n return width >= WIDGET_SIZING.MIN_WIDGET_WIDTH && width <= WIDGET_SIZING.TOTAL_COLUMNS;\n};\n\n/**\n * Validates if a resize operation is allowed between two widgets\n */\nexport const isValidResizeOperation = (leftWidth: number, rightWidth: number): boolean => {\n // Check minimum size constraints\n if (!isValidWidgetWidth(leftWidth) || !isValidWidgetWidth(rightWidth)) {\n return false;\n }\n\n // Check if the total doesn't exceed row capacity\n if (leftWidth + rightWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Gets widget width with fallback to default value\n */\nexport const getWidgetWidth = (\n columnWidths: Record<string, number>,\n widgetId: string | undefined,\n defaultWidth: number = 6\n): number => {\n return widgetId ? columnWidths[widgetId] || defaultWidth : defaultWidth;\n};\n\n/**\n * Calculates the current row structure from widgets and their widths\n */\nexport const calculateWidgetRows = (\n widgets: WidgetWithUID[],\n columnWidths: Record<string, number>\n): WidgetRow[] => {\n const rows: WidgetRow[] = [];\n let currentRow: WidgetWithUID[] = [];\n let currentRowWidth = 0;\n let startIndex = 0;\n\n widgets.forEach((widget, index) => {\n const widgetWidth = getWidgetWidth(columnWidths, widget.uid);\n\n // If adding this widget would exceed 12 columns, start a new row\n if (currentRowWidth + widgetWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n if (currentRow.length > 0) {\n rows.push({\n widgets: currentRow,\n totalWidth: currentRowWidth,\n startIndex,\n endIndex: startIndex + currentRow.length - 1,\n });\n }\n currentRow = [widget];\n currentRowWidth = widgetWidth;\n startIndex = index;\n } else {\n currentRow.push(widget);\n currentRowWidth += widgetWidth;\n }\n });\n\n // Add the last row if it has widgets\n if (currentRow.length > 0) {\n rows.push({\n widgets: currentRow,\n totalWidth: currentRowWidth,\n startIndex,\n endIndex: startIndex + currentRow.length - 1,\n });\n }\n\n return rows;\n};\n\n/**\n * Calculates optimal layout for a specific row based on widget count\n * Only enforces constraints when necessary:\n * - 1 widget in row: must be 3/3 (12 columns)\n * - 3 widgets in row: must be 1/3+1/3+1/3 (4+4+4 columns)\n * - 2 widgets in row: preserves existing proportions or uses 1/2+1/2\n */\nexport const calculateOptimalLayoutForRow = (\n widgetsInRow: WidgetWithUID[],\n currentColumnWidths: Record<string, number>\n): Record<string, number> => {\n const newWidths = { ...currentColumnWidths };\n const widgetCount = widgetsInRow.length;\n\n if (widgetCount === 1) {\n // Single widget must take full width (12)\n newWidths[widgetsInRow[0].uid] = 12;\n } else if (widgetCount === 3) {\n // Three widgets must be equal (4 + 4 + 4)\n widgetsInRow.forEach((widget) => {\n newWidths[widget.uid] = 4;\n });\n } else if (widgetCount === 2) {\n // Two widgets can be flexible - preserve existing proportions or use 6 + 6\n const currentWidths = widgetsInRow.map((widget) =>\n getWidgetWidth(currentColumnWidths, widget.uid)\n );\n const totalWidth = currentWidths.reduce((sum, width) => sum + width, 0);\n\n if (totalWidth === 12) {\n // Row is already properly sized, preserve proportions\n widgetsInRow.forEach((widget, index) => {\n newWidths[widget.uid] = currentWidths[index];\n });\n } else {\n // Row needs adjustment, use equal split\n widgetsInRow.forEach((widget) => {\n newWidths[widget.uid] = 6;\n });\n }\n }\n\n return newWidths;\n};\n\nexport const moveWidgetInArray = (\n widgets: WidgetWithUID[],\n widgetId: string,\n insertIndex: number\n): WidgetWithUID[] => {\n const currentIndex = widgets.findIndex((w) => w.uid === widgetId);\n if (currentIndex === -1) return widgets;\n\n // Remove widget from current position\n const widgetsWithoutMoved = widgets.filter((w) => w.uid !== widgetId);\n\n // Insert at new position (adjust index if moving forward)\n const adjustedInsertIndex = insertIndex > currentIndex ? insertIndex - 1 : insertIndex;\n const newWidgets = [...widgetsWithoutMoved];\n newWidgets.splice(adjustedInsertIndex, 0, widgets[currentIndex]);\n\n return newWidgets;\n};\n\nexport const findRowContainingWidget = (\n widgetRows: WidgetRow[],\n widgetId: string,\n widgets: WidgetWithUID[]\n): WidgetRow | undefined => {\n const widgetIndex = widgets.findIndex((w) => w.uid === widgetId);\n if (widgetIndex === -1) return undefined;\n\n return widgetRows.find((row) => widgetIndex >= row.startIndex && widgetIndex <= row.endIndex);\n};\n\nexport const resizeRowAfterRemoval = (\n row: WidgetRow | undefined,\n removedWidgetId: string,\n currentWidths: Record<string, number>\n): Record<string, number> => {\n if (!row) return currentWidths;\n\n const remainingWidgets = row.widgets.filter((w) => w.uid !== removedWidgetId);\n return calculateOptimalLayoutForRow(remainingWidgets, currentWidths);\n};\n\nexport const resizeRowAfterAddition = (\n row: WidgetRow | undefined,\n addedWidget: WidgetWithUID,\n insertIndex: number,\n currentWidths: Record<string, number>\n): Record<string, number> => {\n if (!row) return currentWidths;\n\n // Calculate the new widget arrangement for the target row\n const targetRowWidgets = [...row.widgets];\n const existingIndex = targetRowWidgets.findIndex((w) => w.uid === addedWidget.uid);\n\n if (existingIndex !== -1) {\n // Widget was already in this row, just reorder\n targetRowWidgets.splice(existingIndex, 1);\n }\n\n // Insert at the new position within the row\n let insertPosition = insertIndex - row.startIndex;\n\n // If insertIndex is at the end of the row (row.endIndex + 1),\n // insert at the end of the row instead of beyond it\n if (insertIndex === row.endIndex + 1) {\n insertPosition = row.widgets.length;\n }\n\n targetRowWidgets.splice(insertPosition, 0, addedWidget);\n\n return calculateOptimalLayoutForRow(targetRowWidgets, currentWidths);\n};\n\nexport const isLastWidgetInRow = (\n widgetIndex: number,\n widgets: WidgetWithUID[],\n columnWidths: Record<string, number>\n): boolean => {\n if (widgetIndex >= widgets.length - 1) {\n return true; // Last widget overall\n }\n\n let currentRowWidth = 0;\n\n // Calculate the current row width by going through widgets from the start\n for (let i = 0; i <= widgetIndex; i++) {\n const widgetWidth = getWidgetWidth(columnWidths, widgets[i]?.uid);\n if (currentRowWidth + widgetWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n // This widget starts a new row, so the previous widget was the last in its row\n currentRowWidth = widgetWidth;\n } else {\n currentRowWidth += widgetWidth;\n }\n }\n\n // Check if the next widget would fit in the current row\n const nextWidgetWidth = getWidgetWidth(columnWidths, widgets[widgetIndex + 1]?.uid);\n return currentRowWidth + nextWidgetWidth > WIDGET_SIZING.TOTAL_COLUMNS;\n};\n\nexport const canResizeBetweenWidgets = (\n leftWidgetId: string,\n rightWidgetId: string,\n columnWidths: Record<string, number>,\n widgets: WidgetWithUID[]\n): boolean => {\n const leftWidth = getWidgetWidth(columnWidths, leftWidgetId);\n const rightWidth = getWidgetWidth(columnWidths, rightWidgetId);\n\n // First check if the widgets are actually adjacent in the same row\n const leftIndex = widgets.findIndex((w) => w.uid === leftWidgetId);\n const rightIndex = widgets.findIndex((w) => w.uid === rightWidgetId);\n\n // Widgets must be consecutive in the array and in the same row\n if (rightIndex !== leftIndex + 1) {\n return false;\n }\n\n // Check if they're in the same row by verifying the right widget isn't the first in a new row\n if (isLastWidgetInRow(leftIndex, widgets, columnWidths)) {\n return false; // Left widget is last in its row, so right widget starts a new row\n }\n\n // Check if either widget can be made smaller (must be > 4 columns)\n // or if either widget can be made bigger (must be < 12 columns)\n const canLeftShrink = leftWidth > WIDGET_SIZING.MIN_WIDGET_WIDTH;\n const canRightShrink = rightWidth > WIDGET_SIZING.MIN_WIDGET_WIDTH;\n const canLeftGrow = leftWidth < WIDGET_SIZING.TOTAL_COLUMNS;\n const canRightGrow = rightWidth < WIDGET_SIZING.TOTAL_COLUMNS;\n\n // Resizing is possible if either widget can shrink AND the other can grow\n return (canLeftShrink && canRightGrow) || (canRightShrink && canLeftGrow);\n};\n\n/**\n * Filters widgets to only include those present in the homepage layout\n */\nexport const filterWidgetsByHomepageLayout = (\n widgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): WidgetWithUID[] => {\n const createHomepageWidgetUidsSet = (homepageLayout: Homepage.Layout): Set<string> =>\n new Set(homepageLayout.widgets.map((w) => w.uid));\n const homepageWidgetUids = createHomepageWidgetUidsSet(homepageLayout);\n return widgets.filter((widget) => homepageWidgetUids.has(widget.uid));\n};\n\n/**\n * Sorts widgets according to the homepage layout order\n */\nexport const sortWidgetsByHomepageLayout = (\n widgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): WidgetWithUID[] => {\n const widgetOrderMap = new Map(\n homepageLayout.widgets.map((widget, index) => [widget.uid, index])\n );\n\n return [...widgets].sort((a, b) => {\n const aIndex = widgetOrderMap.get(a.uid) ?? Number.MAX_SAFE_INTEGER;\n const bIndex = widgetOrderMap.get(b.uid) ?? Number.MAX_SAFE_INTEGER;\n return aIndex - bIndex;\n });\n};\n\n/**\n * Applies homepage layout to widgets (filters, sorts, and extracts widths)\n */\nexport const applyHomepageLayout = (\n authorizedWidgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): {\n filteredWidgets: WidgetWithUID[];\n widths: Record<string, number>;\n} => {\n const layoutWidgets = filterWidgetsByHomepageLayout(authorizedWidgets, homepageLayout);\n const sortedWidgets = sortWidgetsByHomepageLayout(layoutWidgets, homepageLayout);\n\n // Extract widths from homepage layout\n const widths: Record<string, number> = {};\n homepageLayout.widgets.forEach(({ uid, width }) => {\n widths[uid] = width;\n });\n\n return {\n filteredWidgets: sortedWidgets,\n widths,\n };\n};\n\n/**\n * Creates default widget widths based on widget count\n * Even count: all widgets get width 6\n * Odd count: all widgets get width 6 except the last one which gets width 12\n */\nexport const createDefaultWidgetWidths = (widgets: WidgetWithUID[]): Record<string, number> => {\n const defaultWidths: Record<string, number> = {};\n const widgetCount = widgets.length;\n\n if (widgetCount > 0) {\n if (widgetCount % 2 === 0) {\n widgets.forEach((widget) => {\n defaultWidths[widget.uid] = 6;\n });\n } else {\n widgets.forEach((widget, index) => {\n defaultWidths[widget.uid] = index === widgetCount - 1 ? 12 : 6;\n });\n }\n }\n\n return defaultWidths;\n};\n"],"names":["WIDGET_SIZING","TOTAL_COLUMNS","MIN_WIDGET_WIDTH","DISCRETE_SIZES","WIDGET_DATA_ATTRIBUTES","WIDGET_ID","GRID_CONTAINER","getWidgetElement","uid","document","querySelector","getWidgetGridContainer","isValidWidgetWidth","width","isValidResizeOperation","leftWidth","rightWidth","getWidgetWidth","columnWidths","widgetId","defaultWidth","calculateWidgetRows","widgets","rows","currentRow","currentRowWidth","startIndex","forEach","widget","index","widgetWidth","length","push","totalWidth","endIndex","calculateOptimalLayoutForRow","widgetsInRow","currentColumnWidths","newWidths","widgetCount","currentWidths","map","reduce","sum","moveWidgetInArray","insertIndex","currentIndex","findIndex","w","widgetsWithoutMoved","filter","adjustedInsertIndex","newWidgets","splice","findRowContainingWidget","widgetRows","widgetIndex","undefined","find","row","resizeRowAfterRemoval","removedWidgetId","remainingWidgets","resizeRowAfterAddition","addedWidget","targetRowWidgets","existingIndex","insertPosition","isLastWidgetInRow","i","nextWidgetWidth","canResizeBetweenWidgets","leftWidgetId","rightWidgetId","leftIndex","rightIndex","canLeftShrink","canRightShrink","canLeftGrow","canRightGrow","filterWidgetsByHomepageLayout","homepageLayout","createHomepageWidgetUidsSet","Set","homepageWidgetUids","has","sortWidgetsByHomepageLayout","widgetOrderMap","Map","sort","a","b","aIndex","get","Number","MAX_SAFE_INTEGER","bIndex","applyHomepageLayout","authorizedWidgets","layoutWidgets","sortedWidgets","widths","filteredWidgets","createDefaultWidgetWidths","defaultWidths"],"mappings":"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"}
1
+ {"version":3,"file":"widgetLayout.mjs","sources":["../../../../../admin/src/utils/widgetLayout.ts"],"sourcesContent":["/**\n *\n * Comprehensive utilities for widget layout operations including sizing, positioning, and layout calculations.\n *\n * Constraints:\n * - Maximum 3 widgets per row (since minimum widget width is 4 columns)\n * - Widget widths are snapped to discrete values: 4 (1/3), 6 (1/2), 8 (2/3), 12 (3/3)\n */\n\nimport type { Homepage } from '../../../shared/contracts/homepage';\nimport type { WidgetWithUID } from '../core/apis/Widgets';\n\nexport const WIDGET_SIZING = {\n TOTAL_COLUMNS: 12,\n MIN_WIDGET_WIDTH: 4,\n DISCRETE_SIZES: [4, 6, 8, 12] as const,\n} as const;\n\nexport const WIDGET_DATA_ATTRIBUTES = {\n WIDGET_ID: 'data-strapi-widget-id',\n GRID_CONTAINER: 'data-strapi-grid-container',\n} as const;\n\nexport const getWidgetElement = (uid: string): HTMLElement | null => {\n return document.querySelector(`[${WIDGET_DATA_ATTRIBUTES.WIDGET_ID}=\"${uid}\"]`);\n};\n\nexport const getWidgetGridContainer = (): HTMLElement | null => {\n return document.querySelector(`[${WIDGET_DATA_ATTRIBUTES.GRID_CONTAINER}]`);\n};\n\nexport interface WidgetRow {\n widgets: WidgetWithUID[];\n totalWidth: number;\n startIndex: number;\n endIndex: number;\n}\n\n/**\n * Validates if a widget width is valid (within constraints)\n */\nexport const isValidWidgetWidth = (width: number): boolean => {\n return width >= WIDGET_SIZING.MIN_WIDGET_WIDTH && width <= WIDGET_SIZING.TOTAL_COLUMNS;\n};\n\n/**\n * Validates if a resize operation is allowed between two widgets\n */\nexport const isValidResizeOperation = (leftWidth: number, rightWidth: number): boolean => {\n // Check minimum size constraints\n if (!isValidWidgetWidth(leftWidth) || !isValidWidgetWidth(rightWidth)) {\n return false;\n }\n\n // Check if the total doesn't exceed row capacity\n if (leftWidth + rightWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Gets widget width with fallback to default value\n */\nexport const getWidgetWidth = (\n columnWidths: Record<string, number>,\n widgetId: string | undefined,\n defaultWidth: number = 6\n): number => {\n return widgetId ? columnWidths[widgetId] || defaultWidth : defaultWidth;\n};\n\n/**\n * Calculates the current row structure from widgets and their widths\n */\nexport const calculateWidgetRows = (\n widgets: WidgetWithUID[],\n columnWidths: Record<string, number>\n): WidgetRow[] => {\n const rows: WidgetRow[] = [];\n let currentRow: WidgetWithUID[] = [];\n let currentRowWidth = 0;\n let startIndex = 0;\n\n widgets.forEach((widget, index) => {\n const widgetWidth = getWidgetWidth(columnWidths, widget.uid);\n\n // If adding this widget would exceed 12 columns, start a new row\n if (currentRowWidth + widgetWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n if (currentRow.length > 0) {\n rows.push({\n widgets: currentRow,\n totalWidth: currentRowWidth,\n startIndex,\n endIndex: startIndex + currentRow.length - 1,\n });\n }\n currentRow = [widget];\n currentRowWidth = widgetWidth;\n startIndex = index;\n } else {\n currentRow.push(widget);\n currentRowWidth += widgetWidth;\n }\n });\n\n // Add the last row if it has widgets\n if (currentRow.length > 0) {\n rows.push({\n widgets: currentRow,\n totalWidth: currentRowWidth,\n startIndex,\n endIndex: startIndex + currentRow.length - 1,\n });\n }\n\n return rows;\n};\n\n/**\n * Calculates optimal layout for a specific row based on widget count\n * Only enforces constraints when necessary:\n * - 1 widget in row: must be 3/3 (12 columns)\n * - 3 widgets in row: must be 1/3+1/3+1/3 (4+4+4 columns)\n * - 2 widgets in row: preserves existing proportions or uses 1/2+1/2\n */\nexport const calculateOptimalLayoutForRow = (\n widgetsInRow: WidgetWithUID[],\n currentColumnWidths: Record<string, number>\n): Record<string, number> => {\n const newWidths = { ...currentColumnWidths };\n const widgetCount = widgetsInRow.length;\n\n if (widgetCount === 1) {\n // Single widget must take full width (12)\n newWidths[widgetsInRow[0].uid] = 12;\n } else if (widgetCount === 3) {\n // Three widgets must be equal (4 + 4 + 4)\n widgetsInRow.forEach((widget) => {\n newWidths[widget.uid] = 4;\n });\n } else if (widgetCount === 2) {\n // Two widgets can be flexible - preserve existing proportions or use 6 + 6\n const currentWidths = widgetsInRow.map((widget) =>\n getWidgetWidth(currentColumnWidths, widget.uid)\n );\n const totalWidth = currentWidths.reduce((sum, width) => sum + width, 0);\n\n if (totalWidth === 12) {\n // Row is already properly sized, preserve proportions\n widgetsInRow.forEach((widget, index) => {\n newWidths[widget.uid] = currentWidths[index];\n });\n } else {\n // Row needs adjustment, use equal split\n widgetsInRow.forEach((widget) => {\n newWidths[widget.uid] = 6;\n });\n }\n }\n\n return newWidths;\n};\n\nexport const moveWidgetInArray = (\n widgets: WidgetWithUID[],\n widgetId: string,\n insertIndex: number\n): WidgetWithUID[] => {\n const currentIndex = widgets.findIndex((w) => w.uid === widgetId);\n if (currentIndex === -1) return widgets;\n\n // Remove widget from current position\n const widgetsWithoutMoved = widgets.filter((w) => w.uid !== widgetId);\n\n // Insert at new position (adjust index if moving forward)\n const adjustedInsertIndex = insertIndex > currentIndex ? insertIndex - 1 : insertIndex;\n const newWidgets = [...widgetsWithoutMoved];\n newWidgets.splice(adjustedInsertIndex, 0, widgets[currentIndex]);\n\n return newWidgets;\n};\n\nexport const findRowContainingWidget = (\n widgetRows: WidgetRow[],\n widgetId: string,\n widgets: WidgetWithUID[]\n): WidgetRow | undefined => {\n const widgetIndex = widgets.findIndex((w) => w.uid === widgetId);\n if (widgetIndex === -1) return undefined;\n\n return widgetRows.find((row) => widgetIndex >= row.startIndex && widgetIndex <= row.endIndex);\n};\n\nexport const resizeRowAfterRemoval = (\n row: WidgetRow | undefined,\n removedWidgetId: string,\n currentWidths: Record<string, number>\n): Record<string, number> => {\n if (!row) return currentWidths;\n\n const remainingWidgets = row.widgets.filter((w) => w.uid !== removedWidgetId);\n return calculateOptimalLayoutForRow(remainingWidgets, currentWidths);\n};\n\nexport const resizeRowAfterAddition = (\n row: WidgetRow | undefined,\n addedWidget: WidgetWithUID,\n insertIndex: number,\n currentWidths: Record<string, number>\n): Record<string, number> => {\n if (!row) return currentWidths;\n\n // Calculate the new widget arrangement for the target row\n const targetRowWidgets = [...row.widgets];\n const existingIndex = targetRowWidgets.findIndex((w) => w.uid === addedWidget.uid);\n\n if (existingIndex !== -1) {\n // Widget was already in this row, just reorder\n targetRowWidgets.splice(existingIndex, 1);\n }\n\n // Insert at the new position within the row\n let insertPosition = insertIndex - row.startIndex;\n\n // If insertIndex is at the end of the row (row.endIndex + 1),\n // insert at the end of the row instead of beyond it\n if (insertIndex === row.endIndex + 1) {\n insertPosition = row.widgets.length;\n }\n\n targetRowWidgets.splice(insertPosition, 0, addedWidget);\n\n return calculateOptimalLayoutForRow(targetRowWidgets, currentWidths);\n};\n\nexport const isLastWidgetInRow = (\n widgetIndex: number,\n widgets: WidgetWithUID[],\n columnWidths: Record<string, number>\n): boolean => {\n if (widgetIndex >= widgets.length - 1) {\n return true; // Last widget overall\n }\n\n let currentRowWidth = 0;\n\n // Calculate the current row width by going through widgets from the start\n for (let i = 0; i <= widgetIndex; i++) {\n const widgetWidth = getWidgetWidth(columnWidths, widgets[i]?.uid);\n if (currentRowWidth + widgetWidth > WIDGET_SIZING.TOTAL_COLUMNS) {\n // This widget starts a new row, so the previous widget was the last in its row\n currentRowWidth = widgetWidth;\n } else {\n currentRowWidth += widgetWidth;\n }\n }\n\n // Check if the next widget would fit in the current row\n const nextWidgetWidth = getWidgetWidth(columnWidths, widgets[widgetIndex + 1]?.uid);\n return currentRowWidth + nextWidgetWidth > WIDGET_SIZING.TOTAL_COLUMNS;\n};\n\nexport const canResizeBetweenWidgets = (\n leftWidgetId: string,\n rightWidgetId: string,\n columnWidths: Record<string, number>,\n widgets: WidgetWithUID[]\n): boolean => {\n const leftWidth = getWidgetWidth(columnWidths, leftWidgetId);\n const rightWidth = getWidgetWidth(columnWidths, rightWidgetId);\n\n // First check if the widgets are actually adjacent in the same row\n const leftIndex = widgets.findIndex((w) => w.uid === leftWidgetId);\n const rightIndex = widgets.findIndex((w) => w.uid === rightWidgetId);\n\n // Widgets must be consecutive in the array and in the same row\n if (rightIndex !== leftIndex + 1) {\n return false;\n }\n\n // Check if they're in the same row by verifying the right widget isn't the first in a new row\n if (isLastWidgetInRow(leftIndex, widgets, columnWidths)) {\n return false; // Left widget is last in its row, so right widget starts a new row\n }\n\n // Check if either widget can be made smaller (must be > 4 columns)\n // or if either widget can be made bigger (must be < 12 columns)\n const canLeftShrink = leftWidth > WIDGET_SIZING.MIN_WIDGET_WIDTH;\n const canRightShrink = rightWidth > WIDGET_SIZING.MIN_WIDGET_WIDTH;\n const canLeftGrow = leftWidth < WIDGET_SIZING.TOTAL_COLUMNS;\n const canRightGrow = rightWidth < WIDGET_SIZING.TOTAL_COLUMNS;\n\n // Resizing is possible if either widget can shrink AND the other can grow\n return (canLeftShrink && canRightGrow) || (canRightShrink && canLeftGrow);\n};\n\n/**\n * Filters widgets to only include those present in the homepage layout\n */\nexport const filterWidgetsByHomepageLayout = (\n widgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): WidgetWithUID[] => {\n const createHomepageWidgetUidsSet = (homepageLayout: Homepage.Layout): Set<string> =>\n new Set(homepageLayout.widgets.map((w) => w.uid));\n const homepageWidgetUids = createHomepageWidgetUidsSet(homepageLayout);\n return widgets.filter((widget) => homepageWidgetUids.has(widget.uid));\n};\n\n/**\n * Sorts widgets according to the homepage layout order\n */\nexport const sortWidgetsByHomepageLayout = (\n widgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): WidgetWithUID[] => {\n const widgetOrderMap = new Map(\n homepageLayout.widgets.map((widget, index) => [widget.uid, index])\n );\n\n return [...widgets].sort((a, b) => {\n const aIndex = widgetOrderMap.get(a.uid) ?? Number.MAX_SAFE_INTEGER;\n const bIndex = widgetOrderMap.get(b.uid) ?? Number.MAX_SAFE_INTEGER;\n return aIndex - bIndex;\n });\n};\n\n/**\n * Applies homepage layout to widgets (filters, sorts, and extracts widths)\n */\nexport const applyHomepageLayout = (\n authorizedWidgets: WidgetWithUID[],\n homepageLayout: Homepage.Layout\n): {\n filteredWidgets: WidgetWithUID[];\n widths: Record<string, number>;\n} => {\n const layoutWidgets = filterWidgetsByHomepageLayout(authorizedWidgets, homepageLayout);\n const sortedWidgets = sortWidgetsByHomepageLayout(layoutWidgets, homepageLayout);\n\n // Extract widths from homepage layout\n const widths: Record<string, number> = {};\n homepageLayout.widgets.forEach(({ uid, width }) => {\n widths[uid] = width;\n });\n\n return {\n filteredWidgets: sortedWidgets,\n widths,\n };\n};\n\n/**\n * Creates default widget widths based on widget count\n * Even count: all widgets get width 6\n * Odd count: all widgets get width 6 except the last one which gets width 12\n */\nexport const createDefaultWidgetWidths = (widgets: WidgetWithUID[]): Record<string, number> => {\n const defaultWidths: Record<string, number> = {};\n const widgetCount = widgets.length;\n\n if (widgetCount > 0) {\n if (widgetCount % 2 === 0) {\n widgets.forEach((widget) => {\n defaultWidths[widget.uid] = 6;\n });\n } else {\n widgets.forEach((widget, index) => {\n defaultWidths[widget.uid] = index === widgetCount - 1 ? 12 : 6;\n });\n }\n }\n\n return defaultWidths;\n};\n"],"names":["WIDGET_SIZING","TOTAL_COLUMNS","MIN_WIDGET_WIDTH","DISCRETE_SIZES","WIDGET_DATA_ATTRIBUTES","WIDGET_ID","GRID_CONTAINER","getWidgetElement","uid","document","querySelector","getWidgetGridContainer","isValidWidgetWidth","width","isValidResizeOperation","leftWidth","rightWidth","getWidgetWidth","columnWidths","widgetId","defaultWidth","calculateWidgetRows","widgets","rows","currentRow","currentRowWidth","startIndex","forEach","widget","index","widgetWidth","length","push","totalWidth","endIndex","calculateOptimalLayoutForRow","widgetsInRow","currentColumnWidths","newWidths","widgetCount","currentWidths","map","reduce","sum","moveWidgetInArray","insertIndex","currentIndex","findIndex","w","widgetsWithoutMoved","filter","adjustedInsertIndex","newWidgets","splice","findRowContainingWidget","widgetRows","widgetIndex","undefined","find","row","resizeRowAfterRemoval","removedWidgetId","remainingWidgets","resizeRowAfterAddition","addedWidget","targetRowWidgets","existingIndex","insertPosition","isLastWidgetInRow","i","nextWidgetWidth","canResizeBetweenWidgets","leftWidgetId","rightWidgetId","leftIndex","rightIndex","canLeftShrink","canRightShrink","canLeftGrow","canRightGrow","filterWidgetsByHomepageLayout","homepageLayout","createHomepageWidgetUidsSet","Set","homepageWidgetUids","has","sortWidgetsByHomepageLayout","widgetOrderMap","Map","sort","a","b","aIndex","get","Number","MAX_SAFE_INTEGER","bIndex","applyHomepageLayout","authorizedWidgets","layoutWidgets","sortedWidgets","widths","filteredWidgets","createDefaultWidgetWidths","defaultWidths"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mockData.js","sources":["../../../../admin/tests/mockData.ts"],"sourcesContent":["/* -------------------------------------------------------------------------------------------------\n * MOCK_DATA_EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst mockData = {\n webhooks: [\n { id: 1, isEnabled: true, name: 'test', url: 'http:://strapi.io' },\n { id: 2, isEnabled: false, name: 'test2', url: 'http://me.io' },\n ],\n} as const;\n\ntype MockData = typeof mockData;\n\nexport { mockData };\nexport type { MockData };\n"],"names":["mockData","webhooks","id","isEnabled","name","url"],"mappings":";;AAAA;;AAEkG,2GAE5FA,QAAW,GAAA;IACfC,QAAU,EAAA;AACR,QAAA;YAAEC,EAAI,EAAA,CAAA;YAAGC,SAAW,EAAA,IAAA;YAAMC,IAAM,EAAA,MAAA;YAAQC,GAAK,EAAA;AAAoB,SAAA;AACjE,QAAA;YAAEH,EAAI,EAAA,CAAA;YAAGC,SAAW,EAAA,KAAA;YAAOC,IAAM,EAAA,OAAA;YAASC,GAAK,EAAA;AAAe;AAC/D;AACH;;;;"}
1
+ {"version":3,"file":"mockData.js","sources":["../../../../admin/tests/mockData.ts"],"sourcesContent":["/* -------------------------------------------------------------------------------------------------\n * MOCK_DATA_EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst mockData = {\n webhooks: [\n { id: 1, isEnabled: true, name: 'test', url: 'http:://strapi.io' },\n { id: 2, isEnabled: false, name: 'test2', url: 'http://me.io' },\n ],\n} as const;\n\ntype MockData = typeof mockData;\n\nexport { mockData };\nexport type { MockData };\n"],"names":["mockData","webhooks","id","isEnabled","name","url"],"mappings":";;AAAA;;AAEkG,2GAE5FA,QAAAA,GAAW;IACfC,QAAAA,EAAU;AACR,QAAA;YAAEC,EAAAA,EAAI,CAAA;YAAGC,SAAAA,EAAW,IAAA;YAAMC,IAAAA,EAAM,MAAA;YAAQC,GAAAA,EAAK;AAAoB,SAAA;AACjE,QAAA;YAAEH,EAAAA,EAAI,CAAA;YAAGC,SAAAA,EAAW,KAAA;YAAOC,IAAAA,EAAM,OAAA;YAASC,GAAAA,EAAK;AAAe;AAC/D;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"mockData.mjs","sources":["../../../../admin/tests/mockData.ts"],"sourcesContent":["/* -------------------------------------------------------------------------------------------------\n * MOCK_DATA_EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst mockData = {\n webhooks: [\n { id: 1, isEnabled: true, name: 'test', url: 'http:://strapi.io' },\n { id: 2, isEnabled: false, name: 'test2', url: 'http://me.io' },\n ],\n} as const;\n\ntype MockData = typeof mockData;\n\nexport { mockData };\nexport type { MockData };\n"],"names":["mockData","webhooks","id","isEnabled","name","url"],"mappings":"AAAA;;AAEkG,2GAE5FA,QAAW,GAAA;IACfC,QAAU,EAAA;AACR,QAAA;YAAEC,EAAI,EAAA,CAAA;YAAGC,SAAW,EAAA,IAAA;YAAMC,IAAM,EAAA,MAAA;YAAQC,GAAK,EAAA;AAAoB,SAAA;AACjE,QAAA;YAAEH,EAAI,EAAA,CAAA;YAAGC,SAAW,EAAA,KAAA;YAAOC,IAAM,EAAA,OAAA;YAASC,GAAK,EAAA;AAAe;AAC/D;AACH;;;;"}
1
+ {"version":3,"file":"mockData.mjs","sources":["../../../../admin/tests/mockData.ts"],"sourcesContent":["/* -------------------------------------------------------------------------------------------------\n * MOCK_DATA_EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst mockData = {\n webhooks: [\n { id: 1, isEnabled: true, name: 'test', url: 'http:://strapi.io' },\n { id: 2, isEnabled: false, name: 'test2', url: 'http://me.io' },\n ],\n} as const;\n\ntype MockData = typeof mockData;\n\nexport { mockData };\nexport type { MockData };\n"],"names":["mockData","webhooks","id","isEnabled","name","url"],"mappings":"AAAA;;AAEkG,2GAE5FA,QAAAA,GAAW;IACfC,QAAAA,EAAU;AACR,QAAA;YAAEC,EAAAA,EAAI,CAAA;YAAGC,SAAAA,EAAW,IAAA;YAAMC,IAAAA,EAAM,MAAA;YAAQC,GAAAA,EAAK;AAAoB,SAAA;AACjE,QAAA;YAAEH,EAAAA,EAAI,CAAA;YAAGC,SAAAA,EAAW,KAAA;YAAOC,IAAAA,EAAM,OAAA;YAASC,GAAAA,EAAK;AAAe;AAC/D;AACH;;;;"}