@strapi/admin 5.4.1 → 5.4.2

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 (216) hide show
  1. package/dist/admin/{AdminSeatInfo-BtXH5sC-.mjs → AdminSeatInfo-BVns5hqY.mjs} +4 -4
  2. package/dist/admin/{AdminSeatInfo-BtXH5sC-.mjs.map → AdminSeatInfo-BVns5hqY.mjs.map} +1 -1
  3. package/dist/admin/{AdminSeatInfo-DJpF8PS1.js → AdminSeatInfo-YZSkpqTQ.js} +4 -4
  4. package/dist/admin/{AdminSeatInfo-DJpF8PS1.js.map → AdminSeatInfo-YZSkpqTQ.js.map} +1 -1
  5. package/dist/admin/{ApplicationInfoPage-C9NiLWTS.js → ApplicationInfoPage-fGmhKAEH.js} +5 -5
  6. package/dist/admin/{ApplicationInfoPage-C9NiLWTS.js.map → ApplicationInfoPage-fGmhKAEH.js.map} +1 -1
  7. package/dist/admin/{ApplicationInfoPage-683CGPri.mjs → ApplicationInfoPage-rMRwA77j.mjs} +5 -5
  8. package/dist/admin/{ApplicationInfoPage-683CGPri.mjs.map → ApplicationInfoPage-rMRwA77j.mjs.map} +1 -1
  9. package/dist/admin/{AuthResponse-tnFAm9fD.js → AuthResponse-B8hxRyao.js} +2 -2
  10. package/dist/admin/{AuthResponse-tnFAm9fD.js.map → AuthResponse-B8hxRyao.js.map} +1 -1
  11. package/dist/admin/{AuthResponse-BKpQdQAD.mjs → AuthResponse-CU7dtQY6.mjs} +2 -2
  12. package/dist/admin/{AuthResponse-BKpQdQAD.mjs.map → AuthResponse-CU7dtQY6.mjs.map} +1 -1
  13. package/dist/admin/{AuthenticatedLayout-B0W-Ppik.js → AuthenticatedLayout-6zPHuS0W.js} +14 -14
  14. package/dist/admin/{AuthenticatedLayout-B0W-Ppik.js.map → AuthenticatedLayout-6zPHuS0W.js.map} +1 -1
  15. package/dist/admin/{AuthenticatedLayout-QjRy82SQ.mjs → AuthenticatedLayout-NZYgRFcl.mjs} +14 -14
  16. package/dist/admin/{AuthenticatedLayout-QjRy82SQ.mjs.map → AuthenticatedLayout-NZYgRFcl.mjs.map} +1 -1
  17. package/dist/admin/{CreateActionEE-BAbsDj_W.js → CreateActionEE-BnGBSrSz.js} +2 -2
  18. package/dist/admin/{CreateActionEE-BAbsDj_W.js.map → CreateActionEE-BnGBSrSz.js.map} +1 -1
  19. package/dist/admin/{CreateActionEE-1i1Hn9yC.mjs → CreateActionEE-Bz3zvzzy.mjs} +2 -2
  20. package/dist/admin/{CreateActionEE-1i1Hn9yC.mjs.map → CreateActionEE-Bz3zvzzy.mjs.map} +1 -1
  21. package/dist/admin/{CreatePage-DdnSea92.js → CreatePage-Cpb66rVt.js} +3 -3
  22. package/dist/admin/{CreatePage-DdnSea92.js.map → CreatePage-Cpb66rVt.js.map} +1 -1
  23. package/dist/admin/{CreatePage-C4PU0AHF.mjs → CreatePage-CsZSWXwB.mjs} +3 -3
  24. package/dist/admin/{CreatePage-C4PU0AHF.mjs.map → CreatePage-CsZSWXwB.mjs.map} +1 -1
  25. package/dist/admin/{CreatePage-B5cgJ0x4.mjs → CreatePage-DPB9ir6r.mjs} +5 -5
  26. package/dist/admin/{CreatePage-B5cgJ0x4.mjs.map → CreatePage-DPB9ir6r.mjs.map} +1 -1
  27. package/dist/admin/{CreatePage-CQ_PSjfy.js → CreatePage-VY2xm9Wa.js} +5 -5
  28. package/dist/admin/{CreatePage-CQ_PSjfy.js.map → CreatePage-VY2xm9Wa.js.map} +1 -1
  29. package/dist/admin/{CreateView-CAFMGwXw.mjs → CreateView-B5J76SJD.mjs} +3 -3
  30. package/dist/admin/{CreateView-CAFMGwXw.mjs.map → CreateView-B5J76SJD.mjs.map} +1 -1
  31. package/dist/admin/{CreateView-BkjGFO1q.js → CreateView-BXug7isO.js} +3 -3
  32. package/dist/admin/{CreateView-BkjGFO1q.js.map → CreateView-BXug7isO.js.map} +1 -1
  33. package/dist/admin/{CreateView-LWgbJBGg.mjs → CreateView-CMI17CIi.mjs} +3 -3
  34. package/dist/admin/{CreateView-LWgbJBGg.mjs.map → CreateView-CMI17CIi.mjs.map} +1 -1
  35. package/dist/admin/{CreateView-r2yuWZ7_.js → CreateView-DnHNPboX.js} +3 -3
  36. package/dist/admin/{CreateView-r2yuWZ7_.js.map → CreateView-DnHNPboX.js.map} +1 -1
  37. package/dist/admin/{EditPage-CSQazVET.js → EditPage-Bgvwsmih.js} +6 -6
  38. package/dist/admin/{EditPage-CSQazVET.js.map → EditPage-Bgvwsmih.js.map} +1 -1
  39. package/dist/admin/{EditPage-DkK2CcjP.mjs → EditPage-BruskLzK.mjs} +6 -6
  40. package/dist/admin/{EditPage-DkK2CcjP.mjs.map → EditPage-BruskLzK.mjs.map} +1 -1
  41. package/dist/admin/{EditPage-D144CUxd.js → EditPage-BuWy13_w.js} +8 -8
  42. package/dist/admin/{EditPage-D144CUxd.js.map → EditPage-BuWy13_w.js.map} +1 -1
  43. package/dist/admin/{EditPage-C3OJuYxY.mjs → EditPage-DcSPQTtt.mjs} +7 -7
  44. package/dist/admin/{EditPage-C3OJuYxY.mjs.map → EditPage-DcSPQTtt.mjs.map} +1 -1
  45. package/dist/admin/{EditPage-Din0xCNi.mjs → EditPage-DevrDzXh.mjs} +8 -8
  46. package/dist/admin/{EditPage-Din0xCNi.mjs.map → EditPage-DevrDzXh.mjs.map} +1 -1
  47. package/dist/admin/{EditPage-DnvQHl4z.js → EditPage-Zat17CsY.js} +7 -7
  48. package/dist/admin/{EditPage-DnvQHl4z.js.map → EditPage-Zat17CsY.js.map} +1 -1
  49. package/dist/admin/{EditView-CbfTBtQA.mjs → EditView-BUKYxFyW.mjs} +6 -6
  50. package/dist/admin/{EditView-CbfTBtQA.mjs.map → EditView-BUKYxFyW.mjs.map} +1 -1
  51. package/dist/admin/{EditView-BxoYN0cp.js → EditView-CWhNhhQk.js} +6 -6
  52. package/dist/admin/{EditView-BxoYN0cp.js.map → EditView-CWhNhhQk.js.map} +1 -1
  53. package/dist/admin/{EditViewPage-BgUsc1vI.js → EditViewPage-CnJ4ZooO.js} +6 -6
  54. package/dist/admin/{EditViewPage-BgUsc1vI.js.map → EditViewPage-CnJ4ZooO.js.map} +1 -1
  55. package/dist/admin/{EditViewPage-Ds7H3Ib6.mjs → EditViewPage-DtZCPpEa.mjs} +6 -6
  56. package/dist/admin/{EditViewPage-Ds7H3Ib6.mjs.map → EditViewPage-DtZCPpEa.mjs.map} +1 -1
  57. package/dist/admin/{EventsTable-B9ddYPQx.js → EventsTable-B5JJMPA2.js} +2 -2
  58. package/dist/admin/{EventsTable-B9ddYPQx.js.map → EventsTable-B5JJMPA2.js.map} +1 -1
  59. package/dist/admin/{EventsTable-VBW6pGYW.mjs → EventsTable-BlzuD4LC.mjs} +2 -2
  60. package/dist/admin/{EventsTable-VBW6pGYW.mjs.map → EventsTable-BlzuD4LC.mjs.map} +1 -1
  61. package/dist/admin/{HomePage-wT6KNByy.js → HomePage-AvpauwXM.js} +3 -3
  62. package/dist/admin/{HomePage-wT6KNByy.js.map → HomePage-AvpauwXM.js.map} +1 -1
  63. package/dist/admin/{HomePage-_UCA75ne.mjs → HomePage-B21w_wNq.mjs} +3 -3
  64. package/dist/admin/{HomePage-_UCA75ne.mjs.map → HomePage-B21w_wNq.mjs.map} +1 -1
  65. package/dist/admin/{HomePage-uvzslDAc.js → HomePage-Dpuv_jq4.js} +5 -5
  66. package/dist/admin/{HomePage-uvzslDAc.js.map → HomePage-Dpuv_jq4.js.map} +1 -1
  67. package/dist/admin/{HomePage-BrGErg0o.mjs → HomePage-qJC8TTq6.mjs} +5 -5
  68. package/dist/admin/{HomePage-BrGErg0o.mjs.map → HomePage-qJC8TTq6.mjs.map} +1 -1
  69. package/dist/admin/{InstalledPlugins-q6iHMp8e.js → InstalledPlugins-9r6y2kyr.js} +4 -4
  70. package/dist/admin/{InstalledPlugins-q6iHMp8e.js.map → InstalledPlugins-9r6y2kyr.js.map} +1 -1
  71. package/dist/admin/{InstalledPlugins-B4iKWlES.mjs → InstalledPlugins-DEceX9Cg.mjs} +4 -4
  72. package/dist/admin/{InstalledPlugins-B4iKWlES.mjs.map → InstalledPlugins-DEceX9Cg.mjs.map} +1 -1
  73. package/dist/admin/{Layout-CaNlgN5n.mjs → Layout-CIroFchB.mjs} +5 -5
  74. package/dist/admin/{Layout-CaNlgN5n.mjs.map → Layout-CIroFchB.mjs.map} +1 -1
  75. package/dist/admin/{Layout-DGeCkbBf.js → Layout-C_RH1apu.js} +5 -5
  76. package/dist/admin/{Layout-DGeCkbBf.js.map → Layout-C_RH1apu.js.map} +1 -1
  77. package/dist/admin/{ListPage-CocqTTCj.mjs → ListPage-BMfkg16H.mjs} +4 -4
  78. package/dist/admin/{ListPage-CocqTTCj.mjs.map → ListPage-BMfkg16H.mjs.map} +1 -1
  79. package/dist/admin/{ListPage-DDnATmBl.js → ListPage-BWHVcy4q.js} +4 -4
  80. package/dist/admin/{ListPage-DDnATmBl.js.map → ListPage-BWHVcy4q.js.map} +1 -1
  81. package/dist/admin/{ListPage-D5H8f2M-.mjs → ListPage-Bqd_yAEb.mjs} +3 -3
  82. package/dist/admin/{ListPage-D5H8f2M-.mjs.map → ListPage-Bqd_yAEb.mjs.map} +1 -1
  83. package/dist/admin/{ListPage-cZ7G9ifV.mjs → ListPage-BxrPVSl5.mjs} +8 -8
  84. package/dist/admin/{ListPage-cZ7G9ifV.mjs.map → ListPage-BxrPVSl5.mjs.map} +1 -1
  85. package/dist/admin/{ListPage-B7z3qFyl.js → ListPage-CS7tHdAz.js} +4 -4
  86. package/dist/admin/{ListPage-B7z3qFyl.js.map → ListPage-CS7tHdAz.js.map} +1 -1
  87. package/dist/admin/{ListPage-Cl2tgcBV.js → ListPage-ChMiuYyL.js} +3 -3
  88. package/dist/admin/{ListPage-Cl2tgcBV.js.map → ListPage-ChMiuYyL.js.map} +1 -1
  89. package/dist/admin/{ListPage-Dhe2wcgV.js → ListPage-DK-JhVGo.js} +8 -8
  90. package/dist/admin/{ListPage-Dhe2wcgV.js.map → ListPage-DK-JhVGo.js.map} +1 -1
  91. package/dist/admin/{ListPage-CCnBCVJc.js → ListPage-DRmrKeZ4.js} +6 -6
  92. package/dist/admin/{ListPage-CCnBCVJc.js.map → ListPage-DRmrKeZ4.js.map} +1 -1
  93. package/dist/admin/{ListPage-fK1xgGBO.mjs → ListPage-DfyyMyn7.mjs} +6 -6
  94. package/dist/admin/{ListPage-fK1xgGBO.mjs.map → ListPage-DfyyMyn7.mjs.map} +1 -1
  95. package/dist/admin/{ListPage-DbHPSzvx.mjs → ListPage-ZOKLnTJp.mjs} +4 -4
  96. package/dist/admin/{ListPage-DbHPSzvx.mjs.map → ListPage-ZOKLnTJp.mjs.map} +1 -1
  97. package/dist/admin/{ListView-Uma8Kh0Y.js → ListView-B9_D-i55.js} +5 -5
  98. package/dist/admin/{ListView-Uma8Kh0Y.js.map → ListView-B9_D-i55.js.map} +1 -1
  99. package/dist/admin/{ListView-BAOu3t3r.js → ListView-BeuDKXi2.js} +5 -5
  100. package/dist/admin/{ListView-BAOu3t3r.js.map → ListView-BeuDKXi2.js.map} +1 -1
  101. package/dist/admin/{ListView-CDBJ6KxG.mjs → ListView-Bjy7mOBN.mjs} +5 -5
  102. package/dist/admin/{ListView-CDBJ6KxG.mjs.map → ListView-Bjy7mOBN.mjs.map} +1 -1
  103. package/dist/admin/{ListView-DCHh8Z9Q.mjs → ListView-BwLr86nb.mjs} +5 -5
  104. package/dist/admin/{ListView-DCHh8Z9Q.mjs.map → ListView-BwLr86nb.mjs.map} +1 -1
  105. package/dist/admin/{Login-BMNixw-B.mjs → Login-DsIpK3bD.mjs} +3 -3
  106. package/dist/admin/{Login-BMNixw-B.mjs.map → Login-DsIpK3bD.mjs.map} +1 -1
  107. package/dist/admin/{Login-CIgQWbpY.js → Login-xV0kqX0X.js} +3 -3
  108. package/dist/admin/{Login-CIgQWbpY.js.map → Login-xV0kqX0X.js.map} +1 -1
  109. package/dist/admin/{MagicLinkEE-Cfm5HTYA.js → MagicLinkEE-CQXTo_i9.js} +3 -3
  110. package/dist/admin/{MagicLinkEE-Cfm5HTYA.js.map → MagicLinkEE-CQXTo_i9.js.map} +1 -1
  111. package/dist/admin/{MagicLinkEE-DXVettXy.mjs → MagicLinkEE-CsJGWKhy.mjs} +3 -3
  112. package/dist/admin/{MagicLinkEE-DXVettXy.mjs.map → MagicLinkEE-CsJGWKhy.mjs.map} +1 -1
  113. package/dist/admin/{MarketplacePage-ybCMvYyZ.js → MarketplacePage-DeHyp7y1.js} +3 -3
  114. package/dist/admin/{MarketplacePage-ybCMvYyZ.js.map → MarketplacePage-DeHyp7y1.js.map} +1 -1
  115. package/dist/admin/{MarketplacePage-9oBw1vCF.mjs → MarketplacePage-qbedpjBD.mjs} +3 -3
  116. package/dist/admin/{MarketplacePage-9oBw1vCF.mjs.map → MarketplacePage-qbedpjBD.mjs.map} +1 -1
  117. package/dist/admin/{Permissions-DJGQDnx2.js → Permissions-DII2emCe.js} +45 -35
  118. package/dist/admin/Permissions-DII2emCe.js.map +1 -0
  119. package/dist/admin/{Permissions-D-z4OQkJ.mjs → Permissions-lDPhNvFl.mjs} +45 -35
  120. package/dist/admin/Permissions-lDPhNvFl.mjs.map +1 -0
  121. package/dist/admin/{PrivateRoute-C1dP5ye6.js → PrivateRoute-D7Y029Yb.js} +2 -2
  122. package/dist/admin/{PrivateRoute-C1dP5ye6.js.map → PrivateRoute-D7Y029Yb.js.map} +1 -1
  123. package/dist/admin/{PrivateRoute-gjOsMUaF.mjs → PrivateRoute-KBnpPkup.mjs} +2 -2
  124. package/dist/admin/{PrivateRoute-gjOsMUaF.mjs.map → PrivateRoute-KBnpPkup.mjs.map} +1 -1
  125. package/dist/admin/{ProfilePage-iJfFC8iM.js → ProfilePage--a3BOCVY.js} +5 -5
  126. package/dist/admin/{ProfilePage-iJfFC8iM.js.map → ProfilePage--a3BOCVY.js.map} +1 -1
  127. package/dist/admin/{ProfilePage-Dye2XFUg.mjs → ProfilePage-DRvD3GIN.mjs} +5 -5
  128. package/dist/admin/{ProfilePage-Dye2XFUg.mjs.map → ProfilePage-DRvD3GIN.mjs.map} +1 -1
  129. package/dist/admin/{PurchaseAuditLogs-Cm4FhsMb.mjs → PurchaseAuditLogs-BVvceWTE.mjs} +2 -2
  130. package/dist/admin/{PurchaseAuditLogs-Cm4FhsMb.mjs.map → PurchaseAuditLogs-BVvceWTE.mjs.map} +1 -1
  131. package/dist/admin/{PurchaseAuditLogs-D01OAXZ1.js → PurchaseAuditLogs-C2RIeJGf.js} +2 -2
  132. package/dist/admin/{PurchaseAuditLogs-D01OAXZ1.js.map → PurchaseAuditLogs-C2RIeJGf.js.map} +1 -1
  133. package/dist/admin/{PurchaseSingleSignOn-DuP_lPo5.js → PurchaseSingleSignOn-DU1UqoVl.js} +2 -2
  134. package/dist/admin/{PurchaseSingleSignOn-DuP_lPo5.js.map → PurchaseSingleSignOn-DU1UqoVl.js.map} +1 -1
  135. package/dist/admin/{PurchaseSingleSignOn-EcMNl-Fp.mjs → PurchaseSingleSignOn-nEzAlPxk.mjs} +2 -2
  136. package/dist/admin/{PurchaseSingleSignOn-EcMNl-Fp.mjs.map → PurchaseSingleSignOn-nEzAlPxk.mjs.map} +1 -1
  137. package/dist/admin/{SelectRoles-CiXoM32h.mjs → SelectRoles-Bs9u04uj.mjs} +4 -4
  138. package/dist/admin/{SelectRoles-CiXoM32h.mjs.map → SelectRoles-Bs9u04uj.mjs.map} +1 -1
  139. package/dist/admin/{SelectRoles-DLKg2oSV.js → SelectRoles-mnUhsABJ.js} +4 -4
  140. package/dist/admin/{SelectRoles-DLKg2oSV.js.map → SelectRoles-mnUhsABJ.js.map} +1 -1
  141. package/dist/admin/{SingleSignOnPage-CiDC2Nqn.mjs → SingleSignOnPage-3zjvpu53.mjs} +5 -5
  142. package/dist/admin/{SingleSignOnPage-CiDC2Nqn.mjs.map → SingleSignOnPage-3zjvpu53.mjs.map} +1 -1
  143. package/dist/admin/{SingleSignOnPage-yeUvuSTO.js → SingleSignOnPage-cV4vLp_a.js} +5 -5
  144. package/dist/admin/{SingleSignOnPage-yeUvuSTO.js.map → SingleSignOnPage-cV4vLp_a.js.map} +1 -1
  145. package/dist/admin/{Table-lxKdXhV9.js → Table-DZNHvug-.js} +3 -3
  146. package/dist/admin/{Table-lxKdXhV9.js.map → Table-DZNHvug-.js.map} +1 -1
  147. package/dist/admin/{Table-kHROpxjl.mjs → Table-tIZ8sJm6.mjs} +3 -3
  148. package/dist/admin/{Table-kHROpxjl.mjs.map → Table-tIZ8sJm6.mjs.map} +1 -1
  149. package/dist/admin/{Theme-NAd2H4cV.mjs → Theme-CLIXCqhU.mjs} +2 -2
  150. package/dist/admin/{Theme-NAd2H4cV.mjs.map → Theme-CLIXCqhU.mjs.map} +1 -1
  151. package/dist/admin/{Theme-K6zNL3JT.js → Theme-CV_l77KL.js} +2 -2
  152. package/dist/admin/{Theme-K6zNL3JT.js.map → Theme-CV_l77KL.js.map} +1 -1
  153. package/dist/admin/{TokenTypeSelect-By7iQpgJ.js → TokenTypeSelect-CgZvnPsJ.js} +4 -4
  154. package/dist/admin/{TokenTypeSelect-By7iQpgJ.js.map → TokenTypeSelect-CgZvnPsJ.js.map} +1 -1
  155. package/dist/admin/{TokenTypeSelect-B-iJxzXE.mjs → TokenTypeSelect-JQ4xkd6g.mjs} +4 -4
  156. package/dist/admin/{TokenTypeSelect-B-iJxzXE.mjs.map → TokenTypeSelect-JQ4xkd6g.mjs.map} +1 -1
  157. package/dist/admin/{UseCasePage-x-bVF6tp.mjs → UseCasePage-Crn_GyDw.mjs} +4 -4
  158. package/dist/admin/{UseCasePage-x-bVF6tp.mjs.map → UseCasePage-Crn_GyDw.mjs.map} +1 -1
  159. package/dist/admin/{UseCasePage-CY0JP2XW.js → UseCasePage-fdZFNaFz.js} +4 -4
  160. package/dist/admin/{UseCasePage-CY0JP2XW.js.map → UseCasePage-fdZFNaFz.js.map} +1 -1
  161. package/dist/admin/{admin-3FVGSNUT.js → admin-CoWMk1La.js} +4 -1
  162. package/dist/admin/admin-CoWMk1La.js.map +1 -0
  163. package/dist/admin/{admin-DIy_Bn_0.mjs → admin-CuE4OEl1.mjs} +4 -1
  164. package/dist/admin/admin-CuE4OEl1.mjs.map +1 -0
  165. package/dist/admin/{apiTokens-BOJ6JDtg.mjs → apiTokens-BbGEd8hG.mjs} +2 -2
  166. package/dist/admin/{apiTokens-BOJ6JDtg.mjs.map → apiTokens-BbGEd8hG.mjs.map} +1 -1
  167. package/dist/admin/{apiTokens-CcgEvJ9L.js → apiTokens-rxLmW4xI.js} +2 -2
  168. package/dist/admin/{apiTokens-CcgEvJ9L.js.map → apiTokens-rxLmW4xI.js.map} +1 -1
  169. package/dist/admin/{constants-QMVP-ySv.js → constants-DAPlN6Ts.js} +3 -3
  170. package/dist/admin/{constants-QMVP-ySv.js.map → constants-DAPlN6Ts.js.map} +1 -1
  171. package/dist/admin/{constants-BgfUvQDe.mjs → constants-DGb02Psr.mjs} +3 -3
  172. package/dist/admin/{constants-BgfUvQDe.mjs.map → constants-DGb02Psr.mjs.map} +1 -1
  173. package/dist/admin/ee.js +1 -1
  174. package/dist/admin/ee.mjs +1 -1
  175. package/dist/admin/{index-CQ0jOkIC.mjs → index-BnX71_B4.mjs} +33 -33
  176. package/dist/admin/{index-CQ0jOkIC.mjs.map → index-BnX71_B4.mjs.map} +1 -1
  177. package/dist/admin/{index-D4vvFryW.js → index-D9wwwbid.js} +33 -33
  178. package/dist/admin/{index-D4vvFryW.js.map → index-D9wwwbid.js.map} +1 -1
  179. package/dist/admin/index.js +3 -3
  180. package/dist/admin/index.mjs +3 -3
  181. package/dist/admin/{selectors-DYNXQ1tD.js → selectors-CM2KPWni.js} +2 -2
  182. package/dist/admin/{selectors-DYNXQ1tD.js.map → selectors-CM2KPWni.js.map} +1 -1
  183. package/dist/admin/{selectors-ZSFBgSp8.mjs → selectors-D9-d7hGq.mjs} +2 -2
  184. package/dist/admin/{selectors-ZSFBgSp8.mjs.map → selectors-D9-d7hGq.mjs.map} +1 -1
  185. package/dist/admin/test.js +2 -2
  186. package/dist/admin/test.mjs +2 -2
  187. package/dist/admin/{transferTokens-CTsVFvMK.js → transferTokens-CeXBOv8T.js} +2 -2
  188. package/dist/admin/{transferTokens-CTsVFvMK.js.map → transferTokens-CeXBOv8T.js.map} +1 -1
  189. package/dist/admin/{transferTokens-CXTFej3W.mjs → transferTokens-DRhm3E2K.mjs} +2 -2
  190. package/dist/admin/{transferTokens-CXTFej3W.mjs.map → transferTokens-DRhm3E2K.mjs.map} +1 -1
  191. package/dist/admin/{useAdminRoles-BlqZHo5X.mjs → useAdminRoles-H1TFksyF.mjs} +2 -2
  192. package/dist/admin/{useAdminRoles-BlqZHo5X.mjs.map → useAdminRoles-H1TFksyF.mjs.map} +1 -1
  193. package/dist/admin/{useAdminRoles-Ck5p_pOt.js → useAdminRoles-hnMykCZo.js} +2 -2
  194. package/dist/admin/{useAdminRoles-Ck5p_pOt.js.map → useAdminRoles-hnMykCZo.js.map} +1 -1
  195. package/dist/admin/{useLicenseLimitNotification-BJ69x-oH.js → useLicenseLimitNotification-B6SNDncg.js} +3 -3
  196. package/dist/admin/{useLicenseLimitNotification-BJ69x-oH.js.map → useLicenseLimitNotification-B6SNDncg.js.map} +1 -1
  197. package/dist/admin/{useLicenseLimitNotification-J4qdwz19.mjs → useLicenseLimitNotification-BEKK4zym.mjs} +3 -3
  198. package/dist/admin/{useLicenseLimitNotification-J4qdwz19.mjs.map → useLicenseLimitNotification-BEKK4zym.mjs.map} +1 -1
  199. package/dist/admin/{useLicenseLimits-D_SDg_6i.mjs → useLicenseLimits-BsqWmbk9.mjs} +2 -2
  200. package/dist/admin/{useLicenseLimits-D_SDg_6i.mjs.map → useLicenseLimits-BsqWmbk9.mjs.map} +1 -1
  201. package/dist/admin/{useLicenseLimits-D1oogU-K.js → useLicenseLimits-JFp6koHQ.js} +2 -2
  202. package/dist/admin/{useLicenseLimits-D1oogU-K.js.map → useLicenseLimits-JFp6koHQ.js.map} +1 -1
  203. package/dist/admin/{useWebhooks-CkRHgTl_.js → useWebhooks-CeQ6X5FT.js} +2 -2
  204. package/dist/admin/{useWebhooks-CkRHgTl_.js.map → useWebhooks-CeQ6X5FT.js.map} +1 -1
  205. package/dist/admin/{useWebhooks-C2yEtiSU.mjs → useWebhooks-ChRqPd68.mjs} +2 -2
  206. package/dist/admin/{useWebhooks-C2yEtiSU.mjs.map → useWebhooks-ChRqPd68.mjs.map} +1 -1
  207. package/dist/admin/{validation-DYzpgGER.mjs → validation-BqckJ_66.mjs} +2 -2
  208. package/dist/admin/{validation-DYzpgGER.mjs.map → validation-BqckJ_66.mjs.map} +1 -1
  209. package/dist/admin/{validation-CsNKFFCI.js → validation-Ct0GJF3v.js} +2 -2
  210. package/dist/admin/{validation-CsNKFFCI.js.map → validation-Ct0GJF3v.js.map} +1 -1
  211. package/dist/package.json.d.ts +9 -9
  212. package/package.json +10 -10
  213. package/dist/admin/Permissions-D-z4OQkJ.mjs.map +0 -1
  214. package/dist/admin/Permissions-DJGQDnx2.js.map +0 -1
  215. package/dist/admin/admin-3FVGSNUT.js.map +0 -1
  216. package/dist/admin/admin-DIy_Bn_0.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Permissions-lDPhNvFl.mjs","sources":["../../admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.ts","../../admin/src/pages/Settings/pages/Roles/utils/difference.ts","../../admin/src/utils/arrays.ts","../../admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.ts","../../admin/src/pages/Settings/pages/Roles/utils/permissions.ts","../../admin/src/pages/Settings/pages/Roles/utils/forms.ts","../../admin/src/pages/Settings/pages/Roles/utils/layouts.ts","../../admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.ts","../../admin/src/pages/Settings/pages/Roles/utils/updateValues.ts","../../admin/src/pages/Settings/pages/Roles/utils/constants.ts","../../admin/src/pages/Settings/pages/Roles/utils/removeConditionKeyFromData.ts","../../admin/src/pages/Settings/pages/Roles/utils/getCheckboxState.ts","../../admin/src/pages/Settings/pages/Roles/components/CollapseLabel.tsx","../../admin/src/pages/Settings/pages/Roles/components/HiddenAction.tsx","../../admin/src/pages/Settings/pages/Roles/components/RequiredSign.tsx","../../admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.tsx","../../admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.tsx","../../admin/src/pages/Settings/pages/Roles/components/ConditionsButton.tsx","../../admin/src/pages/Settings/pages/Roles/components/ConditionsModal.tsx","../../admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.tsx","../../admin/src/pages/Settings/pages/Roles/components/GlobalActions.tsx","../../admin/src/pages/Settings/pages/Roles/components/ContentTypes.tsx","../../admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.tsx","../../admin/src/pages/Settings/pages/Roles/components/Permissions.tsx"],"sourcesContent":["import { createContext } from '@radix-ui/react-context';\n\nimport { Condition } from '../../../../../../../shared/contracts/permissions';\n\nimport type {\n OnChangeCollectionTypeGlobalActionCheckboxAction,\n OnChangeCollectionTypeRowLeftCheckboxAction,\n OnChangeConditionsAction,\n State,\n} from '../components/Permissions';\n\n// Note: I had to guess most of these types based on the name and usage, but I actually don't\n// know if they are correct, because the usage is very generic. Feel free to correct them if\n// they create problems.\nexport interface PermissionsDataManagerContextValue extends Pick<State, 'modifiedData'> {\n availableConditions: Condition[];\n onChangeCollectionTypeLeftActionRowCheckbox: (\n pathToCollectionType: OnChangeCollectionTypeRowLeftCheckboxAction['pathToCollectionType'],\n propertyName: OnChangeCollectionTypeRowLeftCheckboxAction['propertyName'],\n rowName: OnChangeCollectionTypeRowLeftCheckboxAction['rowName'],\n value: OnChangeCollectionTypeRowLeftCheckboxAction['value']\n ) => void;\n onChangeConditions: (conditions: OnChangeConditionsAction['conditions']) => void;\n onChangeSimpleCheckbox: (event: { target: { name: string; value: boolean } }) => void;\n onChangeParentCheckbox: (event: { target: { name: string; value: boolean } }) => void;\n onChangeCollectionTypeGlobalActionCheckbox: (\n collectionTypeKind: OnChangeCollectionTypeGlobalActionCheckboxAction['collectionTypeKind'],\n actionId: OnChangeCollectionTypeGlobalActionCheckboxAction['actionId'],\n value: OnChangeCollectionTypeGlobalActionCheckboxAction['value']\n ) => void;\n}\n\nconst [PermissionsDataManagerProvider, usePermissionsDataManagerContext] =\n createContext<PermissionsDataManagerContextValue>('PermissionsDataManager');\n\nexport const usePermissionsDataManager = () =>\n usePermissionsDataManagerContext('usePermissionsDataManager');\n\nexport { PermissionsDataManagerProvider };\n","import isEqual from 'lodash/isEqual';\nimport isObject from 'lodash/isObject';\nimport transform from 'lodash/transform';\n\ntype ObjectDiff<T> = {\n [P in keyof T]?: T[P] extends Record<string, unknown> ? ObjectDiff<T[P]> : T[P];\n};\n\nfunction difference<T extends Record<string, unknown>>(object: T, base: T): ObjectDiff<T> {\n function changes(object: T, base: T): ObjectDiff<T> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return transform(object, (result, value: any, key: keyof ObjectDiff<T>) => {\n if (!isEqual(value, base[key])) {\n result[key] =\n isObject(value) && isObject(base[key]) ? changes(value as T, base[key] as T) : value;\n }\n return result;\n });\n }\n\n return changes(object, base);\n}\n\nexport { difference };\n","/**\n * @internal\n * @description Mutates a value to be a union of flat values, no arrays allowed.\n */\ntype Flat<T> = T extends string ? T : T extends ArrayLike<any> ? never : T;\n\n/**\n * @internal\n */\ninterface RecursiveArray<T> extends Array<T | RecursiveArray<T>> {}\n/**\n * @internal\n */\ninterface ArrayOfRecursiveArraysOrValues<T> extends ArrayLike<T | RecursiveArray<T>> {}\n\n/**\n * @internal\n *\n * @description Flattens an array recursively.\n */\nconst flattenDeep = <T>(\n array?: ArrayOfRecursiveArraysOrValues<T> | null | undefined\n): Array<Flat<T>> => {\n if (Array.isArray(array)) {\n return array.reduce(\n (acc, value) => {\n if (Array.isArray(value)) {\n acc.push(...flattenDeep(value));\n } else {\n acc.push(value);\n }\n\n return acc;\n },\n [] as Array<Flat<T>>\n );\n } else {\n return [];\n }\n};\n\nexport { flattenDeep };\nexport type { Flat, RecursiveArray, ArrayOfRecursiveArraysOrValues };\n","import { Flat, flattenDeep } from '../../../../../utils/arrays';\nimport { isObject } from '../../../../../utils/objects';\n\nconst createArrayOfValues = <TData>(obj: unknown): Array<Flat<TData>> => {\n if (!isObject(obj)) {\n return [];\n }\n\n return flattenDeep(\n Object.values(obj).map((value) => {\n if (isObject(value)) {\n return createArrayOfValues(value);\n }\n\n return value;\n })\n );\n};\n\nexport { createArrayOfValues };\n","import { isObject } from '../../../../../utils/objects';\n\nimport { createArrayOfValues } from './createArrayOfValues';\n\nimport type { ConditionForm, Form, PropertyChildForm } from './forms';\nimport type { UpdatePermissions } from '../../../../../../../shared/contracts/roles';\nimport type { Permission } from '../../../../../../../shared/contracts/shared';\nimport type { PermissionsDataManagerContextValue } from '../hooks/usePermissionsDataManager';\n\ntype PermissionApiBody = UpdatePermissions.Request['body']['permissions'];\n\n/**\n * @description Given a users permissions array we find the first one that matches a provided subject & action\n */\nconst findMatchingPermission = (\n permissions: Permission[],\n action: string,\n subject: string | null\n) => permissions.find((perm) => perm.action === action && perm.subject === subject);\n\nconst formatPermissionsForAPI = (\n modifiedData: PermissionsDataManagerContextValue['modifiedData']\n): PermissionApiBody => {\n const pluginsPermissions = formatSettingsPermissions(modifiedData.plugins);\n const settingsPermissions = formatSettingsPermissions(modifiedData.settings);\n const collectionTypesPermissions = formatContentTypesPermissions(modifiedData.collectionTypes);\n const singleTypesPermissions = formatContentTypesPermissions(modifiedData.singleTypes);\n\n return [\n ...pluginsPermissions,\n ...settingsPermissions,\n ...collectionTypesPermissions,\n ...singleTypesPermissions,\n ];\n};\n\nconst formatSettingsPermissions = (\n settingsPermissionsObject:\n | PermissionsDataManagerContextValue['modifiedData']['plugins']\n | PermissionsDataManagerContextValue['modifiedData']['settings']\n): PermissionApiBody => {\n return Object.values(settingsPermissionsObject).reduce<PermissionApiBody>((formAcc, form) => {\n const currentCategoryPermissions = Object.values(form).reduce<PermissionApiBody>(\n (childFormAcc, childForm) => {\n const permissions = Object.entries(childForm).reduce<PermissionApiBody>(\n (\n responsesAcc,\n [\n actionName,\n {\n conditions,\n properties: { enabled },\n },\n ]\n ) => {\n if (!enabled) {\n return responsesAcc;\n }\n\n responsesAcc.push({\n action: actionName,\n subject: null,\n conditions: createConditionsArray(conditions),\n properties: {},\n });\n\n return responsesAcc;\n },\n []\n );\n\n return [...childFormAcc, ...permissions];\n },\n []\n );\n\n return [...formAcc, ...currentCategoryPermissions];\n }, []);\n};\n\nconst formatContentTypesPermissions = (contentTypesPermissions: Form): PermissionApiBody => {\n const permissions = Object.entries(contentTypesPermissions).reduce<PermissionApiBody>(\n (allPermissions, current) => {\n const [subject, currentSubjectActions] = current;\n\n const permissions = Object.entries(currentSubjectActions).reduce<PermissionApiBody>(\n (acc, current) => {\n const [actionName, permissions] = current;\n const shouldCreatePermission = createArrayOfValues(permissions).some((val) => val);\n\n if (!shouldCreatePermission) {\n return acc;\n }\n\n if (!permissions?.properties?.enabled) {\n const createdPermissionsArray = Object.entries(permissions.properties).reduce<\n PermissionApiBody[number]\n >(\n (acc, current) => {\n const [propertyName, propertyValue] = current;\n\n // @ts-expect-error – `propertyValue` can be boolean or an object, but we don't account for it...\n acc.properties[propertyName] = createPropertyArray(propertyValue);\n\n return acc;\n },\n {\n action: actionName,\n subject,\n conditions: createConditionsArray(permissions.conditions),\n properties: {},\n }\n );\n\n return [...acc, createdPermissionsArray];\n }\n\n if (!permissions.properties.enabled) {\n return acc;\n }\n\n acc.push({\n action: actionName,\n subject,\n properties: {},\n conditions: createConditionsArray(permissions.conditions),\n });\n\n return acc;\n },\n []\n );\n\n return [...allPermissions, ...permissions];\n },\n []\n );\n\n return permissions;\n};\n\nconst createPropertyArray = (propertyValue: PropertyChildForm, prefix = ''): string[] => {\n return Object.entries(propertyValue).reduce<string[]>((acc, current) => {\n const [name, value] = current;\n\n if (isObject(value)) {\n return [...acc, ...createPropertyArray(value, `${prefix}${name}.`)];\n }\n\n if (value && !isObject(value)) {\n acc.push(`${prefix}${name}`);\n }\n\n return acc;\n }, []);\n};\n\nconst createConditionsArray = (conditions: ConditionForm) =>\n Object.entries(conditions)\n .filter(([, conditionValue]) => {\n return conditionValue;\n })\n .map(([conditionName]) => conditionName);\n\nexport { findMatchingPermission, formatPermissionsForAPI };\n","import isEmpty from 'lodash/isEmpty';\nimport merge from 'lodash/merge';\n\nimport { findMatchingPermission } from './permissions';\n\nimport type { GenericLayout } from './layouts';\nimport type {\n Condition,\n SettingPermission,\n ContentPermission,\n Subject,\n SubjectProperty,\n} from '../../../../../../../shared/contracts/permissions';\nimport type { Permission } from '../../../../../../../shared/contracts/shared';\n\ntype ConditionForm = Record<string, boolean>;\n\n/**\n * Creates the default condition form: { [conditionId]: false }\n */\nconst createDefaultConditionsForm = (\n conditions: Condition[],\n initialConditions: Permission['conditions'] = []\n): ConditionForm =>\n conditions.reduce<ConditionForm>((acc, current) => {\n acc[current.id] = initialConditions.indexOf(current.id) !== -1;\n\n return acc;\n }, {});\n\ninterface SubCategoryForm {\n properties: {\n enabled: boolean;\n };\n conditions: ConditionForm;\n}\n\ntype ChildrenForm = Record<\n string,\n SubCategoryForm | (Omit<SubCategoryForm, 'properties'> & PropertyForm)\n>;\n\ntype Form = Record<string, ChildrenForm>;\n\nconst createDefaultForm = <TLayout extends Omit<SettingPermission, 'category'>>(\n layout: GenericLayout<TLayout>[],\n conditions: Condition[],\n initialPermissions: Permission[] = []\n) => {\n return layout.reduce<Record<string, Form>>((acc, { categoryId, childrenForm }) => {\n const childrenDefaultForm = childrenForm.reduce<Form>((acc, current) => {\n acc[current.subCategoryId] = current.actions.reduce<ChildrenForm>((acc, current) => {\n const foundMatchingPermission = findMatchingPermission(\n initialPermissions,\n current.action,\n null\n );\n\n acc[current.action] = {\n properties: {\n enabled: foundMatchingPermission !== undefined,\n },\n conditions: createDefaultConditionsForm(\n conditions,\n foundMatchingPermission?.conditions ?? []\n ),\n };\n\n return acc;\n }, {});\n\n return acc;\n }, {});\n\n acc[categoryId] = childrenDefaultForm;\n\n return acc;\n }, {});\n};\n\ninterface PropertyChildForm extends Record<string, boolean | PropertyChildForm> {}\n\ninterface PropertyForm {\n properties: PropertyChildForm;\n}\n\n/**\n * Creates the default form for all the properties found in a content type's layout\n */\nconst createDefaultPropertiesForm = (\n properties: string[],\n subject: Subject,\n matchingPermission?: Permission\n): PropertyForm => {\n const recursivelyCreatePropertyForm = (\n { children = [] }: SubjectProperty,\n propertyValues: string[],\n prefix = ''\n ): PropertyChildForm => {\n return children.reduce<PropertyChildForm>((acc, current) => {\n if (current.children) {\n return {\n ...acc,\n [current.value]: recursivelyCreatePropertyForm(\n current,\n propertyValues,\n `${prefix}${current.value}.`\n ),\n };\n }\n\n const hasProperty = propertyValues.indexOf(`${prefix}${current.value}`) !== -1;\n\n acc[current.value] = hasProperty;\n\n return acc;\n }, {});\n };\n\n return properties.reduce<PropertyForm>(\n (acc, currentPropertyName) => {\n const foundProperty = subject.properties.find(({ value }) => value === currentPropertyName);\n\n if (foundProperty) {\n const matchingPermissionPropertyValues =\n matchingPermission?.properties[foundProperty.value] ?? [];\n\n const propertyForm = recursivelyCreatePropertyForm(\n foundProperty,\n matchingPermissionPropertyValues\n );\n\n acc.properties[currentPropertyName] = propertyForm;\n }\n\n return acc;\n },\n { properties: {} }\n );\n};\n\n/**\n * Creates the default for for a content type\n */\nconst createDefaultCTForm = (\n { subjects, actions = [] }: ContentPermission,\n conditions: Condition[],\n initialPermissions: Permission[] = []\n) => {\n return actions.reduce<Form>((defaultForm, action) => {\n type SubjectLayouts = Record<string, Subject>;\n\n const subjectLayouts = action.subjects.reduce<SubjectLayouts>((acc, current) => {\n const foundLayout = subjects.find(({ uid }) => uid === current) || null;\n\n if (foundLayout) {\n acc[current] = foundLayout;\n }\n\n return acc;\n }, {});\n\n // This can happen when an action is not related to a content type\n // for instance the D&P permission is applied only with the cts that\n // have the D&P features enabled\n if (isEmpty(subjectLayouts)) {\n return defaultForm;\n }\n\n // The object has the following shape: { [ctUID]: { [actionId]: { [property]: { enabled: false } } } }\n const contentTypesActions = Object.keys(subjectLayouts).reduce<Form>((acc, currentCTUID) => {\n const { actionId, applyToProperties } = action;\n const currentSubjectLayout = subjectLayouts[currentCTUID];\n const properties = currentSubjectLayout.properties.map(({ value }) => value);\n const doesNothaveProperty = properties.every(\n (property) => (applyToProperties || []).indexOf(property) === -1\n );\n\n const matchingPermission = findMatchingPermission(initialPermissions, actionId, currentCTUID);\n const conditionsForm = createDefaultConditionsForm(\n conditions,\n matchingPermission?.conditions ?? []\n );\n\n if (!acc[currentCTUID]) {\n acc[currentCTUID] = {};\n }\n\n if (isEmpty(applyToProperties) || doesNothaveProperty) {\n acc[currentCTUID][actionId] = {\n properties: {\n enabled: matchingPermission !== undefined,\n },\n conditions: conditionsForm,\n };\n\n return acc;\n }\n\n const propertiesForm = createDefaultPropertiesForm(\n applyToProperties,\n subjectLayouts[currentCTUID],\n matchingPermission\n );\n\n acc[currentCTUID][actionId] = { ...propertiesForm, conditions: conditionsForm };\n\n return acc;\n }, {});\n\n return merge(defaultForm, contentTypesActions);\n }, {});\n};\n\nexport { createDefaultConditionsForm, createDefaultForm, createDefaultCTForm };\nexport type { ConditionForm, Form, PropertyForm, SubCategoryForm, ChildrenForm, PropertyChildForm };\n","import groupBy from 'lodash/groupBy';\n\nimport { SettingPermission } from '../../../../../../../shared/contracts/permissions';\n\ninterface GenericLayout<TLayout> {\n category: string;\n categoryId: string;\n childrenForm: Array<{\n subCategoryName: string;\n subCategoryId: string;\n actions: TLayout[];\n }>;\n}\n\nconst formatLayout = <TLayout extends Omit<SettingPermission, 'category'>>(\n layout: TLayout[],\n groupByKey: keyof TLayout\n): GenericLayout<TLayout>[] => {\n return Object.entries(groupBy(layout, groupByKey)).map(([itemName, item]) => ({\n category: itemName,\n categoryId: itemName.split(' ').join('-'),\n childrenForm: Object.entries(groupBy(item, 'subCategory')).map(\n ([subCategoryName, actions]) => ({\n subCategoryName,\n subCategoryId: subCategoryName.split(' ').join('-'),\n actions,\n })\n ),\n }));\n};\n\nexport { formatLayout };\nexport type { GenericLayout };\n","import has from 'lodash/has';\nimport omit from 'lodash/omit';\n\nimport { isObject } from '../../../../../utils/objects';\n\nimport { createArrayOfValues } from './createArrayOfValues';\n/**\n * Changes all the conditions leaf when the properties are all falsy\n */\nconst updateConditionsToFalse = (obj: object): object => {\n return Object.keys(obj).reduce((acc, current) => {\n // @ts-expect-error – TODO: type better\n const currentValue = obj[current];\n\n if (isObject(currentValue) && !has(currentValue, 'conditions')) {\n return { ...acc, [current]: updateConditionsToFalse(currentValue) };\n }\n\n if (isObject(currentValue) && has(currentValue, 'conditions')) {\n const isActionEnabled = createArrayOfValues(omit(currentValue, 'conditions')).some(\n (val) => val\n );\n\n if (!isActionEnabled) {\n // @ts-expect-error – TODO: type better\n const updatedConditions = Object.keys(currentValue.conditions).reduce((acc1, current) => {\n // @ts-expect-error – TODO: type better\n acc1[current] = false;\n\n return acc1;\n }, {});\n\n return { ...acc, [current]: { ...currentValue, conditions: updatedConditions } };\n }\n }\n\n // @ts-expect-error – TODO: type better\n acc[current] = currentValue;\n\n return acc;\n }, {});\n};\n\nexport { updateConditionsToFalse };\n","import { isObject } from '../../../../../utils/objects';\n\n/**\n * Sets all the none object values of an object to the given one\n * It preserves the shape of the object, it only modifies the leafs\n * of an object.\n * This utility is very helpful when dealing with parent<>children checkboxes\n */\nconst updateValues = (obj: object, valueToSet: boolean, isFieldUpdate = false): object => {\n return Object.keys(obj).reduce((acc, current) => {\n const currentValue = obj[current as keyof object];\n\n if (current === 'conditions' && !isFieldUpdate) {\n // @ts-expect-error – TODO: type better\n acc[current] = currentValue;\n\n return acc;\n }\n\n if (isObject(currentValue)) {\n return { ...acc, [current]: updateValues(currentValue, valueToSet, current === 'fields') };\n }\n\n // @ts-expect-error – TODO: type better\n acc[current] = valueToSet;\n\n return acc;\n }, {});\n};\n\nexport { updateValues };\n","export const cellWidth = `12rem`;\nexport const firstRowWidth = `20rem`;\nexport const rowHeight = `5.3rem`;\n","type DataWithoutCondition<TData extends { conditions?: unknown }> = Omit<TData, 'conditions'>;\n\nconst removeConditionKeyFromData = <TData extends { conditions?: unknown }>(\n obj?: TData\n): DataWithoutCondition<TData> | null => {\n if (!obj) {\n return null;\n }\n\n return Object.entries(obj).reduce((acc, [key, value]) => {\n if (key !== 'conditions') {\n // @ts-expect-error – TODO: fix this type error correctly.\n acc[key] = value;\n }\n\n return acc;\n }, {} as DataWithoutCondition<TData>);\n};\n\nexport { removeConditionKeyFromData };\nexport type { DataWithoutCondition };\n","import { createArrayOfValues } from './createArrayOfValues';\nimport { removeConditionKeyFromData } from './removeConditionKeyFromData';\n\ninterface RecursiveRecordOfBooleans extends Record<string, boolean | RecursiveRecordOfBooleans> {}\n\nconst getCheckboxState = (dataObj: RecursiveRecordOfBooleans) => {\n const dataWithoutCondition = removeConditionKeyFromData(dataObj);\n\n const arrayOfValues = createArrayOfValues(dataWithoutCondition);\n\n if (!arrayOfValues.length) {\n return { hasAllActionsSelected: false, hasSomeActionsSelected: false };\n }\n\n const hasAllActionsSelected = arrayOfValues.every((val) => val);\n const hasSomeActionsSelected = arrayOfValues.some((val) => val) && !hasAllActionsSelected;\n\n return { hasAllActionsSelected, hasSomeActionsSelected };\n};\n\nexport { getCheckboxState };\nexport type { RecursiveRecordOfBooleans };\n","import { Flex, FlexComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst CollapseLabel = styled<FlexComponent>(Flex)<{ $isCollapsable: boolean }>`\n padding-right: ${({ theme }) => theme.spaces[2]};\n overflow: hidden;\n flex: 1;\n ${({ $isCollapsable }) => $isCollapsable && 'cursor: pointer;'}\n`;\n\nexport { CollapseLabel };\n","import { styled } from 'styled-components';\n\nimport { cellWidth } from '../utils/constants';\n\nconst HiddenAction = styled.div`\n width: ${cellWidth};\n`;\n\nexport { HiddenAction };\n","import { Box } from '@strapi/design-system';\n\nconst RequiredSign = () => (\n <Box color=\"danger700\" paddingLeft={1}>\n *\n </Box>\n);\n\nexport { RequiredSign };\n","import * as React from 'react';\n\nimport { Checkbox, Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { PermissionsDataManagerContextValue } from '../hooks/usePermissionsDataManager';\nimport { firstRowWidth } from '../utils/constants';\n\nimport { CollapseLabel } from './CollapseLabel';\n\ninterface RowLabelWithCheckboxProps {\n children: React.ReactNode;\n checkboxName?: string;\n isActive?: boolean;\n isCollapsable?: boolean;\n isFormDisabled?: boolean;\n label: string;\n onChange: PermissionsDataManagerContextValue['onChangeParentCheckbox'];\n onClick: () => void;\n someChecked?: boolean;\n value: boolean;\n}\n\nconst RowLabelWithCheckbox = ({\n checkboxName = '',\n children,\n isActive = false,\n isCollapsable = false,\n isFormDisabled = false,\n label,\n onChange,\n onClick,\n someChecked = false,\n value,\n}: RowLabelWithCheckboxProps) => {\n const { formatMessage } = useIntl();\n\n const collapseLabelProps = {\n title: label,\n alignItems: 'center',\n $isCollapsable: isCollapsable,\n };\n\n if (isCollapsable) {\n Object.assign(collapseLabelProps, {\n onClick,\n 'aria-expanded': isActive,\n onKeyDown({ key }: React.KeyboardEvent<HTMLDivElement>) {\n if (key === 'Enter' || key === ' ') {\n onClick();\n }\n },\n tabIndex: 0,\n role: 'button',\n });\n }\n\n return (\n <Flex alignItems=\"center\" paddingLeft={6} width={firstRowWidth} shrink={0}>\n <Box paddingRight={2}>\n <Checkbox\n name={checkboxName}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-all-by-permission`,\n defaultMessage: 'Select all {label} permissions',\n },\n { label }\n )}\n disabled={isFormDisabled}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) =>\n onChange({\n target: {\n name: checkboxName,\n value: !!value,\n },\n })\n }\n checked={someChecked ? 'indeterminate' : value}\n />\n </Box>\n <CollapseLabel {...collapseLabelProps}>\n <Typography ellipsis>{label}</Typography>\n {children}\n </CollapseLabel>\n </Flex>\n );\n};\n\nexport { RowLabelWithCheckbox };\nexport type { RowLabelWithCheckboxProps };\n","import * as React from 'react';\n\nimport {\n Checkbox,\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n Typography,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme, css } from 'styled-components';\n\nimport { Action, SubjectProperty } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth, rowHeight } from '../utils/constants';\nimport { getCheckboxState } from '../utils/getCheckboxState';\n\nimport { CollapseLabel } from './CollapseLabel';\nimport { HiddenAction } from './HiddenAction';\nimport { RequiredSign } from './RequiredSign';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsePropertyMatrix\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapsePropertyMatrixProps\n extends Pick<\n ActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'label' | 'pathToData' | 'propertyName'\n > {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n}\n\ninterface PropertyAction {\n label: string;\n actionId: string;\n isActionRelatedToCurrentProperty: boolean;\n}\n\nconst CollapsePropertyMatrix = ({\n availableActions = [],\n childrenForm = [],\n isFormDisabled,\n label,\n pathToData,\n propertyName,\n}: CollapsePropertyMatrixProps) => {\n const propertyActions = React.useMemo(\n () =>\n availableActions.map((action) => {\n const isActionRelatedToCurrentProperty =\n Array.isArray(action.applyToProperties) &&\n action.applyToProperties.indexOf(propertyName) !== -1 &&\n action.isDisplayed;\n\n return { label: action.label, actionId: action.actionId, isActionRelatedToCurrentProperty };\n }) satisfies PropertyAction[],\n [availableActions, propertyName]\n );\n\n return (\n <Flex display=\"inline-flex\" direction=\"column\" alignItems=\"stretch\" minWidth={0}>\n <Header label={label} headers={propertyActions} />\n <Box>\n {childrenForm.map(({ children: childrenForm, label, value, required }, i) => (\n <ActionRow\n childrenForm={childrenForm}\n key={value}\n label={label}\n isFormDisabled={isFormDisabled}\n name={value}\n required={required}\n propertyActions={propertyActions}\n pathToData={pathToData}\n propertyName={propertyName}\n isOdd={i % 2 === 0}\n />\n ))}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps\n extends Pick<\n SubActionRowProps,\n 'childrenForm' | 'isFormDisabled' | 'propertyActions' | 'propertyName'\n > {\n label: string;\n name: string;\n required?: boolean;\n pathToData: string;\n isOdd?: boolean;\n}\n\nconst ActionRow = ({\n childrenForm = [],\n label,\n isFormDisabled = false,\n name,\n required = false,\n pathToData,\n propertyActions,\n propertyName,\n isOdd = false,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n const {\n modifiedData,\n onChangeCollectionTypeLeftActionRowCheckbox,\n onChangeParentCheckbox,\n onChangeSimpleCheckbox,\n } = usePermissionsDataManager();\n\n const isActive = rowToOpen === name;\n\n const recursiveChildren = React.useMemo(() => {\n if (!Array.isArray(childrenForm)) {\n return [];\n }\n\n return childrenForm;\n }, [childrenForm]);\n\n const isCollapsable = recursiveChildren.length > 0;\n\n const handleClick = React.useCallback(() => {\n if (isCollapsable) {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n }\n }, [isCollapsable, name]);\n\n const handleChangeLeftRowCheckbox: RowLabelWithCheckboxProps['onChange'] = ({\n target: { value },\n }) => {\n onChangeCollectionTypeLeftActionRowCheckbox(pathToData, propertyName, name, value);\n };\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = React.useMemo(() => {\n return getRowLabelCheckboxState(propertyActions, modifiedData, pathToData, propertyName, name);\n }, [propertyActions, modifiedData, pathToData, propertyName, name]);\n\n return (\n <>\n <Wrapper\n alignItems=\"center\"\n $isCollapsable={isCollapsable}\n $isActive={isActive}\n background={isOdd ? 'neutral100' : 'neutral0'}\n >\n <Flex>\n <RowLabelWithCheckbox\n onChange={handleChangeLeftRowCheckbox}\n onClick={handleClick}\n isCollapsable={isCollapsable}\n isFormDisabled={isFormDisabled}\n label={label}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </RowLabelWithCheckbox>\n <Flex>\n {propertyActions.map(({ label, isActionRelatedToCurrentProperty, actionId }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={label} />;\n }\n\n const checkboxName = [\n ...pathToData.split('..'),\n actionId,\n 'properties',\n propertyName,\n name,\n ];\n\n if (!isCollapsable) {\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n return (\n <Flex\n key={actionId}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const data = get(modifiedData, checkboxName, {});\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(data);\n\n return (\n <Flex\n key={label}\n width={cellWidth}\n position=\"relative\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${name} ${label}` }\n )}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Flex>\n );\n })}\n </Flex>\n </Flex>\n </Wrapper>\n {isActive && (\n <SubActionRow\n childrenForm={recursiveChildren}\n isFormDisabled={isFormDisabled}\n parentName={name}\n pathToDataFromActionRow={pathToData}\n propertyName={propertyName}\n propertyActions={propertyActions}\n recursiveLevel={0}\n />\n )}\n </>\n );\n};\n\n/**\n *\n * Returns the state of the left checkbox of a ActionRow main checkbox\n */\nconst getRowLabelCheckboxState = (\n propertyActions: PropertyAction[],\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToContentType: string,\n propertyToCheck: string,\n targetKey: string\n) => {\n const actionIds = propertyActions.reduce<string[]>((acc, current) => {\n if (current.isActionRelatedToCurrentProperty) {\n acc.push(current.actionId);\n }\n\n return acc;\n }, []);\n\n const data = actionIds.reduce<Record<string, boolean>>((acc, current) => {\n const mainData = get(\n modifiedData,\n [...pathToContentType.split('..'), current, 'properties', propertyToCheck, targetKey],\n false\n );\n\n acc[current] = mainData;\n\n return acc;\n }, {});\n\n return getCheckboxState(data);\n};\n\nconst Wrapper = styled<FlexComponent>(Flex)<{ $isCollapsable?: boolean; $isActive?: boolean }>`\n height: ${rowHeight};\n flex: 1;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst CarretIcon = styled(CaretDown)<{ $isActive: boolean }>`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.neutral200};\n }\n\n transform: rotate(${({ $isActive }) => ($isActive ? '180' : '0')}deg);\n margin-left: ${({ theme }) => theme.spaces[2]};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SubActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SubActionRowProps {\n childrenForm: SubjectProperty['children'];\n isFormDisabled?: boolean;\n parentName: string;\n pathToDataFromActionRow: string;\n propertyActions: PropertyAction[];\n propertyName: string;\n recursiveLevel: number;\n}\n\nconst SubActionRow = ({\n childrenForm = [],\n isFormDisabled,\n recursiveLevel,\n pathToDataFromActionRow,\n propertyActions,\n parentName,\n propertyName,\n}: SubActionRowProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } =\n usePermissionsDataManager();\n const [rowToOpen, setRowToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleSubLevel = (name: string) => {\n setRowToOpen((prev) => {\n if (prev === name) {\n return null;\n }\n\n return name;\n });\n };\n\n const displayedRecursiveChildren = React.useMemo(() => {\n if (!rowToOpen) {\n return null;\n }\n\n return childrenForm.find(({ value }) => value === rowToOpen);\n }, [rowToOpen, childrenForm]);\n\n return (\n <Box paddingLeft={`3.2rem`}>\n <TopTimeline />\n {childrenForm.map(({ label, value, required, children: subChildrenForm }, index) => {\n const isVisible = index + 1 < childrenForm.length;\n const isArrayType = Array.isArray(subChildrenForm);\n const isActive = rowToOpen === value;\n\n return (\n <LeftBorderTimeline key={value} $isVisible={isVisible}>\n <Flex height={rowHeight}>\n <StyledBox>\n <Svg\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n $color=\"primary200\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.02477 14.7513C8.65865 17.0594 11.6046 18.6059 17.5596 18.8856C18.6836 18.9384 19.5976 19.8435 19.5976 20.9688V20.9688C19.5976 22.0941 18.6841 23.0125 17.5599 22.9643C10.9409 22.6805 6.454 20.9387 3.75496 17.1258C0.937988 13.1464 0.486328 7.39309 0.486328 0.593262H4.50974C4.50974 7.54693 5.06394 11.9813 7.02477 14.7513Z\"\n fill=\"#D9D8FF\"\n />\n </Svg>\n </StyledBox>\n <Flex style={{ flex: 1 }}>\n <RowStyle $level={recursiveLevel} $isActive={isActive} $isCollapsable={isArrayType}>\n <CollapseLabel\n alignItems=\"center\"\n $isCollapsable={isArrayType}\n {...(isArrayType && {\n onClick: () => handleClickToggleSubLevel(value),\n 'aria-expanded': isActive,\n onKeyDown: ({ key }: React.KeyboardEvent<HTMLDivElement>) =>\n (key === 'Enter' || key === ' ') && handleClickToggleSubLevel(value),\n tabIndex: 0,\n role: 'button',\n })}\n title={label}\n >\n <RowLabel ellipsis>{label}</RowLabel>\n {required && <RequiredSign />}\n <CarretIcon $isActive={isActive} />\n </CollapseLabel>\n </RowStyle>\n <Flex style={{ flex: 1 }}>\n {propertyActions.map(\n ({ actionId, label: propertyLabel, isActionRelatedToCurrentProperty }) => {\n if (!isActionRelatedToCurrentProperty) {\n return <HiddenAction key={actionId} />;\n }\n /*\n * Usually we use a 'dot' in order to know the key path of an object for which we want to change the value.\n * Since an action and a subject are both separated by '.' or '::' we chose to use the '..' separators\n */\n const checkboxName = [\n ...pathToDataFromActionRow.split('..'),\n actionId,\n 'properties',\n propertyName,\n ...parentName.split('..'),\n value,\n ];\n\n const checkboxValue = get(modifiedData, checkboxName, false);\n\n if (!subChildrenForm) {\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={checkboxValue}\n />\n </Flex>\n );\n }\n\n const { hasAllActionsSelected, hasSomeActionsSelected } =\n getCheckboxState(checkboxValue);\n\n return (\n <Flex\n key={propertyLabel}\n position=\"relative\"\n width={cellWidth}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Checkbox\n key={propertyLabel}\n disabled={isFormDisabled}\n name={checkboxName.join('..')}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${parentName} ${label} ${propertyLabel}` }\n )}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName.join('..'),\n value: !!value,\n },\n });\n }}\n checked={\n hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected\n }\n />\n </Flex>\n );\n }\n )}\n </Flex>\n </Flex>\n </Flex>\n {displayedRecursiveChildren && isActive && (\n <Box paddingBottom={2}>\n <SubActionRow\n isFormDisabled={isFormDisabled}\n parentName={`${parentName}..${value}`}\n pathToDataFromActionRow={pathToDataFromActionRow}\n propertyActions={propertyActions}\n propertyName={propertyName}\n recursiveLevel={recursiveLevel + 1}\n childrenForm={displayedRecursiveChildren.children}\n />\n </Box>\n )}\n </LeftBorderTimeline>\n );\n })}\n </Box>\n );\n};\n\nconst LeftBorderTimeline = styled<BoxComponent>(Box)<{ $isVisible?: boolean }>`\n border-left: ${({ $isVisible, theme }) =>\n $isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};\n`;\n\nconst RowStyle = styled<FlexComponent>(Flex)<{\n $level: number;\n $isCollapsable?: boolean;\n $isActive?: boolean;\n}>`\n padding-left: ${({ theme }) => theme.spaces[4]};\n width: ${({ $level }) => 145 - $level * 36}px;\n\n &:hover {\n ${({ $isCollapsable, theme }) => $isCollapsable && activeStyle(theme)}\n }\n\n ${({ $isCollapsable }) =>\n $isCollapsable &&\n `\n ${CarretIcon} {\n display: flex;\n }\n `}\n ${({ $isActive, theme }) => $isActive && activeStyle(theme)};\n`;\n\nconst RowLabel = styled<TypographyComponent>(Typography)``;\n\nconst TopTimeline = styled.div`\n padding-top: ${({ theme }) => theme.spaces[2]};\n margin-top: ${({ theme }) => theme.spaces[2]};\n width: 0.4rem;\n background-color: ${({ theme }) => theme.colors.primary200};\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n`;\n\nconst StyledBox = styled<BoxComponent>(Box)`\n transform: translate(-4px, -12px);\n\n &:before {\n content: '';\n width: 0.4rem;\n height: 1.2rem;\n background: ${({ theme }) => theme.colors.primary200};\n display: block;\n }\n`;\n\nconst Svg = styled.svg<{ $color: keyof DefaultTheme['colors'] }>`\n position: relative;\n flex-shrink: 0;\n transform: translate(-0.5px, -1px);\n\n * {\n fill: ${({ theme, $color }) => theme.colors[$color]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n headers?: PropertyAction[];\n label: string;\n}\n\nconst Header = ({ headers = [], label }: HeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex>\n <Flex width={firstRowWidth} height={rowHeight} shrink={0} alignItems=\"center\" paddingLeft={6}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'Settings.roles.form.permission.property-label',\n defaultMessage: '{label} permissions',\n },\n { label }\n )}\n </Typography>\n </Flex>\n {headers.map((header) => {\n if (!header.isActionRelatedToCurrentProperty) {\n return <Flex width={cellWidth} shrink={0} key={header.label} />;\n }\n\n return (\n <Flex width={cellWidth} shrink={0} justifyContent=\"center\" key={header.label}>\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`,\n defaultMessage: header.label,\n })}\n </Typography>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst activeStyle = (theme: DefaultTheme) => css`\n color: ${theme.colors.primary600};\n font-weight: ${theme.fontWeights.bold};\n\n ${CarretIcon} {\n path {\n fill: ${theme.colors.primary600};\n }\n }\n`;\n\nexport { CollapsePropertyMatrix };\n","import * as React from 'react';\n\nimport { Box, BoxComponent, Button, ButtonProps } from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\ninterface ConditionsButtonProps extends Pick<ButtonProps, 'className' | 'onClick' | 'variant'> {\n hasConditions?: boolean;\n}\n\nconst ConditionsButtonImpl = React.forwardRef<HTMLButtonElement, ConditionsButtonProps>(\n ({ onClick, className, hasConditions = false, variant = 'tertiary' }, ref) => {\n const { formatMessage } = useIntl();\n\n return (\n <ButtonContainer $hasConditions={hasConditions} className={className}>\n <Button variant={variant} startIcon={<Cog />} onClick={onClick} ref={ref} type=\"button\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Button>\n </ButtonContainer>\n );\n }\n);\n\nconst ButtonContainer = styled<BoxComponent>(Box)<{ $hasConditions?: boolean }>`\n ${({ $hasConditions, theme }) =>\n $hasConditions &&\n `\n &:before {\n content: '';\n position: absolute;\n top: -3px;\n left: -10px;\n width: 6px;\n height: 6px;\n border-radius: 2rem;\n background: ${theme.colors.primary600};\n }\n `}\n`;\n\n/**\n * We reference the component directly in other styled-components\n * and as such we need it to have a className already assigned.\n * Therefore we wrapped the implementation in a styled function.\n */\nconst ConditionsButton = styled(ConditionsButtonImpl)``;\n\nexport { ConditionsButton };\nexport type { ConditionsButtonProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Modal,\n MultiSelectNested,\n MultiSelectNestedProps,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport groupBy from 'lodash/groupBy';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\n\nimport type { HiddenCheckboxAction, VisibleCheckboxAction } from './ContentTypeCollapses';\nimport type { ConditionForm } from '../utils/forms';\n\n/* -------------------------------------------------------------------------------------------------\n * ConditionsModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConditionAction extends Pick<ActionRowProps, 'label'> {\n actionId: string;\n isDisplayed: boolean;\n hasSomeActionsSelected?: boolean;\n hasAllActionsSelected?: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface ConditionsModalProps extends Pick<ActionRowProps, 'isFormDisabled'> {\n actions?: Array<ConditionAction | HiddenCheckboxAction | VisibleCheckboxAction>;\n headerBreadCrumbs?: string[];\n onClose?: () => void;\n}\n\nconst ConditionsModal = ({\n actions = [],\n headerBreadCrumbs = [],\n isFormDisabled,\n onClose,\n}: ConditionsModalProps) => {\n const { formatMessage } = useIntl();\n const { availableConditions, modifiedData, onChangeConditions } = usePermissionsDataManager();\n\n const arrayOfOptionsGroupedByCategory = React.useMemo(() => {\n return Object.entries(groupBy(availableConditions, 'category'));\n }, [availableConditions]);\n\n const actionsToDisplay = actions.filter<VisibleCheckboxAction | ConditionAction>(\n // @ts-expect-error – TODO: fix this type issue\n ({ isDisplayed, hasSomeActionsSelected, hasAllActionsSelected }) =>\n isDisplayed && Boolean(hasSomeActionsSelected || hasAllActionsSelected)\n );\n\n const [state, setState] = React.useState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n const handleChange = (name: string, values: ConditionForm) => {\n setState(\n produce((draft) => {\n if (!draft[name]) {\n draft[name] = {};\n }\n\n if (!draft[name].default) {\n draft[name].default = {};\n }\n\n draft[name].default = values;\n })\n );\n };\n\n const handleSubmit = () => {\n const conditionsWithoutCategory = Object.entries(state).reduce<Record<string, ConditionForm>>(\n (acc, current) => {\n const [key, value] = current;\n\n const merged = Object.values(value).reduce((acc1, current1) => {\n return { ...acc1, ...current1 };\n }, {});\n\n acc[key] = merged;\n\n return acc;\n },\n {}\n );\n\n onChangeConditions(conditionsWithoutCategory);\n onClose && onClose();\n };\n\n const onCloseModal = () => {\n setState(\n createDefaultConditionsForm(actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory)\n );\n\n onClose && onClose();\n };\n\n return (\n <Modal.Content>\n <Modal.Header>\n <Breadcrumbs id=\"condition-modal-breadcrumbs\" label={headerBreadCrumbs.join(', ')}>\n {headerBreadCrumbs.map((label, index, arr) => (\n <Crumb isCurrent={index === arr.length - 1} key={label}>\n {upperFirst(\n formatMessage({\n id: label,\n defaultMessage: label,\n })\n )}\n </Crumb>\n ))}\n </Breadcrumbs>\n </Modal.Header>\n <Modal.Body>\n {actionsToDisplay.length === 0 && (\n <Typography>\n {formatMessage({\n id: 'Settings.permissions.conditions.no-actions',\n defaultMessage:\n 'You first need to select actions (create, read, update, ...) before defining conditions on them.',\n })}\n </Typography>\n )}\n <ul>\n {actionsToDisplay.map(({ actionId, label, pathToConditionsObject }, index) => {\n const name = pathToConditionsObject.join('..');\n\n return (\n <ActionRow\n key={actionId}\n arrayOfOptionsGroupedByCategory={arrayOfOptionsGroupedByCategory}\n label={label}\n isFormDisabled={isFormDisabled}\n isGrey={index % 2 === 0}\n name={name}\n onChange={handleChange}\n value={get(state, name, {})}\n />\n );\n })}\n </ul>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={() => onCloseModal()}>\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button onClick={handleSubmit}>\n {formatMessage({\n id: 'Settings.permissions.conditions.apply',\n defaultMessage: 'Apply',\n })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n );\n};\n\nconst createDefaultConditionsForm = (\n actionsToDisplay: Array<ConditionAction | VisibleCheckboxAction>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n arrayOfOptionsGroupedByCategory: ActionRowProps['arrayOfOptionsGroupedByCategory']\n) => {\n return actionsToDisplay.reduce<Record<string, Record<string, ConditionForm>>>((acc, current) => {\n const valueFromModifiedData: ConditionForm = get(\n modifiedData,\n [...current.pathToConditionsObject, 'conditions'],\n {}\n );\n\n const categoryDefaultForm = arrayOfOptionsGroupedByCategory.reduce<\n Record<string, ConditionForm>\n >((acc, current) => {\n const [categoryName, relatedConditions] = current;\n\n const conditionsForm = relatedConditions.reduce<ConditionForm>((acc, current) => {\n acc[current.id] = get(valueFromModifiedData, current.id, false);\n\n return acc;\n }, {});\n\n acc[categoryName] = conditionsForm;\n\n return acc;\n }, {});\n\n acc[current.pathToConditionsObject.join('..')] = categoryDefaultForm;\n\n return acc;\n }, {});\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ActionRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ActionRowProps {\n arrayOfOptionsGroupedByCategory: Array<\n [string, PermissionsDataManagerContextValue['availableConditions']]\n >;\n isFormDisabled?: boolean;\n isGrey?: boolean;\n label: string;\n name: string;\n onChange?: (name: string, values: Record<string, boolean>) => void;\n value: Record<string, ConditionForm>;\n}\n\nconst ActionRow = ({\n arrayOfOptionsGroupedByCategory,\n isFormDisabled = false,\n isGrey = false,\n label,\n name,\n onChange,\n value,\n}: ActionRowProps) => {\n const { formatMessage } = useIntl();\n\n const handleChange: MultiSelectNestedProps['onChange'] = (val) => {\n if (onChange) {\n onChange(name, getNewStateFromChangedValues(arrayOfOptionsGroupedByCategory, val));\n }\n };\n\n return (\n <Flex\n tag=\"li\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n paddingBottom={3}\n paddingTop={3}\n justifyContent={'space-evenly'}\n >\n <Flex style={{ width: 180 }}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.permissions.conditions.can',\n defaultMessage: 'Can',\n })}\n &nbsp;\n </Typography>\n <Typography variant=\"sigma\" title={label} textColor=\"primary600\" ellipsis>\n {formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n })}\n </Typography>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n &nbsp;\n {formatMessage({\n id: 'Settings.permissions.conditions.when',\n defaultMessage: 'When',\n })}\n </Typography>\n </Flex>\n <Box style={{ maxWidth: 430, width: '100%' }}>\n <MultiSelectNested\n id={name}\n customizeContent={(values = []) => `${values.length} currently selected`}\n onChange={handleChange}\n value={getSelectedValues(value)}\n options={getNestedOptions(arrayOfOptionsGroupedByCategory)}\n disabled={isFormDisabled}\n />\n </Box>\n </Flex>\n );\n};\n\nconst getSelectedValues = (rawValue: Record<string, ConditionForm>): string[] =>\n Object.values(rawValue)\n .map((x) =>\n Object.entries(x)\n .filter(([, value]) => value)\n .map(([key]) => key)\n )\n .flat();\n\nconst getNestedOptions = (options: ActionRowProps['arrayOfOptionsGroupedByCategory']) =>\n options.reduce<MultiSelectNestedProps['options']>((acc, [label, children]) => {\n acc.push({\n label: capitalise(label),\n children: children.map((child) => ({\n label: child.displayName,\n value: child.id,\n })),\n });\n\n return acc;\n }, []);\n\nconst getNewStateFromChangedValues = (\n options: ActionRowProps['arrayOfOptionsGroupedByCategory'],\n changedValues: string[]\n) =>\n options\n .map(([, values]) => values)\n .flat()\n .reduce<Record<string, boolean>>(\n (acc, curr) => ({ [curr.id]: changedValues.includes(curr.id), ...acc }),\n {}\n );\n\nexport { ConditionsModal };\nexport type { ConditionsModalProps };\n","import * as React from 'react';\n\nimport { Checkbox, Box, BoxComponent, Flex, FlexComponent, Modal } from '@strapi/design-system';\nimport { ChevronDown, ChevronUp } from '@strapi/icons';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport omit from 'lodash/omit';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme } from 'styled-components';\n\nimport { Action, Subject } from '../../../../../../../shared/contracts/permissions';\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, rowHeight } from '../utils/constants';\nimport { createArrayOfValues } from '../utils/createArrayOfValues';\nimport { ConditionForm } from '../utils/forms';\nimport { getCheckboxState } from '../utils/getCheckboxState';\n\nimport { CollapsePropertyMatrix } from './CollapsePropertyMatrix';\nimport { ConditionsButton } from './ConditionsButton';\nimport { ConditionsModal } from './ConditionsModal';\nimport { HiddenAction } from './HiddenAction';\nimport { RowLabelWithCheckbox, RowLabelWithCheckboxProps } from './RowLabelWithCheckbox';\n\n/* -------------------------------------------------------------------------------------------------\n * ContentTypeCollapses\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ContentTypeCollapsesProps extends Pick<CollapseProps, 'pathToData'> {\n actions?: Action[];\n isFormDisabled?: boolean;\n subjects?: Subject[];\n}\n\nconst ContentTypeCollapses = ({\n actions = [],\n isFormDisabled,\n pathToData,\n subjects = [],\n}: ContentTypeCollapsesProps) => {\n const [collapseToOpen, setCollapseToOpen] = React.useState<string | null>(null);\n\n const handleClickToggleCollapse = (collapseName: string) => () => {\n const nextCollapseToOpen = collapseToOpen === collapseName ? null : collapseName;\n\n setCollapseToOpen(nextCollapseToOpen);\n };\n\n return (\n <>\n {subjects.map(({ uid, label, properties }, index) => {\n const isActive = collapseToOpen === uid;\n const availableActions = actions.map((action) => ({\n ...action,\n isDisplayed: Array.isArray(action.subjects) && action.subjects.indexOf(uid) !== -1,\n }));\n return (\n <Flex\n key={uid}\n direction=\"column\"\n display=\"inline-flex\"\n alignItems=\"stretch\"\n minWidth=\"100%\"\n borderColor={isActive ? 'primary600' : undefined}\n >\n <Collapse\n availableActions={availableActions}\n isActive={isActive}\n isGrey={index % 2 === 0}\n isFormDisabled={isFormDisabled}\n label={label}\n onClickToggle={handleClickToggleCollapse(uid)}\n pathToData={[pathToData, uid].join('..')}\n />\n {isActive &&\n properties.map(({ label: propertyLabel, value, children: childrenForm }) => {\n return (\n <CollapsePropertyMatrix\n availableActions={availableActions}\n childrenForm={childrenForm}\n isFormDisabled={isFormDisabled}\n label={propertyLabel}\n pathToData={[pathToData, uid].join('..')}\n propertyName={value}\n key={value}\n />\n );\n })}\n </Flex>\n );\n })}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Collapse\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CollapseProps\n extends Pick<RowLabelWithCheckboxProps, 'isActive' | 'isFormDisabled' | 'label'> {\n availableActions?: Array<Action & { isDisplayed: boolean }>;\n isGrey?: boolean;\n onClickToggle: RowLabelWithCheckboxProps['onClick'];\n pathToData: string;\n}\n\nconst Collapse = ({\n availableActions = [],\n isActive = false,\n isGrey = false,\n isFormDisabled = false,\n label,\n onClickToggle,\n pathToData,\n}: CollapseProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } =\n usePermissionsDataManager();\n const [isConditionModalOpen, setIsConditionModalOpen] = React.useState(false);\n\n // This corresponds to the data related to the CT left checkbox\n // modifiedData: { collectionTypes: { [ctuid]: {create: {properties: { fields: {f1: true} }, update: {}, ... } } } }\n const mainData = get(modifiedData, pathToData.split('..'), {});\n // The utils we are using: getCheckboxState, retrieves all the boolean leafs of an object in order\n // to return the state of checkbox. Since the conditions are not related to the property we need to remove the key from the object.\n const dataWithoutCondition = React.useMemo(() => {\n return Object.keys(mainData).reduce<Record<string, ConditionForm>>((acc, current) => {\n acc[current] = omit(mainData[current], 'conditions');\n\n return acc;\n }, {});\n }, [mainData]);\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(dataWithoutCondition);\n\n // Here we create an array of <checkbox>, since the state of each one of them is used in\n // order to know if whether or not we need to display the associated action in\n // the <ConditionsModal />\n const checkboxesActions = React.useMemo(() => {\n return generateCheckboxesActions(availableActions, modifiedData, pathToData);\n }, [availableActions, modifiedData, pathToData]);\n\n // @ts-expect-error – hasConditions does not exist on all versions of checkboxesActions.\n const doesConditionButtonHasConditions = checkboxesActions.some((action) => action.hasConditions);\n\n return (\n <BoxWrapper $isActive={isActive}>\n <Wrapper\n height={rowHeight}\n flex={1}\n alignItems=\"center\"\n background={isGrey ? 'neutral100' : 'neutral0'}\n >\n <RowLabelWithCheckbox\n isCollapsable\n isFormDisabled={isFormDisabled}\n label={capitalise(label)}\n checkboxName={pathToData}\n onChange={onChangeParentCheckbox}\n onClick={onClickToggle}\n someChecked={hasSomeActionsSelected}\n value={hasAllActionsSelected}\n isActive={isActive}\n >\n <Chevron paddingLeft={2}>{isActive ? <ChevronUp /> : <ChevronDown />}</Chevron>\n </RowLabelWithCheckbox>\n\n <Flex style={{ flex: 1 }}>\n {checkboxesActions.map(\n ({ actionId, hasSomeActionsSelected, isDisplayed, ...restAction }) => {\n if (!isDisplayed) {\n return <HiddenAction key={actionId} />;\n }\n\n const {\n hasConditions,\n hasAllActionsSelected,\n isParentCheckbox,\n checkboxName,\n label: permissionLabel,\n } = restAction as VisibleCheckboxAction;\n\n if (isParentCheckbox) {\n return (\n <Cell key={actionId} justifyContent=\"center\" alignItems=\"center\">\n {hasConditions && (\n <Box\n tag=\"span\"\n position=\"absolute\"\n top=\"-6px\"\n left=\"37px\"\n width=\"6px\"\n height=\"6px\"\n borderRadius=\"20px\"\n background=\"primary600\"\n />\n )}\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-by-permission`,\n defaultMessage: 'Select {label} permission',\n },\n { label: `${permissionLabel} ${label}` }\n )}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: checkboxName,\n value: !!value,\n },\n });\n }}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n />\n </Cell>\n );\n }\n\n return (\n <Cell key={actionId} justifyContent=\"center\" alignItems=\"center\">\n {hasConditions && (\n <Box\n tag=\"span\"\n position=\"absolute\"\n top=\"-6px\"\n left=\"37px\"\n width=\"6px\"\n height=\"6px\"\n borderRadius=\"20px\"\n background=\"primary600\"\n />\n )}\n <Checkbox\n disabled={isFormDisabled}\n name={checkboxName}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName,\n value: !!value,\n },\n });\n }}\n checked={hasConditions ? 'indeterminate' : hasAllActionsSelected}\n />\n </Cell>\n );\n }\n )}\n </Flex>\n </Wrapper>\n <Box bottom=\"10px\" right=\"9px\" position=\"absolute\">\n <Modal.Root\n open={isConditionModalOpen}\n onOpenChange={() => {\n setIsConditionModalOpen((prev) => !prev);\n }}\n >\n <Modal.Trigger>\n <ConditionsButton hasConditions={doesConditionButtonHasConditions} />\n </Modal.Trigger>\n <ConditionsModal\n headerBreadCrumbs={[label, 'Settings.permissions.conditions.conditions']}\n actions={checkboxesActions}\n isFormDisabled={isFormDisabled}\n onClose={() => {\n setIsConditionModalOpen(false);\n }}\n />\n </Modal.Root>\n </Box>\n </BoxWrapper>\n );\n};\n\ninterface VisibleCheckboxAction {\n actionId: string;\n hasAllActionsSelected: boolean;\n hasSomeActionsSelected: boolean;\n isDisplayed: true;\n isParentCheckbox: boolean;\n checkboxName: string;\n label: string;\n hasConditions: boolean;\n pathToConditionsObject: string[];\n}\n\ninterface HiddenCheckboxAction {\n actionId: string;\n isDisplayed: false;\n hasAllActionsSelected?: never;\n hasSomeActionsSelected: boolean;\n}\n\nconst generateCheckboxesActions = (\n availableActions: Array<Action & { isDisplayed: boolean }>,\n modifiedData: PermissionsDataManagerContextValue['modifiedData'],\n pathToData: string\n): Array<VisibleCheckboxAction | HiddenCheckboxAction> => {\n return availableActions.map(({ actionId, isDisplayed, applyToProperties, label }) => {\n if (!isDisplayed) {\n return { actionId, hasSomeActionsSelected: false, isDisplayed };\n }\n\n const baseCheckboxNameArray = [...pathToData.split('..'), actionId];\n const checkboxNameArray = isEmpty(applyToProperties)\n ? [...baseCheckboxNameArray, 'properties', 'enabled']\n : baseCheckboxNameArray;\n const conditionsValue = get(modifiedData, [...baseCheckboxNameArray, 'conditions'], null);\n\n const baseCheckboxAction = {\n actionId,\n checkboxName: checkboxNameArray.join('..'),\n hasConditions: createArrayOfValues(conditionsValue).some((val) => val),\n isDisplayed,\n label,\n pathToConditionsObject: baseCheckboxNameArray,\n };\n\n if (isEmpty(applyToProperties)) {\n const value = get(modifiedData, checkboxNameArray, false);\n\n // Since applyToProperties is empty it is not a parent checkbox, therefore hasAllActionsSelected is\n // equal to hasSomeActionsSelected\n return {\n ...baseCheckboxAction,\n hasAllActionsSelected: value,\n hasSomeActionsSelected: value,\n isParentCheckbox: false,\n };\n }\n\n const mainData = get(modifiedData, checkboxNameArray, null);\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(mainData);\n\n return {\n ...baseCheckboxAction,\n hasAllActionsSelected,\n hasSomeActionsSelected,\n isParentCheckbox: true,\n };\n });\n};\n\nconst activeRowStyle = (theme: DefaultTheme, isActive?: boolean): string => `\n ${Wrapper} {\n background-color: ${theme.colors.primary100};\n color: ${theme.colors.primary600};\n border-radius: ${isActive ? '2px 2px 0 0' : '2px'};\n font-weight: ${theme.fontWeights.bold};\n }\n\n ${Chevron} {\n display: flex;\n }\n ${ConditionsButton} {\n display: block;\n }\n\n &:focus-within {\n ${() => activeRowStyle(theme, isActive)}\n }\n`;\n\nconst Wrapper = styled<FlexComponent>(Flex)`\n border: 1px solid transparent;\n`;\n\nconst BoxWrapper = styled.div<{ $isActive: boolean }>`\n display: inline-flex;\n min-width: 100%;\n position: relative;\n\n ${ConditionsButton} {\n display: none;\n }\n\n ${({ $isActive, theme }) => $isActive && activeRowStyle(theme, $isActive)}\n\n &:hover {\n ${({ theme, $isActive }) => activeRowStyle(theme, $isActive)}\n }\n`;\n\nconst Cell = styled<FlexComponent>(Flex)`\n width: ${cellWidth};\n position: relative;\n`;\n\nconst Chevron = styled<BoxComponent>(Box)`\n display: none;\n\n svg {\n width: 1.4rem;\n }\n\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nexport { ContentTypeCollapses };\nexport type { ContentTypeCollapsesProps, HiddenCheckboxAction, VisibleCheckboxAction };\n","import * as React from 'react';\n\nimport { Checkbox, Box, Flex, Typography } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\n\nimport { Action } from '../../../../../../../shared/contracts/permissions';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { cellWidth, firstRowWidth } from '../utils/constants';\nimport { RecursiveRecordOfBooleans, getCheckboxState } from '../utils/getCheckboxState';\nimport { removeConditionKeyFromData } from '../utils/removeConditionKeyFromData';\n\ninterface GlobalActionsProps {\n actions: Action[];\n isFormDisabled?: boolean;\n kind: Extract<keyof PermissionsDataManagerContextValue['modifiedData'], `${string}Types`>;\n}\n\nconst GlobalActions = ({ actions = [], isFormDisabled, kind }: GlobalActionsProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData, onChangeCollectionTypeGlobalActionCheckbox } = usePermissionsDataManager();\n\n const displayedActions = actions.filter(({ subjects }) => subjects && subjects.length);\n\n const checkboxesState = React.useMemo(() => {\n const actionsIds = displayedActions.map(({ actionId }) => actionId);\n\n const data = modifiedData[kind];\n\n const relatedActionsData = actionsIds.reduce<Record<string, RecursiveRecordOfBooleans>>(\n (acc, actionId) => {\n Object.keys(data).forEach((ctUid) => {\n const actionIdData = get(data, [ctUid, actionId]);\n\n const actionIdState = { [ctUid]: removeConditionKeyFromData(actionIdData)! };\n\n if (!acc[actionId]) {\n acc[actionId] = actionIdState;\n } else {\n acc[actionId] = { ...acc[actionId], ...actionIdState };\n }\n });\n\n return acc;\n },\n {}\n );\n\n const checkboxesState = Object.keys(relatedActionsData).reduce<\n Record<\n string,\n {\n hasAllActionsSelected: boolean;\n hasSomeActionsSelected: boolean;\n }\n >\n >((acc, current) => {\n acc[current] = getCheckboxState(relatedActionsData[current]);\n\n return acc;\n }, {});\n\n return checkboxesState;\n }, [modifiedData, displayedActions, kind]);\n\n return (\n <Box paddingBottom={4} paddingTop={6} style={{ paddingLeft: firstRowWidth }}>\n <Flex gap={0}>\n {displayedActions.map(({ label, actionId }) => {\n return (\n <Flex\n shrink={0}\n width={cellWidth}\n direction=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n key={actionId}\n gap={3}\n >\n <Typography variant=\"sigma\" textColor=\"neutral500\">\n {formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n })}\n </Typography>\n <Checkbox\n disabled={isFormDisabled}\n onCheckedChange={(value) => {\n onChangeCollectionTypeGlobalActionCheckbox(kind, actionId, !!value);\n }}\n name={actionId}\n aria-label={formatMessage(\n {\n id: `Settings.permissions.select-all-by-permission`,\n defaultMessage: 'Select all {label} permissions',\n },\n {\n label: formatMessage({\n id: `Settings.roles.form.permissions.${label.toLowerCase()}`,\n defaultMessage: label,\n }),\n }\n )}\n checked={\n get(checkboxesState, [actionId, 'hasSomeActionsSelected'], false)\n ? 'indeterminate'\n : get(checkboxesState, [actionId, 'hasAllActionsSelected'], false)\n }\n />\n </Flex>\n );\n })}\n </Flex>\n </Box>\n );\n};\n\nexport { GlobalActions };\nexport type { GlobalActionsProps };\n","import { Box } from '@strapi/design-system';\n\nimport { ContentPermission } from '../../../../../../../shared/contracts/permissions';\n\nimport { ContentTypeCollapses } from './ContentTypeCollapses';\nimport { GlobalActions, GlobalActionsProps } from './GlobalActions';\n\ninterface ContentTypesProps extends Pick<GlobalActionsProps, 'kind'> {\n isFormDisabled?: boolean;\n layout: ContentPermission;\n}\n\nconst ContentTypes = ({\n isFormDisabled,\n kind,\n layout: { actions, subjects },\n}: ContentTypesProps) => {\n const sortedSubjects = [...subjects].sort((a, b) => a.label.localeCompare(b.label));\n\n return (\n <Box background=\"neutral0\">\n <GlobalActions actions={actions} kind={kind} isFormDisabled={isFormDisabled} />\n <ContentTypeCollapses\n actions={actions}\n isFormDisabled={isFormDisabled}\n pathToData={kind}\n subjects={sortedSubjects}\n />\n </Box>\n );\n};\n\nexport { ContentTypes };\n","import * as React from 'react';\n\nimport {\n Accordion,\n Box,\n BoxComponent,\n Checkbox,\n Flex,\n Grid,\n Modal,\n Typography,\n} from '@strapi/design-system';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport {\n SettingPermission,\n PluginPermission,\n} from '../../../../../../../shared/contracts/permissions';\nimport { capitalise } from '../../../../../utils/strings';\nimport {\n PermissionsDataManagerContextValue,\n usePermissionsDataManager,\n} from '../hooks/usePermissionsDataManager';\nimport { createArrayOfValues } from '../utils/createArrayOfValues';\nimport { ChildrenForm, ConditionForm } from '../utils/forms';\nimport { RecursiveRecordOfBooleans, getCheckboxState } from '../utils/getCheckboxState';\nimport { removeConditionKeyFromData } from '../utils/removeConditionKeyFromData';\n\nimport { ConditionsButton } from './ConditionsButton';\nimport { ConditionsModal } from './ConditionsModal';\n\nimport type { GenericLayout } from '../utils/layouts';\n\n/* -------------------------------------------------------------------------------------------------\n * PluginsAndSettingsPermissions\n * -----------------------------------------------------------------------------------------------*/\n\ntype Layout = GenericLayout<SettingPermission | PluginPermission>[];\n\ninterface PluginsAndSettingsPermissionsProps extends Pick<RowProps, 'kind' | 'isFormDisabled'> {\n layout: Layout;\n}\n\nconst PluginsAndSettingsPermissions = ({\n layout,\n ...restProps\n}: PluginsAndSettingsPermissionsProps) => {\n return (\n <Box padding={6} background=\"neutral0\">\n <Accordion.Root size=\"M\">\n {layout.map(({ category, categoryId, childrenForm }, index) => {\n return (\n <Row\n key={category}\n childrenForm={childrenForm}\n variant={index % 2 === 1 ? 'primary' : 'secondary'}\n name={category}\n pathToData={[restProps.kind, categoryId]}\n {...restProps}\n />\n );\n })}\n </Accordion.Root>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Row\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RowProps\n extends Pick<Layout[number], 'childrenForm'>,\n Pick<Accordion.HeaderProps, 'variant'> {\n kind: Exclude<keyof PermissionsDataManagerContextValue['modifiedData'], `${string}Types`>;\n name: string;\n isFormDisabled?: boolean;\n pathToData: string[];\n}\n\nconst Row = ({\n childrenForm,\n kind,\n name,\n isFormDisabled = false,\n variant,\n pathToData,\n}: RowProps) => {\n const { formatMessage } = useIntl();\n\n const categoryName = name.split('::').pop() ?? '';\n\n return (\n <Accordion.Item value={name}>\n <Accordion.Header variant={variant}>\n <Accordion.Trigger\n caretPosition=\"right\"\n description={`${formatMessage(\n { id: 'Settings.permissions.category', defaultMessage: categoryName },\n { category: categoryName }\n )} ${kind === 'plugins' ? 'plugin' : kind}`}\n >\n {capitalise(categoryName)}\n </Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Content>\n <Box padding={6}>\n {childrenForm.map(({ actions, subCategoryName, subCategoryId }) => (\n <SubCategory\n key={subCategoryName}\n actions={actions}\n categoryName={categoryName}\n isFormDisabled={isFormDisabled}\n subCategoryName={subCategoryName}\n pathToData={[...pathToData, subCategoryId]}\n />\n ))}\n </Box>\n </Accordion.Content>\n </Accordion.Item>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SubCategory\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SubCategoryProps {\n actions?: Array<SettingPermission | PluginPermission>;\n categoryName: string;\n isFormDisabled?: boolean;\n subCategoryName: string;\n pathToData: string[];\n}\n\nconst SubCategory = ({\n actions = [],\n categoryName,\n isFormDisabled,\n subCategoryName,\n pathToData,\n}: SubCategoryProps) => {\n const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } =\n usePermissionsDataManager();\n const [isConditionModalOpen, setIsConditionModalOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n\n const mainData = get(modifiedData, pathToData, {});\n\n const dataWithoutCondition = React.useMemo(() => {\n return Object.keys(mainData).reduce<RecursiveRecordOfBooleans>((acc, current) => {\n acc[current] = removeConditionKeyFromData(mainData[current])!;\n\n return acc;\n }, {});\n }, [mainData]);\n\n const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(dataWithoutCondition);\n\n // We need to format the actions so it matches the shape of the ConditionsModal actions props\n const formattedActions = React.useMemo(() => {\n return actions.map((action) => {\n const checkboxName = [...pathToData, action.action, 'properties', 'enabled'];\n const checkboxValue = get(modifiedData, checkboxName, false);\n const conditionValue = get(modifiedData, [...pathToData, action.action, 'conditions'], {});\n const hasConditions = createArrayOfValues(conditionValue).some((val) => val);\n\n return {\n ...action,\n isDisplayed: checkboxValue,\n checkboxName: checkboxName.join('..'),\n hasSomeActionsSelected: checkboxValue,\n value: checkboxValue,\n hasConditions,\n label: action.displayName,\n actionId: action.action,\n pathToConditionsObject: [...pathToData, action.action],\n };\n });\n }, [actions, modifiedData, pathToData]);\n\n const datum: ChildrenForm = get(modifiedData, [...pathToData], {});\n\n const doesButtonHasCondition = createArrayOfValues(\n Object.entries(datum).reduce<Record<string, ConditionForm>>((acc, current) => {\n const [catName, { conditions }] = current;\n\n acc[catName] = conditions;\n\n return acc;\n }, {})\n ).some((val) => val);\n\n return (\n <>\n <Box>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {subCategoryName}\n </Typography>\n </Box>\n <Border flex={1} />\n <Box paddingLeft={4}>\n <Checkbox\n name={pathToData.join('..')}\n disabled={isFormDisabled}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeParentCheckbox({\n target: {\n name: pathToData.join('..'),\n value: !!value,\n },\n });\n }}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Flex paddingTop={6} paddingBottom={6}>\n <Grid.Root gap={2} style={{ flex: 1 }}>\n {formattedActions.map(({ checkboxName, value, action, displayName, hasConditions }) => {\n return (\n <Grid.Item col={3} key={action} direction=\"column\" alignItems=\"start\">\n <CheckboxWrapper $disabled={isFormDisabled} $hasConditions={hasConditions}>\n <Checkbox\n name={checkboxName}\n disabled={isFormDisabled}\n // Keep same signature as packages/core/admin/admin/src/components/Roles/Permissions/index.js l.91\n onCheckedChange={(value) => {\n onChangeSimpleCheckbox({\n target: {\n name: checkboxName,\n value: !!value,\n },\n });\n }}\n checked={value}\n >\n {displayName}\n </Checkbox>\n </CheckboxWrapper>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n <Modal.Root\n open={isConditionModalOpen}\n onOpenChange={() => {\n setIsConditionModalOpen((prev) => !prev);\n }}\n >\n <Modal.Trigger>\n <ConditionsButton hasConditions={doesButtonHasCondition} />\n </Modal.Trigger>\n <ConditionsModal\n headerBreadCrumbs={[categoryName, subCategoryName]}\n actions={formattedActions}\n isFormDisabled={isFormDisabled}\n onClose={() => {\n setIsConditionModalOpen(false);\n }}\n />\n </Modal.Root>\n </Flex>\n </Box>\n </>\n );\n};\n\nconst Border = styled<BoxComponent>(Box)`\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst CheckboxWrapper = styled.div<{ $hasConditions?: boolean; $disabled?: boolean }>`\n position: relative;\n word-break: keep-all;\n ${({ $hasConditions, $disabled, theme }) =>\n $hasConditions &&\n `\n &:before {\n content: '';\n position: absolute;\n top: -0.4rem;\n left: -0.8rem;\n width: 0.6rem;\n height: 0.6rem;\n border-radius: 2rem;\n background: ${$disabled ? theme.colors.neutral100 : theme.colors.primary600};\n }\n `}\n`;\n\nexport { PluginsAndSettingsPermissions };\n","import * as React from 'react';\n\nimport { Tabs } from '@strapi/design-system';\nimport { produce } from 'immer';\nimport cloneDeep from 'lodash/cloneDeep';\nimport get from 'lodash/get';\nimport has from 'lodash/has';\nimport isEmpty from 'lodash/isEmpty';\nimport set from 'lodash/set';\nimport { useIntl } from 'react-intl';\n\nimport * as PermissonContracts from '../../../../../../../shared/contracts/permissions';\nimport { Permission } from '../../../../../../../shared/contracts/shared';\nimport { isObject } from '../../../../../utils/objects';\nimport {\n PermissionsDataManagerContextValue,\n PermissionsDataManagerProvider,\n} from '../hooks/usePermissionsDataManager';\nimport { difference } from '../utils/difference';\nimport { ConditionForm, Form, createDefaultCTForm, createDefaultForm } from '../utils/forms';\nimport { GenericLayout, formatLayout } from '../utils/layouts';\nimport { formatPermissionsForAPI } from '../utils/permissions';\nimport { updateConditionsToFalse } from '../utils/updateConditionsToFalse';\nimport { updateValues } from '../utils/updateValues';\n\nimport { ContentTypes } from './ContentTypes';\nimport { PluginsAndSettingsPermissions } from './PluginsAndSettings';\n\nconst TAB_LABELS = [\n {\n labelId: 'app.components.LeftMenuLinkContainer.collectionTypes',\n defaultMessage: 'Collection Types',\n id: 'collectionTypes',\n },\n {\n labelId: 'app.components.LeftMenuLinkContainer.singleTypes',\n id: 'singleTypes',\n defaultMessage: 'Single Types',\n },\n {\n labelId: 'app.components.LeftMenuLinkContainer.plugins',\n defaultMessage: 'Plugins',\n id: 'plugins',\n },\n {\n labelId: 'app.components.LeftMenuLinkContainer.settings',\n defaultMessage: 'Settings',\n id: 'settings',\n },\n] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * Permissions\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface PermissionsAPI {\n getPermissions: () => {\n didUpdateConditions: boolean;\n permissionsToSend: Omit<Permission, 'id' | 'createdAt' | 'updatedAt' | 'actionParameters'>[];\n };\n resetForm: () => void;\n setFormAfterSubmit: () => void;\n}\n\ninterface PermissionsProps {\n isFormDisabled?: boolean;\n permissions?: Permission[];\n layout: PermissonContracts.GetAll.Response['data'];\n}\n\nconst Permissions = React.forwardRef<PermissionsAPI, PermissionsProps>(\n ({ layout, isFormDisabled, permissions = [] }, api) => {\n const [{ initialData, layouts, modifiedData }, dispatch] = React.useReducer(\n reducer,\n initialState,\n () => init(layout, permissions)\n );\n const { formatMessage } = useIntl();\n\n React.useImperativeHandle(api, () => {\n return {\n getPermissions() {\n const collectionTypesDiff = difference(\n initialData.collectionTypes,\n modifiedData.collectionTypes\n );\n const singleTypesDiff = difference(initialData.singleTypes, modifiedData.singleTypes);\n\n const contentTypesDiff = { ...collectionTypesDiff, ...singleTypesDiff };\n\n let didUpdateConditions;\n\n if (isEmpty(contentTypesDiff)) {\n didUpdateConditions = false;\n } else {\n didUpdateConditions = Object.values(contentTypesDiff).some((permission = {}) => {\n return Object.values(permission).some((permissionValue) =>\n has(permissionValue, 'conditions')\n );\n });\n }\n\n return { permissionsToSend: formatPermissionsForAPI(modifiedData), didUpdateConditions };\n },\n resetForm() {\n dispatch({ type: 'RESET_FORM' });\n },\n setFormAfterSubmit() {\n dispatch({ type: 'SET_FORM_AFTER_SUBMIT' });\n },\n } satisfies PermissionsAPI;\n });\n\n const handleChangeCollectionTypeLeftActionRowCheckbox = (\n pathToCollectionType: OnChangeCollectionTypeRowLeftCheckboxAction['pathToCollectionType'],\n propertyName: OnChangeCollectionTypeRowLeftCheckboxAction['propertyName'],\n rowName: OnChangeCollectionTypeRowLeftCheckboxAction['rowName'],\n value: OnChangeCollectionTypeRowLeftCheckboxAction['value']\n ) => {\n dispatch({\n type: 'ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX',\n pathToCollectionType,\n propertyName,\n rowName,\n value,\n });\n };\n\n const handleChangeCollectionTypeGlobalActionCheckbox = (\n collectionTypeKind: OnChangeCollectionTypeGlobalActionCheckboxAction['collectionTypeKind'],\n actionId: OnChangeCollectionTypeGlobalActionCheckboxAction['actionId'],\n value: OnChangeCollectionTypeGlobalActionCheckboxAction['value']\n ) => {\n dispatch({\n type: 'ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX',\n collectionTypeKind,\n actionId,\n value,\n });\n };\n\n const handleChangeConditions = (conditions: OnChangeConditionsAction['conditions']) => {\n dispatch({ type: 'ON_CHANGE_CONDITIONS', conditions });\n };\n\n const handleChangeSimpleCheckbox: PermissionsDataManagerContextValue['onChangeSimpleCheckbox'] =\n React.useCallback(({ target: { name, value } }) => {\n dispatch({\n type: 'ON_CHANGE_SIMPLE_CHECKBOX',\n keys: name,\n value,\n });\n }, []);\n\n const handleChangeParentCheckbox: PermissionsDataManagerContextValue['onChangeParentCheckbox'] =\n React.useCallback(({ target: { name, value } }) => {\n dispatch({\n type: 'ON_CHANGE_TOGGLE_PARENT_CHECKBOX',\n keys: name,\n value,\n });\n }, []);\n\n return (\n <PermissionsDataManagerProvider\n availableConditions={layout.conditions}\n modifiedData={modifiedData}\n onChangeConditions={handleChangeConditions}\n onChangeSimpleCheckbox={handleChangeSimpleCheckbox}\n onChangeParentCheckbox={handleChangeParentCheckbox}\n onChangeCollectionTypeLeftActionRowCheckbox={\n handleChangeCollectionTypeLeftActionRowCheckbox\n }\n onChangeCollectionTypeGlobalActionCheckbox={handleChangeCollectionTypeGlobalActionCheckbox}\n >\n <Tabs.Root defaultValue={TAB_LABELS[0].id}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'Settings.permissions.users.tabs.label',\n defaultMessage: 'Tabs Permissions',\n })}\n >\n {TAB_LABELS.map((tabLabel) => (\n <Tabs.Trigger key={tabLabel.id} value={tabLabel.id}>\n {formatMessage({ id: tabLabel.labelId, defaultMessage: tabLabel.defaultMessage })}\n </Tabs.Trigger>\n ))}\n </Tabs.List>\n <Tabs.Content value={TAB_LABELS[0].id}>\n <ContentTypes\n layout={layouts.collectionTypes}\n kind=\"collectionTypes\"\n isFormDisabled={isFormDisabled}\n />\n </Tabs.Content>\n <Tabs.Content value={TAB_LABELS[1].id}>\n <ContentTypes\n layout={layouts.singleTypes}\n kind=\"singleTypes\"\n isFormDisabled={isFormDisabled}\n />\n </Tabs.Content>\n <Tabs.Content value={TAB_LABELS[2].id}>\n <PluginsAndSettingsPermissions\n layout={layouts.plugins}\n kind=\"plugins\"\n isFormDisabled={isFormDisabled}\n />\n </Tabs.Content>\n <Tabs.Content value={TAB_LABELS[3].id}>\n <PluginsAndSettingsPermissions\n layout={layouts.settings}\n kind=\"settings\"\n isFormDisabled={isFormDisabled}\n />\n </Tabs.Content>\n </Tabs.Root>\n </PermissionsDataManagerProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * reducer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PermissionForms {\n collectionTypes: Form;\n plugins: Record<string, Form>;\n settings: Record<string, Form>;\n singleTypes: Form;\n}\n\ninterface State {\n initialData: PermissionForms;\n modifiedData: PermissionForms;\n layouts: {\n collectionTypes: PermissonContracts.ContentPermission;\n singleTypes: PermissonContracts.ContentPermission;\n plugins: GenericLayout<PermissonContracts.PluginPermission>[];\n settings: GenericLayout<PermissonContracts.SettingPermission>[];\n };\n}\n\nconst initialState = {\n initialData: {},\n modifiedData: {},\n layouts: {},\n};\n\ninterface OnChangeCollectionTypeGlobalActionCheckboxAction {\n type: 'ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX';\n collectionTypeKind: keyof PermissionForms;\n actionId: string;\n value: boolean;\n}\n\ninterface OnChangeCollectionTypeRowLeftCheckboxAction {\n type: 'ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX';\n pathToCollectionType: string;\n propertyName: string;\n rowName: string;\n value: boolean;\n}\n\ninterface OnChangeConditionsAction {\n type: 'ON_CHANGE_CONDITIONS';\n conditions: Record<string, ConditionForm>;\n}\n\ninterface OnChangeSimpleCheckboxAction {\n type: 'ON_CHANGE_SIMPLE_CHECKBOX';\n keys: string;\n value: boolean;\n}\n\ninterface OnChangeToggleParentCheckbox {\n type: 'ON_CHANGE_TOGGLE_PARENT_CHECKBOX';\n keys: string;\n value: boolean;\n}\n\ninterface ResetFormAction {\n type: 'RESET_FORM';\n}\n\ninterface SetFormAfterSubmitAction {\n type: 'SET_FORM_AFTER_SUBMIT';\n}\n\ntype Action =\n | OnChangeCollectionTypeGlobalActionCheckboxAction\n | OnChangeCollectionTypeRowLeftCheckboxAction\n | OnChangeConditionsAction\n | OnChangeSimpleCheckboxAction\n | OnChangeToggleParentCheckbox\n | ResetFormAction\n | SetFormAfterSubmitAction;\n\n/* eslint-disable consistent-return */\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n // This action is called when a checkbox in the <GlobalActions />\n // changes\n case 'ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX': {\n const { collectionTypeKind, actionId, value } = action;\n const pathToData = ['modifiedData', collectionTypeKind];\n\n Object.keys(get(state, pathToData)).forEach((collectionType) => {\n const collectionTypeActionData = get(\n state,\n [...pathToData, collectionType, actionId],\n undefined\n );\n\n if (collectionTypeActionData) {\n let updatedValues = updateValues(collectionTypeActionData, value);\n\n // We need to remove the applied conditions\n // @ts-expect-error – TODO: type better\n if (!value && updatedValues.conditions) {\n // @ts-expect-error – TODO: type better\n const updatedConditions = updateValues(updatedValues.conditions, false);\n\n updatedValues = { ...updatedValues, conditions: updatedConditions };\n }\n\n set(draftState, [...pathToData, collectionType, actionId], updatedValues);\n }\n });\n\n break;\n }\n case 'ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX': {\n const { pathToCollectionType, propertyName, rowName, value } = action;\n let nextModifiedDataState = cloneDeep(state.modifiedData);\n const pathToModifiedDataCollectionType = pathToCollectionType.split('..');\n\n const objToUpdate = get(nextModifiedDataState, pathToModifiedDataCollectionType, {});\n\n Object.keys(objToUpdate).forEach((actionId) => {\n // When a ct has multiple properties (ex: locales, field)\n // We need to make sure that we add any new property to the modifiedData\n // object.\n if (has(objToUpdate[actionId], `properties.${propertyName}`)) {\n const objValue = get(objToUpdate, [actionId, 'properties', propertyName, rowName]);\n const pathToDataToSet = [\n ...pathToModifiedDataCollectionType,\n actionId,\n 'properties',\n propertyName,\n rowName,\n ];\n\n if (!isObject(objValue)) {\n set(nextModifiedDataState, pathToDataToSet, value);\n } else {\n const updatedValue = updateValues(objValue, value);\n\n set(nextModifiedDataState, pathToDataToSet, updatedValue);\n }\n }\n });\n\n // When we uncheck a row, we need to check if we also need to disable the conditions\n if (!value) {\n // @ts-expect-error – TODO: type better\n nextModifiedDataState = updateConditionsToFalse(nextModifiedDataState);\n }\n\n set(draftState, 'modifiedData', nextModifiedDataState);\n\n break;\n }\n case 'ON_CHANGE_CONDITIONS': {\n Object.entries(action.conditions).forEach((array) => {\n const [stringPathToData, conditionsToUpdate] = array;\n\n set(\n draftState,\n ['modifiedData', ...stringPathToData.split('..'), 'conditions'],\n conditionsToUpdate\n );\n });\n\n break;\n }\n case 'ON_CHANGE_SIMPLE_CHECKBOX': {\n let nextModifiedDataState = cloneDeep(state.modifiedData);\n\n set(nextModifiedDataState, [...action.keys.split('..')], action.value);\n\n // When we uncheck a single checkbox we need to remove the conditions from the parent\n if (!action.value) {\n // @ts-expect-error – TODO: type better\n nextModifiedDataState = updateConditionsToFalse(nextModifiedDataState);\n }\n\n set(draftState, 'modifiedData', nextModifiedDataState);\n\n break;\n }\n /*\n * Here the idea is to retrieve a specific value of the modifiedObject\n * then update all the boolean values of the retrieved one\n * and update the drafState.\n *\n * For instance in order to enable create action for all the fields and locales\n * of the restaurant content type we need to :\n * 1. Retrieve the modifiedData.collectionTypes.restaurant.create object\n * 2. Toggle all the end boolean values to the desired one\n * 3. Update the draftState\n *\n * Since the case works well in order to update what we called \"parent\" checkbox. We can\n * reuse the action when we need to toggle change all the values that depends on this one.\n * A parent checkbox is a checkbox which value is not a boolean but depends on its children ones, therefore,\n * a parent checkbox does not have a represented value in the draftState, they are just helpers.\n *\n * Given the following data:\n *\n * const data = {\n * restaurant: {\n * create: {\n * fields: { name: true },\n * locales: { en: false }\n * }\n * }\n * }\n *\n * The value of the create checkbox for the restaurant will be ƒalse since not all its children have\n * truthy values and in order to set its value to true when need to have all the values of its children set to true.\n *\n * Similarly, we can reuse the logic for the components attributes\n *\n */\n case 'ON_CHANGE_TOGGLE_PARENT_CHECKBOX': {\n const { keys, value } = action;\n const pathToValue = [...keys.split('..')];\n let nextModifiedDataState = cloneDeep(state.modifiedData);\n const oldValues = get(nextModifiedDataState, pathToValue, {});\n\n const updatedValues = updateValues(oldValues, value);\n set(nextModifiedDataState, pathToValue, updatedValues);\n\n // When we uncheck a parent checkbox we need to remove the associated conditions\n if (!value) {\n // @ts-expect-error – TODO: type better\n nextModifiedDataState = updateConditionsToFalse(nextModifiedDataState);\n }\n\n set(draftState, ['modifiedData'], nextModifiedDataState);\n\n break;\n }\n case 'RESET_FORM': {\n draftState.modifiedData = state.initialData;\n break;\n }\n case 'SET_FORM_AFTER_SUBMIT': {\n draftState.initialData = state.modifiedData;\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * init (reducer)\n * -----------------------------------------------------------------------------------------------*/\n\nconst init = (\n layout: PermissionsProps['layout'],\n permissions: PermissionsProps['permissions']\n): State => {\n const {\n conditions,\n sections: { collectionTypes, singleTypes, plugins, settings },\n } = layout;\n\n const layouts = {\n collectionTypes,\n singleTypes,\n plugins: formatLayout(plugins, 'plugin'),\n settings: formatLayout(settings, 'category'),\n };\n\n const defaultForm = {\n collectionTypes: createDefaultCTForm(collectionTypes, conditions, permissions),\n singleTypes: createDefaultCTForm(singleTypes, conditions, permissions),\n plugins: createDefaultForm(layouts.plugins, conditions, permissions),\n settings: createDefaultForm(layouts.settings, conditions, permissions),\n };\n\n return {\n initialData: defaultForm,\n modifiedData: defaultForm,\n layouts,\n };\n};\n\nexport { Permissions };\nexport type {\n State,\n OnChangeCollectionTypeRowLeftCheckboxAction,\n OnChangeConditionsAction,\n OnChangeCollectionTypeGlobalActionCheckboxAction,\n};\n"],"names":["object","base","isObject","permissions","current","acc","createDefaultConditionsForm","value","childrenForm","label","ActionRow","Wrapper","hasAllActionsSelected","hasSomeActionsSelected","checkboxesState"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const reactRouterDom = require('react-router-dom');
