@strapi/admin 5.29.0 → 5.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  2. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  3. package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
  4. package/dist/admin/admin/src/components/ContentBox.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
  6. package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
  7. package/dist/admin/admin/src/components/Filters.js +1 -1
  8. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  9. package/dist/admin/admin/src/components/Filters.mjs +1 -1
  10. package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
  11. package/dist/admin/admin/src/components/Form.js +8 -3
  12. package/dist/admin/admin/src/components/Form.js.map +1 -1
  13. package/dist/admin/admin/src/components/Form.mjs +8 -3
  14. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  15. package/dist/admin/admin/src/components/FormInputs/Enumeration.js +1 -1
  16. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +1 -1
  18. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  19. package/dist/admin/admin/src/components/FormInputs/Number.js +1 -1
  20. package/dist/admin/admin/src/components/FormInputs/Number.js.map +1 -1
  21. package/dist/admin/admin/src/components/FormInputs/Number.mjs +1 -1
  22. package/dist/admin/admin/src/components/FormInputs/Number.mjs.map +1 -1
  23. package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
  24. package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/FormInputs/String.js +2 -1
  26. package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
  27. package/dist/admin/admin/src/components/FormInputs/String.mjs +2 -1
  28. package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/FormInputs/Time.js.map +1 -1
  30. package/dist/admin/admin/src/components/FormInputs/Time.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
  32. package/dist/admin/admin/src/components/GapDropZone.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  34. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
  36. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  38. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
  39. package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
  40. package/dist/admin/admin/src/components/Layouts/GridLayout.mjs.map +1 -1
  41. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +8 -4
  42. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  43. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +8 -4
  44. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/NpsSurvey.js +5 -3
  46. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  47. package/dist/admin/admin/src/components/NpsSurvey.mjs +5 -3
  48. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  50. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  51. package/dist/admin/admin/src/components/PrivateRoute.js.map +1 -1
  52. package/dist/admin/admin/src/components/PrivateRoute.mjs.map +1 -1
  53. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  54. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  55. package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
  56. package/dist/admin/admin/src/components/ResizeIndicator.mjs.map +1 -1
  57. package/dist/admin/admin/src/components/Table.js +1 -1
  58. package/dist/admin/admin/src/components/Table.js.map +1 -1
  59. package/dist/admin/admin/src/components/Table.mjs +1 -1
  60. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  61. package/dist/admin/admin/src/components/Theme.js +34 -1
  62. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  63. package/dist/admin/admin/src/components/Theme.mjs +34 -1
  64. package/dist/admin/admin/src/components/Theme.mjs.map +1 -1
  65. package/dist/admin/admin/src/components/Widgets.js.map +1 -1
  66. package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
  67. package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
  68. package/dist/admin/admin/src/core/apis/CustomFields.mjs.map +1 -1
  69. package/dist/admin/admin/src/core/apis/Plugin.js +0 -1
  70. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  71. package/dist/admin/admin/src/core/apis/Plugin.mjs +0 -1
  72. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  73. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  74. package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
  75. package/dist/admin/admin/src/core/apis/rbac.js.map +1 -1
  76. package/dist/admin/admin/src/core/apis/rbac.mjs.map +1 -1
  77. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  78. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  79. package/dist/admin/admin/src/features/BackButton.js.map +1 -1
  80. package/dist/admin/admin/src/features/BackButton.mjs.map +1 -1
  81. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  82. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  83. package/dist/admin/admin/src/features/Widgets.js.map +1 -1
  84. package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
  85. package/dist/admin/admin/src/hooks/usePersistentState.js.map +1 -1
  86. package/dist/admin/admin/src/hooks/usePersistentState.mjs.map +1 -1
  87. package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
  88. package/dist/admin/admin/src/hooks/useRBAC.mjs.map +1 -1
  89. package/dist/admin/admin/src/pages/Auth/components/Login.js +1 -1
  90. package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
  91. package/dist/admin/admin/src/pages/Auth/components/Login.mjs +1 -1
  92. package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
  93. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  94. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  95. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  96. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  97. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js +2 -2
  98. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js.map +1 -1
  99. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs +2 -2
  100. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs.map +1 -1
  101. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +1 -1
  102. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs.map +1 -1
  103. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js.map +1 -1
  104. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs.map +1 -1
  105. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js.map +1 -1
  106. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs.map +1 -1
  107. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js.map +1 -1
  108. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs.map +1 -1
  109. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  110. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  111. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +8 -1
  112. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  113. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +9 -2
  114. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  115. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
  116. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
  117. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  118. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  119. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js +1 -0
  120. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js.map +1 -1
  121. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs +1 -0
  122. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs.map +1 -1
  123. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  124. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
  125. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  126. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  127. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
  128. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
  129. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +2 -0
  130. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  131. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +2 -0
  132. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  133. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  134. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  135. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +1 -0
  136. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  137. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs +1 -0
  138. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
  139. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.js.map +1 -1
  140. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.mjs.map +1 -1
  141. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
  142. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
  143. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +10 -2
  144. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  145. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +10 -2
  146. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  147. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +9 -2
  148. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  149. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +9 -2
  150. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
  151. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
  152. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
  153. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  154. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  155. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  156. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
  157. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  158. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  159. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  160. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
  161. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  162. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  163. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  164. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  165. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js +2 -1
  166. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js.map +1 -1
  167. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs +2 -1
  168. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs.map +1 -1
  169. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
  170. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
  171. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.js.map +1 -1
  172. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.mjs.map +1 -1
  173. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  174. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  175. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +2 -0
  176. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
  177. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs +2 -0
  178. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
  179. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +9 -2
  180. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  181. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +9 -2
  182. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  183. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +3 -1
  184. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  185. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +3 -1
  186. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  187. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.js.map +1 -1
  188. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.mjs.map +1 -1
  189. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
  190. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs.map +1 -1
  191. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
  192. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.mjs.map +1 -1
  193. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  194. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
  195. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +1 -1
  196. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  197. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +1 -1
  198. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  199. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +9 -2
  200. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  201. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +9 -2
  202. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  203. package/dist/admin/admin/src/pages/UseCasePage.js +1 -0
  204. package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
  205. package/dist/admin/admin/src/pages/UseCasePage.mjs +1 -0
  206. package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
  207. package/dist/admin/admin/src/services/api.js +2 -1
  208. package/dist/admin/admin/src/services/api.js.map +1 -1
  209. package/dist/admin/admin/src/services/api.mjs +2 -1
  210. package/dist/admin/admin/src/services/api.mjs.map +1 -1
  211. package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
  212. package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
  213. package/dist/admin/admin/src/services/transferTokens.js.map +1 -1
  214. package/dist/admin/admin/src/services/transferTokens.mjs.map +1 -1
  215. package/dist/admin/admin/src/services/users.js.map +1 -1
  216. package/dist/admin/admin/src/services/users.mjs.map +1 -1
  217. package/dist/admin/admin/src/services/webhooks.js.map +1 -1
  218. package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
  219. package/dist/admin/admin/src/translations/en.json.js +4 -0
  220. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  221. package/dist/admin/admin/src/translations/en.json.mjs +4 -0
  222. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  223. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  224. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  225. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  226. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  227. package/dist/admin/admin/src/utils/getPrefixedId.js.map +1 -1
  228. package/dist/admin/admin/src/utils/getPrefixedId.mjs.map +1 -1
  229. package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
  230. package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
  231. package/dist/admin/admin/src/utils/urls.js.map +1 -1
  232. package/dist/admin/admin/src/utils/urls.mjs.map +1 -1
  233. package/dist/admin/admin/src/utils/users.js.map +1 -1
  234. package/dist/admin/admin/src/utils/users.mjs.map +1 -1
  235. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
  236. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -1
  237. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
  238. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
  239. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
  240. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
  241. package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
  242. package/dist/admin/ee/admin/src/pages/AuthResponse.mjs.map +1 -1
  243. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
  244. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
  245. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +3 -3
  246. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
  247. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +3 -3
  248. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
  249. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  250. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs.map +1 -1
  251. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
  252. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.mjs.map +1 -1
  253. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
  254. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
  255. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.js.map +1 -1
  256. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.mjs.map +1 -1
  257. package/dist/admin/ee/admin/src/services/ai.js +14 -1
  258. package/dist/admin/ee/admin/src/services/ai.js.map +1 -1
  259. package/dist/admin/ee/admin/src/services/ai.mjs +14 -2
  260. package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -1
  261. package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
  262. package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
  263. package/dist/admin/ee.js +1 -0
  264. package/dist/admin/ee.js.map +1 -1
  265. package/dist/admin/ee.mjs +1 -1
  266. package/dist/admin/src/components/Form.d.ts +1 -1
  267. package/dist/admin/src/core/store/configure.d.ts +2 -2
  268. package/dist/admin/src/core/store/hooks.d.ts +2 -2
  269. package/dist/admin/src/ee.d.ts +1 -1
  270. package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
  271. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
  272. package/dist/admin/src/selectors.d.ts +2 -2
  273. package/dist/admin/src/services/admin.d.ts +6 -6
  274. package/dist/admin/src/services/api.d.ts +1 -1
  275. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  276. package/dist/admin/src/services/auth.d.ts +13 -13
  277. package/dist/admin/src/services/contentApi.d.ts +1 -1
  278. package/dist/admin/src/services/contentManager.d.ts +1 -1
  279. package/dist/admin/src/services/homepage.d.ts +3 -3
  280. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  281. package/dist/admin/src/services/users.d.ts +8 -8
  282. package/dist/admin/src/services/webhooks.d.ts +2 -2
  283. package/dist/admin/tests/utils.d.ts +1 -1
  284. package/dist/ee/admin/src/services/ai.d.ts +6 -3
  285. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  286. package/dist/ee/server/src/ai/containers/ai.d.ts +11 -0
  287. package/dist/ee/server/src/ai/containers/ai.d.ts.map +1 -0
  288. package/dist/ee/server/src/ai/controllers/ai.d.ts +1 -0
  289. package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -1
  290. package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -1
  291. package/dist/ee/server/src/index.d.ts +1 -0
  292. package/dist/ee/server/src/index.d.ts.map +1 -1
  293. package/dist/server/ee/server/src/ai/containers/ai.js +18 -0
  294. package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -0
  295. package/dist/server/ee/server/src/ai/containers/ai.mjs +16 -0
  296. package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -0
  297. package/dist/server/ee/server/src/ai/controllers/ai.js +6 -0
  298. package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
  299. package/dist/server/ee/server/src/ai/controllers/ai.mjs +6 -0
  300. package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
  301. package/dist/server/ee/server/src/ai/routes/ai.js +11 -0
  302. package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
  303. package/dist/server/ee/server/src/ai/routes/ai.mjs +11 -0
  304. package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
  305. package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
  306. package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
  307. package/dist/server/ee/server/src/controllers/authentication-utils/constants.js.map +1 -1
  308. package/dist/server/ee/server/src/controllers/authentication-utils/constants.mjs.map +1 -1
  309. package/dist/server/ee/server/src/controllers/authentication-utils/utils.js.map +1 -1
  310. package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs.map +1 -1
  311. package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
  312. package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
  313. package/dist/server/ee/server/src/controllers/user.js.map +1 -1
  314. package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
  315. package/dist/server/ee/server/src/index.js +7 -0
  316. package/dist/server/ee/server/src/index.js.map +1 -1
  317. package/dist/server/ee/server/src/index.mjs +7 -0
  318. package/dist/server/ee/server/src/index.mjs.map +1 -1
  319. package/dist/server/ee/server/src/services/auth.js.map +1 -1
  320. package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
  321. package/dist/server/ee/server/src/services/passport/sso.js.map +1 -1
  322. package/dist/server/ee/server/src/services/passport/sso.mjs.map +1 -1
  323. package/dist/server/ee/server/src/utils/index.js.map +1 -1
  324. package/dist/server/ee/server/src/utils/index.mjs.map +1 -1
  325. package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
  326. package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
  327. package/dist/server/server/src/controllers/user.js +10 -0
  328. package/dist/server/server/src/controllers/user.js.map +1 -1
  329. package/dist/server/server/src/controllers/user.mjs +10 -0
  330. package/dist/server/server/src/controllers/user.mjs.map +1 -1
  331. package/dist/server/server/src/domain/action/index.js.map +1 -1
  332. package/dist/server/server/src/domain/action/index.mjs.map +1 -1
  333. package/dist/server/server/src/domain/condition/index.js.map +1 -1
  334. package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
  335. package/dist/server/server/src/domain/permission/index.js.map +1 -1
  336. package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
  337. package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
  338. package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
  339. package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
  340. package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
  341. package/dist/server/server/src/services/api-token.js.map +1 -1
  342. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  343. package/dist/server/server/src/services/auth.js.map +1 -1
  344. package/dist/server/server/src/services/auth.mjs.map +1 -1
  345. package/dist/server/server/src/services/content-type.js.map +1 -1
  346. package/dist/server/server/src/services/content-type.mjs.map +1 -1
  347. package/dist/server/server/src/services/encryption.js.map +1 -1
  348. package/dist/server/server/src/services/encryption.mjs.map +1 -1
  349. package/dist/server/server/src/services/homepage.js.map +1 -1
  350. package/dist/server/server/src/services/homepage.mjs.map +1 -1
  351. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
  352. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
  353. package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
  354. package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
  355. package/dist/server/server/src/services/role.js.map +1 -1
  356. package/dist/server/server/src/services/role.mjs.map +1 -1
  357. package/dist/server/server/src/services/transfer/token.js.map +1 -1
  358. package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
  359. package/dist/server/server/src/services/user.js +30 -0
  360. package/dist/server/server/src/services/user.js.map +1 -1
  361. package/dist/server/server/src/services/user.mjs +30 -0
  362. package/dist/server/server/src/services/user.mjs.map +1 -1
  363. package/dist/server/server/src/utils/index.js.map +1 -1
  364. package/dist/server/server/src/utils/index.mjs.map +1 -1
  365. package/dist/server/server/src/validation/action-provider.js.map +1 -1
  366. package/dist/server/server/src/validation/action-provider.mjs.map +1 -1
  367. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
  368. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.mjs.map +1 -1
  369. package/dist/server/server/src/validation/common-validators.js.map +1 -1
  370. package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
  371. package/dist/server/src/controllers/user.d.ts.map +1 -1
  372. package/dist/server/src/services/user.d.ts.map +1 -1
  373. package/dist/shared/contracts/ai.d.ts +16 -0
  374. package/dist/shared/contracts/ai.d.ts.map +1 -1
  375. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"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';\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'\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}: CollapsePropertyMatrixProps) => {\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 return (\n <Flex display=\"inline-flex\" direction=\"column\" alignItems=\"stretch\" minWidth={0}>\n <Header label={label} headers={propertyActions} />\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 />\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'\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}: 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 } = 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\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}\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\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}\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 />\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 recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = [],\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } =\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 return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\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\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}\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 />\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","propertyActions","React","useMemo","map","action","isActionRelatedToCurrentProperty","Array","isArray","applyToProperties","indexOf","isDisplayed","actionId","_jsxs","Flex","display","direction","alignItems","minWidth","_jsx","Header","headers","Box","children","value","required","i","ActionRow","name","isOdd","formatMessage","useIntl","rowToOpen","setRowToOpen","useState","modifiedData","onChangeCollectionTypeLeftActionRowCheckbox","onChangeParentCheckbox","onChangeSimpleCheckbox","usePermissionsDataManager","isActive","recursiveChildren","isCollapsable","length","handleClick","useCallback","prev","handleChangeLeftRowCheckbox","target","hasAllActionsSelected","hasSomeActionsSelected","getRowLabelCheckboxState","_Fragment","Wrapper","$isCollapsable","$isActive","background","RowLabelWithCheckbox","onChange","onClick","someChecked","RequiredSign","CarretIcon","HiddenAction","checkboxName","split","checkboxValue","get","width","cellWidth","position","justifyContent","Checkbox","disabled","join","aria-label","id","defaultMessage","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","paddingLeft","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","role","title","RowLabel","ellipsis","propertyLabel","paddingBottom","primary200","Typography","div","svg","firstRowWidth","shrink","variant","textColor","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';\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'\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}: CollapsePropertyMatrixProps) => {\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 return (\n <Flex display=\"inline-flex\" direction=\"column\" alignItems=\"stretch\" minWidth={0}>\n <Header label={label} headers={propertyActions} />\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 />\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'\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}: 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 } = 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\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}\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\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}\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 />\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 recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = [],\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } =\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 return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\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\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}\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 />\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","propertyActions","React","useMemo","map","action","isActionRelatedToCurrentProperty","Array","isArray","applyToProperties","indexOf","isDisplayed","actionId","_jsxs","Flex","display","direction","alignItems","minWidth","_jsx","Header","headers","Box","children","value","required","i","ActionRow","name","isOdd","formatMessage","useIntl","rowToOpen","setRowToOpen","useState","modifiedData","onChangeCollectionTypeLeftActionRowCheckbox","onChangeParentCheckbox","onChangeSimpleCheckbox","usePermissionsDataManager","isActive","recursiveChildren","isCollapsable","length","handleClick","useCallback","prev","handleChangeLeftRowCheckbox","target","hasAllActionsSelected","hasSomeActionsSelected","getRowLabelCheckboxState","_Fragment","Wrapper","$isCollapsable","$isActive","background","RowLabelWithCheckbox","onChange","onClick","someChecked","RequiredSign","CarretIcon","HiddenAction","checkboxName","split","checkboxValue","get","width","cellWidth","position","justifyContent","Checkbox","disabled","join","aria-label","id","defaultMessage","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","paddingLeft","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","role","title","RowLabel","ellipsis","propertyLabel","paddingBottom","primary200","Typography","div","svg","firstRowWidth","shrink","variant","textColor","header","toLowerCase","css","primary600","fontWeights","bold"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionsModal.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/ConditionsModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Modal,\n MultiSelectNested,\n MultiSelectNestedProps,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport groupBy from 'lodash/groupBy';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\n\nimport type { HiddenCheckboxAction, VisibleCheckboxAction } from './ContentTypeCollapses';\nimport type { ConditionForm } from '../utils/forms';\n\n/* -------------------------------------------------------------------------------------------------\n * ConditionsModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConditionAction extends Pick<ActionRowProps, 'label'> {\n actionId: string;\n isDisplayed: boolean;\n hasSomeActionsSelected?: boolean;\n hasAllActionsSelected?: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface ConditionsModalProps extends Pick<ActionRowProps, 'isFormDisabled'> {\n actions?: Array<ConditionAction | HiddenCheckboxAction | VisibleCheckboxAction>;\n headerBreadCrumbs?: string[];\n onClose?: () => void;\n}\n\nconst ConditionsModal = ({\n actions = [],\n headerBreadCrumbs = [],\n isFormDisabled,\n onClose,\n}: ConditionsModalProps) => {\n const { formatMessage } = useIntl();\n const { availableConditions, modifiedData, onChangeConditions } = usePermissionsDataManager();\n\n const arrayOfOptionsGroupedByCategory = React.useMemo(() => {\n return Object.entries(groupBy(availableConditions, 'category'));\n }, [availableConditions]);\n\n const actionsToDisplay = actions.filter<VisibleCheckboxAction | ConditionAction>(\n // @ts-expect-error – TODO: fix this type issue\n ({ isDisplayed, hasSomeActionsSelected, hasAllActionsSelected }) =>\n isDisplayed && Boolean(hasSomeActionsSelected || hasAllActionsSelected)\n );\n\n const [state, setState] = React.useState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n const handleChange = (name: string, values: ConditionForm) => {\n setState(\n produce((draft) => {\n if (!draft[name]) {\n draft[name] = {};\n }\n\n if (!draft[name].default) {\n draft[name].default = {};\n }\n\n draft[name].default = values;\n })\n );\n };\n\n const handleSubmit = () => {\n const conditionsWithoutCategory = Object.entries(state).reduce<Record<string, ConditionForm>>(\n (acc, current) => {\n const [key, value] = current;\n\n const merged = Object.values(value).reduce((acc1, current1) => {\n return { ...acc1, ...current1 };\n }, {});\n\n acc[key] = merged;\n\n return acc;\n },\n {}\n );\n\n onChangeConditions(conditionsWithoutCategory);\n onClose && onClose();\n };\n\n const onCloseModal = () => {\n setState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n onClose && onClose();\n };\n\n return (\n <Modal.Content>\n <Modal.Header>\n <Breadcrumbs id=\"condition-modal-breadcrumbs\" label={headerBreadCrumbs.join(', ')}>\n {headerBreadCrumbs.map((label, index, arr) => (\n <Crumb isCurrent={index === arr.length - 1} key={label}>\n {upperFirst(\n formatMessage({\n id: label,\n defaultMessage: label,\n })\n )}\n </Crumb>\n ))}\n </Breadcrumbs>\n </Modal.Header>\n <Modal.Body>\n {actionsToDisplay.length === 0 && (\n <Typography>\n {formatMessage({\n id: 'Settings.permissions.conditions.no-actions',\n defaultMessage:\n 'You first need to select actions (create, read, update, ...) before defining conditions on them.',\n })}\n </Typography>\n )}\n <ul>\n {actionsToDisplay.map(({ actionId, label, pathToConditionsObject }, index) => {\n const name = pathToConditionsObject.join('..');\n\n return (\n <ActionRow\n key={actionId}\n arrayOfOptionsGroupedByCategory={arrayOfOptionsGroupedByCategory}\n label={label}\n isFormDisabled={isFormDisabled}\n isGrey={index % 2 === 0}\n name={name}\n onChange={handleChange}\n value={get(state, name, {})}\n />\n );\n })}\n </ul>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={() => onCloseModal()}>\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button onClick={handleSubmit}>\n {formatMessage({\n id: 'Settings.permissions.conditions.apply',\n defaultMessage: 'Apply',\n })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n );\n};\n\nconst createDefaultConditionsForm = (\n actionsToDisplay: Array<ConditionAction | VisibleCheckboxAction>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n arrayOfOptionsGroupedByCategory: ActionRowProps['arrayOfOptionsGroupedByCategory']\n) => {\n return actionsToDisplay.reduce<Record<string, Record<string, ConditionForm>>>((acc, current) => {\n const valueFromModifiedData: ConditionForm = get(\n modifiedData,\n [...current.pathToConditionsObject, 'conditions'],\n {}\n );\n\n const categoryDefaultForm = arrayOfOptionsGroupedByCategory.reduce<\n Record<string, ConditionForm>\n >((acc, current) => {\n const [categoryName, relatedConditions] = current;\n\n const conditionsForm = relatedConditions.reduce<ConditionForm>((acc, current) => {\n acc[current.id] = get(valueFromModifiedData, current.id, false);\n\n return acc;\n }, {});\n\n acc[categoryName] = conditionsForm;\n\n return acc;\n }, {});\n\n acc[current.pathToConditionsObject.join('..')] = categoryDefaultForm;\n\n return acc;\n }, {});\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps {\n arrayOfOptionsGroupedByCategory: Array<\n [string, PermissionsDataManagerContextValue['availableConditions']]\n >;\n isFormDisabled?: boolean;\n isGrey?: boolean;\n label: string;\n name: string;\n onChange?: (name: string, values: Record<string, boolean>) => void;\n value: Record<string, ConditionForm>;\n}\n\nconst ActionRow = ({\n arrayOfOptionsGroupedByCategory,\n isFormDisabled = false,\n isGrey = false,\n label,\n name,\n onChange,\n value,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n\n const handleChange: MultiSelectNestedProps['onChange'] = (val) => {\n if (onChange) {\n onChange(name, getNewStateFromChangedValues(arrayOfOptionsGroupedByCategory, val));\n }\n };\n\n return (\n <Flex\n tag=\"li\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n paddingBottom={3}\n paddingTop={3}\n justifyContent={'space-evenly'}\n >\n <Flex style={{ width: 180 }}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.permissions.conditions.can',\n defaultMessage: 'Can',\n })}\n &nbsp;\n </Typography>\n <Typography variant=\"sigma\" title={label} textColor=\"primary600\" ellipsis>\n {formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n })}\n </Typography>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n &nbsp;\n {formatMessage({\n id: 'Settings.permissions.conditions.when',\n defaultMessage: 'When',\n })}\n </Typography>\n </Flex>\n <Box style={{ maxWidth: 430, width: '100%' }}>\n <MultiSelectNested\n id={name}\n customizeContent={(values = []) => `${values.length} currently selected`}\n onChange={handleChange}\n value={getSelectedValues(value)}\n options={getNestedOptions(arrayOfOptionsGroupedByCategory)}\n disabled={isFormDisabled}\n />\n </Box>\n </Flex>\n );\n};\n\nconst getSelectedValues = (rawValue: Record<string, ConditionForm>): string[] =>\n Object.values(rawValue)\n .map((x) =>\n Object.entries(x)\n .filter(([, value]) => value)\n .map(([key]) => key)\n )\n .flat();\n\nconst getNestedOptions = (options: ActionRowProps['arrayOfOptionsGroupedByCategory']) =>\n options.reduce<MultiSelectNestedProps['options']>((acc, [label, children]) => {\n acc.push({\n label: capitalise(label),\n children: children.map((child) => ({\n label: child.displayName,\n value: child.id,\n })),\n });\n\n return acc;\n }, []);\n\nconst getNewStateFromChangedValues = (\n options: ActionRowProps['arrayOfOptionsGroupedByCategory'],\n changedValues: string[]\n) =>\n options\n .map(([, values]) => values)\n .flat()\n .reduce<Record<string, boolean>>(\n (acc, curr) => ({ [curr.id]: changedValues.includes(curr.id), ...acc }),\n {}\n );\n\nexport { ConditionsModal };\nexport type { ConditionsModalProps };\n"],"names":["ConditionsModal","actions","headerBreadCrumbs","isFormDisabled","onClose","formatMessage","useIntl","availableConditions","modifiedData","onChangeConditions","usePermissionsDataManager","arrayOfOptionsGroupedByCategory","React","useMemo","Object","entries","groupBy","actionsToDisplay","filter","isDisplayed","hasSomeActionsSelected","hasAllActionsSelected","Boolean","state","setState","useState","createDefaultConditionsForm","handleChange","name","values","produce","draft","default","handleSubmit","conditionsWithoutCategory","reduce","acc","current","key","value","merged","acc1","current1","onCloseModal","_jsxs","Modal","Content","_jsx","Header","Breadcrumbs","id","label","join","map","index","arr","Crumb","isCurrent","length","upperFirst","defaultMessage","Body","Typography","ul","actionId","pathToConditionsObject","ActionRow","isGrey","onChange","get","Footer","Button","variant","onClick","valueFromModifiedData","categoryDefaultForm","categoryName","relatedConditions","conditionsForm","val","getNewStateFromChangedValues","Flex","tag","background","paddingBottom","paddingTop","justifyContent","style","width","textColor","title","ellipsis","toLowerCase","Box","maxWidth","MultiSelectNested","customizeContent","getSelectedValues","options","getNestedOptions","disabled","rawValue","x","flat","children","push","capitalise","child","displayName","changedValues","curr","includes"],"mappings":"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"}
1
+ {"version":3,"file":"ConditionsModal.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/ConditionsModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Modal,\n MultiSelectNested,\n MultiSelectNestedProps,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport groupBy from 'lodash/groupBy';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\n\nimport type { HiddenCheckboxAction, VisibleCheckboxAction } from './ContentTypeCollapses';\nimport type { ConditionForm } from '../utils/forms';\n\n/* -------------------------------------------------------------------------------------------------\n * ConditionsModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConditionAction extends Pick<ActionRowProps, 'label'> {\n actionId: string;\n isDisplayed: boolean;\n hasSomeActionsSelected?: boolean;\n hasAllActionsSelected?: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface ConditionsModalProps extends Pick<ActionRowProps, 'isFormDisabled'> {\n actions?: Array<ConditionAction | HiddenCheckboxAction | VisibleCheckboxAction>;\n headerBreadCrumbs?: string[];\n onClose?: () => void;\n}\n\nconst ConditionsModal = ({\n actions = [],\n headerBreadCrumbs = [],\n isFormDisabled,\n onClose,\n}: ConditionsModalProps) => {\n const { formatMessage } = useIntl();\n const { availableConditions, modifiedData, onChangeConditions } = usePermissionsDataManager();\n\n const arrayOfOptionsGroupedByCategory = React.useMemo(() => {\n return Object.entries(groupBy(availableConditions, 'category'));\n }, [availableConditions]);\n\n const actionsToDisplay = actions.filter<VisibleCheckboxAction | ConditionAction>(\n // @ts-expect-error – TODO: fix this type issue\n ({ isDisplayed, hasSomeActionsSelected, hasAllActionsSelected }) =>\n isDisplayed && Boolean(hasSomeActionsSelected || hasAllActionsSelected)\n );\n\n const [state, setState] = React.useState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n const handleChange = (name: string, values: ConditionForm) => {\n setState(\n produce((draft) => {\n if (!draft[name]) {\n draft[name] = {};\n }\n\n if (!draft[name].default) {\n draft[name].default = {};\n }\n\n draft[name].default = values;\n })\n );\n };\n\n const handleSubmit = () => {\n const conditionsWithoutCategory = Object.entries(state).reduce<Record<string, ConditionForm>>(\n (acc, current) => {\n const [key, value] = current;\n\n const merged = Object.values(value).reduce((acc1, current1) => {\n return { ...acc1, ...current1 };\n }, {});\n\n acc[key] = merged;\n\n return acc;\n },\n {}\n );\n\n onChangeConditions(conditionsWithoutCategory);\n onClose && onClose();\n };\n\n const onCloseModal = () => {\n setState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n onClose && onClose();\n };\n\n return (\n <Modal.Content>\n <Modal.Header>\n <Breadcrumbs id=\"condition-modal-breadcrumbs\" label={headerBreadCrumbs.join(', ')}>\n {headerBreadCrumbs.map((label, index, arr) => (\n <Crumb isCurrent={index === arr.length - 1} key={label}>\n {upperFirst(\n formatMessage({\n id: label,\n defaultMessage: label,\n })\n )}\n </Crumb>\n ))}\n </Breadcrumbs>\n </Modal.Header>\n <Modal.Body>\n {actionsToDisplay.length === 0 && (\n <Typography>\n {formatMessage({\n id: 'Settings.permissions.conditions.no-actions',\n defaultMessage:\n 'You first need to select actions (create, read, update, ...) before defining conditions on them.',\n })}\n </Typography>\n )}\n <ul>\n {actionsToDisplay.map(({ actionId, label, pathToConditionsObject }, index) => {\n const name = pathToConditionsObject.join('..');\n\n return (\n <ActionRow\n key={actionId}\n arrayOfOptionsGroupedByCategory={arrayOfOptionsGroupedByCategory}\n label={label}\n isFormDisabled={isFormDisabled}\n isGrey={index % 2 === 0}\n name={name}\n onChange={handleChange}\n value={get(state, name, {})}\n />\n );\n })}\n </ul>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={() => onCloseModal()}>\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button onClick={handleSubmit}>\n {formatMessage({\n id: 'Settings.permissions.conditions.apply',\n defaultMessage: 'Apply',\n })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n );\n};\n\nconst createDefaultConditionsForm = (\n actionsToDisplay: Array<ConditionAction | VisibleCheckboxAction>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n arrayOfOptionsGroupedByCategory: ActionRowProps['arrayOfOptionsGroupedByCategory']\n) => {\n return actionsToDisplay.reduce<Record<string, Record<string, ConditionForm>>>((acc, current) => {\n const valueFromModifiedData: ConditionForm = get(\n modifiedData,\n [...current.pathToConditionsObject, 'conditions'],\n {}\n );\n\n const categoryDefaultForm = arrayOfOptionsGroupedByCategory.reduce<\n Record<string, ConditionForm>\n >((acc, current) => {\n const [categoryName, relatedConditions] = current;\n\n const conditionsForm = relatedConditions.reduce<ConditionForm>((acc, current) => {\n acc[current.id] = get(valueFromModifiedData, current.id, false);\n\n return acc;\n }, {});\n\n acc[categoryName] = conditionsForm;\n\n return acc;\n }, {});\n\n acc[current.pathToConditionsObject.join('..')] = categoryDefaultForm;\n\n return acc;\n }, {});\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps {\n arrayOfOptionsGroupedByCategory: Array<\n [string, PermissionsDataManagerContextValue['availableConditions']]\n >;\n isFormDisabled?: boolean;\n isGrey?: boolean;\n label: string;\n name: string;\n onChange?: (name: string, values: Record<string, boolean>) => void;\n value: Record<string, ConditionForm>;\n}\n\nconst ActionRow = ({\n arrayOfOptionsGroupedByCategory,\n isFormDisabled = false,\n isGrey = false,\n label,\n name,\n onChange,\n value,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n\n const handleChange: MultiSelectNestedProps['onChange'] = (val) => {\n if (onChange) {\n onChange(name, getNewStateFromChangedValues(arrayOfOptionsGroupedByCategory, val));\n }\n };\n\n return (\n <Flex\n tag=\"li\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n paddingBottom={3}\n paddingTop={3}\n justifyContent={'space-evenly'}\n >\n <Flex style={{ width: 180 }}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.permissions.conditions.can',\n defaultMessage: 'Can',\n })}\n &nbsp;\n </Typography>\n <Typography variant=\"sigma\" title={label} textColor=\"primary600\" ellipsis>\n {formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n })}\n </Typography>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n &nbsp;\n {formatMessage({\n id: 'Settings.permissions.conditions.when',\n defaultMessage: 'When',\n })}\n </Typography>\n </Flex>\n <Box style={{ maxWidth: 430, width: '100%' }}>\n <MultiSelectNested\n id={name}\n customizeContent={(values = []) => `${values.length} currently selected`}\n onChange={handleChange}\n value={getSelectedValues(value)}\n options={getNestedOptions(arrayOfOptionsGroupedByCategory)}\n disabled={isFormDisabled}\n />\n </Box>\n </Flex>\n );\n};\n\nconst getSelectedValues = (rawValue: Record<string, ConditionForm>): string[] =>\n Object.values(rawValue)\n .map((x) =>\n Object.entries(x)\n .filter(([, value]) => value)\n .map(([key]) => key)\n )\n .flat();\n\nconst getNestedOptions = (options: ActionRowProps['arrayOfOptionsGroupedByCategory']) =>\n options.reduce<MultiSelectNestedProps['options']>((acc, [label, children]) => {\n acc.push({\n label: capitalise(label),\n children: children.map((child) => ({\n label: child.displayName,\n value: child.id,\n })),\n });\n\n return acc;\n }, []);\n\nconst getNewStateFromChangedValues = (\n options: ActionRowProps['arrayOfOptionsGroupedByCategory'],\n changedValues: string[]\n) =>\n options\n .map(([, values]) => values)\n .flat()\n .reduce<Record<string, boolean>>(\n (acc, curr) => ({ [curr.id]: changedValues.includes(curr.id), ...acc }),\n {}\n );\n\nexport { ConditionsModal };\nexport type { ConditionsModalProps };\n"],"names":["ConditionsModal","actions","headerBreadCrumbs","isFormDisabled","onClose","formatMessage","useIntl","availableConditions","modifiedData","onChangeConditions","usePermissionsDataManager","arrayOfOptionsGroupedByCategory","React","useMemo","Object","entries","groupBy","actionsToDisplay","filter","isDisplayed","hasSomeActionsSelected","hasAllActionsSelected","Boolean","state","setState","useState","createDefaultConditionsForm","handleChange","name","values","produce","draft","default","handleSubmit","conditionsWithoutCategory","reduce","acc","current","key","value","merged","acc1","current1","onCloseModal","_jsxs","Modal","Content","_jsx","Header","Breadcrumbs","id","label","join","map","index","arr","Crumb","isCurrent","length","upperFirst","defaultMessage","Body","Typography","ul","actionId","pathToConditionsObject","ActionRow","isGrey","onChange","get","Footer","Button","variant","onClick","valueFromModifiedData","categoryDefaultForm","categoryName","relatedConditions","conditionsForm","val","getNewStateFromChangedValues","Flex","tag","background","paddingBottom","paddingTop","justifyContent","style","width","textColor","title","ellipsis","toLowerCase","Box","maxWidth","MultiSelectNested","customizeContent","getSelectedValues","options","getNestedOptions","disabled","rawValue","x","flat","children","push","capitalise","child","displayName","changedValues","curr","includes"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionsModal.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/ConditionsModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Modal,\n MultiSelectNested,\n MultiSelectNestedProps,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport groupBy from 'lodash/groupBy';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\n\nimport type { HiddenCheckboxAction, VisibleCheckboxAction } from './ContentTypeCollapses';\nimport type { ConditionForm } from '../utils/forms';\n\n/* -------------------------------------------------------------------------------------------------\n * ConditionsModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConditionAction extends Pick<ActionRowProps, 'label'> {\n actionId: string;\n isDisplayed: boolean;\n hasSomeActionsSelected?: boolean;\n hasAllActionsSelected?: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface ConditionsModalProps extends Pick<ActionRowProps, 'isFormDisabled'> {\n actions?: Array<ConditionAction | HiddenCheckboxAction | VisibleCheckboxAction>;\n headerBreadCrumbs?: string[];\n onClose?: () => void;\n}\n\nconst ConditionsModal = ({\n actions = [],\n headerBreadCrumbs = [],\n isFormDisabled,\n onClose,\n}: ConditionsModalProps) => {\n const { formatMessage } = useIntl();\n const { availableConditions, modifiedData, onChangeConditions } = usePermissionsDataManager();\n\n const arrayOfOptionsGroupedByCategory = React.useMemo(() => {\n return Object.entries(groupBy(availableConditions, 'category'));\n }, [availableConditions]);\n\n const actionsToDisplay = actions.filter<VisibleCheckboxAction | ConditionAction>(\n // @ts-expect-error – TODO: fix this type issue\n ({ isDisplayed, hasSomeActionsSelected, hasAllActionsSelected }) =>\n isDisplayed && Boolean(hasSomeActionsSelected || hasAllActionsSelected)\n );\n\n const [state, setState] = React.useState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n const handleChange = (name: string, values: ConditionForm) => {\n setState(\n produce((draft) => {\n if (!draft[name]) {\n draft[name] = {};\n }\n\n if (!draft[name].default) {\n draft[name].default = {};\n }\n\n draft[name].default = values;\n })\n );\n };\n\n const handleSubmit = () => {\n const conditionsWithoutCategory = Object.entries(state).reduce<Record<string, ConditionForm>>(\n (acc, current) => {\n const [key, value] = current;\n\n const merged = Object.values(value).reduce((acc1, current1) => {\n return { ...acc1, ...current1 };\n }, {});\n\n acc[key] = merged;\n\n return acc;\n },\n {}\n );\n\n onChangeConditions(conditionsWithoutCategory);\n onClose && onClose();\n };\n\n const onCloseModal = () => {\n setState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n onClose && onClose();\n };\n\n return (\n <Modal.Content>\n <Modal.Header>\n <Breadcrumbs id=\"condition-modal-breadcrumbs\" label={headerBreadCrumbs.join(', ')}>\n {headerBreadCrumbs.map((label, index, arr) => (\n <Crumb isCurrent={index === arr.length - 1} key={label}>\n {upperFirst(\n formatMessage({\n id: label,\n defaultMessage: label,\n })\n )}\n </Crumb>\n ))}\n </Breadcrumbs>\n </Modal.Header>\n <Modal.Body>\n {actionsToDisplay.length === 0 && (\n <Typography>\n {formatMessage({\n id: 'Settings.permissions.conditions.no-actions',\n defaultMessage:\n 'You first need to select actions (create, read, update, ...) before defining conditions on them.',\n })}\n </Typography>\n )}\n <ul>\n {actionsToDisplay.map(({ actionId, label, pathToConditionsObject }, index) => {\n const name = pathToConditionsObject.join('..');\n\n return (\n <ActionRow\n key={actionId}\n arrayOfOptionsGroupedByCategory={arrayOfOptionsGroupedByCategory}\n label={label}\n isFormDisabled={isFormDisabled}\n isGrey={index % 2 === 0}\n name={name}\n onChange={handleChange}\n value={get(state, name, {})}\n />\n );\n })}\n </ul>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={() => onCloseModal()}>\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button onClick={handleSubmit}>\n {formatMessage({\n id: 'Settings.permissions.conditions.apply',\n defaultMessage: 'Apply',\n })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n );\n};\n\nconst createDefaultConditionsForm = (\n actionsToDisplay: Array<ConditionAction | VisibleCheckboxAction>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n arrayOfOptionsGroupedByCategory: ActionRowProps['arrayOfOptionsGroupedByCategory']\n) => {\n return actionsToDisplay.reduce<Record<string, Record<string, ConditionForm>>>((acc, current) => {\n const valueFromModifiedData: ConditionForm = get(\n modifiedData,\n [...current.pathToConditionsObject, 'conditions'],\n {}\n );\n\n const categoryDefaultForm = arrayOfOptionsGroupedByCategory.reduce<\n Record<string, ConditionForm>\n >((acc, current) => {\n const [categoryName, relatedConditions] = current;\n\n const conditionsForm = relatedConditions.reduce<ConditionForm>((acc, current) => {\n acc[current.id] = get(valueFromModifiedData, current.id, false);\n\n return acc;\n }, {});\n\n acc[categoryName] = conditionsForm;\n\n return acc;\n }, {});\n\n acc[current.pathToConditionsObject.join('..')] = categoryDefaultForm;\n\n return acc;\n }, {});\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps {\n arrayOfOptionsGroupedByCategory: Array<\n [string, PermissionsDataManagerContextValue['availableConditions']]\n >;\n isFormDisabled?: boolean;\n isGrey?: boolean;\n label: string;\n name: string;\n onChange?: (name: string, values: Record<string, boolean>) => void;\n value: Record<string, ConditionForm>;\n}\n\nconst ActionRow = ({\n arrayOfOptionsGroupedByCategory,\n isFormDisabled = false,\n isGrey = false,\n label,\n name,\n onChange,\n value,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n\n const handleChange: MultiSelectNestedProps['onChange'] = (val) => {\n if (onChange) {\n onChange(name, getNewStateFromChangedValues(arrayOfOptionsGroupedByCategory, val));\n }\n };\n\n return (\n <Flex\n tag=\"li\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n paddingBottom={3}\n paddingTop={3}\n justifyContent={'space-evenly'}\n >\n <Flex style={{ width: 180 }}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.permissions.conditions.can',\n defaultMessage: 'Can',\n })}\n &nbsp;\n </Typography>\n <Typography variant=\"sigma\" title={label} textColor=\"primary600\" ellipsis>\n {formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n })}\n </Typography>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n &nbsp;\n {formatMessage({\n id: 'Settings.permissions.conditions.when',\n defaultMessage: 'When',\n })}\n </Typography>\n </Flex>\n <Box style={{ maxWidth: 430, width: '100%' }}>\n <MultiSelectNested\n id={name}\n customizeContent={(values = []) => `${values.length} currently selected`}\n onChange={handleChange}\n value={getSelectedValues(value)}\n options={getNestedOptions(arrayOfOptionsGroupedByCategory)}\n disabled={isFormDisabled}\n />\n </Box>\n </Flex>\n );\n};\n\nconst getSelectedValues = (rawValue: Record<string, ConditionForm>): string[] =>\n Object.values(rawValue)\n .map((x) =>\n Object.entries(x)\n .filter(([, value]) => value)\n .map(([key]) => key)\n )\n .flat();\n\nconst getNestedOptions = (options: ActionRowProps['arrayOfOptionsGroupedByCategory']) =>\n options.reduce<MultiSelectNestedProps['options']>((acc, [label, children]) => {\n acc.push({\n label: capitalise(label),\n children: children.map((child) => ({\n label: child.displayName,\n value: child.id,\n })),\n });\n\n return acc;\n }, []);\n\nconst getNewStateFromChangedValues = (\n options: ActionRowProps['arrayOfOptionsGroupedByCategory'],\n changedValues: string[]\n) =>\n options\n .map(([, values]) => values)\n .flat()\n .reduce<Record<string, boolean>>(\n (acc, curr) => ({ [curr.id]: changedValues.includes(curr.id), ...acc }),\n {}\n );\n\nexport { ConditionsModal };\nexport type { ConditionsModalProps };\n"],"names":["ConditionsModal","actions","headerBreadCrumbs","isFormDisabled","onClose","formatMessage","useIntl","availableConditions","modifiedData","onChangeConditions","usePermissionsDataManager","arrayOfOptionsGroupedByCategory","React","useMemo","Object","entries","groupBy","actionsToDisplay","filter","isDisplayed","hasSomeActionsSelected","hasAllActionsSelected","Boolean","state","setState","useState","createDefaultConditionsForm","handleChange","name","values","produce","draft","default","handleSubmit","conditionsWithoutCategory","reduce","acc","current","key","value","merged","acc1","current1","onCloseModal","_jsxs","Modal","Content","_jsx","Header","Breadcrumbs","id","label","join","map","index","arr","Crumb","isCurrent","length","upperFirst","defaultMessage","Body","Typography","ul","actionId","pathToConditionsObject","ActionRow","isGrey","onChange","get","Footer","Button","variant","onClick","valueFromModifiedData","categoryDefaultForm","categoryName","relatedConditions","conditionsForm","val","getNewStateFromChangedValues","Flex","tag","background","paddingBottom","paddingTop","justifyContent","style","width","textColor","title","ellipsis","toLowerCase","Box","maxWidth","MultiSelectNested","customizeContent","getSelectedValues","options","getNestedOptions","disabled","rawValue","x","flat","children","push","capitalise","child","displayName","changedValues","curr","includes"],"mappings":"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"}
1
+ {"version":3,"file":"ConditionsModal.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/ConditionsModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Modal,\n MultiSelectNested,\n MultiSelectNestedProps,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport groupBy from 'lodash/groupBy';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\n\nimport type { HiddenCheckboxAction, VisibleCheckboxAction } from './ContentTypeCollapses';\nimport type { ConditionForm } from '../utils/forms';\n\n/* -------------------------------------------------------------------------------------------------\n * ConditionsModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConditionAction extends Pick<ActionRowProps, 'label'> {\n actionId: string;\n isDisplayed: boolean;\n hasSomeActionsSelected?: boolean;\n hasAllActionsSelected?: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface ConditionsModalProps extends Pick<ActionRowProps, 'isFormDisabled'> {\n actions?: Array<ConditionAction | HiddenCheckboxAction | VisibleCheckboxAction>;\n headerBreadCrumbs?: string[];\n onClose?: () => void;\n}\n\nconst ConditionsModal = ({\n actions = [],\n headerBreadCrumbs = [],\n isFormDisabled,\n onClose,\n}: ConditionsModalProps) => {\n const { formatMessage } = useIntl();\n const { availableConditions, modifiedData, onChangeConditions } = usePermissionsDataManager();\n\n const arrayOfOptionsGroupedByCategory = React.useMemo(() => {\n return Object.entries(groupBy(availableConditions, 'category'));\n }, [availableConditions]);\n\n const actionsToDisplay = actions.filter<VisibleCheckboxAction | ConditionAction>(\n // @ts-expect-error – TODO: fix this type issue\n ({ isDisplayed, hasSomeActionsSelected, hasAllActionsSelected }) =>\n isDisplayed && Boolean(hasSomeActionsSelected || hasAllActionsSelected)\n );\n\n const [state, setState] = React.useState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n const handleChange = (name: string, values: ConditionForm) => {\n setState(\n produce((draft) => {\n if (!draft[name]) {\n draft[name] = {};\n }\n\n if (!draft[name].default) {\n draft[name].default = {};\n }\n\n draft[name].default = values;\n })\n );\n };\n\n const handleSubmit = () => {\n const conditionsWithoutCategory = Object.entries(state).reduce<Record<string, ConditionForm>>(\n (acc, current) => {\n const [key, value] = current;\n\n const merged = Object.values(value).reduce((acc1, current1) => {\n return { ...acc1, ...current1 };\n }, {});\n\n acc[key] = merged;\n\n return acc;\n },\n {}\n );\n\n onChangeConditions(conditionsWithoutCategory);\n onClose && onClose();\n };\n\n const onCloseModal = () => {\n setState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n onClose && onClose();\n };\n\n return (\n <Modal.Content>\n <Modal.Header>\n <Breadcrumbs id=\"condition-modal-breadcrumbs\" label={headerBreadCrumbs.join(', ')}>\n {headerBreadCrumbs.map((label, index, arr) => (\n <Crumb isCurrent={index === arr.length - 1} key={label}>\n {upperFirst(\n formatMessage({\n id: label,\n defaultMessage: label,\n })\n )}\n </Crumb>\n ))}\n </Breadcrumbs>\n </Modal.Header>\n <Modal.Body>\n {actionsToDisplay.length === 0 && (\n <Typography>\n {formatMessage({\n id: 'Settings.permissions.conditions.no-actions',\n defaultMessage:\n 'You first need to select actions (create, read, update, ...) before defining conditions on them.',\n })}\n </Typography>\n )}\n <ul>\n {actionsToDisplay.map(({ actionId, label, pathToConditionsObject }, index) => {\n const name = pathToConditionsObject.join('..');\n\n return (\n <ActionRow\n key={actionId}\n arrayOfOptionsGroupedByCategory={arrayOfOptionsGroupedByCategory}\n label={label}\n isFormDisabled={isFormDisabled}\n isGrey={index % 2 === 0}\n name={name}\n onChange={handleChange}\n value={get(state, name, {})}\n />\n );\n })}\n </ul>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={() => onCloseModal()}>\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button onClick={handleSubmit}>\n {formatMessage({\n id: 'Settings.permissions.conditions.apply',\n defaultMessage: 'Apply',\n })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n );\n};\n\nconst createDefaultConditionsForm = (\n actionsToDisplay: Array<ConditionAction | VisibleCheckboxAction>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n arrayOfOptionsGroupedByCategory: ActionRowProps['arrayOfOptionsGroupedByCategory']\n) => {\n return actionsToDisplay.reduce<Record<string, Record<string, ConditionForm>>>((acc, current) => {\n const valueFromModifiedData: ConditionForm = get(\n modifiedData,\n [...current.pathToConditionsObject, 'conditions'],\n {}\n );\n\n const categoryDefaultForm = arrayOfOptionsGroupedByCategory.reduce<\n Record<string, ConditionForm>\n >((acc, current) => {\n const [categoryName, relatedConditions] = current;\n\n const conditionsForm = relatedConditions.reduce<ConditionForm>((acc, current) => {\n acc[current.id] = get(valueFromModifiedData, current.id, false);\n\n return acc;\n }, {});\n\n acc[categoryName] = conditionsForm;\n\n return acc;\n }, {});\n\n acc[current.pathToConditionsObject.join('..')] = categoryDefaultForm;\n\n return acc;\n }, {});\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps {\n arrayOfOptionsGroupedByCategory: Array<\n [string, PermissionsDataManagerContextValue['availableConditions']]\n >;\n isFormDisabled?: boolean;\n isGrey?: boolean;\n label: string;\n name: string;\n onChange?: (name: string, values: Record<string, boolean>) => void;\n value: Record<string, ConditionForm>;\n}\n\nconst ActionRow = ({\n arrayOfOptionsGroupedByCategory,\n isFormDisabled = false,\n isGrey = false,\n label,\n name,\n onChange,\n value,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n\n const handleChange: MultiSelectNestedProps['onChange'] = (val) => {\n if (onChange) {\n onChange(name, getNewStateFromChangedValues(arrayOfOptionsGroupedByCategory, val));\n }\n };\n\n return (\n <Flex\n tag=\"li\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n paddingBottom={3}\n paddingTop={3}\n justifyContent={'space-evenly'}\n >\n <Flex style={{ width: 180 }}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.permissions.conditions.can',\n defaultMessage: 'Can',\n })}\n &nbsp;\n </Typography>\n <Typography variant=\"sigma\" title={label} textColor=\"primary600\" ellipsis>\n {formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n })}\n </Typography>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n &nbsp;\n {formatMessage({\n id: 'Settings.permissions.conditions.when',\n defaultMessage: 'When',\n })}\n </Typography>\n </Flex>\n <Box style={{ maxWidth: 430, width: '100%' }}>\n <MultiSelectNested\n id={name}\n customizeContent={(values = []) => `${values.length} currently selected`}\n onChange={handleChange}\n value={getSelectedValues(value)}\n options={getNestedOptions(arrayOfOptionsGroupedByCategory)}\n disabled={isFormDisabled}\n />\n </Box>\n </Flex>\n );\n};\n\nconst getSelectedValues = (rawValue: Record<string, ConditionForm>): string[] =>\n Object.values(rawValue)\n .map((x) =>\n Object.entries(x)\n .filter(([, value]) => value)\n .map(([key]) => key)\n )\n .flat();\n\nconst getNestedOptions = (options: ActionRowProps['arrayOfOptionsGroupedByCategory']) =>\n options.reduce<MultiSelectNestedProps['options']>((acc, [label, children]) => {\n acc.push({\n label: capitalise(label),\n children: children.map((child) => ({\n label: child.displayName,\n value: child.id,\n })),\n });\n\n return acc;\n }, []);\n\nconst getNewStateFromChangedValues = (\n options: ActionRowProps['arrayOfOptionsGroupedByCategory'],\n changedValues: string[]\n) =>\n options\n .map(([, values]) => values)\n .flat()\n .reduce<Record<string, boolean>>(\n (acc, curr) => ({ [curr.id]: changedValues.includes(curr.id), ...acc }),\n {}\n );\n\nexport { ConditionsModal };\nexport type { ConditionsModalProps };\n"],"names":["ConditionsModal","actions","headerBreadCrumbs","isFormDisabled","onClose","formatMessage","useIntl","availableConditions","modifiedData","onChangeConditions","usePermissionsDataManager","arrayOfOptionsGroupedByCategory","React","useMemo","Object","entries","groupBy","actionsToDisplay","filter","isDisplayed","hasSomeActionsSelected","hasAllActionsSelected","Boolean","state","setState","useState","createDefaultConditionsForm","handleChange","name","values","produce","draft","default","handleSubmit","conditionsWithoutCategory","reduce","acc","current","key","value","merged","acc1","current1","onCloseModal","_jsxs","Modal","Content","_jsx","Header","Breadcrumbs","id","label","join","map","index","arr","Crumb","isCurrent","length","upperFirst","defaultMessage","Body","Typography","ul","actionId","pathToConditionsObject","ActionRow","isGrey","onChange","get","Footer","Button","variant","onClick","valueFromModifiedData","categoryDefaultForm","categoryName","relatedConditions","conditionsForm","val","getNewStateFromChangedValues","Flex","tag","background","paddingBottom","paddingTop","justifyContent","style","width","textColor","title","ellipsis","toLowerCase","Box","maxWidth","MultiSelectNested","customizeContent","getSelectedValues","options","getNestedOptions","disabled","rawValue","x","flat","children","push","capitalise","child","displayName","changedValues","curr","includes"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentTypeCollapses.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Checkbox, Box, BoxComponent, Flex, FlexComponent, Modal } from '@strapi/design-system';\nimport { ChevronDown, ChevronUp } from '@strapi/icons';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport omit from 'lodash/omit';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme } from 'styled-components';\n\nimport { Action, Subject } from '../../../../../../../shared/contracts/permissions';\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, rowHeight } from '../utils/constants';\nimport { createArrayOfValues } from '../utils/createArrayOfValues';\nimport { ConditionForm } from '../utils/forms';\nimport { getCheckboxState } from '../utils/getCheckboxState';\n\nimport { CollapsePropertyMatrix } from './CollapsePropertyMatrix';\nimport { ConditionsButton } from './ConditionsButton';\nimport { ConditionsModal } from './ConditionsModal';\nimport { HiddenAction } from './HiddenAction';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * ContentTypeCollapses\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ContentTypeCollapsesProps extends Pick<CollapseProps, 'pathToData'> {\n actions?: Action[];\n isFormDisabled?: boolean;\n subjects?: Subject[];\n}\n\nconst ContentTypeCollapses = ({\n actions = [],\n isFormDisabled,\n pathToData,\n subjects = [],\n}: ContentTypeCollapsesProps) => {\n const [collapseToOpen, setCollapseToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleCollapse = (collapseName: string) => () => {\n const nextCollapseToOpen = collapseToOpen === collapseName ? null : collapseName;\n\n setCollapseToOpen(nextCollapseToOpen);\n };\n\n return (\n <>\n {subjects.map(({ uid, label, properties }, index) => {\n const isActive = collapseToOpen === uid;\n const availableActions = actions.map((action) => ({\n ...action,\n isDisplayed: Array.isArray(action.subjects) && action.subjects.indexOf(uid) !== -1,\n }));\n return (\n <Flex\n key={uid}\n direction=\"column\"\n display=\"inline-flex\"\n alignItems=\"stretch\"\n minWidth=\"100%\"\n borderColor={isActive ? 'primary600' : undefined}\n >\n <Collapse\n availableActions={availableActions}\n isActive={isActive}\n isGrey={index % 2 === 0}\n isFormDisabled={isFormDisabled}\n label={label}\n onClickToggle={handleClickToggleCollapse(uid)}\n pathToData={[pathToData, uid].join('..')}\n />\n {isActive &&\n properties.map(({ label: propertyLabel, value, children: childrenForm }) => {\n return (\n <CollapsePropertyMatrix\n availableActions={availableActions}\n childrenForm={childrenForm}\n isFormDisabled={isFormDisabled}\n label={propertyLabel}\n pathToData={[pathToData, uid].join('..')}\n propertyName={value}\n key={value}\n />\n );\n })}\n </Flex>\n );\n })}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Collapse\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapseProps\n extends Pick<RowLabelWithCheckboxProps, 'isActive' | 'isFormDisabled' | 'label'> {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n isGrey?: boolean;\n onClickToggle: RowLabelWithCheckboxProps['onClick'];\n pathToData: string;\n}\n\nconst Collapse = ({\n availableActions = [],\n isActive = false,\n isGrey = false,\n isFormDisabled = false,\n label,\n onClickToggle,\n pathToData,\n}: CollapseProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } =\n usePermissionsDataManager();\n const [isConditionModalOpen, setIsConditionModalOpen] = React.useState(false);\n\n // This corresponds to the data related to the CT left checkbox\n // modifiedData: { collectionTypes: { [ctuid]: {create: {properties: { fields: {f1: true} }, update: {}, ... } } } }\n const mainData = get(modifiedData, pathToData.split('..'), {});\n // The utils we are using: getCheckboxState, retrieves all the boolean leafs of an object in order\n // to return the state of checkbox. Since the conditions are not related to the property we need to remove the key from the object.\n const dataWithoutCondition = React.useMemo(() => {\n return Object.keys(mainData).reduce<Record<string, ConditionForm>>((acc, current) => {\n acc[current] = omit(mainData[current], 'conditions');\n\n return acc;\n }, {});\n }, [mainData]);\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(dataWithoutCondition);\n\n // Here we create an array of <checkbox>, since the state of each one of them is used in\n // order to know if whether or not we need to display the associated action in\n // the <ConditionsModal />\n const checkboxesActions = React.useMemo(() => {\n return generateCheckboxesActions(availableActions, modifiedData, pathToData);\n }, [availableActions, modifiedData, pathToData]);\n\n // @ts-expect-error – hasConditions does not exist on all versions of checkboxesActions.\n const doesConditionButtonHasConditions = checkboxesActions.some((action) => action.hasConditions);\n\n return (\n <BoxWrapper $isActive={isActive}>\n <Wrapper\n height={rowHeight}\n flex={1}\n alignItems=\"center\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n >\n <RowLabelWithCheckbox\n isCollapsable\n isFormDisabled={isFormDisabled}\n label={capitalise(label)}\n checkboxName={pathToData}\n onChange={onChangeParentCheckbox}\n onClick={onClickToggle}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n <Chevron paddingLeft={2}>{isActive ? <ChevronUp /> : <ChevronDown />}</Chevron>\n </RowLabelWithCheckbox>\n\n <Flex style={{ flex: 1 }}>\n {checkboxesActions.map(\n ({ actionId, hasSomeActionsSelected, isDisplayed, ...restAction }) => {\n if (!isDisplayed) {\n return <HiddenAction key={actionId} />;\n }\n\n const {\n hasConditions,\n hasAllActionsSelected,\n isParentCheckbox,\n checkboxName,\n label: permissionLabel,\n } = restAction as VisibleCheckboxAction;\n\n if (isParentCheckbox) {\n return (\n <Cell key={actionId} justifyContent=\"center\" alignItems=\"center\">\n <Box position=\"relative\" zIndex={1}>\n {hasConditions && (\n <Box\n tag=\"span\"\n position=\"absolute\"\n top=\"-6px\"\n left=\"37px\"\n width=\"6px\"\n height=\"6px\"\n borderRadius=\"20px\"\n background=\"primary600\"\n />\n )}\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${permissionLabel} ${label}` }\n )}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName,\n value: !!value,\n },\n });\n }}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Box>\n </Cell>\n );\n }\n\n return (\n <Cell key={actionId} justifyContent=\"center\" alignItems=\"center\">\n {hasConditions && (\n <Box\n tag=\"span\"\n position=\"absolute\"\n top=\"-6px\"\n left=\"37px\"\n width=\"6px\"\n height=\"6px\"\n borderRadius=\"20px\"\n background=\"primary600\"\n />\n )}\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName,\n value: !!value,\n },\n });\n }}\n checked={hasConditions ? 'indeterminate' : hasAllActionsSelected}\n />\n </Cell>\n );\n }\n )}\n </Flex>\n </Wrapper>\n <Box bottom=\"10px\" right=\"9px\" position=\"absolute\">\n <Modal.Root\n open={isConditionModalOpen}\n onOpenChange={() => {\n setIsConditionModalOpen((prev) => !prev);\n }}\n >\n <Modal.Trigger>\n <ConditionsButton hasConditions={doesConditionButtonHasConditions} />\n </Modal.Trigger>\n <ConditionsModal\n headerBreadCrumbs={[label, 'Settings.permissions.conditions.conditions']}\n actions={checkboxesActions}\n isFormDisabled={isFormDisabled}\n onClose={() => {\n setIsConditionModalOpen(false);\n }}\n />\n </Modal.Root>\n </Box>\n </BoxWrapper>\n );\n};\n\ninterface VisibleCheckboxAction {\n actionId: string;\n hasAllActionsSelected: boolean;\n hasSomeActionsSelected: boolean;\n isDisplayed: true;\n isParentCheckbox: boolean;\n checkboxName: string;\n label: string;\n hasConditions: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface HiddenCheckboxAction {\n actionId: string;\n isDisplayed: false;\n hasAllActionsSelected?: never;\n hasSomeActionsSelected: boolean;\n}\n\nconst generateCheckboxesActions = (\n availableActions: Array<Action & { isDisplayed: boolean }>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToData: string\n): Array<VisibleCheckboxAction | HiddenCheckboxAction> => {\n return availableActions.map(({ actionId, isDisplayed, applyToProperties, label }) => {\n if (!isDisplayed) {\n return { actionId, hasSomeActionsSelected: false, isDisplayed };\n }\n\n const baseCheckboxNameArray = [...pathToData.split('..'), actionId];\n const checkboxNameArray = isEmpty(applyToProperties)\n ? [...baseCheckboxNameArray, 'properties', 'enabled']\n : baseCheckboxNameArray;\n const conditionsValue = get(modifiedData, [...baseCheckboxNameArray, 'conditions'], null);\n\n const baseCheckboxAction = {\n actionId,\n checkboxName: checkboxNameArray.join('..'),\n hasConditions: createArrayOfValues(conditionsValue).some((val) => val),\n isDisplayed,\n label,\n pathToConditionsObject: baseCheckboxNameArray,\n };\n\n if (isEmpty(applyToProperties)) {\n const value = get(modifiedData, checkboxNameArray, false);\n\n // Since applyToProperties is empty it is not a parent checkbox, therefore hasAllActionsSelected is\n // equal to hasSomeActionsSelected\n return {\n ...baseCheckboxAction,\n hasAllActionsSelected: value,\n hasSomeActionsSelected: value,\n isParentCheckbox: false,\n };\n }\n\n const mainData = get(modifiedData, checkboxNameArray, null);\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(mainData);\n\n return {\n ...baseCheckboxAction,\n hasAllActionsSelected,\n hasSomeActionsSelected,\n isParentCheckbox: true,\n };\n });\n};\n\nconst activeRowStyle = (theme: DefaultTheme, isActive?: boolean): string => `\n ${Wrapper} {\n background-color: ${theme.colors.primary100};\n color: ${theme.colors.primary600};\n border-radius: ${isActive ? '2px 2px 0 0' : '2px'};\n font-weight: ${theme.fontWeights.bold};\n }\n\n ${Chevron} {\n display: flex;\n }\n ${ConditionsButton} {\n display: block;\n }\n\n &:focus-within {\n ${() => activeRowStyle(theme, isActive)}\n }\n`;\n\nconst Wrapper = styled<FlexComponent>(Flex)`\n border: 1px solid transparent;\n`;\n\nconst BoxWrapper = styled.div<{ $isActive: boolean }>`\n display: inline-flex;\n min-width: 100%;\n position: relative;\n\n ${ConditionsButton} {\n display: none;\n }\n\n ${({ $isActive, theme }) => $isActive && activeRowStyle(theme, $isActive)}\n\n &:hover {\n ${({ theme, $isActive }) => activeRowStyle(theme, $isActive)}\n }\n`;\n\nconst Cell = styled<FlexComponent>(Flex)`\n width: ${cellWidth};\n position: relative;\n`;\n\nconst Chevron = styled<BoxComponent>(Box)`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nexport { ContentTypeCollapses };\nexport type { ContentTypeCollapsesProps, HiddenCheckboxAction, VisibleCheckboxAction };\n"],"names":["ContentTypeCollapses","actions","isFormDisabled","pathToData","subjects","collapseToOpen","setCollapseToOpen","React","useState","handleClickToggleCollapse","collapseName","nextCollapseToOpen","_jsx","_Fragment","map","uid","label","properties","index","isActive","availableActions","action","isDisplayed","Array","isArray","indexOf","_jsxs","Flex","direction","display","alignItems","minWidth","borderColor","undefined","Collapse","isGrey","onClickToggle","join","propertyLabel","value","children","childrenForm","CollapsePropertyMatrix","propertyName","formatMessage","useIntl","modifiedData","onChangeParentCheckbox","onChangeSimpleCheckbox","usePermissionsDataManager","isConditionModalOpen","setIsConditionModalOpen","mainData","get","split","dataWithoutCondition","useMemo","Object","keys","reduce","acc","current","omit","hasAllActionsSelected","hasSomeActionsSelected","getCheckboxState","checkboxesActions","generateCheckboxesActions","doesConditionButtonHasConditions","some","hasConditions","BoxWrapper","$isActive","Wrapper","height","rowHeight","flex","background","RowLabelWithCheckbox","isCollapsable","capitalise","checkboxName","onChange","onClick","someChecked","Chevron","paddingLeft","ChevronUp","ChevronDown","style","actionId","restAction","HiddenAction","isParentCheckbox","permissionLabel","Cell","justifyContent","Box","position","zIndex","tag","top","left","width","borderRadius","Checkbox","disabled","name","aria-label","id","defaultMessage","onCheckedChange","target","checked","bottom","right","Modal","Root","open","onOpenChange","prev","Trigger","ConditionsButton","ConditionsModal","headerBreadCrumbs","onClose","applyToProperties","baseCheckboxNameArray","checkboxNameArray","isEmpty","conditionsValue","baseCheckboxAction","createArrayOfValues","val","pathToConditionsObject","activeRowStyle","theme","colors","primary100","primary600","fontWeights","bold","styled","div","cellWidth"],"mappings":"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"}
1
+ {"version":3,"file":"ContentTypeCollapses.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Checkbox, Box, BoxComponent, Flex, FlexComponent, Modal } from '@strapi/design-system';\nimport { ChevronDown, ChevronUp } from '@strapi/icons';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport omit from 'lodash/omit';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme } from 'styled-components';\n\nimport { Action, Subject } from '../../../../../../../shared/contracts/permissions';\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, rowHeight } from '../utils/constants';\nimport { createArrayOfValues } from '../utils/createArrayOfValues';\nimport { ConditionForm } from '../utils/forms';\nimport { getCheckboxState } from '../utils/getCheckboxState';\n\nimport { CollapsePropertyMatrix } from './CollapsePropertyMatrix';\nimport { ConditionsButton } from './ConditionsButton';\nimport { ConditionsModal } from './ConditionsModal';\nimport { HiddenAction } from './HiddenAction';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * ContentTypeCollapses\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ContentTypeCollapsesProps extends Pick<CollapseProps, 'pathToData'> {\n actions?: Action[];\n isFormDisabled?: boolean;\n subjects?: Subject[];\n}\n\nconst ContentTypeCollapses = ({\n actions = [],\n isFormDisabled,\n pathToData,\n subjects = [],\n}: ContentTypeCollapsesProps) => {\n const [collapseToOpen, setCollapseToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleCollapse = (collapseName: string) => () => {\n const nextCollapseToOpen = collapseToOpen === collapseName ? null : collapseName;\n\n setCollapseToOpen(nextCollapseToOpen);\n };\n\n return (\n <>\n {subjects.map(({ uid, label, properties }, index) => {\n const isActive = collapseToOpen === uid;\n const availableActions = actions.map((action) => ({\n ...action,\n isDisplayed: Array.isArray(action.subjects) && action.subjects.indexOf(uid) !== -1,\n }));\n return (\n <Flex\n key={uid}\n direction=\"column\"\n display=\"inline-flex\"\n alignItems=\"stretch\"\n minWidth=\"100%\"\n borderColor={isActive ? 'primary600' : undefined}\n >\n <Collapse\n availableActions={availableActions}\n isActive={isActive}\n isGrey={index % 2 === 0}\n isFormDisabled={isFormDisabled}\n label={label}\n onClickToggle={handleClickToggleCollapse(uid)}\n pathToData={[pathToData, uid].join('..')}\n />\n {isActive &&\n properties.map(({ label: propertyLabel, value, children: childrenForm }) => {\n return (\n <CollapsePropertyMatrix\n availableActions={availableActions}\n childrenForm={childrenForm}\n isFormDisabled={isFormDisabled}\n label={propertyLabel}\n pathToData={[pathToData, uid].join('..')}\n propertyName={value}\n key={value}\n />\n );\n })}\n </Flex>\n );\n })}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Collapse\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapseProps\n extends Pick<RowLabelWithCheckboxProps, 'isActive' | 'isFormDisabled' | 'label'> {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n isGrey?: boolean;\n onClickToggle: RowLabelWithCheckboxProps['onClick'];\n pathToData: string;\n}\n\nconst Collapse = ({\n availableActions = [],\n isActive = false,\n isGrey = false,\n isFormDisabled = false,\n label,\n onClickToggle,\n pathToData,\n}: CollapseProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } =\n usePermissionsDataManager();\n const [isConditionModalOpen, setIsConditionModalOpen] = React.useState(false);\n\n // This corresponds to the data related to the CT left checkbox\n // modifiedData: { collectionTypes: { [ctuid]: {create: {properties: { fields: {f1: true} }, update: {}, ... } } } }\n const mainData = get(modifiedData, pathToData.split('..'), {});\n // The utils we are using: getCheckboxState, retrieves all the boolean leafs of an object in order\n // to return the state of checkbox. Since the conditions are not related to the property we need to remove the key from the object.\n const dataWithoutCondition = React.useMemo(() => {\n return Object.keys(mainData).reduce<Record<string, ConditionForm>>((acc, current) => {\n acc[current] = omit(mainData[current], 'conditions');\n\n return acc;\n }, {});\n }, [mainData]);\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(dataWithoutCondition);\n\n // Here we create an array of <checkbox>, since the state of each one of them is used in\n // order to know if whether or not we need to display the associated action in\n // the <ConditionsModal />\n const checkboxesActions = React.useMemo(() => {\n return generateCheckboxesActions(availableActions, modifiedData, pathToData);\n }, [availableActions, modifiedData, pathToData]);\n\n // @ts-expect-error – hasConditions does not exist on all versions of checkboxesActions.\n const doesConditionButtonHasConditions = checkboxesActions.some((action) => action.hasConditions);\n\n return (\n <BoxWrapper $isActive={isActive}>\n <Wrapper\n height={rowHeight}\n flex={1}\n alignItems=\"center\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n >\n <RowLabelWithCheckbox\n isCollapsable\n isFormDisabled={isFormDisabled}\n label={capitalise(label)}\n checkboxName={pathToData}\n onChange={onChangeParentCheckbox}\n onClick={onClickToggle}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n <Chevron paddingLeft={2}>{isActive ? <ChevronUp /> : <ChevronDown />}</Chevron>\n </RowLabelWithCheckbox>\n\n <Flex style={{ flex: 1 }}>\n {checkboxesActions.map(\n ({ actionId, hasSomeActionsSelected, isDisplayed, ...restAction }) => {\n if (!isDisplayed) {\n return <HiddenAction key={actionId} />;\n }\n\n const {\n hasConditions,\n hasAllActionsSelected,\n isParentCheckbox,\n checkboxName,\n label: permissionLabel,\n } = restAction as VisibleCheckboxAction;\n\n if (isParentCheckbox) {\n return (\n <Cell key={actionId} justifyContent=\"center\" alignItems=\"center\">\n <Box position=\"relative\" zIndex={1}>\n {hasConditions && (\n <Box\n tag=\"span\"\n position=\"absolute\"\n top=\"-6px\"\n left=\"37px\"\n width=\"6px\"\n height=\"6px\"\n borderRadius=\"20px\"\n background=\"primary600\"\n />\n )}\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${permissionLabel} ${label}` }\n )}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName,\n value: !!value,\n },\n });\n }}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Box>\n </Cell>\n );\n }\n\n return (\n <Cell key={actionId} justifyContent=\"center\" alignItems=\"center\">\n {hasConditions && (\n <Box\n tag=\"span\"\n position=\"absolute\"\n top=\"-6px\"\n left=\"37px\"\n width=\"6px\"\n height=\"6px\"\n borderRadius=\"20px\"\n background=\"primary600\"\n />\n )}\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName,\n value: !!value,\n },\n });\n }}\n checked={hasConditions ? 'indeterminate' : hasAllActionsSelected}\n />\n </Cell>\n );\n }\n )}\n </Flex>\n </Wrapper>\n <Box bottom=\"10px\" right=\"9px\" position=\"absolute\">\n <Modal.Root\n open={isConditionModalOpen}\n onOpenChange={() => {\n setIsConditionModalOpen((prev) => !prev);\n }}\n >\n <Modal.Trigger>\n <ConditionsButton hasConditions={doesConditionButtonHasConditions} />\n </Modal.Trigger>\n <ConditionsModal\n headerBreadCrumbs={[label, 'Settings.permissions.conditions.conditions']}\n actions={checkboxesActions}\n isFormDisabled={isFormDisabled}\n onClose={() => {\n setIsConditionModalOpen(false);\n }}\n />\n </Modal.Root>\n </Box>\n </BoxWrapper>\n );\n};\n\ninterface VisibleCheckboxAction {\n actionId: string;\n hasAllActionsSelected: boolean;\n hasSomeActionsSelected: boolean;\n isDisplayed: true;\n isParentCheckbox: boolean;\n checkboxName: string;\n label: string;\n hasConditions: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface HiddenCheckboxAction {\n actionId: string;\n isDisplayed: false;\n hasAllActionsSelected?: never;\n hasSomeActionsSelected: boolean;\n}\n\nconst generateCheckboxesActions = (\n availableActions: Array<Action & { isDisplayed: boolean }>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToData: string\n): Array<VisibleCheckboxAction | HiddenCheckboxAction> => {\n return availableActions.map(({ actionId, isDisplayed, applyToProperties, label }) => {\n if (!isDisplayed) {\n return { actionId, hasSomeActionsSelected: false, isDisplayed };\n }\n\n const baseCheckboxNameArray = [...pathToData.split('..'), actionId];\n const checkboxNameArray = isEmpty(applyToProperties)\n ? [...baseCheckboxNameArray, 'properties', 'enabled']\n : baseCheckboxNameArray;\n const conditionsValue = get(modifiedData, [...baseCheckboxNameArray, 'conditions'], null);\n\n const baseCheckboxAction = {\n actionId,\n checkboxName: checkboxNameArray.join('..'),\n hasConditions: createArrayOfValues(conditionsValue).some((val) => val),\n isDisplayed,\n label,\n pathToConditionsObject: baseCheckboxNameArray,\n };\n\n if (isEmpty(applyToProperties)) {\n const value = get(modifiedData, checkboxNameArray, false);\n\n // Since applyToProperties is empty it is not a parent checkbox, therefore hasAllActionsSelected is\n // equal to hasSomeActionsSelected\n return {\n ...baseCheckboxAction,\n hasAllActionsSelected: value,\n hasSomeActionsSelected: value,\n isParentCheckbox: false,\n };\n }\n\n const mainData = get(modifiedData, checkboxNameArray, null);\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(mainData);\n\n return {\n ...baseCheckboxAction,\n hasAllActionsSelected,\n hasSomeActionsSelected,\n isParentCheckbox: true,\n };\n });\n};\n\nconst activeRowStyle = (theme: DefaultTheme, isActive?: boolean): string => `\n ${Wrapper} {\n background-color: ${theme.colors.primary100};\n color: ${theme.colors.primary600};\n border-radius: ${isActive ? '2px 2px 0 0' : '2px'};\n font-weight: ${theme.fontWeights.bold};\n }\n\n ${Chevron} {\n display: flex;\n }\n ${ConditionsButton} {\n display: block;\n }\n\n &:focus-within {\n ${() => activeRowStyle(theme, isActive)}\n }\n`;\n\nconst Wrapper = styled<FlexComponent>(Flex)`\n border: 1px solid transparent;\n`;\n\nconst BoxWrapper = styled.div<{ $isActive: boolean }>`\n display: inline-flex;\n min-width: 100%;\n position: relative;\n\n ${ConditionsButton} {\n display: none;\n }\n\n ${({ $isActive, theme }) => $isActive && activeRowStyle(theme, $isActive)}\n\n &:hover {\n ${({ theme, $isActive }) => activeRowStyle(theme, $isActive)}\n }\n`;\n\nconst Cell = styled<FlexComponent>(Flex)`\n width: ${cellWidth};\n position: relative;\n`;\n\nconst Chevron = styled<BoxComponent>(Box)`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nexport { ContentTypeCollapses };\nexport type { ContentTypeCollapsesProps, HiddenCheckboxAction, VisibleCheckboxAction };\n"],"names":["ContentTypeCollapses","actions","isFormDisabled","pathToData","subjects","collapseToOpen","setCollapseToOpen","React","useState","handleClickToggleCollapse","collapseName","nextCollapseToOpen","_jsx","_Fragment","map","uid","label","properties","index","isActive","availableActions","action","isDisplayed","Array","isArray","indexOf","_jsxs","Flex","direction","display","alignItems","minWidth","borderColor","undefined","Collapse","isGrey","onClickToggle","join","propertyLabel","value","children","childrenForm","CollapsePropertyMatrix","propertyName","formatMessage","useIntl","modifiedData","onChangeParentCheckbox","onChangeSimpleCheckbox","usePermissionsDataManager","isConditionModalOpen","setIsConditionModalOpen","mainData","get","split","dataWithoutCondition","useMemo","Object","keys","reduce","acc","current","omit","hasAllActionsSelected","hasSomeActionsSelected","getCheckboxState","checkboxesActions","generateCheckboxesActions","doesConditionButtonHasConditions","some","hasConditions","BoxWrapper","$isActive","Wrapper","height","rowHeight","flex","background","RowLabelWithCheckbox","isCollapsable","capitalise","checkboxName","onChange","onClick","someChecked","Chevron","paddingLeft","ChevronUp","ChevronDown","style","actionId","restAction","HiddenAction","isParentCheckbox","permissionLabel","Cell","justifyContent","Box","position","zIndex","tag","top","left","width","borderRadius","Checkbox","disabled","name","aria-label","id","defaultMessage","onCheckedChange","target","checked","bottom","right","Modal","Root","open","onOpenChange","prev","Trigger","ConditionsButton","ConditionsModal","headerBreadCrumbs","onClose","applyToProperties","baseCheckboxNameArray","checkboxNameArray","isEmpty","conditionsValue","baseCheckboxAction","createArrayOfValues","val","pathToConditionsObject","activeRowStyle","theme","colors","primary100","primary600","fontWeights","bold","styled","div","cellWidth"],"mappings":"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"}