@strapi/admin 5.0.0-beta.6 → 5.0.0-beta.8

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 (376) hide show
  1. package/dist/admin/{AdminSeatInfo-ZrJlIt8M.mjs → AdminSeatInfo-_UxgNKbX.mjs} +6 -6
  2. package/dist/admin/AdminSeatInfo-_UxgNKbX.mjs.map +1 -0
  3. package/dist/admin/{AdminSeatInfo-G2ipQTLk.js → AdminSeatInfo-cqB8nHFZ.js} +6 -6
  4. package/dist/admin/AdminSeatInfo-cqB8nHFZ.js.map +1 -0
  5. package/dist/admin/{ApplicationInfoPage-dc0ReC0D.js → ApplicationInfoPage-FlIVu3WL.js} +34 -39
  6. package/dist/admin/ApplicationInfoPage-FlIVu3WL.js.map +1 -0
  7. package/dist/admin/{ApplicationInfoPage-TImAEuc3.mjs → ApplicationInfoPage-y-FX7oPO.mjs} +35 -39
  8. package/dist/admin/ApplicationInfoPage-y-FX7oPO.mjs.map +1 -0
  9. package/dist/admin/{AuthResponse-J1Y_hbtY.js → AuthResponse-6oCac46I.js} +2 -2
  10. package/dist/admin/{AuthResponse-J1Y_hbtY.js.map → AuthResponse-6oCac46I.js.map} +1 -1
  11. package/dist/admin/{AuthResponse-wfOnX6GO.mjs → AuthResponse-TKtSIvEM.mjs} +2 -2
  12. package/dist/admin/{AuthResponse-wfOnX6GO.mjs.map → AuthResponse-TKtSIvEM.mjs.map} +1 -1
  13. package/dist/admin/{AuthenticatedLayout-TNbTifIA.js → AuthenticatedLayout-QwEem8GL.js} +208 -234
  14. package/dist/admin/AuthenticatedLayout-QwEem8GL.js.map +1 -0
  15. package/dist/admin/{AuthenticatedLayout-eMLYKMgW.mjs → AuthenticatedLayout-qx1Lyy4q.mjs} +204 -229
  16. package/dist/admin/AuthenticatedLayout-qx1Lyy4q.mjs.map +1 -0
  17. package/dist/admin/{ContentBox-Mzcpnn32.js → ContentBox-3MRTNw0X.js} +5 -8
  18. package/dist/admin/ContentBox-3MRTNw0X.js.map +1 -0
  19. package/dist/admin/{ContentBox-DjmNTcxv.mjs → ContentBox-9LBDzws0.mjs} +3 -2
  20. package/dist/admin/ContentBox-9LBDzws0.mjs.map +1 -0
  21. package/dist/admin/{CreateActionEE-_i5qXWEG.js → CreateActionEE-dGj-JbWV.js} +4 -4
  22. package/dist/admin/CreateActionEE-dGj-JbWV.js.map +1 -0
  23. package/dist/admin/{CreateActionEE-Qdz4UDPf.mjs → CreateActionEE-uBGAkLbn.mjs} +4 -4
  24. package/dist/admin/CreateActionEE-uBGAkLbn.mjs.map +1 -0
  25. package/dist/admin/{CreatePage-f3faA3vG.js → CreatePage-4TW2khkB.js} +3 -3
  26. package/dist/admin/{CreatePage-f3faA3vG.js.map → CreatePage-4TW2khkB.js.map} +1 -1
  27. package/dist/admin/{CreatePage-07P5-Zjt.mjs → CreatePage-4tMY0ik1.mjs} +3 -3
  28. package/dist/admin/{CreatePage-07P5-Zjt.mjs.map → CreatePage-4tMY0ik1.mjs.map} +1 -1
  29. package/dist/admin/{CreatePage-uTwt_c8J.mjs → CreatePage-537fJDEU.mjs} +29 -26
  30. package/dist/admin/CreatePage-537fJDEU.mjs.map +1 -0
  31. package/dist/admin/{CreatePage-03MgCK7Z.js → CreatePage-peOfskFg.js} +29 -29
  32. package/dist/admin/CreatePage-peOfskFg.js.map +1 -0
  33. package/dist/admin/{CreateView-87aPv9QV.mjs → CreateView-AaD01TxO.mjs} +3 -3
  34. package/dist/admin/{CreateView-87aPv9QV.mjs.map → CreateView-AaD01TxO.mjs.map} +1 -1
  35. package/dist/admin/{CreateView-T8hLqvog.mjs → CreateView-EfGicMHg.mjs} +3 -3
  36. package/dist/admin/{CreateView-T8hLqvog.mjs.map → CreateView-EfGicMHg.mjs.map} +1 -1
  37. package/dist/admin/{CreateView-UemGfFqI.js → CreateView-Ni2CgUVr.js} +3 -3
  38. package/dist/admin/{CreateView-UemGfFqI.js.map → CreateView-Ni2CgUVr.js.map} +1 -1
  39. package/dist/admin/{CreateView-o5-hvd4h.js → CreateView-uK14O_jU.js} +3 -3
  40. package/dist/admin/{CreateView-o5-hvd4h.js.map → CreateView-uK14O_jU.js.map} +1 -1
  41. package/dist/admin/{EditPage-lyFePXWl.mjs → EditPage-15aToLph.mjs} +213 -252
  42. package/dist/admin/EditPage-15aToLph.mjs.map +1 -0
  43. package/dist/admin/{EditPage-XSz7Wpt8.mjs → EditPage-Il4eROQZ.mjs} +14 -14
  44. package/dist/admin/EditPage-Il4eROQZ.mjs.map +1 -0
  45. package/dist/admin/{EditPage-UqMDbMvJ.js → EditPage-SrUqHo-J.js} +13 -13
  46. package/dist/admin/EditPage-SrUqHo-J.js.map +1 -0
  47. package/dist/admin/{EditPage-YqW1NIMp.js → EditPage-cmzfgdc5.js} +212 -254
  48. package/dist/admin/EditPage-cmzfgdc5.js.map +1 -0
  49. package/dist/admin/{EditPage-F3yH0Fy6.mjs → EditPage-g0VOXyKS.mjs} +46 -30
  50. package/dist/admin/EditPage-g0VOXyKS.mjs.map +1 -0
  51. package/dist/admin/{EditPage-Ly5MBiuB.js → EditPage-z7pM9PD2.js} +45 -29
  52. package/dist/admin/EditPage-z7pM9PD2.js.map +1 -0
  53. package/dist/admin/{EditView-r0lx661I.mjs → EditView-NOjzvG4n.mjs} +9 -9
  54. package/dist/admin/EditView-NOjzvG4n.mjs.map +1 -0
  55. package/dist/admin/{EditView-bRFkRKAz.js → EditView-gJfIIjvG.js} +8 -8
  56. package/dist/admin/EditView-gJfIIjvG.js.map +1 -0
  57. package/dist/admin/{EditViewPage-tAsn6QS9.js → EditViewPage-KEF7ROrG.js} +84 -109
  58. package/dist/admin/EditViewPage-KEF7ROrG.js.map +1 -0
  59. package/dist/admin/{EditViewPage-f5dHmqdT.mjs → EditViewPage-c3QrE1Hr.mjs} +81 -105
  60. package/dist/admin/EditViewPage-c3QrE1Hr.mjs.map +1 -0
  61. package/dist/admin/{EventsTable-4h6LoAp-.js → EventsTable-WB2pMyjf.js} +2 -2
  62. package/dist/admin/{EventsTable-4h6LoAp-.js.map → EventsTable-WB2pMyjf.js.map} +1 -1
  63. package/dist/admin/{EventsTable-2C605_qQ.mjs → EventsTable-x0tiLQ21.mjs} +2 -2
  64. package/dist/admin/{EventsTable-2C605_qQ.mjs.map → EventsTable-x0tiLQ21.mjs.map} +1 -1
  65. package/dist/admin/{HomePage-Uuww2J1B.js → HomePage-_HRMXYSc.js} +3 -3
  66. package/dist/admin/{HomePage-Uuww2J1B.js.map → HomePage-_HRMXYSc.js.map} +1 -1
  67. package/dist/admin/{HomePage-UTnZwpp-.js → HomePage-eU782NVl.js} +52 -47
  68. package/dist/admin/HomePage-eU782NVl.js.map +1 -0
  69. package/dist/admin/{HomePage-4FySTCJU.mjs → HomePage-t-i4SXRB.mjs} +3 -3
  70. package/dist/admin/{HomePage-4FySTCJU.mjs.map → HomePage-t-i4SXRB.mjs.map} +1 -1
  71. package/dist/admin/{HomePage-ZF3T0k2r.mjs → HomePage-uzU2Sfu_.mjs} +42 -34
  72. package/dist/admin/HomePage-uzU2Sfu_.mjs.map +1 -0
  73. package/dist/admin/{InstalledPluginsPage-o43CGz2w.js → InstalledPluginsPage-gga_OMMI.js} +8 -7
  74. package/dist/admin/InstalledPluginsPage-gga_OMMI.js.map +1 -0
  75. package/dist/admin/{InstalledPluginsPage-eOXi3oTN.mjs → InstalledPluginsPage-j8w6fibY.mjs} +9 -8
  76. package/dist/admin/InstalledPluginsPage-j8w6fibY.mjs.map +1 -0
  77. package/dist/admin/{Layout-XxmAreH1.js → Layout-6QqRGC19.js} +11 -12
  78. package/dist/admin/Layout-6QqRGC19.js.map +1 -0
  79. package/dist/admin/{Layout-mnn4_IJp.mjs → Layout-mm5FttWk.mjs} +10 -10
  80. package/dist/admin/Layout-mm5FttWk.mjs.map +1 -0
  81. package/dist/admin/{ListPage-kdjzZ2al.mjs → ListPage--SLZfVEu.mjs} +21 -27
  82. package/dist/admin/ListPage--SLZfVEu.mjs.map +1 -0
  83. package/dist/admin/{ListPage-AFDAiR9X.mjs → ListPage-91B_ZBgU.mjs} +21 -34
  84. package/dist/admin/ListPage-91B_ZBgU.mjs.map +1 -0
  85. package/dist/admin/{ListPage-Gj1OS6PX.mjs → ListPage-COfc9Nb2.mjs} +3 -3
  86. package/dist/admin/{ListPage-Gj1OS6PX.mjs.map → ListPage-COfc9Nb2.mjs.map} +1 -1
  87. package/dist/admin/{ListPage-NTxNcftS.js → ListPage-Id9VZhfe.js} +20 -20
  88. package/dist/admin/ListPage-Id9VZhfe.js.map +1 -0
  89. package/dist/admin/{ListPage-6Ukzm--I.js → ListPage-R1VIjb_K.js} +3 -3
  90. package/dist/admin/{ListPage-6Ukzm--I.js.map → ListPage-R1VIjb_K.js.map} +1 -1
  91. package/dist/admin/{ListPage-eNkUD3v_.mjs → ListPage-hJ6Ynuzs.mjs} +21 -21
  92. package/dist/admin/ListPage-hJ6Ynuzs.mjs.map +1 -0
  93. package/dist/admin/{ListPage-Pi_dzfDr.js → ListPage-kdascM3g.js} +20 -33
  94. package/dist/admin/ListPage-kdascM3g.js.map +1 -0
  95. package/dist/admin/{ListPage-hln8fKzE.js → ListPage-qccI1KJZ.js} +20 -26
  96. package/dist/admin/ListPage-qccI1KJZ.js.map +1 -0
  97. package/dist/admin/{ListPage-URtxfNJ4.js → ListPage-qnRnNdZB.js} +18 -21
  98. package/dist/admin/ListPage-qnRnNdZB.js.map +1 -0
  99. package/dist/admin/{ListPage-5g8MtUEB.mjs → ListPage-ver_Z86B.mjs} +19 -22
  100. package/dist/admin/ListPage-ver_Z86B.mjs.map +1 -0
  101. package/dist/admin/{ListView-FBh2WTHx.mjs → ListView-HFV67l_w.mjs} +10 -10
  102. package/dist/admin/ListView-HFV67l_w.mjs.map +1 -0
  103. package/dist/admin/{ListView-uwPF62w6.mjs → ListView-PXoWtVRs.mjs} +11 -9
  104. package/dist/admin/ListView-PXoWtVRs.mjs.map +1 -0
  105. package/dist/admin/{ListView-pYVBJ4lg.js → ListView-Tdz585_r.js} +10 -8
  106. package/dist/admin/ListView-Tdz585_r.js.map +1 -0
  107. package/dist/admin/{ListView-f2wVT21J.js → ListView-gOdn2Qwi.js} +9 -9
  108. package/dist/admin/ListView-gOdn2Qwi.js.map +1 -0
  109. package/dist/admin/{Login-FSNzATl0.mjs → Login-227oY0SP.mjs} +5 -5
  110. package/dist/admin/Login-227oY0SP.mjs.map +1 -0
  111. package/dist/admin/{Login-3rLFPliB.js → Login-uUFgaGQO.js} +6 -10
  112. package/dist/admin/Login-uUFgaGQO.js.map +1 -0
  113. package/dist/admin/{MagicLinkEE-czAdOuTH.mjs → MagicLinkEE-1cdMwO4L.mjs} +3 -3
  114. package/dist/admin/{MagicLinkEE-czAdOuTH.mjs.map → MagicLinkEE-1cdMwO4L.mjs.map} +1 -1
  115. package/dist/admin/{MagicLinkEE-bccsKKbJ.js → MagicLinkEE-SU6DdTGf.js} +3 -3
  116. package/dist/admin/{MagicLinkEE-bccsKKbJ.js.map → MagicLinkEE-SU6DdTGf.js.map} +1 -1
  117. package/dist/admin/{MarketplacePage-kNQPkoZK.mjs → MarketplacePage-HcA4KrZ1.mjs} +25 -52
  118. package/dist/admin/MarketplacePage-HcA4KrZ1.mjs.map +1 -0
  119. package/dist/admin/{MarketplacePage-sSTqINSu.js → MarketplacePage-UfmJkfaS.js} +29 -57
  120. package/dist/admin/MarketplacePage-UfmJkfaS.js.map +1 -0
  121. package/dist/admin/{Permissions-NlSnXUKO.js → Permissions-kWoGUyLH.js} +80 -100
  122. package/dist/admin/Permissions-kWoGUyLH.js.map +1 -0
  123. package/dist/admin/{Permissions-aU1eesjP.mjs → Permissions-ujqtV7GK.mjs} +62 -81
  124. package/dist/admin/Permissions-ujqtV7GK.mjs.map +1 -0
  125. package/dist/admin/{PrivateRoute-zZ7p1pc9.mjs → PrivateRoute-1hyhztQM.mjs} +2 -2
  126. package/dist/admin/{PrivateRoute-zZ7p1pc9.mjs.map → PrivateRoute-1hyhztQM.mjs.map} +1 -1
  127. package/dist/admin/{PrivateRoute-nJgGpBXP.js → PrivateRoute-wBE5vMxe.js} +2 -2
  128. package/dist/admin/{PrivateRoute-nJgGpBXP.js.map → PrivateRoute-wBE5vMxe.js.map} +1 -1
  129. package/dist/admin/{ProfilePage-jU98pa61.js → ProfilePage-lpqTZIyh.js} +14 -14
  130. package/dist/admin/ProfilePage-lpqTZIyh.js.map +1 -0
  131. package/dist/admin/{ProfilePage-T2kC_KoM.mjs → ProfilePage-s8Kfhq6I.mjs} +15 -15
  132. package/dist/admin/ProfilePage-s8Kfhq6I.mjs.map +1 -0
  133. package/dist/admin/{PurchaseAuditLogs-_1tVWtNF.mjs → PurchaseAuditLogs-iXSAELjJ.mjs} +5 -4
  134. package/dist/admin/PurchaseAuditLogs-iXSAELjJ.mjs.map +1 -0
  135. package/dist/admin/{PurchaseAuditLogs-GreHFPSR.js → PurchaseAuditLogs-uu0_PoKP.js} +4 -3
  136. package/dist/admin/PurchaseAuditLogs-uu0_PoKP.js.map +1 -0
  137. package/dist/admin/{PurchaseSingleSignOn-VUU-U4wi.mjs → PurchaseSingleSignOn-A_9ts2Q3.mjs} +5 -4
  138. package/dist/admin/PurchaseSingleSignOn-A_9ts2Q3.mjs.map +1 -0
  139. package/dist/admin/{PurchaseSingleSignOn-6t4xuNBd.js → PurchaseSingleSignOn-I0AAcpBZ.js} +4 -3
  140. package/dist/admin/PurchaseSingleSignOn-I0AAcpBZ.js.map +1 -0
  141. package/dist/admin/{SSOProviders-FZwT7RmU.js → SSOProviders-AirHFyBl.js} +4 -8
  142. package/dist/admin/SSOProviders-AirHFyBl.js.map +1 -0
  143. package/dist/admin/{SSOProviders-GcYDRAyn.mjs → SSOProviders-t8D-v8As.mjs} +2 -2
  144. package/dist/admin/SSOProviders-t8D-v8As.mjs.map +1 -0
  145. package/dist/admin/{SelectRoles-EdE6yfsj.js → SelectRoles-7QbQhIi4.js} +45 -44
  146. package/dist/admin/SelectRoles-7QbQhIi4.js.map +1 -0
  147. package/dist/admin/{SelectRoles--ys30CdN.mjs → SelectRoles-neYrKAlL.mjs} +45 -40
  148. package/dist/admin/SelectRoles-neYrKAlL.mjs.map +1 -0
  149. package/dist/admin/SingleSignOnPage-NRBGwvMB.js +256 -0
  150. package/dist/admin/SingleSignOnPage-NRBGwvMB.js.map +1 -0
  151. package/dist/admin/SingleSignOnPage-rOuB5fpN.mjs +231 -0
  152. package/dist/admin/SingleSignOnPage-rOuB5fpN.mjs.map +1 -0
  153. package/dist/admin/{Table--He5qeQG.mjs → Table-07CnEMJB.mjs} +6 -6
  154. package/dist/admin/Table-07CnEMJB.mjs.map +1 -0
  155. package/dist/admin/{Table-HXu3Nz4W.js → Table-5EMXAhBX.js} +7 -10
  156. package/dist/admin/Table-5EMXAhBX.js.map +1 -0
  157. package/dist/admin/{TokenTypeSelect-kgKThMAL.mjs → TokenTypeSelect-XHNUoyhJ.mjs} +86 -68
  158. package/dist/admin/TokenTypeSelect-XHNUoyhJ.mjs.map +1 -0
  159. package/dist/admin/{TokenTypeSelect-yY2kwTyO.js → TokenTypeSelect-j99COf2u.js} +86 -68
  160. package/dist/admin/TokenTypeSelect-j99COf2u.js.map +1 -0
  161. package/dist/admin/{UseCasePage-6_WRtTwv.js → UseCasePage-g9nN8RuC.js} +16 -36
  162. package/dist/admin/UseCasePage-g9nN8RuC.js.map +1 -0
  163. package/dist/admin/{UseCasePage-bfP-fDoW.mjs → UseCasePage-yZtkKM9d.mjs} +17 -34
  164. package/dist/admin/UseCasePage-yZtkKM9d.mjs.map +1 -0
  165. package/dist/admin/admin-B6AW0Kov.mjs +318 -0
  166. package/dist/admin/admin-B6AW0Kov.mjs.map +1 -0
  167. package/dist/admin/admin-p0djr5G6.js +338 -0
  168. package/dist/admin/admin-p0djr5G6.js.map +1 -0
  169. package/dist/admin/{apiTokens-bNRitXGF.mjs → apiTokens-YMUmHnrH.mjs} +7 -6
  170. package/dist/admin/apiTokens-YMUmHnrH.mjs.map +1 -0
  171. package/dist/admin/{apiTokens-lXn03No3.js → apiTokens-YxfAnO7_.js} +7 -6
  172. package/dist/admin/apiTokens-YxfAnO7_.js.map +1 -0
  173. package/dist/admin/{constants-qdY4HMAg.js → constants-MTKkA8PE.js} +8 -12
  174. package/dist/admin/constants-MTKkA8PE.js.map +1 -0
  175. package/dist/admin/{constants-wnw4TGwG.mjs → constants-N0AWjcMN.mjs} +7 -7
  176. package/dist/admin/constants-N0AWjcMN.mjs.map +1 -0
  177. package/dist/admin/ee.js +1 -1
  178. package/dist/admin/ee.mjs +1 -1
  179. package/dist/admin/{en-zVbLVH-h.js → en-G-ukrF2h.js} +2 -1
  180. package/dist/admin/{en-zVbLVH-h.js.map → en-G-ukrF2h.js.map} +1 -1
  181. package/dist/admin/{en-D7rooMTs.mjs → en-K35WIWVM.mjs} +2 -1
  182. package/dist/admin/{en-D7rooMTs.mjs.map → en-K35WIWVM.mjs.map} +1 -1
  183. package/dist/admin/{index-7fPlAzj6.mjs → index-69WUS0qJ.mjs} +654 -458
  184. package/dist/admin/index-69WUS0qJ.mjs.map +1 -0
  185. package/dist/admin/{index-FJLgZ-Wg.js → index-UrJZyInv.js} +663 -466
  186. package/dist/admin/index-UrJZyInv.js.map +1 -0
  187. package/dist/admin/index.js +11 -4
  188. package/dist/admin/index.js.map +1 -1
  189. package/dist/admin/index.mjs +3 -3
  190. package/dist/admin/{rbac-xgYdpUSq.js → rbac-5b9ylhpa.js} +13 -10
  191. package/dist/admin/rbac-5b9ylhpa.js.map +1 -0
  192. package/dist/admin/{rbac-uVd0RAE5.mjs → rbac-oJEkQdXG.mjs} +12 -9
  193. package/dist/admin/rbac-oJEkQdXG.mjs.map +1 -0
  194. package/dist/admin/{selectors-AvywwQRm.mjs → selectors-Ilww6FA-.mjs} +2 -2
  195. package/dist/admin/{selectors-AvywwQRm.mjs.map → selectors-Ilww6FA-.mjs.map} +1 -1
  196. package/dist/admin/{selectors-C62Wf5On.js → selectors-NDEu6dJa.js} +2 -2
  197. package/dist/admin/{selectors-C62Wf5On.js.map → selectors-NDEu6dJa.js.map} +1 -1
  198. package/dist/admin/src/StrapiApp.d.ts +1 -0
  199. package/dist/admin/src/components/Form.d.ts +7 -2
  200. package/dist/admin/src/components/FormInputs/Boolean.d.ts +2 -2
  201. package/dist/admin/src/components/FormInputs/Checkbox.d.ts +2 -2
  202. package/dist/admin/src/components/FormInputs/Date.d.ts +2 -2
  203. package/dist/admin/src/components/FormInputs/DateTime.d.ts +2 -2
  204. package/dist/admin/src/components/FormInputs/Email.d.ts +2 -1
  205. package/dist/admin/src/components/FormInputs/Enumeration.d.ts +2 -1
  206. package/dist/admin/src/components/FormInputs/Json.d.ts +3 -4
  207. package/dist/admin/src/components/FormInputs/Number.d.ts +2 -2
  208. package/dist/admin/src/components/FormInputs/Password.d.ts +2 -1
  209. package/dist/admin/src/components/FormInputs/Renderer.d.ts +2 -8
  210. package/dist/admin/src/components/FormInputs/String.d.ts +2 -4
  211. package/dist/admin/src/components/FormInputs/Textarea.d.ts +2 -1
  212. package/dist/admin/src/components/FormInputs/Time.d.ts +2 -2
  213. package/dist/admin/src/components/FormInputs/types.d.ts +1 -0
  214. package/dist/admin/src/components/Layouts/ActionLayout.d.ts +7 -0
  215. package/dist/admin/src/components/Layouts/ContentLayout.d.ts +6 -0
  216. package/dist/admin/src/components/Layouts/GridLayout.d.ts +17 -0
  217. package/dist/admin/src/components/Layouts/HeaderLayout.d.ts +19 -0
  218. package/dist/admin/src/components/Layouts/Layout.d.ts +18 -0
  219. package/dist/admin/src/components/MainNav/MainNav.d.ts +3 -0
  220. package/dist/admin/src/components/MainNav/NavLink.d.ts +7 -5
  221. package/dist/admin/src/components/MainNav/NavUser.d.ts +7 -0
  222. package/dist/admin/src/components/PageHelpers.d.ts +1 -1
  223. package/dist/admin/src/core/store/configure.d.ts +3 -9
  224. package/dist/admin/src/core/store/hooks.d.ts +3 -9
  225. package/dist/admin/src/features/Tracking.d.ts +1 -1
  226. package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +2 -4
  227. package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
  228. package/dist/admin/src/hooks/useFetchClient.d.ts +4 -10
  229. package/dist/admin/src/hooks/useFocusInputField.d.ts +2 -5
  230. package/dist/admin/src/hooks/useMenu.d.ts +1 -1
  231. package/dist/admin/src/index.d.ts +7 -1
  232. package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +4 -1
  233. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/{CollabsableContentType.d.ts → CollapsableContentType.d.ts} +1 -3
  234. package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +6 -51
  235. package/dist/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.d.ts +1 -1
  236. package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +2 -1
  237. package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +2 -1
  238. package/dist/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.d.ts +2 -4
  239. package/dist/admin/src/pages/Settings/pages/Roles/components/RoleRow.d.ts +1 -1
  240. package/dist/admin/src/pages/Settings/pages/Webhooks/components/Events.d.ts +2 -3
  241. package/dist/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.d.ts +2 -2
  242. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
  243. package/dist/admin/src/selectors.d.ts +2 -6
  244. package/dist/admin/src/services/admin.d.ts +5 -5
  245. package/dist/admin/src/services/api.d.ts +11 -9
  246. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  247. package/dist/admin/src/services/auth.d.ts +13 -11
  248. package/dist/admin/src/services/contentApi.d.ts +2 -2
  249. package/dist/admin/src/services/contentManager.d.ts +5 -1
  250. package/dist/admin/src/services/transferTokens.d.ts +2 -2
  251. package/dist/admin/src/services/users.d.ts +8 -8
  252. package/dist/admin/src/services/webhooks.d.ts +2 -2
  253. package/dist/admin/src/utils/baseQuery.d.ts +10 -9
  254. package/dist/admin/src/utils/getFetchClient.d.ts +40 -10
  255. package/dist/admin/src/utils/normalizeAPIError.d.ts +2 -5
  256. package/dist/admin/test.js +10 -7
  257. package/dist/admin/test.js.map +1 -1
  258. package/dist/admin/test.mjs +10 -7
  259. package/dist/admin/test.mjs.map +1 -1
  260. package/dist/admin/tests/utils.d.ts +1 -3
  261. package/dist/admin/{transferTokens-ngan7vz6.mjs → transferTokens-CNI0TFdA.mjs} +15 -5
  262. package/dist/admin/transferTokens-CNI0TFdA.mjs.map +1 -0
  263. package/dist/admin/{transferTokens-5qQjIKFd.js → transferTokens-HcVXmOrq.js} +15 -4
  264. package/dist/admin/transferTokens-HcVXmOrq.js.map +1 -0
  265. package/dist/admin/{useAdminRoles-X4pwDHaW.mjs → useAdminRoles-0epUuJHP.mjs} +2 -2
  266. package/dist/admin/{useAdminRoles-X4pwDHaW.mjs.map → useAdminRoles-0epUuJHP.mjs.map} +1 -1
  267. package/dist/admin/{useAdminRoles-yjN2uT_o.js → useAdminRoles-8RoYtgXn.js} +2 -2
  268. package/dist/admin/{useAdminRoles-yjN2uT_o.js.map → useAdminRoles-8RoYtgXn.js.map} +1 -1
  269. package/dist/admin/{useLicenseLimitNotification-T2LoOH4B.mjs → useLicenseLimitNotification-1Xo24v-C.mjs} +3 -3
  270. package/dist/admin/{useLicenseLimitNotification-T2LoOH4B.mjs.map → useLicenseLimitNotification-1Xo24v-C.mjs.map} +1 -1
  271. package/dist/admin/{useLicenseLimitNotification-wrxezW0C.js → useLicenseLimitNotification-9iq0TFuF.js} +3 -3
  272. package/dist/admin/{useLicenseLimitNotification-wrxezW0C.js.map → useLicenseLimitNotification-9iq0TFuF.js.map} +1 -1
  273. package/dist/admin/{useLicenseLimits-m11DOu9p.js → useLicenseLimits-FtmLXkwK.js} +2 -2
  274. package/dist/admin/{useLicenseLimits-m11DOu9p.js.map → useLicenseLimits-FtmLXkwK.js.map} +1 -1
  275. package/dist/admin/{useLicenseLimits-fKc9uCtd.mjs → useLicenseLimits-Jy6E6qc2.mjs} +2 -2
  276. package/dist/admin/{useLicenseLimits-fKc9uCtd.mjs.map → useLicenseLimits-Jy6E6qc2.mjs.map} +1 -1
  277. package/dist/admin/{useWebhooks-8VWSFqNg.mjs → useWebhooks-bgdpL7W6.mjs} +5 -3
  278. package/dist/admin/useWebhooks-bgdpL7W6.mjs.map +1 -0
  279. package/dist/admin/{useWebhooks-oZ5DKtvz.js → useWebhooks-opYGugiT.js} +5 -3
  280. package/dist/admin/useWebhooks-opYGugiT.js.map +1 -0
  281. package/dist/admin/{validation-p2q0MWxi.mjs → validation-TWt09i2x.mjs} +2 -2
  282. package/dist/admin/{validation-p2q0MWxi.mjs.map → validation-TWt09i2x.mjs.map} +1 -1
  283. package/dist/admin/{validation-rsP4iH1U.js → validation-wyU5bqks.js} +2 -2
  284. package/dist/admin/{validation-rsP4iH1U.js.map → validation-wyU5bqks.js.map} +1 -1
  285. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  286. package/dist/package.json.d.ts +17 -19
  287. package/dist/server/index.js +19 -7
  288. package/dist/server/index.js.map +1 -1
  289. package/dist/server/index.mjs +19 -7
  290. package/dist/server/index.mjs.map +1 -1
  291. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  292. package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
  293. package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
  294. package/package.json +18 -20
  295. package/dist/admin/AdminSeatInfo-G2ipQTLk.js.map +0 -1
  296. package/dist/admin/AdminSeatInfo-ZrJlIt8M.mjs.map +0 -1
  297. package/dist/admin/ApplicationInfoPage-TImAEuc3.mjs.map +0 -1
  298. package/dist/admin/ApplicationInfoPage-dc0ReC0D.js.map +0 -1
  299. package/dist/admin/AuthenticatedLayout-TNbTifIA.js.map +0 -1
  300. package/dist/admin/AuthenticatedLayout-eMLYKMgW.mjs.map +0 -1
  301. package/dist/admin/ContentBox-DjmNTcxv.mjs.map +0 -1
  302. package/dist/admin/ContentBox-Mzcpnn32.js.map +0 -1
  303. package/dist/admin/CreateActionEE-Qdz4UDPf.mjs.map +0 -1
  304. package/dist/admin/CreateActionEE-_i5qXWEG.js.map +0 -1
  305. package/dist/admin/CreatePage-03MgCK7Z.js.map +0 -1
  306. package/dist/admin/CreatePage-uTwt_c8J.mjs.map +0 -1
  307. package/dist/admin/EditPage-F3yH0Fy6.mjs.map +0 -1
  308. package/dist/admin/EditPage-Ly5MBiuB.js.map +0 -1
  309. package/dist/admin/EditPage-UqMDbMvJ.js.map +0 -1
  310. package/dist/admin/EditPage-XSz7Wpt8.mjs.map +0 -1
  311. package/dist/admin/EditPage-YqW1NIMp.js.map +0 -1
  312. package/dist/admin/EditPage-lyFePXWl.mjs.map +0 -1
  313. package/dist/admin/EditView-bRFkRKAz.js.map +0 -1
  314. package/dist/admin/EditView-r0lx661I.mjs.map +0 -1
  315. package/dist/admin/EditViewPage-f5dHmqdT.mjs.map +0 -1
  316. package/dist/admin/EditViewPage-tAsn6QS9.js.map +0 -1
  317. package/dist/admin/HomePage-UTnZwpp-.js.map +0 -1
  318. package/dist/admin/HomePage-ZF3T0k2r.mjs.map +0 -1
  319. package/dist/admin/InstalledPluginsPage-eOXi3oTN.mjs.map +0 -1
  320. package/dist/admin/InstalledPluginsPage-o43CGz2w.js.map +0 -1
  321. package/dist/admin/Layout-XxmAreH1.js.map +0 -1
  322. package/dist/admin/Layout-mnn4_IJp.mjs.map +0 -1
  323. package/dist/admin/ListPage-5g8MtUEB.mjs.map +0 -1
  324. package/dist/admin/ListPage-AFDAiR9X.mjs.map +0 -1
  325. package/dist/admin/ListPage-NTxNcftS.js.map +0 -1
  326. package/dist/admin/ListPage-Pi_dzfDr.js.map +0 -1
  327. package/dist/admin/ListPage-URtxfNJ4.js.map +0 -1
  328. package/dist/admin/ListPage-eNkUD3v_.mjs.map +0 -1
  329. package/dist/admin/ListPage-hln8fKzE.js.map +0 -1
  330. package/dist/admin/ListPage-kdjzZ2al.mjs.map +0 -1
  331. package/dist/admin/ListView-FBh2WTHx.mjs.map +0 -1
  332. package/dist/admin/ListView-f2wVT21J.js.map +0 -1
  333. package/dist/admin/ListView-pYVBJ4lg.js.map +0 -1
  334. package/dist/admin/ListView-uwPF62w6.mjs.map +0 -1
  335. package/dist/admin/Login-3rLFPliB.js.map +0 -1
  336. package/dist/admin/Login-FSNzATl0.mjs.map +0 -1
  337. package/dist/admin/MarketplacePage-kNQPkoZK.mjs.map +0 -1
  338. package/dist/admin/MarketplacePage-sSTqINSu.js.map +0 -1
  339. package/dist/admin/Permissions-NlSnXUKO.js.map +0 -1
  340. package/dist/admin/Permissions-aU1eesjP.mjs.map +0 -1
  341. package/dist/admin/ProfilePage-T2kC_KoM.mjs.map +0 -1
  342. package/dist/admin/ProfilePage-jU98pa61.js.map +0 -1
  343. package/dist/admin/PurchaseAuditLogs-GreHFPSR.js.map +0 -1
  344. package/dist/admin/PurchaseAuditLogs-_1tVWtNF.mjs.map +0 -1
  345. package/dist/admin/PurchaseSingleSignOn-6t4xuNBd.js.map +0 -1
  346. package/dist/admin/PurchaseSingleSignOn-VUU-U4wi.mjs.map +0 -1
  347. package/dist/admin/SSOProviders-FZwT7RmU.js.map +0 -1
  348. package/dist/admin/SSOProviders-GcYDRAyn.mjs.map +0 -1
  349. package/dist/admin/SelectRoles--ys30CdN.mjs.map +0 -1
  350. package/dist/admin/SelectRoles-EdE6yfsj.js.map +0 -1
  351. package/dist/admin/SingleSignOnPage-Y-brfYQ1.mjs +0 -234
  352. package/dist/admin/SingleSignOnPage-Y-brfYQ1.mjs.map +0 -1
  353. package/dist/admin/SingleSignOnPage-nv121JbB.js +0 -259
  354. package/dist/admin/SingleSignOnPage-nv121JbB.js.map +0 -1
  355. package/dist/admin/Table--He5qeQG.mjs.map +0 -1
  356. package/dist/admin/Table-HXu3Nz4W.js.map +0 -1
  357. package/dist/admin/TokenTypeSelect-kgKThMAL.mjs.map +0 -1
  358. package/dist/admin/TokenTypeSelect-yY2kwTyO.js.map +0 -1
  359. package/dist/admin/UseCasePage-6_WRtTwv.js.map +0 -1
  360. package/dist/admin/UseCasePage-bfP-fDoW.mjs.map +0 -1
  361. package/dist/admin/admin-5SXhE_nJ.mjs +0 -256
  362. package/dist/admin/admin-5SXhE_nJ.mjs.map +0 -1
  363. package/dist/admin/admin-vlKSOeHB.js +0 -274
  364. package/dist/admin/admin-vlKSOeHB.js.map +0 -1
  365. package/dist/admin/apiTokens-bNRitXGF.mjs.map +0 -1
  366. package/dist/admin/apiTokens-lXn03No3.js.map +0 -1
  367. package/dist/admin/constants-qdY4HMAg.js.map +0 -1
  368. package/dist/admin/constants-wnw4TGwG.mjs.map +0 -1
  369. package/dist/admin/index-7fPlAzj6.mjs.map +0 -1
  370. package/dist/admin/index-FJLgZ-Wg.js.map +0 -1
  371. package/dist/admin/rbac-uVd0RAE5.mjs.map +0 -1
  372. package/dist/admin/rbac-xgYdpUSq.js.map +0 -1
  373. package/dist/admin/transferTokens-5qQjIKFd.js.map +0 -1
  374. package/dist/admin/transferTokens-ngan7vz6.mjs.map +0 -1
  375. package/dist/admin/useWebhooks-8VWSFqNg.mjs.map +0 -1
  376. package/dist/admin/useWebhooks-oZ5DKtvz.js.map +0 -1
