@strapi/admin 5.0.0-beta.10 → 5.0.0-beta.12

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 (206) hide show
  1. package/dist/admin/{AdminSeatInfo-Bbq8UNek.mjs → AdminSeatInfo-88MFOtJf.mjs} +3 -3
  2. package/dist/admin/{AdminSeatInfo-Bbq8UNek.mjs.map → AdminSeatInfo-88MFOtJf.mjs.map} +1 -1
  3. package/dist/admin/{AdminSeatInfo-pe7_J25t.js → AdminSeatInfo-bN561B3v.js} +4 -4
  4. package/dist/admin/{AdminSeatInfo-pe7_J25t.js.map → AdminSeatInfo-bN561B3v.js.map} +1 -1
  5. package/dist/admin/{ApplicationInfoPage-S_AoXyUe.js → ApplicationInfoPage-KQETt-ON.js} +15 -15
  6. package/dist/admin/{ApplicationInfoPage-S_AoXyUe.js.map → ApplicationInfoPage-KQETt-ON.js.map} +1 -1
  7. package/dist/admin/{ApplicationInfoPage-bfXW7lrq.mjs → ApplicationInfoPage-uasiyWB5.mjs} +5 -5
  8. package/dist/admin/{ApplicationInfoPage-bfXW7lrq.mjs.map → ApplicationInfoPage-uasiyWB5.mjs.map} +1 -1
  9. package/dist/admin/{AuthResponse-BJbG4S2h.js → AuthResponse-PxLid1A-.js} +4 -4
  10. package/dist/admin/{AuthResponse-BJbG4S2h.js.map → AuthResponse-PxLid1A-.js.map} +1 -1
  11. package/dist/admin/{AuthResponse-CTQ0fh3I.mjs → AuthResponse-pxi-Fo2T.mjs} +2 -2
  12. package/dist/admin/{AuthResponse-CTQ0fh3I.mjs.map → AuthResponse-pxi-Fo2T.mjs.map} +1 -1
  13. package/dist/admin/{AuthenticatedLayout-s7jnYVG9.js → AuthenticatedLayout-Vvio5wiC.js} +30 -29
  14. package/dist/admin/{AuthenticatedLayout-s7jnYVG9.js.map → AuthenticatedLayout-Vvio5wiC.js.map} +1 -1
  15. package/dist/admin/{AuthenticatedLayout-lXbF2KKJ.mjs → AuthenticatedLayout-WgDErBPS.mjs} +13 -12
  16. package/dist/admin/{AuthenticatedLayout-lXbF2KKJ.mjs.map → AuthenticatedLayout-WgDErBPS.mjs.map} +1 -1
  17. package/dist/admin/{CreatePage-6pIItf4z.mjs → CreatePage-Jtbg4Axr.mjs} +4 -4
  18. package/dist/admin/{CreatePage-6pIItf4z.mjs.map → CreatePage-Jtbg4Axr.mjs.map} +1 -1
  19. package/dist/admin/{CreatePage-uWZ7dxp6.js → CreatePage-QPlhxPWu.js} +11 -11
  20. package/dist/admin/{CreatePage-uWZ7dxp6.js.map → CreatePage-QPlhxPWu.js.map} +1 -1
  21. package/dist/admin/{CreatePage-s23BIVXe.js → CreatePage-c1UAG1Pz.js} +5 -5
  22. package/dist/admin/{CreatePage-s23BIVXe.js.map → CreatePage-c1UAG1Pz.js.map} +1 -1
  23. package/dist/admin/{CreatePage-4gOQVUMq.mjs → CreatePage-qO5Fsd73.mjs} +3 -3
  24. package/dist/admin/{CreatePage-4gOQVUMq.mjs.map → CreatePage-qO5Fsd73.mjs.map} +1 -1
  25. package/dist/admin/{CreateView-3cLNRlgO.mjs → CreateView-6X8zrDa4.mjs} +3 -3
  26. package/dist/admin/{CreateView-3cLNRlgO.mjs.map → CreateView-6X8zrDa4.mjs.map} +1 -1
  27. package/dist/admin/{CreateView-aMz4KfSZ.mjs → CreateView-I_AcEctc.mjs} +3 -3
  28. package/dist/admin/{CreateView-aMz4KfSZ.mjs.map → CreateView-I_AcEctc.mjs.map} +1 -1
  29. package/dist/admin/CreateView-df0oOgwH.js +17 -0
  30. package/dist/admin/{CreateView-DNHRcJsj.js.map → CreateView-df0oOgwH.js.map} +1 -1
  31. package/dist/admin/CreateView-tz9mjAr8.js +17 -0
  32. package/dist/admin/{CreateView-JQYIo77z.js.map → CreateView-tz9mjAr8.js.map} +1 -1
  33. package/dist/admin/{EditPage-Wpz4YmVY.js → EditPage-CJfjdfkV.js} +16 -16
  34. package/dist/admin/{EditPage-Wpz4YmVY.js.map → EditPage-CJfjdfkV.js.map} +1 -1
  35. package/dist/admin/{EditPage-24cGvUbV.js → EditPage-H0_OHPE-.js} +12 -12
  36. package/dist/admin/{EditPage-24cGvUbV.js.map → EditPage-H0_OHPE-.js.map} +1 -1
  37. package/dist/admin/{EditPage-JPZ7c-8x.mjs → EditPage-UjhP-c39.mjs} +5 -5
  38. package/dist/admin/{EditPage-JPZ7c-8x.mjs.map → EditPage-UjhP-c39.mjs.map} +1 -1
  39. package/dist/admin/{EditPage-tUvaZzFe.mjs → EditPage-lvtguw64.mjs} +7 -7
  40. package/dist/admin/{EditPage-tUvaZzFe.mjs.map → EditPage-lvtguw64.mjs.map} +1 -1
  41. package/dist/admin/{EditPage-tmpterlY.mjs → EditPage-qz3ag7b-.mjs} +5 -5
  42. package/dist/admin/{EditPage-tmpterlY.mjs.map → EditPage-qz3ag7b-.mjs.map} +1 -1
  43. package/dist/admin/{EditPage-wGJLuMsP.js → EditPage-xdwfsmQu.js} +11 -11
  44. package/dist/admin/{EditPage-wGJLuMsP.js.map → EditPage-xdwfsmQu.js.map} +1 -1
  45. package/dist/admin/{EditView-ul5nHrFh.js → EditView-j6KW3gjS.js} +14 -14
  46. package/dist/admin/{EditView-ul5nHrFh.js.map → EditView-j6KW3gjS.js.map} +1 -1
  47. package/dist/admin/{EditView-HjYkw6Y_.mjs → EditView-qzOuPJuV.mjs} +4 -4
  48. package/dist/admin/{EditView-HjYkw6Y_.mjs.map → EditView-qzOuPJuV.mjs.map} +1 -1
  49. package/dist/admin/{EditViewPage-c3DI4uzU.js → EditViewPage-I1YFzBeC.js} +14 -14
  50. package/dist/admin/{EditViewPage-c3DI4uzU.js.map → EditViewPage-I1YFzBeC.js.map} +1 -1
  51. package/dist/admin/{EditViewPage-bnTbQJ_O.mjs → EditViewPage-UidswFpY.mjs} +4 -4
  52. package/dist/admin/{EditViewPage-bnTbQJ_O.mjs.map → EditViewPage-UidswFpY.mjs.map} +1 -1
  53. package/dist/admin/{EventsTable-XUKqJdnX.mjs → EventsTable-0L1CjkJZ.mjs} +2 -2
  54. package/dist/admin/{EventsTable-XUKqJdnX.mjs.map → EventsTable-0L1CjkJZ.mjs.map} +1 -1
  55. package/dist/admin/{EventsTable-7--SHloR.js → EventsTable-QX2atcfm.js} +2 -2
  56. package/dist/admin/{EventsTable-7--SHloR.js.map → EventsTable-QX2atcfm.js.map} +1 -1
  57. package/dist/admin/{HomePage-Xrg1dR_D.js → HomePage-58hB6NEL.js} +11 -11
  58. package/dist/admin/{HomePage-Xrg1dR_D.js.map → HomePage-58hB6NEL.js.map} +1 -1
  59. package/dist/admin/{HomePage-ppJpMP9G.mjs → HomePage-OEhCzFU1.mjs} +3 -3
  60. package/dist/admin/{HomePage-ppJpMP9G.mjs.map → HomePage-OEhCzFU1.mjs.map} +1 -1
  61. package/dist/admin/{HomePage-fBY17m1h.js → HomePage-Z1bBkdZd.js} +3 -3
  62. package/dist/admin/{HomePage-fBY17m1h.js.map → HomePage-Z1bBkdZd.js.map} +1 -1
  63. package/dist/admin/{HomePage--Mskxb9Z.mjs → HomePage-l0hSTO83.mjs} +4 -4
  64. package/dist/admin/{HomePage--Mskxb9Z.mjs.map → HomePage-l0hSTO83.mjs.map} +1 -1
  65. package/dist/admin/{InstalledPluginsPage-alfcy8jO.js → InstalledPluginsPage-ToVkNeOW.js} +10 -10
  66. package/dist/admin/{InstalledPluginsPage-alfcy8jO.js.map → InstalledPluginsPage-ToVkNeOW.js.map} +1 -1
  67. package/dist/admin/{InstalledPluginsPage-EtnkMG0G.mjs → InstalledPluginsPage-mjDk7bIy.mjs} +4 -4
  68. package/dist/admin/{InstalledPluginsPage-EtnkMG0G.mjs.map → InstalledPluginsPage-mjDk7bIy.mjs.map} +1 -1
  69. package/dist/admin/{Layout-9EvJq4Gc.mjs → Layout-JfZEpoAi.mjs} +5 -5
  70. package/dist/admin/Layout-JfZEpoAi.mjs.map +1 -0
  71. package/dist/admin/{Layout-RKjEsOtu.js → Layout-rLCApf8n.js} +11 -11
  72. package/dist/admin/Layout-rLCApf8n.js.map +1 -0
  73. package/dist/admin/{ListPage-D8Ih2axK.js → ListPage-0d14kKi_.js} +14 -14
  74. package/dist/admin/{ListPage-D8Ih2axK.js.map → ListPage-0d14kKi_.js.map} +1 -1
  75. package/dist/admin/{ListPage-TkJa9Qcz.js → ListPage-3yawwYZy.js} +12 -12
  76. package/dist/admin/{ListPage-TkJa9Qcz.js.map → ListPage-3yawwYZy.js.map} +1 -1
  77. package/dist/admin/{ListPage-Ur-kwyVv.mjs → ListPage-7oDmaO8D.mjs} +6 -6
  78. package/dist/admin/{ListPage-Ur-kwyVv.mjs.map → ListPage-7oDmaO8D.mjs.map} +1 -1
  79. package/dist/admin/{ListPage-gl3tUWS8.mjs → ListPage-L2QuM7UE.mjs} +3 -3
  80. package/dist/admin/{ListPage-gl3tUWS8.mjs.map → ListPage-L2QuM7UE.mjs.map} +1 -1
  81. package/dist/admin/{ListPage-xQbMtUpV.mjs → ListPage-N0O1Hqdf.mjs} +5 -5
  82. package/dist/admin/{ListPage-xQbMtUpV.mjs.map → ListPage-N0O1Hqdf.mjs.map} +1 -1
  83. package/dist/admin/{ListPage-MJlQ5gGq.js → ListPage-UY_3K2Wy.js} +14 -14
  84. package/dist/admin/{ListPage-MJlQ5gGq.js.map → ListPage-UY_3K2Wy.js.map} +1 -1
  85. package/dist/admin/{ListPage-CRyM6NXF.js → ListPage-gxijeg53.js} +17 -17
  86. package/dist/admin/{ListPage-CRyM6NXF.js.map → ListPage-gxijeg53.js.map} +1 -1
  87. package/dist/admin/{ListPage-nbTQdpBX.mjs → ListPage-hpSHo1FU.mjs} +3 -3
  88. package/dist/admin/{ListPage-nbTQdpBX.mjs.map → ListPage-hpSHo1FU.mjs.map} +1 -1
  89. package/dist/admin/{ListPage-Z0mmlysk.js → ListPage-kmWRcYle.js} +3 -3
  90. package/dist/admin/{ListPage-Z0mmlysk.js.map → ListPage-kmWRcYle.js.map} +1 -1
  91. package/dist/admin/{ListPage-21q8_YN7.mjs → ListPage-rAGFOcI3.mjs} +3 -3
  92. package/dist/admin/{ListPage-21q8_YN7.mjs.map → ListPage-rAGFOcI3.mjs.map} +1 -1
  93. package/dist/admin/{ListView-geMTlhDN.mjs → ListView-0PnKwTDf.mjs} +4 -4
  94. package/dist/admin/{ListView-geMTlhDN.mjs.map → ListView-0PnKwTDf.mjs.map} +1 -1
  95. package/dist/admin/{ListView-qAX3ZO28.js → ListView-GCE-p1AU.js} +13 -13
  96. package/dist/admin/{ListView-qAX3ZO28.js.map → ListView-GCE-p1AU.js.map} +1 -1
  97. package/dist/admin/{ListView-nRGxAwIh.js → ListView-OorXxSB4.js} +13 -13
  98. package/dist/admin/{ListView-nRGxAwIh.js.map → ListView-OorXxSB4.js.map} +1 -1
  99. package/dist/admin/{ListView-Drn22JZ1.mjs → ListView-vcKS-Zmc.mjs} +4 -4
  100. package/dist/admin/{ListView-Drn22JZ1.mjs.map → ListView-vcKS-Zmc.mjs.map} +1 -1
  101. package/dist/admin/{Login-Hn_q1QSn.js → Login-7l3x6yOV.js} +4 -4
  102. package/dist/admin/{Login-Hn_q1QSn.js.map → Login-7l3x6yOV.js.map} +1 -1
  103. package/dist/admin/{Login-ngKWBSD4.mjs → Login-eQL_RQXm.mjs} +3 -3
  104. package/dist/admin/{Login-ngKWBSD4.mjs.map → Login-eQL_RQXm.mjs.map} +1 -1
  105. package/dist/admin/{MagicLinkEE-JWmJRiBS.mjs → MagicLinkEE-PMO2aXgs.mjs} +3 -3
  106. package/dist/admin/{MagicLinkEE-JWmJRiBS.mjs.map → MagicLinkEE-PMO2aXgs.mjs.map} +1 -1
  107. package/dist/admin/{MagicLinkEE-B5NOEO47.js → MagicLinkEE-qzoFCgd6.js} +3 -3
  108. package/dist/admin/{MagicLinkEE-B5NOEO47.js.map → MagicLinkEE-qzoFCgd6.js.map} +1 -1
  109. package/dist/admin/{MarketplacePage-Pk9USes6.mjs → MarketplacePage-d1n38TCm.mjs} +3 -3
  110. package/dist/admin/{MarketplacePage-Pk9USes6.mjs.map → MarketplacePage-d1n38TCm.mjs.map} +1 -1
  111. package/dist/admin/{MarketplacePage-vQaaicxu.js → MarketplacePage-fqRuZ5tH.js} +17 -17
  112. package/dist/admin/{MarketplacePage-vQaaicxu.js.map → MarketplacePage-fqRuZ5tH.js.map} +1 -1
  113. package/dist/admin/{Permissions-2GKZ2IjP.mjs → Permissions-SH6iTLMt.mjs} +3 -3
  114. package/dist/admin/{Permissions-2GKZ2IjP.mjs.map → Permissions-SH6iTLMt.mjs.map} +1 -1
  115. package/dist/admin/{Permissions-GCSY8mIm.js → Permissions-ZLekr37e.js} +7 -7
  116. package/dist/admin/{Permissions-GCSY8mIm.js.map → Permissions-ZLekr37e.js.map} +1 -1
  117. package/dist/admin/{PrivateRoute-KfrFibGN.js → PrivateRoute-SKQvazOx.js} +3 -3
  118. package/dist/admin/{PrivateRoute-KfrFibGN.js.map → PrivateRoute-SKQvazOx.js.map} +1 -1
  119. package/dist/admin/{PrivateRoute-xkGBbDbU.mjs → PrivateRoute-nUWu4Q7I.mjs} +2 -2
  120. package/dist/admin/{PrivateRoute-xkGBbDbU.mjs.map → PrivateRoute-nUWu4Q7I.mjs.map} +1 -1
  121. package/dist/admin/{ProfilePage-o028o7JD.js → ProfilePage-NTjed70Z.js} +18 -18
  122. package/dist/admin/{ProfilePage-o028o7JD.js.map → ProfilePage-NTjed70Z.js.map} +1 -1
  123. package/dist/admin/{ProfilePage-Q5UpeDjs.mjs → ProfilePage-XBXtSTmT.mjs} +4 -4
  124. package/dist/admin/{ProfilePage-Q5UpeDjs.mjs.map → ProfilePage-XBXtSTmT.mjs.map} +1 -1
  125. package/dist/admin/{PurchaseAuditLogs-Vur69JZB.js → PurchaseAuditLogs-jB1NOXg4.js} +2 -2
  126. package/dist/admin/{PurchaseAuditLogs-Vur69JZB.js.map → PurchaseAuditLogs-jB1NOXg4.js.map} +1 -1
  127. package/dist/admin/{PurchaseAuditLogs-tpXbhCx-.mjs → PurchaseAuditLogs-nEBPLzVm.mjs} +2 -2
  128. package/dist/admin/{PurchaseAuditLogs-tpXbhCx-.mjs.map → PurchaseAuditLogs-nEBPLzVm.mjs.map} +1 -1
  129. package/dist/admin/{PurchaseSingleSignOn-6VTPjJVO.mjs → PurchaseSingleSignOn-O1zGlyVf.mjs} +2 -2
  130. package/dist/admin/{PurchaseSingleSignOn-6VTPjJVO.mjs.map → PurchaseSingleSignOn-O1zGlyVf.mjs.map} +1 -1
  131. package/dist/admin/{PurchaseSingleSignOn-7NMcihzT.js → PurchaseSingleSignOn-u10-YAGx.js} +2 -2
  132. package/dist/admin/{PurchaseSingleSignOn-7NMcihzT.js.map → PurchaseSingleSignOn-u10-YAGx.js.map} +1 -1
  133. package/dist/admin/{SelectRoles-q8vaxqfL.js → SelectRoles-GlWRf-Tw.js} +5 -5
  134. package/dist/admin/{SelectRoles-q8vaxqfL.js.map → SelectRoles-GlWRf-Tw.js.map} +1 -1
  135. package/dist/admin/{SelectRoles-BtQp5Va-.mjs → SelectRoles-heQJxEhL.mjs} +4 -4
  136. package/dist/admin/{SelectRoles-BtQp5Va-.mjs.map → SelectRoles-heQJxEhL.mjs.map} +1 -1
  137. package/dist/admin/{SingleSignOnPage-_l9MyJvN.js → SingleSignOnPage-QIOJcuMR.js} +15 -15
  138. package/dist/admin/{SingleSignOnPage-_l9MyJvN.js.map → SingleSignOnPage-QIOJcuMR.js.map} +1 -1
  139. package/dist/admin/{SingleSignOnPage-X1OAuyhO.mjs → SingleSignOnPage-mmKAZ8mV.mjs} +4 -4
  140. package/dist/admin/{SingleSignOnPage-X1OAuyhO.mjs.map → SingleSignOnPage-mmKAZ8mV.mjs.map} +1 -1
  141. package/dist/admin/{Table-z6l5BFoH.js → Table-F1obCnqD.js} +5 -5
  142. package/dist/admin/{Table-z6l5BFoH.js.map → Table-F1obCnqD.js.map} +1 -1
  143. package/dist/admin/{Table-V5-qnRte.mjs → Table-vPXGhBll.mjs} +3 -3
  144. package/dist/admin/{Table-V5-qnRte.mjs.map → Table-vPXGhBll.mjs.map} +1 -1
  145. package/dist/admin/{rbac-c6QPc6s7.js → Theme-QO8ntQqL.js} +25 -25
  146. package/dist/admin/Theme-QO8ntQqL.js.map +1 -0
  147. package/dist/admin/{rbac-A_QIXvpC.mjs → Theme-vNSAMTAv.mjs} +26 -26
  148. package/dist/admin/Theme-vNSAMTAv.mjs.map +1 -0
  149. package/dist/admin/{TokenTypeSelect-2iXEz7zs.js → TokenTypeSelect-LAWTFkRA.js} +7 -7
  150. package/dist/admin/{TokenTypeSelect-2iXEz7zs.js.map → TokenTypeSelect-LAWTFkRA.js.map} +1 -1
  151. package/dist/admin/{TokenTypeSelect-crPtoLFc.mjs → TokenTypeSelect-i78k2gg3.mjs} +3 -3
  152. package/dist/admin/{TokenTypeSelect-crPtoLFc.mjs.map → TokenTypeSelect-i78k2gg3.mjs.map} +1 -1
  153. package/dist/admin/{UseCasePage-26Y6U1DU.js → UseCasePage-JvS8byfE.js} +6 -6
  154. package/dist/admin/{UseCasePage-26Y6U1DU.js.map → UseCasePage-JvS8byfE.js.map} +1 -1
  155. package/dist/admin/{UseCasePage-QsvlJAQD.mjs → UseCasePage-gVGjn6p2.mjs} +4 -4
  156. package/dist/admin/{UseCasePage-QsvlJAQD.mjs.map → UseCasePage-gVGjn6p2.mjs.map} +1 -1
  157. package/dist/admin/{constants-Maq_tQvu.js → constants-9azy3JJD.js} +4 -4
  158. package/dist/admin/{constants-Maq_tQvu.js.map → constants-9azy3JJD.js.map} +1 -1
  159. package/dist/admin/{constants-ThodPHfR.mjs → constants-mR-6yeoL.mjs} +3 -3
  160. package/dist/admin/{constants-ThodPHfR.mjs.map → constants-mR-6yeoL.mjs.map} +1 -1
  161. package/dist/admin/{index-Ncrnmg5a.js → index-HH_X-3kJ.js} +1468 -1300
  162. package/dist/admin/index-HH_X-3kJ.js.map +1 -0
  163. package/dist/admin/{index-jwAq-BX-.mjs → index-wHs6nj5s.mjs} +1326 -1158
  164. package/dist/admin/index-wHs6nj5s.mjs.map +1 -0
  165. package/dist/admin/index.js +12 -12
  166. package/dist/admin/index.mjs +2 -2
  167. package/dist/admin/selectors-RspXIUtJ.js +8 -0
  168. package/dist/admin/{selectors-yGCxM4Rk.js.map → selectors-RspXIUtJ.js.map} +1 -1
  169. package/dist/admin/{selectors-s8oNaHXK.mjs → selectors-jiFpk43E.mjs} +2 -2
  170. package/dist/admin/{selectors-s8oNaHXK.mjs.map → selectors-jiFpk43E.mjs.map} +1 -1
  171. package/dist/admin/src/StrapiApp.d.ts +17 -45
  172. package/dist/admin/src/components/Form.d.ts +6 -1
  173. package/dist/admin/src/constants.d.ts +1 -1
  174. package/dist/admin/src/core/apis/router.d.ts +73 -0
  175. package/dist/admin/src/features/StrapiApp.d.ts +2 -1
  176. package/dist/admin/src/hooks/useSettingsMenu.d.ts +1 -1
  177. package/dist/admin/src/index.d.ts +2 -1
  178. package/dist/admin/src/render.d.ts +1 -0
  179. package/dist/admin/src/router.d.ts +7 -0
  180. package/dist/admin/src/services/admin.d.ts +5 -5
  181. package/dist/admin/test.js +9 -9
  182. package/dist/admin/test.js.map +1 -1
  183. package/dist/admin/test.mjs +1 -1
  184. package/dist/admin/{useAdminRoles-gMNUnVWO.mjs → useAdminRoles-1-9TqGqM.mjs} +2 -2
  185. package/dist/admin/{useAdminRoles-gMNUnVWO.mjs.map → useAdminRoles-1-9TqGqM.mjs.map} +1 -1
  186. package/dist/admin/{useAdminRoles-zEk0tBhE.js → useAdminRoles-XzbtItdy.js} +2 -2
  187. package/dist/admin/{useAdminRoles-zEk0tBhE.js.map → useAdminRoles-XzbtItdy.js.map} +1 -1
  188. package/dist/admin/{useLicenseLimitNotification-AUg5DyS9.mjs → useLicenseLimitNotification-Nh_v-hN2.mjs} +2 -2
  189. package/dist/admin/{useLicenseLimitNotification-AUg5DyS9.mjs.map → useLicenseLimitNotification-Nh_v-hN2.mjs.map} +1 -1
  190. package/dist/admin/{useLicenseLimitNotification-ItNGgex2.js → useLicenseLimitNotification-ZwMojvCa.js} +3 -3
  191. package/dist/admin/{useLicenseLimitNotification-ItNGgex2.js.map → useLicenseLimitNotification-ZwMojvCa.js.map} +1 -1
  192. package/dist/admin/{validation-F0JMLUkr.mjs → validation-10a7k3aM.mjs} +2 -2
  193. package/dist/admin/{validation-F0JMLUkr.mjs.map → validation-10a7k3aM.mjs.map} +1 -1
  194. package/dist/admin/{validation-cP2hBbZm.js → validation-nRSf_5UG.js} +2 -2
  195. package/dist/admin/{validation-cP2hBbZm.js.map → validation-nRSf_5UG.js.map} +1 -1
  196. package/dist/package.json.d.ts +8 -7
  197. package/package.json +9 -8
  198. package/dist/admin/CreateView-DNHRcJsj.js +0 -17
  199. package/dist/admin/CreateView-JQYIo77z.js +0 -17
  200. package/dist/admin/Layout-9EvJq4Gc.mjs.map +0 -1
  201. package/dist/admin/Layout-RKjEsOtu.js.map +0 -1
  202. package/dist/admin/index-Ncrnmg5a.js.map +0 -1
  203. package/dist/admin/index-jwAq-BX-.mjs.map +0 -1
  204. package/dist/admin/rbac-A_QIXvpC.mjs.map +0 -1
  205. package/dist/admin/rbac-c6QPc6s7.js.map +0 -1
  206. package/dist/admin/selectors-yGCxM4Rk.js +0 -8
