@strapi/admin 5.48.1 → 5.49.0

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 (317) hide show
  1. package/dist/admin/admin/src/StrapiApp.js +33 -20
  2. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  3. package/dist/admin/admin/src/StrapiApp.mjs +6 -1
  4. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/ConfirmDialog.js +3 -2
  6. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  7. package/dist/admin/admin/src/components/Context.js +4 -3
  8. package/dist/admin/admin/src/components/Context.js.map +1 -1
  9. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js +8 -4
  10. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
  11. package/dist/admin/admin/src/components/Filters.js +3 -2
  12. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  13. package/dist/admin/admin/src/components/Form.js +9 -5
  14. package/dist/admin/admin/src/components/Form.js.map +1 -1
  15. package/dist/admin/admin/src/components/FormInputs/Date.js +3 -2
  16. package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Json.js +3 -2
  18. package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
  19. package/dist/admin/admin/src/components/GapDropZone.js +3 -2
  20. package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
  21. package/dist/admin/admin/src/components/GuidedTour/Context.js +3 -2
  22. package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
  23. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +3 -2
  24. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  25. package/dist/admin/admin/src/components/GuidedTour/Tours.js +9 -3
  26. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  27. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +6 -1
  28. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/LanguageProvider.js +5 -1
  30. package/dist/admin/admin/src/components/LanguageProvider.js.map +1 -1
  31. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +3 -2
  32. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  33. package/dist/admin/admin/src/components/LeftMenu.js +3 -2
  34. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  35. package/dist/admin/admin/src/components/NpsSurvey.js +4 -3
  36. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  37. package/dist/admin/admin/src/components/PageHelpers.js +3 -2
  38. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  39. package/dist/admin/admin/src/components/Pagination.js +3 -2
  40. package/dist/admin/admin/src/components/Pagination.js.map +1 -1
  41. package/dist/admin/admin/src/components/PluginsInitializer.js +3 -2
  42. package/dist/admin/admin/src/components/PluginsInitializer.js.map +1 -1
  43. package/dist/admin/admin/src/components/RelativeTime.js +3 -2
  44. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  45. package/dist/admin/admin/src/components/ResizeIndicator.js +3 -2
  46. package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
  47. package/dist/admin/admin/src/components/SearchInput.js +3 -2
  48. package/dist/admin/admin/src/components/SearchInput.js.map +1 -1
  49. package/dist/admin/admin/src/components/Table.js +3 -2
  50. package/dist/admin/admin/src/components/Table.js.map +1 -1
  51. package/dist/admin/admin/src/components/Theme.js +3 -2
  52. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  53. package/dist/admin/admin/src/components/WidgetRoot.js +9 -5
  54. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  55. package/dist/admin/admin/src/core/apis/CustomFields.js +14 -10
  56. package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
  57. package/dist/admin/admin/src/core/apis/Widgets.js +8 -4
  58. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  59. package/dist/admin/admin/src/core/apis/router.js +20 -16
  60. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  61. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  62. package/dist/admin/admin/src/features/Auth.js +78 -6
  63. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  64. package/dist/admin/admin/src/features/Auth.mjs +77 -6
  65. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  66. package/dist/admin/admin/src/features/BackButton.js +3 -2
  67. package/dist/admin/admin/src/features/BackButton.js.map +1 -1
  68. package/dist/admin/admin/src/features/Configuration.js +3 -2
  69. package/dist/admin/admin/src/features/Configuration.js.map +1 -1
  70. package/dist/admin/admin/src/features/Notifications.js +3 -2
  71. package/dist/admin/admin/src/features/Notifications.js.map +1 -1
  72. package/dist/admin/admin/src/features/Tracking.js +7 -3
  73. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  74. package/dist/admin/admin/src/features/Widgets.js +3 -2
  75. package/dist/admin/admin/src/features/Widgets.js.map +1 -1
  76. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js +3 -2
  77. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js.map +1 -1
  78. package/dist/admin/admin/src/hooks/useAdminRoles.js +3 -2
  79. package/dist/admin/admin/src/hooks/useAdminRoles.js.map +1 -1
  80. package/dist/admin/admin/src/hooks/useControllableState.js +3 -2
  81. package/dist/admin/admin/src/hooks/useControllableState.js.map +1 -1
  82. package/dist/admin/admin/src/hooks/useDebounce.js +3 -2
  83. package/dist/admin/admin/src/hooks/useDebounce.js.map +1 -1
  84. package/dist/admin/admin/src/hooks/useDeviceType.js +3 -2
  85. package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -1
  86. package/dist/admin/admin/src/hooks/useElementOnScreen.js +3 -2
  87. package/dist/admin/admin/src/hooks/useElementOnScreen.js.map +1 -1
  88. package/dist/admin/admin/src/hooks/useEnterprise.js +3 -2
  89. package/dist/admin/admin/src/hooks/useEnterprise.js.map +1 -1
  90. package/dist/admin/admin/src/hooks/useFetchClient.js +3 -2
  91. package/dist/admin/admin/src/hooks/useFetchClient.js.map +1 -1
  92. package/dist/admin/admin/src/hooks/useForceUpdate.js +3 -2
  93. package/dist/admin/admin/src/hooks/useForceUpdate.js.map +1 -1
  94. package/dist/admin/admin/src/hooks/useIdleSessionLogout.js +85 -15
  95. package/dist/admin/admin/src/hooks/useIdleSessionLogout.js.map +1 -1
  96. package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs +82 -14
  97. package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs.map +1 -1
  98. package/dist/admin/admin/src/hooks/useIsMounted.js +3 -2
  99. package/dist/admin/admin/src/hooks/useIsMounted.js.map +1 -1
  100. package/dist/admin/admin/src/hooks/useMediaQuery.js +3 -2
  101. package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
  102. package/dist/admin/admin/src/hooks/useMenu.js +7 -3
  103. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  104. package/dist/admin/admin/src/hooks/useOnce.js +3 -2
  105. package/dist/admin/admin/src/hooks/useOnce.js.map +1 -1
  106. package/dist/admin/admin/src/hooks/useRBAC.js +7 -3
  107. package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
  108. package/dist/admin/admin/src/hooks/useSettingsMenu.js +7 -3
  109. package/dist/admin/admin/src/hooks/useSettingsMenu.js.map +1 -1
  110. package/dist/admin/admin/src/hooks/useThrottledCallback.js +5 -1
  111. package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
  112. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +11 -5
  113. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  114. package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js +3 -2
  115. package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js.map +1 -1
  116. package/dist/admin/admin/src/pages/Auth/components/Login.js +8 -4
  117. package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
  118. package/dist/admin/admin/src/pages/Auth/components/Oops.js +3 -2
  119. package/dist/admin/admin/src/pages/Auth/components/Oops.js.map +1 -1
  120. package/dist/admin/admin/src/pages/Auth/components/Register.js +9 -5
  121. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  122. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +4 -3
  123. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
  124. package/dist/admin/admin/src/pages/Home/HomePage.js +3 -2
  125. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  126. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js +8 -4
  127. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
  128. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +7 -3
  129. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  130. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +7 -3
  131. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
  132. package/dist/admin/admin/src/pages/ProfilePage.js +8 -4
  133. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  134. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +3 -2
  135. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  136. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -2
  137. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  138. package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js +3 -2
  139. package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js.map +1 -1
  140. package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js +3 -2
  141. package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js.map +1 -1
  142. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js +3 -2
  143. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js.map +1 -1
  144. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js +3 -2
  145. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js.map +1 -1
  146. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js +4 -3
  147. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js.map +1 -1
  148. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +3 -2
  149. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  150. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +7 -2
  151. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  152. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +5 -1
  153. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  154. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js +6 -2
  155. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js.map +1 -1
  156. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +4 -3
  157. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  158. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +3 -2
  159. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  160. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +7 -3
  161. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  162. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js +3 -2
  163. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
  164. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +4 -3
  165. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  166. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +4 -3
  167. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  168. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js +3 -2
  169. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
  170. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +10 -6
  171. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  172. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js +3 -2
  173. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
  174. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +13 -7
  175. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  176. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +15 -9
  177. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  178. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js +9 -5
  179. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  180. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +33 -25
  181. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  182. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +10 -6
  183. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  184. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js +3 -2
  185. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
  186. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js +9 -3
  187. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js.map +1 -1
  188. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js +8 -3
  189. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
  190. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js +6 -2
  191. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js.map +1 -1
  192. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js +8 -3
  193. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js.map +1 -1
  194. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +4 -3
  195. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  196. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +4 -3
  197. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
  198. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +9 -5
  199. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  200. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +4 -3
  201. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  202. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js +3 -2
  203. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js.map +1 -1
  204. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js +4 -3
  205. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
  206. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js +3 -2
  207. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js.map +1 -1
  208. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js +3 -2
  209. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
  210. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +3 -2
  211. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  212. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +3 -2
  213. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  214. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +4 -3
  215. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  216. package/dist/admin/admin/src/pages/UseCasePage.js +3 -2
  217. package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
  218. package/dist/admin/admin/src/utils/getFetchClient.js +7 -2
  219. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  220. package/dist/admin/admin/src/utils/locales.js +3 -2
  221. package/dist/admin/admin/src/utils/locales.js.map +1 -1
  222. package/dist/admin/admin/src/utils/objects.js +9 -4
  223. package/dist/admin/admin/src/utils/objects.js.map +1 -1
  224. package/dist/admin/admin/src/utils/rulesEngine.js +5 -1
  225. package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
  226. package/dist/admin/admin/src/utils/urls.js +5 -1
  227. package/dist/admin/admin/src/utils/urls.js.map +1 -1
  228. package/dist/admin/admin/tests/utils.js +3 -2
  229. package/dist/admin/admin/tests/utils.js.map +1 -1
  230. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js +7 -3
  231. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
  232. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js +3 -2
  233. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js.map +1 -1
  234. package/dist/admin/ee/admin/src/pages/AuthResponse.js +3 -2
  235. package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
  236. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +3 -2
  237. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  238. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js +3 -2
  239. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
  240. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js +5 -1
  241. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
  242. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +3 -2
  243. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  244. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js +7 -3
  245. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js.map +1 -1
  246. package/dist/admin/src/StrapiApp.d.ts +7 -1
  247. package/dist/admin/src/core/apis/router.d.ts +1 -2
  248. package/dist/admin/src/hooks/useIdleSessionLogout.d.ts +66 -12
  249. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +5 -1
  250. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  251. package/dist/server/ee/server/src/controllers/authentication.js +5 -1
  252. package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
  253. package/dist/server/ee/server/src/controllers/user.js +6 -2
  254. package/dist/server/ee/server/src/controllers/user.js.map +1 -1
  255. package/dist/server/ee/server/src/services/auth.js +5 -1
  256. package/dist/server/ee/server/src/services/auth.js.map +1 -1
  257. package/dist/server/ee/server/src/services/user.js +8 -4
  258. package/dist/server/ee/server/src/services/user.js.map +1 -1
  259. package/dist/server/index.js +6 -2
  260. package/dist/server/index.js.map +1 -1
  261. package/dist/server/server/src/ai/services/ai.js +10 -4
  262. package/dist/server/server/src/ai/services/ai.js.map +1 -1
  263. package/dist/server/server/src/controllers/admin.js +9 -4
  264. package/dist/server/server/src/controllers/admin.js.map +1 -1
  265. package/dist/server/server/src/controllers/authentication.js +7 -2
  266. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  267. package/dist/server/server/src/controllers/user.js +3 -2
  268. package/dist/server/server/src/controllers/user.js.map +1 -1
  269. package/dist/server/server/src/controllers/webhooks.js +7 -2
  270. package/dist/server/server/src/controllers/webhooks.js.map +1 -1
  271. package/dist/server/server/src/middlewares/rateLimit.js +7 -2
  272. package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
  273. package/dist/server/server/src/policies/hasPermissions.js +7 -3
  274. package/dist/server/server/src/policies/hasPermissions.js.map +1 -1
  275. package/dist/server/server/src/routes/serve-admin-panel.js +8 -3
  276. package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
  277. package/dist/server/server/src/services/api-token.js +7 -3
  278. package/dist/server/server/src/services/api-token.js.map +1 -1
  279. package/dist/server/server/src/services/auth.js +8 -3
  280. package/dist/server/server/src/services/auth.js.map +1 -1
  281. package/dist/server/server/src/services/content-type.js +6 -2
  282. package/dist/server/server/src/services/content-type.js.map +1 -1
  283. package/dist/server/server/src/services/encryption.js +8 -4
  284. package/dist/server/server/src/services/encryption.js.map +1 -1
  285. package/dist/server/server/src/services/passport.js +6 -2
  286. package/dist/server/server/src/services/passport.js.map +1 -1
  287. package/dist/server/server/src/services/permission/engine.js +5 -1
  288. package/dist/server/server/src/services/permission/engine.js.map +1 -1
  289. package/dist/server/server/src/services/permission/permissions-manager/index.js +5 -1
  290. package/dist/server/server/src/services/permission/permissions-manager/index.js.map +1 -1
  291. package/dist/server/server/src/services/permission/permissions-manager/query-builders.js +14 -10
  292. package/dist/server/server/src/services/permission/permissions-manager/query-builders.js.map +1 -1
  293. package/dist/server/server/src/services/permission/queries.js +5 -1
  294. package/dist/server/server/src/services/permission/queries.js.map +1 -1
  295. package/dist/server/server/src/services/project-settings.js +6 -2
  296. package/dist/server/server/src/services/project-settings.js.map +1 -1
  297. package/dist/server/server/src/services/role.js +8 -4
  298. package/dist/server/server/src/services/role.js.map +1 -1
  299. package/dist/server/server/src/services/token.js +7 -2
  300. package/dist/server/server/src/services/token.js.map +1 -1
  301. package/dist/server/server/src/services/transfer/permission.js +5 -1
  302. package/dist/server/server/src/services/transfer/permission.js.map +1 -1
  303. package/dist/server/server/src/services/transfer/token.js +10 -5
  304. package/dist/server/server/src/services/transfer/token.js.map +1 -1
  305. package/dist/server/server/src/services/user.js +10 -6
  306. package/dist/server/server/src/services/user.js.map +1 -1
  307. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js +5 -1
  308. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
  309. package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js +6 -2
  310. package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js.map +1 -1
  311. package/dist/server/server/src/validation/common-validators.js +6 -2
  312. package/dist/server/server/src/validation/common-validators.js.map +1 -1
  313. package/dist/server/server/src/validation/policies/hasPermissions.js +6 -2
  314. package/dist/server/server/src/validation/policies/hasPermissions.js.map +1 -1
  315. package/dist/server/shared/utils/session-auth.js +5 -1
  316. package/dist/server/shared/utils/session-auth.js.map +1 -1
  317. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"ContentTypeCollapses.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Checkbox, Box, BoxComponent, Flex, FlexComponent, Modal } from '@strapi/design-system';\nimport { ChevronDown, ChevronUp } from '@strapi/icons';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport omit from 'lodash/omit';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme } from 'styled-components';\n\nimport { Action, Subject } from '../../../../../../../shared/contracts/permissions';\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, rowHeight } from '../utils/constants';\nimport { createArrayOfValues } from '../utils/createArrayOfValues';\nimport { ConditionForm } from '../utils/forms';\nimport { getCheckboxState } from '../utils/getCheckboxState';\n\nimport { CollapsePropertyMatrix } from './CollapsePropertyMatrix';\nimport { ConditionsButton } from './ConditionsButton';\nimport { ConditionsModal } from './ConditionsModal';\nimport { HiddenAction } from './HiddenAction';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * ContentTypeCollapses\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ContentTypeCollapsesProps extends Pick<CollapseProps, 'pathToData'> {\n actions?: Action[];\n isFormDisabled?: boolean;\n subjects?: Subject[];\n}\n\nconst ContentTypeCollapses = ({\n actions = [],\n isFormDisabled,\n pathToData,\n subjects = [],\n}: ContentTypeCollapsesProps) => {\n const [collapseToOpen, setCollapseToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleCollapse = (collapseName: string) => () => {\n const nextCollapseToOpen = collapseToOpen === collapseName ? null : collapseName;\n\n setCollapseToOpen(nextCollapseToOpen);\n };\n\n const subjectsWithActions = React.useMemo(\n () =>\n subjects.map(({ uid, label, properties }) => {\n const availableActions = actions.map((action) => ({\n ...action,\n isDisplayed: Array.isArray(action.subjects) && action.subjects.indexOf(uid) !== -1,\n }));\n return { uid, label, properties, availableActions };\n }),\n [subjects, actions]\n );\n\n return (\n <>\n {subjectsWithActions.map(({ uid, label, properties, availableActions }, index) => {\n const isActive = collapseToOpen === uid;\n return (\n <Flex\n key={uid}\n direction=\"column\"\n display=\"inline-flex\"\n alignItems=\"stretch\"\n minWidth=\"100%\"\n borderColor={isActive ? 'primary600' : undefined}\n >\n <Collapse\n availableActions={availableActions}\n isActive={isActive}\n isGrey={index % 2 === 0}\n isFormDisabled={isFormDisabled}\n label={label}\n onClickToggle={handleClickToggleCollapse(uid)}\n pathToData={[pathToData, uid].join('..')}\n subject={uid}\n />\n {isActive &&\n properties.map(({ label: propertyLabel, value, children: childrenForm }) => {\n return (\n <CollapsePropertyMatrix\n availableActions={availableActions}\n childrenForm={childrenForm}\n isFormDisabled={isFormDisabled}\n label={propertyLabel}\n pathToData={[pathToData, uid].join('..')}\n propertyName={value}\n key={value}\n subject={uid}\n />\n );\n })}\n </Flex>\n );\n })}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Collapse\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapseProps\n extends Pick<RowLabelWithCheckboxProps, 'isActive' | 'isFormDisabled' | 'label'> {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n isGrey?: boolean;\n onClickToggle: RowLabelWithCheckboxProps['onClick'];\n pathToData: string;\n subject: string;\n}\n\nconst Collapse = ({\n availableActions = [],\n isActive = false,\n isGrey = false,\n isFormDisabled = false,\n label,\n onClickToggle,\n pathToData,\n subject,\n}: CollapseProps) => {\n const { formatMessage } = useIntl();\n const {\n modifiedData,\n onChangeParentCheckbox,\n onChangeSimpleCheckbox,\n checkUserHasPermission,\n userPermissions,\n } = usePermissionsDataManager();\n const [isConditionModalOpen, setIsConditionModalOpen] = React.useState(false);\n\n // This corresponds to the data related to the CT left checkbox\n // modifiedData: { collectionTypes: { [ctuid]: {create: {properties: { fields: {f1: true} }, update: {}, ... } } } }\n const mainData = get(modifiedData, pathToData.split('..'), {});\n // The utils we are using: getCheckboxState, retrieves all the boolean leafs of an object in order\n // to return the state of checkbox. Since the conditions are not related to the property we need to remove the key from the object.\n const dataWithoutCondition = React.useMemo(() => {\n return Object.keys(mainData).reduce<Record<string, ConditionForm>>((acc, current) => {\n acc[current] = omit(mainData[current], 'conditions');\n\n return acc;\n }, {});\n }, [mainData]);\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(dataWithoutCondition);\n\n // Here we create an array of <checkbox>, since the state of each one of them is used in\n // order to know if whether or not we need to display the associated action in\n // the <ConditionsModal />\n const checkboxesActions = React.useMemo(() => {\n return generateCheckboxesActions(availableActions, modifiedData, pathToData);\n }, [availableActions, modifiedData, pathToData]);\n\n // @ts-expect-error – hasConditions does not exist on all versions of checkboxesActions.\n const doesConditionButtonHasConditions = checkboxesActions.some((action) => action.hasConditions);\n\n return (\n <BoxWrapper $isActive={isActive}>\n <Wrapper\n height={rowHeight}\n flex={1}\n alignItems=\"center\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n >\n <RowLabelWithCheckbox\n isCollapsable\n isFormDisabled={isFormDisabled}\n label={capitalise(label)}\n checkboxName={pathToData}\n onChange={onChangeParentCheckbox}\n onClick={onClickToggle}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n <Chevron paddingLeft={2}>{isActive ? <ChevronUp /> : <ChevronDown />}</Chevron>\n </RowLabelWithCheckbox>\n\n <Flex style={{ flex: 1 }}>\n {checkboxesActions.map(\n ({ actionId, hasSomeActionsSelected, isDisplayed, ...restAction }) => {\n if (!isDisplayed) {\n return <HiddenAction key={actionId} />;\n }\n\n const {\n hasConditions,\n hasAllActionsSelected,\n isParentCheckbox,\n checkboxName,\n label: permissionLabel,\n } = restAction as VisibleCheckboxAction;\n\n const userHasPermission = checkUserHasPermission(actionId, subject);\n\n if (isParentCheckbox) {\n return (\n <Cell key={actionId} justifyContent=\"center\" alignItems=\"center\">\n <Box position=\"relative\" zIndex={1}>\n {hasConditions && (\n <Box\n tag=\"span\"\n position=\"absolute\"\n top=\"-6px\"\n left=\"37px\"\n width=\"6px\"\n height=\"6px\"\n borderRadius=\"20px\"\n background=\"primary600\"\n />\n )}\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${permissionLabel} ${label}` }\n )}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName,\n value: !!value,\n },\n });\n }}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Box>\n </Cell>\n );\n }\n\n return (\n <Cell key={actionId} justifyContent=\"center\" alignItems=\"center\">\n {hasConditions && (\n <Box\n tag=\"span\"\n position=\"absolute\"\n top=\"-6px\"\n left=\"37px\"\n width=\"6px\"\n height=\"6px\"\n borderRadius=\"20px\"\n background=\"primary600\"\n />\n )}\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName,\n value: !!value,\n },\n });\n }}\n checked={hasConditions ? 'indeterminate' : hasAllActionsSelected}\n />\n </Cell>\n );\n }\n )}\n </Flex>\n </Wrapper>\n <Box bottom=\"10px\" right=\"9px\" position=\"absolute\">\n <Modal.Root\n open={isConditionModalOpen}\n onOpenChange={() => {\n setIsConditionModalOpen((prev) => !prev);\n }}\n >\n <Modal.Trigger>\n <ConditionsButton hasConditions={doesConditionButtonHasConditions} />\n </Modal.Trigger>\n <ConditionsModal\n headerBreadCrumbs={[label, 'Settings.permissions.conditions.conditions']}\n actions={checkboxesActions}\n isFormDisabled={isFormDisabled}\n isReadOnly={userPermissions !== undefined}\n onClose={() => {\n setIsConditionModalOpen(false);\n }}\n />\n </Modal.Root>\n </Box>\n </BoxWrapper>\n );\n};\n\ninterface VisibleCheckboxAction {\n actionId: string;\n hasAllActionsSelected: boolean;\n hasSomeActionsSelected: boolean;\n isDisplayed: true;\n isParentCheckbox: boolean;\n checkboxName: string;\n label: string;\n hasConditions: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface HiddenCheckboxAction {\n actionId: string;\n isDisplayed: false;\n hasAllActionsSelected?: never;\n hasSomeActionsSelected: boolean;\n}\n\nconst generateCheckboxesActions = (\n availableActions: Array<Action & { isDisplayed: boolean }>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToData: string\n): Array<VisibleCheckboxAction | HiddenCheckboxAction> => {\n return availableActions.map(({ actionId, isDisplayed, applyToProperties, label }) => {\n if (!isDisplayed) {\n return { actionId, hasSomeActionsSelected: false, isDisplayed };\n }\n\n const baseCheckboxNameArray = [...pathToData.split('..'), actionId];\n const checkboxNameArray = isEmpty(applyToProperties)\n ? [...baseCheckboxNameArray, 'properties', 'enabled']\n : baseCheckboxNameArray;\n const conditionsValue = get(modifiedData, [...baseCheckboxNameArray, 'conditions'], null);\n\n const baseCheckboxAction = {\n actionId,\n checkboxName: checkboxNameArray.join('..'),\n hasConditions: createArrayOfValues(conditionsValue).some((val) => val),\n isDisplayed,\n label,\n pathToConditionsObject: baseCheckboxNameArray,\n };\n\n if (isEmpty(applyToProperties)) {\n const value = get(modifiedData, checkboxNameArray, false);\n\n // Since applyToProperties is empty it is not a parent checkbox, therefore hasAllActionsSelected is\n // equal to hasSomeActionsSelected\n return {\n ...baseCheckboxAction,\n hasAllActionsSelected: value,\n hasSomeActionsSelected: value,\n isParentCheckbox: false,\n };\n }\n\n const mainData = get(modifiedData, checkboxNameArray, null);\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(mainData);\n\n return {\n ...baseCheckboxAction,\n hasAllActionsSelected,\n hasSomeActionsSelected,\n isParentCheckbox: true,\n };\n });\n};\n\nconst activeRowStyle = (theme: DefaultTheme, isActive?: boolean): string => `\n ${Wrapper} {\n background-color: ${theme.colors.primary100};\n color: ${theme.colors.primary600};\n border-radius: ${isActive ? '2px 2px 0 0' : '2px'};\n font-weight: ${theme.fontWeights.bold};\n }\n\n ${Chevron} {\n display: flex;\n }\n ${ConditionsButton} {\n display: block;\n }\n\n &:focus-within {\n ${() => activeRowStyle(theme, isActive)}\n }\n`;\n\nconst Wrapper = styled<FlexComponent>(Flex)`\n border: 1px solid transparent;\n`;\n\nconst BoxWrapper = styled.div<{ $isActive: boolean }>`\n display: inline-flex;\n min-width: 100%;\n position: relative;\n\n ${ConditionsButton} {\n display: none;\n }\n\n ${({ $isActive, theme }) => $isActive && activeRowStyle(theme, $isActive)}\n\n &:hover {\n ${({ theme, $isActive }) => activeRowStyle(theme, $isActive)}\n }\n`;\n\nconst Cell = styled<FlexComponent>(Flex)`\n width: ${cellWidth};\n position: relative;\n`;\n\nconst Chevron = styled<BoxComponent>(Box)`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nexport { ContentTypeCollapses };\nexport type { ContentTypeCollapsesProps, HiddenCheckboxAction, VisibleCheckboxAction };\n"],"names":["ContentTypeCollapses","actions","isFormDisabled","pathToData","subjects","collapseToOpen","setCollapseToOpen","React","useState","handleClickToggleCollapse","collapseName","nextCollapseToOpen","subjectsWithActions","useMemo","map","uid","label","properties","availableActions","action","isDisplayed","Array","isArray","indexOf","_jsx","_Fragment","index","isActive","_jsxs","Flex","direction","display","alignItems","minWidth","borderColor","undefined","Collapse","isGrey","onClickToggle","join","subject","propertyLabel","value","children","childrenForm","CollapsePropertyMatrix","propertyName","formatMessage","useIntl","modifiedData","onChangeParentCheckbox","onChangeSimpleCheckbox","checkUserHasPermission","userPermissions","usePermissionsDataManager","isConditionModalOpen","setIsConditionModalOpen","mainData","get","split","dataWithoutCondition","Object","keys","reduce","acc","current","omit","hasAllActionsSelected","hasSomeActionsSelected","getCheckboxState","checkboxesActions","generateCheckboxesActions","doesConditionButtonHasConditions","some","hasConditions","BoxWrapper","$isActive","Wrapper","height","rowHeight","flex","background","RowLabelWithCheckbox","isCollapsable","capitalise","checkboxName","onChange","onClick","someChecked","Chevron","paddingLeft","ChevronUp","ChevronDown","style","actionId","restAction","HiddenAction","isParentCheckbox","permissionLabel","userHasPermission","Cell","justifyContent","Box","position","zIndex","tag","top","left","width","borderRadius","Checkbox","disabled","name","aria-label","id","defaultMessage","onCheckedChange","target","checked","bottom","right","Modal","Root","open","onOpenChange","prev","Trigger","ConditionsButton","ConditionsModal","headerBreadCrumbs","isReadOnly","onClose","applyToProperties","baseCheckboxNameArray","checkboxNameArray","isEmpty","conditionsValue","baseCheckboxAction","createArrayOfValues","val","pathToConditionsObject","activeRowStyle","theme","colors","primary100","primary600","fontWeights","bold","styled","div","cellWidth"],"mappings":"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"}
