@strapi/admin 5.9.0 → 5.10.1

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