@strapi/admin 5.57.0 → 5.59.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 (415) hide show
  1. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  2. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  3. package/dist/admin/admin/src/components/ConfirmDialog.js +10 -9
  4. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  5. package/dist/admin/admin/src/components/ConfirmDialog.mjs +10 -9
  6. package/dist/admin/admin/src/components/ConfirmDialog.mjs.map +1 -1
  7. package/dist/admin/admin/src/components/Filters.js +57 -12
  8. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  9. package/dist/admin/admin/src/components/Filters.mjs +57 -12
  10. package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
  11. package/dist/admin/admin/src/components/Form.js +3 -1
  12. package/dist/admin/admin/src/components/Form.js.map +1 -1
  13. package/dist/admin/admin/src/components/Form.mjs +3 -1
  14. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  15. package/dist/admin/admin/src/components/FormInputs/Boolean.js +3 -2
  16. package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs +3 -2
  18. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
  19. package/dist/admin/admin/src/components/FormInputs/Enumeration.js +2 -1
  20. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  21. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +2 -1
  22. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  23. package/dist/admin/admin/src/components/LeftMenu.js +5 -1
  24. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  25. package/dist/admin/admin/src/components/LeftMenu.mjs +5 -1
  26. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  27. package/dist/admin/admin/src/components/PageHelpers.js +2 -1
  28. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  29. package/dist/admin/admin/src/components/PageHelpers.mjs +2 -1
  30. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/Pagination.js +7 -6
  32. package/dist/admin/admin/src/components/Pagination.js.map +1 -1
  33. package/dist/admin/admin/src/components/Pagination.mjs +7 -6
  34. package/dist/admin/admin/src/components/Pagination.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/RelativeTime.js +2 -1
  36. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  37. package/dist/admin/admin/src/components/RelativeTime.mjs +2 -1
  38. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  39. package/dist/admin/admin/src/components/SubNav.js +6 -12
  40. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  41. package/dist/admin/admin/src/components/SubNav.mjs +7 -13
  42. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  43. package/dist/admin/admin/src/components/Table.js +3 -1
  44. package/dist/admin/admin/src/components/Table.js.map +1 -1
  45. package/dist/admin/admin/src/components/Table.mjs +3 -1
  46. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  47. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  48. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  50. package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
  51. package/dist/admin/admin/src/constants.js +14 -0
  52. package/dist/admin/admin/src/constants.js.map +1 -1
  53. package/dist/admin/admin/src/constants.mjs +14 -0
  54. package/dist/admin/admin/src/constants.mjs.map +1 -1
  55. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  56. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  57. package/dist/admin/admin/src/features/Auth.js +2 -1
  58. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  59. package/dist/admin/admin/src/features/Auth.mjs +2 -1
  60. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  61. package/dist/admin/admin/src/features/StrapiApp.js.map +1 -1
  62. package/dist/admin/admin/src/features/StrapiApp.mjs.map +1 -1
  63. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  64. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  65. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +6 -12
  66. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
  67. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs +6 -12
  68. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs.map +1 -1
  69. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  70. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
  71. package/dist/admin/admin/src/pages/ProfilePage.js +2 -2
  72. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  73. package/dist/admin/admin/src/pages/ProfilePage.mjs +2 -2
  74. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  75. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +10 -2
  76. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  77. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +10 -2
  78. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  79. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js +4 -1
  80. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js.map +1 -1
  81. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs +4 -1
  82. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs.map +1 -1
  83. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -1
  84. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  85. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +3 -1
  86. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  87. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js +2 -1
  88. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js.map +1 -1
  89. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs +2 -1
  90. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs.map +1 -1
  91. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +6 -5
  92. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  93. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs +6 -5
  94. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs.map +1 -1
  95. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +2 -1
  96. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  97. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -1
  98. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  99. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js +4 -4
  100. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
  101. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs +4 -4
  102. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
  103. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +7 -58
  104. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  105. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +7 -58
  106. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  107. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js +217 -0
  108. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js.map +1 -0
  109. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs +195 -0
  110. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs.map +1 -0
  111. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  112. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
  113. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js +185 -0
  114. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js.map +1 -0
  115. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs +162 -0
  116. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs.map +1 -0
  117. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js +342 -0
  118. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js.map +1 -0
  119. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs +320 -0
  120. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs.map +1 -0
  121. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +9 -4
  122. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  123. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +9 -4
  124. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  125. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +15 -9
  126. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  127. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs +15 -9
  128. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
  129. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -2
  130. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  131. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +5 -2
  132. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  133. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js +2 -1
  134. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  135. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs +2 -1
  136. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
  137. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +2 -1
  138. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  139. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +2 -1
  140. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  141. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +2 -1
  142. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  143. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs +2 -1
  144. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  145. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
  146. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
  147. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +3 -1
  148. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  149. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +3 -1
  150. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  151. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  152. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  153. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  154. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  155. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
  156. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
  157. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +4 -1
  158. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
  159. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs +4 -1
  160. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs.map +1 -1
  161. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +18 -3
  162. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  163. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +18 -3
  164. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  165. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  166. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  167. package/dist/admin/admin/src/router.js.map +1 -1
  168. package/dist/admin/admin/src/router.mjs.map +1 -1
  169. package/dist/admin/admin/src/services/admin.js +11 -1
  170. package/dist/admin/admin/src/services/admin.js.map +1 -1
  171. package/dist/admin/admin/src/services/admin.mjs +11 -2
  172. package/dist/admin/admin/src/services/admin.mjs.map +1 -1
  173. package/dist/admin/admin/src/services/users.js.map +1 -1
  174. package/dist/admin/admin/src/services/users.mjs.map +1 -1
  175. package/dist/admin/admin/src/translations/en.json.js +71 -4
  176. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  177. package/dist/admin/admin/src/translations/en.json.mjs +71 -4
  178. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  179. package/dist/admin/admin/src/translations/eu.json.js +1 -1
  180. package/dist/admin/admin/src/translations/eu.json.mjs +1 -1
  181. package/dist/admin/admin/src/utils/browserStrapi.js +1 -1
  182. package/dist/admin/admin/src/utils/browserStrapi.js.map +1 -1
  183. package/dist/admin/admin/src/utils/browserStrapi.mjs +1 -1
  184. package/dist/admin/admin/src/utils/browserStrapi.mjs.map +1 -1
  185. package/dist/admin/admin/src/utils/cookies.js +7 -6
  186. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  187. package/dist/admin/admin/src/utils/cookies.mjs +7 -6
  188. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  189. package/dist/admin/admin/src/utils/getFetchClient.js +24 -0
  190. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  191. package/dist/admin/admin/src/utils/getFetchClient.mjs +24 -1
  192. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  193. package/dist/admin/admin/tests/utils.js +2 -1
  194. package/dist/admin/admin/tests/utils.js.map +1 -1
  195. package/dist/admin/admin/tests/utils.mjs +2 -1
  196. package/dist/admin/admin/tests/utils.mjs.map +1 -1
  197. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +52 -22
  198. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
  199. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +53 -23
  200. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
  201. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js +16 -29
  202. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
  203. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs +18 -31
  204. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
  205. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js +473 -0
  206. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js.map +1 -0
  207. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs +471 -0
  208. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs.map +1 -0
  209. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js +2 -0
  210. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js.map +1 -1
  211. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs +2 -0
  212. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs.map +1 -1
  213. package/dist/admin/index.js +1 -0
  214. package/dist/admin/index.js.map +1 -1
  215. package/dist/admin/index.mjs +1 -1
  216. package/dist/admin/shared/utils/auth-cookie-path.js +13 -10
  217. package/dist/admin/shared/utils/auth-cookie-path.js.map +1 -1
  218. package/dist/admin/shared/utils/auth-cookie-path.mjs +13 -10
  219. package/dist/admin/shared/utils/auth-cookie-path.mjs.map +1 -1
  220. package/dist/admin/shared/utils/get-project-type.js +49 -0
  221. package/dist/admin/shared/utils/get-project-type.js.map +1 -0
  222. package/dist/admin/shared/utils/get-project-type.mjs +46 -0
  223. package/dist/admin/shared/utils/get-project-type.mjs.map +1 -0
  224. package/dist/admin/src/components/Filters.d.ts +1 -1
  225. package/dist/admin/src/components/Form.d.ts +1 -1
  226. package/dist/admin/src/constants.d.ts +10 -0
  227. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.d.ts +1 -1
  228. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.d.ts +1 -1
  229. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.d.ts +12 -0
  230. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.d.ts +14 -0
  231. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.d.ts +2 -0
  232. package/dist/admin/src/services/admin.d.ts +2 -2
  233. package/dist/admin/src/types/permissions.d.ts +1 -0
  234. package/dist/admin/src/utils/cookies.d.ts +7 -6
  235. package/dist/admin/src/utils/getFetchClient.d.ts +25 -0
  236. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +29 -0
  237. package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.d.ts +6 -1
  238. package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.d.ts +2 -0
  239. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.d.ts +2 -0
  240. package/dist/ee/server/src/audit-logs/entitlements.d.ts +8 -0
  241. package/dist/ee/server/src/audit-logs/entitlements.d.ts.map +1 -0
  242. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +16 -0
  243. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
  244. package/dist/ee/server/src/controllers/admin.d.ts +36 -10
  245. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  246. package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -1
  247. package/dist/ee/server/src/controllers/index.d.ts +36 -10
  248. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  249. package/dist/ee/server/src/index.d.ts +36 -10
  250. package/dist/ee/server/src/index.d.ts.map +1 -1
  251. package/dist/ee/server/src/services/seat-enforcement.d.ts.map +1 -1
  252. package/dist/ee/server/src/validation/role.d.ts.map +1 -1
  253. package/dist/server/ee/server/src/audit-logs/entitlements.js +25 -0
  254. package/dist/server/ee/server/src/audit-logs/entitlements.js.map +1 -0
  255. package/dist/server/ee/server/src/audit-logs/entitlements.mjs +23 -0
  256. package/dist/server/ee/server/src/audit-logs/entitlements.mjs.map +1 -0
  257. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +20 -8
  258. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
  259. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +19 -9
  260. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
  261. package/dist/server/ee/server/src/audit-logs/utils/csv.js +3 -3
  262. package/dist/server/ee/server/src/audit-logs/utils/csv.js.map +1 -1
  263. package/dist/server/ee/server/src/audit-logs/utils/csv.mjs +3 -3
  264. package/dist/server/ee/server/src/audit-logs/utils/csv.mjs.map +1 -1
  265. package/dist/server/ee/server/src/controllers/admin.js +76 -3
  266. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  267. package/dist/server/ee/server/src/controllers/admin.mjs +76 -3
  268. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  269. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +28 -10
  270. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  271. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs +28 -10
  272. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
  273. package/dist/server/ee/server/src/index.js +2 -0
  274. package/dist/server/ee/server/src/index.js.map +1 -1
  275. package/dist/server/ee/server/src/index.mjs +2 -0
  276. package/dist/server/ee/server/src/index.mjs.map +1 -1
  277. package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
  278. package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
  279. package/dist/server/ee/server/src/validation/role.js +4 -2
  280. package/dist/server/ee/server/src/validation/role.js.map +1 -1
  281. package/dist/server/ee/server/src/validation/role.mjs +4 -2
  282. package/dist/server/ee/server/src/validation/role.mjs.map +1 -1
  283. package/dist/server/server/src/ai/services/ai.js.map +1 -1
  284. package/dist/server/server/src/ai/services/ai.mjs.map +1 -1
  285. package/dist/server/server/src/audit-logs/auth.js +72 -0
  286. package/dist/server/server/src/audit-logs/auth.js.map +1 -0
  287. package/dist/server/server/src/audit-logs/auth.mjs +67 -0
  288. package/dist/server/server/src/audit-logs/auth.mjs.map +1 -0
  289. package/dist/server/server/src/config/admin-actions.js +7 -0
  290. package/dist/server/server/src/config/admin-actions.js.map +1 -1
  291. package/dist/server/server/src/config/admin-actions.mjs +7 -0
  292. package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
  293. package/dist/server/server/src/controllers/admin.js +17 -12
  294. package/dist/server/server/src/controllers/admin.js.map +1 -1
  295. package/dist/server/server/src/controllers/admin.mjs +17 -12
  296. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  297. package/dist/server/server/src/controllers/authentication.js +34 -8
  298. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  299. package/dist/server/server/src/controllers/authentication.mjs +34 -8
  300. package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
  301. package/dist/server/server/src/domain/permission/index.js.map +1 -1
  302. package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
  303. package/dist/server/server/src/register.js +4 -0
  304. package/dist/server/server/src/register.js.map +1 -1
  305. package/dist/server/server/src/register.mjs +4 -0
  306. package/dist/server/server/src/register.mjs.map +1 -1
  307. package/dist/server/server/src/routes/admin.js +18 -0
  308. package/dist/server/server/src/routes/admin.js.map +1 -1
  309. package/dist/server/server/src/routes/admin.mjs +18 -0
  310. package/dist/server/server/src/routes/admin.mjs.map +1 -1
  311. package/dist/server/server/src/services/api-token.js +4 -8
  312. package/dist/server/server/src/services/api-token.js.map +1 -1
  313. package/dist/server/server/src/services/api-token.mjs +4 -8
  314. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  315. package/dist/server/server/src/services/auth.js +4 -2
  316. package/dist/server/server/src/services/auth.js.map +1 -1
  317. package/dist/server/server/src/services/auth.mjs +4 -3
  318. package/dist/server/server/src/services/auth.mjs.map +1 -1
  319. package/dist/server/server/src/services/constants.js +4 -0
  320. package/dist/server/server/src/services/constants.js.map +1 -1
  321. package/dist/server/server/src/services/constants.mjs +4 -0
  322. package/dist/server/server/src/services/constants.mjs.map +1 -1
  323. package/dist/server/server/src/services/debug-dump.js +173 -0
  324. package/dist/server/server/src/services/debug-dump.js.map +1 -0
  325. package/dist/server/server/src/services/debug-dump.mjs +166 -0
  326. package/dist/server/server/src/services/debug-dump.mjs.map +1 -0
  327. package/dist/server/server/src/services/index.js +3 -1
  328. package/dist/server/server/src/services/index.js.map +1 -1
  329. package/dist/server/server/src/services/index.mjs +3 -1
  330. package/dist/server/server/src/services/index.mjs.map +1 -1
  331. package/dist/server/server/src/services/permission/rename-fields.js.map +1 -1
  332. package/dist/server/server/src/services/permission/rename-fields.mjs.map +1 -1
  333. package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
  334. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
  335. package/dist/server/server/src/services/role.js +8 -5
  336. package/dist/server/server/src/services/role.js.map +1 -1
  337. package/dist/server/server/src/services/role.mjs +8 -5
  338. package/dist/server/server/src/services/role.mjs.map +1 -1
  339. package/dist/server/server/src/utils/debug-dump/redact.js +197 -0
  340. package/dist/server/server/src/utils/debug-dump/redact.js.map +1 -0
  341. package/dist/server/server/src/utils/debug-dump/redact.mjs +194 -0
  342. package/dist/server/server/src/utils/debug-dump/redact.mjs.map +1 -0
  343. package/dist/server/server/src/validation/admin-tokens.js +4 -4
  344. package/dist/server/server/src/validation/admin-tokens.js.map +1 -1
  345. package/dist/server/server/src/validation/admin-tokens.mjs +4 -4
  346. package/dist/server/server/src/validation/admin-tokens.mjs.map +1 -1
  347. package/dist/server/server/src/validation/api-tokens.js +4 -4
  348. package/dist/server/server/src/validation/api-tokens.js.map +1 -1
  349. package/dist/server/server/src/validation/api-tokens.mjs +4 -4
  350. package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
  351. package/dist/server/server/src/validation/role.js +6 -4
  352. package/dist/server/server/src/validation/role.js.map +1 -1
  353. package/dist/server/server/src/validation/role.mjs +6 -4
  354. package/dist/server/server/src/validation/role.mjs.map +1 -1
  355. package/dist/server/server/src/validation/transfer/token.js +4 -4
  356. package/dist/server/server/src/validation/transfer/token.js.map +1 -1
  357. package/dist/server/server/src/validation/transfer/token.mjs +4 -4
  358. package/dist/server/server/src/validation/transfer/token.mjs.map +1 -1
  359. package/dist/server/shared/utils/auth-cookie-path.js +13 -10
  360. package/dist/server/shared/utils/auth-cookie-path.js.map +1 -1
  361. package/dist/server/shared/utils/auth-cookie-path.mjs +13 -10
  362. package/dist/server/shared/utils/auth-cookie-path.mjs.map +1 -1
  363. package/dist/server/shared/utils/get-project-type.js +49 -0
  364. package/dist/server/shared/utils/get-project-type.js.map +1 -0
  365. package/dist/server/shared/utils/get-project-type.mjs +46 -0
  366. package/dist/server/shared/utils/get-project-type.mjs.map +1 -0
  367. package/dist/server/shared/utils/session-auth.js +70 -3
  368. package/dist/server/shared/utils/session-auth.js.map +1 -1
  369. package/dist/server/shared/utils/session-auth.mjs +70 -4
  370. package/dist/server/shared/utils/session-auth.mjs.map +1 -1
  371. package/dist/server/src/ai/services/ai.d.ts.map +1 -1
  372. package/dist/server/src/audit-logs/auth.d.ts +72 -0
  373. package/dist/server/src/audit-logs/auth.d.ts.map +1 -0
  374. package/dist/server/src/config/admin-actions.d.ts.map +1 -1
  375. package/dist/server/src/controllers/admin.d.ts +3 -0
  376. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  377. package/dist/server/src/controllers/authentication.d.ts.map +1 -1
  378. package/dist/server/src/controllers/index.d.ts +3 -0
  379. package/dist/server/src/controllers/index.d.ts.map +1 -1
  380. package/dist/server/src/domain/permission/index.d.ts.map +1 -1
  381. package/dist/server/src/index.d.ts +8 -0
  382. package/dist/server/src/index.d.ts.map +1 -1
  383. package/dist/server/src/register.d.ts.map +1 -1
  384. package/dist/server/src/routes/admin.d.ts.map +1 -1
  385. package/dist/server/src/services/auth.d.ts +6 -0
  386. package/dist/server/src/services/auth.d.ts.map +1 -1
  387. package/dist/server/src/services/constants.d.ts +2 -0
  388. package/dist/server/src/services/constants.d.ts.map +1 -1
  389. package/dist/server/src/services/debug-dump.d.ts +9 -0
  390. package/dist/server/src/services/debug-dump.d.ts.map +1 -0
  391. package/dist/server/src/services/index.d.ts +5 -0
  392. package/dist/server/src/services/index.d.ts.map +1 -1
  393. package/dist/server/src/services/permission/rename-fields.d.ts.map +1 -1
  394. package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
  395. package/dist/server/src/services/role.d.ts.map +1 -1
  396. package/dist/server/src/utils/debug-dump/redact.d.ts +8 -0
  397. package/dist/server/src/utils/debug-dump/redact.d.ts.map +1 -0
  398. package/dist/server/src/validation/role.d.ts.map +1 -1
  399. package/dist/shared/contracts/admin.d.ts +106 -0
  400. package/dist/shared/contracts/admin.d.ts.map +1 -1
  401. package/dist/shared/contracts/transfer.d.ts.map +1 -1
  402. package/dist/shared/utils/__tests__/get-project-type.test.d.ts +1 -0
  403. package/dist/shared/utils/__tests__/get-project-type.test.d.ts.map +1 -0
  404. package/dist/shared/utils/auth-cookie-path.d.ts +13 -10
  405. package/dist/shared/utils/auth-cookie-path.d.ts.map +1 -1
  406. package/dist/shared/utils/get-project-type.d.ts +37 -0
  407. package/dist/shared/utils/get-project-type.d.ts.map +1 -0
  408. package/dist/shared/utils/session-auth.d.ts +16 -0
  409. package/dist/shared/utils/session-auth.d.ts.map +1 -1
  410. package/package.json +8 -8
  411. package/dist/admin/admin/src/utils/getProjectType.js +0 -22
  412. package/dist/admin/admin/src/utils/getProjectType.js.map +0 -1
  413. package/dist/admin/admin/src/utils/getProjectType.mjs +0 -20
  414. package/dist/admin/admin/src/utils/getProjectType.mjs.map +0 -1
  415. package/dist/admin/src/utils/getProjectType.d.ts +0 -16
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsePropertyMatrix.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Checkbox,\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n Typography,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme, css } from 'styled-components';\n\nimport { Action, SubjectProperty } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth, rowHeight } from '../utils/constants';\nimport { getCheckboxState } from '../utils/getCheckboxState';\nimport { getLocaleValidationErrorActionKeys } from '../utils/localePermissionValidation';\n\nimport { CollapseLabel } from './CollapseLabel';\nimport { HiddenAction } from './HiddenAction';\nimport { RequiredSign } from './RequiredSign';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsePropertyMatrix\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapsePropertyMatrixProps\n extends Pick<\n ActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'label' | 'pathToData' | 'propertyName' | 'subject'\n > {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n}\n\ninterface PropertyAction {\n label: string;\n actionId: string;\n isActionRelatedToCurrentProperty: boolean;\n}\n\nconst CollapsePropertyMatrix = ({\n availableActions = [],\n childrenForm = [],\n isFormDisabled,\n label,\n pathToData,\n propertyName,\n subject,\n}: CollapsePropertyMatrixProps) => {\n const { formatMessage, formatList } = useIntl();\n const { modifiedData } = usePermissionsDataManager();\n const propertyActions = React.useMemo(\n () =>\n availableActions.map((action) => {\n const isActionRelatedToCurrentProperty =\n Array.isArray(action.applyToProperties) &&\n action.applyToProperties.indexOf(propertyName) !== -1 &&\n action.isDisplayed;\n\n return { label: action.label, actionId: action.actionId, isActionRelatedToCurrentProperty };\n }) satisfies PropertyAction[],\n [availableActions, propertyName]\n );\n\n const contentTypeKind = pathToData.split('..')[0] as 'collectionTypes' | 'singleTypes';\n const localeValidationErrorLabels = React.useMemo(() => {\n if (propertyName !== 'locales' || subject === undefined) return [];\n const errorKeys = getLocaleValidationErrorActionKeys(modifiedData, contentTypeKind, subject);\n return propertyActions\n .filter(\n ({ actionId, isActionRelatedToCurrentProperty }) =>\n isActionRelatedToCurrentProperty && errorKeys.includes(actionId)\n )\n .map(({ label }) => label);\n }, [propertyName, subject, modifiedData, contentTypeKind, propertyActions]);\n\n return (\n <Flex display=\"inline-flex\" direction=\"column\" alignItems=\"stretch\" minWidth={0}>\n <Header label={label} headers={propertyActions} />\n {localeValidationErrorLabels.length > 0 && (\n <Box paddingLeft={6} paddingTop={2} paddingBottom={2}>\n <Typography role=\"alert\" variant=\"pi\" textColor=\"danger600\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permissions.locales.validation',\n defaultMessage:\n '{count, plural, one {The {actions} action must apply to at least one locale.} other {The {actions} actions must apply to at least one locale.}}',\n },\n {\n count: localeValidationErrorLabels.length,\n actions: formatList(localeValidationErrorLabels, { type: 'conjunction' }),\n }\n )}\n </Typography>\n </Box>\n )}\n <Box>\n {childrenForm.map(({ children: childrenForm, label, value, required }, i) => (\n <ActionRow\n childrenForm={childrenForm}\n key={value}\n label={label}\n isFormDisabled={isFormDisabled}\n name={value}\n required={required}\n propertyActions={propertyActions}\n pathToData={pathToData}\n propertyName={propertyName}\n isOdd={i % 2 === 0}\n subject={subject}\n />\n ))}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps\n extends Pick<\n SubActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'propertyActions' | 'propertyName' | 'subject'\n > {\n label: string;\n name: string;\n required?: boolean;\n pathToData: string;\n isOdd?: boolean;\n}\n\nconst ActionRow = ({\n childrenForm = [],\n label,\n isFormDisabled = false,\n name,\n required = false,\n pathToData,\n propertyActions,\n propertyName,\n isOdd = false,\n subject,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n const {\n modifiedData,\n onChangeCollectionTypeLeftActionRowCheckbox,\n onChangeParentCheckbox,\n onChangeSimpleCheckbox,\n checkUserHasPermission,\n } = usePermissionsDataManager();\n\n const isActive = rowToOpen === name;\n\n const recursiveChildren = React.useMemo(() => {\n if (!Array.isArray(childrenForm)) {\n return [];\n }\n\n return childrenForm;\n }, [childrenForm]);\n\n const isCollapsable = recursiveChildren.length > 0;\n\n const handleClick = React.useCallback(() => {\n if (isCollapsable) {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n }\n }, [isCollapsable, name]);\n\n const handleChangeLeftRowCheckbox: RowLabelWithCheckboxProps['onChange'] = ({\n target: { value },\n }) => {\n onChangeCollectionTypeLeftActionRowCheckbox(pathToData, propertyName, name, value);\n };\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = React.useMemo(() => {\n return getRowLabelCheckboxState(propertyActions, modifiedData, pathToData, propertyName, name);\n }, [propertyActions, modifiedData, pathToData, propertyName, name]);\n\n return (\n <>\n <Wrapper\n alignItems=\"center\"\n $isCollapsable={isCollapsable}\n $isActive={isActive}\n background={isOdd ? 'neutral100' : 'neutral0'}\n >\n <Flex>\n <RowLabelWithCheckbox\n onChange={handleChangeLeftRowCheckbox}\n onClick={handleClick}\n isCollapsable={isCollapsable}\n isFormDisabled={isFormDisabled}\n label={label}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </RowLabelWithCheckbox>\n <Flex>\n {propertyActions.map(({ label, isActionRelatedToCurrentProperty, actionId }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={label} />;\n }\n\n const checkboxName = [\n ...pathToData.split('..'),\n actionId,\n 'properties',\n propertyName,\n name,\n ];\n\n if (!isCollapsable) {\n const checkboxValue = get(modifiedData, checkboxName, false);\n const fieldPath = propertyName === 'fields' ? name : undefined;\n const userHasPermission = checkUserHasPermission(actionId, subject, fieldPath);\n\n return (\n <Flex\n key={actionId}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const data = get(modifiedData, checkboxName, {});\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(data);\n const fieldPath = propertyName === 'fields' ? name : undefined;\n const userHasPermission = checkUserHasPermission(actionId, subject, fieldPath);\n\n return (\n <Flex\n key={label}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Flex>\n );\n })}\n </Flex>\n </Flex>\n </Wrapper>\n {isActive && (\n <SubActionRow\n childrenForm={recursiveChildren}\n isFormDisabled={isFormDisabled}\n parentName={name}\n pathToDataFromActionRow={pathToData}\n propertyName={propertyName}\n propertyActions={propertyActions}\n recursiveLevel={0}\n subject={subject}\n />\n )}\n </>\n );\n};\n\n/**\n *\n * Returns the state of the left checkbox of a ActionRow main checkbox\n */\nconst getRowLabelCheckboxState = (\n propertyActions: PropertyAction[],\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToContentType: string,\n propertyToCheck: string,\n targetKey: string\n) => {\n const actionIds = propertyActions.reduce<string[]>((acc, current) => {\n if (current.isActionRelatedToCurrentProperty) {\n acc.push(current.actionId);\n }\n\n return acc;\n }, []);\n\n const data = actionIds.reduce<Record<string, boolean>>((acc, current) => {\n const mainData = get(\n modifiedData,\n [...pathToContentType.split('..'), current, 'properties', propertyToCheck, targetKey],\n false\n );\n\n acc[current] = mainData;\n\n return acc;\n }, {});\n\n return getCheckboxState(data);\n};\n\nconst Wrapper = styled<FlexComponent>(Flex)<{ $isCollapsable?: boolean; $isActive?: boolean }>`\n height: ${rowHeight};\n flex: 1;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst CarretIcon = styled(CaretDown)<{ $isActive: boolean }>`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.neutral200};\n }\n\n transform: rotate(${({ $isActive }) => ($isActive ? '180' : '0')}deg);\n margin-left: ${({ theme }) => theme.spaces[2]};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SubActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SubActionRowProps {\n childrenForm: SubjectProperty['children'];\n isFormDisabled?: boolean;\n parentName: string;\n pathToDataFromActionRow: string;\n propertyActions: PropertyAction[];\n propertyName: string;\n subject?: string;\n recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = [],\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n subject,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox, checkUserHasPermission } =\n usePermissionsDataManager();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleSubLevel = (name: string) => {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n };\n\n const displayedRecursiveChildren = React.useMemo(() => {\n if (!rowToOpen) {\n return null;\n }\n\n return childrenForm.find(({ value }) => value === rowToOpen);\n }, [rowToOpen, childrenForm]);\n\n return (\n <Box paddingLeft={`3.2rem`}>\n <TopTimeline />\n {childrenForm.map(({ label, value, required, children: subChildrenForm }, index) => {\n const isVisible = index + 1 < childrenForm.length;\n const isArrayType = Array.isArray(subChildrenForm);\n const isActive = rowToOpen === value;\n\n return (\n <LeftBorderTimeline key={value} $isVisible={isVisible}>\n <Flex height={rowHeight}>\n <StyledBox>\n <Svg\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n $color=\"primary200\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.02477 14.7513C8.65865 17.0594 11.6046 18.6059 17.5596 18.8856C18.6836 18.9384 19.5976 19.8435 19.5976 20.9688V20.9688C19.5976 22.0941 18.6841 23.0125 17.5599 22.9643C10.9409 22.6805 6.454 20.9387 3.75496 17.1258C0.937988 13.1464 0.486328 7.39309 0.486328 0.593262H4.50974C4.50974 7.54693 5.06394 11.9813 7.02477 14.7513Z\"\n fill=\"#D9D8FF\"\n />\n </Svg>\n </StyledBox>\n <Flex style={{ flex: 1 }}>\n <RowStyle $level={recursiveLevel} $isActive={isActive} $isCollapsable={isArrayType}>\n <CollapseLabel\n alignItems=\"center\"\n $isCollapsable={isArrayType}\n {...(isArrayType && {\n onClick: () => handleClickToggleSubLevel(value),\n 'aria-expanded': isActive,\n onKeyDown: ({ key }: React.KeyboardEvent<HTMLDivElement>) =>\n (key === 'Enter' || key === ' ') && handleClickToggleSubLevel(value),\n tabIndex: 0,\n role: 'button',\n })}\n title={label}\n >\n <RowLabel ellipsis>{label}</RowLabel>\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </CollapseLabel>\n </RowStyle>\n <Flex style={{ flex: 1 }}>\n {propertyActions.map(\n ({ actionId, label: propertyLabel, isActionRelatedToCurrentProperty }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={actionId} />;\n }\n /*\n * Usually we use a 'dot' in order to know the key path of an object for which we want to change the value.\n * Since an action and a subject are both separated by '.' or '::' we chose to use the '..' separators\n */\n const checkboxName = [\n ...pathToDataFromActionRow.split('..'),\n actionId,\n 'properties',\n propertyName,\n ...parentName.split('..'),\n value,\n ];\n\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n if (!subChildrenForm) {\n const fieldPath =\n propertyName === 'fields' ? `${parentName}.${value}` : undefined;\n const userHasPermission = checkUserHasPermission(\n actionId,\n subject,\n fieldPath\n );\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const { hasAllActionsSelected, hasSomeActionsSelected } =\n getCheckboxState(checkboxValue);\n const fieldPath =\n propertyName === 'fields' ? `${parentName}.${value}` : undefined;\n const userHasPermission = checkUserHasPermission(\n actionId,\n subject,\n fieldPath\n );\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n key={propertyLabel}\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\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.join('..'),\n value: !!value,\n },\n });\n }}\n checked={\n hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected\n }\n />\n </Flex>\n );\n }\n )}\n </Flex>\n </Flex>\n </Flex>\n {displayedRecursiveChildren && isActive && (\n <Box paddingBottom={2}>\n <SubActionRow\n isFormDisabled={isFormDisabled}\n parentName={`${parentName}..${value}`}\n pathToDataFromActionRow={pathToDataFromActionRow}\n propertyActions={propertyActions}\n propertyName={propertyName}\n recursiveLevel={recursiveLevel + 1}\n childrenForm={displayedRecursiveChildren.children}\n subject={subject}\n />\n </Box>\n )}\n </LeftBorderTimeline>\n );\n })}\n </Box>\n );\n};\n\nconst LeftBorderTimeline = styled<BoxComponent>(Box)<{ $isVisible?: boolean }>`\n border-left: ${({ $isVisible, theme }) =>\n $isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};\n`;\n\nconst RowStyle = styled<FlexComponent>(Flex)<{\n $level: number;\n $isCollapsable?: boolean;\n $isActive?: boolean;\n}>`\n padding-left: ${({ theme }) => theme.spaces[4]};\n width: ${({ $level }) => 145 - $level * 36}px;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst RowLabel = styled<TypographyComponent>(Typography)``;\n\nconst TopTimeline = styled.div`\n padding-top: ${({ theme }) => theme.spaces[2]};\n margin-top: ${({ theme }) => theme.spaces[2]};\n width: 0.4rem;\n background-color: ${({ theme }) => theme.colors.primary200};\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n`;\n\nconst StyledBox = styled<BoxComponent>(Box)`\n transform: translate(-4px, -12px);\n\n &:before {\n content: '';\n width: 0.4rem;\n height: 1.2rem;\n background: ${({ theme }) => theme.colors.primary200};\n display: block;\n }\n`;\n\nconst Svg = styled.svg<{ $color: keyof DefaultTheme['colors'] }>`\n position: relative;\n flex-shrink: 0;\n transform: translate(-0.5px, -1px);\n\n * {\n fill: ${({ theme, $color }) => theme.colors[$color]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n headers?: PropertyAction[];\n label: string;\n}\n\nconst Header = ({ headers = [], label }: HeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex>\n <Flex width={firstRowWidth} height={rowHeight} shrink={0} alignItems=\"center\" paddingLeft={6}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permission.property-label',\n defaultMessage: '{label} permissions',\n },\n { label }\n )}\n </Typography>\n </Flex>\n {headers.map((header) => {\n if (!header.isActionRelatedToCurrentProperty) {\n return <Flex width={cellWidth} shrink={0} key={header.label} />;\n }\n\n return (\n <Flex width={cellWidth} shrink={0} justifyContent=\"center\" key={header.label}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`,\n defaultMessage: header.label,\n })}\n </Typography>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst activeStyle = (theme: DefaultTheme) => css`\n color: ${theme.colors.primary600};\n font-weight: ${theme.fontWeights.bold};\n\n ${CarretIcon} {\n path {\n fill: ${theme.colors.primary600};\n }\n }\n`;\n\nexport { CollapsePropertyMatrix };\n"],"names":["CollapsePropertyMatrix","availableActions","childrenForm","isFormDisabled","label","pathToData","propertyName","subject","formatMessage","formatList","useIntl","modifiedData","usePermissionsDataManager","propertyActions","React","useMemo","map","action","isActionRelatedToCurrentProperty","Array","isArray","applyToProperties","indexOf","isDisplayed","actionId","contentTypeKind","split","localeValidationErrorLabels","undefined","errorKeys","getLocaleValidationErrorActionKeys","filter","includes","_jsxs","Flex","display","direction","alignItems","minWidth","_jsx","Header","headers","length","Box","paddingLeft","paddingTop","paddingBottom","Typography","role","variant","textColor","id","defaultMessage","count","actions","type","children","value","required","i","ActionRow","name","isOdd","rowToOpen","setRowToOpen","useState","onChangeCollectionTypeLeftActionRowCheckbox","onChangeParentCheckbox","onChangeSimpleCheckbox","checkUserHasPermission","isActive","recursiveChildren","isCollapsable","handleClick","useCallback","prev","handleChangeLeftRowCheckbox","target","hasAllActionsSelected","hasSomeActionsSelected","getRowLabelCheckboxState","_Fragment","Wrapper","$isCollapsable","$isActive","background","RowLabelWithCheckbox","onChange","onClick","someChecked","RequiredSign","CarretIcon","HiddenAction","checkboxName","checkboxValue","get","fieldPath","userHasPermission","width","cellWidth","position","justifyContent","Checkbox","disabled","join","aria-label","onCheckedChange","checked","data","getCheckboxState","SubActionRow","parentName","pathToDataFromActionRow","recursiveLevel","pathToContentType","propertyToCheck","targetKey","actionIds","reduce","acc","current","push","mainData","styled","rowHeight","theme","activeStyle","CaretDown","colors","neutral200","spaces","handleClickToggleSubLevel","displayedRecursiveChildren","find","TopTimeline","subChildrenForm","index","isVisible","isArrayType","LeftBorderTimeline","$isVisible","height","StyledBox","Svg","viewBox","fill","xmlns","$color","path","fillRule","clipRule","d","style","flex","RowStyle","$level","CollapseLabel","onKeyDown","key","tabIndex","title","RowLabel","ellipsis","propertyLabel","primary200","div","svg","firstRowWidth","shrink","header","toLowerCase","css","primary600","fontWeights","bold"],"mappings":"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"}
1
+ {"version":3,"file":"CollapsePropertyMatrix.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Checkbox,\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n Typography,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme, css } from 'styled-components';\n\nimport { Action, SubjectProperty } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth, rowHeight } from '../utils/constants';\nimport { getCheckboxState } from '../utils/getCheckboxState';\nimport { getLocaleValidationErrorActionKeys } from '../utils/localePermissionValidation';\n\nimport { CollapseLabel } from './CollapseLabel';\nimport { HiddenAction } from './HiddenAction';\nimport { RequiredSign } from './RequiredSign';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\nconst EMPTY_AVAILABLE_ACTIONS: NonNullable<CollapsePropertyMatrixProps['availableActions']> = [];\nconst EMPTY_CHILDREN_FORM: NonNullable<CollapsePropertyMatrixProps['childrenForm']> = [];\nconst EMPTY_ACTION_ROW_CHILDREN_FORM: NonNullable<ActionRowProps['childrenForm']> = [];\nconst EMPTY_SUB_ACTION_ROW_CHILDREN_FORM: NonNullable<SubActionRowProps['childrenForm']> = [];\nconst EMPTY_HEADERS: NonNullable<HeaderProps['headers']> = [];\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsePropertyMatrix\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapsePropertyMatrixProps extends Pick<\n ActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'label' | 'pathToData' | 'propertyName' | 'subject'\n> {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n}\n\ninterface PropertyAction {\n label: string;\n actionId: string;\n isActionRelatedToCurrentProperty: boolean;\n}\n\nconst CollapsePropertyMatrix = ({\n availableActions = EMPTY_AVAILABLE_ACTIONS,\n childrenForm = EMPTY_CHILDREN_FORM,\n isFormDisabled,\n label,\n pathToData,\n propertyName,\n subject,\n}: CollapsePropertyMatrixProps) => {\n const { formatMessage, formatList } = useIntl();\n const { modifiedData } = usePermissionsDataManager();\n const propertyActions = React.useMemo(\n () =>\n availableActions.map((action) => {\n const isActionRelatedToCurrentProperty =\n Array.isArray(action.applyToProperties) &&\n action.applyToProperties.indexOf(propertyName) !== -1 &&\n action.isDisplayed;\n\n return { label: action.label, actionId: action.actionId, isActionRelatedToCurrentProperty };\n }) satisfies PropertyAction[],\n [availableActions, propertyName]\n );\n\n const contentTypeKind = pathToData.split('..')[0] as 'collectionTypes' | 'singleTypes';\n const localeValidationErrorLabels = React.useMemo(() => {\n if (propertyName !== 'locales' || subject === undefined) return [];\n const errorKeys = getLocaleValidationErrorActionKeys(modifiedData, contentTypeKind, subject);\n return propertyActions\n .filter(\n ({ actionId, isActionRelatedToCurrentProperty }) =>\n isActionRelatedToCurrentProperty && errorKeys.includes(actionId)\n )\n .map(({ label }) => label);\n }, [propertyName, subject, modifiedData, contentTypeKind, propertyActions]);\n\n return (\n <Flex display=\"inline-flex\" direction=\"column\" alignItems=\"stretch\" minWidth={0}>\n <Header label={label} headers={propertyActions} />\n {localeValidationErrorLabels.length > 0 && (\n <Box paddingLeft={6} paddingTop={2} paddingBottom={2}>\n <Typography role=\"alert\" variant=\"pi\" textColor=\"danger600\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permissions.locales.validation',\n defaultMessage:\n '{count, plural, one {The {actions} action must apply to at least one locale.} other {The {actions} actions must apply to at least one locale.}}',\n },\n {\n count: localeValidationErrorLabels.length,\n actions: formatList(localeValidationErrorLabels, { type: 'conjunction' }),\n }\n )}\n </Typography>\n </Box>\n )}\n <Box>\n {childrenForm.map(({ children: childrenForm, label, value, required }, i) => (\n <ActionRow\n childrenForm={childrenForm}\n key={value}\n label={label}\n isFormDisabled={isFormDisabled}\n name={value}\n required={required}\n propertyActions={propertyActions}\n pathToData={pathToData}\n propertyName={propertyName}\n isOdd={i % 2 === 0}\n subject={subject}\n />\n ))}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps extends Pick<\n SubActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'propertyActions' | 'propertyName' | 'subject'\n> {\n label: string;\n name: string;\n required?: boolean;\n pathToData: string;\n isOdd?: boolean;\n}\n\nconst ActionRow = ({\n childrenForm = EMPTY_ACTION_ROW_CHILDREN_FORM,\n label,\n isFormDisabled = false,\n name,\n required = false,\n pathToData,\n propertyActions,\n propertyName,\n isOdd = false,\n subject,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n const {\n modifiedData,\n onChangeCollectionTypeLeftActionRowCheckbox,\n onChangeParentCheckbox,\n onChangeSimpleCheckbox,\n checkUserHasPermission,\n } = usePermissionsDataManager();\n\n const isActive = rowToOpen === name;\n\n const recursiveChildren = React.useMemo(() => {\n if (!Array.isArray(childrenForm)) {\n return [];\n }\n\n return childrenForm;\n }, [childrenForm]);\n\n const isCollapsable = recursiveChildren.length > 0;\n\n const handleClick = React.useCallback(() => {\n if (isCollapsable) {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n }\n }, [isCollapsable, name]);\n\n const handleChangeLeftRowCheckbox: RowLabelWithCheckboxProps['onChange'] = ({\n target: { value },\n }) => {\n onChangeCollectionTypeLeftActionRowCheckbox(pathToData, propertyName, name, value);\n };\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = React.useMemo(() => {\n return getRowLabelCheckboxState(propertyActions, modifiedData, pathToData, propertyName, name);\n }, [propertyActions, modifiedData, pathToData, propertyName, name]);\n\n return (\n <>\n <Wrapper\n alignItems=\"center\"\n $isCollapsable={isCollapsable}\n $isActive={isActive}\n background={isOdd ? 'neutral100' : 'neutral0'}\n >\n <Flex>\n <RowLabelWithCheckbox\n onChange={handleChangeLeftRowCheckbox}\n onClick={handleClick}\n isCollapsable={isCollapsable}\n isFormDisabled={isFormDisabled}\n label={label}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </RowLabelWithCheckbox>\n <Flex>\n {propertyActions.map(({ label, isActionRelatedToCurrentProperty, actionId }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={label} />;\n }\n\n const checkboxName = [\n ...pathToData.split('..'),\n actionId,\n 'properties',\n propertyName,\n name,\n ];\n\n if (!isCollapsable) {\n const checkboxValue = get(modifiedData, checkboxName, false);\n const fieldPath = propertyName === 'fields' ? name : undefined;\n const userHasPermission = checkUserHasPermission(actionId, subject, fieldPath);\n\n return (\n <Flex\n key={actionId}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const data = get(modifiedData, checkboxName, {});\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(data);\n const fieldPath = propertyName === 'fields' ? name : undefined;\n const userHasPermission = checkUserHasPermission(actionId, subject, fieldPath);\n\n return (\n <Flex\n key={label}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Flex>\n );\n })}\n </Flex>\n </Flex>\n </Wrapper>\n {isActive && (\n <SubActionRow\n childrenForm={recursiveChildren}\n isFormDisabled={isFormDisabled}\n parentName={name}\n pathToDataFromActionRow={pathToData}\n propertyName={propertyName}\n propertyActions={propertyActions}\n recursiveLevel={0}\n subject={subject}\n />\n )}\n </>\n );\n};\n\n/**\n *\n * Returns the state of the left checkbox of a ActionRow main checkbox\n */\nconst getRowLabelCheckboxState = (\n propertyActions: PropertyAction[],\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToContentType: string,\n propertyToCheck: string,\n targetKey: string\n) => {\n const actionIds = propertyActions.reduce<string[]>((acc, current) => {\n if (current.isActionRelatedToCurrentProperty) {\n acc.push(current.actionId);\n }\n\n return acc;\n }, []);\n\n const data = actionIds.reduce<Record<string, boolean>>((acc, current) => {\n const mainData = get(\n modifiedData,\n [...pathToContentType.split('..'), current, 'properties', propertyToCheck, targetKey],\n false\n );\n\n acc[current] = mainData;\n\n return acc;\n }, {});\n\n return getCheckboxState(data);\n};\n\nconst Wrapper = styled<FlexComponent>(Flex)<{ $isCollapsable?: boolean; $isActive?: boolean }>`\n height: ${rowHeight};\n flex: 1;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst CarretIcon = styled(CaretDown)<{ $isActive: boolean }>`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.neutral200};\n }\n\n transform: rotate(${({ $isActive }) => ($isActive ? '180' : '0')}deg);\n margin-left: ${({ theme }) => theme.spaces[2]};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SubActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SubActionRowProps {\n childrenForm: SubjectProperty['children'];\n isFormDisabled?: boolean;\n parentName: string;\n pathToDataFromActionRow: string;\n propertyActions: PropertyAction[];\n propertyName: string;\n subject?: string;\n recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = EMPTY_SUB_ACTION_ROW_CHILDREN_FORM,\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n subject,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox, checkUserHasPermission } =\n usePermissionsDataManager();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleSubLevel = (name: string) => {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n };\n\n const displayedRecursiveChildren = React.useMemo(() => {\n if (!rowToOpen) {\n return null;\n }\n\n return childrenForm.find(({ value }) => value === rowToOpen);\n }, [rowToOpen, childrenForm]);\n\n return (\n <Box paddingLeft={`3.2rem`}>\n <TopTimeline />\n {childrenForm.map(({ label, value, required, children: subChildrenForm }, index) => {\n const isVisible = index + 1 < childrenForm.length;\n const isArrayType = Array.isArray(subChildrenForm);\n const isActive = rowToOpen === value;\n\n return (\n <LeftBorderTimeline key={value} $isVisible={isVisible}>\n <Flex height={rowHeight}>\n <StyledBox>\n <Svg\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n $color=\"primary200\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.02477 14.7513C8.65865 17.0594 11.6046 18.6059 17.5596 18.8856C18.6836 18.9384 19.5976 19.8435 19.5976 20.9688V20.9688C19.5976 22.0941 18.6841 23.0125 17.5599 22.9643C10.9409 22.6805 6.454 20.9387 3.75496 17.1258C0.937988 13.1464 0.486328 7.39309 0.486328 0.593262H4.50974C4.50974 7.54693 5.06394 11.9813 7.02477 14.7513Z\"\n fill=\"#D9D8FF\"\n />\n </Svg>\n </StyledBox>\n <Flex style={{ flex: 1 }}>\n <RowStyle $level={recursiveLevel} $isActive={isActive} $isCollapsable={isArrayType}>\n <CollapseLabel\n alignItems=\"center\"\n $isCollapsable={isArrayType}\n {...(isArrayType && {\n onClick: () => handleClickToggleSubLevel(value),\n 'aria-expanded': isActive,\n onKeyDown: ({ key }: React.KeyboardEvent<HTMLDivElement>) =>\n (key === 'Enter' || key === ' ') && handleClickToggleSubLevel(value),\n tabIndex: 0,\n role: 'button',\n })}\n title={label}\n >\n <RowLabel ellipsis>{label}</RowLabel>\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </CollapseLabel>\n </RowStyle>\n <Flex style={{ flex: 1 }}>\n {propertyActions.map(\n ({ actionId, label: propertyLabel, isActionRelatedToCurrentProperty }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={actionId} />;\n }\n /*\n * Usually we use a 'dot' in order to know the key path of an object for which we want to change the value.\n * Since an action and a subject are both separated by '.' or '::' we chose to use the '..' separators\n */\n const checkboxName = [\n ...pathToDataFromActionRow.split('..'),\n actionId,\n 'properties',\n propertyName,\n ...parentName.split('..'),\n value,\n ];\n\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n if (!subChildrenForm) {\n const fieldPath =\n propertyName === 'fields' ? `${parentName}.${value}` : undefined;\n const userHasPermission = checkUserHasPermission(\n actionId,\n subject,\n fieldPath\n );\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const { hasAllActionsSelected, hasSomeActionsSelected } =\n getCheckboxState(checkboxValue);\n const fieldPath =\n propertyName === 'fields' ? `${parentName}.${value}` : undefined;\n const userHasPermission = checkUserHasPermission(\n actionId,\n subject,\n fieldPath\n );\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n key={propertyLabel}\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\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.join('..'),\n value: !!value,\n },\n });\n }}\n checked={\n hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected\n }\n />\n </Flex>\n );\n }\n )}\n </Flex>\n </Flex>\n </Flex>\n {displayedRecursiveChildren && isActive && (\n <Box paddingBottom={2}>\n <SubActionRow\n isFormDisabled={isFormDisabled}\n parentName={`${parentName}..${value}`}\n pathToDataFromActionRow={pathToDataFromActionRow}\n propertyActions={propertyActions}\n propertyName={propertyName}\n recursiveLevel={recursiveLevel + 1}\n childrenForm={displayedRecursiveChildren.children}\n subject={subject}\n />\n </Box>\n )}\n </LeftBorderTimeline>\n );\n })}\n </Box>\n );\n};\n\nconst LeftBorderTimeline = styled<BoxComponent>(Box)<{ $isVisible?: boolean }>`\n border-left: ${({ $isVisible, theme }) =>\n $isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};\n`;\n\nconst RowStyle = styled<FlexComponent>(Flex)<{\n $level: number;\n $isCollapsable?: boolean;\n $isActive?: boolean;\n}>`\n padding-left: ${({ theme }) => theme.spaces[4]};\n width: ${({ $level }) => 145 - $level * 36}px;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst RowLabel = styled<TypographyComponent>(Typography)``;\n\nconst TopTimeline = styled.div`\n padding-top: ${({ theme }) => theme.spaces[2]};\n margin-top: ${({ theme }) => theme.spaces[2]};\n width: 0.4rem;\n background-color: ${({ theme }) => theme.colors.primary200};\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n`;\n\nconst StyledBox = styled<BoxComponent>(Box)`\n transform: translate(-4px, -12px);\n\n &:before {\n content: '';\n width: 0.4rem;\n height: 1.2rem;\n background: ${({ theme }) => theme.colors.primary200};\n display: block;\n }\n`;\n\nconst Svg = styled.svg<{ $color: keyof DefaultTheme['colors'] }>`\n position: relative;\n flex-shrink: 0;\n transform: translate(-0.5px, -1px);\n\n * {\n fill: ${({ theme, $color }) => theme.colors[$color]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n headers?: PropertyAction[];\n label: string;\n}\n\nconst Header = ({ headers = EMPTY_HEADERS, label }: HeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex>\n <Flex width={firstRowWidth} height={rowHeight} shrink={0} alignItems=\"center\" paddingLeft={6}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permission.property-label',\n defaultMessage: '{label} permissions',\n },\n { label }\n )}\n </Typography>\n </Flex>\n {headers.map((header) => {\n if (!header.isActionRelatedToCurrentProperty) {\n return <Flex width={cellWidth} shrink={0} key={header.label} />;\n }\n\n return (\n <Flex width={cellWidth} shrink={0} justifyContent=\"center\" key={header.label}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`,\n defaultMessage: header.label,\n })}\n </Typography>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst activeStyle = (theme: DefaultTheme) => css`\n color: ${theme.colors.primary600};\n font-weight: ${theme.fontWeights.bold};\n\n ${CarretIcon} {\n path {\n fill: ${theme.colors.primary600};\n }\n }\n`;\n\nexport { CollapsePropertyMatrix };\n"],"names":["EMPTY_AVAILABLE_ACTIONS","EMPTY_CHILDREN_FORM","EMPTY_ACTION_ROW_CHILDREN_FORM","EMPTY_SUB_ACTION_ROW_CHILDREN_FORM","EMPTY_HEADERS","CollapsePropertyMatrix","availableActions","childrenForm","isFormDisabled","label","pathToData","propertyName","subject","formatMessage","formatList","useIntl","modifiedData","usePermissionsDataManager","propertyActions","React","useMemo","map","action","isActionRelatedToCurrentProperty","Array","isArray","applyToProperties","indexOf","isDisplayed","actionId","contentTypeKind","split","localeValidationErrorLabels","undefined","errorKeys","getLocaleValidationErrorActionKeys","filter","includes","_jsxs","Flex","display","direction","alignItems","minWidth","_jsx","Header","headers","length","Box","paddingLeft","paddingTop","paddingBottom","Typography","role","variant","textColor","id","defaultMessage","count","actions","type","children","value","required","i","ActionRow","name","isOdd","rowToOpen","setRowToOpen","useState","onChangeCollectionTypeLeftActionRowCheckbox","onChangeParentCheckbox","onChangeSimpleCheckbox","checkUserHasPermission","isActive","recursiveChildren","isCollapsable","handleClick","useCallback","prev","handleChangeLeftRowCheckbox","target","hasAllActionsSelected","hasSomeActionsSelected","getRowLabelCheckboxState","_Fragment","Wrapper","$isCollapsable","$isActive","background","RowLabelWithCheckbox","onChange","onClick","someChecked","RequiredSign","CarretIcon","HiddenAction","checkboxName","checkboxValue","get","fieldPath","userHasPermission","width","cellWidth","position","justifyContent","Checkbox","disabled","join","aria-label","onCheckedChange","checked","data","getCheckboxState","SubActionRow","parentName","pathToDataFromActionRow","recursiveLevel","pathToContentType","propertyToCheck","targetKey","actionIds","reduce","acc","current","push","mainData","styled","rowHeight","theme","activeStyle","CaretDown","colors","neutral200","spaces","handleClickToggleSubLevel","displayedRecursiveChildren","find","TopTimeline","subChildrenForm","index","isVisible","isArrayType","LeftBorderTimeline","$isVisible","height","StyledBox","Svg","viewBox","fill","xmlns","$color","path","fillRule","clipRule","d","style","flex","RowStyle","$level","CollapseLabel","onKeyDown","key","tabIndex","title","RowLabel","ellipsis","propertyLabel","primary200","div","svg","firstRowWidth","shrink","header","toLowerCase","css","primary600","fontWeights","bold"],"mappings":"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"}
@@ -14,7 +14,12 @@ import { HiddenAction } from './HiddenAction.mjs';
14
14
  import { RequiredSign } from './RequiredSign.mjs';
