@strapi/admin 5.9.0 → 5.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (861) hide show
  1. package/dist/_internal.js +86 -30
  2. package/dist/_internal.js.map +1 -1
  3. package/dist/_internal.mjs +85 -31
  4. package/dist/_internal.mjs.map +1 -1
  5. package/dist/admin/chunks/AdminSeatInfo-BfPqdNN0.js +116 -0
  6. package/dist/admin/chunks/AdminSeatInfo-BfPqdNN0.js.map +1 -0
  7. package/dist/admin/chunks/AdminSeatInfo-Cw1ujAsZ.mjs +114 -0
  8. package/dist/admin/chunks/AdminSeatInfo-Cw1ujAsZ.mjs.map +1 -0
  9. package/dist/admin/chunks/ApplicationInfoPage-Ch6hKH4Y.mjs +932 -0
  10. package/dist/admin/chunks/ApplicationInfoPage-Ch6hKH4Y.mjs.map +1 -0
  11. package/dist/admin/chunks/ApplicationInfoPage-DIiAE-tT.js +953 -0
  12. package/dist/admin/chunks/ApplicationInfoPage-DIiAE-tT.js.map +1 -0
  13. package/dist/admin/chunks/AuthResponse-DFS6gVO4.mjs +87 -0
  14. package/dist/admin/chunks/AuthResponse-DFS6gVO4.mjs.map +1 -0
  15. package/dist/admin/chunks/AuthResponse-DI-Q1kQL.js +108 -0
  16. package/dist/admin/chunks/AuthResponse-DI-Q1kQL.js.map +1 -0
  17. package/dist/admin/chunks/AuthenticatedLayout-BNWCtSH2.mjs +1223 -0
  18. package/dist/admin/chunks/AuthenticatedLayout-BNWCtSH2.mjs.map +1 -0
  19. package/dist/admin/chunks/AuthenticatedLayout-D067wUoO.js +1245 -0
  20. package/dist/admin/chunks/AuthenticatedLayout-D067wUoO.js.map +1 -0
  21. package/dist/admin/chunks/CreateActionEE-CSZxFkrZ.js +74 -0
  22. package/dist/admin/chunks/CreateActionEE-CSZxFkrZ.js.map +1 -0
  23. package/dist/admin/chunks/CreateActionEE-DZ6ApqOF.mjs +53 -0
  24. package/dist/admin/chunks/CreateActionEE-DZ6ApqOF.mjs.map +1 -0
  25. package/dist/admin/chunks/CreatePage-0PdN9Fyc.mjs +355 -0
  26. package/dist/admin/chunks/CreatePage-0PdN9Fyc.mjs.map +1 -0
  27. package/dist/admin/chunks/CreatePage-BK_ivKDk.js +378 -0
  28. package/dist/admin/chunks/CreatePage-BK_ivKDk.js.map +1 -0
  29. package/dist/admin/chunks/CreatePage-C8PMNi_P.js +57 -0
  30. package/dist/admin/chunks/CreatePage-C8PMNi_P.js.map +1 -0
  31. package/dist/admin/chunks/CreatePage-DojcQqvH.mjs +54 -0
  32. package/dist/admin/chunks/CreatePage-DojcQqvH.mjs.map +1 -0
  33. package/dist/admin/chunks/CreateView-BuN2a7bo.mjs +57 -0
  34. package/dist/admin/chunks/CreateView-BuN2a7bo.mjs.map +1 -0
  35. package/dist/admin/chunks/CreateView-DB0xD4f5.mjs +62 -0
  36. package/dist/admin/chunks/CreateView-DB0xD4f5.mjs.map +1 -0
  37. package/dist/admin/chunks/CreateView-DtccbWiR.js +59 -0
  38. package/dist/admin/chunks/CreateView-DtccbWiR.js.map +1 -0
  39. package/dist/admin/chunks/CreateView-ITRNGoQ6.js +64 -0
  40. package/dist/admin/chunks/CreateView-ITRNGoQ6.js.map +1 -0
  41. package/dist/admin/chunks/EditPage-BNZ90ISm.mjs +986 -0
  42. package/dist/admin/chunks/EditPage-BNZ90ISm.mjs.map +1 -0
  43. package/dist/admin/chunks/EditPage-BazkPM17.mjs +351 -0
  44. package/dist/admin/chunks/EditPage-BazkPM17.mjs.map +1 -0
  45. package/dist/admin/chunks/EditPage-DiDSR0tz.js +1010 -0
  46. package/dist/admin/chunks/EditPage-DiDSR0tz.js.map +1 -0
  47. package/dist/admin/chunks/EditPage-LRn1-C88.mjs +397 -0
  48. package/dist/admin/chunks/EditPage-LRn1-C88.mjs.map +1 -0
  49. package/dist/admin/chunks/EditPage-ibh8EtSv.js +420 -0
  50. package/dist/admin/chunks/EditPage-ibh8EtSv.js.map +1 -0
  51. package/dist/admin/chunks/EditPage-r043NYgB.js +374 -0
  52. package/dist/admin/chunks/EditPage-r043NYgB.js.map +1 -0
  53. package/dist/admin/chunks/EditView-CgMgqsza.mjs +398 -0
  54. package/dist/admin/chunks/EditView-CgMgqsza.mjs.map +1 -0
  55. package/dist/admin/chunks/EditView-DxmJI6e0.js +421 -0
  56. package/dist/admin/chunks/EditView-DxmJI6e0.js.map +1 -0
  57. package/dist/admin/chunks/EditViewPage-BE_u8pQP.mjs +1039 -0
  58. package/dist/admin/chunks/EditViewPage-BE_u8pQP.mjs.map +1 -0
  59. package/dist/admin/chunks/EditViewPage-Bz4GEIsc.js +1062 -0
  60. package/dist/admin/chunks/EditViewPage-Bz4GEIsc.js.map +1 -0
  61. package/dist/admin/chunks/EventsTable-CZY0aI5G.js +97 -0
  62. package/dist/admin/chunks/EventsTable-CZY0aI5G.js.map +1 -0
  63. package/dist/admin/chunks/EventsTable-CsFf4rOj.mjs +95 -0
  64. package/dist/admin/chunks/EventsTable-CsFf4rOj.mjs.map +1 -0
  65. package/dist/admin/chunks/HomePage-C2Sue0eX.mjs +55 -0
  66. package/dist/admin/chunks/HomePage-C2Sue0eX.mjs.map +1 -0
  67. package/dist/admin/chunks/HomePage-CFTx_SgI.mjs +567 -0
  68. package/dist/admin/chunks/HomePage-CFTx_SgI.mjs.map +1 -0
  69. package/dist/admin/chunks/HomePage-Df0YSqNE.js +589 -0
  70. package/dist/admin/chunks/HomePage-Df0YSqNE.js.map +1 -0
  71. package/dist/admin/chunks/HomePage-ebJLhO6a.js +57 -0
  72. package/dist/admin/chunks/HomePage-ebJLhO6a.js.map +1 -0
  73. package/dist/admin/chunks/InstalledPlugins-B4gyKUHh.mjs +174 -0
  74. package/dist/admin/chunks/InstalledPlugins-B4gyKUHh.mjs.map +1 -0
  75. package/dist/admin/chunks/InstalledPlugins-BtwwVsQ_.js +196 -0
  76. package/dist/admin/chunks/InstalledPlugins-BtwwVsQ_.js.map +1 -0
  77. package/dist/admin/chunks/Layout-BZTqa7oj.js +296 -0
  78. package/dist/admin/chunks/Layout-BZTqa7oj.js.map +1 -0
  79. package/dist/admin/chunks/Layout-B_xkPr1q.mjs +275 -0
  80. package/dist/admin/chunks/Layout-B_xkPr1q.mjs.map +1 -0
  81. package/dist/admin/chunks/ListPage-Beh8uBDE.mjs +610 -0
  82. package/dist/admin/chunks/ListPage-Beh8uBDE.mjs.map +1 -0
  83. package/dist/admin/chunks/ListPage-BtMdu1eQ.mjs +696 -0
  84. package/dist/admin/chunks/ListPage-BtMdu1eQ.mjs.map +1 -0
  85. package/dist/admin/chunks/ListPage-CENQarKY.mjs +452 -0
  86. package/dist/admin/chunks/ListPage-CENQarKY.mjs.map +1 -0
  87. package/dist/admin/chunks/ListPage-Czwak48Z.mjs +373 -0
  88. package/dist/admin/chunks/ListPage-Czwak48Z.mjs.map +1 -0
  89. package/dist/admin/chunks/ListPage-DgmOJv7H.js +632 -0
  90. package/dist/admin/chunks/ListPage-DgmOJv7H.js.map +1 -0
  91. package/dist/admin/chunks/ListPage-Du6Jt5wY.js +721 -0
  92. package/dist/admin/chunks/ListPage-Du6Jt5wY.js.map +1 -0
  93. package/dist/admin/chunks/ListPage-LqcmQd_Q.js +474 -0
  94. package/dist/admin/chunks/ListPage-LqcmQd_Q.js.map +1 -0
  95. package/dist/admin/chunks/ListPage-YW-UVjk3.js +57 -0
  96. package/dist/admin/chunks/ListPage-YW-UVjk3.js.map +1 -0
  97. package/dist/admin/chunks/ListPage-gKsEm3Px.js +395 -0
  98. package/dist/admin/chunks/ListPage-gKsEm3Px.js.map +1 -0
  99. package/dist/admin/chunks/ListPage-r9rW__R8.mjs +55 -0
  100. package/dist/admin/chunks/ListPage-r9rW__R8.mjs.map +1 -0
  101. package/dist/admin/chunks/ListView-BfwBUxHL.js +276 -0
  102. package/dist/admin/chunks/ListView-BfwBUxHL.js.map +1 -0
  103. package/dist/admin/chunks/ListView-Bys8EN-y.js +278 -0
  104. package/dist/admin/chunks/ListView-Bys8EN-y.js.map +1 -0
  105. package/dist/admin/chunks/ListView-CajksON_.mjs +255 -0
  106. package/dist/admin/chunks/ListView-CajksON_.mjs.map +1 -0
  107. package/dist/admin/chunks/ListView-Q2AO0JSX.mjs +253 -0
  108. package/dist/admin/chunks/ListView-Q2AO0JSX.mjs.map +1 -0
  109. package/dist/admin/chunks/Login-5ByBaKI3.mjs +93 -0
  110. package/dist/admin/chunks/Login-5ByBaKI3.mjs.map +1 -0
  111. package/dist/admin/chunks/Login-BpEOnVbU.js +95 -0
  112. package/dist/admin/chunks/Login-BpEOnVbU.js.map +1 -0
  113. package/dist/admin/chunks/MagicLinkEE-CiQG7NL3.mjs +66 -0
  114. package/dist/admin/chunks/MagicLinkEE-CiQG7NL3.mjs.map +1 -0
  115. package/dist/admin/chunks/MagicLinkEE-a-AbOB4s.js +68 -0
  116. package/dist/admin/chunks/MagicLinkEE-a-AbOB4s.js.map +1 -0
  117. package/dist/admin/chunks/MarketplacePage-BrHNQ8SG.mjs +1134 -0
  118. package/dist/admin/chunks/MarketplacePage-BrHNQ8SG.mjs.map +1 -0
  119. package/dist/admin/chunks/MarketplacePage-my1nDaHy.js +1158 -0
  120. package/dist/admin/chunks/MarketplacePage-my1nDaHy.js.map +1 -0
  121. package/dist/admin/chunks/ModalForm-Br-NALJ0.js +26 -0
  122. package/dist/admin/chunks/ModalForm-Br-NALJ0.js.map +1 -0
  123. package/dist/admin/chunks/ModalForm-CZ98aSC9.mjs +23 -0
  124. package/dist/admin/chunks/ModalForm-CZ98aSC9.mjs.map +1 -0
  125. package/dist/admin/chunks/Ornaments-CvdERnok.js +217 -0
  126. package/dist/admin/chunks/Ornaments-CvdERnok.js.map +1 -0
  127. package/dist/admin/chunks/Ornaments-DlP663hn.mjs +212 -0
  128. package/dist/admin/chunks/Ornaments-DlP663hn.mjs.map +1 -0
  129. package/dist/admin/chunks/Permissions-C7FA_7J9.js +2285 -0
  130. package/dist/admin/chunks/Permissions-C7FA_7J9.js.map +1 -0
  131. package/dist/admin/chunks/Permissions-CuLck8vw.mjs +2264 -0
  132. package/dist/admin/chunks/Permissions-CuLck8vw.mjs.map +1 -0
  133. package/dist/admin/chunks/PrivateRoute-BYKd2yE4.mjs +18 -0
  134. package/dist/admin/chunks/PrivateRoute-BYKd2yE4.mjs.map +1 -0
  135. package/dist/admin/chunks/PrivateRoute-BnxIlIDb.js +20 -0
  136. package/dist/admin/chunks/PrivateRoute-BnxIlIDb.js.map +1 -0
  137. package/dist/admin/chunks/ProfilePage-C8zWtYzY.js +520 -0
  138. package/dist/admin/chunks/ProfilePage-C8zWtYzY.js.map +1 -0
  139. package/dist/admin/chunks/ProfilePage-Do6nPMsx.mjs +498 -0
  140. package/dist/admin/chunks/ProfilePage-Do6nPMsx.mjs.map +1 -0
  141. package/dist/admin/chunks/PurchaseAuditLogs-BTAi887h.js +89 -0
  142. package/dist/admin/chunks/PurchaseAuditLogs-BTAi887h.js.map +1 -0
  143. package/dist/admin/chunks/PurchaseAuditLogs-McvZESGI.mjs +87 -0
  144. package/dist/admin/chunks/PurchaseAuditLogs-McvZESGI.mjs.map +1 -0
  145. package/dist/admin/chunks/PurchaseContentHistory-dfepsahq.js +89 -0
  146. package/dist/admin/chunks/PurchaseContentHistory-dfepsahq.js.map +1 -0
  147. package/dist/admin/chunks/PurchaseContentHistory-pb7RDvhZ.mjs +87 -0
  148. package/dist/admin/chunks/PurchaseContentHistory-pb7RDvhZ.mjs.map +1 -0
  149. package/dist/admin/chunks/PurchaseSingleSignOn-BUB9Irlt.mjs +87 -0
  150. package/dist/admin/chunks/PurchaseSingleSignOn-BUB9Irlt.mjs.map +1 -0
  151. package/dist/admin/chunks/PurchaseSingleSignOn-Dgal5RnY.js +89 -0
  152. package/dist/admin/chunks/PurchaseSingleSignOn-Dgal5RnY.js.map +1 -0
  153. package/dist/admin/chunks/RelativeTime-ChFKZs4z.js +76 -0
  154. package/dist/admin/chunks/RelativeTime-ChFKZs4z.js.map +1 -0
  155. package/dist/admin/chunks/RelativeTime-r7oMqUVy.mjs +55 -0
  156. package/dist/admin/chunks/RelativeTime-r7oMqUVy.mjs.map +1 -0
  157. package/dist/admin/chunks/SSOProviders-BC_OI8Id.js +107 -0
  158. package/dist/admin/chunks/SSOProviders-BC_OI8Id.js.map +1 -0
  159. package/dist/admin/chunks/SSOProviders-Dw_eYbX-.mjs +105 -0
  160. package/dist/admin/chunks/SSOProviders-Dw_eYbX-.mjs.map +1 -0
  161. package/dist/admin/chunks/SelectRoles-CG3Czm0u.mjs +124 -0
  162. package/dist/admin/chunks/SelectRoles-CG3Czm0u.mjs.map +1 -0
  163. package/dist/admin/chunks/SelectRoles-Clx1_4zB.js +128 -0
  164. package/dist/admin/chunks/SelectRoles-Clx1_4zB.js.map +1 -0
  165. package/dist/admin/chunks/SingleSignOnPage-Bqn13t3u.mjs +284 -0
  166. package/dist/admin/chunks/SingleSignOnPage-Bqn13t3u.mjs.map +1 -0
  167. package/dist/admin/chunks/SingleSignOnPage-DqHWnXWQ.js +306 -0
  168. package/dist/admin/chunks/SingleSignOnPage-DqHWnXWQ.js.map +1 -0
  169. package/dist/admin/chunks/Table-BHi0q5It.js +197 -0
  170. package/dist/admin/chunks/Table-BHi0q5It.js.map +1 -0
  171. package/dist/admin/chunks/Table-Ra6bYcx7.mjs +195 -0
  172. package/dist/admin/chunks/Table-Ra6bYcx7.mjs.map +1 -0
  173. package/dist/admin/chunks/Theme-CDaBfQ-7.mjs +1762 -0
  174. package/dist/admin/chunks/Theme-CDaBfQ-7.mjs.map +1 -0
  175. package/dist/admin/chunks/Theme-CFGbtvHi.js +1831 -0
  176. package/dist/admin/chunks/Theme-CFGbtvHi.js.map +1 -0
  177. package/dist/admin/chunks/TokenTypeSelect-BIRgChNx.mjs +367 -0
  178. package/dist/admin/chunks/TokenTypeSelect-BIRgChNx.mjs.map +1 -0
  179. package/dist/admin/chunks/TokenTypeSelect-EY1WftKo.js +394 -0
  180. package/dist/admin/chunks/TokenTypeSelect-EY1WftKo.js.map +1 -0
  181. package/dist/admin/chunks/UseCasePage-Dl-WfgYc.js +260 -0
  182. package/dist/admin/chunks/UseCasePage-Dl-WfgYc.js.map +1 -0
  183. package/dist/admin/chunks/UseCasePage-Y_h0Fbiv.mjs +237 -0
  184. package/dist/admin/chunks/UseCasePage-Y_h0Fbiv.mjs.map +1 -0
  185. package/dist/admin/chunks/admin-BBS7sDVu.mjs +407 -0
  186. package/dist/admin/chunks/admin-BBS7sDVu.mjs.map +1 -0
  187. package/dist/admin/chunks/admin-udBiOv2o.js +422 -0
  188. package/dist/admin/chunks/admin-udBiOv2o.js.map +1 -0
  189. package/dist/admin/chunks/apiTokens-Bl4j4xFt.mjs +79 -0
  190. package/dist/admin/chunks/apiTokens-Bl4j4xFt.mjs.map +1 -0
  191. package/dist/admin/chunks/apiTokens-C7CY0RRl.js +85 -0
  192. package/dist/admin/chunks/apiTokens-C7CY0RRl.js.map +1 -0
  193. package/dist/admin/chunks/ar-CKlv64GT.js +851 -0
  194. package/dist/admin/{ar-CzJtN9ZR.js.map → chunks/ar-CKlv64GT.js.map} +1 -1
  195. package/dist/admin/chunks/ar-DIoaNhYi.mjs +832 -0
  196. package/dist/admin/{ar-B4qxeRNq.mjs.map → chunks/ar-DIoaNhYi.mjs.map} +1 -1
  197. package/dist/admin/chunks/ca-CiTVrP0z.mjs +520 -0
  198. package/dist/admin/{ca-CNWrv4Mk.mjs.map → chunks/ca-CiTVrP0z.mjs.map} +1 -1
  199. package/dist/admin/chunks/ca-Dro6RjTq.js +536 -0
  200. package/dist/admin/{pl-CdJxEUSA.js.map → chunks/ca-Dro6RjTq.js.map} +1 -1
  201. package/dist/admin/chunks/constants-B8oOcJBB.mjs +5 -0
  202. package/dist/admin/chunks/constants-B8oOcJBB.mjs.map +1 -0
  203. package/dist/admin/chunks/constants-DClZ3JYF.js +163 -0
  204. package/dist/admin/chunks/constants-DClZ3JYF.js.map +1 -0
  205. package/dist/admin/chunks/constants-DoArvzRr.mjs +161 -0
  206. package/dist/admin/chunks/constants-DoArvzRr.mjs.map +1 -0
  207. package/dist/admin/chunks/constants-tbFuOuW4.js +8 -0
  208. package/dist/admin/chunks/constants-tbFuOuW4.js.map +1 -0
  209. package/dist/admin/chunks/cs-CrhAArjW.js +177 -0
  210. package/dist/admin/{cs-DeS9DzIq.js.map → chunks/cs-CrhAArjW.js.map} +1 -1
  211. package/dist/admin/chunks/cs-D7xysdyX.mjs +166 -0
  212. package/dist/admin/{cs-DrRkodPD.mjs.map → chunks/cs-D7xysdyX.mjs.map} +1 -1
  213. package/dist/admin/chunks/de--2g6Hiwv.js +530 -0
  214. package/dist/admin/{de-CxVS71Os.js.map → chunks/de--2g6Hiwv.js.map} +1 -1
  215. package/dist/admin/chunks/de-BWQ7SIyM.mjs +514 -0
  216. package/dist/admin/{de-D0NA2abW.mjs.map → chunks/de-BWQ7SIyM.mjs.map} +1 -1
  217. package/dist/admin/chunks/dk-7AZJZW29.mjs +434 -0
  218. package/dist/admin/{dk-BhJUQEKK.mjs.map → chunks/dk-7AZJZW29.mjs.map} +1 -1
  219. package/dist/admin/chunks/dk-DlX9Yc-Z.js +450 -0
  220. package/dist/admin/{ko-DQ16dRok.js.map → chunks/dk-DlX9Yc-Z.js.map} +1 -1
  221. package/dist/admin/chunks/en-CJjqxA2Q.js +804 -0
  222. package/dist/admin/{en-aGYWBxXH.js.map → chunks/en-CJjqxA2Q.js.map} +1 -1
  223. package/dist/admin/chunks/en-CRu3-kTC.mjs +784 -0
  224. package/dist/admin/{en-HhkCMXdW.mjs.map → chunks/en-CRu3-kTC.mjs.map} +1 -1
  225. package/dist/admin/chunks/en-GB-CMP_CCZs.js +8 -0
  226. package/dist/admin/chunks/en-GB-CMP_CCZs.js.map +1 -0
  227. package/dist/admin/chunks/en-GB-DZyWkup_.mjs +6 -0
  228. package/dist/admin/chunks/en-GB-DZyWkup_.mjs.map +1 -0
  229. package/dist/admin/chunks/es-DlUN520X.mjs +602 -0
  230. package/dist/admin/{es-YUiY80mn.mjs.map → chunks/es-DlUN520X.mjs.map} +1 -1
  231. package/dist/admin/chunks/es-qJwzbuzj.js +620 -0
  232. package/dist/admin/{es-D3FlHFx3.js.map → chunks/es-qJwzbuzj.js.map} +1 -1
  233. package/dist/admin/chunks/eu-BjPzWjP-.mjs +625 -0
  234. package/dist/admin/{hu-BqsNBMOK.mjs.map → chunks/eu-BjPzWjP-.mjs.map} +1 -1
  235. package/dist/admin/chunks/eu-DLuO9QFa.js +643 -0
  236. package/dist/admin/chunks/eu-DLuO9QFa.js.map +1 -0
  237. package/dist/admin/chunks/fr-D-lfObnF.mjs +581 -0
  238. package/dist/admin/{fr-CQtzdQWu.mjs.map → chunks/fr-D-lfObnF.mjs.map} +1 -1
  239. package/dist/admin/chunks/fr-l9CvkceZ.js +601 -0
  240. package/dist/admin/{tr-D8gIyQxv.js.map → chunks/fr-l9CvkceZ.js.map} +1 -1
  241. package/dist/admin/chunks/gu-BfN4U3Q0.js +436 -0
  242. package/dist/admin/{gu-Hc5YzUuw.js.map → chunks/gu-BfN4U3Q0.js.map} +1 -1
  243. package/dist/admin/chunks/gu-DMqR9PzV.mjs +429 -0
  244. package/dist/admin/{gu-CSS25C49.mjs.map → chunks/gu-DMqR9PzV.mjs.map} +1 -1
  245. package/dist/admin/chunks/he-DQnlLpI2.js +327 -0
  246. package/dist/admin/chunks/he-DQnlLpI2.js.map +1 -0
  247. package/dist/admin/chunks/he-DfIYPy4g.mjs +315 -0
  248. package/dist/admin/{he-CR3FKaSH.mjs.map → chunks/he-DfIYPy4g.mjs.map} +1 -1
  249. package/dist/admin/chunks/hi-C1bRwQm3.mjs +519 -0
  250. package/dist/admin/{hi-CRUIUVKR.mjs.map → chunks/hi-C1bRwQm3.mjs.map} +1 -1
  251. package/dist/admin/chunks/hi-CAYgw5fw.js +535 -0
  252. package/dist/admin/{ml-D3lcQ9Qh.js.map → chunks/hi-CAYgw5fw.js.map} +1 -1
  253. package/dist/admin/chunks/hu-CmA0pIab.js +643 -0
  254. package/dist/admin/chunks/hu-CmA0pIab.js.map +1 -0
  255. package/dist/admin/chunks/hu-DTUInqNe.mjs +625 -0
  256. package/dist/admin/{eu-wKHkhamJ.mjs.map → chunks/hu-DTUInqNe.mjs.map} +1 -1
  257. package/dist/admin/chunks/id-C69myNeZ.js +301 -0
  258. package/dist/admin/{id-BX77nhRG.js.map → chunks/id-C69myNeZ.js.map} +1 -1
  259. package/dist/admin/chunks/id-CLj6OS01.mjs +290 -0
  260. package/dist/admin/{id-cH3Ovozx.mjs.map → chunks/id-CLj6OS01.mjs.map} +1 -1
  261. package/dist/admin/chunks/index-BUGouNML.mjs +7091 -0
  262. package/dist/admin/chunks/index-BUGouNML.mjs.map +1 -0
  263. package/dist/admin/chunks/index-D7OmC33R.js +7155 -0
  264. package/dist/admin/chunks/index-D7OmC33R.js.map +1 -0
  265. package/dist/admin/chunks/it-Bn9y0UG-.js +310 -0
  266. package/dist/admin/{it-BFsCRAiv.js.map → chunks/it-Bn9y0UG-.js.map} +1 -1
  267. package/dist/admin/chunks/it-CI4iXN-s.mjs +299 -0
  268. package/dist/admin/{it-D236xPzE.mjs.map → chunks/it-CI4iXN-s.mjs.map} +1 -1
  269. package/dist/admin/chunks/ja-DDL7fKfX.js +450 -0
  270. package/dist/admin/{ja-DeeXToB8.js.map → chunks/ja-DDL7fKfX.js.map} +1 -1
  271. package/dist/admin/chunks/ja-XD0qdvmh.mjs +434 -0
  272. package/dist/admin/{ja-CD7DxKrd.mjs.map → chunks/ja-XD0qdvmh.mjs.map} +1 -1
  273. package/dist/admin/chunks/ko-CAChQtgZ.mjs +433 -0
  274. package/dist/admin/{ko-CgT83B4e.mjs.map → chunks/ko-CAChQtgZ.mjs.map} +1 -1
  275. package/dist/admin/chunks/ko-C_d9Ja0b.js +449 -0
  276. package/dist/admin/{dk-B-52bH2A.js.map → chunks/ko-C_d9Ja0b.js.map} +1 -1
  277. package/dist/admin/chunks/ml-BN6g97vL.js +535 -0
  278. package/dist/admin/chunks/ml-BN6g97vL.js.map +1 -0
  279. package/dist/admin/chunks/ml-OZdE-Rdf.mjs +519 -0
  280. package/dist/admin/{ml-BJMvJbX5.mjs.map → chunks/ml-OZdE-Rdf.mjs.map} +1 -1
  281. package/dist/admin/chunks/ms-CWDO45lu.mjs +200 -0
  282. package/dist/admin/{pt-8dwKSOn3.mjs.map → chunks/ms-CWDO45lu.mjs.map} +1 -1
  283. package/dist/admin/chunks/ms-DSUp9TXl.js +211 -0
  284. package/dist/admin/{pt-CEcd6cjN.js.map → chunks/ms-DSUp9TXl.js.map} +1 -1
  285. package/dist/admin/chunks/nl-BRq2PB1q.mjs +621 -0
  286. package/dist/admin/{nl-CKIw7654.mjs.map → chunks/nl-BRq2PB1q.mjs.map} +1 -1
  287. package/dist/admin/chunks/nl-Bc4mZOba.js +639 -0
  288. package/dist/admin/{sv-BqRXfruc.js.map → chunks/nl-Bc4mZOba.js.map} +1 -1
  289. package/dist/admin/chunks/no-BtzfHZUH.mjs +300 -0
  290. package/dist/admin/{no-D6CAWjEU.mjs.map → chunks/no-BtzfHZUH.mjs.map} +1 -1
  291. package/dist/admin/chunks/no-D0VN_ZtA.js +311 -0
  292. package/dist/admin/{no-B9qB0rWa.js.map → chunks/no-D0VN_ZtA.js.map} +1 -1
  293. package/dist/admin/chunks/pl-BsvtDLRo.mjs +519 -0
  294. package/dist/admin/{pl-jPMrmdJq.mjs.map → chunks/pl-BsvtDLRo.mjs.map} +1 -1
  295. package/dist/admin/chunks/pl-D7HFG_xo.js +535 -0
  296. package/dist/admin/chunks/pl-D7HFG_xo.js.map +1 -0
  297. package/dist/admin/chunks/pt-BR-B3KKuF2p.js +606 -0
  298. package/dist/admin/{pt-BR-DBqyMlGp.js.map → chunks/pt-BR-B3KKuF2p.js.map} +1 -1
  299. package/dist/admin/chunks/pt-BR-DBqHmqA5.mjs +588 -0
  300. package/dist/admin/{pt-BR-THVjG5z2.mjs.map → chunks/pt-BR-DBqHmqA5.mjs.map} +1 -1
  301. package/dist/admin/chunks/pt-DCyoSDGa.js +210 -0
  302. package/dist/admin/{ms-C-JB0-h1.js.map → chunks/pt-DCyoSDGa.js.map} +1 -1
  303. package/dist/admin/chunks/pt-wKaSOdHh.mjs +200 -0
  304. package/dist/admin/{ms-eMDSLvhl.mjs.map → chunks/pt-wKaSOdHh.mjs.map} +1 -1
  305. package/dist/admin/chunks/ru-C13N1yaO.mjs +745 -0
  306. package/dist/admin/{ru-C34i9wJx.mjs.map → chunks/ru-C13N1yaO.mjs.map} +1 -1
  307. package/dist/admin/chunks/ru-Dj1oAKC7.js +764 -0
  308. package/dist/admin/{ru-Dwf09uUc.js.map → chunks/ru-Dj1oAKC7.js.map} +1 -1
  309. package/dist/admin/chunks/sa-BS5xpa-V.mjs +519 -0
  310. package/dist/admin/chunks/sa-BS5xpa-V.mjs.map +1 -0
  311. package/dist/admin/chunks/sa-ftcoOyFZ.js +535 -0
  312. package/dist/admin/chunks/sa-ftcoOyFZ.js.map +1 -0
  313. package/dist/admin/chunks/selectors-2ohXQx5g.js +13 -0
  314. package/dist/admin/chunks/selectors-2ohXQx5g.js.map +1 -0
  315. package/dist/admin/chunks/selectors-PQdhPmzv.mjs +11 -0
  316. package/dist/admin/chunks/selectors-PQdhPmzv.mjs.map +1 -0
  317. package/dist/admin/chunks/sk-BkoiGl_d.js +501 -0
  318. package/dist/admin/{sk-CbJVofN-.js.map → chunks/sk-BkoiGl_d.js.map} +1 -1
  319. package/dist/admin/chunks/sk-Yv9s7dUn.mjs +483 -0
  320. package/dist/admin/{sk-DQ2qpsG2.mjs.map → chunks/sk-Yv9s7dUn.mjs.map} +1 -1
  321. package/dist/admin/chunks/sv-CYpSsbq3.js +638 -0
  322. package/dist/admin/{nl-DN7knmKC.js.map → chunks/sv-CYpSsbq3.js.map} +1 -1
  323. package/dist/admin/chunks/sv-CaQpgtnl.mjs +620 -0
  324. package/dist/admin/{sv-D0vPVUAT.mjs.map → chunks/sv-CaQpgtnl.mjs.map} +1 -1
  325. package/dist/admin/chunks/th-D1Raa9T5.js +295 -0
  326. package/dist/admin/{th-CPx6wf0M.js.map → chunks/th-D1Raa9T5.js.map} +1 -1
  327. package/dist/admin/chunks/th-Mav5tUMF.mjs +284 -0
  328. package/dist/admin/{th-BG3IOCqV.mjs.map → chunks/th-Mav5tUMF.mjs.map} +1 -1
  329. package/dist/admin/chunks/tr-DZnC0Jye.mjs +581 -0
  330. package/dist/admin/{tr-BmV7At9f.mjs.map → chunks/tr-DZnC0Jye.mjs.map} +1 -1
  331. package/dist/admin/chunks/tr-KY2E7HZC.js +599 -0
  332. package/dist/admin/{fr-DrIHgYTT.js.map → chunks/tr-KY2E7HZC.js.map} +1 -1
  333. package/dist/admin/chunks/transferTokens-9pdM-Bum.mjs +90 -0
  334. package/dist/admin/chunks/transferTokens-9pdM-Bum.mjs.map +1 -0
  335. package/dist/admin/chunks/transferTokens-oEFM8kkT.js +97 -0
  336. package/dist/admin/chunks/transferTokens-oEFM8kkT.js.map +1 -0
  337. package/dist/admin/chunks/uk-Cb6a0PAZ.mjs +201 -0
  338. package/dist/admin/{uk-Ud9QNfkB.mjs.map → chunks/uk-Cb6a0PAZ.mjs.map} +1 -1
  339. package/dist/admin/chunks/uk-gz16FlMw.js +212 -0
  340. package/dist/admin/chunks/uk-gz16FlMw.js.map +1 -0
  341. package/dist/admin/chunks/useAdminRoles-BEmkB0uj.mjs +32 -0
  342. package/dist/admin/chunks/useAdminRoles-BEmkB0uj.mjs.map +1 -0
  343. package/dist/admin/chunks/useAdminRoles-DwDqOIvp.js +53 -0
  344. package/dist/admin/chunks/useAdminRoles-DwDqOIvp.js.map +1 -0
  345. package/dist/admin/chunks/useEnterprise-Dy8wMNV5.mjs +38 -0
  346. package/dist/admin/chunks/useEnterprise-Dy8wMNV5.mjs.map +1 -0
  347. package/dist/admin/chunks/useEnterprise-IHd3AKd2.js +59 -0
  348. package/dist/admin/chunks/useEnterprise-IHd3AKd2.js.map +1 -0
  349. package/dist/admin/chunks/useLicenseLimitNotification-BMCQ8obE.js +96 -0
  350. package/dist/admin/chunks/useLicenseLimitNotification-BMCQ8obE.js.map +1 -0
  351. package/dist/admin/chunks/useLicenseLimitNotification-CGkazzao.mjs +75 -0
  352. package/dist/admin/chunks/useLicenseLimitNotification-CGkazzao.mjs.map +1 -0
  353. package/dist/admin/chunks/useLicenseLimits-D4XBewxi.mjs +29 -0
  354. package/dist/admin/chunks/useLicenseLimits-D4XBewxi.mjs.map +1 -0
  355. package/dist/admin/chunks/useLicenseLimits-JOHH8jfL.js +50 -0
  356. package/dist/admin/chunks/useLicenseLimits-JOHH8jfL.js.map +1 -0
  357. package/dist/admin/chunks/useOnce-CCEXokcy.js +28 -0
  358. package/dist/admin/chunks/useOnce-CCEXokcy.js.map +1 -0
  359. package/dist/admin/chunks/useOnce-EHSWW7FY.mjs +7 -0
  360. package/dist/admin/chunks/useOnce-EHSWW7FY.mjs.map +1 -0
  361. package/dist/admin/chunks/useWebhooks-CROc5Uno.js +117 -0
  362. package/dist/admin/chunks/useWebhooks-CROc5Uno.js.map +1 -0
  363. package/dist/admin/chunks/useWebhooks-DzJ3X-hd.mjs +115 -0
  364. package/dist/admin/chunks/useWebhooks-DzJ3X-hd.mjs.map +1 -0
  365. package/dist/admin/chunks/users-B3iOAYG-.mjs +39 -0
  366. package/dist/admin/chunks/users-B3iOAYG-.mjs.map +1 -0
  367. package/dist/admin/chunks/users-D-oKxjK9.js +42 -0
  368. package/dist/admin/chunks/users-D-oKxjK9.js.map +1 -0
  369. package/dist/admin/chunks/validation-DOQs6_Ay.mjs +52 -0
  370. package/dist/admin/chunks/validation-DOQs6_Ay.mjs.map +1 -0
  371. package/dist/admin/chunks/validation-ECrFbJ6K.js +73 -0
  372. package/dist/admin/chunks/validation-ECrFbJ6K.js.map +1 -0
  373. package/dist/admin/chunks/vi-BsRo_l_e.js +198 -0
  374. package/dist/admin/{vi-UeRpPdvI.js.map → chunks/vi-BsRo_l_e.js.map} +1 -1
  375. package/dist/admin/chunks/vi-r6WrFGyI.mjs +187 -0
  376. package/dist/admin/{vi-CGrr4ioy.mjs.map → chunks/vi-r6WrFGyI.mjs.map} +1 -1
  377. package/dist/admin/chunks/zh-B_FImn9T.js +640 -0
  378. package/dist/admin/{zh-AMwNTzOa.js.map → chunks/zh-B_FImn9T.js.map} +1 -1
  379. package/dist/admin/chunks/zh-CIjQrG_x.mjs +622 -0
  380. package/dist/admin/{zh-DtDdEUIE.mjs.map → chunks/zh-CIjQrG_x.mjs.map} +1 -1
  381. package/dist/admin/chunks/zh-Hans-BmHHqjob.mjs +716 -0
  382. package/dist/admin/{zh-Hans-DrZal35c.mjs.map → chunks/zh-Hans-BmHHqjob.mjs.map} +1 -1
  383. package/dist/admin/chunks/zh-Hans-Bv055w0d.js +735 -0
  384. package/dist/admin/{zh-Hans-B34a3f93.js.map → chunks/zh-Hans-Bv055w0d.js.map} +1 -1
  385. package/dist/admin/ee.js +9 -4
  386. package/dist/admin/ee.js.map +1 -1
  387. package/dist/admin/ee.mjs +9 -2
  388. package/dist/admin/ee.mjs.map +1 -1
  389. package/dist/admin/index.js +41 -5
  390. package/dist/admin/index.js.map +1 -1
  391. package/dist/admin/index.mjs +40 -3
  392. package/dist/admin/index.mjs.map +1 -1
  393. package/dist/admin/src/App.d.ts +2 -2
  394. package/dist/admin/src/StrapiApp.d.ts +2 -2
  395. package/dist/admin/src/components/ConfirmDialog.d.ts +1 -1
  396. package/dist/admin/src/components/DragLayer.d.ts +1 -1
  397. package/dist/admin/src/components/Filters.d.ts +2 -2
  398. package/dist/admin/src/components/Form.d.ts +6 -5
  399. package/dist/admin/src/components/FormInputs/Boolean.d.ts +2 -1
  400. package/dist/admin/src/components/FormInputs/Checkbox.d.ts +2 -1
  401. package/dist/admin/src/components/FormInputs/Date.d.ts +1 -1
  402. package/dist/admin/src/components/FormInputs/DateTime.d.ts +2 -1
  403. package/dist/admin/src/components/FormInputs/Email.d.ts +3 -2
  404. package/dist/admin/src/components/FormInputs/Enumeration.d.ts +2 -1
  405. package/dist/admin/src/components/FormInputs/Json.d.ts +1 -1
  406. package/dist/admin/src/components/FormInputs/Number.d.ts +2 -1
  407. package/dist/admin/src/components/FormInputs/Password.d.ts +3 -2
  408. package/dist/admin/src/components/FormInputs/Renderer.d.ts +3 -2
  409. package/dist/admin/src/components/FormInputs/String.d.ts +3 -2
  410. package/dist/admin/src/components/FormInputs/Textarea.d.ts +3 -2
  411. package/dist/admin/src/components/FormInputs/Time.d.ts +2 -1
  412. package/dist/admin/src/components/FormInputs/types.d.ts +2 -2
  413. package/dist/admin/src/components/Layouts/HeaderLayout.d.ts +1 -1
  414. package/dist/admin/src/components/Layouts/Layout.d.ts +5 -5
  415. package/dist/admin/src/components/MainNav/NavLink.d.ts +1 -1
  416. package/dist/admin/src/components/MainNav/NavUser.d.ts +1 -1
  417. package/dist/admin/src/components/PageHelpers.d.ts +2 -2
  418. package/dist/admin/src/components/Pagination.d.ts +1 -1
  419. package/dist/admin/src/components/Providers.d.ts +2 -2
  420. package/dist/admin/src/components/RelativeTime.d.ts +1 -1
  421. package/dist/admin/src/components/Table.d.ts +1 -1
  422. package/dist/admin/src/components/Theme.d.ts +1 -1
  423. package/dist/admin/src/constants/filters.d.ts +2 -2
  424. package/dist/admin/src/constants.d.ts +1 -1
  425. package/dist/admin/src/core/apis/CustomFields.d.ts +2 -2
  426. package/dist/admin/src/core/apis/Plugin.d.ts +2 -0
  427. package/dist/admin/src/core/apis/rbac.d.ts +1 -1
  428. package/dist/admin/src/core/apis/router.d.ts +2 -2
  429. package/dist/admin/src/core/store/configure.d.ts +5 -5
  430. package/dist/admin/src/core/store/hooks.d.ts +7 -10
  431. package/dist/admin/src/core/utils/createHook.d.ts +1 -1
  432. package/dist/admin/src/features/AppInfo.d.ts +1 -1
  433. package/dist/admin/src/features/Auth.d.ts +2 -2
  434. package/dist/admin/src/features/BackButton.d.ts +2 -2
  435. package/dist/admin/src/features/Configuration.d.ts +2 -2
  436. package/dist/admin/src/features/StrapiApp.d.ts +3 -2
  437. package/dist/admin/src/features/Tracking.d.ts +1 -1
  438. package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +1 -3
  439. package/dist/admin/src/hooks/useAdminRoles.d.ts +3 -3
  440. package/dist/admin/src/hooks/useContentTypes.d.ts +1 -1
  441. package/dist/admin/src/hooks/useElementOnScreen.d.ts +7 -0
  442. package/dist/admin/src/hooks/useFetchClient.d.ts +1 -1
  443. package/dist/admin/src/hooks/usePersistentState.d.ts +1 -1
  444. package/dist/admin/src/hooks/useQueryParams.d.ts +1 -1
  445. package/dist/admin/src/hooks/useSettingsMenu.d.ts +1 -1
  446. package/dist/admin/src/hooks/useThrottledCallback.d.ts +2 -1
  447. package/dist/admin/src/index.d.ts +3 -2
  448. package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +2 -2
  449. package/dist/admin/src/pages/Auth/components/ForgotPassword.d.ts +1 -1
  450. package/dist/admin/src/pages/Auth/components/Login.d.ts +1 -1
  451. package/dist/admin/src/pages/Auth/constants.d.ts +1 -1
  452. package/dist/admin/src/pages/Home/components/Widget.d.ts +1 -1
  453. package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +2 -2
  454. package/dist/admin/src/pages/Marketplace/components/NpmPackagesFilters.d.ts +2 -2
  455. package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +1 -1
  456. package/dist/admin/src/pages/Marketplace/components/PageHeader.d.ts +1 -1
  457. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +3 -3
  458. package/dist/admin/src/pages/Settings/components/Tokens/FormHead.d.ts +1 -1
  459. package/dist/admin/src/pages/Settings/components/Tokens/LifeSpanInput.d.ts +2 -2
  460. package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +1 -1
  461. package/dist/admin/src/pages/Settings/constants.d.ts +1 -1
  462. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.d.ts +1 -1
  463. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.d.ts +2 -2
  464. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.d.ts +12 -12
  465. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.d.ts +1 -1
  466. package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +4 -3
  467. package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +2 -2
  468. package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.d.ts +2 -2
  469. package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +1 -1
  470. package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +2 -2
  471. package/dist/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.d.ts +1 -1
  472. package/dist/admin/src/pages/Settings/pages/Roles/components/RoleForm.d.ts +2 -2
  473. package/dist/admin/src/pages/Settings/pages/Roles/components/RoleRow.d.ts +1 -1
  474. package/dist/admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.d.ts +1 -1
  475. package/dist/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.d.ts +3 -2
  476. package/dist/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.d.ts +1 -1
  477. package/dist/admin/src/pages/Settings/pages/Roles/utils/forms.d.ts +3 -3
  478. package/dist/admin/src/pages/Settings/pages/Roles/utils/permissions.d.ts +2 -2
  479. package/dist/admin/src/pages/Settings/pages/Roles/utils/removeConditionKeyFromData.d.ts +1 -1
  480. package/dist/admin/src/pages/Settings/pages/Users/components/CreateActionCE.d.ts +1 -1
  481. package/dist/admin/src/pages/Settings/pages/Users/components/NewUserForm.d.ts +1 -1
  482. package/dist/admin/src/pages/Settings/pages/Users/utils/validation.d.ts +2 -2
  483. package/dist/admin/src/pages/Settings/pages/Webhooks/components/Events.d.ts +1 -1
  484. package/dist/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.d.ts +1 -1
  485. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +6 -6
  486. package/dist/admin/src/reducer.d.ts +2 -2
  487. package/dist/admin/src/render.d.ts +1 -1
  488. package/dist/admin/src/selectors.d.ts +6 -6
  489. package/dist/admin/src/services/admin.d.ts +6 -6
  490. package/dist/admin/src/services/api.d.ts +1 -1
  491. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  492. package/dist/admin/src/services/auth.d.ts +22 -22
  493. package/dist/admin/src/services/contentApi.d.ts +1 -1
  494. package/dist/admin/src/services/contentManager.d.ts +6 -2
  495. package/dist/admin/src/services/homepage.d.ts +2 -2
  496. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  497. package/dist/admin/src/services/users.d.ts +12 -12
  498. package/dist/admin/src/services/webhooks.d.ts +3 -3
  499. package/dist/admin/src/types/adminConfiguration.d.ts +1 -1
  500. package/dist/admin/src/types/forms.d.ts +3 -3
  501. package/dist/admin/src/types/permissions.d.ts +1 -1
  502. package/dist/admin/src/utils/arrays.d.ts +1 -1
  503. package/dist/admin/src/utils/baseQuery.d.ts +1 -2
  504. package/dist/admin/src/utils/getFetchClient.d.ts +2 -1
  505. package/dist/admin/src/utils/normalizeAPIError.d.ts +1 -1
  506. package/dist/admin/src/utils/users.d.ts +1 -1
  507. package/dist/admin/test.js +2288 -35360
  508. package/dist/admin/test.js.map +1 -1
  509. package/dist/admin/test.mjs +2254 -35313
  510. package/dist/admin/test.mjs.map +1 -1
  511. package/dist/admin/tests/server.d.ts +1 -1
  512. package/dist/admin/tests/utils.d.ts +6 -6
  513. package/dist/ee/admin/src/constants.d.ts +2 -2
  514. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +2 -2
  515. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.d.ts +1 -1
  516. package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.d.ts +1 -1
  517. package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.d.ts +1 -1
  518. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  519. package/dist/ee/server/src/index.d.ts +1 -1
  520. package/dist/ee/server/src/index.d.ts.map +1 -1
  521. package/dist/server/index.js +8567 -6648
  522. package/dist/server/index.js.map +1 -1
  523. package/dist/server/index.mjs +8747 -6815
  524. package/dist/server/index.mjs.map +1 -1
  525. package/dist/server/src/bootstrap.d.ts.map +1 -1
  526. package/dist/server/src/services/api-token.d.ts +2 -1
  527. package/dist/server/src/services/api-token.d.ts.map +1 -1
  528. package/dist/shared/contracts/admin.d.ts +1 -1
  529. package/dist/shared/contracts/api-token.d.ts +1 -1
  530. package/dist/shared/contracts/authentication.d.ts +2 -2
  531. package/dist/shared/contracts/content-api.d.ts +2 -2
  532. package/dist/shared/contracts/content-types.d.ts +1 -1
  533. package/dist/shared/contracts/homepage.d.ts +2 -2
  534. package/dist/shared/contracts/permissions.d.ts +1 -1
  535. package/dist/shared/contracts/roles.d.ts +2 -2
  536. package/dist/shared/contracts/shared.d.ts +1 -1
  537. package/dist/shared/contracts/user.d.ts +2 -2
  538. package/dist/shared/contracts/users.d.ts +2 -2
  539. package/dist/shared/contracts/webhooks.d.ts +1 -1
  540. package/package.json +18 -15
  541. package/dist/admin/AdminSeatInfo-Bpyschk4.mjs +0 -92
  542. package/dist/admin/AdminSeatInfo-Bpyschk4.mjs.map +0 -1
  543. package/dist/admin/AdminSeatInfo-DJY5XfV1.js +0 -96
  544. package/dist/admin/AdminSeatInfo-DJY5XfV1.js.map +0 -1
  545. package/dist/admin/ApplicationInfoPage-C5uFIQZ2.js +0 -673
  546. package/dist/admin/ApplicationInfoPage-C5uFIQZ2.js.map +0 -1
  547. package/dist/admin/ApplicationInfoPage-Y3MPY3-0.mjs +0 -646
  548. package/dist/admin/ApplicationInfoPage-Y3MPY3-0.mjs.map +0 -1
  549. package/dist/admin/AuthResponse-4S-gAOdq.js +0 -85
  550. package/dist/admin/AuthResponse-4S-gAOdq.js.map +0 -1
  551. package/dist/admin/AuthResponse-BI0D7fJC.mjs +0 -61
  552. package/dist/admin/AuthResponse-BI0D7fJC.mjs.map +0 -1
  553. package/dist/admin/AuthenticatedLayout-BGC6wyzT.js +0 -1198
  554. package/dist/admin/AuthenticatedLayout-BGC6wyzT.js.map +0 -1
  555. package/dist/admin/AuthenticatedLayout-CGVw08Na.mjs +0 -1166
  556. package/dist/admin/AuthenticatedLayout-CGVw08Na.mjs.map +0 -1
  557. package/dist/admin/CreateActionEE-CRTFGenF.js +0 -76
  558. package/dist/admin/CreateActionEE-CRTFGenF.js.map +0 -1
  559. package/dist/admin/CreateActionEE-JUvyeAny.mjs +0 -49
  560. package/dist/admin/CreateActionEE-JUvyeAny.mjs.map +0 -1
  561. package/dist/admin/CreatePage-C6UdEQOs.js +0 -268
  562. package/dist/admin/CreatePage-C6UdEQOs.js.map +0 -1
  563. package/dist/admin/CreatePage-CMkC5wC9.mjs +0 -242
  564. package/dist/admin/CreatePage-CMkC5wC9.mjs.map +0 -1
  565. package/dist/admin/CreatePage-CbJkyfCM.js +0 -18
  566. package/dist/admin/CreatePage-CbJkyfCM.js.map +0 -1
  567. package/dist/admin/CreatePage-Dqo3PXZo.mjs +0 -13
  568. package/dist/admin/CreatePage-Dqo3PXZo.mjs.map +0 -1
  569. package/dist/admin/CreateView-B39tI8E1.js +0 -17
  570. package/dist/admin/CreateView-B39tI8E1.js.map +0 -1
  571. package/dist/admin/CreateView-B8nJeYSW.mjs +0 -13
  572. package/dist/admin/CreateView-B8nJeYSW.mjs.map +0 -1
  573. package/dist/admin/CreateView-COaAIHM0.js +0 -17
  574. package/dist/admin/CreateView-COaAIHM0.js.map +0 -1
  575. package/dist/admin/CreateView-wxPZtkV-.mjs +0 -13
  576. package/dist/admin/CreateView-wxPZtkV-.mjs.map +0 -1
  577. package/dist/admin/EditPage-BBZ7R3in.js +0 -779
  578. package/dist/admin/EditPage-BBZ7R3in.js.map +0 -1
  579. package/dist/admin/EditPage-CJZEJoQP.mjs +0 -754
  580. package/dist/admin/EditPage-CJZEJoQP.mjs.map +0 -1
  581. package/dist/admin/EditPage-CSFYt_HC.js +0 -359
  582. package/dist/admin/EditPage-CSFYt_HC.js.map +0 -1
  583. package/dist/admin/EditPage-D-DXDPnf.mjs +0 -330
  584. package/dist/admin/EditPage-D-DXDPnf.mjs.map +0 -1
  585. package/dist/admin/EditPage-D69Hx_ec.js +0 -298
  586. package/dist/admin/EditPage-D69Hx_ec.js.map +0 -1
  587. package/dist/admin/EditPage-UHcIKlhQ.mjs +0 -272
  588. package/dist/admin/EditPage-UHcIKlhQ.mjs.map +0 -1
  589. package/dist/admin/EditView-ByMWzlex.mjs +0 -331
  590. package/dist/admin/EditView-ByMWzlex.mjs.map +0 -1
  591. package/dist/admin/EditView-DXCpjmO7.js +0 -357
  592. package/dist/admin/EditView-DXCpjmO7.js.map +0 -1
  593. package/dist/admin/EditViewPage-CQO7BSJW.mjs +0 -841
  594. package/dist/admin/EditViewPage-CQO7BSJW.mjs.map +0 -1
  595. package/dist/admin/EditViewPage-CtBSUjNT.js +0 -873
  596. package/dist/admin/EditViewPage-CtBSUjNT.js.map +0 -1
  597. package/dist/admin/EventsTable-DPG53ZH8.mjs +0 -32
  598. package/dist/admin/EventsTable-DPG53ZH8.mjs.map +0 -1
  599. package/dist/admin/EventsTable-DSxr3I2m.js +0 -36
  600. package/dist/admin/EventsTable-DSxr3I2m.js.map +0 -1
  601. package/dist/admin/HomePage-4Evpy8F1.js +0 -15
  602. package/dist/admin/HomePage-4Evpy8F1.js.map +0 -1
  603. package/dist/admin/HomePage-CysC5L5a.mjs +0 -351
  604. package/dist/admin/HomePage-CysC5L5a.mjs.map +0 -1
  605. package/dist/admin/HomePage-DPgihdwp.mjs +0 -11
  606. package/dist/admin/HomePage-DPgihdwp.mjs.map +0 -1
  607. package/dist/admin/HomePage-kmMq4BVh.js +0 -376
  608. package/dist/admin/HomePage-kmMq4BVh.js.map +0 -1
  609. package/dist/admin/InstalledPlugins-BISfAqYE.mjs +0 -95
  610. package/dist/admin/InstalledPlugins-BISfAqYE.mjs.map +0 -1
  611. package/dist/admin/InstalledPlugins-CZ0iNNcI.js +0 -120
  612. package/dist/admin/InstalledPlugins-CZ0iNNcI.js.map +0 -1
  613. package/dist/admin/Layout-BVOfyAt_.js +0 -242
  614. package/dist/admin/Layout-BVOfyAt_.js.map +0 -1
  615. package/dist/admin/Layout-DQ36VXiH.mjs +0 -215
  616. package/dist/admin/Layout-DQ36VXiH.mjs.map +0 -1
  617. package/dist/admin/ListPage-BLWQxrOV.js +0 -581
  618. package/dist/admin/ListPage-BLWQxrOV.js.map +0 -1
  619. package/dist/admin/ListPage-BOoH_oks.mjs +0 -11
  620. package/dist/admin/ListPage-BOoH_oks.mjs.map +0 -1
  621. package/dist/admin/ListPage-BuglugGG.js +0 -296
  622. package/dist/admin/ListPage-BuglugGG.js.map +0 -1
  623. package/dist/admin/ListPage-C8ITVaku.mjs +0 -553
  624. package/dist/admin/ListPage-C8ITVaku.mjs.map +0 -1
  625. package/dist/admin/ListPage-D5Pr3mIA.js +0 -15
  626. package/dist/admin/ListPage-D5Pr3mIA.js.map +0 -1
  627. package/dist/admin/ListPage-D7Qlkk9D.mjs +0 -271
  628. package/dist/admin/ListPage-D7Qlkk9D.mjs.map +0 -1
  629. package/dist/admin/ListPage-DDML0hej.mjs +0 -355
  630. package/dist/admin/ListPage-DDML0hej.mjs.map +0 -1
  631. package/dist/admin/ListPage-DWol3DVZ.mjs +0 -477
  632. package/dist/admin/ListPage-DWol3DVZ.mjs.map +0 -1
  633. package/dist/admin/ListPage-Db_wvfYm.js +0 -380
  634. package/dist/admin/ListPage-Db_wvfYm.js.map +0 -1
  635. package/dist/admin/ListPage-DysJaP5_.js +0 -505
  636. package/dist/admin/ListPage-DysJaP5_.js.map +0 -1
  637. package/dist/admin/ListView-BNaDzPLr.mjs +0 -211
  638. package/dist/admin/ListView-BNaDzPLr.mjs.map +0 -1
  639. package/dist/admin/ListView-BdD6RHIQ.js +0 -226
  640. package/dist/admin/ListView-BdD6RHIQ.js.map +0 -1
  641. package/dist/admin/ListView-CBYpU5Jy.js +0 -237
  642. package/dist/admin/ListView-CBYpU5Jy.js.map +0 -1
  643. package/dist/admin/ListView-DBC2WBLc.mjs +0 -200
  644. package/dist/admin/ListView-DBC2WBLc.mjs.map +0 -1
  645. package/dist/admin/Login-BTE_Cz9k.mjs +0 -31
  646. package/dist/admin/Login-BTE_Cz9k.mjs.map +0 -1
  647. package/dist/admin/Login-Dtjgq7f1.js +0 -35
  648. package/dist/admin/Login-Dtjgq7f1.js.map +0 -1
  649. package/dist/admin/MagicLinkEE-CtnFDrz0.mjs +0 -27
  650. package/dist/admin/MagicLinkEE-CtnFDrz0.mjs.map +0 -1
  651. package/dist/admin/MagicLinkEE-Pn36r5si.js +0 -31
  652. package/dist/admin/MagicLinkEE-Pn36r5si.js.map +0 -1
  653. package/dist/admin/MarketplacePage-CJLsg0_U.js +0 -1008
  654. package/dist/admin/MarketplacePage-CJLsg0_U.js.map +0 -1
  655. package/dist/admin/MarketplacePage-CU7NpjXy.mjs +0 -978
  656. package/dist/admin/MarketplacePage-CU7NpjXy.mjs.map +0 -1
  657. package/dist/admin/ModalForm-B9SUkQ1l.mjs +0 -23
  658. package/dist/admin/ModalForm-B9SUkQ1l.mjs.map +0 -1
  659. package/dist/admin/ModalForm-DukjfMMw.js +0 -28
  660. package/dist/admin/ModalForm-DukjfMMw.js.map +0 -1
  661. package/dist/admin/Ornaments-BFThxr2U.mjs +0 -209
  662. package/dist/admin/Ornaments-BFThxr2U.mjs.map +0 -1
  663. package/dist/admin/Ornaments-CID1aaLv.js +0 -214
  664. package/dist/admin/Ornaments-CID1aaLv.js.map +0 -1
  665. package/dist/admin/Permissions-Cmimrby0.js +0 -2063
  666. package/dist/admin/Permissions-Cmimrby0.js.map +0 -1
  667. package/dist/admin/Permissions-gB8QZDch.mjs +0 -2027
  668. package/dist/admin/Permissions-gB8QZDch.mjs.map +0 -1
  669. package/dist/admin/PrivateRoute-DIxYvSni.mjs +0 -20
  670. package/dist/admin/PrivateRoute-DIxYvSni.mjs.map +0 -1
  671. package/dist/admin/PrivateRoute-qahg_uiu.js +0 -22
  672. package/dist/admin/PrivateRoute-qahg_uiu.js.map +0 -1
  673. package/dist/admin/ProfilePage-B04OT5Fd.js +0 -415
  674. package/dist/admin/ProfilePage-B04OT5Fd.js.map +0 -1
  675. package/dist/admin/ProfilePage-CQG9YVzy.mjs +0 -387
  676. package/dist/admin/ProfilePage-CQG9YVzy.mjs.map +0 -1
  677. package/dist/admin/PurchaseAuditLogs-DXQrXdue.js +0 -53
  678. package/dist/admin/PurchaseAuditLogs-DXQrXdue.js.map +0 -1
  679. package/dist/admin/PurchaseAuditLogs-DjHXN1Tz.mjs +0 -49
  680. package/dist/admin/PurchaseAuditLogs-DjHXN1Tz.mjs.map +0 -1
  681. package/dist/admin/PurchaseContentHistory-DU8CdwGr.mjs +0 -52
  682. package/dist/admin/PurchaseContentHistory-DU8CdwGr.mjs.map +0 -1
  683. package/dist/admin/PurchaseContentHistory-jwPqZsuh.js +0 -56
  684. package/dist/admin/PurchaseContentHistory-jwPqZsuh.js.map +0 -1
  685. package/dist/admin/PurchaseSingleSignOn-CH-Lyjo5.js +0 -56
  686. package/dist/admin/PurchaseSingleSignOn-CH-Lyjo5.js.map +0 -1
  687. package/dist/admin/PurchaseSingleSignOn-DGbdGoUi.mjs +0 -52
  688. package/dist/admin/PurchaseSingleSignOn-DGbdGoUi.mjs.map +0 -1
  689. package/dist/admin/RelativeTime-BGJ1PWx_.mjs +0 -38
  690. package/dist/admin/RelativeTime-BGJ1PWx_.mjs.map +0 -1
  691. package/dist/admin/RelativeTime-DPLD3wf-.js +0 -60
  692. package/dist/admin/RelativeTime-DPLD3wf-.js.map +0 -1
  693. package/dist/admin/SSOProviders-BD7LHrkI.mjs +0 -58
  694. package/dist/admin/SSOProviders-BD7LHrkI.mjs.map +0 -1
  695. package/dist/admin/SSOProviders-nCeEldEQ.js +0 -60
  696. package/dist/admin/SSOProviders-nCeEldEQ.js.map +0 -1
  697. package/dist/admin/SelectRoles-CntZtdE0.js +0 -115
  698. package/dist/admin/SelectRoles-CntZtdE0.js.map +0 -1
  699. package/dist/admin/SelectRoles-pO8L3L4W.mjs +0 -111
  700. package/dist/admin/SelectRoles-pO8L3L4W.mjs.map +0 -1
  701. package/dist/admin/SingleSignOnPage-BTbCQg8m.js +0 -264
  702. package/dist/admin/SingleSignOnPage-BTbCQg8m.js.map +0 -1
  703. package/dist/admin/SingleSignOnPage-pdSopNwV.mjs +0 -239
  704. package/dist/admin/SingleSignOnPage-pdSopNwV.mjs.map +0 -1
  705. package/dist/admin/Table-Bnd3rC9d.mjs +0 -145
  706. package/dist/admin/Table-Bnd3rC9d.mjs.map +0 -1
  707. package/dist/admin/Table-DC1N5uDu.js +0 -147
  708. package/dist/admin/Table-DC1N5uDu.js.map +0 -1
  709. package/dist/admin/Theme-CTMU9Z8I.mjs +0 -1434
  710. package/dist/admin/Theme-CTMU9Z8I.mjs.map +0 -1
  711. package/dist/admin/Theme-DWGZX5tv.js +0 -1513
  712. package/dist/admin/Theme-DWGZX5tv.js.map +0 -1
  713. package/dist/admin/TokenTypeSelect-CfyMCrlm.mjs +0 -374
  714. package/dist/admin/TokenTypeSelect-CfyMCrlm.mjs.map +0 -1
  715. package/dist/admin/TokenTypeSelect-Db3aYBYl.js +0 -402
  716. package/dist/admin/TokenTypeSelect-Db3aYBYl.js.map +0 -1
  717. package/dist/admin/UseCasePage-BZYK5NSZ.js +0 -161
  718. package/dist/admin/UseCasePage-BZYK5NSZ.js.map +0 -1
  719. package/dist/admin/UseCasePage-DNAHJWv5.mjs +0 -135
  720. package/dist/admin/UseCasePage-DNAHJWv5.mjs.map +0 -1
  721. package/dist/admin/admin-DOzK8yjX.mjs +0 -322
  722. package/dist/admin/admin-DOzK8yjX.mjs.map +0 -1
  723. package/dist/admin/admin-DRnq5SAg.js +0 -343
  724. package/dist/admin/admin-DRnq5SAg.js.map +0 -1
  725. package/dist/admin/apiTokens-ByCd8ZnO.mjs +0 -57
  726. package/dist/admin/apiTokens-ByCd8ZnO.mjs.map +0 -1
  727. package/dist/admin/apiTokens-rbJHW5Y2.js +0 -63
  728. package/dist/admin/apiTokens-rbJHW5Y2.js.map +0 -1
  729. package/dist/admin/ar-B4qxeRNq.mjs +0 -832
  730. package/dist/admin/ar-CzJtN9ZR.js +0 -853
  731. package/dist/admin/ca-BQmZwkyJ.js +0 -538
  732. package/dist/admin/ca-BQmZwkyJ.js.map +0 -1
  733. package/dist/admin/ca-CNWrv4Mk.mjs +0 -520
  734. package/dist/admin/constants-CRj0ViV1.mjs +0 -5
  735. package/dist/admin/constants-CRj0ViV1.mjs.map +0 -1
  736. package/dist/admin/constants-DF68OPrs.js +0 -8
  737. package/dist/admin/constants-DF68OPrs.js.map +0 -1
  738. package/dist/admin/constants-DJL6QsIz.js +0 -55
  739. package/dist/admin/constants-DJL6QsIz.js.map +0 -1
  740. package/dist/admin/constants-Dxi38yo0.mjs +0 -51
  741. package/dist/admin/constants-Dxi38yo0.mjs.map +0 -1
  742. package/dist/admin/cs-DeS9DzIq.js +0 -179
  743. package/dist/admin/cs-DrRkodPD.mjs +0 -166
  744. package/dist/admin/de-CxVS71Os.js +0 -532
  745. package/dist/admin/de-D0NA2abW.mjs +0 -514
  746. package/dist/admin/dk-B-52bH2A.js +0 -452
  747. package/dist/admin/dk-BhJUQEKK.mjs +0 -434
  748. package/dist/admin/en-GB-BHA-Obg7.js +0 -10
  749. package/dist/admin/en-GB-BHA-Obg7.js.map +0 -1
  750. package/dist/admin/en-GB-ohKGx5-8.mjs +0 -6
  751. package/dist/admin/en-GB-ohKGx5-8.mjs.map +0 -1
  752. package/dist/admin/en-HhkCMXdW.mjs +0 -782
  753. package/dist/admin/en-aGYWBxXH.js +0 -804
  754. package/dist/admin/es-D3FlHFx3.js +0 -622
  755. package/dist/admin/es-YUiY80mn.mjs +0 -602
  756. package/dist/admin/eu-DIDTb1Xq.js +0 -645
  757. package/dist/admin/eu-DIDTb1Xq.js.map +0 -1
  758. package/dist/admin/eu-wKHkhamJ.mjs +0 -625
  759. package/dist/admin/fr-CQtzdQWu.mjs +0 -581
  760. package/dist/admin/fr-DrIHgYTT.js +0 -603
  761. package/dist/admin/gu-CSS25C49.mjs +0 -429
  762. package/dist/admin/gu-Hc5YzUuw.js +0 -438
  763. package/dist/admin/he-CR3FKaSH.mjs +0 -315
  764. package/dist/admin/he-jthbtjhf.js +0 -329
  765. package/dist/admin/he-jthbtjhf.js.map +0 -1
  766. package/dist/admin/hi-CRUIUVKR.mjs +0 -519
  767. package/dist/admin/hi-Dd3AL7Vo.js +0 -537
  768. package/dist/admin/hi-Dd3AL7Vo.js.map +0 -1
  769. package/dist/admin/hu-BqsNBMOK.mjs +0 -625
  770. package/dist/admin/hu-Dy6tJonx.js +0 -645
  771. package/dist/admin/hu-Dy6tJonx.js.map +0 -1
  772. package/dist/admin/id-BX77nhRG.js +0 -303
  773. package/dist/admin/id-cH3Ovozx.mjs +0 -290
  774. package/dist/admin/index-BSJxpmc1.mjs +0 -5391
  775. package/dist/admin/index-BSJxpmc1.mjs.map +0 -1
  776. package/dist/admin/index-CydVsgIb.js +0 -5465
  777. package/dist/admin/index-CydVsgIb.js.map +0 -1
  778. package/dist/admin/it-BFsCRAiv.js +0 -312
  779. package/dist/admin/it-D236xPzE.mjs +0 -299
  780. package/dist/admin/ja-CD7DxKrd.mjs +0 -434
  781. package/dist/admin/ja-DeeXToB8.js +0 -452
  782. package/dist/admin/ko-CgT83B4e.mjs +0 -433
  783. package/dist/admin/ko-DQ16dRok.js +0 -451
  784. package/dist/admin/ml-BJMvJbX5.mjs +0 -519
  785. package/dist/admin/ml-D3lcQ9Qh.js +0 -537
  786. package/dist/admin/ms-C-JB0-h1.js +0 -213
  787. package/dist/admin/ms-eMDSLvhl.mjs +0 -200
  788. package/dist/admin/nl-CKIw7654.mjs +0 -621
  789. package/dist/admin/nl-DN7knmKC.js +0 -641
  790. package/dist/admin/no-B9qB0rWa.js +0 -313
  791. package/dist/admin/no-D6CAWjEU.mjs +0 -300
  792. package/dist/admin/pl-CdJxEUSA.js +0 -537
  793. package/dist/admin/pl-jPMrmdJq.mjs +0 -519
  794. package/dist/admin/pt-8dwKSOn3.mjs +0 -200
  795. package/dist/admin/pt-BR-DBqyMlGp.js +0 -608
  796. package/dist/admin/pt-BR-THVjG5z2.mjs +0 -588
  797. package/dist/admin/pt-CEcd6cjN.js +0 -212
  798. package/dist/admin/ru-C34i9wJx.mjs +0 -745
  799. package/dist/admin/ru-Dwf09uUc.js +0 -766
  800. package/dist/admin/sa-B2zR89DH.mjs +0 -519
  801. package/dist/admin/sa-B2zR89DH.mjs.map +0 -1
  802. package/dist/admin/sa-DDD2kxvP.js +0 -537
  803. package/dist/admin/sa-DDD2kxvP.js.map +0 -1
  804. package/dist/admin/selectors-BZApelK9.mjs +0 -6
  805. package/dist/admin/selectors-BZApelK9.mjs.map +0 -1
  806. package/dist/admin/selectors-BhMLvxvP.js +0 -8
  807. package/dist/admin/selectors-BhMLvxvP.js.map +0 -1
  808. package/dist/admin/sk-CbJVofN-.js +0 -503
  809. package/dist/admin/sk-DQ2qpsG2.mjs +0 -483
  810. package/dist/admin/sv-BqRXfruc.js +0 -640
  811. package/dist/admin/sv-D0vPVUAT.mjs +0 -620
  812. package/dist/admin/th-BG3IOCqV.mjs +0 -284
  813. package/dist/admin/th-CPx6wf0M.js +0 -297
  814. package/dist/admin/tr-BmV7At9f.mjs +0 -581
  815. package/dist/admin/tr-D8gIyQxv.js +0 -601
  816. package/dist/admin/transferTokens-AcbwoJPr.js +0 -76
  817. package/dist/admin/transferTokens-AcbwoJPr.js.map +0 -1
  818. package/dist/admin/transferTokens-CQP13miB.mjs +0 -69
  819. package/dist/admin/transferTokens-CQP13miB.mjs.map +0 -1
  820. package/dist/admin/uk-DHmepDW6.js +0 -214
  821. package/dist/admin/uk-DHmepDW6.js.map +0 -1
  822. package/dist/admin/uk-Ud9QNfkB.mjs +0 -201
  823. package/dist/admin/useAdminRoles-BqgYzxQp.js +0 -50
  824. package/dist/admin/useAdminRoles-BqgYzxQp.js.map +0 -1
  825. package/dist/admin/useAdminRoles-pTnwwZSZ.mjs +0 -28
  826. package/dist/admin/useAdminRoles-pTnwwZSZ.mjs.map +0 -1
  827. package/dist/admin/useEnterprise-BGzVPL4w.mjs +0 -28
  828. package/dist/admin/useEnterprise-BGzVPL4w.mjs.map +0 -1
  829. package/dist/admin/useEnterprise-ijNnK53J.js +0 -50
  830. package/dist/admin/useEnterprise-ijNnK53J.js.map +0 -1
  831. package/dist/admin/useLicenseLimitNotification-CAQIrlP4.mjs +0 -80
  832. package/dist/admin/useLicenseLimitNotification-CAQIrlP4.mjs.map +0 -1
  833. package/dist/admin/useLicenseLimitNotification-bcc8RZRX.js +0 -105
  834. package/dist/admin/useLicenseLimitNotification-bcc8RZRX.js.map +0 -1
  835. package/dist/admin/useLicenseLimits-73hrs_pV.js +0 -45
  836. package/dist/admin/useLicenseLimits-73hrs_pV.js.map +0 -1
  837. package/dist/admin/useLicenseLimits-CcOoSJ8p.mjs +0 -23
  838. package/dist/admin/useLicenseLimits-CcOoSJ8p.mjs.map +0 -1
  839. package/dist/admin/useOnce-C7EQufL3.js +0 -29
  840. package/dist/admin/useOnce-C7EQufL3.js.map +0 -1
  841. package/dist/admin/useOnce-NHeEacbN.mjs +0 -7
  842. package/dist/admin/useOnce-NHeEacbN.mjs.map +0 -1
  843. package/dist/admin/useWebhooks-PMmtSF2F.mjs +0 -93
  844. package/dist/admin/useWebhooks-PMmtSF2F.mjs.map +0 -1
  845. package/dist/admin/useWebhooks-oYy_qRlY.js +0 -95
  846. package/dist/admin/useWebhooks-oYy_qRlY.js.map +0 -1
  847. package/dist/admin/users-8N93LH7R.mjs +0 -30
  848. package/dist/admin/users-8N93LH7R.mjs.map +0 -1
  849. package/dist/admin/users-DaPfjlwf.js +0 -33
  850. package/dist/admin/users-DaPfjlwf.js.map +0 -1
  851. package/dist/admin/validation-BUsrO5hO.mjs +0 -43
  852. package/dist/admin/validation-BUsrO5hO.mjs.map +0 -1
  853. package/dist/admin/validation-B_Ec3vES.js +0 -65
  854. package/dist/admin/validation-B_Ec3vES.js.map +0 -1
  855. package/dist/admin/vi-CGrr4ioy.mjs +0 -187
  856. package/dist/admin/vi-UeRpPdvI.js +0 -200
  857. package/dist/admin/zh-AMwNTzOa.js +0 -642
  858. package/dist/admin/zh-DtDdEUIE.mjs +0 -622
  859. package/dist/admin/zh-Hans-B34a3f93.js +0 -737
  860. package/dist/admin/zh-Hans-DrZal35c.mjs +0 -716
  861. package/dist/package.json.d.ts +0 -193