@@ -9,12 +9,12 @@ const formik = require('formik');
9
9
  const reactIntl = require('react-intl');
10
10
  const reactRouterDom = require('react-router-dom');
11
11
  const yup = require('yup');
12
- const index = require('./index-FJLgZ-Wg.js');
13
- const rbac = require('./rbac-xgYdpUSq.js');
14
- const transferTokens = require('./transferTokens-5qQjIKFd.js');
15
- const admin = require('./admin-vlKSOeHB.js');
12
+ const index = require('./index-UrJZyInv.js');
13
+ const rbac = require('./rbac-5b9ylhpa.js');
14
+ const transferTokens = require('./transferTokens-HcVXmOrq.js');
15
+ const admin = require('./admin-p0djr5G6.js');
16
16
  const constants = require('./constants-8PhEUZTR.js');
17
- const TokenTypeSelect = require('./TokenTypeSelect-yY2kwTyO.js');
17
+ const TokenTypeSelect = require('./TokenTypeSelect-j99COf2u.js');
18
18
 
19
19
  function _interopNamespace(e) {
20
20
  if (e && e.__esModule) return e;
@@ -228,7 +228,7 @@ const EditView = () => {
228
228
  regenerateUrl: "/admin/transfer/tokens/"
229
229
  }
230
230
  ),
