@strapi/admin 4.20.5 → 4.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/dist/_chunks/{AdminSeatInfo-VeqDpwGV.js → AdminSeatInfo-MibiuVe3.js} +9 -8
  2. package/dist/_chunks/{AdminSeatInfo-VeqDpwGV.js.map → AdminSeatInfo-MibiuVe3.js.map} +1 -1
  3. package/dist/_chunks/{AdminSeatInfo-0PZPHqsd.mjs → AdminSeatInfo-hYZ8eUpF.mjs} +9 -8
  4. package/dist/_chunks/{AdminSeatInfo-0PZPHqsd.mjs.map → AdminSeatInfo-hYZ8eUpF.mjs.map} +1 -1
  5. package/dist/_chunks/{AuthenticatedApp-3loM1zPQ.js → AuthenticatedApp-2mUijYOI.js} +21 -21
  6. package/dist/_chunks/{AuthenticatedApp-3loM1zPQ.js.map → AuthenticatedApp-2mUijYOI.js.map} +1 -1
  7. package/dist/_chunks/{AuthenticatedApp-p_Hoz4w0.mjs → AuthenticatedApp-nvm4fRcu.mjs} +21 -21
  8. package/dist/_chunks/{AuthenticatedApp-p_Hoz4w0.mjs.map → AuthenticatedApp-nvm4fRcu.mjs.map} +1 -1
  9. package/dist/_chunks/{CreateActionEE-BvBzN3ej.mjs → CreateActionEE-28yZAU6X.mjs} +8 -7
  10. package/dist/_chunks/{CreateActionEE-BvBzN3ej.mjs.map → CreateActionEE-28yZAU6X.mjs.map} +1 -1
  11. package/dist/_chunks/{CreateActionEE-msdEHH2t.js → CreateActionEE-u_QUOWRr.js} +8 -7
  12. package/dist/_chunks/{CreateActionEE-msdEHH2t.js.map → CreateActionEE-u_QUOWRr.js.map} +1 -1
  13. package/dist/_chunks/{CreatePage-tYv61v1J.js → CreatePage-Cqqvxnxa.js} +13 -12
  14. package/dist/_chunks/{CreatePage-tYv61v1J.js.map → CreatePage-Cqqvxnxa.js.map} +1 -1
  15. package/dist/_chunks/{CreatePage-eh67IoKV.mjs → CreatePage-ObDt4GbK.mjs} +9 -8
  16. package/dist/_chunks/{CreatePage-eh67IoKV.mjs.map → CreatePage-ObDt4GbK.mjs.map} +1 -1
  17. package/dist/_chunks/{CreatePage-DvbIy_jN.mjs → CreatePage-bPmBTOep.mjs} +13 -12
  18. package/dist/_chunks/{CreatePage-DvbIy_jN.mjs.map → CreatePage-bPmBTOep.mjs.map} +1 -1
  19. package/dist/_chunks/{CreatePage-CXHGEXMF.mjs → CreatePage-ed7j4RJV.mjs} +12 -11
  20. package/dist/_chunks/{CreatePage-CXHGEXMF.mjs.map → CreatePage-ed7j4RJV.mjs.map} +1 -1
  21. package/dist/_chunks/{CreatePage-TnWHEKrd.js → CreatePage-hacPLJKo.js} +9 -8
  22. package/dist/_chunks/{CreatePage-TnWHEKrd.js.map → CreatePage-hacPLJKo.js.map} +1 -1
  23. package/dist/_chunks/{CreatePage-0a6OdLKp.js → CreatePage-mBRa_iNg.js} +12 -11
  24. package/dist/_chunks/{CreatePage-0a6OdLKp.js.map → CreatePage-mBRa_iNg.js.map} +1 -1
  25. package/dist/_chunks/{CreateView-hFjKdwYu.mjs → CreateView--GAlOvKq.mjs} +12 -11
  26. package/dist/_chunks/{CreateView-hFjKdwYu.mjs.map → CreateView--GAlOvKq.mjs.map} +1 -1
  27. package/dist/_chunks/{CreateView-37DEWWCT.js → CreateView-3jGheoI1.js} +12 -11
  28. package/dist/_chunks/{CreateView-37DEWWCT.js.map → CreateView-3jGheoI1.js.map} +1 -1
  29. package/dist/_chunks/{CreateView-lQqp9igR.js → CreateView-VPheqVVt.js} +12 -11
  30. package/dist/_chunks/{CreateView-lQqp9igR.js.map → CreateView-VPheqVVt.js.map} +1 -1
  31. package/dist/_chunks/{CreateView-8a8sE0PN.mjs → CreateView-pVkFTxKp.mjs} +12 -11
  32. package/dist/_chunks/{CreateView-8a8sE0PN.mjs.map → CreateView-pVkFTxKp.mjs.map} +1 -1
  33. package/dist/_chunks/{EditPage-RrSgOYln.mjs → EditPage-0awwE3Ot.mjs} +14 -13
  34. package/dist/_chunks/{EditPage-RrSgOYln.mjs.map → EditPage-0awwE3Ot.mjs.map} +1 -1
  35. package/dist/_chunks/{EditPage-EFPGPMV_.js → EditPage-33i7ujZ8.js} +6 -6
  36. package/dist/_chunks/{EditPage-EFPGPMV_.js.map → EditPage-33i7ujZ8.js.map} +1 -1
  37. package/dist/_chunks/{EditPage-fOldhH6r.js → EditPage-7Ct3E98b.js} +12 -11
  38. package/dist/_chunks/{EditPage-fOldhH6r.js.map → EditPage-7Ct3E98b.js.map} +1 -1
  39. package/dist/_chunks/{EditPage-JS93HO0g.mjs → EditPage-MeydsvUK.mjs} +12 -11
  40. package/dist/_chunks/{EditPage-JS93HO0g.mjs.map → EditPage-MeydsvUK.mjs.map} +1 -1
  41. package/dist/_chunks/{EditPage-D0i2YdDb.js → EditPage-TpJ6dyZw.js} +10 -9
  42. package/dist/_chunks/{EditPage-D0i2YdDb.js.map → EditPage-TpJ6dyZw.js.map} +1 -1
  43. package/dist/_chunks/{EditPage-fVWNx5Oh.js → EditPage-VALeceJX.js} +14 -13
  44. package/dist/_chunks/{EditPage-fVWNx5Oh.js.map → EditPage-VALeceJX.js.map} +1 -1
  45. package/dist/_chunks/{EditPage-H51hPwcO.mjs → EditPage-ZTvR20S6.mjs} +6 -6
  46. package/dist/_chunks/{EditPage-H51hPwcO.mjs.map → EditPage-ZTvR20S6.mjs.map} +1 -1
  47. package/dist/_chunks/{EditPage-CbpEmXk3.mjs → EditPage-yKqM0bST.mjs} +10 -9
  48. package/dist/_chunks/{EditPage-CbpEmXk3.mjs.map → EditPage-yKqM0bST.mjs.map} +1 -1
  49. package/dist/_chunks/{EditView-o4vADGcb.js → EditView-4N0l1pQE.js} +10 -9
  50. package/dist/_chunks/{EditView-o4vADGcb.js.map → EditView-4N0l1pQE.js.map} +1 -1
  51. package/dist/_chunks/{EditView-lgBWjHOT.mjs → EditView-CsBrOadn.mjs} +10 -9
  52. package/dist/_chunks/{EditView-lgBWjHOT.mjs.map → EditView-CsBrOadn.mjs.map} +1 -1
  53. package/dist/_chunks/{EditViewPage-qJ7nFINE.mjs → EditViewPage-I4t8PYvh.mjs} +10 -9
  54. package/dist/_chunks/{EditViewPage-qJ7nFINE.mjs.map → EditViewPage-I4t8PYvh.mjs.map} +1 -1
  55. package/dist/_chunks/{EditViewPage-mqbskolf.js → EditViewPage-fepB7pKP.js} +10 -9
  56. package/dist/_chunks/{EditViewPage-mqbskolf.js.map → EditViewPage-fepB7pKP.js.map} +1 -1
  57. package/dist/_chunks/{EventsTable--TwAHLZA.js → EventsTable-1uoHb_3J.js} +12 -11
  58. package/dist/_chunks/{EventsTable--TwAHLZA.js.map → EventsTable-1uoHb_3J.js.map} +1 -1
  59. package/dist/_chunks/{EventsTable-Fvc-JpRm.mjs → EventsTable-uqU4ebwR.mjs} +12 -11
  60. package/dist/_chunks/{EventsTable-Fvc-JpRm.mjs.map → EventsTable-uqU4ebwR.mjs.map} +1 -1
  61. package/dist/_chunks/{HomePage-uF97iLvr.js → HomePage-UQWsRrI5.js} +11 -10
  62. package/dist/_chunks/{HomePage-uF97iLvr.js.map → HomePage-UQWsRrI5.js.map} +1 -1
  63. package/dist/_chunks/{HomePage-nOmgQyML.mjs → HomePage-q365diV4.mjs} +12 -11
  64. package/dist/_chunks/{HomePage-nOmgQyML.mjs.map → HomePage-q365diV4.mjs.map} +1 -1
  65. package/dist/_chunks/{HomePage-uLq-MN1K.js → HomePage-uCLCPqBp.js} +12 -11
  66. package/dist/_chunks/{HomePage-uLq-MN1K.js.map → HomePage-uCLCPqBp.js.map} +1 -1
  67. package/dist/_chunks/{HomePage-a1vOU1ul.mjs → HomePage-zpdV3R_J.mjs} +11 -10
  68. package/dist/_chunks/{HomePage-a1vOU1ul.mjs.map → HomePage-zpdV3R_J.mjs.map} +1 -1
  69. package/dist/_chunks/{InformationBoxEE-zr8UNPkv.mjs → InformationBoxEE-FcEBL8Fl.mjs} +9 -8
  70. package/dist/_chunks/{InformationBoxEE-zr8UNPkv.mjs.map → InformationBoxEE-FcEBL8Fl.mjs.map} +1 -1
  71. package/dist/_chunks/{InformationBoxEE-rompvdum.js → InformationBoxEE-ZTOhi2sn.js} +9 -8
  72. package/dist/_chunks/{InformationBoxEE-rompvdum.js.map → InformationBoxEE-ZTOhi2sn.js.map} +1 -1
  73. package/dist/_chunks/{InstalledPluginsPage-fCay7xDO.js → InstalledPluginsPage-CsNrEWNA.js} +9 -8
  74. package/dist/_chunks/{InstalledPluginsPage-fCay7xDO.js.map → InstalledPluginsPage-CsNrEWNA.js.map} +1 -1
  75. package/dist/_chunks/{InstalledPluginsPage-swMYXqyB.mjs → InstalledPluginsPage-QxMzZSAA.mjs} +9 -8
  76. package/dist/_chunks/{InstalledPluginsPage-swMYXqyB.mjs.map → InstalledPluginsPage-QxMzZSAA.mjs.map} +1 -1
  77. package/dist/_chunks/{Layout-BcpbdKNS.js → Layout-BfXkf1tg.js} +2 -2
  78. package/dist/_chunks/{Layout-BcpbdKNS.js.map → Layout-BfXkf1tg.js.map} +1 -1
  79. package/dist/_chunks/{Layout-vuQrq1Uu.mjs → Layout-BquZQAb2.mjs} +2 -2
  80. package/dist/_chunks/{Layout-vuQrq1Uu.mjs.map → Layout-BquZQAb2.mjs.map} +1 -1
  81. package/dist/_chunks/{ListPage-G5KMMFsZ.mjs → ListPage-4xBsXFzo.mjs} +12 -11
  82. package/dist/_chunks/{ListPage-G5KMMFsZ.mjs.map → ListPage-4xBsXFzo.mjs.map} +1 -1
  83. package/dist/_chunks/{ListPage-AKGBR4U_.mjs → ListPage-FEAgz6nH.mjs} +8 -7
  84. package/dist/_chunks/{ListPage-AKGBR4U_.mjs.map → ListPage-FEAgz6nH.mjs.map} +1 -1
  85. package/dist/_chunks/{ListPage-2GK03p5D.js → ListPage-LOriRfBq.js} +8 -7
  86. package/dist/_chunks/{ListPage-2GK03p5D.js.map → ListPage-LOriRfBq.js.map} +1 -1
  87. package/dist/_chunks/{ListPage-bxulds-R.js → ListPage-NrSchY-X.js} +10 -9
  88. package/dist/_chunks/{ListPage-bxulds-R.js.map → ListPage-NrSchY-X.js.map} +1 -1
  89. package/dist/_chunks/{ListPage-8ZPXoi72.js → ListPage-iL3qGB-7.js} +12 -11
  90. package/dist/_chunks/{ListPage-8ZPXoi72.js.map → ListPage-iL3qGB-7.js.map} +1 -1
  91. package/dist/_chunks/{ListPage-txDe-JTh.js → ListPage-l9uLwOUs.js} +14 -13
  92. package/dist/_chunks/{ListPage-txDe-JTh.js.map → ListPage-l9uLwOUs.js.map} +1 -1
  93. package/dist/_chunks/{ListPage-hFe-nYXL.mjs → ListPage-qafrcs26.mjs} +9 -8
  94. package/dist/_chunks/{ListPage-hFe-nYXL.mjs.map → ListPage-qafrcs26.mjs.map} +1 -1
  95. package/dist/_chunks/{ListPage-oOPktA3S.mjs → ListPage-wfXHUaaw.mjs} +10 -9
  96. package/dist/_chunks/{ListPage-oOPktA3S.mjs.map → ListPage-wfXHUaaw.mjs.map} +1 -1
  97. package/dist/_chunks/{ListPage-Tebxu06N.mjs → ListPage-wz4r1cje.mjs} +13 -12
  98. package/dist/_chunks/{ListPage-Tebxu06N.mjs.map → ListPage-wz4r1cje.mjs.map} +1 -1
  99. package/dist/_chunks/{ListPage-JIwwNmac.mjs → ListPage-xannISFa.mjs} +14 -13
  100. package/dist/_chunks/{ListPage-JIwwNmac.mjs.map → ListPage-xannISFa.mjs.map} +1 -1
  101. package/dist/_chunks/{ListPage-IqEVyyyf.js → ListPage-y0INhiFO.js} +9 -8
  102. package/dist/_chunks/{ListPage-IqEVyyyf.js.map → ListPage-y0INhiFO.js.map} +1 -1
  103. package/dist/_chunks/{ListPage-LA0lT654.js → ListPage-ydOBPR53.js} +13 -12
  104. package/dist/_chunks/{ListPage-LA0lT654.js.map → ListPage-ydOBPR53.js.map} +1 -1
  105. package/dist/_chunks/{ListView-07uZxF2i.mjs → ListView-BCc3qmYg.mjs} +9 -8
  106. package/dist/_chunks/{ListView-07uZxF2i.mjs.map → ListView-BCc3qmYg.mjs.map} +1 -1
  107. package/dist/_chunks/{ListView-BHlcoKKy.mjs → ListView-CBlwwUD_.mjs} +9 -8
  108. package/dist/_chunks/{ListView-BHlcoKKy.mjs.map → ListView-CBlwwUD_.mjs.map} +1 -1
  109. package/dist/_chunks/{ListView-ESH3o0Lu.js → ListView-CD7jHNFH.js} +9 -8
  110. package/dist/_chunks/{ListView-ESH3o0Lu.js.map → ListView-CD7jHNFH.js.map} +1 -1
  111. package/dist/_chunks/{ListView-qaE8Vcb3.js → ListView-mY1VfCWs.js} +9 -8
  112. package/dist/_chunks/{ListView-qaE8Vcb3.js.map → ListView-mY1VfCWs.js.map} +1 -1
  113. package/dist/_chunks/{Login-ZETxeuNn.mjs → Login-JfsOEES0.mjs} +8 -7
  114. package/dist/_chunks/{Login-ZETxeuNn.mjs.map → Login-JfsOEES0.mjs.map} +1 -1
  115. package/dist/_chunks/{Login-POtw5QbC.js → Login-x6cjYspM.js} +8 -7
  116. package/dist/_chunks/{Login-POtw5QbC.js.map → Login-x6cjYspM.js.map} +1 -1
  117. package/dist/_chunks/{MagicLinkEE-VHh9i6gc.js → MagicLinkEE-faQF742D.js} +10 -9
  118. package/dist/_chunks/{MagicLinkEE-VHh9i6gc.js.map → MagicLinkEE-faQF742D.js.map} +1 -1
  119. package/dist/_chunks/{MagicLinkEE-HMr2D5cP.mjs → MagicLinkEE-s7jLtjiz.mjs} +10 -9
  120. package/dist/_chunks/{MagicLinkEE-HMr2D5cP.mjs.map → MagicLinkEE-s7jLtjiz.mjs.map} +1 -1
  121. package/dist/_chunks/{MarketplacePage-h7hniYgx.js → MarketplacePage-1mCa5BDJ.js} +9 -8
  122. package/dist/_chunks/{MarketplacePage-h7hniYgx.js.map → MarketplacePage-1mCa5BDJ.js.map} +1 -1
  123. package/dist/_chunks/{MarketplacePage-ZRMsVYJZ.mjs → MarketplacePage-wtul_pNK.mjs} +9 -8
  124. package/dist/_chunks/{MarketplacePage-ZRMsVYJZ.mjs.map → MarketplacePage-wtul_pNK.mjs.map} +1 -1
  125. package/dist/_chunks/{Permissions-0WY1QWWe.js → Permissions--a4GyuI7.js} +2 -2
  126. package/dist/_chunks/{Permissions-0WY1QWWe.js.map → Permissions--a4GyuI7.js.map} +1 -1
  127. package/dist/_chunks/{Permissions-ZU9ueRGQ.mjs → Permissions-M9xmouDR.mjs} +2 -2
  128. package/dist/_chunks/{Permissions-ZU9ueRGQ.mjs.map → Permissions-M9xmouDR.mjs.map} +1 -1
  129. package/dist/_chunks/{ProfilePage-1Lw2oTjj.js → ProfilePage-I8K2wpuC.js} +9 -8
  130. package/dist/_chunks/{ProfilePage-1Lw2oTjj.js.map → ProfilePage-I8K2wpuC.js.map} +1 -1
  131. package/dist/_chunks/{ProfilePage-nhuFpc-j.mjs → ProfilePage-fzPpJZLL.mjs} +9 -8
  132. package/dist/_chunks/{ProfilePage-nhuFpc-j.mjs.map → ProfilePage-fzPpJZLL.mjs.map} +1 -1
  133. package/dist/_chunks/{PurchaseAuditLogs-zQio54Q3.mjs → PurchaseAuditLogs-KILCZp5x.mjs} +2 -2
  134. package/dist/_chunks/PurchaseAuditLogs-KILCZp5x.mjs.map +1 -0
  135. package/dist/_chunks/{PurchaseAuditLogs--hjsKHHW.js → PurchaseAuditLogs-bs-tiD4M.js} +2 -2
  136. package/dist/_chunks/PurchaseAuditLogs-bs-tiD4M.js.map +1 -0
  137. package/dist/_chunks/{PurchaseReviewWorkflows-P-FACd5s.js → PurchaseReviewWorkflows-cdGh-HED.js} +2 -2
  138. package/dist/_chunks/PurchaseReviewWorkflows-cdGh-HED.js.map +1 -0
  139. package/dist/_chunks/{PurchaseReviewWorkflows-zGnRRqrC.mjs → PurchaseReviewWorkflows-rVcCufNv.mjs} +2 -2
  140. package/dist/_chunks/PurchaseReviewWorkflows-rVcCufNv.mjs.map +1 -0
  141. package/dist/_chunks/{PurchaseSingleSignOn-BQ5PU-6E.mjs → PurchaseSingleSignOn-H8KWtk1K.mjs} +2 -2
  142. package/dist/_chunks/PurchaseSingleSignOn-H8KWtk1K.mjs.map +1 -0
  143. package/dist/_chunks/{PurchaseSingleSignOn-m2pnP9Ou.js → PurchaseSingleSignOn-OqlM4WkQ.js} +2 -2
  144. package/dist/_chunks/PurchaseSingleSignOn-OqlM4WkQ.js.map +1 -0
  145. package/dist/_chunks/{ReviewWorkflowsColumn-RLBHKpSx.js → ReviewWorkflowsColumn-K_K8J7hl.js} +8 -7
  146. package/dist/_chunks/{ReviewWorkflowsColumn-RLBHKpSx.js.map → ReviewWorkflowsColumn-K_K8J7hl.js.map} +1 -1
  147. package/dist/_chunks/{ReviewWorkflowsColumn-chpd_GQz.mjs → ReviewWorkflowsColumn-_MYDc8Ry.mjs} +8 -7
  148. package/dist/_chunks/{ReviewWorkflowsColumn-chpd_GQz.mjs.map → ReviewWorkflowsColumn-_MYDc8Ry.mjs.map} +1 -1
  149. package/dist/_chunks/{SelectRoles-J-cOmNPg.mjs → SelectRoles-5dhVQuV2.mjs} +3 -3
  150. package/dist/_chunks/{SelectRoles-J-cOmNPg.mjs.map → SelectRoles-5dhVQuV2.mjs.map} +1 -1
  151. package/dist/_chunks/{SelectRoles-G7h5eMx7.js → SelectRoles-Gyf7Ze1D.js} +3 -3
  152. package/dist/_chunks/{SelectRoles-G7h5eMx7.js.map → SelectRoles-Gyf7Ze1D.js.map} +1 -1
  153. package/dist/_chunks/{SettingsPage-RxG0zNmi.js → SettingsPage-jUSxQ0ho.js} +30 -29
  154. package/dist/_chunks/{SettingsPage-RxG0zNmi.js.map → SettingsPage-jUSxQ0ho.js.map} +1 -1
  155. package/dist/_chunks/{SettingsPage-LJF4HQu3.mjs → SettingsPage-s5Dj-61C.mjs} +30 -29
  156. package/dist/_chunks/{SettingsPage-LJF4HQu3.mjs.map → SettingsPage-s5Dj-61C.mjs.map} +1 -1
  157. package/dist/_chunks/{SingleSignOnPage-mUWnhmYK.mjs → SingleSignOnPage-TT4oryGn.mjs} +9 -8
  158. package/dist/_chunks/{SingleSignOnPage-mUWnhmYK.mjs.map → SingleSignOnPage-TT4oryGn.mjs.map} +1 -1
  159. package/dist/_chunks/{SingleSignOnPage-5tR5Di3-.js → SingleSignOnPage-b0O5egmz.js} +9 -8
  160. package/dist/_chunks/{SingleSignOnPage-5tR5Di3-.js.map → SingleSignOnPage-b0O5egmz.js.map} +1 -1
  161. package/dist/_chunks/{TokenTypeSelect-Pu2u4u60.js → TokenTypeSelect-6njzWQeV.js} +2 -2
  162. package/dist/_chunks/{TokenTypeSelect-Pu2u4u60.js.map → TokenTypeSelect-6njzWQeV.js.map} +1 -1
  163. package/dist/_chunks/{TokenTypeSelect--jNeSLmd.mjs → TokenTypeSelect-gkAdWU2y.mjs} +2 -2
  164. package/dist/_chunks/{TokenTypeSelect--jNeSLmd.mjs.map → TokenTypeSelect-gkAdWU2y.mjs.map} +1 -1
  165. package/dist/_chunks/{apiTokens--6uAVPWd.js → apiTokens-UtJ8rJCr.js} +2 -2
  166. package/dist/_chunks/{apiTokens--6uAVPWd.js.map → apiTokens-UtJ8rJCr.js.map} +1 -1
  167. package/dist/_chunks/{apiTokens-kqDQ_zpb.mjs → apiTokens-h0AaRihg.mjs} +2 -2
  168. package/dist/_chunks/{apiTokens-kqDQ_zpb.mjs.map → apiTokens-h0AaRihg.mjs.map} +1 -1
  169. package/dist/_chunks/{constants-7tUiUGm7.js → constants--ce1rwK1.js} +6 -6
  170. package/dist/_chunks/{constants-7tUiUGm7.js.map → constants--ce1rwK1.js.map} +1 -1
  171. package/dist/_chunks/{constants-oGpvjQcC.mjs → constants-3oj946tc.mjs} +6 -6
  172. package/dist/_chunks/{constants-oGpvjQcC.mjs.map → constants-3oj946tc.mjs.map} +1 -1
  173. package/dist/_chunks/{constants-pDLet6IX.js → constants-6LdQgFgh.js} +8 -7
  174. package/dist/_chunks/{constants-pDLet6IX.js.map → constants-6LdQgFgh.js.map} +1 -1
  175. package/dist/_chunks/{constants-jbMn10wi.js → constants-P-KABNaY.js} +10 -9
  176. package/dist/_chunks/{constants-jbMn10wi.js.map → constants-P-KABNaY.js.map} +1 -1
  177. package/dist/_chunks/{constants-qrsi70P9.mjs → constants-PCBjswmE.mjs} +8 -7
  178. package/dist/_chunks/{constants-qrsi70P9.mjs.map → constants-PCBjswmE.mjs.map} +1 -1
  179. package/dist/_chunks/{constants-8R4e_wL4.mjs → constants-cOPVDhHQ.mjs} +10 -9
  180. package/dist/_chunks/{constants-8R4e_wL4.mjs.map → constants-cOPVDhHQ.mjs.map} +1 -1
  181. package/dist/_chunks/{constants-I89xL90x.js → constants-ctzjEs9Q.js} +8 -7
  182. package/dist/_chunks/{constants-I89xL90x.js.map → constants-ctzjEs9Q.js.map} +1 -1
  183. package/dist/_chunks/{constants-wqvQZos7.mjs → constants-i_FIHwfG.mjs} +8 -7
  184. package/dist/_chunks/{constants-wqvQZos7.mjs.map → constants-i_FIHwfG.mjs.map} +1 -1
  185. package/dist/_chunks/{en-ZBAy2GQ0.mjs → en-ZwaF4t5c.mjs} +4 -4
  186. package/dist/_chunks/{en-ZBAy2GQ0.mjs.map → en-ZwaF4t5c.mjs.map} +1 -1
  187. package/dist/_chunks/{en-l5S8Gv-y.js → en-sP8T18rk.js} +4 -4
  188. package/dist/_chunks/{en-l5S8Gv-y.js.map → en-sP8T18rk.js.map} +1 -1
  189. package/dist/_chunks/{index-ydPzLfs7.js → index-5bHZZ1bQ.js} +13590 -13280
  190. package/dist/_chunks/index-5bHZZ1bQ.js.map +1 -0
  191. package/dist/_chunks/{index-yRyOfi01.mjs → index-pisKLsr8.mjs} +13592 -13283
  192. package/dist/_chunks/index-pisKLsr8.mjs.map +1 -0
  193. package/dist/_chunks/{reviewWorkflows-zkQBDTm_.mjs → reviewWorkflows-_QwFJdPf.mjs} +2 -2
  194. package/dist/_chunks/{reviewWorkflows-zkQBDTm_.mjs.map → reviewWorkflows-_QwFJdPf.mjs.map} +1 -1
  195. package/dist/_chunks/{reviewWorkflows-qkvwfbFl.js → reviewWorkflows-qY9w_Srd.js} +2 -2
  196. package/dist/_chunks/{reviewWorkflows-qkvwfbFl.js.map → reviewWorkflows-qY9w_Srd.js.map} +1 -1
  197. package/dist/_chunks/{transferTokens-8RJcRrF7.mjs → transferTokens-SaRdrMx_.mjs} +2 -2
  198. package/dist/_chunks/{transferTokens-8RJcRrF7.mjs.map → transferTokens-SaRdrMx_.mjs.map} +1 -1
  199. package/dist/_chunks/{transferTokens-mBIXwjnE.js → transferTokens-xykSY8aM.js} +2 -2
  200. package/dist/_chunks/{transferTokens-mBIXwjnE.js.map → transferTokens-xykSY8aM.js.map} +1 -1
  201. package/dist/_chunks/{useAdminRoles-2lOWH8Kw.js → useAdminRoles-2_gv0THe.js} +2 -2
  202. package/dist/_chunks/{useAdminRoles-2lOWH8Kw.js.map → useAdminRoles-2_gv0THe.js.map} +1 -1
  203. package/dist/_chunks/{useAdminRoles-0FSsVVVF.mjs → useAdminRoles-3IFEVyaA.mjs} +2 -2
  204. package/dist/_chunks/{useAdminRoles-0FSsVVVF.mjs.map → useAdminRoles-3IFEVyaA.mjs.map} +1 -1
  205. package/dist/_chunks/{useContentTypes-JzGTxjad.js → useContentTypes-9PaxXISe.js} +2 -2
  206. package/dist/_chunks/{useContentTypes-JzGTxjad.js.map → useContentTypes-9PaxXISe.js.map} +1 -1
  207. package/dist/_chunks/{useContentTypes-GOmCpezl.mjs → useContentTypes-rYXD3ohE.mjs} +2 -2
  208. package/dist/_chunks/{useContentTypes-GOmCpezl.mjs.map → useContentTypes-rYXD3ohE.mjs.map} +1 -1
  209. package/dist/_chunks/{useLicenseLimitNotification-U_gpKHX2.mjs → useLicenseLimitNotification-O_Ayr57V.mjs} +2 -2
  210. package/dist/_chunks/{useLicenseLimitNotification-U_gpKHX2.mjs.map → useLicenseLimitNotification-O_Ayr57V.mjs.map} +1 -1
  211. package/dist/_chunks/{useLicenseLimitNotification-MeYE7YEx.js → useLicenseLimitNotification-buPAIxAM.js} +2 -2
  212. package/dist/_chunks/{useLicenseLimitNotification-MeYE7YEx.js.map → useLicenseLimitNotification-buPAIxAM.js.map} +1 -1
  213. package/dist/_chunks/{useReviewWorkflows--Q0J_Ge3.js → useReviewWorkflows-UoegtQMR.js} +2 -2
  214. package/dist/_chunks/{useReviewWorkflows--Q0J_Ge3.js.map → useReviewWorkflows-UoegtQMR.js.map} +1 -1
  215. package/dist/_chunks/{useReviewWorkflows-JseCtS_K.mjs → useReviewWorkflows-rZwsjTIf.mjs} +2 -2
  216. package/dist/_chunks/{useReviewWorkflows-JseCtS_K.mjs.map → useReviewWorkflows-rZwsjTIf.mjs.map} +1 -1
  217. package/dist/_chunks/{useWebhooks-GBt4UUQt.mjs → useWebhooks-g4gI6Wxf.mjs} +2 -2
  218. package/dist/_chunks/{useWebhooks-GBt4UUQt.mjs.map → useWebhooks-g4gI6Wxf.mjs.map} +1 -1
  219. package/dist/_chunks/{useWebhooks-rkAK3kK5.js → useWebhooks-hX8Kb83I.js} +2 -2
  220. package/dist/_chunks/{useWebhooks-rkAK3kK5.js.map → useWebhooks-hX8Kb83I.js.map} +1 -1
  221. package/dist/_chunks/{validateWorkflow-Owsa2rpu.mjs → validateWorkflow-l4Zr41nC.mjs} +2 -2
  222. package/dist/_chunks/{validateWorkflow-Owsa2rpu.mjs.map → validateWorkflow-l4Zr41nC.mjs.map} +1 -1
  223. package/dist/_chunks/{validateWorkflow-K0uDqmsX.js → validateWorkflow-s4PVrbQP.js} +2 -2
  224. package/dist/_chunks/{validateWorkflow-K0uDqmsX.js.map → validateWorkflow-s4PVrbQP.js.map} +1 -1
  225. package/dist/admin/index.js +7 -6
  226. package/dist/admin/index.js.map +1 -1
  227. package/dist/admin/index.mjs +7 -6
  228. package/dist/admin/index.mjs.map +1 -1
  229. package/dist/admin/src/StrapiApp.d.ts +4 -0
  230. package/dist/admin/src/components/DescriptionComponentRenderer.d.ts +31 -0
  231. package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/Actions.d.ts +51 -0
  232. package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/{SelectedEntriesModal.d.ts → PublishAction.d.ts} +10 -10
  233. package/dist/admin/src/content-manager/pages/ListView/hooks/useAllowedActions.d.ts +2 -0
  234. package/dist/admin/src/core/apis/Plugin.d.ts +7 -6
  235. package/dist/admin/src/core/apis/content-manager.d.ts +58 -0
  236. package/dist/admin/src/hooks/useForceUpdate.d.ts +7 -0
  237. package/dist/admin/src/hooks/useIsMounted.d.ts +3 -0
  238. package/dist/admin/src/hooks/useThrottledCallback.d.ts +22 -0
  239. package/dist/admin/src/utils/shims.d.ts +4 -0
  240. package/package.json +13 -13
  241. package/dist/_chunks/PurchaseAuditLogs--hjsKHHW.js.map +0 -1
  242. package/dist/_chunks/PurchaseAuditLogs-zQio54Q3.mjs.map +0 -1
  243. package/dist/_chunks/PurchaseReviewWorkflows-P-FACd5s.js.map +0 -1
  244. package/dist/_chunks/PurchaseReviewWorkflows-zGnRRqrC.mjs.map +0 -1
  245. package/dist/_chunks/PurchaseSingleSignOn-BQ5PU-6E.mjs.map +0 -1
  246. package/dist/_chunks/PurchaseSingleSignOn-m2pnP9Ou.js.map +0 -1
  247. package/dist/_chunks/index-yRyOfi01.mjs.map +0 -1
  248. package/dist/_chunks/index-ydPzLfs7.js.map +0 -1
  249. package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/Buttons.d.ts +0 -27