@@ -0,0 +1,2264 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Flex, Box, Checkbox, Typography, Button, Modal, Breadcrumbs, Crumb, MultiSelectNested, Accordion, Grid, Tabs } from '@strapi/design-system';
4
+ import { produce } from 'immer';
5
+ import cloneDeep from 'lodash/cloneDeep';
6
+ import get from 'lodash/get';
7
+ import has from 'lodash/has';
8
+ import isEmpty from 'lodash/isEmpty';
9
+ import set from 'lodash/set';
10
+ import { useIntl } from 'react-intl';
11
+ import { y as isObject$1, x as capitalise } from './Theme-CDaBfQ-7.mjs';
12
+ import { createContext } from '@radix-ui/react-context';
13
+ import isEqual from 'lodash/isEqual';
14
+ import isObject from 'lodash/isObject';
15
+ import transform from 'lodash/transform';
16
+ import merge from 'lodash/merge';
17
+ import groupBy from 'lodash/groupBy';
18
+ import omit from 'lodash/omit';
19
+ import { CaretDown, Cog, ChevronUp, ChevronDown } from '@strapi/icons';
20
+ import { styled, css } from 'styled-components';
21
+ import upperFirst from 'lodash/upperFirst';
22
+
23
+ const [PermissionsDataManagerProvider, usePermissionsDataManagerContext] = createContext('PermissionsDataManager');
24
+ const usePermissionsDataManager = ()=>usePermissionsDataManagerContext('usePermissionsDataManager');
25
+
26
+ function difference(object, base) {
27
+ function changes(object, base) {
28
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
+ return transform(object, (result, value, key)=>{
30
+ if (!isEqual(value, base[key])) {
31
+ result[key] = isObject(value) && isObject(base[key]) ? changes(value, base[key]) : value;
32
+ }
33
+ return result;
34
+ });
35
+ }
36
+ return changes(object, base);
37
+ }
38
+
39
+ /**
40
+ * @internal
41
+ * @description Mutates a value to be a union of flat values, no arrays allowed.
42
+ */ /**
43
+ * @internal
44
+ *
45
+ * @description Flattens an array recursively.
46
+ */ const flattenDeep = (array)=>{
47
+ if (Array.isArray(array)) {
48
+ return array.reduce((acc, value)=>{
49
+ if (Array.isArray(value)) {
50
+ acc.push(...flattenDeep(value));
51
+ } else {
52
+ acc.push(value);
53
+ }
54
+ return acc;
55
+ }, []);
56
+ } else {
57
+ return [];
58
+ }
59
+ };
60
+
61
+ const createArrayOfValues = (obj)=>{
62
+ if (!isObject$1(obj)) {
63
+ return [];
64
+ }
65
+ return flattenDeep(Object.values(obj).map((value)=>{
66
+ if (isObject$1(value)) {
67
+ return createArrayOfValues(value);
68
+ }
69
+ return value;
70
+ }));
71
+ };
72
+
73
+ /**
74
+ * @description Given a users permissions array we find the first one that matches a provided subject & action
75
+ */ const findMatchingPermission = (permissions, action, subject)=>permissions.find((perm)=>perm.action === action && perm.subject === subject);
76
+ const formatPermissionsForAPI = (modifiedData)=>{
77
+ const pluginsPermissions = formatSettingsPermissions(modifiedData.plugins);
78
+ const settingsPermissions = formatSettingsPermissions(modifiedData.settings);
79
+ const collectionTypesPermissions = formatContentTypesPermissions(modifiedData.collectionTypes);
80
+ const singleTypesPermissions = formatContentTypesPermissions(modifiedData.singleTypes);
81
+ return [
82
+ ...pluginsPermissions,
83
+ ...settingsPermissions,
84
+ ...collectionTypesPermissions,
85
+ ...singleTypesPermissions
86
+ ];
87
+ };
88
+ const formatSettingsPermissions = (settingsPermissionsObject)=>{
89
+ return Object.values(settingsPermissionsObject).reduce((formAcc, form)=>{
90
+ const currentCategoryPermissions = Object.values(form).reduce((childFormAcc, childForm)=>{
91
+ const permissions = Object.entries(childForm).reduce((responsesAcc, [actionName, { conditions, properties: { enabled } }])=>{
92
+ if (!enabled) {
93
+ return responsesAcc;
94
+ }
95
+ responsesAcc.push({
96
+ action: actionName,
97
+ subject: null,
98
+ conditions: createConditionsArray(conditions),
99
+ properties: {}
100
+ });
101
+ return responsesAcc;
102
+ }, []);
103
+ return [
104
+ ...childFormAcc,
105
+ ...permissions
106
+ ];
107
+ }, []);
108
+ return [
109
+ ...formAcc,
110
+ ...currentCategoryPermissions
111
+ ];
112
+ }, []);
113
+ };
114
+ const formatContentTypesPermissions = (contentTypesPermissions)=>{
115
+ const permissions = Object.entries(contentTypesPermissions).reduce((allPermissions, current)=>{
116
+ const [subject, currentSubjectActions] = current;
117
+ const permissions = Object.entries(currentSubjectActions).reduce((acc, current)=>{
118
+ const [actionName, permissions] = current;
119
+ const shouldCreatePermission = createArrayOfValues(permissions).some((val)=>val);
120
+ if (!shouldCreatePermission) {
121
+ return acc;
122
+ }
123
+ if (!permissions?.properties?.enabled) {
124
+ const createdPermissionsArray = Object.entries(permissions.properties).reduce((acc, current)=>{
125
+ const [propertyName, propertyValue] = current;
126
+ // @ts-expect-error – `propertyValue` can be boolean or an object, but we don't account for it...
127
+ acc.properties[propertyName] = createPropertyArray(propertyValue);
128
+ return acc;
129
+ }, {
130
+ action: actionName,
131
+ subject,
132
+ conditions: createConditionsArray(permissions.conditions),
133
+ properties: {}
134
+ });
135
+ return [
136
+ ...acc,
137
+ createdPermissionsArray
138
+ ];
139
+ }
140
+ if (!permissions.properties.enabled) {
141
+ return acc;
142
+ }
143
+ acc.push({
144
+ action: actionName,
145
+ subject,
146
+ properties: {},
147
+ conditions: createConditionsArray(permissions.conditions)
148
+ });
149
+ return acc;
150
+ }, []);
151
+ return [
152
+ ...allPermissions,
153
+ ...permissions
154
+ ];
155
+ }, []);
156
+ return permissions;
157
+ };
158
+ const createPropertyArray = (propertyValue, prefix = '')=>{
159
+ return Object.entries(propertyValue).reduce((acc, current)=>{
160
+ const [name, value] = current;
161
+ if (isObject$1(value)) {
162
+ return [
163
+ ...acc,
164
+ ...createPropertyArray(value, `${prefix}${name}.`)
165
+ ];
166
+ }
167
+ if (value && !isObject$1(value)) {
168
+ acc.push(`${prefix}${name}`);
169
+ }
170
+ return acc;
171
+ }, []);
172
+ };
173
+ const createConditionsArray = (conditions)=>Object.entries(conditions).filter(([, conditionValue])=>{
174
+ return conditionValue;
175
+ }).map(([conditionName])=>conditionName);
176
+
177
+ /**
178
+ * Creates the default condition form: { [conditionId]: false }
179
+ */ const createDefaultConditionsForm$1 = (conditions, initialConditions = [])=>conditions.reduce((acc, current)=>{
180
+ acc[current.id] = initialConditions.indexOf(current.id) !== -1;
181
+ return acc;
182
+ }, {});
183
+ const createDefaultForm = (layout, conditions, initialPermissions = [])=>{
184
+ return layout.reduce((acc, { categoryId, childrenForm })=>{
185
+ const childrenDefaultForm = childrenForm.reduce((acc, current)=>{
186
+ acc[current.subCategoryId] = current.actions.reduce((acc, current)=>{
187
+ const foundMatchingPermission = findMatchingPermission(initialPermissions, current.action, null);
188
+ acc[current.action] = {
189
+ properties: {
190
+ enabled: foundMatchingPermission !== undefined
191
+ },
192
+ conditions: createDefaultConditionsForm$1(conditions, foundMatchingPermission?.conditions ?? [])
193
+ };
194
+ return acc;
195
+ }, {});
196
+ return acc;
197
+ }, {});
198
+ acc[categoryId] = childrenDefaultForm;
199
+ return acc;
200
+ }, {});
201
+ };
202
+ /**
203
+ * Creates the default form for all the properties found in a content type's layout
204
+ */ const createDefaultPropertiesForm = (properties, subject, matchingPermission)=>{
205
+ const recursivelyCreatePropertyForm = ({ children = [] }, propertyValues, prefix = '')=>{
206
+ return children.reduce((acc, current)=>{
207
+ if (current.children) {
208
+ return {
209
+ ...acc,
210
+ [current.value]: recursivelyCreatePropertyForm(current, propertyValues, `${prefix}${current.value}.`)
211
+ };
212
+ }
213
+ const hasProperty = propertyValues.indexOf(`${prefix}${current.value}`) !== -1;
214
+ acc[current.value] = hasProperty;
215
+ return acc;
216
+ }, {});
217
+ };
218
+ return properties.reduce((acc, currentPropertyName)=>{
219
+ const foundProperty = subject.properties.find(({ value })=>value === currentPropertyName);
220
+ if (foundProperty) {
221
+ const matchingPermissionPropertyValues = matchingPermission?.properties[foundProperty.value] ?? [];
222
+ const propertyForm = recursivelyCreatePropertyForm(foundProperty, matchingPermissionPropertyValues);
223
+ acc.properties[currentPropertyName] = propertyForm;
224
+ }
225
+ return acc;
226
+ }, {
227
+ properties: {}
228
+ });
229
+ };
230
+ /**
231
+ * Creates the default for for a content type
232
+ */ const createDefaultCTForm = ({ subjects, actions = [] }, conditions, initialPermissions = [])=>{
233
+ return actions.reduce((defaultForm, action)=>{
234
+ const subjectLayouts = action.subjects.reduce((acc, current)=>{
235
+ const foundLayout = subjects.find(({ uid })=>uid === current) || null;
236
+ if (foundLayout) {
237
+ acc[current] = foundLayout;
238
+ }
239
+ return acc;
240
+ }, {});
241
+ // This can happen when an action is not related to a content type
242
+ // for instance the D&P permission is applied only with the cts that
243
+ // have the D&P features enabled
244
+ if (isEmpty(subjectLayouts)) {
245
+ return defaultForm;
246
+ }
247
+ // The object has the following shape: { [ctUID]: { [actionId]: { [property]: { enabled: false } } } }
248
+ const contentTypesActions = Object.keys(subjectLayouts).reduce((acc, currentCTUID)=>{
249
+ const { actionId, applyToProperties } = action;
250
+ const currentSubjectLayout = subjectLayouts[currentCTUID];
251
+ const properties = currentSubjectLayout.properties.map(({ value })=>value);
252
+ const doesNothaveProperty = properties.every((property)=>(applyToProperties || []).indexOf(property) === -1);
253
+ const matchingPermission = findMatchingPermission(initialPermissions, actionId, currentCTUID);
254
+ const conditionsForm = createDefaultConditionsForm$1(conditions, matchingPermission?.conditions ?? []);
255
+ if (!acc[currentCTUID]) {
256
+ acc[currentCTUID] = {};
257
+ }
258
+ if (isEmpty(applyToProperties) || doesNothaveProperty) {
259
+ acc[currentCTUID][actionId] = {
260
+ properties: {
261
+ enabled: matchingPermission !== undefined
262
+ },
263
+ conditions: conditionsForm
264
+ };
265
+ return acc;
266
+ }
267
+ const propertiesForm = createDefaultPropertiesForm(applyToProperties, subjectLayouts[currentCTUID], matchingPermission);
268
+ acc[currentCTUID][actionId] = {
269
+ ...propertiesForm,
270
+ conditions: conditionsForm
271
+ };
272
+ return acc;
273
+ }, {});
274
+ return merge(defaultForm, contentTypesActions);
275
+ }, {});
276
+ };
277
+
278
+ const formatLayout = (layout, groupByKey)=>{
279
+ return Object.entries(groupBy(layout, groupByKey)).map(([itemName, item])=>({
280
+ category: itemName,
281
+ categoryId: itemName.split(' ').join('-'),
282
+ childrenForm: Object.entries(groupBy(item, 'subCategory')).map(([subCategoryName, actions])=>({
283
+ subCategoryName,
284
+ subCategoryId: subCategoryName.split(' ').join('-'),
285
+ actions
286
+ }))
287
+ }));
288
+ };
289
+
290
+ /**
291
+ * Changes all the conditions leaf when the properties are all falsy
292
+ */ const updateConditionsToFalse = (obj)=>{
293
+ return Object.keys(obj).reduce((acc, current)=>{
294
+ // @ts-expect-error – TODO: type better
295
+ const currentValue = obj[current];
296
+ if (isObject$1(currentValue) && !has(currentValue, 'conditions')) {
297
+ return {
298
+ ...acc,
299
+ [current]: updateConditionsToFalse(currentValue)
300
+ };
301
+ }
302
+ if (isObject$1(currentValue) && has(currentValue, 'conditions')) {
303
+ const isActionEnabled = createArrayOfValues(omit(currentValue, 'conditions')).some((val)=>val);
304
+ if (!isActionEnabled) {
305
+ // @ts-expect-error – TODO: type better
306
+ const updatedConditions = Object.keys(currentValue.conditions).reduce((acc1, current)=>{
307
+ // @ts-expect-error – TODO: type better
308
+ acc1[current] = false;
309
+ return acc1;
310
+ }, {});
311
+ return {
312
+ ...acc,
313
+ [current]: {
314
+ ...currentValue,
315
+ conditions: updatedConditions
316
+ }
317
+ };
318
+ }
319
+ }
320
+ // @ts-expect-error – TODO: type better
321
+ acc[current] = currentValue;
322
+ return acc;
323
+ }, {});
324
+ };
325
+
326
+ /**
327
+ * Sets all the none object values of an object to the given one
328
+ * It preserves the shape of the object, it only modifies the leafs
329
+ * of an object.
330
+ * This utility is very helpful when dealing with parent<>children checkboxes
331
+ */ const updateValues = (obj, valueToSet, isFieldUpdate = false)=>{
332
+ return Object.keys(obj).reduce((acc, current)=>{
333
+ const currentValue = obj[current];
334
+ if (current === 'conditions' && !isFieldUpdate) {
335
+ // @ts-expect-error – TODO: type better
336
+ acc[current] = currentValue;
337
+ return acc;
338
+ }
339
+ if (isObject$1(currentValue)) {
340
+ return {
341
+ ...acc,
342
+ [current]: updateValues(currentValue, valueToSet, current === 'fields')
343
+ };
344
+ }
345
+ // @ts-expect-error – TODO: type better
346
+ acc[current] = valueToSet;
347
+ return acc;
348
+ }, {});
349
+ };
350
+
351
+ const cellWidth = `12rem`;
352
+ const firstRowWidth = `20rem`;
353
+ const rowHeight = `5.3rem`;
354
+
355
+ const removeConditionKeyFromData = (obj)=>{
356
+ if (!obj) {
357
+ return null;
358
+ }
359
+ return Object.entries(obj).reduce((acc, [key, value])=>{
360
+ if (key !== 'conditions') {
361
+ // @ts-expect-error – TODO: fix this type error correctly.
362
+ acc[key] = value;
363
+ }
364
+ return acc;
365
+ }, {});
366
+ };
367
+
368
+ const getCheckboxState = (dataObj)=>{
369
+ const dataWithoutCondition = removeConditionKeyFromData(dataObj);
370
+ const arrayOfValues = createArrayOfValues(dataWithoutCondition);
371
+ if (!arrayOfValues.length) {
372
+ return {
373
+ hasAllActionsSelected: false,
374
+ hasSomeActionsSelected: false
375
+ };
376
+ }
377
+ const hasAllActionsSelected = arrayOfValues.every((val)=>val);
378
+ const hasSomeActionsSelected = arrayOfValues.some((val)=>val) && !hasAllActionsSelected;
379
+ return {
380
+ hasAllActionsSelected,
381
+ hasSomeActionsSelected
382
+ };
383
+ };
384
+
385
+ const CollapseLabel = styled(Flex)`
386
+ padding-right: ${({ theme })=>theme.spaces[2]};
387
+ overflow: hidden;
388
+ flex: 1;
389
+ ${({ $isCollapsable })=>$isCollapsable && 'cursor: pointer;'}
390
+ `;
391
+
392
+ const HiddenAction = styled.div`
393
+ width: ${cellWidth};
394
+ `;
395
+
396
+ const RequiredSign = ()=>/*#__PURE__*/ jsx(Box, {
397
+ color: "danger700",
398
+ paddingLeft: 1,
399
+ children: "*"
400
+ });
401
+
402
+ const RowLabelWithCheckbox = ({ checkboxName = '', children, isActive = false, isCollapsable = false, isFormDisabled = false, label, onChange, onClick, someChecked = false, value })=>{
403
+ const { formatMessage } = useIntl();
404
+ const collapseLabelProps = {
405
+ title: label,
406
+ alignItems: 'center',
407
+ $isCollapsable: isCollapsable
408
+ };
409
+ if (isCollapsable) {
410
+ Object.assign(collapseLabelProps, {
411
+ onClick,
412
+ 'aria-expanded': isActive,
413
+ onKeyDown ({ key }) {
414
+ if (key === 'Enter' || key === ' ') {
415
+ onClick();
416
+ }
417
+ },
418
+ tabIndex: 0,
419
+ role: 'button'
420
+ });
421
+ }
422
+ return /*#__PURE__*/ jsxs(Flex, {
423
+ alignItems: "center",
424
+ paddingLeft: 6,
425
+ width: firstRowWidth,
426
+ shrink: 0,
427
+ children: [
428
+ /*#__PURE__*/ jsx(Box, {
429
+ paddingRight: 2,
430
+ children: /*#__PURE__*/ jsx(Checkbox, {
431
+ name: checkboxName,
432
+ "aria-label": formatMessage({
433
+ id: `Settings.permissions.select-all-by-permission`,
434
+ defaultMessage: 'Select all {label} permissions'
435
+ }, {
436
+ label
437
+ }),
438
+ disabled: isFormDisabled,
439
+ // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91
440
+ onCheckedChange: (value)=>onChange({
441
+ target: {
442
+ name: checkboxName,
443
+ value: !!value
444
+ }
445
+ }),
446
+ checked: someChecked ? 'indeterminate' : value
447
+ })
448
+ }),
449
+ /*#__PURE__*/ jsxs(CollapseLabel, {
450
+ ...collapseLabelProps,
451
+ children: [
452
+ /*#__PURE__*/ jsx(Typography, {
453
+ ellipsis: true,
454
+ children: label
455
+ }),
456
+ children
457
+ ]
458
+ })
459
+ ]
460
+ });
461
+ };
462
+
463
+ const CollapsePropertyMatrix = ({ availableActions = [], childrenForm = [], isFormDisabled, label, pathToData, propertyName })=>{
464
+ const propertyActions = React.useMemo(()=>availableActions.map((action)=>{
465
+ const isActionRelatedToCurrentProperty = Array.isArray(action.applyToProperties) && action.applyToProperties.indexOf(propertyName) !== -1 && action.isDisplayed;
466
+ return {
467
+ label: action.label,
468
+ actionId: action.actionId,
469
+ isActionRelatedToCurrentProperty
470
+ };
471
+ }), [
472
+ availableActions,
473
+ propertyName
474
+ ]);
475
+ return /*#__PURE__*/ jsxs(Flex, {
476
+ display: "inline-flex",
477
+ direction: "column",
478
+ alignItems: "stretch",
479
+ minWidth: 0,
480
+ children: [
481
+ /*#__PURE__*/ jsx(Header, {
482
+ label: label,
483
+ headers: propertyActions
484
+ }),
485
+ /*#__PURE__*/ jsx(Box, {
486
+ children: childrenForm.map(({ children: childrenForm, label, value, required }, i)=>/*#__PURE__*/ jsx(ActionRow$1, {
487
+ childrenForm: childrenForm,
488
+ label: label,
489
+ isFormDisabled: isFormDisabled,
490
+ name: value,
491
+ required: required,
492
+ propertyActions: propertyActions,
493
+ pathToData: pathToData,
494
+ propertyName: propertyName,
495
+ isOdd: i % 2 === 0
496
+ }, value))
497
+ })
498
+ ]
499
+ });
500
+ };
501
+ const ActionRow$1 = ({ childrenForm = [], label, isFormDisabled = false, name, required = false, pathToData, propertyActions, propertyName, isOdd = false })=>{
502
+ const { formatMessage } = useIntl();
503
+ const [rowToOpen, setRowToOpen] = React.useState(null);
504
+ const { modifiedData, onChangeCollectionTypeLeftActionRowCheckbox, onChangeParentCheckbox, onChangeSimpleCheckbox } = usePermissionsDataManager();
505
+ const isActive = rowToOpen === name;
506
+ const recursiveChildren = React.useMemo(()=>{
507
+ if (!Array.isArray(childrenForm)) {
508
+ return [];
509
+ }
510
+ return childrenForm;
511
+ }, [
512
+ childrenForm
513
+ ]);
514
+ const isCollapsable = recursiveChildren.length > 0;
515
+ const handleClick = React.useCallback(()=>{
516
+ if (isCollapsable) {
517
+ setRowToOpen((prev)=>{
518
+ if (prev === name) {
519
+ return null;
520
+ }
521
+ return name;
522
+ });
523
+ }
524
+ }, [
525
+ isCollapsable,
526
+ name
527
+ ]);
528
+ const handleChangeLeftRowCheckbox = ({ target: { value } })=>{
529
+ onChangeCollectionTypeLeftActionRowCheckbox(pathToData, propertyName, name, value);
530
+ };
531
+ const { hasAllActionsSelected, hasSomeActionsSelected } = React.useMemo(()=>{
532
+ return getRowLabelCheckboxState(propertyActions, modifiedData, pathToData, propertyName, name);
533
+ }, [
534
+ propertyActions,
535
+ modifiedData,
536
+ pathToData,
537
+ propertyName,
538
+ name
539
+ ]);
540
+ return /*#__PURE__*/ jsxs(Fragment, {
541
+ children: [
542
+ /*#__PURE__*/ jsx(Wrapper$1, {
543
+ alignItems: "center",
544
+ $isCollapsable: isCollapsable,
545
+ $isActive: isActive,
546
+ background: isOdd ? 'neutral100' : 'neutral0',
547
+ children: /*#__PURE__*/ jsxs(Flex, {
548
+ children: [
549
+ /*#__PURE__*/ jsxs(RowLabelWithCheckbox, {
550
+ onChange: handleChangeLeftRowCheckbox,
551
+ onClick: handleClick,
552
+ isCollapsable: isCollapsable,
553
+ isFormDisabled: isFormDisabled,
554
+ label: label,
555
+ someChecked: hasSomeActionsSelected,
556
+ value: hasAllActionsSelected,
557
+ isActive: isActive,
558
+ children: [
559
+ required && /*#__PURE__*/ jsx(RequiredSign, {}),
560
+ /*#__PURE__*/ jsx(CarretIcon, {
561
+ $isActive: isActive
562
+ })
563
+ ]
564
+ }),
565
+ /*#__PURE__*/ jsx(Flex, {
566
+ children: propertyActions.map(({ label, isActionRelatedToCurrentProperty, actionId })=>{
567
+ if (!isActionRelatedToCurrentProperty) {
568
+ return /*#__PURE__*/ jsx(HiddenAction, {}, label);
569
+ }
570
+ const checkboxName = [
571
+ ...pathToData.split('..'),
572
+ actionId,
573
+ 'properties',
574
+ propertyName,
575
+ name
576
+ ];
577
+ if (!isCollapsable) {
578
+ const checkboxValue = get(modifiedData, checkboxName, false);
579
+ return /*#__PURE__*/ jsx(Flex, {
580
+ width: cellWidth,
581
+ position: "relative",
582
+ justifyContent: "center",
583
+ alignItems: "center",
584
+ children: /*#__PURE__*/ jsx(Checkbox, {
585
+ disabled: isFormDisabled,
586
+ name: checkboxName.join('..'),
587
+ "aria-label": formatMessage({
588
+ id: `Settings.permissions.select-by-permission`,
589
+ defaultMessage: 'Select {label} permission'
590
+ }, {
591
+ label: `${name} ${label}`
592
+ }),
593
+ onCheckedChange: (value)=>{
594
+ onChangeSimpleCheckbox({
595
+ target: {
596
+ name: checkboxName.join('..'),
597
+ value: !!value
598
+ }
599
+ });
600
+ },
601
+ checked: checkboxValue
602
+ })
603
+ }, actionId);
604
+ }
605
+ const data = get(modifiedData, checkboxName, {});
606
+ const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(data);
607
+ return /*#__PURE__*/ jsx(Flex, {
608
+ width: cellWidth,
609
+ position: "relative",
610
+ justifyContent: "center",
611
+ alignItems: "center",
612
+ children: /*#__PURE__*/ jsx(Checkbox, {
613
+ disabled: isFormDisabled,
614
+ name: checkboxName.join('..'),
615
+ onCheckedChange: (value)=>{
616
+ onChangeParentCheckbox({
617
+ target: {
618
+ name: checkboxName.join('..'),
619
+ value: !!value
620
+ }
621
+ });
622
+ },
623
+ "aria-label": formatMessage({
624
+ id: `Settings.permissions.select-by-permission`,
625
+ defaultMessage: 'Select {label} permission'
626
+ }, {
627
+ label: `${name} ${label}`
628
+ }),
629
+ checked: hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected
630
+ })
631
+ }, label);
632
+ })
633
+ })
634
+ ]
635
+ })
636
+ }),
637
+ isActive && /*#__PURE__*/ jsx(SubActionRow, {
638
+ childrenForm: recursiveChildren,
639
+ isFormDisabled: isFormDisabled,
640
+ parentName: name,
641
+ pathToDataFromActionRow: pathToData,
642
+ propertyName: propertyName,
643
+ propertyActions: propertyActions,
644
+ recursiveLevel: 0
645
+ })
646
+ ]
647
+ });
648
+ };
649
+ /**
650
+ *
651
+ * Returns the state of the left checkbox of a ActionRow main checkbox
652
+ */ const getRowLabelCheckboxState = (propertyActions, modifiedData, pathToContentType, propertyToCheck, targetKey)=>{
653
+ const actionIds = propertyActions.reduce((acc, current)=>{
654
+ if (current.isActionRelatedToCurrentProperty) {
655
+ acc.push(current.actionId);
656
+ }
657
+ return acc;
658
+ }, []);
659
+ const data = actionIds.reduce((acc, current)=>{
660
+ const mainData = get(modifiedData, [
661
+ ...pathToContentType.split('..'),
662
+ current,
663
+ 'properties',
664
+ propertyToCheck,
665
+ targetKey
666
+ ], false);
667
+ acc[current] = mainData;
668
+ return acc;
669
+ }, {});
670
+ return getCheckboxState(data);
671
+ };
672
+ const Wrapper$1 = styled(Flex)`
673
+ height: ${rowHeight};
674
+ flex: 1;
675
+
676
+ &:hover {
677
+ ${({ $isCollapsable, theme })=>$isCollapsable && activeStyle(theme)}
678
+ }
679
+
680
+ ${({ $isCollapsable })=>$isCollapsable && `
681
+ ${CarretIcon} {
682
+ display: flex;
683
+ }
684
+ `}
685
+ ${({ $isActive, theme })=>$isActive && activeStyle(theme)};
686
+ `;
687
+ const CarretIcon = styled(CaretDown)`
688
+ display: none;
689
+
690
+ svg {
691
+ width: 1.4rem;
692
+ }
693
+
694
+ path {
695
+ fill: ${({ theme })=>theme.colors.neutral200};
696
+ }
697
+
698
+ transform: rotate(${({ $isActive })=>$isActive ? '180' : '0'}deg);
699
+ margin-left: ${({ theme })=>theme.spaces[2]};
700
+ `;
701
+ const SubActionRow = ({ childrenForm = [], isFormDisabled, recursiveLevel, pathToDataFromActionRow, propertyActions, parentName, propertyName })=>{
702
+ const { formatMessage } = useIntl();
703
+ const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } = usePermissionsDataManager();
704
+ const [rowToOpen, setRowToOpen] = React.useState(null);
705
+ const handleClickToggleSubLevel = (name)=>{
706
+ setRowToOpen((prev)=>{
707
+ if (prev === name) {
708
+ return null;
709
+ }
710
+ return name;
711
+ });
712
+ };
713
+ const displayedRecursiveChildren = React.useMemo(()=>{
714
+ if (!rowToOpen) {
715
+ return null;
716
+ }
717
+ return childrenForm.find(({ value })=>value === rowToOpen);
718
+ }, [
719
+ rowToOpen,
720
+ childrenForm
721
+ ]);
722
+ return /*#__PURE__*/ jsxs(Box, {
723
+ paddingLeft: `3.2rem`,
724
+ children: [
725
+ /*#__PURE__*/ jsx(TopTimeline, {}),
726
+ childrenForm.map(({ label, value, required, children: subChildrenForm }, index)=>{
727
+ const isVisible = index + 1 < childrenForm.length;
728
+ const isArrayType = Array.isArray(subChildrenForm);
729
+ const isActive = rowToOpen === value;
730
+ return /*#__PURE__*/ jsxs(LeftBorderTimeline, {
731
+ $isVisible: isVisible,
732
+ children: [
733
+ /*#__PURE__*/ jsxs(Flex, {
734
+ height: rowHeight,
735
+ children: [
736
+ /*#__PURE__*/ jsx(StyledBox, {
737
+ children: /*#__PURE__*/ jsx(Svg, {
738
+ width: "20",
739
+ height: "23",
740
+ viewBox: "0 0 20 23",
741
+ fill: "none",
742
+ xmlns: "http://www.w3.org/2000/svg",
743
+ $color: "primary200",
744
+ children: /*#__PURE__*/ jsx("path", {
745
+ fillRule: "evenodd",
746
+ clipRule: "evenodd",
747
+ 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",
748
+ fill: "#D9D8FF"
749
+ })
750
+ })
751
+ }),
752
+ /*#__PURE__*/ jsxs(Flex, {
753
+ style: {
754
+ flex: 1
755
+ },
756
+ children: [
757
+ /*#__PURE__*/ jsx(RowStyle, {
758
+ $level: recursiveLevel,
759
+ $isActive: isActive,
760
+ $isCollapsable: isArrayType,
761
+ children: /*#__PURE__*/ jsxs(CollapseLabel, {
762
+ alignItems: "center",
763
+ $isCollapsable: isArrayType,
764
+ ...isArrayType && {
765
+ onClick: ()=>handleClickToggleSubLevel(value),
766
+ 'aria-expanded': isActive,
767
+ onKeyDown: ({ key })=>(key === 'Enter' || key === ' ') && handleClickToggleSubLevel(value),
768
+ tabIndex: 0,
769
+ role: 'button'
770
+ },
771
+ title: label,
772
+ children: [
773
+ /*#__PURE__*/ jsx(RowLabel, {
774
+ ellipsis: true,
775
+ children: label
776
+ }),
777
+ required && /*#__PURE__*/ jsx(RequiredSign, {}),
778
+ /*#__PURE__*/ jsx(CarretIcon, {
779
+ $isActive: isActive
780
+ })
781
+ ]
782
+ })
783
+ }),
784
+ /*#__PURE__*/ jsx(Flex, {
785
+ style: {
786
+ flex: 1
787
+ },
788
+ children: propertyActions.map(({ actionId, label: propertyLabel, isActionRelatedToCurrentProperty })=>{
789
+ if (!isActionRelatedToCurrentProperty) {
790
+ return /*#__PURE__*/ jsx(HiddenAction, {}, actionId);
791
+ }
792
+ /*
793
+ * Usually we use a 'dot' in order to know the key path of an object for which we want to change the value.
794
+ * Since an action and a subject are both separated by '.' or '::' we chose to use the '..' separators
795
+ */ const checkboxName = [
796
+ ...pathToDataFromActionRow.split('..'),
797
+ actionId,
798
+ 'properties',
799
+ propertyName,
800
+ ...parentName.split('..'),
801
+ value
802
+ ];
803
+ const checkboxValue = get(modifiedData, checkboxName, false);
804
+ if (!subChildrenForm) {
805
+ return /*#__PURE__*/ jsx(Flex, {
806
+ position: "relative",
807
+ width: cellWidth,
808
+ justifyContent: "center",
809
+ alignItems: "center",
810
+ children: /*#__PURE__*/ jsx(Checkbox, {
811
+ disabled: isFormDisabled,
812
+ name: checkboxName.join('..'),
813
+ "aria-label": formatMessage({
814
+ id: `Settings.permissions.select-by-permission`,
815
+ defaultMessage: 'Select {label} permission'
816
+ }, {
817
+ label: `${parentName} ${label} ${propertyLabel}`
818
+ }),
819
+ onCheckedChange: (value)=>{
820
+ onChangeSimpleCheckbox({
821
+ target: {
822
+ name: checkboxName.join('..'),
823
+ value: !!value
824
+ }
825
+ });
826
+ },
827
+ checked: checkboxValue
828
+ })
829
+ }, propertyLabel);
830
+ }
831
+ const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(checkboxValue);
832
+ return /*#__PURE__*/ jsx(Flex, {
833
+ position: "relative",
834
+ width: cellWidth,
835
+ justifyContent: "center",
836
+ alignItems: "center",
837
+ children: /*#__PURE__*/ jsx(Checkbox, {
838
+ disabled: isFormDisabled,
839
+ name: checkboxName.join('..'),
840
+ "aria-label": formatMessage({
841
+ id: `Settings.permissions.select-by-permission`,
842
+ defaultMessage: 'Select {label} permission'
843
+ }, {
844
+ label: `${parentName} ${label} ${propertyLabel}`
845
+ }),
846
+ // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91
847
+ onCheckedChange: (value)=>{
848
+ onChangeParentCheckbox({
849
+ target: {
850
+ name: checkboxName.join('..'),
851
+ value: !!value
852
+ }
853
+ });
854
+ },
855
+ checked: hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected
856
+ }, propertyLabel)
857
+ }, propertyLabel);
858
+ })
859
+ })
860
+ ]
861
+ })
862
+ ]
863
+ }),
864
+ displayedRecursiveChildren && isActive && /*#__PURE__*/ jsx(Box, {
865
+ paddingBottom: 2,
866
+ children: /*#__PURE__*/ jsx(SubActionRow, {
867
+ isFormDisabled: isFormDisabled,
868
+ parentName: `${parentName}..${value}`,
869
+ pathToDataFromActionRow: pathToDataFromActionRow,
870
+ propertyActions: propertyActions,
871
+ propertyName: propertyName,
872
+ recursiveLevel: recursiveLevel + 1,
873
+ childrenForm: displayedRecursiveChildren.children
874
+ })
875
+ })
876
+ ]
877
+ }, value);
878
+ })
879
+ ]
880
+ });
881
+ };
882
+ const LeftBorderTimeline = styled(Box)`
883
+ border-left: ${({ $isVisible, theme })=>$isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};
884
+ `;
885
+ const RowStyle = styled(Flex)`
886
+ padding-left: ${({ theme })=>theme.spaces[4]};
887
+ width: ${({ $level })=>145 - $level * 36}px;
888
+
889
+ &:hover {
890
+ ${({ $isCollapsable, theme })=>$isCollapsable && activeStyle(theme)}
891
+ }
892
+
893
+ ${({ $isCollapsable })=>$isCollapsable && `
894
+ ${CarretIcon} {
895
+ display: flex;
896
+ }
897
+ `}
898
+ ${({ $isActive, theme })=>$isActive && activeStyle(theme)};
899
+ `;
900
+ const RowLabel = styled(Typography)``;
901
+ const TopTimeline = styled.div`
902
+ padding-top: ${({ theme })=>theme.spaces[2]};
903
+ margin-top: ${({ theme })=>theme.spaces[2]};
904
+ width: 0.4rem;
905
+ background-color: ${({ theme })=>theme.colors.primary200};
906
+ border-top-left-radius: 2px;
907
+ border-top-right-radius: 2px;
908
+ `;
909
+ const StyledBox = styled(Box)`
910
+ transform: translate(-4px, -12px);
911
+
912
+ &:before {
913
+ content: '';
914
+ width: 0.4rem;
915
+ height: 1.2rem;
916
+ background: ${({ theme })=>theme.colors.primary200};
917
+ display: block;
918
+ }
919
+ `;
920
+ const Svg = styled.svg`
921
+ position: relative;
922
+ flex-shrink: 0;
923
+ transform: translate(-0.5px, -1px);
924
+
925
+ * {
926
+ fill: ${({ theme, $color })=>theme.colors[$color]};
927
+ }
928
+ `;
929
+ const Header = ({ headers = [], label })=>{
930
+ const { formatMessage } = useIntl();
931
+ return /*#__PURE__*/ jsxs(Flex, {
932
+ children: [
933
+ /*#__PURE__*/ jsx(Flex, {
934
+ width: firstRowWidth,
935
+ height: rowHeight,
936
+ shrink: 0,
937
+ alignItems: "center",
938
+ paddingLeft: 6,
939
+ children: /*#__PURE__*/ jsx(Typography, {
940
+ variant: "sigma",
941
+ textColor: "neutral500",
942
+ children: formatMessage({
943
+ id: 'Settings.roles.form.permission.property-label',
944
+ defaultMessage: '{label} permissions'
945
+ }, {
946
+ label
947
+ })
948
+ })
949
+ }),
950
+ headers.map((header)=>{
951
+ if (!header.isActionRelatedToCurrentProperty) {
952
+ return /*#__PURE__*/ jsx(Flex, {
953
+ width: cellWidth,
954
+ shrink: 0
955
+ }, header.label);
956
+ }
957
+ return /*#__PURE__*/ jsx(Flex, {
958
+ width: cellWidth,
959
+ shrink: 0,
960
+ justifyContent: "center",
961
+ children: /*#__PURE__*/ jsx(Typography, {
962
+ variant: "sigma",
963
+ textColor: "neutral500",
964
+ children: formatMessage({
965
+ id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`,
966
+ defaultMessage: header.label
967
+ })
968
+ })
969
+ }, header.label);
970
+ })
971
+ ]
972
+ });
973
+ };
974
+ const activeStyle = (theme)=>css`
975
+ color: ${theme.colors.primary600};
976
+ font-weight: ${theme.fontWeights.bold};
977
+
978
+ ${CarretIcon} {
979
+ path {
980
+ fill: ${theme.colors.primary600};
981
+ }
982
+ }
983
+ `;
984
+
985
+ const ConditionsButtonImpl = /*#__PURE__*/ React.forwardRef(({ onClick, className, hasConditions = false, variant = 'tertiary' }, ref)=>{
986
+ const { formatMessage } = useIntl();
987
+ return /*#__PURE__*/ jsx(ButtonContainer, {
988
+ $hasConditions: hasConditions,
989
+ className: className,
990
+ children: /*#__PURE__*/ jsx(Button, {
991
+ variant: variant,
992
+ startIcon: /*#__PURE__*/ jsx(Cog, {}),
993
+ onClick: onClick,
994
+ ref: ref,
995
+ type: "button",
996
+ children: formatMessage({
997
+ id: 'global.settings',
998
+ defaultMessage: 'Settings'
999
+ })
1000
+ })
1001
+ });
1002
+ });
1003
+ const ButtonContainer = styled(Box)`
1004
+ ${({ $hasConditions, theme })=>$hasConditions && `
1005
+ &:before {
1006
+ content: '';
1007
+ position: absolute;
1008
+ top: -3px;
1009
+ left: -10px;
1010
+ width: 6px;
1011
+ height: 6px;
1012
+ border-radius: 2rem;
1013
+ background: ${theme.colors.primary600};
1014
+ }
1015
+ `}
1016
+ `;
1017
+ /**
1018
+ * We reference the component directly in other styled-components
1019
+ * and as such we need it to have a className already assigned.
1020
+ * Therefore we wrapped the implementation in a styled function.
1021
+ */ const ConditionsButton = styled(ConditionsButtonImpl)``;
1022
+
1023
+ const ConditionsModal = ({ actions = [], headerBreadCrumbs = [], isFormDisabled, onClose })=>{
1024
+ const { formatMessage } = useIntl();
1025
+ const { availableConditions, modifiedData, onChangeConditions } = usePermissionsDataManager();
1026
+ const arrayOfOptionsGroupedByCategory = React.useMemo(()=>{
1027
+ return Object.entries(groupBy(availableConditions, 'category'));
1028
+ }, [
1029
+ availableConditions
1030
+ ]);
1031
+ const actionsToDisplay = actions.filter(// @ts-expect-error – TODO: fix this type issue
1032
+ ({ isDisplayed, hasSomeActionsSelected, hasAllActionsSelected })=>isDisplayed && Boolean(hasSomeActionsSelected || hasAllActionsSelected));
1033
+ const [state, setState] = React.useState(createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory));
1034
+ const handleChange = (name, values)=>{
1035
+ setState(produce((draft)=>{
1036
+ if (!draft[name]) {
1037
+ draft[name] = {};
1038
+ }
1039
+ if (!draft[name].default) {
1040
+ draft[name].default = {};
1041
+ }
1042
+ draft[name].default = values;
1043
+ }));
1044
+ };
1045
+ const handleSubmit = ()=>{
1046
+ const conditionsWithoutCategory = Object.entries(state).reduce((acc, current)=>{
1047
+ const [key, value] = current;
1048
+ const merged = Object.values(value).reduce((acc1, current1)=>{
1049
+ return {
1050
+ ...acc1,
1051
+ ...current1
1052
+ };
1053
+ }, {});
1054
+ acc[key] = merged;
1055
+ return acc;
1056
+ }, {});
1057
+ onChangeConditions(conditionsWithoutCategory);
1058
+ onClose && onClose();
1059
+ };
1060
+ const onCloseModal = ()=>{
1061
+ setState(createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory));
1062
+ onClose && onClose();
1063
+ };
1064
+ return /*#__PURE__*/ jsxs(Modal.Content, {
1065
+ children: [
1066
+ /*#__PURE__*/ jsx(Modal.Header, {
1067
+ children: /*#__PURE__*/ jsx(Breadcrumbs, {
1068
+ id: "condition-modal-breadcrumbs",
1069
+ label: headerBreadCrumbs.join(', '),
1070
+ children: headerBreadCrumbs.map((label, index, arr)=>/*#__PURE__*/ jsx(Crumb, {
1071
+ isCurrent: index === arr.length - 1,
1072
+ children: upperFirst(formatMessage({
1073
+ id: label,
1074
+ defaultMessage: label
1075
+ }))
1076
+ }, label))
1077
+ })
1078
+ }),
1079
+ /*#__PURE__*/ jsxs(Modal.Body, {
1080
+ children: [
1081
+ actionsToDisplay.length === 0 && /*#__PURE__*/ jsx(Typography, {
1082
+ children: formatMessage({
1083
+ id: 'Settings.permissions.conditions.no-actions',
1084
+ defaultMessage: 'You first need to select actions (create, read, update, ...) before defining conditions on them.'
1085
+ })
1086
+ }),
1087
+ /*#__PURE__*/ jsx("ul", {
1088
+ children: actionsToDisplay.map(({ actionId, label, pathToConditionsObject }, index)=>{
1089
+ const name = pathToConditionsObject.join('..');
1090
+ return /*#__PURE__*/ jsx(ActionRow, {
1091
+ arrayOfOptionsGroupedByCategory: arrayOfOptionsGroupedByCategory,
1092
+ label: label,
1093
+ isFormDisabled: isFormDisabled,
1094
+ isGrey: index % 2 === 0,
1095
+ name: name,
1096
+ onChange: handleChange,
1097
+ value: get(state, name, {})
1098
+ }, actionId);
1099
+ })
1100
+ })
1101
+ ]
1102
+ }),
1103
+ /*#__PURE__*/ jsxs(Modal.Footer, {
1104
+ children: [
1105
+ /*#__PURE__*/ jsx(Button, {
1106
+ variant: "tertiary",
1107
+ onClick: ()=>onCloseModal(),
1108
+ children: formatMessage({
1109
+ id: 'app.components.Button.cancel',
1110
+ defaultMessage: 'Cancel'
1111
+ })
1112
+ }),
1113
+ /*#__PURE__*/ jsx(Button, {
1114
+ onClick: handleSubmit,
1115
+ children: formatMessage({
1116
+ id: 'Settings.permissions.conditions.apply',
1117
+ defaultMessage: 'Apply'
1118
+ })
1119
+ })
1120
+ ]
1121
+ })
1122
+ ]
1123
+ });
1124
+ };
1125
+ const createDefaultConditionsForm = (actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)=>{
1126
+ return actionsToDisplay.reduce((acc, current)=>{
1127
+ const valueFromModifiedData = get(modifiedData, [
1128
+ ...current.pathToConditionsObject,
1129
+ 'conditions'
1130
+ ], {});
1131
+ const categoryDefaultForm = arrayOfOptionsGroupedByCategory.reduce((acc, current)=>{
1132
+ const [categoryName, relatedConditions] = current;
1133
+ const conditionsForm = relatedConditions.reduce((acc, current)=>{
1134
+ acc[current.id] = get(valueFromModifiedData, current.id, false);
1135
+ return acc;
1136
+ }, {});
1137
+ acc[categoryName] = conditionsForm;
1138
+ return acc;
1139
+ }, {});
1140
+ acc[current.pathToConditionsObject.join('..')] = categoryDefaultForm;
1141
+ return acc;
1142
+ }, {});
1143
+ };
1144
+ const ActionRow = ({ arrayOfOptionsGroupedByCategory, isFormDisabled = false, isGrey = false, label, name, onChange, value })=>{
1145
+ const { formatMessage } = useIntl();
1146
+ const handleChange = (val)=>{
1147
+ if (onChange) {
1148
+ onChange(name, getNewStateFromChangedValues(arrayOfOptionsGroupedByCategory, val));
1149
+ }
1150
+ };
1151
+ return /*#__PURE__*/ jsxs(Flex, {
1152
+ tag: "li",
1153
+ background: isGrey ? 'neutral100' : 'neutral0',
1154
+ paddingBottom: 3,
1155
+ paddingTop: 3,
1156
+ justifyContent: 'space-evenly',
1157
+ children: [
1158
+ /*#__PURE__*/ jsxs(Flex, {
1159
+ style: {
1160
+ width: 180
1161
+ },
1162
+ children: [
1163
+ /*#__PURE__*/ jsxs(Typography, {
1164
+ variant: "sigma",
1165
+ textColor: "neutral600",
1166
+ children: [
1167
+ formatMessage({
1168
+ id: 'Settings.permissions.conditions.can',
1169
+ defaultMessage: 'Can'
1170
+ }),
1171
+ " "
1172
+ ]
1173
+ }),
1174
+ /*#__PURE__*/ jsx(Typography, {
1175
+ variant: "sigma",
1176
+ title: label,
1177
+ textColor: "primary600",
1178
+ ellipsis: true,
1179
+ children: formatMessage({
1180
+ id: `Settings.roles.form.permissions.${label.toLowerCase()}`,
1181
+ defaultMessage: label
1182
+ })
1183
+ }),
1184
+ /*#__PURE__*/ jsxs(Typography, {
1185
+ variant: "sigma",
1186
+ textColor: "neutral600",
1187
+ children: [
1188
+ " ",
1189
+ formatMessage({
1190
+ id: 'Settings.permissions.conditions.when',
1191
+ defaultMessage: 'When'
1192
+ })
1193
+ ]
1194
+ })
1195
+ ]
1196
+ }),
1197
+ /*#__PURE__*/ jsx(Box, {
1198
+ style: {
1199
+ maxWidth: 430,
1200
+ width: '100%'
1201
+ },
1202
+ children: /*#__PURE__*/ jsx(MultiSelectNested, {
1203
+ id: name,
1204
+ customizeContent: (values = [])=>`${values.length} currently selected`,
1205
+ onChange: handleChange,
1206
+ value: getSelectedValues(value),
1207
+ options: getNestedOptions(arrayOfOptionsGroupedByCategory),
1208
+ disabled: isFormDisabled
1209
+ })
1210
+ })
1211
+ ]
1212
+ });
1213
+ };
1214
+ const getSelectedValues = (rawValue)=>Object.values(rawValue).map((x)=>Object.entries(x).filter(([, value])=>value).map(([key])=>key)).flat();
1215
+ const getNestedOptions = (options)=>options.reduce((acc, [label, children])=>{
1216
+ acc.push({
1217
+ label: capitalise(label),
1218
+ children: children.map((child)=>({
1219
+ label: child.displayName,
1220
+ value: child.id
1221
+ }))
1222
+ });
1223
+ return acc;
1224
+ }, []);
1225
+ const getNewStateFromChangedValues = (options, changedValues)=>options.map(([, values])=>values).flat().reduce((acc, curr)=>({
1226
+ [curr.id]: changedValues.includes(curr.id),
1227
+ ...acc
1228
+ }), {});
1229
+
1230
+ const ContentTypeCollapses = ({ actions = [], isFormDisabled, pathToData, subjects = [] })=>{
1231
+ const [collapseToOpen, setCollapseToOpen] = React.useState(null);
1232
+ const handleClickToggleCollapse = (collapseName)=>()=>{
1233
+ const nextCollapseToOpen = collapseToOpen === collapseName ? null : collapseName;
1234
+ setCollapseToOpen(nextCollapseToOpen);
1235
+ };
1236
+ return /*#__PURE__*/ jsx(Fragment, {
1237
+ children: subjects.map(({ uid, label, properties }, index)=>{
1238
+ const isActive = collapseToOpen === uid;
1239
+ const availableActions = actions.map((action)=>({
1240
+ ...action,
1241
+ isDisplayed: Array.isArray(action.subjects) && action.subjects.indexOf(uid) !== -1
1242
+ }));
1243
+ return /*#__PURE__*/ jsxs(Flex, {
1244
+ direction: "column",
1245
+ display: "inline-flex",
1246
+ alignItems: "stretch",
1247
+ minWidth: "100%",
1248
+ borderColor: isActive ? 'primary600' : undefined,
1249
+ children: [
1250
+ /*#__PURE__*/ jsx(Collapse, {
1251
+ availableActions: availableActions,
1252
+ isActive: isActive,
1253
+ isGrey: index % 2 === 0,
1254
+ isFormDisabled: isFormDisabled,
1255
+ label: label,
1256
+ onClickToggle: handleClickToggleCollapse(uid),
1257
+ pathToData: [
1258
+ pathToData,
1259
+ uid
1260
+ ].join('..')
1261
+ }),
1262
+ isActive && properties.map(({ label: propertyLabel, value, children: childrenForm })=>{
1263
+ return /*#__PURE__*/ jsx(CollapsePropertyMatrix, {
1264
+ availableActions: availableActions,
1265
+ childrenForm: childrenForm,
1266
+ isFormDisabled: isFormDisabled,
1267
+ label: propertyLabel,
1268
+ pathToData: [
1269
+ pathToData,
1270
+ uid
1271
+ ].join('..'),
1272
+ propertyName: value
1273
+ }, value);
1274
+ })
1275
+ ]
1276
+ }, uid);
1277
+ })
1278
+ });
1279
+ };
1280
+ const Collapse = ({ availableActions = [], isActive = false, isGrey = false, isFormDisabled = false, label, onClickToggle, pathToData })=>{
1281
+ const { formatMessage } = useIntl();
1282
+ const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } = usePermissionsDataManager();
1283
+ const [isConditionModalOpen, setIsConditionModalOpen] = React.useState(false);
1284
+ // This corresponds to the data related to the CT left checkbox
1285
+ // modifiedData: { collectionTypes: { [ctuid]: {create: {properties: { fields: {f1: true} }, update: {}, ... } } } }
1286
+ const mainData = get(modifiedData, pathToData.split('..'), {});
1287
+ // The utils we are using: getCheckboxState, retrieves all the boolean leafs of an object in order
1288
+ // to return the state of checkbox. Since the conditions are not related to the property we need to remove the key from the object.
1289
+ const dataWithoutCondition = React.useMemo(()=>{
1290
+ return Object.keys(mainData).reduce((acc, current)=>{
1291
+ acc[current] = omit(mainData[current], 'conditions');
1292
+ return acc;
1293
+ }, {});
1294
+ }, [
1295
+ mainData
1296
+ ]);
1297
+ const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(dataWithoutCondition);
1298
+ // Here we create an array of <checkbox>, since the state of each one of them is used in
1299
+ // order to know if whether or not we need to display the associated action in
1300
+ // the <ConditionsModal />
1301
+ const checkboxesActions = React.useMemo(()=>{
1302
+ return generateCheckboxesActions(availableActions, modifiedData, pathToData);
1303
+ }, [
1304
+ availableActions,
1305
+ modifiedData,
1306
+ pathToData
1307
+ ]);
1308
+ // @ts-expect-error – hasConditions does not exist on all versions of checkboxesActions.
1309
+ const doesConditionButtonHasConditions = checkboxesActions.some((action)=>action.hasConditions);
1310
+ return /*#__PURE__*/ jsxs(BoxWrapper, {
1311
+ $isActive: isActive,
1312
+ children: [
1313
+ /*#__PURE__*/ jsxs(Wrapper, {
1314
+ height: rowHeight,
1315
+ flex: 1,
1316
+ alignItems: "center",
1317
+ background: isGrey ? 'neutral100' : 'neutral0',
1318
+ children: [
1319
+ /*#__PURE__*/ jsx(RowLabelWithCheckbox, {
1320
+ isCollapsable: true,
1321
+ isFormDisabled: isFormDisabled,
1322
+ label: capitalise(label),
1323
+ checkboxName: pathToData,
1324
+ onChange: onChangeParentCheckbox,
1325
+ onClick: onClickToggle,
1326
+ someChecked: hasSomeActionsSelected,
1327
+ value: hasAllActionsSelected,
1328
+ isActive: isActive,
1329
+ children: /*#__PURE__*/ jsx(Chevron, {
1330
+ paddingLeft: 2,
1331
+ children: isActive ? /*#__PURE__*/ jsx(ChevronUp, {}) : /*#__PURE__*/ jsx(ChevronDown, {})
1332
+ })
1333
+ }),
1334
+ /*#__PURE__*/ jsx(Flex, {
1335
+ style: {
1336
+ flex: 1
1337
+ },
1338
+ children: checkboxesActions.map(({ actionId, hasSomeActionsSelected, isDisplayed, ...restAction })=>{
1339
+ if (!isDisplayed) {
1340
+ return /*#__PURE__*/ jsx(HiddenAction, {}, actionId);
1341
+ }
1342
+ const { hasConditions, hasAllActionsSelected, isParentCheckbox, checkboxName, label: permissionLabel } = restAction;
1343
+ if (isParentCheckbox) {
1344
+ return /*#__PURE__*/ jsxs(Cell, {
1345
+ justifyContent: "center",
1346
+ alignItems: "center",
1347
+ children: [
1348
+ hasConditions && /*#__PURE__*/ jsx(Box, {
1349
+ tag: "span",
1350
+ position: "absolute",
1351
+ top: "-6px",
1352
+ left: "37px",
1353
+ width: "6px",
1354
+ height: "6px",
1355
+ borderRadius: "20px",
1356
+ background: "primary600"
1357
+ }),
1358
+ /*#__PURE__*/ jsx(Checkbox, {
1359
+ disabled: isFormDisabled,
1360
+ name: checkboxName,
1361
+ "aria-label": formatMessage({
1362
+ id: `Settings.permissions.select-by-permission`,
1363
+ defaultMessage: 'Select {label} permission'
1364
+ }, {
1365
+ label: `${permissionLabel} ${label}`
1366
+ }),
1367
+ // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91
1368
+ onCheckedChange: (value)=>{
1369
+ onChangeParentCheckbox({
1370
+ target: {
1371
+ name: checkboxName,
1372
+ value: !!value
1373
+ }
1374
+ });
1375
+ },
1376
+ checked: hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected
1377
+ })
1378
+ ]
1379
+ }, actionId);
1380
+ }
1381
+ return /*#__PURE__*/ jsxs(Cell, {
1382
+ justifyContent: "center",
1383
+ alignItems: "center",
1384
+ children: [
1385
+ hasConditions && /*#__PURE__*/ jsx(Box, {
1386
+ tag: "span",
1387
+ position: "absolute",
1388
+ top: "-6px",
1389
+ left: "37px",
1390
+ width: "6px",
1391
+ height: "6px",
1392
+ borderRadius: "20px",
1393
+ background: "primary600"
1394
+ }),
1395
+ /*#__PURE__*/ jsx(Checkbox, {
1396
+ disabled: isFormDisabled,
1397
+ name: checkboxName,
1398
+ // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91
1399
+ onCheckedChange: (value)=>{
1400
+ onChangeSimpleCheckbox({
1401
+ target: {
1402
+ name: checkboxName,
1403
+ value: !!value
1404
+ }
1405
+ });
1406
+ },
1407
+ checked: hasConditions ? 'indeterminate' : hasAllActionsSelected
1408
+ })
1409
+ ]
1410
+ }, actionId);
1411
+ })
1412
+ })
1413
+ ]
1414
+ }),
1415
+ /*#__PURE__*/ jsx(Box, {
1416
+ bottom: "10px",
1417
+ right: "9px",
1418
+ position: "absolute",
1419
+ children: /*#__PURE__*/ jsxs(Modal.Root, {
1420
+ open: isConditionModalOpen,
1421
+ onOpenChange: ()=>{
1422
+ setIsConditionModalOpen((prev)=>!prev);
1423
+ },
1424
+ children: [
1425
+ /*#__PURE__*/ jsx(Modal.Trigger, {
1426
+ children: /*#__PURE__*/ jsx(ConditionsButton, {
1427
+ hasConditions: doesConditionButtonHasConditions
1428
+ })
1429
+ }),
1430
+ /*#__PURE__*/ jsx(ConditionsModal, {
1431
+ headerBreadCrumbs: [
1432
+ label,
1433
+ 'Settings.permissions.conditions.conditions'
1434
+ ],
1435
+ actions: checkboxesActions,
1436
+ isFormDisabled: isFormDisabled,
1437
+ onClose: ()=>{
1438
+ setIsConditionModalOpen(false);
1439
+ }
1440
+ })
1441
+ ]
1442
+ })
1443
+ })
1444
+ ]
1445
+ });
1446
+ };
1447
+ const generateCheckboxesActions = (availableActions, modifiedData, pathToData)=>{
1448
+ return availableActions.map(({ actionId, isDisplayed, applyToProperties, label })=>{
1449
+ if (!isDisplayed) {
1450
+ return {
1451
+ actionId,
1452
+ hasSomeActionsSelected: false,
1453
+ isDisplayed
1454
+ };
1455
+ }
1456
+ const baseCheckboxNameArray = [
1457
+ ...pathToData.split('..'),
1458
+ actionId
1459
+ ];
1460
+ const checkboxNameArray = isEmpty(applyToProperties) ? [
1461
+ ...baseCheckboxNameArray,
1462
+ 'properties',
1463
+ 'enabled'
1464
+ ] : baseCheckboxNameArray;
1465
+ const conditionsValue = get(modifiedData, [
1466
+ ...baseCheckboxNameArray,
1467
+ 'conditions'
1468
+ ], null);
1469
+ const baseCheckboxAction = {
1470
+ actionId,
1471
+ checkboxName: checkboxNameArray.join('..'),
1472
+ hasConditions: createArrayOfValues(conditionsValue).some((val)=>val),
1473
+ isDisplayed,
1474
+ label,
1475
+ pathToConditionsObject: baseCheckboxNameArray
1476
+ };
1477
+ if (isEmpty(applyToProperties)) {
1478
+ const value = get(modifiedData, checkboxNameArray, false);
1479
+ // Since applyToProperties is empty it is not a parent checkbox, therefore hasAllActionsSelected is
1480
+ // equal to hasSomeActionsSelected
1481
+ return {
1482
+ ...baseCheckboxAction,
1483
+ hasAllActionsSelected: value,
1484
+ hasSomeActionsSelected: value,
1485
+ isParentCheckbox: false
1486
+ };
1487
+ }
1488
+ const mainData = get(modifiedData, checkboxNameArray, null);
1489
+ const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(mainData);
1490
+ return {
1491
+ ...baseCheckboxAction,
1492
+ hasAllActionsSelected,
1493
+ hasSomeActionsSelected,
1494
+ isParentCheckbox: true
1495
+ };
1496
+ });
1497
+ };
1498
+ const activeRowStyle = (theme, isActive)=>`
1499
+ ${Wrapper} {
1500
+ background-color: ${theme.colors.primary100};
1501
+ color: ${theme.colors.primary600};
1502
+ border-radius: ${isActive ? '2px 2px 0 0' : '2px'};
1503
+ font-weight: ${theme.fontWeights.bold};
1504
+ }
1505
+
1506
+ ${Chevron} {
1507
+ display: flex;
1508
+ }
1509
+ ${ConditionsButton} {
1510
+ display: block;
1511
+ }
1512
+
1513
+ &:focus-within {
1514
+ ${()=>activeRowStyle(theme, isActive)}
1515
+ }
1516
+ `;
1517
+ const Wrapper = styled(Flex)`
1518
+ border: 1px solid transparent;
1519
+ `;
1520
+ const BoxWrapper = styled.div`
1521
+ display: inline-flex;
1522
+ min-width: 100%;
1523
+ position: relative;
1524
+
1525
+ ${ConditionsButton} {
1526
+ display: none;
1527
+ }
1528
+
1529
+ ${({ $isActive, theme })=>$isActive && activeRowStyle(theme, $isActive)}
1530
+
1531
+ &:hover {
1532
+ ${({ theme, $isActive })=>activeRowStyle(theme, $isActive)}
1533
+ }
1534
+ `;
1535
+ const Cell = styled(Flex)`
1536
+ width: ${cellWidth};
1537
+ position: relative;
1538
+ `;
1539
+ const Chevron = styled(Box)`
1540
+ display: none;
1541
+
1542
+ svg {
1543
+ width: 1.4rem;
1544
+ }
1545
+
1546
+ path {
1547
+ fill: ${({ theme })=>theme.colors.primary600};
1548
+ }
1549
+ `;
1550
+
1551
+ const GlobalActions = ({ actions = [], isFormDisabled, kind })=>{
1552
+ const { formatMessage } = useIntl();
1553
+ const { modifiedData, onChangeCollectionTypeGlobalActionCheckbox } = usePermissionsDataManager();
1554
+ const displayedActions = actions.filter(({ subjects })=>subjects && subjects.length);
1555
+ const checkboxesState = React.useMemo(()=>{
1556
+ const actionsIds = displayedActions.map(({ actionId })=>actionId);
1557
+ const data = modifiedData[kind];
1558
+ const relatedActionsData = actionsIds.reduce((acc, actionId)=>{
1559
+ Object.keys(data).forEach((ctUid)=>{
1560
+ const actionIdData = get(data, [
1561
+ ctUid,
1562
+ actionId
1563
+ ]);
1564
+ const actionIdState = {
1565
+ [ctUid]: removeConditionKeyFromData(actionIdData)
1566
+ };
1567
+ if (!acc[actionId]) {
1568
+ acc[actionId] = actionIdState;
1569
+ } else {
1570
+ acc[actionId] = {
1571
+ ...acc[actionId],
1572
+ ...actionIdState
1573
+ };
1574
+ }
1575
+ });
1576
+ return acc;
1577
+ }, {});
1578
+ const checkboxesState = Object.keys(relatedActionsData).reduce((acc, current)=>{
1579
+ acc[current] = getCheckboxState(relatedActionsData[current]);
1580
+ return acc;
1581
+ }, {});
1582
+ return checkboxesState;
1583
+ }, [
1584
+ modifiedData,
1585
+ displayedActions,
1586
+ kind
1587
+ ]);
1588
+ return /*#__PURE__*/ jsx(Box, {
1589
+ paddingBottom: 4,
1590
+ paddingTop: 6,
1591
+ style: {
1592
+ paddingLeft: firstRowWidth
1593
+ },
1594
+ children: /*#__PURE__*/ jsx(Flex, {
1595
+ gap: 0,
1596
+ children: displayedActions.map(({ label, actionId })=>{
1597
+ return /*#__PURE__*/ jsxs(Flex, {
1598
+ shrink: 0,
1599
+ width: cellWidth,
1600
+ direction: "column",
1601
+ alignItems: "center",
1602
+ justifyContent: "center",
1603
+ gap: 3,
1604
+ children: [
1605
+ /*#__PURE__*/ jsx(Typography, {
1606
+ variant: "sigma",
1607
+ textColor: "neutral500",
1608
+ children: formatMessage({
1609
+ id: `Settings.roles.form.permissions.${label.toLowerCase()}`,
1610
+ defaultMessage: label
1611
+ })
1612
+ }),
1613
+ /*#__PURE__*/ jsx(Checkbox, {
1614
+ disabled: isFormDisabled,
1615
+ onCheckedChange: (value)=>{
1616
+ onChangeCollectionTypeGlobalActionCheckbox(kind, actionId, !!value);
1617
+ },
1618
+ name: actionId,
1619
+ "aria-label": formatMessage({
1620
+ id: `Settings.permissions.select-all-by-permission`,
1621
+ defaultMessage: 'Select all {label} permissions'
1622
+ }, {
1623
+ label: formatMessage({
1624
+ id: `Settings.roles.form.permissions.${label.toLowerCase()}`,
1625
+ defaultMessage: label
1626
+ })
1627
+ }),
1628
+ checked: get(checkboxesState, [
1629
+ actionId,
1630
+ 'hasSomeActionsSelected'
1631
+ ], false) ? 'indeterminate' : get(checkboxesState, [
1632
+ actionId,
1633
+ 'hasAllActionsSelected'
1634
+ ], false)
1635
+ })
1636
+ ]
1637
+ }, actionId);
1638
+ })
1639
+ })
1640
+ });
1641
+ };
1642
+
1643
+ const ContentTypes = ({ isFormDisabled, kind, layout: { actions, subjects } })=>{
1644
+ const sortedSubjects = [
1645
+ ...subjects
1646
+ ].sort((a, b)=>a.label.localeCompare(b.label));
1647
+ return /*#__PURE__*/ jsxs(Box, {
1648
+ background: "neutral0",
1649
+ children: [
1650
+ /*#__PURE__*/ jsx(GlobalActions, {
1651
+ actions: actions,
1652
+ kind: kind,
1653
+ isFormDisabled: isFormDisabled
1654
+ }),
1655
+ /*#__PURE__*/ jsx(ContentTypeCollapses, {
1656
+ actions: actions,
1657
+ isFormDisabled: isFormDisabled,
1658
+ pathToData: kind,
1659
+ subjects: sortedSubjects
1660
+ })
1661
+ ]
1662
+ });
1663
+ };
1664
+
1665
+ const PluginsAndSettingsPermissions = ({ layout, ...restProps })=>{
1666
+ return /*#__PURE__*/ jsx(Box, {
1667
+ padding: 6,
1668
+ background: "neutral0",
1669
+ children: /*#__PURE__*/ jsx(Accordion.Root, {
1670
+ size: "M",
1671
+ children: layout.map(({ category, categoryId, childrenForm }, index)=>{
1672
+ return /*#__PURE__*/ jsx(Row, {
1673
+ childrenForm: childrenForm,
1674
+ variant: index % 2 === 1 ? 'primary' : 'secondary',
1675
+ name: category,
1676
+ pathToData: [
1677
+ restProps.kind,
1678
+ categoryId
1679
+ ],
1680
+ ...restProps
1681
+ }, category);
1682
+ })
1683
+ })
1684
+ });
1685
+ };
1686
+ const Row = ({ childrenForm, kind, name, isFormDisabled = false, variant, pathToData })=>{
1687
+ const { formatMessage } = useIntl();
1688
+ const categoryName = name.split('::').pop() ?? '';
1689
+ return /*#__PURE__*/ jsxs(Accordion.Item, {
1690
+ value: name,
1691
+ children: [
1692
+ /*#__PURE__*/ jsx(Accordion.Header, {
1693
+ variant: variant,
1694
+ children: /*#__PURE__*/ jsx(Accordion.Trigger, {
1695
+ caretPosition: "right",
1696
+ description: `${formatMessage({
1697
+ id: 'Settings.permissions.category',
1698
+ defaultMessage: categoryName
1699
+ }, {
1700
+ category: categoryName
1701
+ })} ${kind === 'plugins' ? 'plugin' : kind}`,
1702
+ children: capitalise(categoryName)
1703
+ })
1704
+ }),
1705
+ /*#__PURE__*/ jsx(Accordion.Content, {
1706
+ children: /*#__PURE__*/ jsx(Box, {
1707
+ padding: 6,
1708
+ children: childrenForm.map(({ actions, subCategoryName, subCategoryId })=>/*#__PURE__*/ jsx(SubCategory, {
1709
+ actions: actions,
1710
+ categoryName: categoryName,
1711
+ isFormDisabled: isFormDisabled,
1712
+ subCategoryName: subCategoryName,
1713
+ pathToData: [
1714
+ ...pathToData,
1715
+ subCategoryId
1716
+ ]
1717
+ }, subCategoryName))
1718
+ })
1719
+ })
1720
+ ]
1721
+ });
1722
+ };
1723
+ const SubCategory = ({ actions = [], categoryName, isFormDisabled, subCategoryName, pathToData })=>{
1724
+ const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } = usePermissionsDataManager();
1725
+ const [isConditionModalOpen, setIsConditionModalOpen] = React.useState(false);
1726
+ const { formatMessage } = useIntl();
1727
+ const mainData = get(modifiedData, pathToData, {});
1728
+ const dataWithoutCondition = React.useMemo(()=>{
1729
+ return Object.keys(mainData).reduce((acc, current)=>{
1730
+ acc[current] = removeConditionKeyFromData(mainData[current]);
1731
+ return acc;
1732
+ }, {});
1733
+ }, [
1734
+ mainData
1735
+ ]);
1736
+ const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(dataWithoutCondition);
1737
+ // We need to format the actions so it matches the shape of the ConditionsModal actions props
1738
+ const formattedActions = React.useMemo(()=>{
1739
+ return actions.map((action)=>{
1740
+ const checkboxName = [
1741
+ ...pathToData,
1742
+ action.action,
1743
+ 'properties',
1744
+ 'enabled'
1745
+ ];
1746
+ const checkboxValue = get(modifiedData, checkboxName, false);
1747
+ const conditionValue = get(modifiedData, [
1748
+ ...pathToData,
1749
+ action.action,
1750
+ 'conditions'
1751
+ ], {});
1752
+ const hasConditions = createArrayOfValues(conditionValue).some((val)=>val);
1753
+ return {
1754
+ ...action,
1755
+ isDisplayed: checkboxValue,
1756
+ checkboxName: checkboxName.join('..'),
1757
+ hasSomeActionsSelected: checkboxValue,
1758
+ value: checkboxValue,
1759
+ hasConditions,
1760
+ label: action.displayName,
1761
+ actionId: action.action,
1762
+ pathToConditionsObject: [
1763
+ ...pathToData,
1764
+ action.action
1765
+ ]
1766
+ };
1767
+ });
1768
+ }, [
1769
+ actions,
1770
+ modifiedData,
1771
+ pathToData
1772
+ ]);
1773
+ const datum = get(modifiedData, [
1774
+ ...pathToData
1775
+ ], {});
1776
+ const doesButtonHasCondition = createArrayOfValues(Object.entries(datum).reduce((acc, current)=>{
1777
+ const [catName, { conditions }] = current;
1778
+ acc[catName] = conditions;
1779
+ return acc;
1780
+ }, {})).some((val)=>val);
1781
+ return /*#__PURE__*/ jsx(Fragment, {
1782
+ children: /*#__PURE__*/ jsxs(Box, {
1783
+ children: [
1784
+ /*#__PURE__*/ jsxs(Flex, {
1785
+ justifyContent: "space-between",
1786
+ alignItems: "center",
1787
+ children: [
1788
+ /*#__PURE__*/ jsx(Box, {
1789
+ paddingRight: 4,
1790
+ children: /*#__PURE__*/ jsx(Typography, {
1791
+ variant: "sigma",
1792
+ textColor: "neutral600",
1793
+ children: subCategoryName
1794
+ })
1795
+ }),
1796
+ /*#__PURE__*/ jsx(Border, {
1797
+ flex: 1
1798
+ }),
1799
+ /*#__PURE__*/ jsx(Box, {
1800
+ paddingLeft: 4,
1801
+ children: /*#__PURE__*/ jsx(Checkbox, {
1802
+ name: pathToData.join('..'),
1803
+ disabled: isFormDisabled,
1804
+ // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91
1805
+ onCheckedChange: (value)=>{
1806
+ onChangeParentCheckbox({
1807
+ target: {
1808
+ name: pathToData.join('..'),
1809
+ value: !!value
1810
+ }
1811
+ });
1812
+ },
1813
+ checked: hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected,
1814
+ children: formatMessage({
1815
+ id: 'app.utils.select-all',
1816
+ defaultMessage: 'Select all'
1817
+ })
1818
+ })
1819
+ })
1820
+ ]
1821
+ }),
1822
+ /*#__PURE__*/ jsxs(Flex, {
1823
+ paddingTop: 6,
1824
+ paddingBottom: 6,
1825
+ children: [
1826
+ /*#__PURE__*/ jsx(Grid.Root, {
1827
+ gap: 2,
1828
+ style: {
1829
+ flex: 1
1830
+ },
1831
+ children: formattedActions.map(({ checkboxName, value, action, displayName, hasConditions })=>{
1832
+ return /*#__PURE__*/ jsx(Grid.Item, {
1833
+ col: 3,
1834
+ direction: "column",
1835
+ alignItems: "start",
1836
+ children: /*#__PURE__*/ jsx(CheckboxWrapper, {
1837
+ $disabled: isFormDisabled,
1838
+ $hasConditions: hasConditions,
1839
+ children: /*#__PURE__*/ jsx(Checkbox, {
1840
+ name: checkboxName,
1841
+ disabled: isFormDisabled,
1842
+ // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91
1843
+ onCheckedChange: (value)=>{
1844
+ onChangeSimpleCheckbox({
1845
+ target: {
1846
+ name: checkboxName,
1847
+ value: !!value
1848
+ }
1849
+ });
1850
+ },
1851
+ checked: value,
1852
+ children: displayName
1853
+ })
1854
+ })
1855
+ }, action);
1856
+ })
1857
+ }),
1858
+ /*#__PURE__*/ jsxs(Modal.Root, {
1859
+ open: isConditionModalOpen,
1860
+ onOpenChange: ()=>{
1861
+ setIsConditionModalOpen((prev)=>!prev);
1862
+ },
1863
+ children: [
1864
+ /*#__PURE__*/ jsx(Modal.Trigger, {
1865
+ children: /*#__PURE__*/ jsx(ConditionsButton, {
1866
+ hasConditions: doesButtonHasCondition
1867
+ })
1868
+ }),
1869
+ /*#__PURE__*/ jsx(ConditionsModal, {
1870
+ headerBreadCrumbs: [
1871
+ categoryName,
1872
+ subCategoryName
1873
+ ],
1874
+ actions: formattedActions,
1875
+ isFormDisabled: isFormDisabled,
1876
+ onClose: ()=>{
1877
+ setIsConditionModalOpen(false);
1878
+ }
1879
+ })
1880
+ ]
1881
+ })
1882
+ ]
1883
+ })
1884
+ ]
1885
+ })
1886
+ });
1887
+ };
1888
+ const Border = styled(Box)`
1889
+ align-self: center;
1890
+ border-top: 1px solid ${({ theme })=>theme.colors.neutral150};
1891
+ `;
1892
+ const CheckboxWrapper = styled.div`
1893
+ position: relative;
1894
+ word-break: keep-all;
1895
+ ${({ $hasConditions, $disabled, theme })=>$hasConditions && `
1896
+ &:before {
1897
+ content: '';
1898
+ position: absolute;
1899
+ top: -0.4rem;
1900
+ left: -0.8rem;
1901
+ width: 0.6rem;
1902
+ height: 0.6rem;
1903
+ border-radius: 2rem;
1904
+ background: ${$disabled ? theme.colors.neutral100 : theme.colors.primary600};
1905
+ }
1906
+ `}
1907
+ `;
1908
+
1909
+ const TAB_LABELS = [
1910
+ {
1911
+ labelId: 'app.components.LeftMenuLinkContainer.collectionTypes',
1912
+ defaultMessage: 'Collection Types',
1913
+ id: 'collectionTypes'
1914
+ },
1915
+ {
1916
+ labelId: 'app.components.LeftMenuLinkContainer.singleTypes',
1917
+ id: 'singleTypes',
1918
+ defaultMessage: 'Single Types'
1919
+ },
1920
+ {
1921
+ labelId: 'app.components.LeftMenuLinkContainer.plugins',
1922
+ defaultMessage: 'Plugins',
1923
+ id: 'plugins'
1924
+ },
1925
+ {
1926
+ labelId: 'app.components.LeftMenuLinkContainer.settings',
1927
+ defaultMessage: 'Settings',
1928
+ id: 'settings'
1929
+ }
1930
+ ];
1931
+ const Permissions = /*#__PURE__*/ React.forwardRef(({ layout, isFormDisabled, permissions = [] }, api)=>{
1932
+ const [{ initialData, layouts, modifiedData }, dispatch] = React.useReducer(reducer, initialState, ()=>init(layout, permissions));
1933
+ const { formatMessage } = useIntl();
1934
+ React.useImperativeHandle(api, ()=>{
1935
+ return {
1936
+ getPermissions () {
1937
+ const collectionTypesDiff = difference(initialData.collectionTypes, modifiedData.collectionTypes);
1938
+ const singleTypesDiff = difference(initialData.singleTypes, modifiedData.singleTypes);
1939
+ const contentTypesDiff = {
1940
+ ...collectionTypesDiff,
1941
+ ...singleTypesDiff
1942
+ };
1943
+ let didUpdateConditions;
1944
+ if (isEmpty(contentTypesDiff)) {
1945
+ didUpdateConditions = false;
1946
+ } else {
1947
+ didUpdateConditions = Object.values(contentTypesDiff).some((permission = {})=>{
1948
+ return Object.values(permission).some((permissionValue)=>has(permissionValue, 'conditions'));
1949
+ });
1950
+ }
1951
+ return {
1952
+ permissionsToSend: formatPermissionsForAPI(modifiedData),
1953
+ didUpdateConditions
1954
+ };
1955
+ },
1956
+ resetForm () {
1957
+ dispatch({
1958
+ type: 'RESET_FORM'
1959
+ });
1960
+ },
1961
+ setFormAfterSubmit () {
1962
+ dispatch({
1963
+ type: 'SET_FORM_AFTER_SUBMIT'
1964
+ });
1965
+ }
1966
+ };
1967
+ });
1968
+ const handleChangeCollectionTypeLeftActionRowCheckbox = (pathToCollectionType, propertyName, rowName, value)=>{
1969
+ dispatch({
1970
+ type: 'ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX',
1971
+ pathToCollectionType,
1972
+ propertyName,
1973
+ rowName,
1974
+ value
1975
+ });
1976
+ };
1977
+ const handleChangeCollectionTypeGlobalActionCheckbox = (collectionTypeKind, actionId, value)=>{
1978
+ dispatch({
1979
+ type: 'ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX',
1980
+ collectionTypeKind,
1981
+ actionId,
1982
+ value
1983
+ });
1984
+ };
1985
+ const handleChangeConditions = (conditions)=>{
1986
+ dispatch({
1987
+ type: 'ON_CHANGE_CONDITIONS',
1988
+ conditions
1989
+ });
1990
+ };
1991
+ const handleChangeSimpleCheckbox = React.useCallback(({ target: { name, value } })=>{
1992
+ dispatch({
1993
+ type: 'ON_CHANGE_SIMPLE_CHECKBOX',
1994
+ keys: name,
1995
+ value
1996
+ });
1997
+ }, []);
1998
+ const handleChangeParentCheckbox = React.useCallback(({ target: { name, value } })=>{
1999
+ dispatch({
2000
+ type: 'ON_CHANGE_TOGGLE_PARENT_CHECKBOX',
2001
+ keys: name,
2002
+ value
2003
+ });
2004
+ }, []);
2005
+ return /*#__PURE__*/ jsx(PermissionsDataManagerProvider, {
2006
+ availableConditions: layout.conditions,
2007
+ modifiedData: modifiedData,
2008
+ onChangeConditions: handleChangeConditions,
2009
+ onChangeSimpleCheckbox: handleChangeSimpleCheckbox,
2010
+ onChangeParentCheckbox: handleChangeParentCheckbox,
2011
+ onChangeCollectionTypeLeftActionRowCheckbox: handleChangeCollectionTypeLeftActionRowCheckbox,
2012
+ onChangeCollectionTypeGlobalActionCheckbox: handleChangeCollectionTypeGlobalActionCheckbox,
2013
+ children: /*#__PURE__*/ jsxs(Tabs.Root, {
2014
+ defaultValue: TAB_LABELS[0].id,
2015
+ children: [
2016
+ /*#__PURE__*/ jsx(Tabs.List, {
2017
+ "aria-label": formatMessage({
2018
+ id: 'Settings.permissions.users.tabs.label',
2019
+ defaultMessage: 'Tabs Permissions'
2020
+ }),
2021
+ children: TAB_LABELS.map((tabLabel)=>/*#__PURE__*/ jsx(Tabs.Trigger, {
2022
+ value: tabLabel.id,
2023
+ children: formatMessage({
2024
+ id: tabLabel.labelId,
2025
+ defaultMessage: tabLabel.defaultMessage
2026
+ })
2027
+ }, tabLabel.id))
2028
+ }),
2029
+ /*#__PURE__*/ jsx(Tabs.Content, {
2030
+ value: TAB_LABELS[0].id,
2031
+ children: /*#__PURE__*/ jsx(ContentTypes, {
2032
+ layout: layouts.collectionTypes,
2033
+ kind: "collectionTypes",
2034
+ isFormDisabled: isFormDisabled
2035
+ })
2036
+ }),
2037
+ /*#__PURE__*/ jsx(Tabs.Content, {
2038
+ value: TAB_LABELS[1].id,
2039
+ children: /*#__PURE__*/ jsx(ContentTypes, {
2040
+ layout: layouts.singleTypes,
2041
+ kind: "singleTypes",
2042
+ isFormDisabled: isFormDisabled
2043
+ })
2044
+ }),
2045
+ /*#__PURE__*/ jsx(Tabs.Content, {
2046
+ value: TAB_LABELS[2].id,
2047
+ children: /*#__PURE__*/ jsx(PluginsAndSettingsPermissions, {
2048
+ layout: layouts.plugins,
2049
+ kind: "plugins",
2050
+ isFormDisabled: isFormDisabled
2051
+ })
2052
+ }),
2053
+ /*#__PURE__*/ jsx(Tabs.Content, {
2054
+ value: TAB_LABELS[3].id,
2055
+ children: /*#__PURE__*/ jsx(PluginsAndSettingsPermissions, {
2056
+ layout: layouts.settings,
2057
+ kind: "settings",
2058
+ isFormDisabled: isFormDisabled
2059
+ })
2060
+ })
2061
+ ]
2062
+ })
2063
+ });
2064
+ });
2065
+ const initialState = {
2066
+ initialData: {},
2067
+ modifiedData: {},
2068
+ layouts: {}
2069
+ };
2070
+ /* eslint-disable consistent-return */ const reducer = (state, action)=>produce(state, (draftState)=>{
2071
+ switch(action.type){
2072
+ // This action is called when a checkbox in the <GlobalActions />
2073
+ // changes
2074
+ case 'ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX':
2075
+ {
2076
+ const { collectionTypeKind, actionId, value } = action;
2077
+ const pathToData = [
2078
+ 'modifiedData',
2079
+ collectionTypeKind
2080
+ ];
2081
+ Object.keys(get(state, pathToData)).forEach((collectionType)=>{
2082
+ const collectionTypeActionData = get(state, [
2083
+ ...pathToData,
2084
+ collectionType,
2085
+ actionId
2086
+ ], undefined);
2087
+ if (collectionTypeActionData) {
2088
+ let updatedValues = updateValues(collectionTypeActionData, value);
2089
+ // We need to remove the applied conditions
2090
+ // @ts-expect-error – TODO: type better
2091
+ if (!value && updatedValues.conditions) {
2092
+ // @ts-expect-error – TODO: type better
2093
+ const updatedConditions = updateValues(updatedValues.conditions, false);
2094
+ updatedValues = {
2095
+ ...updatedValues,
2096
+ conditions: updatedConditions
2097
+ };
2098
+ }
2099
+ set(draftState, [
2100
+ ...pathToData,
2101
+ collectionType,
2102
+ actionId
2103
+ ], updatedValues);
2104
+ }
2105
+ });
2106
+ break;
2107
+ }
2108
+ case 'ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX':
2109
+ {
2110
+ const { pathToCollectionType, propertyName, rowName, value } = action;
2111
+ let nextModifiedDataState = cloneDeep(state.modifiedData);
2112
+ const pathToModifiedDataCollectionType = pathToCollectionType.split('..');
2113
+ const objToUpdate = get(nextModifiedDataState, pathToModifiedDataCollectionType, {});
2114
+ Object.keys(objToUpdate).forEach((actionId)=>{
2115
+ // When a ct has multiple properties (ex: locales, field)
2116
+ // We need to make sure that we add any new property to the modifiedData
2117
+ // object.
2118
+ if (has(objToUpdate[actionId], `properties.${propertyName}`)) {
2119
+ const objValue = get(objToUpdate, [
2120
+ actionId,
2121
+ 'properties',
2122
+ propertyName,
2123
+ rowName
2124
+ ]);
2125
+ const pathToDataToSet = [
2126
+ ...pathToModifiedDataCollectionType,
2127
+ actionId,
2128
+ 'properties',
2129
+ propertyName,
2130
+ rowName
2131
+ ];
2132
+ if (!isObject$1(objValue)) {
2133
+ set(nextModifiedDataState, pathToDataToSet, value);
2134
+ } else {
2135
+ const updatedValue = updateValues(objValue, value);
2136
+ set(nextModifiedDataState, pathToDataToSet, updatedValue);
2137
+ }
2138
+ }
2139
+ });
2140
+ // When we uncheck a row, we need to check if we also need to disable the conditions
2141
+ if (!value) {
2142
+ // @ts-expect-error – TODO: type better
2143
+ nextModifiedDataState = updateConditionsToFalse(nextModifiedDataState);
2144
+ }
2145
+ set(draftState, 'modifiedData', nextModifiedDataState);
2146
+ break;
2147
+ }
2148
+ case 'ON_CHANGE_CONDITIONS':
2149
+ {
2150
+ Object.entries(action.conditions).forEach((array)=>{
2151
+ const [stringPathToData, conditionsToUpdate] = array;
2152
+ set(draftState, [
2153
+ 'modifiedData',
2154
+ ...stringPathToData.split('..'),
2155
+ 'conditions'
2156
+ ], conditionsToUpdate);
2157
+ });
2158
+ break;
2159
+ }
2160
+ case 'ON_CHANGE_SIMPLE_CHECKBOX':
2161
+ {
2162
+ let nextModifiedDataState = cloneDeep(state.modifiedData);
2163
+ set(nextModifiedDataState, [
2164
+ ...action.keys.split('..')
2165
+ ], action.value);
2166
+ // When we uncheck a single checkbox we need to remove the conditions from the parent
2167
+ if (!action.value) {
2168
+ // @ts-expect-error – TODO: type better
2169
+ nextModifiedDataState = updateConditionsToFalse(nextModifiedDataState);
2170
+ }
2171
+ set(draftState, 'modifiedData', nextModifiedDataState);
2172
+ break;
2173
+ }
2174
+ /*
2175
+ * Here the idea is to retrieve a specific value of the modifiedObject
2176
+ * then update all the boolean values of the retrieved one
2177
+ * and update the drafState.
2178
+ *
2179
+ * For instance in order to enable create action for all the fields and locales
2180
+ * of the restaurant content type we need to :
2181
+ * 1. Retrieve the modifiedData.collectionTypes.restaurant.create object
2182
+ * 2. Toggle all the end boolean values to the desired one
2183
+ * 3. Update the draftState
2184
+ *
2185
+ * Since the case works well in order to update what we called "parent" checkbox. We can
2186
+ * reuse the action when we need to toggle change all the values that depends on this one.
2187
+ * A parent checkbox is a checkbox which value is not a boolean but depends on its children ones, therefore,
2188
+ * a parent checkbox does not have a represented value in the draftState, they are just helpers.
2189
+ *
2190
+ * Given the following data:
2191
+ *
2192
+ * const data = {
2193
+ * restaurant: {
2194
+ * create: {
2195
+ * fields: { name: true },
2196
+ * locales: { en: false }
2197
+ * }
2198
+ * }
2199
+ * }
2200
+ *
2201
+ * The value of the create checkbox for the restaurant will be ƒalse since not all its children have
2202
+ * truthy values and in order to set its value to true when need to have all the values of its children set to true.
2203
+ *
2204
+ * Similarly, we can reuse the logic for the components attributes
2205
+ *
2206
+ */ case 'ON_CHANGE_TOGGLE_PARENT_CHECKBOX':
2207
+ {
2208
+ const { keys, value } = action;
2209
+ const pathToValue = [
2210
+ ...keys.split('..')
2211
+ ];
2212
+ let nextModifiedDataState = cloneDeep(state.modifiedData);
2213
+ const oldValues = get(nextModifiedDataState, pathToValue, {});
2214
+ const updatedValues = updateValues(oldValues, value);
2215
+ set(nextModifiedDataState, pathToValue, updatedValues);
2216
+ // When we uncheck a parent checkbox we need to remove the associated conditions
2217
+ if (!value) {
2218
+ // @ts-expect-error – TODO: type better
2219
+ nextModifiedDataState = updateConditionsToFalse(nextModifiedDataState);
2220
+ }
2221
+ set(draftState, [
2222
+ 'modifiedData'
2223
+ ], nextModifiedDataState);
2224
+ break;
2225
+ }
2226
+ case 'RESET_FORM':
2227
+ {
2228
+ draftState.modifiedData = state.initialData;
2229
+ break;
2230
+ }
2231
+ case 'SET_FORM_AFTER_SUBMIT':
2232
+ {
2233
+ draftState.initialData = state.modifiedData;
2234
+ break;
2235
+ }
2236
+ default:
2237
+ return draftState;
2238
+ }
2239
+ });
2240
+ /* -------------------------------------------------------------------------------------------------
2241
+ * init (reducer)
2242
+ * -----------------------------------------------------------------------------------------------*/ const init = (layout, permissions)=>{
2243
+ const { conditions, sections: { collectionTypes, singleTypes, plugins, settings } } = layout;
2244
+ const layouts = {
2245
+ collectionTypes,
2246
+ singleTypes,
2247
+ plugins: formatLayout(plugins, 'plugin'),
2248
+ settings: formatLayout(settings, 'category')
2249
+ };
2250
+ const defaultForm = {
2251
+ collectionTypes: createDefaultCTForm(collectionTypes, conditions, permissions),
2252
+ singleTypes: createDefaultCTForm(singleTypes, conditions, permissions),
2253
+ plugins: createDefaultForm(layouts.plugins, conditions, permissions),
2254
+ settings: createDefaultForm(layouts.settings, conditions, permissions)
2255
+ };
2256
+ return {
2257
+ initialData: defaultForm,
2258
+ modifiedData: defaultForm,
2259
+ layouts
2260
+ };
2261
+ };
2262
+
2263
+ export { Permissions as P };
2264
+ //# sourceMappingURL=Permissions-CuLck8vw.mjs.map