231
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: [
231
+ /* @__PURE__ */ jsxRuntime.jsx(index.Layouts.Content, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: [
232
232
  transferToken && Boolean(transferToken?.name) && "accessKey" in transferToken && /* @__PURE__ */ jsxRuntime.jsx(TokenTypeSelect.TokenBox, { token: transferToken.accessKey, tokenType: constants.TRANSFER_TOKEN_TYPE }),
233
233
  /* @__PURE__ */ jsxRuntime.jsx(
234
234
  FormTransferTokenContainer,
@@ -297,7 +297,7 @@ const FormTransferTokenContainer = ({
297
297
  paddingLeft: 7,
298
298
  paddingRight: 7,
299
299
  children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 4, children: [
300
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", as: "h2", children: formatMessage({
300
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", tag: "h2", children: formatMessage({
301
301
  id: "global.details",
302
302
  defaultMessage: "Details"
303
303
  }) }),
@@ -355,4 +355,4 @@ const FormTransferTokenContainer = ({
355
355
 
356
356
  exports.EditView = EditView;
357
357
  exports.ProtectedEditView = ProtectedEditView;
358
- //# sourceMappingURL=EditView-bRFkRKAz.js.map
358
+ //# sourceMappingURL=EditView-gJfIIjvG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditView-gJfIIjvG.js","sources":["../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { useGuidedTour } from '../../../../components/GuidedTour/Provider';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useCreateTransferTokenMutation,\n useGetTransferTokenQuery,\n useUpdateTransferTokenMutation,\n} from '../../../../services/transferTokens';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { FormHead } from '../../components/Tokens/FormHead';\nimport { LifeSpanInput } from '../../components/Tokens/LifeSpanInput';\nimport { TokenBox } from '../../components/Tokens/TokenBox';\nimport { TokenDescription } from '../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../components/Tokens/TokenTypeSelect';\n\nimport type {\n TransferToken,\n SanitizedTransferToken,\n} from '../../../../../../shared/contracts/transfer';\n\nconst schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n permissions: yup.string().required(translatedErrors.required.id),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { state: locationState } = useLocation();\n const [transferToken, setTransferToken] = React.useState<\n TransferToken | SanitizedTransferToken | null\n >(\n locationState && 'accessKey' in locationState.transferToken\n ? {\n ...locationState.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const setCurrentStep = useGuidedTour('EditView', (state) => state.setCurrentStep);\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions);\n const match = useMatch('/settings/transfer-tokens/:id');\n\n const id = match?.params?.id;\n const isCreating = id === 'create';\n\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error } = useGetTransferTokenQuery(id!, {\n skip: isCreating || transferToken !== null || !id,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (data) {\n setTransferToken(data);\n }\n }, [data]);\n\n const [createToken] = useCreateTransferTokenMutation();\n const [updateToken] = useUpdateTransferTokenMutation();\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n const permissions = body.permissions.split('-');\n\n const isPermissionsTransferPermission = (\n permission: string[]\n ): permission is Array<'push' | 'pull'> => {\n if (permission.length === 1) {\n return permission[0] === 'push' || permission[0] === 'pull';\n }\n\n return permission[0] === 'push' && permission[1] === 'pull';\n };\n\n // this type-guard is necessary to satisfy the type for `permissions` in the request body,\n // because String.split returns stringp[]\n if (isPermissionsTransferPermission(permissions)) {\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0'\n ? parseInt(body.lifespan.toString(), 10)\n : null,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n navigate(`../transfer-tokens/${res.data.id.toString()}`, {\n replace: true,\n state: { transferToken: res.data },\n });\n setCurrentStep('transferTokens.success');\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={\n {\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan || null,\n /**\n * We need to cast the permissions to satisfy the type for `permissions`\n * in the request body incase we don't have a transferToken and instead\n * use an empty string.\n */\n permissions: (transferToken?.permissions.join('-') ?? '') as FormValues['permissions'],\n } satisfies FormValues\n }\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'TokenCreate Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {transferToken &&\n Boolean(transferToken?.name) &&\n 'accessKey' in transferToken && (\n <TokenBox token={transferToken.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormTransferTokenContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormValues extends Pick<TransferToken, 'description' | 'name' | 'lifespan'> {\n permissions: Extract<TransferToken['permissions'][number], string>;\n}\n\ninterface FormTransferTokenContainerProps {\n errors: FormikErrors<FormValues>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values: FormValues;\n isCreating: boolean;\n transferToken: Partial<TransferToken> | null;\n}\n\nconst FormTransferTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken = {},\n}: FormTransferTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem key=\"name\" col={6} xs={12}>\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"description\" col={6} xs={12}>\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"lifespan\" col={6} xs={12}>\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={transferToken}\n />\n </GridItem>\n <GridItem key=\"permissions\" col={6} xs={12}>\n <TokenTypeSelect\n name=\"permissions\"\n value={values['permissions']}\n error={errors['permissions']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n // @ts-expect-error – DS Select passes number | string, will be fixed in V2\n onChange={(value: string) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nexport { EditView, ProtectedEditView };\n"],"names":["yup","translatedErrors","useIntl","useNotification","useNavigate","useLocation","React","useTracking","useGuidedTour","useTypedSelector","useRBAC","useMatch","useAPIErrorHandler","TRANSFER_TOKEN_TYPE","useGetTransferTokenQuery","useCreateTransferTokenMutation","useUpdateTransferTokenMutation","permissions","isBaseQueryError","jsx","Page","jsxs","Formik","Form","FormHead","Layouts","Flex","TokenBox","Box","Typography","Grid","GridItem","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect"],"mappings":"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"}
@@ -8,16 +8,16 @@ const designSystem = require('@strapi/design-system');
8
8
  const formik = require('formik');
9
9
  const reactIntl = require('react-intl');
10
10
  const reactRouterDom = require('react-router-dom');
11
- const index = require('./index-FJLgZ-Wg.js');
12
- const rbac = require('./rbac-xgYdpUSq.js');
13
- const apiTokens = require('./apiTokens-lXn03No3.js');
14
- const admin = require('./admin-vlKSOeHB.js');
11
+ const index = require('./index-UrJZyInv.js');
12
+ const rbac = require('./rbac-5b9ylhpa.js');
13
+ const apiTokens = require('./apiTokens-YxfAnO7_.js');
14
+ const admin = require('./admin-p0djr5G6.js');
15
15
  const constants = require('./constants-8PhEUZTR.js');
16
- const TokenTypeSelect = require('./TokenTypeSelect-yY2kwTyO.js');
16
+ const TokenTypeSelect = require('./TokenTypeSelect-j99COf2u.js');
17
17
  const reactContext = require('@radix-ui/react-context');
18
18
  const map = require('lodash/map');
19
19
  const tail = require('lodash/tail');
20
- const styled = require('styled-components');
20
+ const styledComponents = require('styled-components');
21
21
  const icons = require('@strapi/icons');
22
22
  const capitalize = require('lodash/capitalize');
23
23
  const yup = require('yup');
@@ -47,7 +47,6 @@ function _interopNamespace(e) {
47
47
  const React__namespace = /*#__PURE__*/_interopNamespace(React);
48
48
  const map__default = /*#__PURE__*/_interopDefault(map);
49
49
  const tail__default = /*#__PURE__*/_interopDefault(tail);
50
- const styled__default = /*#__PURE__*/_interopDefault(styled);
51
50
  const capitalize__default = /*#__PURE__*/_interopDefault(capitalize);
52
51
  const yup__namespace = /*#__PURE__*/_interopNamespace(yup);
53
52
  const pull__default = /*#__PURE__*/_interopDefault(pull);
@@ -134,7 +133,7 @@ const FormApiTokenContainer = ({
134
133
  paddingLeft: 7,
135
134
  paddingRight: 7,
136
135
  children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 4, children: [
137
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", as: "h2", children: formatMessage({
136
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", tag: "h2", children: formatMessage({
138
137
  id: "global.details",
139
138
  defaultMessage: "Details"
140
139
  }) }),
@@ -229,7 +228,7 @@ const getMethodColor = (verb) => {
229
228
  }
230
229
  }
231
230
  };
232
- const MethodBox = styled__default.default(designSystem.Box)`
231
+ const MethodBox = styledComponents.styled(designSystem.Box)`
233
232
  margin: -1px;
234
233
  border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};
235
234
  `;
@@ -246,7 +245,7 @@ const BoundRoute = ({
246
245
  const [controller = "", action = ""] = title ? title.split(".") : [];
247
246
  const colors = getMethodColor(route.method);
248
247
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
249
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "delta", as: "h3", children: [
248
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "delta", tag: "h3", children: [
250
249
  formatMessage({
251
250
  id: "Settings.apiTokens.createPage.BoundRoute.title",
252
251
  defaultMessage: "Bound route to"
@@ -287,11 +286,11 @@ const ActionBoundRoutes = () => {
287
286
  children: selectedAction ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 2, children: actionSection && actionSection in routes && routes[actionSection].map((route) => {
288
287
  return route.config.auth?.scope?.includes(selectedAction) || route.handler === selectedAction ? /* @__PURE__ */ jsxRuntime.jsx(BoundRoute, { route }, route.handler) : null;
289
288
  }) }) : /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
290
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", as: "h3", children: formatMessage({
289
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", tag: "h3", children: formatMessage({
291
290
  id: "Settings.apiTokens.createPage.permissions.header.title",
292
291
  defaultMessage: "Advanced settings"
293
292
  }) }),
294
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "p", textColor: "neutral600", children: formatMessage({
293
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "p", textColor: "neutral600", children: formatMessage({
295
294
  id: "Settings.apiTokens.createPage.permissions.header.hint",
296
295
  defaultMessage: "Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"
297
296
  }) })
@@ -300,13 +299,13 @@ const ActionBoundRoutes = () => {
300
299
  );
301
300
  };
302
301
 
303
- const activeCheckboxWrapperStyles = styled.css`
302
+ const activeCheckboxWrapperStyles = styledComponents.css`
304
303
  background: ${(props) => props.theme.colors.primary100};
305
304
  svg {
306
305
  opacity: 1;
307
306
  }
308
307
  `;
309
- const CheckboxWrapper = styled__default.default(designSystem.Box)`
308
+ const CheckboxWrapper = styledComponents.styled(designSystem.Box)`
310
309
  display: flex;
311
310
  justify-content: space-between;
312
311
  align-items: center;
@@ -319,12 +318,12 @@ const CheckboxWrapper = styled__default.default(designSystem.Box)`
319
318
  }
320
319
 
321
320
  /* Show active style both on hover and when the action is selected */
322
- ${(props) => props.isActive && activeCheckboxWrapperStyles}
321
+ ${(props) => props.$isActive && activeCheckboxWrapperStyles}
323
322
  &:hover {
324
323
  ${activeCheckboxWrapperStyles}
325
324
  }
326
325
  `;
327
- const Border = styled__default.default.div`
326
+ const Border = styledComponents.styled.div`
328
327
  flex: 1;
329
328
  align-self: center;
330
329
  border-top: 1px solid ${({ theme }) => theme.colors.neutral150};
@@ -333,113 +332,89 @@ const CollapsableContentType = ({
333
332
  controllers = [],
334
333
  label,
335
334
  orderNumber = 0,
336
- disabled = false,
337
- onExpanded = () => null,
338
- indexExpandendCollapsedContent = null
335
+ disabled = false
339
336
  }) => {
340
337
  const {
341
338
  value: { onChangeSelectAll, onChange, selectedActions, setSelectedAction, selectedAction }
342
339
  } = useApiTokenPermissions();
343
- const [expanded, setExpanded] = React__namespace.useState(false);
344
340
  const { formatMessage } = reactIntl.useIntl();
345
- const handleExpandedAccordion = () => {
346
- setExpanded((s) => !s);
347
- onExpanded(orderNumber);
348
- };
349
- React__namespace.useEffect(() => {
350
- if (indexExpandendCollapsedContent !== null && indexExpandendCollapsedContent !== orderNumber && expanded) {
351
- setExpanded(false);
352
- }
353
- }, [indexExpandendCollapsedContent, orderNumber, expanded]);
354
341
  const isActionSelected = (actionId) => actionId === selectedAction;
355
- return /* @__PURE__ */ jsxRuntime.jsxs(
356
- designSystem.Accordion,
357
- {
358
- expanded,
359
- onToggle: handleExpandedAccordion,
360
- variant: orderNumber % 2 ? "primary" : "secondary",
361
- children: [
362
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.AccordionToggle, { title: capitalize__default.default(label) }),
363
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.AccordionContent, { children: controllers?.map((controller) => {
364
- const allActionsSelected = controller.actions.every(
365
- (action) => selectedActions.includes(action.actionId)
366
- );
367
- const someActionsSelected = controller.actions.some(
368
- (action) => selectedActions.includes(action.actionId)
369
- );
370
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { children: [
371
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", alignItems: "center", padding: 4, children: [
372
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingRight: 4, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: controller?.controller }) }),
373
- /* @__PURE__ */ jsxRuntime.jsx(Border, {}),
374
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
375
- designSystem.Checkbox,
376
- {
377
- value: allActionsSelected,
378
- indeterminate: !allActionsSelected && someActionsSelected,
379
- onValueChange: () => {
380
- onChangeSelectAll({ target: { value: [...controller.actions] } });
381
- },
382
- disabled,
383
- children: formatMessage({ id: "app.utils.select-all", defaultMessage: "Select all" })
384
- }
385
- ) })
386
- ] }),
387
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, padding: 4, children: controller?.actions && controller?.actions.map((action) => {
388
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsxs(
389
- CheckboxWrapper,
390
- {
391
- isActive: isActionSelected(action.actionId),
392
- padding: 2,
393
- hasRadius: true,
394
- children: [
395
- /* @__PURE__ */ jsxRuntime.jsx(
396
- designSystem.Checkbox,
397
- {
398
- value: selectedActions.includes(action.actionId),
399
- name: action.actionId,
400
- onValueChange: () => {
401
- onChange({ target: { value: action.actionId } });
402
- },
403
- disabled,
404
- children: action.action
405
- }
406
- ),
407
- /* @__PURE__ */ jsxRuntime.jsx(
408
- "button",
409
- {
410
- type: "button",
411
- "data-testid": "action-cog",
412
- onClick: () => setSelectedAction({ target: { value: action.actionId } }),
413
- style: { display: "inline-flex", alignItems: "center" },
414
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.Cog, {})
415
- }
416
- )
417
- ]
418
- }
419
- ) }, action.actionId);
420
- }) })
421
- ] }, `${label}.${controller?.controller}`);
342
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Accordion.Item, { value: `${label}-${orderNumber}`, children: [
343
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Header, { variant: orderNumber % 2 ? "primary" : "secondary", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Trigger, { children: capitalize__default.default(label) }) }),
344
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: controllers?.map((controller) => {
345
+ const allActionsSelected = controller.actions.every(
346
+ (action) => selectedActions.includes(action.actionId)
347
+ );
348
+ const someActionsSelected = controller.actions.some(
349
+ (action) => selectedActions.includes(action.actionId)
350
+ );
351
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { children: [
352
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", alignItems: "center", padding: 4, children: [
353
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingRight: 4, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: controller?.controller }) }),
354
+ /* @__PURE__ */ jsxRuntime.jsx(Border, {}),
355
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
356
+ designSystem.Checkbox,
357
+ {
358
+ value: allActionsSelected,
359
+ indeterminate: !allActionsSelected && someActionsSelected,
360
+ onValueChange: () => {
361
+ onChangeSelectAll({ target: { value: [...controller.actions] } });
362
+ },
363
+ disabled,
364
+ children: formatMessage({ id: "app.utils.select-all", defaultMessage: "Select all" })
365
+ }
366
+ ) })
367
+ ] }),
368
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, padding: 4, children: controller?.actions && controller?.actions.map((action) => {
369
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsxs(
370
+ CheckboxWrapper,
371
+ {
372
+ $isActive: isActionSelected(action.actionId),
373
+ padding: 2,
374
+ hasRadius: true,
375
+ children: [
376
+ /* @__PURE__ */ jsxRuntime.jsx(
377
+ designSystem.Checkbox,
378
+ {
379
+ value: selectedActions.includes(action.actionId),
380
+ name: action.actionId,
381
+ onValueChange: () => {
382
+ onChange({ target: { value: action.actionId } });
383
+ },
384
+ disabled,
385
+ children: action.action
386
+ }
387
+ ),
388
+ /* @__PURE__ */ jsxRuntime.jsx(
389
+ "button",
390
+ {
391
+ type: "button",
392
+ "data-testid": "action-cog",
393
+ onClick: () => setSelectedAction({ target: { value: action.actionId } }),
394
+ style: { display: "inline-flex", alignItems: "center" },
395
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons.Cog, {})
396
+ }
397
+ )
398
+ ]
399
+ }
400
+ ) }, action.actionId);
422
401
  }) })