@@ -1 +1 @@
1
- {"version":3,"file":"SingleSignOnPage-5tR5Di3-.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n Form,\n LoadingIndicatorPage,\n SettingsPageTitle,\n translatedErrors,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n formik: FormikHelpers<ProvidersOptions.Request['body']>\n ) => {\n // @ts-expect-error - context assertation\n lockApp();\n\n try {\n const res = await updateProviderOptions(body);\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: 'warning',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n },\n });\n } finally {\n // @ts-expect-error - context assertation\n unlockApp();\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Formik\n onSubmit={handleSubmit}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n validationSchema={schema}\n validateOnChange={false}\n enableReinitialize\n >\n {({ handleChange, isSubmitting, values, setFieldValue, dirty, errors }) => (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={!dirty}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isSubmitting || isLoadingData ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} s={12}>\n <ToggleInput\n disabled={!canUpdate}\n checked={values.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={handleChange}\n />\n </GridItem>\n <GridItem col={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n errors.defaultRole\n ? formatMessage({\n id: errors.defaultRole,\n defaultMessage: errors.defaultRole,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) =>\n handleChange({ target: { name: 'defaultRole', value } })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={values.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n errors.ssoLockedRoles\n ? formatMessage({\n id: errors.ssoLockedRoles,\n defaultMessage: errors.ssoLockedRoles,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) =>\n handleChange({\n target: {\n value,\n name: 'ssoLockedRoles',\n },\n })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => setFieldValue('ssoLockedRoles', [])}\n value={values.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </Form>\n )}\n </Formik>\n </Main>\n </Layout>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <SingleSignOnPage />\n </CheckPagePermissions>\n );\n};\n"],"names":["yup","translatedErrors","useFocusWhenNavigate","useIntl","useTypedSelector","useOverlayBlocker","useNotification","useAPIErrorHandler","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation","useRBAC","useAdminRoles","formik","isBaseQueryError","Layout","jsx","SettingsPageTitle","Main","Formik","jsxs","Form","HeaderLayout","Button","Check","ContentLayout","LoadingIndicatorPage","Flex","Typography","Grid","GridItem","ToggleInput","Select","Option","MultiSelect","MultiSelectOption","CheckPagePermissions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAM,SAASA,eAAI,OAAO,EAAE,MAAM;AAAA,EAChC,cAAcA,eAAI,KAAA,EAAO,SAASC,aAAAA,iBAAiB,QAAQ;AAAA,EAC3D,aAAaD,eAAI,MAAM,EAAE,KAAK,gBAAgB,CAAC,OAAO,eAAe;AACnE,WAAO,QAAQ,WAAW,SAASC,aAAAA,iBAAiB,QAAQ,IAAI,WAAW;EAAS,CACrF;AAAA,EACD,gBAAgBD,eACb,QACA,SACA,EAAA;AAAA,IACCA,eAAI,MAAM,EAAE,KAAK,kBAAkB,CAAC,OAAO,eAAe;AACxD,aAAO,QAAQ,WAAW,SAASC,aAAAA,iBAAiB,QAAQ,IAAI,WAAW;IAAS,CACrF;AAAA,EACH;AACJ,CAAC;AAEM,MAAM,mBAAmB,MAAM;AACfC,eAAAA;AAEf,QAAA,EAAE,kBAAkBC,UAAAA;AAC1B,QAAM,cAAcC,MAAAA,iBAAiB,CAAC,UAAU,MAAM,UAAU,WAAW;AAC3E,QAAM,EAAE,SAAS,UAAU,IAAIC,aAAkB,kBAAA;AACjD,QAAM,qBAAqBC,aAAAA;AACrB,QAAA;AAAA,IACJ,yBAAyB;AAAA,IACzB,iCAAiC;AAAA,MAC/BC,aAAmB,mBAAA;AAEvB,QAAM,EAAE,WAAW,0BAA0B,SAASC,MAA2B,2BAAA;AAEjF,QAAM,CAAC,uBAAuB,EAAE,WAAW,iBAAkB,CAAA,IAC3DC,MAAAA;AAEI,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,gBAAgB,EAAE,WAAW,aAAa;AAAA,MACxCC,qBAAQ;AAAA,IACV,GAAG,YAAY,UAAU;AAAA,IACzB,WAAW,YAAY,UAAU,MAAM,QAAQ,CAAC;AAAA,EAAA,CACjD;AAED,QAAM,EAAE,OAAO,WAAW,eAAe,IAAIC,cAAAA,cAAc,QAAW;AAAA,IACpE,MAAM,CAAC;AAAA,EAAA,CACR;AAEK,QAAA,eAAe,OACnB,MACAC,YACG;AAEK;AAEJ,QAAA;AACI,YAAA,MAAM,MAAM,sBAAsB,IAAI;AAE5C,UAAI,WAAW,KAAK;AAClB,YAAIC,MAAAA,iBAAiB,IAAI,KAAK,KAAK,IAAI,MAAM,SAAS,mBAAmB;AACvE,UAAAD,QAAO,UAAU,uBAAuB,IAAI,KAAK,CAAC;AAAA,QAAA,OAC7C;AACc,6BAAA;AAAA,YACjB,MAAM;AAAA,YACN,SAAS,eAAe,IAAI,KAAK;AAAA,UAAA,CAClC;AAAA,QACH;AAEA;AAAA,MACF;AAEmB,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,EAAE,IAAI,6BAA6B;AAAA,MAAA,CAC7C;AAAA,aACM,KAAK;AACO,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS;AAAA,UACP,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,MAAA,CACD;AAAA,IAAA,UACD;AAEU;IACZ;AAAA,EAAA;AAGI,QAAA,gBAAgB,kBAAkB,wBAAwB;AAEhE,yCACGE,qBACC,EAAA,UAAA;AAAA,IAACC,2BAAAA,IAAAC,aAAA,mBAAA,EAAkB,MAAK,MAAM,CAAA;AAAA,mCAC7BC,aAAAA,MAAK,EAAA,aAAW,oBAAoB,eAAe,UAAU,IAC5D,UAAAF,2BAAA;AAAA,MAACG,OAAA;AAAA,MAAA;AAAA,QACC,UAAU;AAAA,QACV,eACE,QAAQ;AAAA,UACN,cAAc;AAAA,UACd,aAAa;AAAA,UACb,gBAAgB;AAAA,QAClB;AAAA,QAEF,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,oBAAkB;AAAA,QAEjB,UAAA,CAAC,EAAE,cAAc,cAAc,QAAQ,eAAe,OAAO,OAAA,MAC5DC,2BAAAA,KAACC,aACC,MAAA,EAAA,UAAA;AAAA,UAAAL,2BAAA;AAAA,YAACM,aAAA;AAAA,YAAA;AAAA,cACC,eACEN,2BAAA;AAAA,gBAACO,aAAA;AAAA,gBAAA;AAAA,kBACC,UAAU,CAAC;AAAA,kBACX,SAAS;AAAA,kBACT,0CAAYC,MAAM,OAAA,EAAA;AAAA,kBAClB,MAAK;AAAA,kBACL,MAAK;AAAA,kBAEJ,UAAc,cAAA;AAAA,oBACb,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,gBAAA;AAAA,cACH;AAAA,cAEF,OAAO,cAAc;AAAA,gBACnB,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB;AAAA,cACD,UAAU,cAAc;AAAA,gBACtB,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB;AAAA,YAAA;AAAA,UACH;AAAA,yCACCC,aAAAA,eACE,EAAA,UAAA,gBAAgB,gBACfT,+BAACU,aAAAA,uBAAqB,CAAA,IAEtBN,2BAAA;AAAA,YAACO,aAAA;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,YAAW;AAAA,cACX,KAAK;AAAA,cACL,YAAW;AAAA,cACX,SAAS;AAAA,cACT,QAAO;AAAA,cACP,WAAS;AAAA,cAET,UAAA;AAAA,gBAAAX,+BAACY,aAAAA,YAAW,EAAA,SAAQ,SAAQ,IAAG,MAC5B,UAAc,cAAA;AAAA,kBACb,IAAI;AAAA,kBACJ,gBAAgB;AAAA,gBACjB,CAAA,GACH;AAAA,gBACAR,2BAAAA,KAACS,aAAAA,MAAK,EAAA,KAAK,GACT,UAAA;AAAA,kBAAAb,2BAAA,IAACc,aAAS,UAAA,EAAA,KAAK,GAAG,GAAG,IACnB,UAAAd,2BAAA;AAAA,oBAACe,aAAA;AAAA,oBAAA;AAAA,sBACC,UAAU,CAAC;AAAA,sBACX,SAAS,OAAO;AAAA,sBAChB,MAAM,cAAc;AAAA,wBAClB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,OAAO,cAAc;AAAA,wBACnB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,MAAK;AAAA,sBACL,UAAU,cAAc;AAAA,wBACtB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,SAAS,cAAc;AAAA,wBACrB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,UAAU;AAAA,oBAAA;AAAA,kBAAA,GAEd;AAAA,kBACCf,2BAAA,IAAAc,aAAA,UAAA,EAAS,KAAK,GAAG,GAAG,IACnB,UAAAd,2BAAA;AAAA,oBAACgB,aAAA;AAAA,oBAAA;AAAA,sBACC,UAAU,CAAC;AAAA,sBACX,MAAM,cAAc;AAAA,wBAClB,IAAI;AAAA,wBACJ,gBACE;AAAA,sBAAA,CACH;AAAA,sBACD,OACE,OAAO,cACH,cAAc;AAAA,wBACZ,IAAI,OAAO;AAAA,wBACX,gBAAgB,OAAO;AAAA,sBACxB,CAAA,IACD;AAAA,sBAEN,OAAO,cAAc;AAAA,wBACnB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,MAAK;AAAA,sBACL,UAAU,CAAC,UACT,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,MAAM,GAAG;AAAA,sBAEzD,aAAa,cAAc;AAAA,wBACzB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,OAAO,OAAO;AAAA,sBAEb,UAAM,MAAA,IAAI,CAAC,EAAE,IAAI,KAAK,MACpBhB,+BAAAiB,aAAAA,QAAA,EAAgB,OAAO,GAAG,SACxB,GAAA,UAAA,KAAA,GADU,EAEb,CACD;AAAA,oBAAA;AAAA,kBAAA,GAEL;AAAA,kBACCjB,2BAAA,IAAAc,aAAA,UAAA,EAAS,KAAK,GAAG,GAAG,IACnB,UAAAd,2BAAA;AAAA,oBAACkB,aAAA;AAAA,oBAAA;AAAA,sBACC,UAAU,CAAC;AAAA,sBACX,MAAM,cAAc;AAAA,wBAClB,IAAI;AAAA,wBACJ,gBACE;AAAA,sBAAA,CACH;AAAA,sBACD,OACE,OAAO,iBACH,cAAc;AAAA,wBACZ,IAAI,OAAO;AAAA,wBACX,gBAAgB,OAAO;AAAA,sBACxB,CAAA,IACD;AAAA,sBAEN,OAAO,cAAc;AAAA,wBACnB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,MAAK;AAAA,sBACL,UAAU,CAAC,UACT,aAAa;AAAA,wBACX,QAAQ;AAAA,0BACN;AAAA,0BACA,MAAM;AAAA,wBACR;AAAA,sBAAA,CACD;AAAA,sBAEH,aAAa,cAAc;AAAA,wBACzB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,SAAS,MAAM,cAAc,kBAAkB,EAAE;AAAA,sBACjD,OAAO,OAAO,kBAAkB,CAAC;AAAA,sBACjC,UAAQ;AAAA,sBAEP,UAAM,MAAA,IAAI,CAAC,EAAE,IAAI,KAAK,MACpBlB,+BAAAmB,aAAAA,mBAAA,EAA2B,OAAO,GAAG,SACnC,GAAA,UAAA,KAAA,GADqB,EAExB,CACD;AAAA,oBAAA;AAAA,kBAAA,GAEL;AAAA,gBAAA,GACF;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA,GAGN;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA,GAGN;AAAA,EACF,EAAA,CAAA;AAEJ;AAEO,MAAM,eAAe,MAAM;AAC1B,QAAA,cAAc9B,MAAAA,iBAAiB,CAAC,UAAU,MAAM,UAAU,YAAY,UAAU,KAAK,IAAI;AAE/F,SACGW,2BAAA,IAAAoB,mCAAA,EAAqB,aACpB,UAAApB,2BAAAA,IAAC,oBAAiB,EACpB,CAAA;AAEJ;;;"}
1
+ {"version":3,"file":"SingleSignOnPage-b0O5egmz.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n Form,\n LoadingIndicatorPage,\n SettingsPageTitle,\n translatedErrors,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n formik: FormikHelpers<ProvidersOptions.Request['body']>\n ) => {\n // @ts-expect-error - context assertation\n lockApp();\n\n try {\n const res = await updateProviderOptions(body);\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: 'warning',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n },\n });\n } finally {\n // @ts-expect-error - context assertation\n unlockApp();\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Formik\n onSubmit={handleSubmit}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n validationSchema={schema}\n validateOnChange={false}\n enableReinitialize\n >\n {({ handleChange, isSubmitting, values, setFieldValue, dirty, errors }) => (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={!dirty}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isSubmitting || isLoadingData ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} s={12}>\n <ToggleInput\n disabled={!canUpdate}\n checked={values.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={handleChange}\n />\n </GridItem>\n <GridItem col={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n errors.defaultRole\n ? formatMessage({\n id: errors.defaultRole,\n defaultMessage: errors.defaultRole,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) =>\n handleChange({ target: { name: 'defaultRole', value } })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={values.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n errors.ssoLockedRoles\n ? formatMessage({\n id: errors.ssoLockedRoles,\n defaultMessage: errors.ssoLockedRoles,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) =>\n handleChange({\n target: {\n value,\n name: 'ssoLockedRoles',\n },\n })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => setFieldValue('ssoLockedRoles', [])}\n value={values.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </Form>\n )}\n </Formik>\n </Main>\n </Layout>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <SingleSignOnPage />\n </CheckPagePermissions>\n );\n};\n"],"names":["yup","translatedErrors","useFocusWhenNavigate","useIntl","useTypedSelector","useOverlayBlocker","useNotification","useAPIErrorHandler","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation","useRBAC","useAdminRoles","formik","isBaseQueryError","Layout","jsx","SettingsPageTitle","Main","Formik","jsxs","Form","HeaderLayout","Button","Check","ContentLayout","LoadingIndicatorPage","Flex","Typography","Grid","GridItem","ToggleInput","Select","Option","MultiSelect","MultiSelectOption","CheckPagePermissions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAM,SAASA,eAAI,OAAO,EAAE,MAAM;AAAA,EAChC,cAAcA,eAAI,KAAA,EAAO,SAASC,aAAAA,iBAAiB,QAAQ;AAAA,EAC3D,aAAaD,eAAI,MAAM,EAAE,KAAK,gBAAgB,CAAC,OAAO,eAAe;AACnE,WAAO,QAAQ,WAAW,SAASC,aAAAA,iBAAiB,QAAQ,IAAI,WAAW;EAAS,CACrF;AAAA,EACD,gBAAgBD,eACb,QACA,SACA,EAAA;AAAA,IACCA,eAAI,MAAM,EAAE,KAAK,kBAAkB,CAAC,OAAO,eAAe;AACxD,aAAO,QAAQ,WAAW,SAASC,aAAAA,iBAAiB,QAAQ,IAAI,WAAW;IAAS,CACrF;AAAA,EACH;AACJ,CAAC;AAEM,MAAM,mBAAmB,MAAM;AACfC,eAAAA;AAEf,QAAA,EAAE,kBAAkBC,UAAAA;AAC1B,QAAM,cAAcC,MAAAA,iBAAiB,CAAC,UAAU,MAAM,UAAU,WAAW;AAC3E,QAAM,EAAE,SAAS,UAAU,IAAIC,aAAkB,kBAAA;AACjD,QAAM,qBAAqBC,aAAAA;AACrB,QAAA;AAAA,IACJ,yBAAyB;AAAA,IACzB,iCAAiC;AAAA,MAC/BC,aAAmB,mBAAA;AAEvB,QAAM,EAAE,WAAW,0BAA0B,SAASC,MAA2B,2BAAA;AAEjF,QAAM,CAAC,uBAAuB,EAAE,WAAW,iBAAkB,CAAA,IAC3DC,MAAAA;AAEI,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,gBAAgB,EAAE,WAAW,aAAa;AAAA,MACxCC,qBAAQ;AAAA,IACV,GAAG,YAAY,UAAU;AAAA,IACzB,WAAW,YAAY,UAAU,MAAM,QAAQ,CAAC;AAAA,EAAA,CACjD;AAED,QAAM,EAAE,OAAO,WAAW,eAAe,IAAIC,cAAAA,cAAc,QAAW;AAAA,IACpE,MAAM,CAAC;AAAA,EAAA,CACR;AAEK,QAAA,eAAe,OACnB,MACAC,YACG;AAEK;AAEJ,QAAA;AACI,YAAA,MAAM,MAAM,sBAAsB,IAAI;AAE5C,UAAI,WAAW,KAAK;AAClB,YAAIC,MAAAA,iBAAiB,IAAI,KAAK,KAAK,IAAI,MAAM,SAAS,mBAAmB;AACvE,UAAAD,QAAO,UAAU,uBAAuB,IAAI,KAAK,CAAC;AAAA,QAAA,OAC7C;AACc,6BAAA;AAAA,YACjB,MAAM;AAAA,YACN,SAAS,eAAe,IAAI,KAAK;AAAA,UAAA,CAClC;AAAA,QACH;AAEA;AAAA,MACF;AAEmB,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,EAAE,IAAI,6BAA6B;AAAA,MAAA,CAC7C;AAAA,aACM,KAAK;AACO,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS;AAAA,UACP,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,MAAA,CACD;AAAA,IAAA,UACD;AAEU;IACZ;AAAA,EAAA;AAGI,QAAA,gBAAgB,kBAAkB,wBAAwB;AAEhE,yCACGE,qBACC,EAAA,UAAA;AAAA,IAACC,2BAAAA,IAAAC,aAAA,mBAAA,EAAkB,MAAK,MAAM,CAAA;AAAA,mCAC7BC,aAAAA,MAAK,EAAA,aAAW,oBAAoB,eAAe,UAAU,IAC5D,UAAAF,2BAAA;AAAA,MAACG,OAAA;AAAA,MAAA;AAAA,QACC,UAAU;AAAA,QACV,eACE,QAAQ;AAAA,UACN,cAAc;AAAA,UACd,aAAa;AAAA,UACb,gBAAgB;AAAA,QAClB;AAAA,QAEF,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,oBAAkB;AAAA,QAEjB,UAAA,CAAC,EAAE,cAAc,cAAc,QAAQ,eAAe,OAAO,OAAA,MAC5DC,2BAAAA,KAACC,aACC,MAAA,EAAA,UAAA;AAAA,UAAAL,2BAAA;AAAA,YAACM,aAAA;AAAA,YAAA;AAAA,cACC,eACEN,2BAAA;AAAA,gBAACO,aAAA;AAAA,gBAAA;AAAA,kBACC,UAAU,CAAC;AAAA,kBACX,SAAS;AAAA,kBACT,0CAAYC,MAAM,OAAA,EAAA;AAAA,kBAClB,MAAK;AAAA,kBACL,MAAK;AAAA,kBAEJ,UAAc,cAAA;AAAA,oBACb,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,gBAAA;AAAA,cACH;AAAA,cAEF,OAAO,cAAc;AAAA,gBACnB,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB;AAAA,cACD,UAAU,cAAc;AAAA,gBACtB,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB;AAAA,YAAA;AAAA,UACH;AAAA,yCACCC,aAAAA,eACE,EAAA,UAAA,gBAAgB,gBACfT,+BAACU,aAAAA,uBAAqB,CAAA,IAEtBN,2BAAA;AAAA,YAACO,aAAA;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,YAAW;AAAA,cACX,KAAK;AAAA,cACL,YAAW;AAAA,cACX,SAAS;AAAA,cACT,QAAO;AAAA,cACP,WAAS;AAAA,cAET,UAAA;AAAA,gBAAAX,+BAACY,aAAAA,YAAW,EAAA,SAAQ,SAAQ,IAAG,MAC5B,UAAc,cAAA;AAAA,kBACb,IAAI;AAAA,kBACJ,gBAAgB;AAAA,gBACjB,CAAA,GACH;AAAA,gBACAR,2BAAAA,KAACS,aAAAA,MAAK,EAAA,KAAK,GACT,UAAA;AAAA,kBAAAb,2BAAA,IAACc,aAAS,UAAA,EAAA,KAAK,GAAG,GAAG,IACnB,UAAAd,2BAAA;AAAA,oBAACe,aAAA;AAAA,oBAAA;AAAA,sBACC,UAAU,CAAC;AAAA,sBACX,SAAS,OAAO;AAAA,sBAChB,MAAM,cAAc;AAAA,wBAClB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,OAAO,cAAc;AAAA,wBACnB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,MAAK;AAAA,sBACL,UAAU,cAAc;AAAA,wBACtB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,SAAS,cAAc;AAAA,wBACrB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,UAAU;AAAA,oBAAA;AAAA,kBAAA,GAEd;AAAA,kBACCf,2BAAA,IAAAc,aAAA,UAAA,EAAS,KAAK,GAAG,GAAG,IACnB,UAAAd,2BAAA;AAAA,oBAACgB,aAAA;AAAA,oBAAA;AAAA,sBACC,UAAU,CAAC;AAAA,sBACX,MAAM,cAAc;AAAA,wBAClB,IAAI;AAAA,wBACJ,gBACE;AAAA,sBAAA,CACH;AAAA,sBACD,OACE,OAAO,cACH,cAAc;AAAA,wBACZ,IAAI,OAAO;AAAA,wBACX,gBAAgB,OAAO;AAAA,sBACxB,CAAA,IACD;AAAA,sBAEN,OAAO,cAAc;AAAA,wBACnB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,MAAK;AAAA,sBACL,UAAU,CAAC,UACT,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,MAAM,GAAG;AAAA,sBAEzD,aAAa,cAAc;AAAA,wBACzB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,OAAO,OAAO;AAAA,sBAEb,UAAM,MAAA,IAAI,CAAC,EAAE,IAAI,KAAK,MACpBhB,+BAAAiB,aAAAA,QAAA,EAAgB,OAAO,GAAG,SACxB,GAAA,UAAA,KAAA,GADU,EAEb,CACD;AAAA,oBAAA;AAAA,kBAAA,GAEL;AAAA,kBACCjB,2BAAA,IAAAc,aAAA,UAAA,EAAS,KAAK,GAAG,GAAG,IACnB,UAAAd,2BAAA;AAAA,oBAACkB,aAAA;AAAA,oBAAA;AAAA,sBACC,UAAU,CAAC;AAAA,sBACX,MAAM,cAAc;AAAA,wBAClB,IAAI;AAAA,wBACJ,gBACE;AAAA,sBAAA,CACH;AAAA,sBACD,OACE,OAAO,iBACH,cAAc;AAAA,wBACZ,IAAI,OAAO;AAAA,wBACX,gBAAgB,OAAO;AAAA,sBACxB,CAAA,IACD;AAAA,sBAEN,OAAO,cAAc;AAAA,wBACnB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,MAAK;AAAA,sBACL,UAAU,CAAC,UACT,aAAa;AAAA,wBACX,QAAQ;AAAA,0BACN;AAAA,0BACA,MAAM;AAAA,wBACR;AAAA,sBAAA,CACD;AAAA,sBAEH,aAAa,cAAc;AAAA,wBACzB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,SAAS,MAAM,cAAc,kBAAkB,EAAE;AAAA,sBACjD,OAAO,OAAO,kBAAkB,CAAC;AAAA,sBACjC,UAAQ;AAAA,sBAEP,UAAM,MAAA,IAAI,CAAC,EAAE,IAAI,KAAK,MACpBlB,+BAAAmB,aAAAA,mBAAA,EAA2B,OAAO,GAAG,SACnC,GAAA,UAAA,KAAA,GADqB,EAExB,CACD;AAAA,oBAAA;AAAA,kBAAA,GAEL;AAAA,gBAAA,GACF;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA,GAGN;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA,GAGN;AAAA,EACF,EAAA,CAAA;AAEJ;AAEO,MAAM,eAAe,MAAM;AAC1B,QAAA,cAAc9B,MAAAA,iBAAiB,CAAC,UAAU,MAAM,UAAU,YAAY,UAAU,KAAK,IAAI;AAE/F,SACGW,2BAAA,IAAAoB,mCAAA,EAAqB,aACpB,UAAApB,2BAAAA,IAAC,oBAAiB,EACpB,CAAA;AAEJ;;;"}
@@ -7,7 +7,7 @@ const helperPlugin = require("@strapi/helper-plugin");
7
7
  const Icons = require("@strapi/icons");