@@ -9,7 +9,7 @@ import { HTML5Backend } from 'react-dnd-html5-backend';
9
9
  import { setLogger, QueryClient, QueryClientProvider } from 'react-query';
10
10
  import { Provider } from 'react-redux';
11
11
  import { createMemoryRouter, RouterProvider } from 'react-router-dom';
12
- import { r as reducer, S as StrapiAppProvider, R as RBAC, A as AuthProvider, L as LanguageProvider, T as Theme, N as NotificationsProvider, C as ConfigurationContextProvider, p as AppInfoProvider } from './rbac-A_QIXvpC.mjs';
12
+ import { r as reducer, S as StrapiAppProvider, R as RBAC, A as AuthProvider, L as LanguageProvider, T as Theme, N as NotificationsProvider, C as ConfigurationContextProvider, p as AppInfoProvider } from './Theme-vNSAMTAv.mjs';
13
13
  import { b as adminApi } from './admin-B6AW0Kov.mjs';
14
14
  import { rest } from 'msw';
15
15
  import { setupServer } from 'msw/node';
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { useCollator } from '@strapi/design-system';
3
3
  import { useIntl } from 'react-intl';
4
- import { c as useGetRolesQuery } from './index-jwAq-BX-.mjs';
4
+ import { c as useGetRolesQuery } from './index-wHs6nj5s.mjs';
5
5
 