5
- const Theme = require('./Theme-K6zNL3JT.js');
5
+ const Theme = require('./Theme-CV_l77KL.js');
6
6
 
7
7
  const PrivateRoute = ({ children }) => {
8
8
  const token = Theme.useAuth("PrivateRoute", (state) => state.token);
@@ -19,4 +19,4 @@ const PrivateRoute = ({ children }) => {
19
19
  };
20
20
 
21
21
  exports.PrivateRoute = PrivateRoute;
22
- //# sourceMappingURL=PrivateRoute-C1dP5ye6.js.map
22
+ //# sourceMappingURL=PrivateRoute-D7Y029Yb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateRoute-C1dP5ye6.js","sources":["../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":["useAuth","useLocation","jsx","Navigate"],"mappings":";;;;;;AAUA,MAAM,YAAe,GAAA,CAAC,EAAE,QAAA,EAAkC,KAAA;AACxD,EAAA,MAAM,QAAQA,aAAQ,CAAA,cAAA,EAAgB,CAAC,KAAA,KAAU,MAAM,KAAK,CAAA,CAAA;AAC5D,EAAA,MAAM,EAAE,QAAA,EAAU,MAAO,EAAA,GAAIC,0BAAY,EAAA,CAAA;AAEzC,EAAO,OAAA,KAAA,KAAU,OACf,QAEA,mBAAAC,cAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA;AAAA,QACF,QAAU,EAAA,aAAA;AAAA,QACV,MAAA,EACE,QAAa,KAAA,GAAA,GACT,CAAe,YAAA,EAAA,kBAAA,CAAmB,CAAG,EAAA,QAAQ,CAAG,EAAA,MAAM,CAAE,CAAA,CAAC,CACzD,CAAA,GAAA,KAAA,CAAA;AAAA,OACR;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PrivateRoute-D7Y029Yb.js","sources":["../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":["useAuth","useLocation","jsx","Navigate"],"mappings":";;;;;;AAUA,MAAM,YAAe,GAAA,CAAC,EAAE,QAAA,EAAkC,KAAA;AACxD,EAAA,MAAM,QAAQA,aAAQ,CAAA,cAAA,EAAgB,CAAC,KAAA,KAAU,MAAM,KAAK,CAAA,CAAA;AAC5D,EAAA,MAAM,EAAE,QAAA,EAAU,MAAO,EAAA,GAAIC,0BAAY,EAAA,CAAA;AAEzC,EAAO,OAAA,KAAA,KAAU,OACf,QAEA,mBAAAC,cAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA;AAAA,QACF,QAAU,EAAA,aAAA;AAAA,QACV,MAAA,EACE,QAAa,KAAA,GAAA,GACT,CAAe,YAAA,EAAA,kBAAA,CAAmB,CAAG,EAAA,QAAQ,CAAG,EAAA,MAAM,CAAE,CAAA,CAAC,CACzD,CAAA,GAAA,KAAA,CAAA;AAAA,OACR;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useLocation, Navigate } from 'react-router-dom';
3
- import { u as useAuth } from './Theme-NAd2H4cV.mjs';
3
+ import { u as useAuth } from './Theme-CLIXCqhU.mjs';
4
4
 
5
5
  const PrivateRoute = ({ children }) => {
6
6
  const token = useAuth("PrivateRoute", (state) => state.token);
@@ -17,4 +17,4 @@ const PrivateRoute = ({ children }) => {
17
17
  };
18
18
 
19
19
  export { PrivateRoute as P };
20
- //# sourceMappingURL=PrivateRoute-gjOsMUaF.mjs.map
20
+ //# sourceMappingURL=PrivateRoute-KBnpPkup.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateRoute-gjOsMUaF.mjs","sources":["../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":[],"mappings":";;;;AAUA,MAAM,YAAe,GAAA,CAAC,EAAE,QAAA,EAAkC,KAAA;AACxD,EAAA,MAAM,QAAQ,OAAQ,CAAA,cAAA,EAAgB,CAAC,KAAA,KAAU,MAAM,KAAK,CAAA,CAAA;AAC5D,EAAA,MAAM,EAAE,QAAA,EAAU,MAAO,EAAA,GAAI,WAAY,EAAA,CAAA;AAEzC,EAAO,OAAA,KAAA,KAAU,OACf,QAEA,mBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA;AAAA,QACF,QAAU,EAAA,aAAA;AAAA,QACV,MAAA,EACE,QAAa,KAAA,GAAA,GACT,CAAe,YAAA,EAAA,kBAAA,CAAmB,CAAG,EAAA,QAAQ,CAAG,EAAA,MAAM,CAAE,CAAA,CAAC,CACzD,CAAA,GAAA,KAAA,CAAA;AAAA,OACR;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PrivateRoute-KBnpPkup.mjs","sources":["../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":[],"mappings":";;;;AAUA,MAAM,YAAe,GAAA,CAAC,EAAE,QAAA,EAAkC,KAAA;AACxD,EAAA,MAAM,QAAQ,OAAQ,CAAA,cAAA,EAAgB,CAAC,KAAA,KAAU,MAAM,KAAK,CAAA,CAAA;AAC5D,EAAA,MAAM,EAAE,QAAA,EAAU,MAAO,EAAA,GAAI,WAAY,EAAA,CAAA;AAEzC,EAAO,OAAA,KAAA,KAAU,OACf,QAEA,mBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA;AAAA,QACF,QAAU,EAAA,aAAA;AAAA,QACV,MAAA,EACE,QAAa,KAAA,GAAA,GACT,CAAe,YAAA,EAAA,kBAAA,CAAmB,CAAG,EAAA,QAAQ,CAAG,EAAA,MAAM,CAAE,CAAA,CAAC,CACzD,CAAA,GAAA,KAAA,CAAA;AAAA,OACR;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
@@ -9,11 +9,11 @@ const icons = require('@strapi/icons');
9
9
  const upperFirst = require('lodash/upperFirst');
10
10
  const reactIntl = require('react-intl');
11
11
  const yup = require('yup');
12
- const index = require('./index-D4vvFryW.js');
13
- const Theme = require('./Theme-K6zNL3JT.js');
14
- const admin = require('./admin-3FVGSNUT.js');
12
+ const index = require('./index-D9wwwbid.js');
13
+ const Theme = require('./Theme-CV_l77KL.js');
14
+ const admin = require('./admin-CoWMk1La.js');
15
15
  const users = require('./users-DaPfjlwf.js');
16
- const validation = require('./validation-CsNKFFCI.js');
16
+ const validation = require('./validation-Ct0GJF3v.js');
17
17
 
18
18
  const _interopDefault = e => e && e.__esModule ? e : { default: e };
19
19
 
@@ -412,4 +412,4 @@ const UserInfoSection = () => {
412
412
  };
413
413
 
414
414
  exports.ProfilePage = ProfilePage;
415
- //# sourceMappingURL=ProfilePage-iJfFC8iM.js.map
415
+ //# sourceMappingURL=ProfilePage--a3BOCVY.js.map