1
+ {"version":3,"file":"ContentTypeCollapses.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Checkbox, Box, BoxComponent, Flex, FlexComponent, Modal } from '@strapi/design-system';\nimport { ChevronDown, ChevronUp } from '@strapi/icons';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport omit from 'lodash/omit';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme } from 'styled-components';\n\nimport { Action, Subject } from '../../../../../../../shared/contracts/permissions';\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, rowHeight } from '../utils/constants';\nimport { createArrayOfValues } from '../utils/createArrayOfValues';\nimport { ConditionForm } from '../utils/forms';\nimport { getCheckboxState } from '../utils/getCheckboxState';\n\nimport { CollapsePropertyMatrix } from './CollapsePropertyMatrix';\nimport { ConditionsButton } from './ConditionsButton';\nimport { ConditionsModal } from './ConditionsModal';\nimport { HiddenAction } from './HiddenAction';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * ContentTypeCollapses\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ContentTypeCollapsesProps extends Pick<CollapseProps, 'pathToData'> {\n actions?: Action[];\n isFormDisabled?: boolean;\n subjects?: Subject[];\n}\n\nconst ContentTypeCollapses = ({\n actions = [],\n isFormDisabled,\n pathToData,\n subjects = [],\n}: ContentTypeCollapsesProps) => {\n const [collapseToOpen, setCollapseToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleCollapse = (collapseName: string) => () => {\n const nextCollapseToOpen = collapseToOpen === collapseName ? null : collapseName;\n\n setCollapseToOpen(nextCollapseToOpen);\n };\n\n const subjectsWithActions = React.useMemo(\n () =>\n subjects.map(({ uid, label, properties }) => {\n const availableActions = actions.map((action) => ({\n ...action,\n isDisplayed: Array.isArray(action.subjects) && action.subjects.indexOf(uid) !== -1,\n }));\n return { uid, label, properties, availableActions };\n }),\n [subjects, actions]\n );\n\n return (\n <>\n {subjectsWithActions.map(({ uid, label, properties, availableActions }, index) => {\n const isActive = collapseToOpen === uid;\n return (\n <Flex\n key={uid}\n direction=\"column\"\n display=\"inline-flex\"\n alignItems=\"stretch\"\n minWidth=\"100%\"\n borderColor={isActive ? 'primary600' : undefined}\n >\n <Collapse\n availableActions={availableActions}\n isActive={isActive}\n isGrey={index % 2 === 0}\n isFormDisabled={isFormDisabled}\n label={label}\n onClickToggle={handleClickToggleCollapse(uid)}\n pathToData={[pathToData, uid].join('..')}\n subject={uid}\n />\n {isActive &&\n properties.map(({ label: propertyLabel, value, children: childrenForm }) => {\n return (\n <CollapsePropertyMatrix\n availableActions={availableActions}\n childrenForm={childrenForm}\n isFormDisabled={isFormDisabled}\n label={propertyLabel}\n pathToData={[pathToData, uid].join('..')}\n propertyName={value}\n key={value}\n subject={uid}\n />\n );\n })}\n </Flex>\n );\n })}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Collapse\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapseProps\n extends Pick<RowLabelWithCheckboxProps, 'isActive' | 'isFormDisabled' | 'label'> {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n isGrey?: boolean;\n onClickToggle: RowLabelWithCheckboxProps['onClick'];\n pathToData: string;\n subject: string;\n}\n\nconst Collapse = ({\n availableActions = [],\n isActive = false,\n isGrey = false,\n isFormDisabled = false,\n label,\n onClickToggle,\n pathToData,\n subject,\n}: CollapseProps) => {\n const { formatMessage } = useIntl();\n const {\n modifiedData,\n onChangeParentCheckbox,\n onChangeSimpleCheckbox,\n checkUserHasPermission,\n userPermissions,\n } = usePermissionsDataManager();\n const [isConditionModalOpen, setIsConditionModalOpen] = React.useState(false);\n\n // This corresponds to the data related to the CT left checkbox\n // modifiedData: { collectionTypes: { [ctuid]: {create: {properties: { fields: {f1: true} }, update: {}, ... } } } }\n const mainData = get(modifiedData, pathToData.split('..'), {});\n // The utils we are using: getCheckboxState, retrieves all the boolean leafs of an object in order\n // to return the state of checkbox. Since the conditions are not related to the property we need to remove the key from the object.\n const dataWithoutCondition = React.useMemo(() => {\n return Object.keys(mainData).reduce<Record<string, ConditionForm>>((acc, current) => {\n acc[current] = omit(mainData[current], 'conditions');\n\n return acc;\n }, {});\n }, [mainData]);\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(dataWithoutCondition);\n\n // Here we create an array of <checkbox>, since the state of each one of them is used in\n // order to know if whether or not we need to display the associated action in\n // the <ConditionsModal />\n const checkboxesActions = React.useMemo(() => {\n return generateCheckboxesActions(availableActions, modifiedData, pathToData);\n }, [availableActions, modifiedData, pathToData]);\n\n // @ts-expect-error – hasConditions does not exist on all versions of checkboxesActions.\n const doesConditionButtonHasConditions = checkboxesActions.some((action) => action.hasConditions);\n\n return (\n <BoxWrapper $isActive={isActive}>\n <Wrapper\n height={rowHeight}\n flex={1}\n alignItems=\"center\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n >\n <RowLabelWithCheckbox\n isCollapsable\n isFormDisabled={isFormDisabled}\n label={capitalise(label)}\n checkboxName={pathToData}\n onChange={onChangeParentCheckbox}\n onClick={onClickToggle}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n <Chevron paddingLeft={2}>{isActive ? <ChevronUp /> : <ChevronDown />}</Chevron>\n </RowLabelWithCheckbox>\n\n <Flex style={{ flex: 1 }}>\n {checkboxesActions.map(\n ({ actionId, hasSomeActionsSelected, isDisplayed, ...restAction }) => {\n if (!isDisplayed) {\n return <HiddenAction key={actionId} />;\n }\n\n const {\n hasConditions,\n hasAllActionsSelected,\n isParentCheckbox,\n checkboxName,\n label: permissionLabel,\n } = restAction as VisibleCheckboxAction;\n\n const userHasPermission = checkUserHasPermission(actionId, subject);\n\n if (isParentCheckbox) {\n return (\n <Cell key={actionId} justifyContent=\"center\" alignItems=\"center\">\n <Box position=\"relative\" zIndex={1}>\n {hasConditions && (\n <Box\n tag=\"span\"\n position=\"absolute\"\n top=\"-6px\"\n left=\"37px\"\n width=\"6px\"\n height=\"6px\"\n borderRadius=\"20px\"\n background=\"primary600\"\n />\n )}\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${permissionLabel} ${label}` }\n )}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName,\n value: !!value,\n },\n });\n }}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Box>\n </Cell>\n );\n }\n\n return (\n <Cell key={actionId} justifyContent=\"center\" alignItems=\"center\">\n {hasConditions && (\n <Box\n tag=\"span\"\n position=\"absolute\"\n top=\"-6px\"\n left=\"37px\"\n width=\"6px\"\n height=\"6px\"\n borderRadius=\"20px\"\n background=\"primary600\"\n />\n )}\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName,\n value: !!value,\n },\n });\n }}\n checked={hasConditions ? 'indeterminate' : hasAllActionsSelected}\n />\n </Cell>\n );\n }\n )}\n </Flex>\n </Wrapper>\n <Box bottom=\"10px\" right=\"9px\" position=\"absolute\">\n <Modal.Root\n open={isConditionModalOpen}\n onOpenChange={() => {\n setIsConditionModalOpen((prev) => !prev);\n }}\n >\n <Modal.Trigger>\n <ConditionsButton hasConditions={doesConditionButtonHasConditions} />\n </Modal.Trigger>\n <ConditionsModal\n headerBreadCrumbs={[label, 'Settings.permissions.conditions.conditions']}\n actions={checkboxesActions}\n isFormDisabled={isFormDisabled}\n isReadOnly={userPermissions !== undefined}\n onClose={() => {\n setIsConditionModalOpen(false);\n }}\n />\n </Modal.Root>\n </Box>\n </BoxWrapper>\n );\n};\n\ninterface VisibleCheckboxAction {\n actionId: string;\n hasAllActionsSelected: boolean;\n hasSomeActionsSelected: boolean;\n isDisplayed: true;\n isParentCheckbox: boolean;\n checkboxName: string;\n label: string;\n hasConditions: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface HiddenCheckboxAction {\n actionId: string;\n isDisplayed: false;\n hasAllActionsSelected?: never;\n hasSomeActionsSelected: boolean;\n}\n\nconst generateCheckboxesActions = (\n availableActions: Array<Action & { isDisplayed: boolean }>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToData: string\n): Array<VisibleCheckboxAction | HiddenCheckboxAction> => {\n return availableActions.map(({ actionId, isDisplayed, applyToProperties, label }) => {\n if (!isDisplayed) {\n return { actionId, hasSomeActionsSelected: false, isDisplayed };\n }\n\n const baseCheckboxNameArray = [...pathToData.split('..'), actionId];\n const checkboxNameArray = isEmpty(applyToProperties)\n ? [...baseCheckboxNameArray, 'properties', 'enabled']\n : baseCheckboxNameArray;\n const conditionsValue = get(modifiedData, [...baseCheckboxNameArray, 'conditions'], null);\n\n const baseCheckboxAction = {\n actionId,\n checkboxName: checkboxNameArray.join('..'),\n hasConditions: createArrayOfValues(conditionsValue).some((val) => val),\n isDisplayed,\n label,\n pathToConditionsObject: baseCheckboxNameArray,\n };\n\n if (isEmpty(applyToProperties)) {\n const value = get(modifiedData, checkboxNameArray, false);\n\n // Since applyToProperties is empty it is not a parent checkbox, therefore hasAllActionsSelected is\n // equal to hasSomeActionsSelected\n return {\n ...baseCheckboxAction,\n hasAllActionsSelected: value,\n hasSomeActionsSelected: value,\n isParentCheckbox: false,\n };\n }\n\n const mainData = get(modifiedData, checkboxNameArray, null);\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(mainData);\n\n return {\n ...baseCheckboxAction,\n hasAllActionsSelected,\n hasSomeActionsSelected,\n isParentCheckbox: true,\n };\n });\n};\n\nconst activeRowStyle = (theme: DefaultTheme, isActive?: boolean): string => `\n ${Wrapper} {\n background-color: ${theme.colors.primary100};\n color: ${theme.colors.primary600};\n border-radius: ${isActive ? '2px 2px 0 0' : '2px'};\n font-weight: ${theme.fontWeights.bold};\n }\n\n ${Chevron} {\n display: flex;\n }\n ${ConditionsButton} {\n display: block;\n }\n\n &:focus-within {\n ${() => activeRowStyle(theme, isActive)}\n }\n`;\n\nconst Wrapper = styled<FlexComponent>(Flex)`\n border: 1px solid transparent;\n`;\n\nconst BoxWrapper = styled.div<{ $isActive: boolean }>`\n display: inline-flex;\n min-width: 100%;\n position: relative;\n\n ${ConditionsButton} {\n display: none;\n }\n\n ${({ $isActive, theme }) => $isActive && activeRowStyle(theme, $isActive)}\n\n &:hover {\n ${({ theme, $isActive }) => activeRowStyle(theme, $isActive)}\n }\n`;\n\nconst Cell = styled<FlexComponent>(Flex)`\n width: ${cellWidth};\n position: relative;\n`;\n\nconst Chevron = styled<BoxComponent>(Box)`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nexport { ContentTypeCollapses };\nexport type { ContentTypeCollapsesProps, HiddenCheckboxAction, VisibleCheckboxAction };\n"],"names":["ContentTypeCollapses","actions","isFormDisabled","pathToData","subjects","collapseToOpen","setCollapseToOpen","React","useState","handleClickToggleCollapse","collapseName","nextCollapseToOpen","subjectsWithActions","useMemo","map","uid","label","properties","availableActions","action","isDisplayed","Array","isArray","indexOf","_jsx","_Fragment","index","isActive","_jsxs","Flex","direction","display","alignItems","minWidth","borderColor","undefined","Collapse","isGrey","onClickToggle","join","subject","propertyLabel","value","children","childrenForm","CollapsePropertyMatrix","propertyName","formatMessage","useIntl","modifiedData","onChangeParentCheckbox","onChangeSimpleCheckbox","checkUserHasPermission","userPermissions","usePermissionsDataManager","isConditionModalOpen","setIsConditionModalOpen","mainData","get","split","dataWithoutCondition","Object","keys","reduce","acc","current","omit","hasAllActionsSelected","hasSomeActionsSelected","getCheckboxState","checkboxesActions","generateCheckboxesActions","doesConditionButtonHasConditions","some","hasConditions","BoxWrapper","$isActive","Wrapper","height","rowHeight","flex","background","RowLabelWithCheckbox","isCollapsable","capitalise","checkboxName","onChange","onClick","someChecked","Chevron","paddingLeft","ChevronUp","ChevronDown","style","actionId","restAction","HiddenAction","isParentCheckbox","permissionLabel","userHasPermission","Cell","justifyContent","Box","position","zIndex","tag","top","left","width","borderRadius","Checkbox","disabled","name","aria-label","id","defaultMessage","onCheckedChange","target","checked","bottom","right","Modal","Root","open","onOpenChange","prev","Trigger","ConditionsButton","ConditionsModal","headerBreadCrumbs","isReadOnly","onClose","applyToProperties","baseCheckboxNameArray","checkboxNameArray","isEmpty","conditionsValue","baseCheckboxAction","createArrayOfValues","val","pathToConditionsObject","activeRowStyle","theme","colors","primary100","primary600","fontWeights","bold","styled","div","cellWidth"],"mappings":"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"}
@@ -10,7 +10,10 @@ var constants = require('../utils/constants.js');
10
10
  var getCheckboxState = require('../utils/getCheckboxState.js');