6
6
  const useAdminRoles = (params = {}, queryOptions) => {
7
7
  const { locale } = useIntl();
@@ -25,4 +25,4 @@ const useAdminRoles = (params = {}, queryOptions) => {
25
25
  };
26
26
 
27
27
  export { useAdminRoles as u };
28
- //# sourceMappingURL=useAdminRoles-gMNUnVWO.mjs.map
28
+ //# sourceMappingURL=useAdminRoles-1-9TqGqM.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAdminRoles-gMNUnVWO.mjs","sources":["../../admin/src/hooks/useAdminRoles.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useCollator } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { GetRolesParams, useGetRolesQuery } from '../services/users';\n\nimport type { FindRoles } from '../../../shared/contracts/roles';\n\nexport type AdminRole = FindRoles.Response['data'][number];\n\nexport const useAdminRoles = (\n params: GetRolesParams = {},\n queryOptions?: Parameters<typeof useGetRolesQuery>[1]\n) => {\n const { locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const { data, error, isError, isLoading, refetch } = useGetRolesQuery(params, queryOptions);\n\n // the return value needs to be memoized, because intantiating\n // an empty array as default value would lead to an unstable return\n // value, which later on triggers infinite loops if used in the\n // dependency arrays of other hooks\n const roles = React.useMemo(\n () =>\n [...(data ?? [])].sort((a, b) =>\n formatter.compare(a.name, b.name)\n ) as FindRoles.Response['data'],\n [data, formatter]\n );\n\n return {\n roles,\n error,\n isError,\n isLoading,\n refetch,\n };\n};\n"],"names":[],"mappings":";;;;;AAWO,MAAM,aAAgB,GAAA,CAC3B,MAAyB,GAAA,IACzB,YACG,KAAA;AACH,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,OAAQ,EAAA,CAAA;AAC3B,EAAM,MAAA,SAAA,GAAY,YAAY,MAAQ,EAAA;AAAA,IACpC,WAAa,EAAA,MAAA;AAAA,GACd,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,MAAM,KAAO,EAAA,OAAA,EAAS,WAAW,OAAQ,EAAA,GAAI,gBAAiB,CAAA,MAAA,EAAQ,YAAY,CAAA,CAAA;AAM1F,EAAA,MAAM,QAAQ,KAAM,CAAA,OAAA;AAAA,IAClB,MACE,CAAC,GAAI,IAAQ,IAAA,EAAG,CAAE,CAAA,IAAA;AAAA,MAAK,CAAC,GAAG,CACzB,KAAA,SAAA,CAAU,QAAQ,CAAE,CAAA,IAAA,EAAM,EAAE,IAAI,CAAA;AAAA,KAClC;AAAA,IACF,CAAC,MAAM,SAAS,CAAA;AAAA,GAClB,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"useAdminRoles-1-9TqGqM.mjs","sources":["../../admin/src/hooks/useAdminRoles.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useCollator } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { GetRolesParams, useGetRolesQuery } from '../services/users';\n\nimport type { FindRoles } from '../../../shared/contracts/roles';\n\nexport type AdminRole = FindRoles.Response['data'][number];\n\nexport const useAdminRoles = (\n params: GetRolesParams = {},\n queryOptions?: Parameters<typeof useGetRolesQuery>[1]\n) => {\n const { locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const { data, error, isError, isLoading, refetch } = useGetRolesQuery(params, queryOptions);\n\n // the return value needs to be memoized, because intantiating\n // an empty array as default value would lead to an unstable return\n // value, which later on triggers infinite loops if used in the\n // dependency arrays of other hooks\n const roles = React.useMemo(\n () =>\n [...(data ?? [])].sort((a, b) =>\n formatter.compare(a.name, b.name)\n ) as FindRoles.Response['data'],\n [data, formatter]\n );\n\n return {\n roles,\n error,\n isError,\n isLoading,\n refetch,\n };\n};\n"],"names":[],"mappings":";;;;;AAWO,MAAM,aAAgB,GAAA,CAC3B,MAAyB,GAAA,IACzB,YACG,KAAA;AACH,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,OAAQ,EAAA,CAAA;AAC3B,EAAM,MAAA,SAAA,GAAY,YAAY,MAAQ,EAAA;AAAA,IACpC,WAAa,EAAA,MAAA;AAAA,GACd,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,MAAM,KAAO,EAAA,OAAA,EAAS,WAAW,OAAQ,EAAA,GAAI,gBAAiB,CAAA,MAAA,EAAQ,YAAY,CAAA,CAAA;AAM1F,EAAA,MAAM,QAAQ,KAAM,CAAA,OAAA;AAAA,IAClB,MACE,CAAC,GAAI,IAAQ,IAAA,EAAG,CAAE,CAAA,IAAA;AAAA,MAAK,CAAC,GAAG,CACzB,KAAA,SAAA,CAAU,QAAQ,CAAE,CAAA,IAAA,EAAM,EAAE,IAAI,CAAA;AAAA,KAClC;AAAA,IACF,CAAC,MAAM,SAAS,CAAA;AAAA,GAClB,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -3,7 +3,7 @@
3
3
  const React = require('react');
4
4
  const designSystem = require('@strapi/design-system');
5
5
  const reactIntl = require('react-intl');
6
- const index = require('./index-Ncrnmg5a.js');
6
+ const index = require('./index-HH_X-3kJ.js');
7
7
 
8
8
  function _interopNamespace(e) {
9
9
  if (e && e.__esModule) return e;
@@ -47,4 +47,4 @@ const useAdminRoles = (params = {}, queryOptions) => {
47
47
  };
48
48
 
49
49
  exports.useAdminRoles = useAdminRoles;
50
- //# sourceMappingURL=useAdminRoles-zEk0tBhE.js.map
50
+ //# sourceMappingURL=useAdminRoles-XzbtItdy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAdminRoles-zEk0tBhE.js","sources":["../../admin/src/hooks/useAdminRoles.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useCollator } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { GetRolesParams, useGetRolesQuery } from '../services/users';\n\nimport type { FindRoles } from '../../../shared/contracts/roles';\n\nexport type AdminRole = FindRoles.Response['data'][number];\n\nexport const useAdminRoles = (\n params: GetRolesParams = {},\n queryOptions?: Parameters<typeof useGetRolesQuery>[1]\n) => {\n const { locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const { data, error, isError, isLoading, refetch } = useGetRolesQuery(params, queryOptions);\n\n // the return value needs to be memoized, because intantiating\n // an empty array as default value would lead to an unstable return\n // value, which later on triggers infinite loops if used in the\n // dependency arrays of other hooks\n const roles = React.useMemo(\n () =>\n [...(data ?? [])].sort((a, b) =>\n formatter.compare(a.name, b.name)\n ) as FindRoles.Response['data'],\n [data, formatter]\n );\n\n return {\n roles,\n error,\n isError,\n isLoading,\n refetch,\n };\n};\n"],"names":["useIntl","useCollator","useGetRolesQuery","React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,aAAgB,GAAA,CAC3B,MAAyB,GAAA,IACzB,YACG,KAAA;AACH,EAAM,MAAA,EAAE,MAAO,EAAA,GAAIA,iBAAQ,EAAA,CAAA;AAC3B,EAAM,MAAA,SAAA,GAAYC,yBAAY,MAAQ,EAAA;AAAA,IACpC,WAAa,EAAA,MAAA;AAAA,GACd,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,MAAM,KAAO,EAAA,OAAA,EAAS,WAAW,OAAQ,EAAA,GAAIC,sBAAiB,CAAA,MAAA,EAAQ,YAAY,CAAA,CAAA;AAM1F,EAAA,MAAM,QAAQC,gBAAM,CAAA,OAAA;AAAA,IAClB,MACE,CAAC,GAAI,IAAQ,IAAA,EAAG,CAAE,CAAA,IAAA;AAAA,MAAK,CAAC,GAAG,CACzB,KAAA,SAAA,CAAU,QAAQ,CAAE,CAAA,IAAA,EAAM,EAAE,IAAI,CAAA;AAAA,KAClC;AAAA,IACF,CAAC,MAAM,SAAS,CAAA;AAAA,GAClB,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"useAdminRoles-XzbtItdy.js","sources":["../../admin/src/hooks/useAdminRoles.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useCollator } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { GetRolesParams, useGetRolesQuery } from '../services/users';\n\nimport type { FindRoles } from '../../../shared/contracts/roles';\n\nexport type AdminRole = FindRoles.Response['data'][number];\n\nexport const useAdminRoles = (\n params: GetRolesParams = {},\n queryOptions?: Parameters<typeof useGetRolesQuery>[1]\n) => {\n const { locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const { data, error, isError, isLoading, refetch } = useGetRolesQuery(params, queryOptions);\n\n // the return value needs to be memoized, because intantiating\n // an empty array as default value would lead to an unstable return\n // value, which later on triggers infinite loops if used in the\n // dependency arrays of other hooks\n const roles = React.useMemo(\n () =>\n [...(data ?? [])].sort((a, b) =>\n formatter.compare(a.name, b.name)\n ) as FindRoles.Response['data'],\n [data, formatter]\n );\n\n return {\n roles,\n error,\n isError,\n isLoading,\n refetch,\n };\n};\n"],"names":["useIntl","useCollator","useGetRolesQuery","React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,aAAgB,GAAA,CAC3B,MAAyB,GAAA,IACzB,YACG,KAAA;AACH,EAAM,MAAA,EAAE,MAAO,EAAA,GAAIA,iBAAQ,EAAA,CAAA;AAC3B,EAAM,MAAA,SAAA,GAAYC,yBAAY,MAAQ,EAAA;AAAA,IACpC,WAAa,EAAA,MAAA;AAAA,GACd,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,MAAM,KAAO,EAAA,OAAA,EAAS,WAAW,OAAQ,EAAA,GAAIC,sBAAiB,CAAA,MAAA,EAAQ,YAAY,CAAA,CAAA;AAM1F,EAAA,MAAM,QAAQC,gBAAM,CAAA,OAAA;AAAA,IAClB,MACE,CAAC,GAAI,IAAQ,IAAA,EAAG,CAAE,CAAA,IAAA;AAAA,MAAK,CAAC,GAAG,CACzB,KAAA,SAAA,CAAU,QAAQ,CAAE,CAAA,IAAA,EAAM,EAAE,IAAI,CAAA;AAAA,KAClC;AAAA,IACF,CAAC,MAAM,SAAS,CAAA;AAAA,GAClB,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import isNil from 'lodash/isNil';
3
3
  import { useIntl } from 'react-intl';
4
4
  import { useLocation } from 'react-router-dom';
5
- import { u as useNotification } from './rbac-A_QIXvpC.mjs';
5
+ import { a as useNotification } from './Theme-vNSAMTAv.mjs';
6
6
  import { u as useLicenseLimits } from './useLicenseLimits-Jy6E6qc2.mjs';
7
7
 
8
8
  const STORAGE_KEY_PREFIX = "strapi-notification-seat-limit";
@@ -77,4 +77,4 @@ const useLicenseLimitNotification = () => {
77
77
  };
78
78
 
79
79
  export { useLicenseLimitNotification as u };
80
- //# sourceMappingURL=useLicenseLimitNotification-AUg5DyS9.mjs.map
80
+ //# sourceMappingURL=useLicenseLimitNotification-Nh_v-hN2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLicenseLimitNotification-AUg5DyS9.mjs","sources":["../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_STRAPI_CLOUD_URL = 'https://cloud.strapi.io/profile/billing';\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, isHostedOnStrapiCloud } =\n license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n (licenseLimitStatus === 'AT_LIMIT' || licenseLimitStatus === 'OVER_LIMIT');\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n } else if (licenseLimitStatus === 'AT_LIMIT') {\n notificationType = 'warning';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: isHostedOnStrapiCloud ? BILLING_STRAPI_CLOUD_URL : BILLING_SELF_HOSTED_URL,\n label: formatMessage(\n {\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage:\n '{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}',\n },\n { isHostedOnStrapiCloud }\n ),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isHostedOnStrapiCloud,\n isError,\n ]);\n};\n"],"names":[],"mappings":";;;;;;;AAeA,MAAM,kBAAqB,GAAA,gCAAA,CAAA;AAE3B,MAAM,wBAA2B,GAAA,yCAAA,CAAA;AACjC,MAAM,uBAA0B,GAAA,yCAAA,CAAA;AAEzB,MAAM,8BAA8B,MAAM;AAC/C,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,EAAE,OAAA,EAAS,OAAS,EAAA,SAAA,KAAc,gBAAiB,EAAA,CAAA;AACzD,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAI,eAAgB,EAAA,CAAA;AAC/C,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,WAAY,EAAA,CAAA;AAEjC,EAAA,MAAM,EAAE,oBAAsB,EAAA,cAAA,EAAgB,oBAAoB,qBAAsB,EAAA,GACtF,WAAW,EAAC,CAAA;AAEd,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,WAAW,SAAW,EAAA;AACxB,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,MAAM,4BACJ,CAAC,KAAA,CAAM,cAAc,CAAA,IACrB,CAAC,MAAO,CAAA,cAAA,CAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,EAAE,CACjE,KAAA,kBAAA,KAAuB,cAAc,kBAAuB,KAAA,YAAA,CAAA,CAAA;AAE/D,IAAI,IAAA,gBAAA,CAAA;AAEJ,IAAA,IAAI,uBAAuB,YAAc,EAAA;AACvC,MAAmB,gBAAA,GAAA,QAAA,CAAA;AAAA,KACrB,MAAA,IAAW,uBAAuB,UAAY,EAAA;AAC5C,MAAmB,gBAAA,GAAA,SAAA,CAAA;AAAA,KACrB;AAEA,IAAA,IAAI,yBAA2B,EAAA;AAC7B,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,gBAAA;AAAA,QACN,OAAS,EAAA,aAAA;AAAA,UACP;AAAA,YACE,EAAI,EAAA,uCAAA;AAAA,YACJ,cACE,EAAA,oLAAA;AAAA,WACJ;AAAA,UACA,EAAE,kBAAmB,EAAA;AAAA,SACvB;AAAA,QACA,KAAO,EAAA,aAAA;AAAA,UACL;AAAA,YACE,EAAI,EAAA,6CAAA;AAAA,YACJ,cACE,EAAA,iHAAA;AAAA,WACJ;AAAA,UACA;AAAA,YACE,kBAAA;AAAA,YACA,oBAAA;AAAA,YACA,cAAA;AAAA,WACF;AAAA,SACF;AAAA,QACA,IAAM,EAAA;AAAA,UACJ,GAAA,EAAK,wBAAwB,wBAA2B,GAAA,uBAAA;AAAA,UACxD,KAAO,EAAA,aAAA;AAAA,YACL;AAAA,cACE,EAAI,EAAA,yCAAA;AAAA,cACJ,cACE,EAAA,yEAAA;AAAA,aACJ;AAAA,YACA,EAAE,qBAAsB,EAAA;AAAA,WAC1B;AAAA,SACF;AAAA,QACA,eAAiB,EAAA,IAAA;AAAA,QACjB,OAAU,GAAA;AACR,UAAA,MAAA,CAAO,eAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,IAAI,MAAM,CAAA,CAAA;AAAA,SAC3E;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACC,EAAA;AAAA,IACD,kBAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA,qBAAA;AAAA,IACA,OAAA;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useLicenseLimitNotification-Nh_v-hN2.mjs","sources":["../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_STRAPI_CLOUD_URL = 'https://cloud.strapi.io/profile/billing';\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, isHostedOnStrapiCloud } =\n license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n (licenseLimitStatus === 'AT_LIMIT' || licenseLimitStatus === 'OVER_LIMIT');\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n } else if (licenseLimitStatus === 'AT_LIMIT') {\n notificationType = 'warning';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: isHostedOnStrapiCloud ? BILLING_STRAPI_CLOUD_URL : BILLING_SELF_HOSTED_URL,\n label: formatMessage(\n {\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage:\n '{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}',\n },\n { isHostedOnStrapiCloud }\n ),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isHostedOnStrapiCloud,\n isError,\n ]);\n};\n"],"names":[],"mappings":";;;;;;;AAeA,MAAM,kBAAqB,GAAA,gCAAA,CAAA;AAE3B,MAAM,wBAA2B,GAAA,yCAAA,CAAA;AACjC,MAAM,uBAA0B,GAAA,yCAAA,CAAA;AAEzB,MAAM,8BAA8B,MAAM;AAC/C,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,EAAE,OAAA,EAAS,OAAS,EAAA,SAAA,KAAc,gBAAiB,EAAA,CAAA;AACzD,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAI,eAAgB,EAAA,CAAA;AAC/C,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,WAAY,EAAA,CAAA;AAEjC,EAAA,MAAM,EAAE,oBAAsB,EAAA,cAAA,EAAgB,oBAAoB,qBAAsB,EAAA,GACtF,WAAW,EAAC,CAAA;AAEd,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,WAAW,SAAW,EAAA;AACxB,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,MAAM,4BACJ,CAAC,KAAA,CAAM,cAAc,CAAA,IACrB,CAAC,MAAO,CAAA,cAAA,CAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,EAAE,CACjE,KAAA,kBAAA,KAAuB,cAAc,kBAAuB,KAAA,YAAA,CAAA,CAAA;AAE/D,IAAI,IAAA,gBAAA,CAAA;AAEJ,IAAA,IAAI,uBAAuB,YAAc,EAAA;AACvC,MAAmB,gBAAA,GAAA,QAAA,CAAA;AAAA,KACrB,MAAA,IAAW,uBAAuB,UAAY,EAAA;AAC5C,MAAmB,gBAAA,GAAA,SAAA,CAAA;AAAA,KACrB;AAEA,IAAA,IAAI,yBAA2B,EAAA;AAC7B,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,gBAAA;AAAA,QACN,OAAS,EAAA,aAAA;AAAA,UACP;AAAA,YACE,EAAI,EAAA,uCAAA;AAAA,YACJ,cACE,EAAA,oLAAA;AAAA,WACJ;AAAA,UACA,EAAE,kBAAmB,EAAA;AAAA,SACvB;AAAA,QACA,KAAO,EAAA,aAAA;AAAA,UACL;AAAA,YACE,EAAI,EAAA,6CAAA;AAAA,YACJ,cACE,EAAA,iHAAA;AAAA,WACJ;AAAA,UACA;AAAA,YACE,kBAAA;AAAA,YACA,oBAAA;AAAA,YACA,cAAA;AAAA,WACF;AAAA,SACF;AAAA,QACA,IAAM,EAAA;AAAA,UACJ,GAAA,EAAK,wBAAwB,wBAA2B,GAAA,uBAAA;AAAA,UACxD,KAAO,EAAA,aAAA;AAAA,YACL;AAAA,cACE,EAAI,EAAA,yCAAA;AAAA,cACJ,cACE,EAAA,yEAAA;AAAA,aACJ;AAAA,YACA,EAAE,qBAAsB,EAAA;AAAA,WAC1B;AAAA,SACF;AAAA,QACA,eAAiB,EAAA,IAAA;AAAA,QACjB,OAAU,GAAA;AACR,UAAA,MAAA,CAAO,eAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,IAAI,MAAM,CAAA,CAAA;AAAA,SAC3E;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACC,EAAA;AAAA,IACD,kBAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA,qBAAA;AAAA,IACA,OAAA;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
@@ -4,7 +4,7 @@ const React = require('react');
4
4
  const isNil = require('lodash/isNil');
5
5
  const reactIntl = require('react-intl');
6
6
  const reactRouterDom = require('react-router-dom');
7
- const rbac = require('./rbac-c6QPc6s7.js');
7
+ const Theme = require('./Theme-QO8ntQqL.js');
8
8
  const useLicenseLimits = require('./useLicenseLimits-FtmLXkwK.js');
9
9
 
10
10
  const _interopDefault = e => e && e.__esModule ? e : { default: e };
@@ -36,7 +36,7 @@ const BILLING_SELF_HOSTED_URL = "https://strapi.io/billing/request-seats";
36
36
  const useLicenseLimitNotification = () => {
37
37
  const { formatMessage } = reactIntl.useIntl();
38
38
  const { license, isError, isLoading } = useLicenseLimits.useLicenseLimits();
39
- const { toggleNotification } = rbac.useNotification();
39
+ const { toggleNotification } = Theme.useNotification();
40
40
  const { pathname } = reactRouterDom.useLocation();
41
41
  const { enforcementUserCount, permittedSeats, licenseLimitStatus, isHostedOnStrapiCloud } = license ?? {};
42
42
  React__namespace.useEffect(() => {
@@ -102,4 +102,4 @@ const useLicenseLimitNotification = () => {
102
102
  };
103
103
 
104
104
  exports.useLicenseLimitNotification = useLicenseLimitNotification;
105
- //# sourceMappingURL=useLicenseLimitNotification-ItNGgex2.js.map
105
+ //# sourceMappingURL=useLicenseLimitNotification-ZwMojvCa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLicenseLimitNotification-ItNGgex2.js","sources":["../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_STRAPI_CLOUD_URL = 'https://cloud.strapi.io/profile/billing';\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, isHostedOnStrapiCloud } =\n license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n (licenseLimitStatus === 'AT_LIMIT' || licenseLimitStatus === 'OVER_LIMIT');\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n } else if (licenseLimitStatus === 'AT_LIMIT') {\n notificationType = 'warning';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: isHostedOnStrapiCloud ? BILLING_STRAPI_CLOUD_URL : BILLING_SELF_HOSTED_URL,\n label: formatMessage(\n {\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage:\n '{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}',\n },\n { isHostedOnStrapiCloud }\n ),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isHostedOnStrapiCloud,\n isError,\n ]);\n};\n"],"names":["useIntl","useLicenseLimits","useNotification","useLocation","React","isNil"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,kBAAqB,GAAA,gCAAA,CAAA;AAE3B,MAAM,wBAA2B,GAAA,yCAAA,CAAA;AACjC,MAAM,uBAA0B,GAAA,yCAAA,CAAA;AAEzB,MAAM,8BAA8B,MAAM;AAC/C,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIA,iBAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,EAAE,OAAA,EAAS,OAAS,EAAA,SAAA,KAAcC,iCAAiB,EAAA,CAAA;AACzD,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAIC,oBAAgB,EAAA,CAAA;AAC/C,EAAM,MAAA,EAAE,QAAS,EAAA,GAAIC,0BAAY,EAAA,CAAA;AAEjC,EAAA,MAAM,EAAE,oBAAsB,EAAA,cAAA,EAAgB,oBAAoB,qBAAsB,EAAA,GACtF,WAAW,EAAC,CAAA;AAEd,EAAAC,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,WAAW,SAAW,EAAA;AACxB,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,MAAM,4BACJ,CAACC,sBAAA,CAAM,cAAc,CAAA,IACrB,CAAC,MAAO,CAAA,cAAA,CAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,EAAE,CACjE,KAAA,kBAAA,KAAuB,cAAc,kBAAuB,KAAA,YAAA,CAAA,CAAA;AAE/D,IAAI,IAAA,gBAAA,CAAA;AAEJ,IAAA,IAAI,uBAAuB,YAAc,EAAA;AACvC,MAAmB,gBAAA,GAAA,QAAA,CAAA;AAAA,KACrB,MAAA,IAAW,uBAAuB,UAAY,EAAA;AAC5C,MAAmB,gBAAA,GAAA,SAAA,CAAA;AAAA,KACrB;AAEA,IAAA,IAAI,yBAA2B,EAAA;AAC7B,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,gBAAA;AAAA,QACN,OAAS,EAAA,aAAA;AAAA,UACP;AAAA,YACE,EAAI,EAAA,uCAAA;AAAA,YACJ,cACE,EAAA,oLAAA;AAAA,WACJ;AAAA,UACA,EAAE,kBAAmB,EAAA;AAAA,SACvB;AAAA,QACA,KAAO,EAAA,aAAA;AAAA,UACL;AAAA,YACE,EAAI,EAAA,6CAAA;AAAA,YACJ,cACE,EAAA,iHAAA;AAAA,WACJ;AAAA,UACA;AAAA,YACE,kBAAA;AAAA,YACA,oBAAA;AAAA,YACA,cAAA;AAAA,WACF;AAAA,SACF;AAAA,QACA,IAAM,EAAA;AAAA,UACJ,GAAA,EAAK,wBAAwB,wBAA2B,GAAA,uBAAA;AAAA,UACxD,KAAO,EAAA,aAAA;AAAA,YACL;AAAA,cACE,EAAI,EAAA,yCAAA;AAAA,cACJ,cACE,EAAA,yEAAA;AAAA,aACJ;AAAA,YACA,EAAE,qBAAsB,EAAA;AAAA,WAC1B;AAAA,SACF;AAAA,QACA,eAAiB,EAAA,IAAA;AAAA,QACjB,OAAU,GAAA;AACR,UAAA,MAAA,CAAO,eAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,IAAI,MAAM,CAAA,CAAA;AAAA,SAC3E;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACC,EAAA;AAAA,IACD,kBAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA,qBAAA;AAAA,IACA,OAAA;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useLicenseLimitNotification-ZwMojvCa.js","sources":["../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_STRAPI_CLOUD_URL = 'https://cloud.strapi.io/profile/billing';\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, isHostedOnStrapiCloud } =\n license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n (licenseLimitStatus === 'AT_LIMIT' || licenseLimitStatus === 'OVER_LIMIT');\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n } else if (licenseLimitStatus === 'AT_LIMIT') {\n notificationType = 'warning';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: isHostedOnStrapiCloud ? BILLING_STRAPI_CLOUD_URL : BILLING_SELF_HOSTED_URL,\n label: formatMessage(\n {\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage:\n '{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}',\n },\n { isHostedOnStrapiCloud }\n ),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isHostedOnStrapiCloud,\n isError,\n ]);\n};\n"],"names":["useIntl","useLicenseLimits","useNotification","useLocation","React","isNil"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,kBAAqB,GAAA,gCAAA,CAAA;AAE3B,MAAM,wBAA2B,GAAA,yCAAA,CAAA;AACjC,MAAM,uBAA0B,GAAA,yCAAA,CAAA;AAEzB,MAAM,8BAA8B,MAAM;AAC/C,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIA,iBAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,EAAE,OAAA,EAAS,OAAS,EAAA,SAAA,KAAcC,iCAAiB,EAAA,CAAA;AACzD,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAIC,qBAAgB,EAAA,CAAA;AAC/C,EAAM,MAAA,EAAE,QAAS,EAAA,GAAIC,0BAAY,EAAA,CAAA;AAEjC,EAAA,MAAM,EAAE,oBAAsB,EAAA,cAAA,EAAgB,oBAAoB,qBAAsB,EAAA,GACtF,WAAW,EAAC,CAAA;AAEd,EAAAC,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,WAAW,SAAW,EAAA;AACxB,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,MAAM,4BACJ,CAACC,sBAAA,CAAM,cAAc,CAAA,IACrB,CAAC,MAAO,CAAA,cAAA,CAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,EAAE,CACjE,KAAA,kBAAA,KAAuB,cAAc,kBAAuB,KAAA,YAAA,CAAA,CAAA;AAE/D,IAAI,IAAA,gBAAA,CAAA;AAEJ,IAAA,IAAI,uBAAuB,YAAc,EAAA;AACvC,MAAmB,gBAAA,GAAA,QAAA,CAAA;AAAA,KACrB,MAAA,IAAW,uBAAuB,UAAY,EAAA;AAC5C,MAAmB,gBAAA,GAAA,SAAA,CAAA;AAAA,KACrB;AAEA,IAAA,IAAI,yBAA2B,EAAA;AAC7B,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,gBAAA;AAAA,QACN,OAAS,EAAA,aAAA;AAAA,UACP;AAAA,YACE,EAAI,EAAA,uCAAA;AAAA,YACJ,cACE,EAAA,oLAAA;AAAA,WACJ;AAAA,UACA,EAAE,kBAAmB,EAAA;AAAA,SACvB;AAAA,QACA,KAAO,EAAA,aAAA;AAAA,UACL;AAAA,YACE,EAAI,EAAA,6CAAA;AAAA,YACJ,cACE,EAAA,iHAAA;AAAA,WACJ;AAAA,UACA;AAAA,YACE,kBAAA;AAAA,YACA,oBAAA;AAAA,YACA,cAAA;AAAA,WACF;AAAA,SACF;AAAA,QACA,IAAM,EAAA;AAAA,UACJ,GAAA,EAAK,wBAAwB,wBAA2B,GAAA,uBAAA;AAAA,UACxD,KAAO,EAAA,aAAA;AAAA,YACL;AAAA,cACE,EAAI,EAAA,yCAAA;AAAA,cACJ,cACE,EAAA,yEAAA;AAAA,aACJ;AAAA,YACA,EAAE,qBAAsB,EAAA;AAAA,WAC1B;AAAA,SACF;AAAA,QACA,eAAiB,EAAA,IAAA;AAAA,QACjB,OAAU,GAAA;AACR,UAAA,MAAA,CAAO,eAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,IAAI,MAAM,CAAA,CAAA;AAAA,SAC3E;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACC,EAAA;AAAA,IACD,kBAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA,qBAAA;AAAA,IACA,OAAA;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as yup from 'yup';
2
- import { e as errorsTrads } from './index-jwAq-BX-.mjs';
2
+ import { e as errorsTrads } from './index-wHs6nj5s.mjs';
3
3
 
4
4
  const COMMON_USER_SCHEMA = {
5
5
  firstname: yup.string().trim().required({
@@ -40,4 +40,4 @@ const COMMON_USER_SCHEMA = {
40
40
  };
41
41
 
42
42
  export { COMMON_USER_SCHEMA as C };
43
- //# sourceMappingURL=validation-F0JMLUkr.mjs.map
43
+ //# sourceMappingURL=validation-10a7k3aM.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation-F0JMLUkr.mjs","sources":["../../admin/src/pages/Settings/pages/Users/utils/validation.ts"],"sourcesContent":["import * as yup from 'yup';\n\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\n/**\n * @description This needs wrapping in `yup.object().shape()` before use.\n */\nconst COMMON_USER_SCHEMA = {\n firstname: yup.string().trim().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).lowercase().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n username: yup\n .string()\n .transform((value) => (value === '' ? undefined : value))\n .nullable(),\n password: yup\n .string()\n .transform((value) => (value === '' ? undefined : value))\n .nullable()\n .min(8, {\n ...translatedErrors.minLength,\n values: { min: 8 },\n })\n .matches(/[a-z]/, {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least one lowercase character',\n })\n .matches(/[A-Z]/, {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least one uppercase character',\n })\n .matches(/\\d/, {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least one number',\n }),\n confirmPassword: yup\n .string()\n .transform((value) => (value === '' ? null : value))\n .nullable()\n .min(8, {\n ...translatedErrors.minLength,\n values: { min: 8 },\n })\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n })\n .when('password', (password, passSchema) => {\n return password\n ? passSchema.required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n : passSchema;\n }),\n};\n\nexport { COMMON_USER_SCHEMA };\n"],"names":["translatedErrors"],"mappings":";;;AAOA,MAAM,kBAAqB,GAAA;AAAA,EACzB,WAAW,GAAI,CAAA,MAAA,EAAS,CAAA,IAAA,GAAO,QAAS,CAAA;AAAA,IACtC,EAAA,EAAIA,YAAiB,QAAS,CAAA,EAAA;AAAA,IAC9B,cAAgB,EAAA,wBAAA;AAAA,GACjB,CAAA;AAAA,EACD,QAAA,EAAU,IAAI,MAAO,EAAA;AAAA,EACrB,KAAA,EAAO,GAAI,CAAA,MAAA,EAAS,CAAA,KAAA,CAAMA,YAAiB,KAAK,CAAA,CAAE,SAAU,EAAA,CAAE,QAAS,CAAA;AAAA,IACrE,EAAA,EAAIA,YAAiB,QAAS,CAAA,EAAA;AAAA,IAC9B,cAAgB,EAAA,wBAAA;AAAA,GACjB,CAAA;AAAA,EACD,QAAU,EAAA,GAAA,CACP,MAAO,EAAA,CACP,SAAU,CAAA,CAAC,KAAW,KAAA,KAAA,KAAU,EAAK,GAAA,KAAA,CAAA,GAAY,KAAM,CAAA,CACvD,QAAS,EAAA;AAAA,EACZ,QAAU,EAAA,GAAA,CACP,MAAO,EAAA,CACP,UAAU,CAAC,KAAA,KAAW,KAAU,KAAA,EAAA,GAAK,SAAY,KAAM,CAAA,CACvD,QAAS,EAAA,CACT,IAAI,CAAG,EAAA;AAAA,IACN,GAAGA,WAAiB,CAAA,SAAA;AAAA,IACpB,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAE,EAAA;AAAA,GAClB,CACA,CAAA,OAAA,CAAQ,OAAS,EAAA;AAAA,IAChB,EAAI,EAAA,0CAAA;AAAA,IACJ,cAAgB,EAAA,wDAAA;AAAA,GACjB,CACA,CAAA,OAAA,CAAQ,OAAS,EAAA;AAAA,IAChB,EAAI,EAAA,0CAAA;AAAA,IACJ,cAAgB,EAAA,wDAAA;AAAA,GACjB,CACA,CAAA,OAAA,CAAQ,IAAM,EAAA;AAAA,IACb,EAAI,EAAA,uCAAA;AAAA,IACJ,cAAgB,EAAA,2CAAA;AAAA,GACjB,CAAA;AAAA,EACH,eAAiB,EAAA,GAAA,CACd,MAAO,EAAA,CACP,UAAU,CAAC,KAAA,KAAW,KAAU,KAAA,EAAA,GAAK,OAAO,KAAM,CAAA,CAClD,QAAS,EAAA,CACT,IAAI,CAAG,EAAA;AAAA,IACN,GAAGA,WAAiB,CAAA,SAAA;AAAA,IACpB,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAE,EAAA;AAAA,GAClB,EACA,KAAM,CAAA,CAAC,IAAI,GAAI,CAAA,UAAU,CAAG,EAAA,IAAI,CAAG,EAAA;AAAA,IAClC,EAAI,EAAA,yCAAA;AAAA,IACJ,cAAgB,EAAA,sBAAA;AAAA,GACjB,CACA,CAAA,IAAA,CAAK,UAAY,EAAA,CAAC,UAAU,UAAe,KAAA;AAC1C,IAAO,OAAA,QAAA,GACH,WAAW,QAAS,CAAA;AAAA,MAClB,EAAA,EAAIA,YAAiB,QAAS,CAAA,EAAA;AAAA,MAC9B,cAAgB,EAAA,wBAAA;AAAA,KACjB,CACD,GAAA,UAAA,CAAA;AAAA,GACL,CAAA;AACL;;;;"}
1
+ {"version":3,"file":"validation-10a7k3aM.mjs","sources":["../../admin/src/pages/Settings/pages/Users/utils/validation.ts"],"sourcesContent":["import * as yup from 'yup';\n\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\n/**\n * @description This needs wrapping in `yup.object().shape()` before use.\n */\nconst COMMON_USER_SCHEMA = {\n firstname: yup.string().trim().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).lowercase().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n username: yup\n .string()\n .transform((value) => (value === '' ? undefined : value))\n .nullable(),\n password: yup\n .string()\n .transform((value) => (value === '' ? undefined : value))\n .nullable()\n .min(8, {\n ...translatedErrors.minLength,\n values: { min: 8 },\n })\n .matches(/[a-z]/, {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least one lowercase character',\n })\n .matches(/[A-Z]/, {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least one uppercase character',\n })\n .matches(/\\d/, {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least one number',\n }),\n confirmPassword: yup\n .string()\n .transform((value) => (value === '' ? null : value))\n .nullable()\n .min(8, {\n ...translatedErrors.minLength,\n values: { min: 8 },\n })\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n })\n .when('password', (password, passSchema) => {\n return password\n ? passSchema.required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n : passSchema;\n }),\n};\n\nexport { COMMON_USER_SCHEMA };\n"],"names":["translatedErrors"],"mappings":";;;AAOA,MAAM,kBAAqB,GAAA;AAAA,EACzB,WAAW,GAAI,CAAA,MAAA,EAAS,CAAA,IAAA,GAAO,QAAS,CAAA;AAAA,IACtC,EAAA,EAAIA,YAAiB,QAAS,CAAA,EAAA;AAAA,IAC9B,cAAgB,EAAA,wBAAA;AAAA,GACjB,CAAA;AAAA,EACD,QAAA,EAAU,IAAI,MAAO,EAAA;AAAA,EACrB,KAAA,EAAO,GAAI,CAAA,MAAA,EAAS,CAAA,KAAA,CAAMA,YAAiB,KAAK,CAAA,CAAE,SAAU,EAAA,CAAE,QAAS,CAAA;AAAA,IACrE,EAAA,EAAIA,YAAiB,QAAS,CAAA,EAAA;AAAA,IAC9B,cAAgB,EAAA,wBAAA;AAAA,GACjB,CAAA;AAAA,EACD,QAAU,EAAA,GAAA,CACP,MAAO,EAAA,CACP,SAAU,CAAA,CAAC,KAAW,KAAA,KAAA,KAAU,EAAK,GAAA,KAAA,CAAA,GAAY,KAAM,CAAA,CACvD,QAAS,EAAA;AAAA,EACZ,QAAU,EAAA,GAAA,CACP,MAAO,EAAA,CACP,UAAU,CAAC,KAAA,KAAW,KAAU,KAAA,EAAA,GAAK,SAAY,KAAM,CAAA,CACvD,QAAS,EAAA,CACT,IAAI,CAAG,EAAA;AAAA,IACN,GAAGA,WAAiB,CAAA,SAAA;AAAA,IACpB,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAE,EAAA;AAAA,GAClB,CACA,CAAA,OAAA,CAAQ,OAAS,EAAA;AAAA,IAChB,EAAI,EAAA,0CAAA;AAAA,IACJ,cAAgB,EAAA,wDAAA;AAAA,GACjB,CACA,CAAA,OAAA,CAAQ,OAAS,EAAA;AAAA,IAChB,EAAI,EAAA,0CAAA;AAAA,IACJ,cAAgB,EAAA,wDAAA;AAAA,GACjB,CACA,CAAA,OAAA,CAAQ,IAAM,EAAA;AAAA,IACb,EAAI,EAAA,uCAAA;AAAA,IACJ,cAAgB,EAAA,2CAAA;AAAA,GACjB,CAAA;AAAA,EACH,eAAiB,EAAA,GAAA,CACd,MAAO,EAAA,CACP,UAAU,CAAC,KAAA,KAAW,KAAU,KAAA,EAAA,GAAK,OAAO,KAAM,CAAA,CAClD,QAAS,EAAA,CACT,IAAI,CAAG,EAAA;AAAA,IACN,GAAGA,WAAiB,CAAA,SAAA;AAAA,IACpB,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAE,EAAA;AAAA,GAClB,EACA,KAAM,CAAA,CAAC,IAAI,GAAI,CAAA,UAAU,CAAG,EAAA,IAAI,CAAG,EAAA;AAAA,IAClC,EAAI,EAAA,yCAAA;AAAA,IACJ,cAAgB,EAAA,sBAAA;AAAA,GACjB,CACA,CAAA,IAAA,CAAK,UAAY,EAAA,CAAC,UAAU,UAAe,KAAA;AAC1C,IAAO,OAAA,QAAA,GACH,WAAW,QAAS,CAAA;AAAA,MAClB,EAAA,EAAIA,YAAiB,QAAS,CAAA,EAAA;AAAA,MAC9B,cAAgB,EAAA,wBAAA;AAAA,KACjB,CACD,GAAA,UAAA,CAAA;AAAA,GACL,CAAA;AACL;;;;"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const yup = require('yup');
4
- const index = require('./index-Ncrnmg5a.js');
4
+ const index = require('./index-HH_X-3kJ.js');
5
5
 
6
6
  function _interopNamespace(e) {
7
7
  if (e && e.__esModule) return e;
@@ -62,4 +62,4 @@ const COMMON_USER_SCHEMA = {
62
62
  };
63
63
 
64
64
  exports.COMMON_USER_SCHEMA = COMMON_USER_SCHEMA;
65
- //# sourceMappingURL=validation-cP2hBbZm.js.map
65
+ //# sourceMappingURL=validation-nRSf_5UG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation-cP2hBbZm.js","sources":["../../admin/src/pages/Settings/pages/Users/utils/validation.ts"],"sourcesContent":["import * as yup from 'yup';\n\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\n/**\n * @description This needs wrapping in `yup.object().shape()` before use.\n */\nconst COMMON_USER_SCHEMA = {\n firstname: yup.string().trim().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).lowercase().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n username: yup\n .string()\n .transform((value) => (value === '' ? undefined : value))\n .nullable(),\n password: yup\n .string()\n .transform((value) => (value === '' ? undefined : value))\n .nullable()\n .min(8, {\n ...translatedErrors.minLength,\n values: { min: 8 },\n })\n .matches(/[a-z]/, {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least one lowercase character',\n })\n .matches(/[A-Z]/, {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least one uppercase character',\n })\n .matches(/\\d/, {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least one number',\n }),\n confirmPassword: yup\n .string()\n .transform((value) => (value === '' ? null : value))\n .nullable()\n .min(8, {\n ...translatedErrors.minLength,\n values: { min: 8 },\n })\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n })\n .when('password', (password, passSchema) => {\n return password\n ? passSchema.required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n : passSchema;\n }),\n};\n\nexport { COMMON_USER_SCHEMA };\n"],"names":["yup","translatedErrors"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,kBAAqB,GAAA;AAAA,EACzB,WAAWA,cAAI,CAAA,MAAA,EAAS,CAAA,IAAA,GAAO,QAAS,CAAA;AAAA,IACtC,EAAA,EAAIC,kBAAiB,QAAS,CAAA,EAAA;AAAA,IAC9B,cAAgB,EAAA,wBAAA;AAAA,GACjB,CAAA;AAAA,EACD,QAAA,EAAUD,eAAI,MAAO,EAAA;AAAA,EACrB,KAAA,EAAOA,cAAI,CAAA,MAAA,EAAS,CAAA,KAAA,CAAMC,kBAAiB,KAAK,CAAA,CAAE,SAAU,EAAA,CAAE,QAAS,CAAA;AAAA,IACrE,EAAA,EAAIA,kBAAiB,QAAS,CAAA,EAAA;AAAA,IAC9B,cAAgB,EAAA,wBAAA;AAAA,GACjB,CAAA;AAAA,EACD,QAAU,EAAAD,cAAA,CACP,MAAO,EAAA,CACP,SAAU,CAAA,CAAC,KAAW,KAAA,KAAA,KAAU,EAAK,GAAA,KAAA,CAAA,GAAY,KAAM,CAAA,CACvD,QAAS,EAAA;AAAA,EACZ,QAAU,EAAAA,cAAA,CACP,MAAO,EAAA,CACP,UAAU,CAAC,KAAA,KAAW,KAAU,KAAA,EAAA,GAAK,SAAY,KAAM,CAAA,CACvD,QAAS,EAAA,CACT,IAAI,CAAG,EAAA;AAAA,IACN,GAAGC,iBAAiB,CAAA,SAAA;AAAA,IACpB,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAE,EAAA;AAAA,GAClB,CACA,CAAA,OAAA,CAAQ,OAAS,EAAA;AAAA,IAChB,EAAI,EAAA,0CAAA;AAAA,IACJ,cAAgB,EAAA,wDAAA;AAAA,GACjB,CACA,CAAA,OAAA,CAAQ,OAAS,EAAA;AAAA,IAChB,EAAI,EAAA,0CAAA;AAAA,IACJ,cAAgB,EAAA,wDAAA;AAAA,GACjB,CACA,CAAA,OAAA,CAAQ,IAAM,EAAA;AAAA,IACb,EAAI,EAAA,uCAAA;AAAA,IACJ,cAAgB,EAAA,2CAAA;AAAA,GACjB,CAAA;AAAA,EACH,eAAiB,EAAAD,cAAA,CACd,MAAO,EAAA,CACP,UAAU,CAAC,KAAA,KAAW,KAAU,KAAA,EAAA,GAAK,OAAO,KAAM,CAAA,CAClD,QAAS,EAAA,CACT,IAAI,CAAG,EAAA;AAAA,IACN,GAAGC,iBAAiB,CAAA,SAAA;AAAA,IACpB,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAE,EAAA;AAAA,GAClB,EACA,KAAM,CAAA,CAACD,eAAI,GAAI,CAAA,UAAU,CAAG,EAAA,IAAI,CAAG,EAAA;AAAA,IAClC,EAAI,EAAA,yCAAA;AAAA,IACJ,cAAgB,EAAA,sBAAA;AAAA,GACjB,CACA,CAAA,IAAA,CAAK,UAAY,EAAA,CAAC,UAAU,UAAe,KAAA;AAC1C,IAAO,OAAA,QAAA,GACH,WAAW,QAAS,CAAA;AAAA,MAClB,EAAA,EAAIC,kBAAiB,QAAS,CAAA,EAAA;AAAA,MAC9B,cAAgB,EAAA,wBAAA;AAAA,KACjB,CACD,GAAA,UAAA,CAAA;AAAA,GACL,CAAA;AACL;;;;"}
1
+ {"version":3,"file":"validation-nRSf_5UG.js","sources":["../../admin/src/pages/Settings/pages/Users/utils/validation.ts"],"sourcesContent":["import * as yup from 'yup';\n\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\n/**\n * @description This needs wrapping in `yup.object().shape()` before use.\n */\nconst COMMON_USER_SCHEMA = {\n firstname: yup.string().trim().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).lowercase().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n username: yup\n .string()\n .transform((value) => (value === '' ? undefined : value))\n .nullable(),\n password: yup\n .string()\n .transform((value) => (value === '' ? undefined : value))\n .nullable()\n .min(8, {\n ...translatedErrors.minLength,\n values: { min: 8 },\n })\n .matches(/[a-z]/, {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least one lowercase character',\n })\n .matches(/[A-Z]/, {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least one uppercase character',\n })\n .matches(/\\d/, {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least one number',\n }),\n confirmPassword: yup\n .string()\n .transform((value) => (value === '' ? null : value))\n .nullable()\n .min(8, {\n ...translatedErrors.minLength,\n values: { min: 8 },\n })\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n })\n .when('password', (password, passSchema) => {\n return password\n ? passSchema.required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n : passSchema;\n }),\n};\n\nexport { COMMON_USER_SCHEMA };\n"],"names":["yup","translatedErrors"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,kBAAqB,GAAA;AAAA,EACzB,WAAWA,cAAI,CAAA,MAAA,EAAS,CAAA,IAAA,GAAO,QAAS,CAAA;AAAA,IACtC,EAAA,EAAIC,kBAAiB,QAAS,CAAA,EAAA;AAAA,IAC9B,cAAgB,EAAA,wBAAA;AAAA,GACjB,CAAA;AAAA,EACD,QAAA,EAAUD,eAAI,MAAO,EAAA;AAAA,EACrB,KAAA,EAAOA,cAAI,CAAA,MAAA,EAAS,CAAA,KAAA,CAAMC,kBAAiB,KAAK,CAAA,CAAE,SAAU,EAAA,CAAE,QAAS,CAAA;AAAA,IACrE,EAAA,EAAIA,kBAAiB,QAAS,CAAA,EAAA;AAAA,IAC9B,cAAgB,EAAA,wBAAA;AAAA,GACjB,CAAA;AAAA,EACD,QAAU,EAAAD,cAAA,CACP,MAAO,EAAA,CACP,SAAU,CAAA,CAAC,KAAW,KAAA,KAAA,KAAU,EAAK,GAAA,KAAA,CAAA,GAAY,KAAM,CAAA,CACvD,QAAS,EAAA;AAAA,EACZ,QAAU,EAAAA,cAAA,CACP,MAAO,EAAA,CACP,UAAU,CAAC,KAAA,KAAW,KAAU,KAAA,EAAA,GAAK,SAAY,KAAM,CAAA,CACvD,QAAS,EAAA,CACT,IAAI,CAAG,EAAA;AAAA,IACN,GAAGC,iBAAiB,CAAA,SAAA;AAAA,IACpB,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAE,EAAA;AAAA,GAClB,CACA,CAAA,OAAA,CAAQ,OAAS,EAAA;AAAA,IAChB,EAAI,EAAA,0CAAA;AAAA,IACJ,cAAgB,EAAA,wDAAA;AAAA,GACjB,CACA,CAAA,OAAA,CAAQ,OAAS,EAAA;AAAA,IAChB,EAAI,EAAA,0CAAA;AAAA,IACJ,cAAgB,EAAA,wDAAA;AAAA,GACjB,CACA,CAAA,OAAA,CAAQ,IAAM,EAAA;AAAA,IACb,EAAI,EAAA,uCAAA;AAAA,IACJ,cAAgB,EAAA,2CAAA;AAAA,GACjB,CAAA;AAAA,EACH,eAAiB,EAAAD,cAAA,CACd,MAAO,EAAA,CACP,UAAU,CAAC,KAAA,KAAW,KAAU,KAAA,EAAA,GAAK,OAAO,KAAM,CAAA,CAClD,QAAS,EAAA,CACT,IAAI,CAAG,EAAA;AAAA,IACN,GAAGC,iBAAiB,CAAA,SAAA;AAAA,IACpB,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAE,EAAA;AAAA,GAClB,EACA,KAAM,CAAA,CAACD,eAAI,GAAI,CAAA,UAAU,CAAG,EAAA,IAAI,CAAG,EAAA;AAAA,IAClC,EAAI,EAAA,yCAAA;AAAA,IACJ,cAAgB,EAAA,sBAAA;AAAA,GACjB,CACA,CAAA,IAAA,CAAK,UAAY,EAAA,CAAC,UAAU,UAAe,KAAA;AAC1C,IAAO,OAAA,QAAA,GACH,WAAW,QAAS,CAAA;AAAA,MAClB,EAAA,EAAIC,kBAAiB,QAAS,CAAA,EAAA;AAAA,MAC9B,cAAgB,EAAA,wBAAA;AAAA,KACjB,CACD,GAAA,UAAA,CAAA;AAAA,GACL,CAAA;AACL;;;;"}
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "@strapi/admin",
3
- "version": "5.0.0-beta.9",
3
+ "version": "5.0.0-beta.11",
4
4
  "description": "Strapi Admin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -75,15 +75,16 @@ declare const _default: {
75
75
  },
76
76
  "dependencies": {
77
77
  "@casl/ability": "6.5.0",
78
+ "@internationalized/date": "3.5.4",
78
79
  "@radix-ui/react-context": "1.0.1",
79
80
  "@radix-ui/react-toolbar": "1.0.4",
80
81
  "@reduxjs/toolkit": "1.9.7",
81
82
  "@strapi/design-system": "2.0.0-beta.6",
82
83
  "@strapi/icons": "2.0.0-beta.6",
83
- "@strapi/permissions": "5.0.0-beta.9",
84
- "@strapi/types": "5.0.0-beta.9",
85
- "@strapi/typescript-utils": "5.0.0-beta.9",
86
- "@strapi/utils": "5.0.0-beta.9",
84
+ "@strapi/permissions": "5.0.0-beta.11",
85
+ "@strapi/types": "5.0.0-beta.11",
86
+ "@strapi/typescript-utils": "5.0.0-beta.11",
87
+ "@strapi/utils": "5.0.0-beta.11",
87
88
  "@testing-library/dom": "10.1.0",
88
89
  "@testing-library/react": "15.0.7",
89
90
  "@testing-library/user-event": "14.5.2",
@@ -136,8 +137,8 @@ declare const _default: {
136
137
  "zod": "^3.22.4"
137
138
  },
138
139
  "devDependencies": {
139
- "@strapi/admin-test-utils": "5.0.0-beta.9",
140
- "@strapi/data-transfer": "5.0.0-beta.9",
140
+ "@strapi/admin-test-utils": "5.0.0-beta.11",
141
+ "@strapi/data-transfer": "5.0.0-beta.11",
141
142
  "@strapi/pack-up": "5.0.0",
142
143
  "@types/codemirror5": "npm:@types/codemirror@^5.60.15",
143
144
  "@types/fs-extra": "11.0.4",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/admin",
3
- "version": "5.0.0-beta.10",
3
+ "version": "5.0.0-beta.12",
4
4
  "description": "Strapi Admin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -75,15 +75,16 @@
75
75
  },
76
76
  "dependencies": {
77
77
  "@casl/ability": "6.5.0",
78
+ "@internationalized/date": "3.5.4",
78
79
  "@radix-ui/react-context": "1.0.1",
79
80
  "@radix-ui/react-toolbar": "1.0.4",
80
81
  "@reduxjs/toolkit": "1.9.7",
81
82
  "@strapi/design-system": "2.0.0-beta.6",
82
83
  "@strapi/icons": "2.0.0-beta.6",
83
- "@strapi/permissions": "5.0.0-beta.10",
84
- "@strapi/types": "5.0.0-beta.10",
85
- "@strapi/typescript-utils": "5.0.0-beta.10",
86
- "@strapi/utils": "5.0.0-beta.10",
84
+ "@strapi/permissions": "5.0.0-beta.12",
85
+ "@strapi/types": "5.0.0-beta.12",
86
+ "@strapi/typescript-utils": "5.0.0-beta.12",
87
+ "@strapi/utils": "5.0.0-beta.12",
87
88
  "@testing-library/dom": "10.1.0",
88
89
  "@testing-library/react": "15.0.7",
89
90
  "@testing-library/user-event": "14.5.2",
@@ -136,8 +137,8 @@
136
137
  "zod": "^3.22.4"
137
138
  },
138
139
  "devDependencies": {
139
- "@strapi/admin-test-utils": "5.0.0-beta.10",
140
- "@strapi/data-transfer": "5.0.0-beta.10",
140
+ "@strapi/admin-test-utils": "5.0.0-beta.12",
141
+ "@strapi/data-transfer": "5.0.0-beta.12",
141
142
  "@strapi/pack-up": "5.0.0",
142
143
  "@types/codemirror5": "npm:@types/codemirror@^5.60.15",
143
144
  "@types/fs-extra": "11.0.4",
@@ -182,5 +183,5 @@
182
183
  }
183
184
  }
184
185
  },
185
- "gitHead": "d4542f0dccfa2eecb55026dbd795042e7d0004ba"
186
+ "gitHead": "d27f662252a0b10d2ad83f175e8b06d6f513a270"
186
187
  }
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
-
5
- const jsxRuntime = require('react/jsx-runtime');
6
- const rbac = require('./rbac-c6QPc6s7.js');
7
- const EditViewPage = require('./EditViewPage-c3DI4uzU.js');
8
-
9
- const ProtectedCreateView = () => {
10
- const permissions = rbac.useTypedSelector(
11
- (state) => state.admin_app.permissions.settings?.["api-tokens"].create
12
- );
13
- return /* @__PURE__ */ jsxRuntime.jsx(rbac.Page.Protect, { permissions, children: /* @__PURE__ */ jsxRuntime.jsx(EditViewPage.EditView, {}) });
14
- };
15
-
16
- exports.ProtectedCreateView = ProtectedCreateView;
17
- //# sourceMappingURL=CreateView-DNHRcJsj.js.map
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
-
5
- const jsxRuntime = require('react/jsx-runtime');
6
- const rbac = require('./rbac-c6QPc6s7.js');
7
- const EditView = require('./EditView-ul5nHrFh.js');
8
-
9
- const ProtectedCreateView = () => {
10
- const permissions = rbac.useTypedSelector(
11
- (state) => state.admin_app.permissions.settings?.["transfer-tokens"].create
12
- );
13
- return /* @__PURE__ */ jsxRuntime.jsx(rbac.Page.Protect, { permissions, children: /* @__PURE__ */ jsxRuntime.jsx(EditView.EditView, {}) });
14
- };
15
-
16
- exports.ProtectedCreateView = ProtectedCreateView;
17
- //# sourceMappingURL=CreateView-JQYIo77z.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Layout-9EvJq4Gc.mjs","sources":["../../admin/src/hooks/useSettingsMenu.ts","../../admin/src/pages/Settings/components/SettingsNav.tsx","../../admin/src/pages/Settings/Layout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport sortBy from 'lodash/sortBy';\nimport { useSelector } from 'react-redux';\n\nimport { SETTINGS_LINKS_CE, SettingsMenuLink } from '../constants';\nimport { useAppInfo } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { selectAdminPermissions } from '../selectors';\nimport { PermissionMap } from '../types/permissions';\n\nimport { useEnterprise } from './useEnterprise';\n\nimport type { StrapiAppSetting, StrapiAppSettingLink as IStrapiAppSettingLink } from '../StrapiApp';\n\nconst formatLinks = (menu: SettingsMenuSection[]): SettingsMenuSectionWithDisplayedLinks[] =>\n menu.map((menuSection) => {\n const formattedLinks = menuSection.links.map((link) => ({\n ...link,\n isDisplayed: false,\n }));\n\n return { ...menuSection, links: formattedLinks };\n });\n\ninterface SettingsMenuLinkWithPermissions extends SettingsMenuLink {\n permissions: IStrapiAppSettingLink['permissions'];\n hasNotification?: boolean;\n}\n\ninterface StrapiAppSettingsLink extends IStrapiAppSettingLink {\n licenseOnly?: never;\n hasNotification?: never;\n}\n\ninterface SettingsMenuSection extends Omit<StrapiAppSetting, 'links'> {\n links: Array<SettingsMenuLinkWithPermissions | StrapiAppSettingsLink>;\n}\n\ninterface SettingsMenuLinkWithPermissionsAndDisplayed extends SettingsMenuLinkWithPermissions {\n isDisplayed: boolean;\n}\n\ninterface StrapiAppSettingLinkWithDisplayed extends StrapiAppSettingsLink {\n isDisplayed: boolean;\n}\n\ninterface SettingsMenuSectionWithDisplayedLinks extends Omit<SettingsMenuSection, 'links'> {\n links: Array<SettingsMenuLinkWithPermissionsAndDisplayed | StrapiAppSettingLinkWithDisplayed>;\n}\n\ntype SettingsMenu = SettingsMenuSectionWithDisplayedLinks[];\n\nconst useSettingsMenu = (): {\n isLoading: boolean;\n menu: SettingsMenu;\n} => {\n const [{ isLoading, menu }, setData] = React.useState<{\n isLoading: boolean;\n menu: SettingsMenu;\n }>({\n isLoading: true,\n menu: [],\n });\n const checkUserHasPermission = useAuth(\n 'useSettingsMenu',\n (state) => state.checkUserHasPermissions\n );\n const shouldUpdateStrapi = useAppInfo('useSettingsMenu', (state) => state.shouldUpdateStrapi);\n const settings = useStrapiApp('useSettingsMenu', (state) => state.settings);\n const permissions = useSelector(selectAdminPermissions);\n\n /**\n * memoize the return value of this function to avoid re-computing it on every render\n * because it's used in an effect it ends up re-running recursively.\n */\n const ceLinks = React.useMemo(() => SETTINGS_LINKS_CE(), []);\n\n const { admin: adminLinks, global: globalLinks } = useEnterprise(\n ceLinks,\n async () => (await import('../../../ee/admin/src/constants')).SETTINGS_LINKS_EE(),\n {\n combine(ceLinks, eeLinks) {\n return {\n admin: [...eeLinks.admin, ...ceLinks.admin],\n global: [...ceLinks.global, ...eeLinks.global],\n };\n },\n defaultValue: {\n admin: [],\n global: [],\n },\n }\n );\n\n const addPermissions = React.useCallback(\n (link: SettingsMenuLink) => {\n if (!link.id) {\n throw new Error('The settings menu item must have an id attribute.');\n }\n\n return {\n ...link,\n permissions: permissions.settings?.[link.id as keyof PermissionMap['settings']]?.main ?? [],\n } satisfies SettingsMenuLinkWithPermissions;\n },\n [permissions.settings]\n );\n\n React.useEffect(() => {\n const getData = async () => {\n interface MenuLinkPermission {\n hasPermission: boolean;\n sectionIndex: number;\n linkIndex: number;\n }\n\n const buildMenuPermissions = (sections: SettingsMenuSectionWithDisplayedLinks[]) =>\n Promise.all(\n sections.reduce<Promise<MenuLinkPermission>[]>((acc, section, sectionIndex) => {\n const linksWithPermissions = section.links.map(async (link, linkIndex) => ({\n hasPermission: (await checkUserHasPermission(link.permissions)).length > 0,\n sectionIndex,\n linkIndex,\n }));\n\n return [...acc, ...linksWithPermissions];\n }, [])\n );\n\n const menuPermissions = await buildMenuPermissions(sections);\n\n setData((prev) => {\n return {\n ...prev,\n isLoading: false,\n menu: sections.map((section, sectionIndex) => ({\n ...section,\n links: section.links.map((link, linkIndex) => {\n const permission = menuPermissions.find(\n (permission) =>\n permission.sectionIndex === sectionIndex && permission.linkIndex === linkIndex\n );\n\n return {\n ...link,\n isDisplayed: Boolean(permission?.hasPermission),\n };\n }),\n })),\n };\n });\n };\n\n const { global, ...otherSections } = settings;\n const sections = formatLinks([\n {\n ...global,\n links: sortBy([...global.links, ...globalLinks.map(addPermissions)], (link) => link.id).map(\n (link) => ({\n ...link,\n hasNotification: link.id === '000-application-infos' && shouldUpdateStrapi,\n })\n ),\n },\n {\n id: 'permissions',\n intlLabel: { id: 'Settings.permissions', defaultMessage: 'Administration Panel' },\n links: adminLinks.map(addPermissions),\n },\n ...Object.values(otherSections),\n ]);\n\n getData();\n }, [\n adminLinks,\n globalLinks,\n settings,\n shouldUpdateStrapi,\n addPermissions,\n checkUserHasPermission,\n ]);\n\n return {\n isLoading,\n menu: menu.map((menuItem) => ({\n ...menuItem,\n links: menuItem.links.filter((link) => link.isDisplayed),\n })),\n };\n};\n\nexport { useSettingsMenu };\nexport type { SettingsMenu };\n","import {\n SubNav,\n SubNavHeader,\n SubNavLink,\n SubNavSection,\n SubNavSections,\n} from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../../../features/Tracking';\nimport { SettingsMenu } from '../../../hooks/useSettingsMenu';\n\nconst CustomIcon = styled(Lightning)`\n right: 15px;\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n\n path {\n fill: ${({ theme }) => theme.colors.warning500};\n }\n`;\n\nconst Link = styled(SubNavLink)`\n &.active ${CustomIcon} {\n right: 13px;\n }\n`;\n\ninterface SettingsNavProps {\n menu: SettingsMenu;\n}\n\nconst SettingsNav = ({ menu }: SettingsNavProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n title: link.intlLabel,\n name: link.id,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav aria-label={label}>\n <SubNavHeader label={label} />\n <SubNavSections>\n {sections.map((section) => (\n <SubNavSection key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <Link\n tag={NavLink}\n withBullet={link.hasNotification}\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n position=\"relative\"\n >\n {formatMessage(link.intlLabel)}\n {link?.licenseOnly && <CustomIcon width=\"1.5rem\" height=\"1.5rem\" />}\n </Link>\n );\n })}\n </SubNavSection>\n ))}\n </SubNavSections>\n </SubNav>\n );\n};\n\nexport { SettingsNav };\nexport type { SettingsNavProps };\n","import { useIntl } from 'react-intl';\nimport { Navigate, Outlet, useMatch } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { useSettingsMenu } from '../../hooks/useSettingsMenu';\n\nimport { SettingsNav } from './components/SettingsNav';\n\nconst Layout = () => {\n /**\n * This ensures we're capturing the settingId from the URL\n * but also lets any nesting after that pass.\n */\n const match = useMatch('/settings/:settingId/*');\n const { formatMessage } = useIntl();\n const { isLoading, menu } = useSettingsMenu();\n\n // Since the useSettingsMenu hook can make API calls in order to check the links permissions\n // We need to add a loading state to prevent redirecting the user while permissions are being checked\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (!match?.params.settingId) {\n return <Navigate to=\"application-infos\" />;\n }\n\n return (\n <Layouts.Root sideNav={<SettingsNav menu={menu} />}>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <Outlet />\n </Layouts.Root>\n );\n};\n\nexport { Layout };\n"],"names":["ceLinks","sections","permission"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Layout-RKjEsOtu.js","sources":["../../admin/src/hooks/useSettingsMenu.ts","../../admin/src/pages/Settings/components/SettingsNav.tsx","../../admin/src/pages/Settings/Layout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport sortBy from 'lodash/sortBy';\nimport { useSelector } from 'react-redux';\n\nimport { SETTINGS_LINKS_CE, SettingsMenuLink } from '../constants';\nimport { useAppInfo } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { selectAdminPermissions } from '../selectors';\nimport { PermissionMap } from '../types/permissions';\n\nimport { useEnterprise } from './useEnterprise';\n\nimport type { StrapiAppSetting, StrapiAppSettingLink as IStrapiAppSettingLink } from '../StrapiApp';\n\nconst formatLinks = (menu: SettingsMenuSection[]): SettingsMenuSectionWithDisplayedLinks[] =>\n menu.map((menuSection) => {\n const formattedLinks = menuSection.links.map((link) => ({\n ...link,\n isDisplayed: false,\n }));\n\n return { ...menuSection, links: formattedLinks };\n });\n\ninterface SettingsMenuLinkWithPermissions extends SettingsMenuLink {\n permissions: IStrapiAppSettingLink['permissions'];\n hasNotification?: boolean;\n}\n\ninterface StrapiAppSettingsLink extends IStrapiAppSettingLink {\n licenseOnly?: never;\n hasNotification?: never;\n}\n\ninterface SettingsMenuSection extends Omit<StrapiAppSetting, 'links'> {\n links: Array<SettingsMenuLinkWithPermissions | StrapiAppSettingsLink>;\n}\n\ninterface SettingsMenuLinkWithPermissionsAndDisplayed extends SettingsMenuLinkWithPermissions {\n isDisplayed: boolean;\n}\n\ninterface StrapiAppSettingLinkWithDisplayed extends StrapiAppSettingsLink {\n isDisplayed: boolean;\n}\n\ninterface SettingsMenuSectionWithDisplayedLinks extends Omit<SettingsMenuSection, 'links'> {\n links: Array<SettingsMenuLinkWithPermissionsAndDisplayed | StrapiAppSettingLinkWithDisplayed>;\n}\n\ntype SettingsMenu = SettingsMenuSectionWithDisplayedLinks[];\n\nconst useSettingsMenu = (): {\n isLoading: boolean;\n menu: SettingsMenu;\n} => {\n const [{ isLoading, menu }, setData] = React.useState<{\n isLoading: boolean;\n menu: SettingsMenu;\n }>({\n isLoading: true,\n menu: [],\n });\n const checkUserHasPermission = useAuth(\n 'useSettingsMenu',\n (state) => state.checkUserHasPermissions\n );\n const shouldUpdateStrapi = useAppInfo('useSettingsMenu', (state) => state.shouldUpdateStrapi);\n const settings = useStrapiApp('useSettingsMenu', (state) => state.settings);\n const permissions = useSelector(selectAdminPermissions);\n\n /**\n * memoize the return value of this function to avoid re-computing it on every render\n * because it's used in an effect it ends up re-running recursively.\n */\n const ceLinks = React.useMemo(() => SETTINGS_LINKS_CE(), []);\n\n const { admin: adminLinks, global: globalLinks } = useEnterprise(\n ceLinks,\n async () => (await import('../../../ee/admin/src/constants')).SETTINGS_LINKS_EE(),\n {\n combine(ceLinks, eeLinks) {\n return {\n admin: [...eeLinks.admin, ...ceLinks.admin],\n global: [...ceLinks.global, ...eeLinks.global],\n };\n },\n defaultValue: {\n admin: [],\n global: [],\n },\n }\n );\n\n const addPermissions = React.useCallback(\n (link: SettingsMenuLink) => {\n if (!link.id) {\n throw new Error('The settings menu item must have an id attribute.');\n }\n\n return {\n ...link,\n permissions: permissions.settings?.[link.id as keyof PermissionMap['settings']]?.main ?? [],\n } satisfies SettingsMenuLinkWithPermissions;\n },\n [permissions.settings]\n );\n\n React.useEffect(() => {\n const getData = async () => {\n interface MenuLinkPermission {\n hasPermission: boolean;\n sectionIndex: number;\n linkIndex: number;\n }\n\n const buildMenuPermissions = (sections: SettingsMenuSectionWithDisplayedLinks[]) =>\n Promise.all(\n sections.reduce<Promise<MenuLinkPermission>[]>((acc, section, sectionIndex) => {\n const linksWithPermissions = section.links.map(async (link, linkIndex) => ({\n hasPermission: (await checkUserHasPermission(link.permissions)).length > 0,\n sectionIndex,\n linkIndex,\n }));\n\n return [...acc, ...linksWithPermissions];\n }, [])\n );\n\n const menuPermissions = await buildMenuPermissions(sections);\n\n setData((prev) => {\n return {\n ...prev,\n isLoading: false,\n menu: sections.map((section, sectionIndex) => ({\n ...section,\n links: section.links.map((link, linkIndex) => {\n const permission = menuPermissions.find(\n (permission) =>\n permission.sectionIndex === sectionIndex && permission.linkIndex === linkIndex\n );\n\n return {\n ...link,\n isDisplayed: Boolean(permission?.hasPermission),\n };\n }),\n })),\n };\n });\n };\n\n const { global, ...otherSections } = settings;\n const sections = formatLinks([\n {\n ...global,\n links: sortBy([...global.links, ...globalLinks.map(addPermissions)], (link) => link.id).map(\n (link) => ({\n ...link,\n hasNotification: link.id === '000-application-infos' && shouldUpdateStrapi,\n })\n ),\n },\n {\n id: 'permissions',\n intlLabel: { id: 'Settings.permissions', defaultMessage: 'Administration Panel' },\n links: adminLinks.map(addPermissions),\n },\n ...Object.values(otherSections),\n ]);\n\n getData();\n }, [\n adminLinks,\n globalLinks,\n settings,\n shouldUpdateStrapi,\n addPermissions,\n checkUserHasPermission,\n ]);\n\n return {\n isLoading,\n menu: menu.map((menuItem) => ({\n ...menuItem,\n links: menuItem.links.filter((link) => link.isDisplayed),\n })),\n };\n};\n\nexport { useSettingsMenu };\nexport type { SettingsMenu };\n","import {\n SubNav,\n SubNavHeader,\n SubNavLink,\n SubNavSection,\n SubNavSections,\n} from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../../../features/Tracking';\nimport { SettingsMenu } from '../../../hooks/useSettingsMenu';\n\nconst CustomIcon = styled(Lightning)`\n right: 15px;\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n\n path {\n fill: ${({ theme }) => theme.colors.warning500};\n }\n`;\n\nconst Link = styled(SubNavLink)`\n &.active ${CustomIcon} {\n right: 13px;\n }\n`;\n\ninterface SettingsNavProps {\n menu: SettingsMenu;\n}\n\nconst SettingsNav = ({ menu }: SettingsNavProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n title: link.intlLabel,\n name: link.id,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav aria-label={label}>\n <SubNavHeader label={label} />\n <SubNavSections>\n {sections.map((section) => (\n <SubNavSection key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <Link\n tag={NavLink}\n withBullet={link.hasNotification}\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n position=\"relative\"\n >\n {formatMessage(link.intlLabel)}\n {link?.licenseOnly && <CustomIcon width=\"1.5rem\" height=\"1.5rem\" />}\n </Link>\n );\n })}\n </SubNavSection>\n ))}\n </SubNavSections>\n </SubNav>\n );\n};\n\nexport { SettingsNav };\nexport type { SettingsNavProps };\n","import { useIntl } from 'react-intl';\nimport { Navigate, Outlet, useMatch } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { useSettingsMenu } from '../../hooks/useSettingsMenu';\n\nimport { SettingsNav } from './components/SettingsNav';\n\nconst Layout = () => {\n /**\n * This ensures we're capturing the settingId from the URL\n * but also lets any nesting after that pass.\n */\n const match = useMatch('/settings/:settingId/*');\n const { formatMessage } = useIntl();\n const { isLoading, menu } = useSettingsMenu();\n\n // Since the useSettingsMenu hook can make API calls in order to check the links permissions\n // We need to add a loading state to prevent redirecting the user while permissions are being checked\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (!match?.params.settingId) {\n return <Navigate to=\"application-infos\" />;\n }\n\n return (\n <Layouts.Root sideNav={<SettingsNav menu={menu} />}>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <Outlet />\n </Layouts.Root>\n );\n};\n\nexport { Layout };\n"],"names":["React","useAuth","useAppInfo","useStrapiApp","useSelector","selectAdminPermissions","SETTINGS_LINKS_CE","useEnterprise","ceLinks","sections","permission","sortBy","styled","Lightning","SubNavLink","useIntl","useTracking","useLocation","jsxs","SubNav","jsx","SubNavHeader","SubNavSections","SubNavSection","NavLink","useMatch","Page","Navigate","Layouts","Outlet"],"mappings":"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"}