8
8
  const reactIntl = require("react-intl");
9
9
  const reactRouterDom = require("react-router-dom");
10
- const index = require("./index-ydPzLfs7.js");
10
+ const index = require("./index-5bHZZ1bQ.js");
11
11
  const dateFns = require("date-fns");
12
12
  const locales = require("date-fns/locale");
13
13
  function _interopNamespace(e) {
@@ -369,4 +369,4 @@ exports.TokenBox = TokenBox;
369
369
  exports.TokenDescription = TokenDescription;
370
370
  exports.TokenName = TokenName;
371
371
  exports.TokenTypeSelect = TokenTypeSelect;
372
- //# sourceMappingURL=TokenTypeSelect-Pu2u4u60.js.map
372
+ //# sourceMappingURL=TokenTypeSelect-6njzWQeV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenTypeSelect-Pu2u4u60.js","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/helper-plugin';\nimport { ArrowLeft, Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Entity } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n }}\n iconRightButton={<Refresh />}\n isConfirmButtonLoading={isLoadingConfirmation}\n isOpen={showConfirmDialog}\n onToggleDialog={() => setShowConfirmDialog(false)}\n onConfirm={handleConfirmRegeneration}\n leftButtonText={{\n id: 'Settings.tokens.Button.cancel',\n defaultMessage: 'Cancel',\n }}\n rightButtonText={{\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n }}\n title={{\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n }}\n />\n </>\n );\n};\n\ninterface Token {\n id: Entity.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n backUrl: string;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n backUrl,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={\n <>\n {/* @ts-expect-error polymorphic */}\n <Link as={NavLink} startIcon={<ArrowLeft />} to={backUrl}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n </>\n }\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification, useTracking } from '@strapi/helper-plugin';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: { id: 'Settings.tokens.notification.copied' },\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n // @ts-expect-error I don't know how to fix this\n locale: locales[language],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["useIntl","React","useNotification","useAPIErrorHandler","useRegenerateTokenMutation","jsxs","Fragment","jsx","Button","Refresh","ConfirmDialog","HeaderLayout","Flex","Check","Link","NavLink","ArrowLeft","useTracking","useClipboard","token","ContentBox","IconButton","Duplicate","Key","format","addDays","locales","SingleSelect","value","SingleSelectOption","Typography","Textarea","TextInput","label"],"mappings":"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"}
1
+ {"version":3,"file":"TokenTypeSelect-6njzWQeV.js","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/helper-plugin';\nimport { ArrowLeft, Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Entity } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n }}\n iconRightButton={<Refresh />}\n isConfirmButtonLoading={isLoadingConfirmation}\n isOpen={showConfirmDialog}\n onToggleDialog={() => setShowConfirmDialog(false)}\n onConfirm={handleConfirmRegeneration}\n leftButtonText={{\n id: 'Settings.tokens.Button.cancel',\n defaultMessage: 'Cancel',\n }}\n rightButtonText={{\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n }}\n title={{\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n }}\n />\n </>\n );\n};\n\ninterface Token {\n id: Entity.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n backUrl: string;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n backUrl,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={\n <>\n {/* @ts-expect-error polymorphic */}\n <Link as={NavLink} startIcon={<ArrowLeft />} to={backUrl}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n </>\n }\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification, useTracking } from '@strapi/helper-plugin';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: { id: 'Settings.tokens.notification.copied' },\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n // @ts-expect-error I don't know how to fix this\n locale: locales[language],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["useIntl","React","useNotification","useAPIErrorHandler","useRegenerateTokenMutation","jsxs","Fragment","jsx","Button","Refresh","ConfirmDialog","HeaderLayout","Flex","Check","Link","NavLink","ArrowLeft","useTracking","useClipboard","token","ContentBox","IconButton","Duplicate","Key","format","addDays","locales","SingleSelect","value","SingleSelectOption","Typography","Textarea","TextInput","label"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,aAAa,CAAC,EAAE,cAAc,UAA2B;AACvD,QAAA,EAAE,kBAAkBA,UAAAA;AAC1B,QAAM,CAAC,mBAAmB,oBAAoB,IAAIC,iBAAM,SAAS,KAAK;AAEtE,QAAM,CAAC,uBAAuB,wBAAwB,IAAIA,iBAAM,SAAS,KAAK;AAC9E,QAAM,qBAAqBC,aAAAA;AAC3B,QAAM,EAAE,yBAAyB,eAAe,IAAIC,aAAmB,mBAAA;AAEjE,QAAA,CAAC,eAAe,IAAIC,MAAAA;AAE1B,QAAM,iBAAiB,YAAY;AAC7B,QAAA;AACI,YAAA,MAAM,MAAM,gBAAgB,GAAG;AAErC,UAAI,WAAW,KAAK;AACC,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,eAAe,IAAI,KAAK;AAAA,QAAA,CAClC;AAED;AAAA,MACF;AAEA,UAAI,cAAc;AACH,qBAAA,IAAI,KAAK,SAAS;AAAA,MACjC;AAAA,aACO,OAAO;AACK,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS;AAAA,UACP,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,MAAA,CACD;AAAA,IAAA,UACD;AACA,+BAAyB,KAAK;AAAA,IAChC;AAAA,EAAA;AAGF,QAAM,4BAA4B,YAAY;AAC7B;AACf,yBAAqB,KAAK;AAAA,EAAA;AAG5B,SAEIC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IAAAC,2BAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,0CAAYC,MAAQ,SAAA,EAAA;AAAA,QACpB,MAAK;AAAA,QACL,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,SAAS,MAAM,qBAAqB,IAAI;AAAA,QACxC,MAAK;AAAA,QAEJ,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IACH;AAAA,IAEAF,2BAAA;AAAA,MAACG,aAAA;AAAA,MAAA;AAAA,QACC,UAAU;AAAA,UACR,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,QACA,gDAAkBD,MAAQ,SAAA,EAAA;AAAA,QAC1B,wBAAwB;AAAA,QACxB,QAAQ;AAAA,QACR,gBAAgB,MAAM,qBAAqB,KAAK;AAAA,QAChD,WAAW;AAAA,QACX,gBAAgB;AAAA,UACd,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,QACA,iBAAiB;AAAA,UACf,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,QACA,OAAO;AAAA,UACL,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;AAkBO,MAAM,WAAW,CAA8B;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AACrB,QAAA,EAAE,kBAAkBT,UAAAA;AACpB,QAAA,mBAAmB,CAAC,WAAmB;AAClC,aAAA;AAAA,MACP,GAAG;AAAA,MACH,WAAW;AAAA,IAAA,CACZ;AAAA,EAAA;AAID,SAAAO,2BAAA;AAAA,IAACI,aAAA;AAAA,IAAA;AAAA,MACC,OAAO,OAAO,QAAQ,cAAc,KAAK;AAAA,MACzC,eACE,gBACGN,gCAAAO,aAAAA,MAAA,EAAK,KAAK,GACR,UAAA;AAAA,QAAA,iBAAiB,OAAO,MACvBL,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,cAAc;AAAA,YACd,KAAK,GAAG,aAAa,GAAG,OAAO,MAAM,EAAE;AAAA,UAAA;AAAA,QACzC;AAAA,QAEFA,2BAAA;AAAA,UAACC,aAAA;AAAA,UAAA;AAAA,YACC,UAAU;AAAA,YACV,SAAS;AAAA,YACT,0CAAYK,MAAM,OAAA,EAAA;AAAA,YAClB,MAAK;AAAA,YACL,MAAK;AAAA,YAEJ,UAAc,cAAA;AAAA,cACb,IAAI;AAAA,cACJ,gBAAgB;AAAA,YAAA,CACjB;AAAA,UAAA;AAAA,QACH;AAAA,MACF,EAAA,CAAA,IAEA,iBACA,OAAO,MACLN,2BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,cAAc;AAAA,UACd,KAAK,GAAG,aAAa,GAAG,OAAO,MAAM,EAAE;AAAA,QAAA;AAAA,MACzC;AAAA,MAIN,kBACEA,2BAAA,IAAAD,qBAAA,EAEE,UAACC,+BAAAO,GAAAA,MAAA,EAAK,IAAIC,eAAAA,SAAS,WAAWR,2BAAAA,IAACS,MAAAA,WAAU,CAAA,CAAA,GAAI,IAAI,SAC9C,UAAc,cAAA;AAAA,QACb,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAAA,CACjB,GACH,EACF,CAAA;AAAA,MAEF,UAAQ;AAAA,IAAA;AAAA,EAAA;AAGd;AClLO,MAAM,WAAW,CAAC,EAAE,OAAO,gBAA+B;AACzD,QAAA,EAAE,kBAAkBhB,UAAAA;AAC1B,QAAM,qBAAqBE,aAAAA;AACrB,QAAA,EAAE,eAAee,aAAAA;AAEjB,QAAA,EAAE,SAASC,aAAAA;AAEX,QAAA,cAAc,CAACC,WAAkC,YAAY;AACjE,QAAIA,QAAO;AACH,YAAA,UAAU,MAAM,KAAKA,MAAK;AAEhC,UAAI,SAAS;AACX,mBAAW,mBAAmB;AAAA,UAC5B;AAAA,QAAA,CACD;AACkB,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,EAAE,IAAI,sCAAsC;AAAA,QAAA,CACtD;AAAA,MACH;AAAA,IACF;AAAA,EAAA;AAIA,SAAAZ,2BAAA;AAAA,IAACa,aAAA;AAAA,IAAA;AAAA,MACC,WACE,SACGb,2BAAA,IAAA,QAAA,EAAK,OAAO,EAAE,WAAW,WACxB,UAAAA,2BAAA;AAAA,QAACc,aAAA;AAAA,QAAA;AAAA,UACC,OAAO,cAAc;AAAA,YACnB,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB;AAAA,UACD,SAAS,YAAY,KAAK;AAAA,UAC1B,aAAa;AAAA,UACb,qCAAOC,MAAU,WAAA,EAAA;AAAA,UACjB,OAAO,EAAE,SAAS,GAAG,QAAQ,OAAO;AAAA,QAAA;AAAA,MAAA,GAExC;AAAA,MAGJ,OACE,SACA,cAAc;AAAA,QACZ,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAAA,CACjB;AAAA,MAEH,UACE,QACI,cAAc;AAAA,QACZ,IAAI;AAAA,QACJ,gBAAgB;AAAA,MACjB,CAAA,IACD,cAAc;AAAA,QACZ,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAAA,CACjB;AAAA,MAEP,qCAAOC,MAAI,KAAA,EAAA;AAAA,MACX,gBAAe;AAAA,IAAA;AAAA,EAAA;AAGrB;ACtEO,MAAM,sBAAsB,CACjC,WACA,UACA,WAAmB,SAChB;AACC,MAAA,YAAY,OAAO,aAAa,UAAU;AAC5C,UAAM,iBAAiB,WAAW,KAAK,KAAK,KAAK;AAE1C,WAAAC,QAAAA,OAAOC,QAAAA,QAAQ,IAAI,KAAK,SAAS,GAAG,cAAc,GAAG,OAAO;AAAA;AAAA,MAEjE,QAAQC,mBAAQ,QAAQ;AAAA,IAAA,CACzB;AAAA,EACH;AAEO,SAAA;AACT;AChBA,MAAM,kCAAkC,CACtC,YACiC;AACjC,SAAO,OAAO,YAAY,YAAY,YAAY,QAAQ,QAAQ;AACpE;ACWO,MAAM,gBAAgB,CAAC;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA0B;AAClB,QAAA,EAAE,kBAAkB1B,UAAAA;AAE1B,SAEIK,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IAAAD,2BAAA;AAAA,MAACsB,aAAA;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAO,cAAc;AAAA,UACnB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,QACD;AAAA,QACA,OACE,QACI;AAAA,UACE,gCAAgC,KAAK,IACjC,QACA,EAAE,IAAI,OAAO,gBAAgB,MAAM;AAAA,QAEzC,IAAA;AAAA,QAEN,UAAU,CAACC,WAAU;AAEV,mBAAA,EAAE,QAAQ,EAAE,MAAM,YAAY,OAAAA,UAAS;AAAA,QAClD;AAAA,QACA,UAAQ;AAAA,QACR,UAAU,CAAC;AAAA,QACX,aAAY;AAAA,QAEZ,UAAA;AAAA,UAACrB,2BAAA,IAAAsB,aAAA,oBAAA,EAAmB,OAAM,aACvB,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB,CAAA,GACH;AAAA,UACCtB,2BAAA,IAAAsB,aAAA,oBAAA,EAAmB,OAAM,cACvB,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB,CAAA,GACH;AAAA,UACCtB,2BAAA,IAAAsB,aAAA,oBAAA,EAAmB,OAAM,cACvB,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB,CAAA,GACH;AAAA,UACCtB,2BAAA,IAAAsB,aAAA,oBAAA,EAAmB,OAAM,KACvB,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB,CAAA,GACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,IACAtB,2BAAAA,IAACuB,2BAAW,SAAQ,MAAK,WAAU,cAChC,UAAA,CAAC,cACA,GAAG,cAAc;AAAA,MACf,IAAI;AAAA,MACJ,gBAAgB;AAAA;AAAA,IAEjB,CAAA,CAAC,KAAK,oBAAoB,OAAO,WAAW,SAAS,SAAS,IAAI,EAAE,CAAC,CAAC,GAC3E,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;AC7EO,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AACrB,QAAA,EAAE,kBAAkB9B,UAAAA;AAGxB,SAAAO,2BAAA;AAAA,IAACwB,aAAA;AAAA,IAAA;AAAA,MACC,OAAO,cAAc;AAAA,QACnB,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAAA,CACjB;AAAA,MACD,IAAG;AAAA,MACH,OACE,QACI;AAAA,QACE,gCAAgC,KAAK,IACjC,QACA;AAAA,UACE,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,MAEN,IAAA;AAAA,MAEN;AAAA,MACA,UAAU,CAAC;AAAA,MAEV,UAAA;AAAA,IAAA;AAAA,EAAA;AAGP;ACjCO,MAAM,YAAY,CAAC,EAAE,OAAO,OAAO,UAAU,oBAAoC;AAChF,QAAA,EAAE,kBAAkB/B,UAAAA;AAGxB,SAAAO,2BAAA;AAAA,IAACyB,aAAA;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,OACE,QACI;AAAA,QACE,gCAAgC,KAAK,IAAI,QAAQ,EAAE,IAAI,OAAO,gBAAgB,MAAM;AAAA,MAEtF,IAAA;AAAA,MAEN,OAAO,cAAc;AAAA,QACnB,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAAA,CACjB;AAAA,MACD;AAAA,MACA;AAAA,MACA,UAAU,CAAC;AAAA,MACX,UAAQ;AAAA,IAAA;AAAA,EAAA;AAGd;ACjBO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU,CAAC;AAAA,EACX;AACF,MAA4B;AACpB,QAAA,EAAE,kBAAkBhC,UAAAA;AAGxB,SAAAO,2BAAA;AAAA,IAACoB,aAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA,OAAO,cAAc;AAAA,QACnB,IAAI,MAAM;AAAA,QACV,gBAAgB,MAAM;AAAA,MAAA,CACvB;AAAA,MACD;AAAA,MACA,OACE,QACI;AAAA,QACE,gCAAgC,KAAK,IAAI,QAAQ,EAAE,IAAI,OAAO,gBAAgB,MAAM;AAAA,MAEtF,IAAA;AAAA,MAEN;AAAA,MACA,aAAY;AAAA,MACZ,UAAQ;AAAA,MACR,UAAU,CAAC;AAAA,MAEV,qBACC,QAAQ,IAAI,CAAC,EAAE,OAAAC,QAAO,OAAAK,OACpB,MAAA1B,2BAAA,IAACsB,mCAA+B,OAAOD,QACpC,wBAAcK,MAAK,KADGL,MAEzB,CACD;AAAA,IAAA;AAAA,EAAA;AAGT;;;;;;;"}
@@ -6,7 +6,7 @@ import { useNotification, useAPIErrorHandler, ConfirmDialog, useTracking, useCli
6
6
  import { Check, ArrowLeft, Refresh, Duplicate, Key } from "@strapi/icons";
7
7
  import { useIntl } from "react-intl";
8
8
  import { NavLink } from "react-router-dom";
9
- import { O as useRegenerateTokenMutation } from "./index-yRyOfi01.mjs";
9
+ import { O as useRegenerateTokenMutation } from "./index-pisKLsr8.mjs";
10
10
  import { format, addDays } from "date-fns";
11
11
  import * as locales from "date-fns/locale";
12
12
  const Regenerate = ({ onRegenerate, url }) => {
@@ -350,4 +350,4 @@ export {
350
350
  TokenTypeSelect as b,
351
351
  TokenBox as c
352
352
  };
353
- //# sourceMappingURL=TokenTypeSelect--jNeSLmd.mjs.map
353
+ //# sourceMappingURL=TokenTypeSelect-gkAdWU2y.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenTypeSelect--jNeSLmd.mjs","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/helper-plugin';\nimport { ArrowLeft, Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Entity } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n }}\n iconRightButton={<Refresh />}\n isConfirmButtonLoading={isLoadingConfirmation}\n isOpen={showConfirmDialog}\n onToggleDialog={() => setShowConfirmDialog(false)}\n onConfirm={handleConfirmRegeneration}\n leftButtonText={{\n id: 'Settings.tokens.Button.cancel',\n defaultMessage: 'Cancel',\n }}\n rightButtonText={{\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n }}\n title={{\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n }}\n />\n </>\n );\n};\n\ninterface Token {\n id: Entity.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n backUrl: string;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n backUrl,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={\n <>\n {/* @ts-expect-error polymorphic */}\n <Link as={NavLink} startIcon={<ArrowLeft />} to={backUrl}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n </>\n }\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification, useTracking } from '@strapi/helper-plugin';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: { id: 'Settings.tokens.notification.copied' },\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n // @ts-expect-error I don't know how to fix this\n locale: locales[language],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["token","value","label"],"mappings":"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"}
1
+ {"version":3,"file":"TokenTypeSelect-gkAdWU2y.mjs","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/helper-plugin';\nimport { ArrowLeft, Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Entity } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n }}\n iconRightButton={<Refresh />}\n isConfirmButtonLoading={isLoadingConfirmation}\n isOpen={showConfirmDialog}\n onToggleDialog={() => setShowConfirmDialog(false)}\n onConfirm={handleConfirmRegeneration}\n leftButtonText={{\n id: 'Settings.tokens.Button.cancel',\n defaultMessage: 'Cancel',\n }}\n rightButtonText={{\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n }}\n title={{\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n }}\n />\n </>\n );\n};\n\ninterface Token {\n id: Entity.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n backUrl: string;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n backUrl,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={\n <>\n {/* @ts-expect-error polymorphic */}\n <Link as={NavLink} startIcon={<ArrowLeft />} to={backUrl}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n </>\n }\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification, useTracking } from '@strapi/helper-plugin';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: { id: 'Settings.tokens.notification.copied' },\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n // @ts-expect-error I don't know how to fix this\n locale: locales[language],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["token","value","label"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const index = require("./index-ydPzLfs7.js");
2
+ const index = require("./index-5bHZZ1bQ.js");
3
3
  const transferTokenService = index.adminApi.injectEndpoints({
4
4
  endpoints: (builder) => ({
5
5
  getAPITokens: builder.query({
@@ -56,4 +56,4 @@ exports.useDeleteAPITokenMutation = useDeleteAPITokenMutation;
56
56
  exports.useGetAPITokenQuery = useGetAPITokenQuery;
57
57
  exports.useGetAPITokensQuery = useGetAPITokensQuery;
58
58
  exports.useUpdateAPITokenMutation = useUpdateAPITokenMutation;
59
- //# sourceMappingURL=apiTokens--6uAVPWd.js.map
59
+ //# sourceMappingURL=apiTokens-UtJ8rJCr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiTokens--6uAVPWd.js","sources":["../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst transferTokenService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n overrideExisting: false,\n});\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = transferTokenService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":["adminApi"],"mappings":";;AAIA,MAAM,uBAAuBA,eAAS,gBAAgB;AAAA,EACpD,WAAW,CAAC,aAAa;AAAA,IACvB,cAAc,QAAQ,MAA4C;AAAA,MAChE,OAAO,MAAM;AAAA,MACb,mBAAmB,CAAC,aAAqC,SAAS;AAAA,MAClE,cAAc,CAAC,KAAK,SAAS;AAAA,QAC3B,GAAI,KAAK,IAAI,CAAC,EAAE,GAAU,OAAA,EAAE,MAAM,YAAqB,KAAK,KAAK,CAAC;AAAA,QAClE,EAAE,MAAM,YAAqB,IAAI,OAAO;AAAA,MAC1C;AAAA,IAAA,CACD;AAAA,IACD,aAAa,QAAQ,MAAgE;AAAA,MACnF,OAAO,CAAC,OAAO,qBAAqB,EAAE;AAAA,MACtC,mBAAmB,CAAC,aAAoC,SAAS;AAAA,MACjE,cAAc,CAAC,KAAK,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACpE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,UAAU;AAAA,QAChB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,EAAE,MAAM,YAAqB,IAAI,QAAQ;AAAA,IAAA,CAC5D;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,QAAQ;AAAA,QACd,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,MAAA;AAAA,MAEV,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACxE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,EAAE,IAAI,GAAG,YAAY;AAAA,QAC3B,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CAC5E;AAAA,EAAA;AAAA,EAEH,kBAAkB;AACpB,CAAC;AAEK,MAAA;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;;;;;;"}
1
+ {"version":3,"file":"apiTokens-UtJ8rJCr.js","sources":["../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst transferTokenService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n overrideExisting: false,\n});\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = transferTokenService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":["adminApi"],"mappings":";;AAIA,MAAM,uBAAuBA,eAAS,gBAAgB;AAAA,EACpD,WAAW,CAAC,aAAa;AAAA,IACvB,cAAc,QAAQ,MAA4C;AAAA,MAChE,OAAO,MAAM;AAAA,MACb,mBAAmB,CAAC,aAAqC,SAAS;AAAA,MAClE,cAAc,CAAC,KAAK,SAAS;AAAA,QAC3B,GAAI,KAAK,IAAI,CAAC,EAAE,GAAU,OAAA,EAAE,MAAM,YAAqB,KAAK,KAAK,CAAC;AAAA,QAClE,EAAE,MAAM,YAAqB,IAAI,OAAO;AAAA,MAC1C;AAAA,IAAA,CACD;AAAA,IACD,aAAa,QAAQ,MAAgE;AAAA,MACnF,OAAO,CAAC,OAAO,qBAAqB,EAAE;AAAA,MACtC,mBAAmB,CAAC,aAAoC,SAAS;AAAA,MACjE,cAAc,CAAC,KAAK,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACpE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,UAAU;AAAA,QAChB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,EAAE,MAAM,YAAqB,IAAI,QAAQ;AAAA,IAAA,CAC5D;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,QAAQ;AAAA,QACd,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,MAAA;AAAA,MAEV,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACxE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,EAAE,IAAI,GAAG,YAAY;AAAA,QAC3B,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CAC5E;AAAA,EAAA;AAAA,EAEH,kBAAkB;AACpB,CAAC;AAEK,MAAA;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { n as adminApi } from "./index-yRyOfi01.mjs";
1
+ import { n as adminApi } from "./index-pisKLsr8.mjs";
2
2
  const transferTokenService = adminApi.injectEndpoints({
3
3
  endpoints: (builder) => ({
4
4
  getAPITokens: builder.query({
@@ -57,4 +57,4 @@ export {
57
57
  useUpdateAPITokenMutation as d,
58
58
  useGetAPITokensQuery as u
59
59
  };
60
- //# sourceMappingURL=apiTokens-kqDQ_zpb.mjs.map
60
+ //# sourceMappingURL=apiTokens-h0AaRihg.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiTokens-kqDQ_zpb.mjs","sources":["../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst transferTokenService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n overrideExisting: false,\n});\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = transferTokenService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":[],"mappings":";AAIA,MAAM,uBAAuB,SAAS,gBAAgB;AAAA,EACpD,WAAW,CAAC,aAAa;AAAA,IACvB,cAAc,QAAQ,MAA4C;AAAA,MAChE,OAAO,MAAM;AAAA,MACb,mBAAmB,CAAC,aAAqC,SAAS;AAAA,MAClE,cAAc,CAAC,KAAK,SAAS;AAAA,QAC3B,GAAI,KAAK,IAAI,CAAC,EAAE,GAAU,OAAA,EAAE,MAAM,YAAqB,KAAK,KAAK,CAAC;AAAA,QAClE,EAAE,MAAM,YAAqB,IAAI,OAAO;AAAA,MAC1C;AAAA,IAAA,CACD;AAAA,IACD,aAAa,QAAQ,MAAgE;AAAA,MACnF,OAAO,CAAC,OAAO,qBAAqB,EAAE;AAAA,MACtC,mBAAmB,CAAC,aAAoC,SAAS;AAAA,MACjE,cAAc,CAAC,KAAK,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACpE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,UAAU;AAAA,QAChB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,EAAE,MAAM,YAAqB,IAAI,QAAQ;AAAA,IAAA,CAC5D;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,QAAQ;AAAA,QACd,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,MAAA;AAAA,MAEV,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACxE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,EAAE,IAAI,GAAG,YAAY;AAAA,QAC3B,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CAC5E;AAAA,EAAA;AAAA,EAEH,kBAAkB;AACpB,CAAC;AAEK,MAAA;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;"}
1
+ {"version":3,"file":"apiTokens-h0AaRihg.mjs","sources":["../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst transferTokenService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n overrideExisting: false,\n});\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = transferTokenService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":[],"mappings":";AAIA,MAAM,uBAAuB,SAAS,gBAAgB;AAAA,EACpD,WAAW,CAAC,aAAa;AAAA,IACvB,cAAc,QAAQ,MAA4C;AAAA,MAChE,OAAO,MAAM;AAAA,MACb,mBAAmB,CAAC,aAAqC,SAAS;AAAA,MAClE,cAAc,CAAC,KAAK,SAAS;AAAA,QAC3B,GAAI,KAAK,IAAI,CAAC,EAAE,GAAU,OAAA,EAAE,MAAM,YAAqB,KAAK,KAAK,CAAC;AAAA,QAClE,EAAE,MAAM,YAAqB,IAAI,OAAO;AAAA,MAC1C;AAAA,IAAA,CACD;AAAA,IACD,aAAa,QAAQ,MAAgE;AAAA,MACnF,OAAO,CAAC,OAAO,qBAAqB,EAAE;AAAA,MACtC,mBAAmB,CAAC,aAAoC,SAAS;AAAA,MACjE,cAAc,CAAC,KAAK,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACpE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,UAAU;AAAA,QAChB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,EAAE,MAAM,YAAqB,IAAI,QAAQ;AAAA,IAAA,CAC5D;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,QAAQ;AAAA,QACd,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,MAAA;AAAA,MAEV,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACxE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,EAAE,IAAI,GAAG,YAAY;AAAA,QAC3B,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CAC5E;AAAA,EAAA;AAAA,EAEH,kBAAkB;AACpB,CAAC;AAEK,MAAA;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;"}
@@ -4,7 +4,7 @@ const ROUTES_EE = [
4
4
  ...window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) ? [
5
5
  {
6
6
  async Component() {
7
- const { ProtectedListPage } = await Promise.resolve().then(() => require("./ListPage-2GK03p5D.js"));
7
+ const { ProtectedListPage } = await Promise.resolve().then(() => require("./ListPage-LOriRfBq.js"));
8
8
  return ProtectedListPage;
9
9
  },
10
10
  to: "/settings/audit-logs",
@@ -14,7 +14,7 @@ const ROUTES_EE = [
14
14
  ...window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS) ? [
15
15
  {
16
16
  async Component() {
17
- const { ProtectedReviewWorkflowsPage } = await Promise.resolve().then(() => require("./ListPage-8ZPXoi72.js"));
17
+ const { ProtectedReviewWorkflowsPage } = await Promise.resolve().then(() => require("./ListPage-iL3qGB-7.js"));
18
18
  return ProtectedReviewWorkflowsPage;
19
19
  },
20
20
  to: "/settings/review-workflows",
@@ -22,7 +22,7 @@ const ROUTES_EE = [
22
22
  },
23
23
  {
24
24
  async Component() {
25
- const { ReviewWorkflowsCreatePage } = await Promise.resolve().then(() => require("./CreatePage-tYv61v1J.js"));
25
+ const { ReviewWorkflowsCreatePage } = await Promise.resolve().then(() => require("./CreatePage-Cqqvxnxa.js"));
26
26
  return ReviewWorkflowsCreatePage;
27
27
  },
28
28
  to: "/settings/review-workflows/create",
@@ -30,7 +30,7 @@ const ROUTES_EE = [
30
30
  },
31
31
  {
32
32
  async Component() {
33
- const { ReviewWorkflowsEditPage } = await Promise.resolve().then(() => require("./EditPage-fVWNx5Oh.js"));
33
+ const { ReviewWorkflowsEditPage } = await Promise.resolve().then(() => require("./EditPage-VALeceJX.js"));
34
34
  return ReviewWorkflowsEditPage;
35
35
  },
36
36
  to: "/settings/review-workflows/:workflowId",
@@ -40,7 +40,7 @@ const ROUTES_EE = [
40
40
  ...window.strapi.features.isEnabled(window.strapi.features.SSO) ? [
41
41
  {
42
42
  async Component() {
43
- const { ProtectedSSO } = await Promise.resolve().then(() => require("./SingleSignOnPage-5tR5Di3-.js"));
43
+ const { ProtectedSSO } = await Promise.resolve().then(() => require("./SingleSignOnPage-b0O5egmz.js"));
44
44
  return ProtectedSSO;
45
45
  },
46
46
  to: "/settings/single-sign-on",
@@ -49,4 +49,4 @@ const ROUTES_EE = [
49
49
  ] : []
50
50
  ];
51
51
  exports.ROUTES_EE = ROUTES_EE;
52
- //# sourceMappingURL=constants-7tUiUGm7.js.map
52
+ //# sourceMappingURL=constants--ce1rwK1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-7tUiUGm7.js","sources":["../../ee/admin/src/pages/SettingsPage/constants.ts"],"sourcesContent":["import type { Route } from '../../../../../admin/src/pages/Settings/constants';\n\nexport const ROUTES_EE: Route[] = [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n async Component() {\n const { ProtectedListPage } = await import('./pages/AuditLogs/ListPage');\n\n return ProtectedListPage;\n },\n to: '/settings/audit-logs',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS)\n ? [\n {\n async Component() {\n const { ProtectedReviewWorkflowsPage } = await import(\n './pages/ReviewWorkflows/ListPage'\n );\n\n return ProtectedReviewWorkflowsPage;\n },\n to: '/settings/review-workflows',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsCreatePage } = await import(\n './pages/ReviewWorkflows/CreatePage'\n );\n\n return ReviewWorkflowsCreatePage;\n },\n to: '/settings/review-workflows/create',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsEditPage } = await import('./pages/ReviewWorkflows/EditPage');\n\n return ReviewWorkflowsEditPage;\n },\n to: '/settings/review-workflows/:workflowId',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n async Component() {\n const { ProtectedSSO } = await import('./pages/SingleSignOnPage');\n\n return ProtectedSSO;\n },\n to: '/settings/single-sign-on',\n exact: true,\n },\n ]\n : []),\n];\n"],"names":[],"mappings":";;AAEO,MAAM,YAAqB;AAAA,EAChC,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,UAAU,IAClE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,kBAAA,IAAsB,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,wBAA4B,CAAA;AAEhE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,gBAAgB,IACxE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,6BAAA,IAAiC,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAC7C,wBACF,CAAA;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,0BAAA,IAA8B,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAC1C,0BACF,CAAA;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,wBAAA,IAA4B,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,wBAAkC,CAAA;AAE5E,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,GAAG,IAC3D;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,aAAA,IAAiB,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,gCAA0B,CAAA;AAEzD,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AACP;;"}
1
+ {"version":3,"file":"constants--ce1rwK1.js","sources":["../../ee/admin/src/pages/SettingsPage/constants.ts"],"sourcesContent":["import type { Route } from '../../../../../admin/src/pages/Settings/constants';\n\nexport const ROUTES_EE: Route[] = [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n async Component() {\n const { ProtectedListPage } = await import('./pages/AuditLogs/ListPage');\n\n return ProtectedListPage;\n },\n to: '/settings/audit-logs',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS)\n ? [\n {\n async Component() {\n const { ProtectedReviewWorkflowsPage } = await import(\n './pages/ReviewWorkflows/ListPage'\n );\n\n return ProtectedReviewWorkflowsPage;\n },\n to: '/settings/review-workflows',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsCreatePage } = await import(\n './pages/ReviewWorkflows/CreatePage'\n );\n\n return ReviewWorkflowsCreatePage;\n },\n to: '/settings/review-workflows/create',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsEditPage } = await import('./pages/ReviewWorkflows/EditPage');\n\n return ReviewWorkflowsEditPage;\n },\n to: '/settings/review-workflows/:workflowId',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n async Component() {\n const { ProtectedSSO } = await import('./pages/SingleSignOnPage');\n\n return ProtectedSSO;\n },\n to: '/settings/single-sign-on',\n exact: true,\n },\n ]\n : []),\n];\n"],"names":[],"mappings":";;AAEO,MAAM,YAAqB;AAAA,EAChC,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,UAAU,IAClE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,kBAAA,IAAsB,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,wBAA4B,CAAA;AAEhE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,gBAAgB,IACxE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,6BAAA,IAAiC,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAC7C,wBACF,CAAA;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,0BAAA,IAA8B,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAC1C,0BACF,CAAA;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,wBAAA,IAA4B,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,wBAAkC,CAAA;AAE5E,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,GAAG,IAC3D;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,aAAA,IAAiB,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,gCAA0B,CAAA;AAEzD,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AACP;;"}
@@ -2,7 +2,7 @@ const ROUTES_EE = [
2
2
  ...window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) ? [
3
3
  {
4
4
  async Component() {
5
- const { ProtectedListPage } = await import("./ListPage-AKGBR4U_.mjs");
5
+ const { ProtectedListPage } = await import("./ListPage-FEAgz6nH.mjs");
6
6
  return ProtectedListPage;
7
7
  },
8
8
  to: "/settings/audit-logs",
@@ -12,7 +12,7 @@ const ROUTES_EE = [
12
12
  ...window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS) ? [
13
13
  {
14
14
  async Component() {
15
- const { ProtectedReviewWorkflowsPage } = await import("./ListPage-G5KMMFsZ.mjs");
15
+ const { ProtectedReviewWorkflowsPage } = await import("./ListPage-4xBsXFzo.mjs");
16
16
  return ProtectedReviewWorkflowsPage;
17
17
  },
18
18
  to: "/settings/review-workflows",
@@ -20,7 +20,7 @@ const ROUTES_EE = [
20
20
  },
21
21
  {
22
22
  async Component() {
23
- const { ReviewWorkflowsCreatePage } = await import("./CreatePage-DvbIy_jN.mjs");
23
+ const { ReviewWorkflowsCreatePage } = await import("./CreatePage-bPmBTOep.mjs");
24
24
  return ReviewWorkflowsCreatePage;
25
25
  },
26
26
  to: "/settings/review-workflows/create",
@@ -28,7 +28,7 @@ const ROUTES_EE = [
28
28
  },
29
29
  {
30
30
  async Component() {
31
- const { ReviewWorkflowsEditPage } = await import("./EditPage-RrSgOYln.mjs");
31
+ const { ReviewWorkflowsEditPage } = await import("./EditPage-0awwE3Ot.mjs");
32
32
  return ReviewWorkflowsEditPage;
33
33
  },
34
34
  to: "/settings/review-workflows/:workflowId",
@@ -38,7 +38,7 @@ const ROUTES_EE = [
38
38
  ...window.strapi.features.isEnabled(window.strapi.features.SSO) ? [
39
39
  {
40
40
  async Component() {
41
- const { ProtectedSSO } = await import("./SingleSignOnPage-mUWnhmYK.mjs");
41
+ const { ProtectedSSO } = await import("./SingleSignOnPage-TT4oryGn.mjs");
42
42
  return ProtectedSSO;
43
43
  },
44
44
  to: "/settings/single-sign-on",
@@ -49,4 +49,4 @@ const ROUTES_EE = [
49
49
  export {
50
50
  ROUTES_EE
51
51
  };
52
- //# sourceMappingURL=constants-oGpvjQcC.mjs.map
52
+ //# sourceMappingURL=constants-3oj946tc.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-oGpvjQcC.mjs","sources":["../../ee/admin/src/pages/SettingsPage/constants.ts"],"sourcesContent":["import type { Route } from '../../../../../admin/src/pages/Settings/constants';\n\nexport const ROUTES_EE: Route[] = [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n async Component() {\n const { ProtectedListPage } = await import('./pages/AuditLogs/ListPage');\n\n return ProtectedListPage;\n },\n to: '/settings/audit-logs',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS)\n ? [\n {\n async Component() {\n const { ProtectedReviewWorkflowsPage } = await import(\n './pages/ReviewWorkflows/ListPage'\n );\n\n return ProtectedReviewWorkflowsPage;\n },\n to: '/settings/review-workflows',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsCreatePage } = await import(\n './pages/ReviewWorkflows/CreatePage'\n );\n\n return ReviewWorkflowsCreatePage;\n },\n to: '/settings/review-workflows/create',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsEditPage } = await import('./pages/ReviewWorkflows/EditPage');\n\n return ReviewWorkflowsEditPage;\n },\n to: '/settings/review-workflows/:workflowId',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n async Component() {\n const { ProtectedSSO } = await import('./pages/SingleSignOnPage');\n\n return ProtectedSSO;\n },\n to: '/settings/single-sign-on',\n exact: true,\n },\n ]\n : []),\n];\n"],"names":[],"mappings":"AAEO,MAAM,YAAqB;AAAA,EAChC,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,UAAU,IAClE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,kBAAA,IAAsB,MAAM,OAAO,yBAA4B;AAEhE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,gBAAgB,IACxE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,6BAAA,IAAiC,MAAM,OAC7C,yBACF;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,0BAAA,IAA8B,MAAM,OAC1C,2BACF;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,wBAAA,IAA4B,MAAM,OAAO,yBAAkC;AAE5E,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,GAAG,IAC3D;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,aAAA,IAAiB,MAAM,OAAO,iCAA0B;AAEzD,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AACP;"}
1
+ {"version":3,"file":"constants-3oj946tc.mjs","sources":["../../ee/admin/src/pages/SettingsPage/constants.ts"],"sourcesContent":["import type { Route } from '../../../../../admin/src/pages/Settings/constants';\n\nexport const ROUTES_EE: Route[] = [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n async Component() {\n const { ProtectedListPage } = await import('./pages/AuditLogs/ListPage');\n\n return ProtectedListPage;\n },\n to: '/settings/audit-logs',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS)\n ? [\n {\n async Component() {\n const { ProtectedReviewWorkflowsPage } = await import(\n './pages/ReviewWorkflows/ListPage'\n );\n\n return ProtectedReviewWorkflowsPage;\n },\n to: '/settings/review-workflows',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsCreatePage } = await import(\n './pages/ReviewWorkflows/CreatePage'\n );\n\n return ReviewWorkflowsCreatePage;\n },\n to: '/settings/review-workflows/create',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsEditPage } = await import('./pages/ReviewWorkflows/EditPage');\n\n return ReviewWorkflowsEditPage;\n },\n to: '/settings/review-workflows/:workflowId',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n async Component() {\n const { ProtectedSSO } = await import('./pages/SingleSignOnPage');\n\n return ProtectedSSO;\n },\n to: '/settings/single-sign-on',\n exact: true,\n },\n ]\n : []),\n];\n"],"names":[],"mappings":"AAEO,MAAM,YAAqB;AAAA,EAChC,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,UAAU,IAClE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,kBAAA,IAAsB,MAAM,OAAO,yBAA4B;AAEhE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,gBAAgB,IACxE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,6BAAA,IAAiC,MAAM,OAC7C,yBACF;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,0BAAA,IAA8B,MAAM,OAC1C,2BACF;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,wBAAA,IAA4B,MAAM,OAAO,yBAAkC;AAE5E,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,GAAG,IAC3D;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,aAAA,IAAiB,MAAM,OAAO,iCAA0B;AAEzD,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AACP;"}