11
11
  var removeConditionKeyFromData = require('../utils/removeConditionKeyFromData.js');
12
12
 
13
- function _interopNamespaceDefault(e) {
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ function _interopNamespace(e) {
16
+ if (e && e.__esModule) return e;
14
17
  var n = Object.create(null);
15
18
  if (e) {
16
19
  Object.keys(e).forEach(function (k) {
@@ -27,7 +30,8 @@ function _interopNamespaceDefault(e) {
27
30
  return Object.freeze(n);
28
31
  }
29
32
 
30
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
33
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
34
+ var get__default = /*#__PURE__*/_interopDefault(get);
31
35
 
32
36
  const GlobalActions = ({ actions = [], isFormDisabled, kind })=>{
33
37
  const { formatMessage } = reactIntl.useIntl();
@@ -38,7 +42,7 @@ const GlobalActions = ({ actions = [], isFormDisabled, kind })=>{
38
42
  const data = modifiedData[kind];
39
43
  const relatedActionsData = actionsIds.reduce((acc, actionId)=>{
40
44
  Object.keys(data).forEach((ctUid)=>{
41
- const actionIdData = get(data, [
45
+ const actionIdData = get__default.default(data, [
42
46
  ctUid,
43
47
  actionId
44
48
  ]);
@@ -108,10 +112,10 @@ const GlobalActions = ({ actions = [], isFormDisabled, kind })=>{
108
112
  defaultMessage: label
109
113
  })
110
114
  }),
111
- checked: get(checkboxesState, [
115
+ checked: get__default.default(checkboxesState, [
112
116
  actionId,
113
117
  'hasSomeActionsSelected'
114
- ], false) ? 'indeterminate' : get(checkboxesState, [
118
+ ], false) ? 'indeterminate' : get__default.default(checkboxesState, [
115
119
  actionId,
116
120
  'hasAllActionsSelected'
117
121
  ], false)
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalActions.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/GlobalActions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Checkbox, Box, Flex, Typography } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\n\nimport { Action } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth } from '../utils/constants';\nimport { RecursiveRecordOfBooleans, getCheckboxState } from '../utils/getCheckboxState';\nimport { removeConditionKeyFromData } from '../utils/removeConditionKeyFromData';\n\ninterface GlobalActionsProps {\n actions: Action[];\n isFormDisabled?: boolean;\n kind: Extract<keyof PermissionsDataManagerContextValue['modifiedData'], `${string}Types`>;\n}\n\nconst GlobalActions = ({ actions = [], isFormDisabled, kind }: GlobalActionsProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeCollectionTypeGlobalActionCheckbox, checkUserHasPermission } =\n usePermissionsDataManager();\n\n const displayedActions = actions.filter(({ subjects }) => subjects && subjects.length);\n\n const checkboxesState = React.useMemo(() => {\n const actionsIds = displayedActions.map(({ actionId }) => actionId);\n\n const data = modifiedData[kind];\n\n const relatedActionsData = actionsIds.reduce<Record<string, RecursiveRecordOfBooleans>>(\n (acc, actionId) => {\n Object.keys(data).forEach((ctUid) => {\n const actionIdData = get(data, [ctUid, actionId]);\n\n const actionIdState = { [ctUid]: removeConditionKeyFromData(actionIdData)! };\n\n if (!acc[actionId]) {\n acc[actionId] = actionIdState;\n } else {\n acc[actionId] = { ...acc[actionId], ...actionIdState };\n }\n });\n\n return acc;\n },\n {}\n );\n\n const checkboxesState = Object.keys(relatedActionsData).reduce<\n Record<\n string,\n {\n hasAllActionsSelected: boolean;\n hasSomeActionsSelected: boolean;\n }\n >\n >((acc, current) => {\n acc[current] = getCheckboxState(relatedActionsData[current]);\n\n return acc;\n }, {});\n\n return checkboxesState;\n }, [modifiedData, displayedActions, kind]);\n\n return (\n <Box paddingBottom={4} paddingTop={6} style={{ paddingLeft: firstRowWidth }}>\n <Flex gap={0}>\n {displayedActions.map(({ label, actionId, subjects }) => {\n const allSubjects = subjects || [];\n const userHasPermissionForAll =\n allSubjects.length > 0 &&\n allSubjects.every((subject) => checkUserHasPermission(actionId, subject));\n\n return (\n <Flex\n shrink={0}\n width={cellWidth}\n direction=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n key={actionId}\n gap={3}\n >\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n })}\n </Typography>\n <Checkbox\n disabled={isFormDisabled || !userHasPermissionForAll}\n onCheckedChange={(value) => {\n onChangeCollectionTypeGlobalActionCheckbox(kind, actionId, !!value);\n }}\n name={actionId}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-all-by-permission`,\n defaultMessage: 'Select all {label} permissions',\n },\n {\n label: formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n }),\n }\n )}\n checked={\n get(checkboxesState, [actionId, 'hasSomeActionsSelected'], false)\n ? 'indeterminate'\n : get(checkboxesState, [actionId, 'hasAllActionsSelected'], false)\n }\n />\n </Flex>\n );\n })}\n </Flex>\n </Box>\n );\n};\n\nexport { GlobalActions };\nexport type { GlobalActionsProps };\n"],"names":["GlobalActions","actions","isFormDisabled","kind","formatMessage","useIntl","modifiedData","onChangeCollectionTypeGlobalActionCheckbox","checkUserHasPermission","usePermissionsDataManager","displayedActions","filter","subjects","length","checkboxesState","React","useMemo","actionsIds","map","actionId","data","relatedActionsData","reduce","acc","Object","keys","forEach","ctUid","actionIdData","get","actionIdState","removeConditionKeyFromData","current","getCheckboxState","_jsx","Box","paddingBottom","paddingTop","style","paddingLeft","firstRowWidth","Flex","gap","label","allSubjects","userHasPermissionForAll","every","subject","_jsxs","shrink","width","cellWidth","direction","alignItems","justifyContent","Typography","variant","textColor","id","toLowerCase","defaultMessage","Checkbox","disabled","onCheckedChange","value","name","aria-label","checked"],"mappings":"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"}
1
+ {"version":3,"file":"GlobalActions.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/GlobalActions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Checkbox, Box, Flex, Typography } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\n\nimport { Action } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth } from '../utils/constants';\nimport { RecursiveRecordOfBooleans, getCheckboxState } from '../utils/getCheckboxState';\nimport { removeConditionKeyFromData } from '../utils/removeConditionKeyFromData';\n\ninterface GlobalActionsProps {\n actions: Action[];\n isFormDisabled?: boolean;\n kind: Extract<keyof PermissionsDataManagerContextValue['modifiedData'], `${string}Types`>;\n}\n\nconst GlobalActions = ({ actions = [], isFormDisabled, kind }: GlobalActionsProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeCollectionTypeGlobalActionCheckbox, checkUserHasPermission } =\n usePermissionsDataManager();\n\n const displayedActions = actions.filter(({ subjects }) => subjects && subjects.length);\n\n const checkboxesState = React.useMemo(() => {\n const actionsIds = displayedActions.map(({ actionId }) => actionId);\n\n const data = modifiedData[kind];\n\n const relatedActionsData = actionsIds.reduce<Record<string, RecursiveRecordOfBooleans>>(\n (acc, actionId) => {\n Object.keys(data).forEach((ctUid) => {\n const actionIdData = get(data, [ctUid, actionId]);\n\n const actionIdState = { [ctUid]: removeConditionKeyFromData(actionIdData)! };\n\n if (!acc[actionId]) {\n acc[actionId] = actionIdState;\n } else {\n acc[actionId] = { ...acc[actionId], ...actionIdState };\n }\n });\n\n return acc;\n },\n {}\n );\n\n const checkboxesState = Object.keys(relatedActionsData).reduce<\n Record<\n string,\n {\n hasAllActionsSelected: boolean;\n hasSomeActionsSelected: boolean;\n }\n >\n >((acc, current) => {\n acc[current] = getCheckboxState(relatedActionsData[current]);\n\n return acc;\n }, {});\n\n return checkboxesState;\n }, [modifiedData, displayedActions, kind]);\n\n return (\n <Box paddingBottom={4} paddingTop={6} style={{ paddingLeft: firstRowWidth }}>\n <Flex gap={0}>\n {displayedActions.map(({ label, actionId, subjects }) => {\n const allSubjects = subjects || [];\n const userHasPermissionForAll =\n allSubjects.length > 0 &&\n allSubjects.every((subject) => checkUserHasPermission(actionId, subject));\n\n return (\n <Flex\n shrink={0}\n width={cellWidth}\n direction=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n key={actionId}\n gap={3}\n >\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n })}\n </Typography>\n <Checkbox\n disabled={isFormDisabled || !userHasPermissionForAll}\n onCheckedChange={(value) => {\n onChangeCollectionTypeGlobalActionCheckbox(kind, actionId, !!value);\n }}\n name={actionId}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-all-by-permission`,\n defaultMessage: 'Select all {label} permissions',\n },\n {\n label: formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n }),\n }\n )}\n checked={\n get(checkboxesState, [actionId, 'hasSomeActionsSelected'], false)\n ? 'indeterminate'\n : get(checkboxesState, [actionId, 'hasAllActionsSelected'], false)\n }\n />\n </Flex>\n );\n })}\n </Flex>\n </Box>\n );\n};\n\nexport { GlobalActions };\nexport type { GlobalActionsProps };\n"],"names":["GlobalActions","actions","isFormDisabled","kind","formatMessage","useIntl","modifiedData","onChangeCollectionTypeGlobalActionCheckbox","checkUserHasPermission","usePermissionsDataManager","displayedActions","filter","subjects","length","checkboxesState","React","useMemo","actionsIds","map","actionId","data","relatedActionsData","reduce","acc","Object","keys","forEach","ctUid","actionIdData","get","actionIdState","removeConditionKeyFromData","current","getCheckboxState","_jsx","Box","paddingBottom","paddingTop","style","paddingLeft","firstRowWidth","Flex","gap","label","allSubjects","userHasPermissionForAll","every","subject","_jsxs","shrink","width","cellWidth","direction","alignItems","justifyContent","Typography","variant","textColor","id","toLowerCase","defaultMessage","Checkbox","disabled","onCheckedChange","value","name","aria-label","checked"],"mappings":"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"}
@@ -22,7 +22,10 @@ var updateValues = require('../utils/updateValues.js');
22
22
  var ContentTypes = require('./ContentTypes.js');
23
23
  var PluginsAndSettings = require('./PluginsAndSettings.js');
24
24
 
25
- function _interopNamespaceDefault(e) {
25
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
26
+
27
+ function _interopNamespace(e) {
28
+ if (e && e.__esModule) return e;
26
29
  var n = Object.create(null);
27
30
  if (e) {
28
31
  Object.keys(e).forEach(function (k) {
@@ -39,7 +42,12 @@ function _interopNamespaceDefault(e) {
39
42
  return Object.freeze(n);
40
43
  }
41
44
 
42
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
45
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
46
+ var cloneDeep__default = /*#__PURE__*/_interopDefault(cloneDeep);
47
+ var get__default = /*#__PURE__*/_interopDefault(get);
48
+ var has__default = /*#__PURE__*/_interopDefault(has);
49
+ var isEmpty__default = /*#__PURE__*/_interopDefault(isEmpty);
50
+ var set__default = /*#__PURE__*/_interopDefault(set);
43
51
 
44
52
  const TAB_LABELS = [
45
53
  {
@@ -76,11 +84,11 @@ const Permissions = /*#__PURE__*/ React__namespace.forwardRef(({ layout, isFormD
76
84
  ...singleTypesDiff
77
85
  };
78
86
  let didUpdateConditions;
79
- if (isEmpty(contentTypesDiff)) {
87
+ if (isEmpty__default.default(contentTypesDiff)) {
80
88
  didUpdateConditions = false;
81
89
  } else {
82
90
  didUpdateConditions = Object.values(contentTypesDiff).some((permission = {})=>{
83
- return Object.values(permission).some((permissionValue)=>has(permissionValue, 'conditions'));
91
+ return Object.values(permission).some((permissionValue)=>has__default.default(permissionValue, 'conditions'));
84
92
  });
85
93
  }
86
94
  return {
@@ -237,13 +245,13 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
237
245
  return;
238
246
  }
239
247
  const obj = data;
240
- const existingConditions = get(obj, [
248
+ const existingConditions = get__default.default(obj, [
241
249
  ...pathToActionObject,
242
250
  'conditions'
243
251
  ], undefined);
244
252
  const nextConditions = buildInheritedConditionsFromExisting(existingConditions, matchingPermission.conditions ?? []);
245
253
  if (nextConditions) {
246
- set(obj, [
254
+ set__default.default(obj, [
247
255
  ...pathToActionObject,
248
256
  'conditions'
249
257
  ], nextConditions);
@@ -258,8 +266,8 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
258
266
  'modifiedData',
259
267
  collectionTypeKind
260
268
  ];
261
- Object.keys(get(state, pathToData)).forEach((collectionType)=>{
262
- const collectionTypeActionData = get(state, [
269
+ Object.keys(get__default.default(state, pathToData)).forEach((collectionType)=>{
270
+ const collectionTypeActionData = get__default.default(state, [
263
271
  ...pathToData,
264
272
  collectionType,
265
273
  actionId
@@ -278,7 +286,7 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
278
286
  conditions: updatedConditions
279
287
  };
280
288
  }
281
- set(draftState, [
289
+ set__default.default(draftState, [
282
290
  ...pathToData,
283
291
  collectionType,
284
292
  actionId
@@ -290,13 +298,13 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
290
298
  case 'ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX':
291
299
  {
292
300
  const { pathToCollectionType, propertyName, rowName, value, userPermissions } = action;
293
- let nextModifiedDataState = cloneDeep(state.modifiedData);
301
+ let nextModifiedDataState = cloneDeep__default.default(state.modifiedData);
294
302
  const pathToModifiedDataCollectionType = pathToCollectionType.split('..');
295
- const objToUpdate = get(nextModifiedDataState, pathToModifiedDataCollectionType, {});
303
+ const objToUpdate = get__default.default(nextModifiedDataState, pathToModifiedDataCollectionType, {});
296
304
  const subject = pathToModifiedDataCollectionType[pathToModifiedDataCollectionType.length - 1];
297
305
  Object.keys(objToUpdate).forEach((actionId)=>{
298
- if (has(objToUpdate[actionId], `properties.${propertyName}`)) {
299
- const objValue = get(objToUpdate, [
306
+ if (has__default.default(objToUpdate[actionId], `properties.${propertyName}`)) {
307
+ const objValue = get__default.default(objToUpdate, [
300
308
  actionId,
301
309
  'properties',
302
310
  propertyName,
@@ -319,7 +327,7 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
319
327
  return Array.isArray(fields) && fields.some((f)=>rowName === f || rowName.startsWith(`${f}.`));
320
328
  });
321
329
  if (hasPermission === true) {
322
- set(nextModifiedDataState, pathToDataToSet, value);
330
+ set__default.default(nextModifiedDataState, pathToDataToSet, value);
323
331
  if (value === true) {
324
332
  inheritConditionsAtPath(nextModifiedDataState, [
325
333
  ...pathToModifiedDataCollectionType,
@@ -328,7 +336,7 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
328
336
  }
329
337
  }
330
338
  } else {
331
- set(nextModifiedDataState, pathToDataToSet, value);
339
+ set__default.default(nextModifiedDataState, pathToDataToSet, value);
332
340
  if (value === true && userPermissions !== undefined) {
333
341
  inheritConditionsAtPath(nextModifiedDataState, [
334
342
  ...pathToModifiedDataCollectionType,
@@ -350,7 +358,7 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
350
358
  ]);
351
359
  } : undefined;
352
360
  const updatedValue = updateValues.updateValuesWithPermissions(objValue, value, permissionChecker);
353
- set(nextModifiedDataState, pathToDataToSet, updatedValue);
361
+ set__default.default(nextModifiedDataState, pathToDataToSet, updatedValue);
354
362
  if (value === true && userPermissions !== undefined) {
355
363
  inheritConditionsAtPath(nextModifiedDataState, [
356
364
  ...pathToModifiedDataCollectionType,
@@ -364,7 +372,7 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
364
372
  // @ts-expect-error – TODO: type better
365
373
  nextModifiedDataState = updateConditionsToFalse.updateConditionsToFalse(nextModifiedDataState);
366
374
  }
367
- set(draftState, 'modifiedData', nextModifiedDataState);
375
+ set__default.default(draftState, 'modifiedData', nextModifiedDataState);
368
376
  break;
369
377
  }
370
378
  case 'ON_CHANGE_CONDITIONS':
@@ -375,7 +383,7 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
375
383
  }
376
384
  Object.entries(action.conditions).forEach((array)=>{
377
385
  const [stringPathToData, conditionsToUpdate] = array;
378
- set(draftState, [
386
+ set__default.default(draftState, [
379
387
  'modifiedData',
380
388
  ...stringPathToData.split('..'),
381
389
  'conditions'
@@ -385,9 +393,9 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
385
393
  }
386
394
  case 'ON_CHANGE_SIMPLE_CHECKBOX':
387
395
  {
388
- let nextModifiedDataState = cloneDeep(state.modifiedData);
396
+ let nextModifiedDataState = cloneDeep__default.default(state.modifiedData);
389
397
  const keysArray = action.keys.split('..');
390
- set(nextModifiedDataState, [
398
+ set__default.default(nextModifiedDataState, [
391
399
  ...keysArray
392
400
  ], action.value);
393
401
  // In App Token context, when enabling a permission, inherit the user's conditions.
@@ -413,7 +421,7 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
413
421
  // @ts-expect-error – TODO: type better
414
422
  nextModifiedDataState = updateConditionsToFalse.updateConditionsToFalse(nextModifiedDataState);
415
423
  }
416
- set(draftState, 'modifiedData', nextModifiedDataState);
424
+ set__default.default(draftState, 'modifiedData', nextModifiedDataState);
417
425
  break;
418
426
  }
419
427
  /*
@@ -454,8 +462,8 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
454
462
  const pathToValue = [
455
463
  ...keys.split('..')
456
464
  ];
457
- let nextModifiedDataState = cloneDeep(state.modifiedData);
458
- const oldValues = get(nextModifiedDataState, pathToValue, {});
465
+ let nextModifiedDataState = cloneDeep__default.default(state.modifiedData);
466
+ const oldValues = get__default.default(nextModifiedDataState, pathToValue, {});
459
467
  let actionId;
460
468
  let subject;
461
469
  if (pathToValue.length >= 2) {
@@ -482,12 +490,12 @@ const inheritConditionsAtPath = (data, pathToActionObject, actionId, subject, us
482
490
  });
483
491
  }
484
492
  }
485
- set(nextModifiedDataState, pathToValue, updatedValues);
493
+ set__default.default(nextModifiedDataState, pathToValue, updatedValues);
486
494
  if (value === false) {
487
495
  // @ts-expect-error – TODO: type better
488
496
  nextModifiedDataState = updateConditionsToFalse.updateConditionsToFalse(nextModifiedDataState);
489
497
  }
490
- set(draftState, [
498
+ set__default.default(draftState, [
491
499
  'modifiedData'
492
500
  ], nextModifiedDataState);
493
501
  break;