15
15
  import { RowLabelWithCheckbox } from './RowLabelWithCheckbox.mjs';
16
16
 
17
- const CollapsePropertyMatrix = ({ availableActions = [], childrenForm = [], isFormDisabled, label, pathToData, propertyName, subject })=>{
17
+ const EMPTY_AVAILABLE_ACTIONS = [];
18
+ const EMPTY_CHILDREN_FORM = [];
19
+ const EMPTY_ACTION_ROW_CHILDREN_FORM = [];
20
+ const EMPTY_SUB_ACTION_ROW_CHILDREN_FORM = [];
21
+ const EMPTY_HEADERS = [];
22
+ const CollapsePropertyMatrix = ({ availableActions = EMPTY_AVAILABLE_ACTIONS, childrenForm = EMPTY_CHILDREN_FORM, isFormDisabled, label, pathToData, propertyName, subject })=>{
18
23
  const { formatMessage, formatList } = useIntl();
19
24
  const { modifiedData } = usePermissionsDataManager();
20
25
  const propertyActions = React.useMemo(()=>availableActions.map((action)=>{
@@ -86,7 +91,7 @@ const CollapsePropertyMatrix = ({ availableActions = [], childrenForm = [], isFo
86
91
  ]
87
92
  });
88
93
  };
89
- const ActionRow = ({ childrenForm = [], label, isFormDisabled = false, name, required = false, pathToData, propertyActions, propertyName, isOdd = false, subject })=>{
94
+ const ActionRow = ({ childrenForm = EMPTY_ACTION_ROW_CHILDREN_FORM, label, isFormDisabled = false, name, required = false, pathToData, propertyActions, propertyName, isOdd = false, subject })=>{
90
95
  const { formatMessage } = useIntl();
91
96
  const [rowToOpen, setRowToOpen] = React.useState(null);
92
97
  const { modifiedData, onChangeCollectionTypeLeftActionRowCheckbox, onChangeParentCheckbox, onChangeSimpleCheckbox, checkUserHasPermission } = usePermissionsDataManager();
@@ -291,7 +296,7 @@ const CarretIcon = styled(CaretDown)`
291
296
  transform: rotate(${({ $isActive })=>$isActive ? '180' : '0'}deg);
292
297
  margin-left: ${({ theme })=>theme.spaces[2]};
293
298
  `;
294
- const SubActionRow = ({ childrenForm = [], isFormDisabled, recursiveLevel, pathToDataFromActionRow, propertyActions, parentName, propertyName, subject })=>{
299
+ const SubActionRow = ({ childrenForm = EMPTY_SUB_ACTION_ROW_CHILDREN_FORM, isFormDisabled, recursiveLevel, pathToDataFromActionRow, propertyActions, parentName, propertyName, subject })=>{
295
300
  const { formatMessage } = useIntl();
296
301
  const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox, checkUserHasPermission } = usePermissionsDataManager();
297
302
  const [rowToOpen, setRowToOpen] = React.useState(null);
@@ -524,7 +529,7 @@ const Svg = styled.svg`
524
529
  fill: ${({ theme, $color })=>theme.colors[$color]};
525
530
  }
526
531
  `;
527
- const Header = ({ headers = [], label })=>{
532
+ const Header = ({ headers = EMPTY_HEADERS, label })=>{
528
533
  const { formatMessage } = useIntl();
529
534
  return /*#__PURE__*/ jsxs(Flex, {
530
535
  children: [
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsePropertyMatrix.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Checkbox,\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n Typography,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme, css } from 'styled-components';\n\nimport { Action, SubjectProperty } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth, rowHeight } from '../utils/constants';\nimport { getCheckboxState } from '../utils/getCheckboxState';\nimport { getLocaleValidationErrorActionKeys } from '../utils/localePermissionValidation';\n\nimport { CollapseLabel } from './CollapseLabel';\nimport { HiddenAction } from './HiddenAction';\nimport { RequiredSign } from './RequiredSign';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsePropertyMatrix\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapsePropertyMatrixProps\n extends Pick<\n ActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'label' | 'pathToData' | 'propertyName' | 'subject'\n > {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n}\n\ninterface PropertyAction {\n label: string;\n actionId: string;\n isActionRelatedToCurrentProperty: boolean;\n}\n\nconst CollapsePropertyMatrix = ({\n availableActions = [],\n childrenForm = [],\n isFormDisabled,\n label,\n pathToData,\n propertyName,\n subject,\n}: CollapsePropertyMatrixProps) => {\n const { formatMessage, formatList } = useIntl();\n const { modifiedData } = usePermissionsDataManager();\n const propertyActions = React.useMemo(\n () =>\n availableActions.map((action) => {\n const isActionRelatedToCurrentProperty =\n Array.isArray(action.applyToProperties) &&\n action.applyToProperties.indexOf(propertyName) !== -1 &&\n action.isDisplayed;\n\n return { label: action.label, actionId: action.actionId, isActionRelatedToCurrentProperty };\n }) satisfies PropertyAction[],\n [availableActions, propertyName]\n );\n\n const contentTypeKind = pathToData.split('..')[0] as 'collectionTypes' | 'singleTypes';\n const localeValidationErrorLabels = React.useMemo(() => {\n if (propertyName !== 'locales' || subject === undefined) return [];\n const errorKeys = getLocaleValidationErrorActionKeys(modifiedData, contentTypeKind, subject);\n return propertyActions\n .filter(\n ({ actionId, isActionRelatedToCurrentProperty }) =>\n isActionRelatedToCurrentProperty && errorKeys.includes(actionId)\n )\n .map(({ label }) => label);\n }, [propertyName, subject, modifiedData, contentTypeKind, propertyActions]);\n\n return (\n <Flex display=\"inline-flex\" direction=\"column\" alignItems=\"stretch\" minWidth={0}>\n <Header label={label} headers={propertyActions} />\n {localeValidationErrorLabels.length > 0 && (\n <Box paddingLeft={6} paddingTop={2} paddingBottom={2}>\n <Typography role=\"alert\" variant=\"pi\" textColor=\"danger600\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permissions.locales.validation',\n defaultMessage:\n '{count, plural, one {The {actions} action must apply to at least one locale.} other {The {actions} actions must apply to at least one locale.}}',\n },\n {\n count: localeValidationErrorLabels.length,\n actions: formatList(localeValidationErrorLabels, { type: 'conjunction' }),\n }\n )}\n </Typography>\n </Box>\n )}\n <Box>\n {childrenForm.map(({ children: childrenForm, label, value, required }, i) => (\n <ActionRow\n childrenForm={childrenForm}\n key={value}\n label={label}\n isFormDisabled={isFormDisabled}\n name={value}\n required={required}\n propertyActions={propertyActions}\n pathToData={pathToData}\n propertyName={propertyName}\n isOdd={i % 2 === 0}\n subject={subject}\n />\n ))}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps\n extends Pick<\n SubActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'propertyActions' | 'propertyName' | 'subject'\n > {\n label: string;\n name: string;\n required?: boolean;\n pathToData: string;\n isOdd?: boolean;\n}\n\nconst ActionRow = ({\n childrenForm = [],\n label,\n isFormDisabled = false,\n name,\n required = false,\n pathToData,\n propertyActions,\n propertyName,\n isOdd = false,\n subject,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n const {\n modifiedData,\n onChangeCollectionTypeLeftActionRowCheckbox,\n onChangeParentCheckbox,\n onChangeSimpleCheckbox,\n checkUserHasPermission,\n } = usePermissionsDataManager();\n\n const isActive = rowToOpen === name;\n\n const recursiveChildren = React.useMemo(() => {\n if (!Array.isArray(childrenForm)) {\n return [];\n }\n\n return childrenForm;\n }, [childrenForm]);\n\n const isCollapsable = recursiveChildren.length > 0;\n\n const handleClick = React.useCallback(() => {\n if (isCollapsable) {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n }\n }, [isCollapsable, name]);\n\n const handleChangeLeftRowCheckbox: RowLabelWithCheckboxProps['onChange'] = ({\n target: { value },\n }) => {\n onChangeCollectionTypeLeftActionRowCheckbox(pathToData, propertyName, name, value);\n };\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = React.useMemo(() => {\n return getRowLabelCheckboxState(propertyActions, modifiedData, pathToData, propertyName, name);\n }, [propertyActions, modifiedData, pathToData, propertyName, name]);\n\n return (\n <>\n <Wrapper\n alignItems=\"center\"\n $isCollapsable={isCollapsable}\n $isActive={isActive}\n background={isOdd ? 'neutral100' : 'neutral0'}\n >\n <Flex>\n <RowLabelWithCheckbox\n onChange={handleChangeLeftRowCheckbox}\n onClick={handleClick}\n isCollapsable={isCollapsable}\n isFormDisabled={isFormDisabled}\n label={label}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </RowLabelWithCheckbox>\n <Flex>\n {propertyActions.map(({ label, isActionRelatedToCurrentProperty, actionId }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={label} />;\n }\n\n const checkboxName = [\n ...pathToData.split('..'),\n actionId,\n 'properties',\n propertyName,\n name,\n ];\n\n if (!isCollapsable) {\n const checkboxValue = get(modifiedData, checkboxName, false);\n const fieldPath = propertyName === 'fields' ? name : undefined;\n const userHasPermission = checkUserHasPermission(actionId, subject, fieldPath);\n\n return (\n <Flex\n key={actionId}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const data = get(modifiedData, checkboxName, {});\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(data);\n const fieldPath = propertyName === 'fields' ? name : undefined;\n const userHasPermission = checkUserHasPermission(actionId, subject, fieldPath);\n\n return (\n <Flex\n key={label}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Flex>\n );\n })}\n </Flex>\n </Flex>\n </Wrapper>\n {isActive && (\n <SubActionRow\n childrenForm={recursiveChildren}\n isFormDisabled={isFormDisabled}\n parentName={name}\n pathToDataFromActionRow={pathToData}\n propertyName={propertyName}\n propertyActions={propertyActions}\n recursiveLevel={0}\n subject={subject}\n />\n )}\n </>\n );\n};\n\n/**\n *\n * Returns the state of the left checkbox of a ActionRow main checkbox\n */\nconst getRowLabelCheckboxState = (\n propertyActions: PropertyAction[],\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToContentType: string,\n propertyToCheck: string,\n targetKey: string\n) => {\n const actionIds = propertyActions.reduce<string[]>((acc, current) => {\n if (current.isActionRelatedToCurrentProperty) {\n acc.push(current.actionId);\n }\n\n return acc;\n }, []);\n\n const data = actionIds.reduce<Record<string, boolean>>((acc, current) => {\n const mainData = get(\n modifiedData,\n [...pathToContentType.split('..'), current, 'properties', propertyToCheck, targetKey],\n false\n );\n\n acc[current] = mainData;\n\n return acc;\n }, {});\n\n return getCheckboxState(data);\n};\n\nconst Wrapper = styled<FlexComponent>(Flex)<{ $isCollapsable?: boolean; $isActive?: boolean }>`\n height: ${rowHeight};\n flex: 1;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst CarretIcon = styled(CaretDown)<{ $isActive: boolean }>`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.neutral200};\n }\n\n transform: rotate(${({ $isActive }) => ($isActive ? '180' : '0')}deg);\n margin-left: ${({ theme }) => theme.spaces[2]};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SubActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SubActionRowProps {\n childrenForm: SubjectProperty['children'];\n isFormDisabled?: boolean;\n parentName: string;\n pathToDataFromActionRow: string;\n propertyActions: PropertyAction[];\n propertyName: string;\n subject?: string;\n recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = [],\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n subject,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox, checkUserHasPermission } =\n usePermissionsDataManager();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleSubLevel = (name: string) => {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n };\n\n const displayedRecursiveChildren = React.useMemo(() => {\n if (!rowToOpen) {\n return null;\n }\n\n return childrenForm.find(({ value }) => value === rowToOpen);\n }, [rowToOpen, childrenForm]);\n\n return (\n <Box paddingLeft={`3.2rem`}>\n <TopTimeline />\n {childrenForm.map(({ label, value, required, children: subChildrenForm }, index) => {\n const isVisible = index + 1 < childrenForm.length;\n const isArrayType = Array.isArray(subChildrenForm);\n const isActive = rowToOpen === value;\n\n return (\n <LeftBorderTimeline key={value} $isVisible={isVisible}>\n <Flex height={rowHeight}>\n <StyledBox>\n <Svg\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n $color=\"primary200\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.02477 14.7513C8.65865 17.0594 11.6046 18.6059 17.5596 18.8856C18.6836 18.9384 19.5976 19.8435 19.5976 20.9688V20.9688C19.5976 22.0941 18.6841 23.0125 17.5599 22.9643C10.9409 22.6805 6.454 20.9387 3.75496 17.1258C0.937988 13.1464 0.486328 7.39309 0.486328 0.593262H4.50974C4.50974 7.54693 5.06394 11.9813 7.02477 14.7513Z\"\n fill=\"#D9D8FF\"\n />\n </Svg>\n </StyledBox>\n <Flex style={{ flex: 1 }}>\n <RowStyle $level={recursiveLevel} $isActive={isActive} $isCollapsable={isArrayType}>\n <CollapseLabel\n alignItems=\"center\"\n $isCollapsable={isArrayType}\n {...(isArrayType && {\n onClick: () => handleClickToggleSubLevel(value),\n 'aria-expanded': isActive,\n onKeyDown: ({ key }: React.KeyboardEvent<HTMLDivElement>) =>\n (key === 'Enter' || key === ' ') && handleClickToggleSubLevel(value),\n tabIndex: 0,\n role: 'button',\n })}\n title={label}\n >\n <RowLabel ellipsis>{label}</RowLabel>\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </CollapseLabel>\n </RowStyle>\n <Flex style={{ flex: 1 }}>\n {propertyActions.map(\n ({ actionId, label: propertyLabel, isActionRelatedToCurrentProperty }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={actionId} />;\n }\n /*\n * Usually we use a 'dot' in order to know the key path of an object for which we want to change the value.\n * Since an action and a subject are both separated by '.' or '::' we chose to use the '..' separators\n */\n const checkboxName = [\n ...pathToDataFromActionRow.split('..'),\n actionId,\n 'properties',\n propertyName,\n ...parentName.split('..'),\n value,\n ];\n\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n if (!subChildrenForm) {\n const fieldPath =\n propertyName === 'fields' ? `${parentName}.${value}` : undefined;\n const userHasPermission = checkUserHasPermission(\n actionId,\n subject,\n fieldPath\n );\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const { hasAllActionsSelected, hasSomeActionsSelected } =\n getCheckboxState(checkboxValue);\n const fieldPath =\n propertyName === 'fields' ? `${parentName}.${value}` : undefined;\n const userHasPermission = checkUserHasPermission(\n actionId,\n subject,\n fieldPath\n );\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n key={propertyLabel}\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\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.join('..'),\n value: !!value,\n },\n });\n }}\n checked={\n hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected\n }\n />\n </Flex>\n );\n }\n )}\n </Flex>\n </Flex>\n </Flex>\n {displayedRecursiveChildren && isActive && (\n <Box paddingBottom={2}>\n <SubActionRow\n isFormDisabled={isFormDisabled}\n parentName={`${parentName}..${value}`}\n pathToDataFromActionRow={pathToDataFromActionRow}\n propertyActions={propertyActions}\n propertyName={propertyName}\n recursiveLevel={recursiveLevel + 1}\n childrenForm={displayedRecursiveChildren.children}\n subject={subject}\n />\n </Box>\n )}\n </LeftBorderTimeline>\n );\n })}\n </Box>\n );\n};\n\nconst LeftBorderTimeline = styled<BoxComponent>(Box)<{ $isVisible?: boolean }>`\n border-left: ${({ $isVisible, theme }) =>\n $isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};\n`;\n\nconst RowStyle = styled<FlexComponent>(Flex)<{\n $level: number;\n $isCollapsable?: boolean;\n $isActive?: boolean;\n}>`\n padding-left: ${({ theme }) => theme.spaces[4]};\n width: ${({ $level }) => 145 - $level * 36}px;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst RowLabel = styled<TypographyComponent>(Typography)``;\n\nconst TopTimeline = styled.div`\n padding-top: ${({ theme }) => theme.spaces[2]};\n margin-top: ${({ theme }) => theme.spaces[2]};\n width: 0.4rem;\n background-color: ${({ theme }) => theme.colors.primary200};\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n`;\n\nconst StyledBox = styled<BoxComponent>(Box)`\n transform: translate(-4px, -12px);\n\n &:before {\n content: '';\n width: 0.4rem;\n height: 1.2rem;\n background: ${({ theme }) => theme.colors.primary200};\n display: block;\n }\n`;\n\nconst Svg = styled.svg<{ $color: keyof DefaultTheme['colors'] }>`\n position: relative;\n flex-shrink: 0;\n transform: translate(-0.5px, -1px);\n\n * {\n fill: ${({ theme, $color }) => theme.colors[$color]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n headers?: PropertyAction[];\n label: string;\n}\n\nconst Header = ({ headers = [], label }: HeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex>\n <Flex width={firstRowWidth} height={rowHeight} shrink={0} alignItems=\"center\" paddingLeft={6}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permission.property-label',\n defaultMessage: '{label} permissions',\n },\n { label }\n )}\n </Typography>\n </Flex>\n {headers.map((header) => {\n if (!header.isActionRelatedToCurrentProperty) {\n return <Flex width={cellWidth} shrink={0} key={header.label} />;\n }\n\n return (\n <Flex width={cellWidth} shrink={0} justifyContent=\"center\" key={header.label}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`,\n defaultMessage: header.label,\n })}\n </Typography>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst activeStyle = (theme: DefaultTheme) => css`\n color: ${theme.colors.primary600};\n font-weight: ${theme.fontWeights.bold};\n\n ${CarretIcon} {\n path {\n fill: ${theme.colors.primary600};\n }\n }\n`;\n\nexport { CollapsePropertyMatrix };\n"],"names":["CollapsePropertyMatrix","availableActions","childrenForm","isFormDisabled","label","pathToData","propertyName","subject","formatMessage","formatList","useIntl","modifiedData","usePermissionsDataManager","propertyActions","React","useMemo","map","action","isActionRelatedToCurrentProperty","Array","isArray","applyToProperties","indexOf","isDisplayed","actionId","contentTypeKind","split","localeValidationErrorLabels","undefined","errorKeys","getLocaleValidationErrorActionKeys","filter","includes","_jsxs","Flex","display","direction","alignItems","minWidth","_jsx","Header","headers","length","Box","paddingLeft","paddingTop","paddingBottom","Typography","role","variant","textColor","id","defaultMessage","count","actions","type","children","value","required","i","ActionRow","name","isOdd","rowToOpen","setRowToOpen","useState","onChangeCollectionTypeLeftActionRowCheckbox","onChangeParentCheckbox","onChangeSimpleCheckbox","checkUserHasPermission","isActive","recursiveChildren","isCollapsable","handleClick","useCallback","prev","handleChangeLeftRowCheckbox","target","hasAllActionsSelected","hasSomeActionsSelected","getRowLabelCheckboxState","_Fragment","Wrapper","$isCollapsable","$isActive","background","RowLabelWithCheckbox","onChange","onClick","someChecked","RequiredSign","CarretIcon","HiddenAction","checkboxName","checkboxValue","get","fieldPath","userHasPermission","width","cellWidth","position","justifyContent","Checkbox","disabled","join","aria-label","onCheckedChange","checked","data","getCheckboxState","SubActionRow","parentName","pathToDataFromActionRow","recursiveLevel","pathToContentType","propertyToCheck","targetKey","actionIds","reduce","acc","current","push","mainData","styled","rowHeight","theme","activeStyle","CaretDown","colors","neutral200","spaces","handleClickToggleSubLevel","displayedRecursiveChildren","find","TopTimeline","subChildrenForm","index","isVisible","isArrayType","LeftBorderTimeline","$isVisible","height","StyledBox","Svg","viewBox","fill","xmlns","$color","path","fillRule","clipRule","d","style","flex","RowStyle","$level","CollapseLabel","onKeyDown","key","tabIndex","title","RowLabel","ellipsis","propertyLabel","primary200","div","svg","firstRowWidth","shrink","header","toLowerCase","css","primary600","fontWeights","bold"],"mappings":"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"}
1
+ {"version":3,"file":"CollapsePropertyMatrix.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Checkbox,\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n Typography,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme, css } from 'styled-components';\n\nimport { Action, SubjectProperty } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth, rowHeight } from '../utils/constants';\nimport { getCheckboxState } from '../utils/getCheckboxState';\nimport { getLocaleValidationErrorActionKeys } from '../utils/localePermissionValidation';\n\nimport { CollapseLabel } from './CollapseLabel';\nimport { HiddenAction } from './HiddenAction';\nimport { RequiredSign } from './RequiredSign';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\nconst EMPTY_AVAILABLE_ACTIONS: NonNullable<CollapsePropertyMatrixProps['availableActions']> = [];\nconst EMPTY_CHILDREN_FORM: NonNullable<CollapsePropertyMatrixProps['childrenForm']> = [];\nconst EMPTY_ACTION_ROW_CHILDREN_FORM: NonNullable<ActionRowProps['childrenForm']> = [];\nconst EMPTY_SUB_ACTION_ROW_CHILDREN_FORM: NonNullable<SubActionRowProps['childrenForm']> = [];\nconst EMPTY_HEADERS: NonNullable<HeaderProps['headers']> = [];\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsePropertyMatrix\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapsePropertyMatrixProps extends Pick<\n ActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'label' | 'pathToData' | 'propertyName' | 'subject'\n> {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n}\n\ninterface PropertyAction {\n label: string;\n actionId: string;\n isActionRelatedToCurrentProperty: boolean;\n}\n\nconst CollapsePropertyMatrix = ({\n availableActions = EMPTY_AVAILABLE_ACTIONS,\n childrenForm = EMPTY_CHILDREN_FORM,\n isFormDisabled,\n label,\n pathToData,\n propertyName,\n subject,\n}: CollapsePropertyMatrixProps) => {\n const { formatMessage, formatList } = useIntl();\n const { modifiedData } = usePermissionsDataManager();\n const propertyActions = React.useMemo(\n () =>\n availableActions.map((action) => {\n const isActionRelatedToCurrentProperty =\n Array.isArray(action.applyToProperties) &&\n action.applyToProperties.indexOf(propertyName) !== -1 &&\n action.isDisplayed;\n\n return { label: action.label, actionId: action.actionId, isActionRelatedToCurrentProperty };\n }) satisfies PropertyAction[],\n [availableActions, propertyName]\n );\n\n const contentTypeKind = pathToData.split('..')[0] as 'collectionTypes' | 'singleTypes';\n const localeValidationErrorLabels = React.useMemo(() => {\n if (propertyName !== 'locales' || subject === undefined) return [];\n const errorKeys = getLocaleValidationErrorActionKeys(modifiedData, contentTypeKind, subject);\n return propertyActions\n .filter(\n ({ actionId, isActionRelatedToCurrentProperty }) =>\n isActionRelatedToCurrentProperty && errorKeys.includes(actionId)\n )\n .map(({ label }) => label);\n }, [propertyName, subject, modifiedData, contentTypeKind, propertyActions]);\n\n return (\n <Flex display=\"inline-flex\" direction=\"column\" alignItems=\"stretch\" minWidth={0}>\n <Header label={label} headers={propertyActions} />\n {localeValidationErrorLabels.length > 0 && (\n <Box paddingLeft={6} paddingTop={2} paddingBottom={2}>\n <Typography role=\"alert\" variant=\"pi\" textColor=\"danger600\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permissions.locales.validation',\n defaultMessage:\n '{count, plural, one {The {actions} action must apply to at least one locale.} other {The {actions} actions must apply to at least one locale.}}',\n },\n {\n count: localeValidationErrorLabels.length,\n actions: formatList(localeValidationErrorLabels, { type: 'conjunction' }),\n }\n )}\n </Typography>\n </Box>\n )}\n <Box>\n {childrenForm.map(({ children: childrenForm, label, value, required }, i) => (\n <ActionRow\n childrenForm={childrenForm}\n key={value}\n label={label}\n isFormDisabled={isFormDisabled}\n name={value}\n required={required}\n propertyActions={propertyActions}\n pathToData={pathToData}\n propertyName={propertyName}\n isOdd={i % 2 === 0}\n subject={subject}\n />\n ))}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps extends Pick<\n SubActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'propertyActions' | 'propertyName' | 'subject'\n> {\n label: string;\n name: string;\n required?: boolean;\n pathToData: string;\n isOdd?: boolean;\n}\n\nconst ActionRow = ({\n childrenForm = EMPTY_ACTION_ROW_CHILDREN_FORM,\n label,\n isFormDisabled = false,\n name,\n required = false,\n pathToData,\n propertyActions,\n propertyName,\n isOdd = false,\n subject,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n const {\n modifiedData,\n onChangeCollectionTypeLeftActionRowCheckbox,\n onChangeParentCheckbox,\n onChangeSimpleCheckbox,\n checkUserHasPermission,\n } = usePermissionsDataManager();\n\n const isActive = rowToOpen === name;\n\n const recursiveChildren = React.useMemo(() => {\n if (!Array.isArray(childrenForm)) {\n return [];\n }\n\n return childrenForm;\n }, [childrenForm]);\n\n const isCollapsable = recursiveChildren.length > 0;\n\n const handleClick = React.useCallback(() => {\n if (isCollapsable) {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n }\n }, [isCollapsable, name]);\n\n const handleChangeLeftRowCheckbox: RowLabelWithCheckboxProps['onChange'] = ({\n target: { value },\n }) => {\n onChangeCollectionTypeLeftActionRowCheckbox(pathToData, propertyName, name, value);\n };\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = React.useMemo(() => {\n return getRowLabelCheckboxState(propertyActions, modifiedData, pathToData, propertyName, name);\n }, [propertyActions, modifiedData, pathToData, propertyName, name]);\n\n return (\n <>\n <Wrapper\n alignItems=\"center\"\n $isCollapsable={isCollapsable}\n $isActive={isActive}\n background={isOdd ? 'neutral100' : 'neutral0'}\n >\n <Flex>\n <RowLabelWithCheckbox\n onChange={handleChangeLeftRowCheckbox}\n onClick={handleClick}\n isCollapsable={isCollapsable}\n isFormDisabled={isFormDisabled}\n label={label}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </RowLabelWithCheckbox>\n <Flex>\n {propertyActions.map(({ label, isActionRelatedToCurrentProperty, actionId }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={label} />;\n }\n\n const checkboxName = [\n ...pathToData.split('..'),\n actionId,\n 'properties',\n propertyName,\n name,\n ];\n\n if (!isCollapsable) {\n const checkboxValue = get(modifiedData, checkboxName, false);\n const fieldPath = propertyName === 'fields' ? name : undefined;\n const userHasPermission = checkUserHasPermission(actionId, subject, fieldPath);\n\n return (\n <Flex\n key={actionId}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const data = get(modifiedData, checkboxName, {});\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(data);\n const fieldPath = propertyName === 'fields' ? name : undefined;\n const userHasPermission = checkUserHasPermission(actionId, subject, fieldPath);\n\n return (\n <Flex\n key={label}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Flex>\n );\n })}\n </Flex>\n </Flex>\n </Wrapper>\n {isActive && (\n <SubActionRow\n childrenForm={recursiveChildren}\n isFormDisabled={isFormDisabled}\n parentName={name}\n pathToDataFromActionRow={pathToData}\n propertyName={propertyName}\n propertyActions={propertyActions}\n recursiveLevel={0}\n subject={subject}\n />\n )}\n </>\n );\n};\n\n/**\n *\n * Returns the state of the left checkbox of a ActionRow main checkbox\n */\nconst getRowLabelCheckboxState = (\n propertyActions: PropertyAction[],\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToContentType: string,\n propertyToCheck: string,\n targetKey: string\n) => {\n const actionIds = propertyActions.reduce<string[]>((acc, current) => {\n if (current.isActionRelatedToCurrentProperty) {\n acc.push(current.actionId);\n }\n\n return acc;\n }, []);\n\n const data = actionIds.reduce<Record<string, boolean>>((acc, current) => {\n const mainData = get(\n modifiedData,\n [...pathToContentType.split('..'), current, 'properties', propertyToCheck, targetKey],\n false\n );\n\n acc[current] = mainData;\n\n return acc;\n }, {});\n\n return getCheckboxState(data);\n};\n\nconst Wrapper = styled<FlexComponent>(Flex)<{ $isCollapsable?: boolean; $isActive?: boolean }>`\n height: ${rowHeight};\n flex: 1;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst CarretIcon = styled(CaretDown)<{ $isActive: boolean }>`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.neutral200};\n }\n\n transform: rotate(${({ $isActive }) => ($isActive ? '180' : '0')}deg);\n margin-left: ${({ theme }) => theme.spaces[2]};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SubActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SubActionRowProps {\n childrenForm: SubjectProperty['children'];\n isFormDisabled?: boolean;\n parentName: string;\n pathToDataFromActionRow: string;\n propertyActions: PropertyAction[];\n propertyName: string;\n subject?: string;\n recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = EMPTY_SUB_ACTION_ROW_CHILDREN_FORM,\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n subject,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox, checkUserHasPermission } =\n usePermissionsDataManager();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleSubLevel = (name: string) => {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n };\n\n const displayedRecursiveChildren = React.useMemo(() => {\n if (!rowToOpen) {\n return null;\n }\n\n return childrenForm.find(({ value }) => value === rowToOpen);\n }, [rowToOpen, childrenForm]);\n\n return (\n <Box paddingLeft={`3.2rem`}>\n <TopTimeline />\n {childrenForm.map(({ label, value, required, children: subChildrenForm }, index) => {\n const isVisible = index + 1 < childrenForm.length;\n const isArrayType = Array.isArray(subChildrenForm);\n const isActive = rowToOpen === value;\n\n return (\n <LeftBorderTimeline key={value} $isVisible={isVisible}>\n <Flex height={rowHeight}>\n <StyledBox>\n <Svg\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n $color=\"primary200\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.02477 14.7513C8.65865 17.0594 11.6046 18.6059 17.5596 18.8856C18.6836 18.9384 19.5976 19.8435 19.5976 20.9688V20.9688C19.5976 22.0941 18.6841 23.0125 17.5599 22.9643C10.9409 22.6805 6.454 20.9387 3.75496 17.1258C0.937988 13.1464 0.486328 7.39309 0.486328 0.593262H4.50974C4.50974 7.54693 5.06394 11.9813 7.02477 14.7513Z\"\n fill=\"#D9D8FF\"\n />\n </Svg>\n </StyledBox>\n <Flex style={{ flex: 1 }}>\n <RowStyle $level={recursiveLevel} $isActive={isActive} $isCollapsable={isArrayType}>\n <CollapseLabel\n alignItems=\"center\"\n $isCollapsable={isArrayType}\n {...(isArrayType && {\n onClick: () => handleClickToggleSubLevel(value),\n 'aria-expanded': isActive,\n onKeyDown: ({ key }: React.KeyboardEvent<HTMLDivElement>) =>\n (key === 'Enter' || key === ' ') && handleClickToggleSubLevel(value),\n tabIndex: 0,\n role: 'button',\n })}\n title={label}\n >\n <RowLabel ellipsis>{label}</RowLabel>\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </CollapseLabel>\n </RowStyle>\n <Flex style={{ flex: 1 }}>\n {propertyActions.map(\n ({ actionId, label: propertyLabel, isActionRelatedToCurrentProperty }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={actionId} />;\n }\n /*\n * Usually we use a 'dot' in order to know the key path of an object for which we want to change the value.\n * Since an action and a subject are both separated by '.' or '::' we chose to use the '..' separators\n */\n const checkboxName = [\n ...pathToDataFromActionRow.split('..'),\n actionId,\n 'properties',\n propertyName,\n ...parentName.split('..'),\n value,\n ];\n\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n if (!subChildrenForm) {\n const fieldPath =\n propertyName === 'fields' ? `${parentName}.${value}` : undefined;\n const userHasPermission = checkUserHasPermission(\n actionId,\n subject,\n fieldPath\n );\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const { hasAllActionsSelected, hasSomeActionsSelected } =\n getCheckboxState(checkboxValue);\n const fieldPath =\n propertyName === 'fields' ? `${parentName}.${value}` : undefined;\n const userHasPermission = checkUserHasPermission(\n actionId,\n subject,\n fieldPath\n );\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n key={propertyLabel}\n disabled={isFormDisabled || !userHasPermission}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\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.join('..'),\n value: !!value,\n },\n });\n }}\n checked={\n hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected\n }\n />\n </Flex>\n );\n }\n )}\n </Flex>\n </Flex>\n </Flex>\n {displayedRecursiveChildren && isActive && (\n <Box paddingBottom={2}>\n <SubActionRow\n isFormDisabled={isFormDisabled}\n parentName={`${parentName}..${value}`}\n pathToDataFromActionRow={pathToDataFromActionRow}\n propertyActions={propertyActions}\n propertyName={propertyName}\n recursiveLevel={recursiveLevel + 1}\n childrenForm={displayedRecursiveChildren.children}\n subject={subject}\n />\n </Box>\n )}\n </LeftBorderTimeline>\n );\n })}\n </Box>\n );\n};\n\nconst LeftBorderTimeline = styled<BoxComponent>(Box)<{ $isVisible?: boolean }>`\n border-left: ${({ $isVisible, theme }) =>\n $isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};\n`;\n\nconst RowStyle = styled<FlexComponent>(Flex)<{\n $level: number;\n $isCollapsable?: boolean;\n $isActive?: boolean;\n}>`\n padding-left: ${({ theme }) => theme.spaces[4]};\n width: ${({ $level }) => 145 - $level * 36}px;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst RowLabel = styled<TypographyComponent>(Typography)``;\n\nconst TopTimeline = styled.div`\n padding-top: ${({ theme }) => theme.spaces[2]};\n margin-top: ${({ theme }) => theme.spaces[2]};\n width: 0.4rem;\n background-color: ${({ theme }) => theme.colors.primary200};\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n`;\n\nconst StyledBox = styled<BoxComponent>(Box)`\n transform: translate(-4px, -12px);\n\n &:before {\n content: '';\n width: 0.4rem;\n height: 1.2rem;\n background: ${({ theme }) => theme.colors.primary200};\n display: block;\n }\n`;\n\nconst Svg = styled.svg<{ $color: keyof DefaultTheme['colors'] }>`\n position: relative;\n flex-shrink: 0;\n transform: translate(-0.5px, -1px);\n\n * {\n fill: ${({ theme, $color }) => theme.colors[$color]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n headers?: PropertyAction[];\n label: string;\n}\n\nconst Header = ({ headers = EMPTY_HEADERS, label }: HeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex>\n <Flex width={firstRowWidth} height={rowHeight} shrink={0} alignItems=\"center\" paddingLeft={6}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permission.property-label',\n defaultMessage: '{label} permissions',\n },\n { label }\n )}\n </Typography>\n </Flex>\n {headers.map((header) => {\n if (!header.isActionRelatedToCurrentProperty) {\n return <Flex width={cellWidth} shrink={0} key={header.label} />;\n }\n\n return (\n <Flex width={cellWidth} shrink={0} justifyContent=\"center\" key={header.label}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`,\n defaultMessage: header.label,\n })}\n </Typography>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst activeStyle = (theme: DefaultTheme) => css`\n color: ${theme.colors.primary600};\n font-weight: ${theme.fontWeights.bold};\n\n ${CarretIcon} {\n path {\n fill: ${theme.colors.primary600};\n }\n }\n`;\n\nexport { CollapsePropertyMatrix };\n"],"names":["EMPTY_AVAILABLE_ACTIONS","EMPTY_CHILDREN_FORM","EMPTY_ACTION_ROW_CHILDREN_FORM","EMPTY_SUB_ACTION_ROW_CHILDREN_FORM","EMPTY_HEADERS","CollapsePropertyMatrix","availableActions","childrenForm","isFormDisabled","label","pathToData","propertyName","subject","formatMessage","formatList","useIntl","modifiedData","usePermissionsDataManager","propertyActions","React","useMemo","map","action","isActionRelatedToCurrentProperty","Array","isArray","applyToProperties","indexOf","isDisplayed","actionId","contentTypeKind","split","localeValidationErrorLabels","undefined","errorKeys","getLocaleValidationErrorActionKeys","filter","includes","_jsxs","Flex","display","direction","alignItems","minWidth","_jsx","Header","headers","length","Box","paddingLeft","paddingTop","paddingBottom","Typography","role","variant","textColor","id","defaultMessage","count","actions","type","children","value","required","i","ActionRow","name","isOdd","rowToOpen","setRowToOpen","useState","onChangeCollectionTypeLeftActionRowCheckbox","onChangeParentCheckbox","onChangeSimpleCheckbox","checkUserHasPermission","isActive","recursiveChildren","isCollapsable","handleClick","useCallback","prev","handleChangeLeftRowCheckbox","target","hasAllActionsSelected","hasSomeActionsSelected","getRowLabelCheckboxState","_Fragment","Wrapper","$isCollapsable","$isActive","background","RowLabelWithCheckbox","onChange","onClick","someChecked","RequiredSign","CarretIcon","HiddenAction","checkboxName","checkboxValue","get","fieldPath","userHasPermission","width","cellWidth","position","justifyContent","Checkbox","disabled","join","aria-label","onCheckedChange","checked","data","getCheckboxState","SubActionRow","parentName","pathToDataFromActionRow","recursiveLevel","pathToContentType","propertyToCheck","targetKey","actionIds","reduce","acc","current","push","mainData","styled","rowHeight","theme","activeStyle","CaretDown","colors","neutral200","spaces","handleClickToggleSubLevel","displayedRecursiveChildren","find","TopTimeline","subChildrenForm","index","isVisible","isArrayType","LeftBorderTimeline","$isVisible","height","StyledBox","Svg","viewBox","fill","xmlns","$color","path","fillRule","clipRule","d","style","flex","RowStyle","$level","CollapseLabel","onKeyDown","key","tabIndex","title","RowLabel","ellipsis","propertyLabel","primary200","div","svg","firstRowWidth","shrink","header","toLowerCase","css","primary600","fontWeights","bold"],"mappings":"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"}
@@ -36,7 +36,9 @@ var get__default = /*#__PURE__*/_interopDefault(get);
36
36
  var groupBy__default = /*#__PURE__*/_interopDefault(groupBy);
37
37
  var upperFirst__default = /*#__PURE__*/_interopDefault(upperFirst);
38
38
 
39
- const ConditionsModal = ({ actions = [], headerBreadCrumbs = [], isFormDisabled, isReadOnly = false, onClose })=>{
39
+ const EMPTY_ACTIONS = [];
40
+ const EMPTY_HEADER_BREAD_CRUMBS = [];
41
+ const ConditionsModal = ({ actions = EMPTY_ACTIONS, headerBreadCrumbs = EMPTY_HEADER_BREAD_CRUMBS, isFormDisabled, isReadOnly = false, onClose })=>{
40
42
  const { formatMessage } = reactIntl.useIntl();
41
43
  const { availableConditions, modifiedData, onChangeConditions } = usePermissionsDataManager.usePermissionsDataManager();
42
44
  const arrayOfOptionsGroupedByCategory = React__namespace.useMemo(()=>{
@@ -65,15 +67,19 @@ const ConditionsModal = ({ actions = [], headerBreadCrumbs = [], isFormDisabled,
65
67
  return;
66
68
  }
67
69
  setState(immer.produce((draft)=>{
68
- if (draft[name] === undefined) {
69
- draft[name] = {};
70
+ // `values` is flat across categories. Store each id on its own category so
71
+ // submit cannot overwrite it with a stale bucket.
72
+ const nextCategories = {};
73
+ for (const [categoryName, relatedConditions] of arrayOfOptionsGroupedByCategory){
74
+ nextCategories[categoryName] = relatedConditions.reduce((categoryValues, condition)=>{
75
+ categoryValues[condition.id] = Boolean(values[condition.id]);
76
+ return categoryValues;
77
+ }, {});
70
78
  }
71
- if (draft[name].default === undefined) {
72
- draft[name].default = {};
73
- }
74
- draft[name].default = values;
79
+ draft[name] = nextCategories;
75
80
  }));
76
81
  }, [
82
+ arrayOfOptionsGroupedByCategory,
77
83
  isReadOnly
78
84
  ]);
79
85
  const handleSubmit = React__namespace.useCallback(()=>{
@@ -316,7 +322,7 @@ const ActionRow = ({ arrayOfOptionsGroupedByCategory, isFormDisabled = false, is
316
322
  ]
317
323
  });
318
324
  };
319
- const getSelectedValues = (rawValue)=>Object.values(rawValue).map((x)=>Object.entries(x).filter(([, value])=>value).map(([key])=>key)).flat();
325
+ const getSelectedValues = (rawValue)=>Object.values(rawValue).flatMap((x)=>Object.entries(x).filter(([, value])=>value).map(([key])=>key));
320
326
  const getNestedOptions = (options)=>options.reduce((acc, [label, children])=>{
321
327
  acc.push({
322
328
  label: strings.capitalise(label),
@@ -327,7 +333,7 @@ const getNestedOptions = (options)=>options.reduce((acc, [label, children])=>{
327
333
  });
328
334
  return acc;
329
335
  }, []);
330
- const getNewStateFromChangedValues = (options, changedValues)=>options.map(([, values])=>values).flat().reduce((acc, curr)=>({
336
+ const getNewStateFromChangedValues = (options, changedValues)=>options.flatMap(([, values])=>values).reduce((acc, curr)=>({
331
337
  [curr.id]: changedValues.includes(curr.id),
332
338
  ...acc
333
339
  }), {});