423
- ]
424
- }
425
- );
402
+ ] }, `${label}.${controller?.controller}`);
403
+ }) })
404
+ ] });
426
405
  };
427
406
 
428
407
  const ContentTypesSection = ({ section = null, ...props }) => {
429
- const [indexExpandedCollpsedContent, setIndexExpandedCollpsedContent] = React__namespace.useState(null);
430
- const handleExpandedCollpsedContentIndex = (index) => setIndexExpandedCollpsedContent(index);
431
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 4, background: "neutral0", children: section && section.map((api, index) => /* @__PURE__ */ jsxRuntime.jsx(
408
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 4, background: "neutral0", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Root, { size: "M", children: section && section.map((api, index) => /* @__PURE__ */ jsxRuntime.jsx(
432
409
  CollapsableContentType,
433
410
  {
434
411
  label: api.label,
435
412
  controllers: api.controllers,
436
413
  orderNumber: index,
437
- indexExpandendCollapsedContent: indexExpandedCollpsedContent,
438
- onExpanded: handleExpandedCollpsedContentIndex,
439
414
  ...props
440
415
  },
441
416
  api.apiId
442
- )) });
417
+ )) }) });
443
418
  };
444
419
 
445
420
  const Permissions = ({ ...props }) => {
@@ -450,11 +425,11 @@ const Permissions = ({ ...props }) => {
450
425
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid, { gap: 0, shadow: "filterShadow", hasRadius: true, background: "neutral0", children: [
451
426
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.GridItem, { col: 7, paddingTop: 6, paddingBottom: 6, paddingLeft: 7, paddingRight: 7, children: [
452
427
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
453
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", as: "h2", children: formatMessage({
428
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", tag: "h2", children: formatMessage({
454
429
  id: "Settings.apiTokens.createPage.permissions.title",
455
430
  defaultMessage: "Permissions"
456
431
  }) }),
457
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "p", textColor: "neutral600", children: formatMessage({
432
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "p", textColor: "neutral600", children: formatMessage({
458
433
  id: "Settings.apiTokens.createPage.permissions.description",
459
434
  defaultMessage: "Only actions bound by a route are listed below."
460
435
  }) })
@@ -835,7 +810,7 @@ const EditView = () => {
835
810
  regenerateUrl: "/admin/api-tokens/"
836
811
  }
837
812
  ),
838
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: [
813
+ /* @__PURE__ */ jsxRuntime.jsx(index.Layouts.Content, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: [
839
814
  Boolean(apiToken?.name) && /* @__PURE__ */ jsxRuntime.jsx(TokenTypeSelect.TokenBox, { token: apiToken?.accessKey, tokenType: constants.API_TOKEN_TYPE }),
840
815
  /* @__PURE__ */ jsxRuntime.jsx(
841
816
  FormApiTokenContainer,
@@ -872,4 +847,4 @@ const ProtectedEditView = () => {
872
847
 
873
848
  exports.EditView = EditView;
874
849
  exports.ProtectedEditView = ProtectedEditView;
875
- //# sourceMappingURL=EditViewPage-tAsn6QS9.js.map
850
+ //# sourceMappingURL=EditViewPage-KEF7ROrG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditViewPage-KEF7ROrG.js","sources":["../../admin/src/services/contentApi.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/ContentTypesSection.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/constants.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.tsx"],"sourcesContent":["import { adminApi } from './api';\n\nimport type { List as ListContentApiPermissions } from '../../../shared/contracts/content-api/permissions';\nimport type { List as ListContentApiRoutes } from '../../../shared/contracts/content-api/routes';\n\nconst contentApiService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getPermissions: builder.query<ListContentApiPermissions.Response['data'], void>({\n query: () => '/admin/content-api/permissions',\n transformResponse: (response: ListContentApiPermissions.Response) => response.data,\n }),\n getRoutes: builder.query<ListContentApiRoutes.Response['data'], void>({\n query: () => '/admin/content-api/routes',\n transformResponse: (response: ListContentApiRoutes.Response) => response.data,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetPermissionsQuery, useGetRoutesQuery } = contentApiService;\n\nexport { useGetPermissionsQuery, useGetRoutesQuery };\n","/* eslint-disable check-file/filename-naming-convention */\n\nimport * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\n\nimport { List as ListContentApiPermissions } from '../../../../../../../shared/contracts/content-api/permissions';\nimport { List as ListContentApiRoutes } from '../../../../../../../shared/contracts/content-api/routes';\n\nexport interface PseudoEvent {\n target: { value: string };\n}\n\ninterface ApiTokenPermissionsContextValue {\n value: {\n selectedAction: string | null;\n routes: ListContentApiRoutes.Response['data'];\n selectedActions: string[];\n data: {\n allActionsIds: string[];\n permissions: ListContentApiPermissions.Response['data'][];\n };\n onChange: ({ target: { value } }: PseudoEvent) => void;\n onChangeSelectAll: ({\n target: { value },\n }: {\n target: { value: { action: string; actionId: string }[] };\n }) => void;\n setSelectedAction: ({ target: { value } }: PseudoEvent) => void;\n };\n}\n\ninterface ApiTokenPermissionsContextProviderProps extends ApiTokenPermissionsContextValue {\n children: React.ReactNode | React.ReactNode[];\n}\n\nconst [ApiTokenPermissionsContextProvider, useApiTokenPermissionsContext] =\n createContext<ApiTokenPermissionsContextValue>('ApiTokenPermissionsContext');\n\nconst ApiTokenPermissionsProvider = ({\n children,\n ...rest\n}: ApiTokenPermissionsContextProviderProps) => {\n return (\n <ApiTokenPermissionsContextProvider {...rest}>{children}</ApiTokenPermissionsContextProvider>\n );\n};\n\nconst useApiTokenPermissions = () => useApiTokenPermissionsContext('useApiTokenPermissions');\n\nexport { ApiTokenPermissionsProvider, useApiTokenPermissions };\nexport type { ApiTokenPermissionsContextValue, ApiTokenPermissionsContextProviderProps };\n","import * as React from 'react';\n\nimport { Box, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport { FormikErrors } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport { LifeSpanInput } from '../../../../components/Tokens/LifeSpanInput';\nimport { TokenDescription } from '../../../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../../../components/Tokens/TokenTypeSelect';\n\nimport type { ApiToken } from '../../../../../../../../shared/contracts/api-token';\n\ninterface FormApiTokenContainerProps {\n errors?: FormikErrors<Pick<ApiToken, 'name' | 'description' | 'lifespan' | 'type'>>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values?: Partial<Pick<ApiToken, 'name' | 'description' | 'lifespan' | 'type'>>;\n isCreating: boolean;\n apiToken?: null | Partial<ApiToken>;\n onDispatch: React.Dispatch<any>;\n setHasChangedPermissions: (hasChanged: boolean) => void;\n}\n\nexport const FormApiTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values = {},\n apiToken = {},\n onDispatch,\n setHasChangedPermissions,\n}: FormApiTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const handleChangeSelectApiTokenType = ({ target: { value } }: { target: { value: string } }) => {\n setHasChangedPermissions(false);\n\n if (value === 'full-access') {\n onDispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (value === 'read-only') {\n onDispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n };\n\n const typeOptions = [\n {\n value: 'read-only',\n label: {\n id: 'Settings.tokens.types.read-only',\n defaultMessage: 'Read-only',\n },\n },\n {\n value: 'full-access',\n label: {\n id: 'Settings.tokens.types.full-access',\n defaultMessage: 'Full access',\n },\n },\n {\n value: 'custom',\n label: {\n id: 'Settings.tokens.types.custom',\n defaultMessage: 'Custom',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem key=\"name\" col={6} xs={12}>\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"description\" col={6} xs={12}>\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"lifespan\" col={6} xs={12}>\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={apiToken}\n />\n </GridItem>\n\n <GridItem key=\"type\" col={6} xs={12}>\n <TokenTypeSelect\n value={values['type']}\n error={errors['type']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n onChange={(value) => {\n // @ts-expect-error – DS Select supports numbers & strings, will be removed in V2\n handleChangeSelectApiTokenType({ target: { value } });\n\n // @ts-expect-error – DS Select supports numbers & strings, will be removed in V2\n onChange({ target: { name: 'type', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n","import React from 'react';\n\nimport { Box, BoxComponent, Flex, Typography } from '@strapi/design-system';\nimport map from 'lodash/map';\nimport tail from 'lodash/tail';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme } from 'styled-components';\n\ntype HttpVerb = 'POST' | 'GET' | 'PUT' | 'DELETE';\n\ntype MethodColor = {\n text: keyof DefaultTheme['colors'];\n border: keyof DefaultTheme['colors'];\n background: keyof DefaultTheme['colors'];\n};\n\nconst getMethodColor = (verb: HttpVerb): MethodColor => {\n switch (verb) {\n case 'POST': {\n return {\n text: 'success600',\n border: 'success200',\n background: 'success100',\n };\n }\n case 'GET': {\n return {\n text: 'secondary600',\n border: 'secondary200',\n background: 'secondary100',\n };\n }\n case 'PUT': {\n return {\n text: 'warning600',\n border: 'warning200',\n background: 'warning100',\n };\n }\n case 'DELETE': {\n return {\n text: 'danger600',\n border: 'danger200',\n background: 'danger100',\n };\n }\n default: {\n return {\n text: 'neutral600',\n border: 'neutral200',\n background: 'neutral100',\n };\n }\n }\n};\n\nconst MethodBox = styled<BoxComponent>(Box)`\n margin: -1px;\n border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};\n`;\n\ninterface BoundRouteProps {\n route: {\n handler: string;\n method: HttpVerb;\n path: string;\n };\n}\n\nexport const BoundRoute = ({\n route = {\n handler: 'Nocontroller.error',\n method: 'GET',\n path: '/there-is-no-path',\n },\n}: BoundRouteProps) => {\n const { formatMessage } = useIntl();\n\n const { method, handler: title, path } = route;\n const formattedRoute = path ? tail(path.split('/')) : [];\n const [controller = '', action = ''] = title ? title.split('.') : [];\n const colors = getMethodColor(route.method);\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.BoundRoute.title',\n defaultMessage: 'Bound route to',\n })}\n &nbsp;\n <span>{controller}</span>\n <Typography variant=\"delta\" textColor=\"primary600\">\n .{action}\n </Typography>\n </Typography>\n <Flex hasRadius background=\"neutral0\" borderColor=\"neutral200\" gap={0}>\n <MethodBox background={colors.background} borderColor={colors.border} padding={2}>\n <Typography fontWeight=\"bold\" textColor={colors.text}>\n {method}\n </Typography>\n </MethodBox>\n <Box paddingLeft={2} paddingRight={2}>\n {map(formattedRoute, (value) => (\n <Typography key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>\n /{value}\n </Typography>\n ))}\n </Box>\n </Flex>\n </Flex>\n );\n};\n","import { Flex, GridItem, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useApiTokenPermissions } from '../apiTokenPermissions';\n\nimport { BoundRoute } from './BoundRoute';\n\nexport const ActionBoundRoutes = () => {\n const {\n value: { selectedAction, routes },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n const actionSection = selectedAction?.split('.')[0];\n\n return (\n <GridItem\n col={5}\n background=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n style={{ minHeight: '100%' }}\n >\n {selectedAction ? (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {actionSection &&\n actionSection in routes &&\n routes[actionSection].map((route) => {\n return route.config.auth?.scope?.includes(selectedAction) ||\n route.handler === selectedAction ? (\n <BoundRoute key={route.handler} route={route} />\n ) : null;\n })}\n </Flex>\n ) : (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.header.title',\n defaultMessage: 'Advanced settings',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.header.hint',\n defaultMessage:\n \"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route\",\n })}\n </Typography>\n </Flex>\n )}\n </GridItem>\n );\n};\n","import * as React from 'react';\n\nimport {\n Accordion,\n Box,\n BoxComponent,\n Checkbox,\n Flex,\n Grid,\n GridItem,\n Typography,\n} from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport capitalize from 'lodash/capitalize';\nimport { useIntl } from 'react-intl';\nimport { styled, css } from 'styled-components';\n\nimport { ContentApiPermission } from '../../../../../../../../shared/contracts/content-api/permissions';\nimport { useApiTokenPermissions } from '../apiTokenPermissions';\n\nconst activeCheckboxWrapperStyles = css`\n background: ${(props) => props.theme.colors.primary100};\n svg {\n opacity: 1;\n }\n`;\n\nconst CheckboxWrapper = styled<BoxComponent>(Box)<{ $isActive: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n opacity: 0;\n path {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n\n /* Show active style both on hover and when the action is selected */\n ${(props) => props.$isActive && activeCheckboxWrapperStyles}\n &:hover {\n ${activeCheckboxWrapperStyles}\n }\n`;\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\ninterface CollapsableContentTypeProps {\n controllers?: ContentApiPermission['controllers'];\n label: ContentApiPermission['label'];\n orderNumber?: number;\n disabled?: boolean;\n}\n\nexport const CollapsableContentType = ({\n controllers = [],\n label,\n orderNumber = 0,\n disabled = false,\n}: CollapsableContentTypeProps) => {\n const {\n value: { onChangeSelectAll, onChange, selectedActions, setSelectedAction, selectedAction },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n\n const isActionSelected = (actionId: string) => actionId === selectedAction;\n\n return (\n <Accordion.Item value={`${label}-${orderNumber}`}>\n <Accordion.Header variant={orderNumber % 2 ? 'primary' : 'secondary'}>\n <Accordion.Trigger>{capitalize(label)}</Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Content>\n {controllers?.map((controller) => {\n const allActionsSelected = controller.actions.every((action) =>\n selectedActions.includes(action.actionId)\n );\n\n const someActionsSelected = controller.actions.some((action) =>\n selectedActions.includes(action.actionId)\n );\n\n return (\n <Box key={`${label}.${controller?.controller}`}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {controller?.controller}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n value={allActionsSelected}\n indeterminate={!allActionsSelected && someActionsSelected}\n onValueChange={() => {\n onChangeSelectAll({ target: { value: [...controller.actions] } });\n }}\n disabled={disabled}\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Grid gap={4} padding={4}>\n {controller?.actions &&\n controller?.actions.map((action) => {\n return (\n <GridItem col={6} key={action.actionId}>\n <CheckboxWrapper\n $isActive={isActionSelected(action.actionId)}\n padding={2}\n hasRadius\n >\n <Checkbox\n value={selectedActions.includes(action.actionId)}\n name={action.actionId}\n onValueChange={() => {\n onChange({ target: { value: action.actionId } });\n }}\n disabled={disabled}\n >\n {action.action}\n </Checkbox>\n <button\n type=\"button\"\n data-testid=\"action-cog\"\n onClick={() =>\n setSelectedAction({ target: { value: action.actionId } })\n }\n style={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <Cog />\n </button>\n </CheckboxWrapper>\n </GridItem>\n );\n })}\n </Grid>\n </Box>\n );\n })}\n </Accordion.Content>\n </Accordion.Item>\n );\n};\n","import { Accordion, Box } from '@strapi/design-system';\n\nimport { ContentApiPermission } from '../../../../../../../../shared/contracts/content-api/permissions';\n\nimport { CollapsableContentType } from './CollapsableContentType';\n\ninterface ContentTypesSectionProps {\n section: ContentApiPermission[] | null;\n}\n\nexport const ContentTypesSection = ({ section = null, ...props }: ContentTypesSectionProps) => {\n return (\n <Box padding={4} background=\"neutral0\">\n <Accordion.Root size=\"M\">\n {section &&\n section.map((api, index) => (\n <CollapsableContentType\n key={api.apiId}\n label={api.label}\n controllers={api.controllers}\n orderNumber={index}\n {...props}\n />\n ))}\n </Accordion.Root>\n </Box>\n );\n};\n","import { Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useApiTokenPermissions } from '../apiTokenPermissions';\n\nimport { ActionBoundRoutes } from './ActionBoundRoutes';\nimport { ContentTypesSection } from './ContentTypesSection';\n\nexport const Permissions = ({ ...props }) => {\n const {\n value: { data },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n\n return (\n <Grid gap={0} shadow=\"filterShadow\" hasRadius background=\"neutral0\">\n <GridItem col={7} paddingTop={6} paddingBottom={6} paddingLeft={7} paddingRight={7}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.title',\n defaultMessage: 'Permissions',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.permissions.description',\n defaultMessage: 'Only actions bound by a route are listed below.',\n })}\n </Typography>\n </Flex>\n {data?.permissions && <ContentTypesSection section={data?.permissions} {...props} />}\n </GridItem>\n <ActionBoundRoutes />\n </Grid>\n );\n};\n","import * as yup from 'yup';\n\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nexport const schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n type: yup\n .string()\n .oneOf(['read-only', 'full-access', 'custom'])\n .required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n});\n","import { ContentApiPermission } from '../../../../../../../../shared/contracts/content-api/permissions';\n\ninterface Layout {\n allActionsIds: string[];\n permissions: {\n apiId: string;\n label: string;\n controllers: { controller: string; actions: { action: string; actionId: string }[] }[];\n }[];\n}\n\nexport const transformPermissionsData = (data: ContentApiPermission) => {\n const layout: Layout = {\n allActionsIds: [],\n permissions: [],\n };\n\n layout.permissions = Object.entries(data).map(([apiId, permission]) => ({\n apiId,\n label: apiId.split('::')[1],\n controllers: Object.keys(permission.controllers)\n .map((controller) => ({\n controller,\n actions:\n controller in permission.controllers\n ? permission.controllers[controller]\n .map((action: ContentApiPermission['controllers']) => {\n const actionId = `${apiId}.${controller}.${action}`;\n\n if (apiId.includes('api::')) {\n layout.allActionsIds.push(actionId);\n }\n\n return {\n action,\n actionId,\n };\n })\n .flat()\n : [],\n }))\n .flat(),\n }));\n\n return layout;\n};\n","/* eslint-disable consistent-return */\nimport { produce } from 'immer';\nimport pull from 'lodash/pull';\n\nimport { ContentApiPermission } from '../../../../../../../shared/contracts/content-api/permissions';\n\nimport { ApiTokenPermissionsContextValue } from './apiTokenPermissions';\nimport { transformPermissionsData } from './utils/transformPermissionsData';\n\ntype InitialState = Pick<\n ApiTokenPermissionsContextValue['value'],\n 'data' | 'routes' | 'selectedAction' | 'selectedActions'\n>;\n\ninterface ActionOnChange {\n type: 'ON_CHANGE';\n value: string;\n}\n\ninterface ActionSelectAllInPermission {\n type: 'SELECT_ALL_IN_PERMISSION';\n value: { action: string; actionId: string }[];\n}\n\ninterface ActionSelectAllActions {\n type: 'SELECT_ALL_ACTIONS';\n}\n\ninterface ActionOnChangeReadOnly {\n type: 'ON_CHANGE_READ_ONLY';\n}\n\ninterface ActionUpdatePermissionsLayout {\n type: 'UPDATE_PERMISSIONS_LAYOUT';\n value: ContentApiPermission;\n}\n\ninterface ActionUpdateRoutes {\n type: 'UPDATE_ROUTES';\n value: ApiTokenPermissionsContextValue['value']['routes'] | undefined;\n}\n\ninterface ActionUpdatePermissions {\n type: 'UPDATE_PERMISSIONS';\n value: any[];\n}\n\ninterface ActionSetSelectedAction {\n type: 'SET_SELECTED_ACTION';\n value: string;\n}\n\ntype Action =\n | ActionOnChange\n | ActionSelectAllInPermission\n | ActionSelectAllActions\n | ActionOnChangeReadOnly\n | ActionUpdatePermissionsLayout\n | ActionUpdateRoutes\n | ActionUpdatePermissions\n | ActionSetSelectedAction;\n\nexport const initialState: InitialState = {\n data: {\n allActionsIds: [],\n permissions: [],\n },\n routes: {},\n selectedAction: '',\n selectedActions: [],\n};\n\nexport const reducer = (state: InitialState, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_CHANGE': {\n if (draftState.selectedActions.includes(action.value)) {\n pull(draftState.selectedActions, action.value);\n } else {\n draftState.selectedActions.push(action.value);\n }\n break;\n }\n case 'SELECT_ALL_IN_PERMISSION': {\n const areAllSelected = action.value.every((item) =>\n draftState.selectedActions.includes(item.actionId)\n );\n\n if (areAllSelected) {\n action.value.forEach((item) => {\n pull(draftState.selectedActions, item.actionId);\n });\n } else {\n action.value.forEach((item) => {\n draftState.selectedActions.push(item.actionId);\n });\n }\n break;\n }\n\n case 'SELECT_ALL_ACTIONS': {\n draftState.selectedActions = [...draftState.data.allActionsIds];\n\n break;\n }\n case 'ON_CHANGE_READ_ONLY': {\n const onlyReadOnlyActions = draftState.data.allActionsIds.filter(\n (actionId) => actionId.includes('find') || actionId.includes('findOne')\n );\n draftState.selectedActions = [...onlyReadOnlyActions];\n break;\n }\n case 'UPDATE_PERMISSIONS_LAYOUT': {\n draftState.data = transformPermissionsData(action.value);\n break;\n }\n case 'UPDATE_ROUTES': {\n draftState.routes = { ...action.value };\n break;\n }\n case 'UPDATE_PERMISSIONS': {\n draftState.selectedActions = [...action.value];\n break;\n }\n case 'SET_SELECTED_ACTION': {\n draftState.selectedAction = action.value;\n break;\n }\n default:\n return draftState;\n }\n });\n","import * as React from 'react';\n\nimport { Flex } from '@strapi/design-system';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useMatch, useNavigate } from 'react-router-dom';\n\nimport { useGuidedTour } from '../../../../../components/GuidedTour/Provider';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { Page } from '../../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../../core/store/hooks';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useTracking } from '../../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../hooks/useRBAC';\nimport {\n useCreateAPITokenMutation,\n useGetAPITokenQuery,\n useUpdateAPITokenMutation,\n} from '../../../../../services/apiTokens';\nimport { useGetPermissionsQuery, useGetRoutesQuery } from '../../../../../services/contentApi';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { API_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport { FormHead } from '../../../components/Tokens/FormHead';\nimport { TokenBox } from '../../../components/Tokens/TokenBox';\n\nimport {\n ApiTokenPermissionsContextValue,\n ApiTokenPermissionsProvider,\n} from './apiTokenPermissions';\nimport { FormApiTokenContainer } from './components/FormApiTokenContainer';\nimport { Permissions } from './components/Permissions';\nimport { schema } from './constants';\nimport { initialState, reducer } from './reducer';\n\nimport type { Get, ApiToken } from '../../../../../../../shared/contracts/api-token';\n\n/**\n * TODO: this could definitely be refactored to avoid using redux and instead just use the\n * server response as the source of the truth for the data.\n */\nexport const EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { state: locationState } = useLocation();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const [apiToken, setApiToken] = React.useState<ApiToken | null>(\n locationState?.apiToken?.accessKey\n ? {\n ...locationState.apiToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const setCurrentStep = useGuidedTour('EditView', (state) => state.setCurrentStep);\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions.settings?.['api-tokens']);\n const [state, dispatch] = React.useReducer(reducer, initialState);\n const match = useMatch('/settings/api-tokens/:id');\n const id = match?.params?.id;\n const isCreating = id === 'create';\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidtionErrors,\n } = useAPIErrorHandler();\n\n const navigate = useNavigate();\n\n const contentAPIPermissionsQuery = useGetPermissionsQuery();\n const contentAPIRoutesQuery = useGetRoutesQuery();\n\n /**\n * Separate effects otherwise we could end\n * up duplicating the same notification.\n */\n React.useEffect(() => {\n if (contentAPIPermissionsQuery.error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(contentAPIPermissionsQuery.error),\n });\n }\n }, [contentAPIPermissionsQuery.error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (contentAPIRoutesQuery.error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(contentAPIRoutesQuery.error),\n });\n }\n }, [contentAPIRoutesQuery.error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (contentAPIPermissionsQuery.data) {\n dispatch({\n type: 'UPDATE_PERMISSIONS_LAYOUT',\n value: contentAPIPermissionsQuery.data,\n });\n }\n }, [contentAPIPermissionsQuery.data]);\n\n React.useEffect(() => {\n if (contentAPIRoutesQuery.data) {\n dispatch({\n type: 'UPDATE_ROUTES',\n value: contentAPIRoutesQuery.data,\n });\n }\n }, [contentAPIRoutesQuery.data]);\n\n React.useEffect(() => {\n if (apiToken) {\n if (apiToken.type === 'read-only') {\n dispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n if (apiToken.type === 'full-access') {\n dispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (apiToken.type === 'custom') {\n dispatch({\n type: 'UPDATE_PERMISSIONS',\n value: apiToken?.permissions,\n });\n }\n }\n }, [apiToken]);\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error, isLoading } = useGetAPITokenQuery(id!, {\n skip: !id || isCreating || !!apiToken,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (data) {\n setApiToken(data);\n\n if (data.type === 'read-only') {\n dispatch({\n type: 'ON_CHANGE_READ_ONLY',\n });\n }\n if (data.type === 'full-access') {\n dispatch({\n type: 'SELECT_ALL_ACTIONS',\n });\n }\n if (data.type === 'custom') {\n dispatch({\n type: 'UPDATE_PERMISSIONS',\n value: data?.permissions,\n });\n }\n }\n }, [data]);\n\n const [createToken] = useCreateAPITokenMutation();\n const [updateToken] = useUpdateAPITokenMutation();\n\n interface FormValues extends Pick<Get.Response['data'], 'name' | 'description'> {\n lifespan: Get.Response['data']['lifespan'] | undefined;\n type: Get.Response['data']['type'] | undefined;\n }\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: API_TOKEN_TYPE,\n });\n\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0' ? parseInt(body.lifespan.toString(), 10) : null,\n permissions: body.type === 'custom' ? state.selectedActions : null,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidtionErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.apitokencreated',\n defaultMessage: 'API Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: res.data.type,\n tokenType: API_TOKEN_TYPE,\n });\n\n navigate(`../api-tokens/${res.data.id.toString()}`, {\n state: { apiToken: res.data },\n replace: true,\n });\n setCurrentStep('apiTokens.success');\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n type: body.type,\n permissions: body.type === 'custom' ? state.selectedActions : null,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidtionErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.apitokenedited',\n defaultMessage: 'API Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: res.data.type,\n tokenType: API_TOKEN_TYPE,\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n };\n\n const [hasChangedPermissions, setHasChangedPermissions] = React.useState(false);\n\n const handleChangeCheckbox = ({\n target: { value },\n }: Parameters<ApiTokenPermissionsContextValue['value']['onChange']>[0]) => {\n setHasChangedPermissions(true);\n dispatch({\n type: 'ON_CHANGE',\n value,\n });\n };\n\n const handleChangeSelectAllCheckbox = ({\n target: { value },\n }: Parameters<ApiTokenPermissionsContextValue['value']['onChangeSelectAll']>[0]) => {\n setHasChangedPermissions(true);\n dispatch({\n type: 'SELECT_ALL_IN_PERMISSION',\n value,\n });\n };\n\n const setSelectedAction = ({\n target: { value },\n }: Parameters<ApiTokenPermissionsContextValue['value']['setSelectedAction']>[0]) => {\n dispatch({\n type: 'SET_SELECTED_ACTION',\n value,\n });\n };\n\n const providerValue = {\n ...state,\n onChange: handleChangeCheckbox,\n onChangeSelectAll: handleChangeSelectAllCheckbox,\n setSelectedAction,\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <ApiTokenPermissionsProvider value={providerValue}>\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'API Tokens' }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={{\n name: apiToken?.name || '',\n description: apiToken?.description || '',\n type: apiToken?.type,\n lifespan: apiToken?.lifespan,\n }}\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values, setFieldValue }) => {\n if (hasChangedPermissions && values?.type !== 'custom') {\n setFieldValue('type', 'custom');\n }\n\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.apiTokens.createPage.title',\n defaultMessage: 'Create API Token',\n }}\n token={apiToken}\n setToken={setApiToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/api-tokens/\"\n />\n\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {Boolean(apiToken?.name) && (\n <TokenBox token={apiToken?.accessKey} tokenType={API_TOKEN_TYPE} />\n )}\n <FormApiTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n apiToken={apiToken}\n onDispatch={dispatch}\n setHasChangedPermissions={setHasChangedPermissions}\n />\n <Permissions\n disabled={\n !canEditInputs ||\n values?.type === 'read-only' ||\n values?.type === 'full-access'\n }\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n </ApiTokenPermissionsProvider>\n );\n};\n\nexport const ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":["adminApi","createContext","jsx","useIntl","Box","Flex","Typography","jsxs","Grid","GridItem","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","styled","tail","css","Accordion","capitalize","Checkbox","Cog","yup","translatedErrors","produce","pull","useNotification","useLocation","useTypedSelector","state","React","useTracking","useGuidedTour","useRBAC","useMatch","useAPIErrorHandler","useNavigate","API_TOKEN_TYPE","useGetAPITokenQuery","useCreateAPITokenMutation","useUpdateAPITokenMutation","isBaseQueryError","Page","Formik","Form","FormHead","Layouts","TokenBox"],"mappings":"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"}