@strapi/admin 4.15.1 → 4.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/dist/_chunks/{AuthenticatedApp-092ef2be.js → AuthenticatedApp-d1e28164.js} +30 -30
  2. package/dist/_chunks/{AuthenticatedApp-092ef2be.js.map → AuthenticatedApp-d1e28164.js.map} +1 -1
  3. package/dist/_chunks/{AuthenticatedApp-b0ada7e9.mjs → AuthenticatedApp-fd7e406d.mjs} +30 -30
  4. package/dist/_chunks/{AuthenticatedApp-b0ada7e9.mjs.map → AuthenticatedApp-fd7e406d.mjs.map} +1 -1
  5. package/dist/_chunks/{HomePage-5798ba6f.mjs → HomePage-2a7f678a.mjs} +7 -8
  6. package/dist/_chunks/{HomePage-5798ba6f.mjs.map → HomePage-2a7f678a.mjs.map} +1 -1
  7. package/dist/_chunks/{HomePage-5ae473e6.js → HomePage-2ac5c213.js} +7 -8
  8. package/dist/_chunks/{HomePage-5ae473e6.js.map → HomePage-2ac5c213.js.map} +1 -1
  9. package/dist/_chunks/{HomePage-bdcb51be.js → HomePage-616a2985.js} +12 -13
  10. package/dist/_chunks/HomePage-616a2985.js.map +1 -0
  11. package/dist/_chunks/{HomePage-a3cc32d2.mjs → HomePage-ded37c60.mjs} +12 -13
  12. package/dist/_chunks/HomePage-ded37c60.mjs.map +1 -0
  13. package/dist/_chunks/{InstalledPluginsPage-cc2d6a36.js → InstalledPluginsPage-189010c1.js} +10 -12
  14. package/dist/_chunks/{InstalledPluginsPage-cc2d6a36.js.map → InstalledPluginsPage-189010c1.js.map} +1 -1
  15. package/dist/_chunks/{InstalledPluginsPage-6284aaff.mjs → InstalledPluginsPage-afa9edc3.mjs} +10 -12
  16. package/dist/_chunks/{InstalledPluginsPage-6284aaff.mjs.map → InstalledPluginsPage-afa9edc3.mjs.map} +1 -1
  17. package/dist/_chunks/{index-305a03f4.mjs → Login-02ddabf7.mjs} +25 -29
  18. package/dist/_chunks/Login-02ddabf7.mjs.map +1 -0
  19. package/dist/_chunks/{index-137490ba.js → Login-28127829.js} +25 -30
  20. package/dist/_chunks/Login-28127829.js.map +1 -0
  21. package/dist/_chunks/{MarketplacePage-7dee72f5.mjs → MarketplacePage-40f76f3d.mjs} +6 -8
  22. package/dist/_chunks/{MarketplacePage-7dee72f5.mjs.map → MarketplacePage-40f76f3d.mjs.map} +1 -1
  23. package/dist/_chunks/{MarketplacePage-209ec658.js → MarketplacePage-946134e6.js} +6 -8
  24. package/dist/_chunks/{MarketplacePage-209ec658.js.map → MarketplacePage-946134e6.js.map} +1 -1
  25. package/dist/_chunks/{ProfilePage-26c14ba4.mjs → ProfilePage-4c94e332.mjs} +7 -9
  26. package/dist/_chunks/{ProfilePage-26c14ba4.mjs.map → ProfilePage-4c94e332.mjs.map} +1 -1
  27. package/dist/_chunks/{ProfilePage-4f8c127b.js → ProfilePage-6506e401.js} +7 -9
  28. package/dist/_chunks/{ProfilePage-4f8c127b.js.map → ProfilePage-6506e401.js.map} +1 -1
  29. package/dist/_chunks/{SSOProviders-1d062c95.mjs → SSOProviders-62bfad92.mjs} +29 -61
  30. package/dist/_chunks/SSOProviders-62bfad92.mjs.map +1 -0
  31. package/dist/_chunks/{SSOProviders-1ef0a89e.js → SSOProviders-b395a4e6.js} +28 -80
  32. package/dist/_chunks/SSOProviders-b395a4e6.js.map +1 -0
  33. package/dist/_chunks/{build-f36bfc97.js → build-55ba3e68.js} +4 -2
  34. package/dist/_chunks/{build-f36bfc97.js.map → build-55ba3e68.js.map} +1 -1
  35. package/dist/_chunks/{build-e1ca35da.mjs → build-b67ecc59.mjs} +4 -2
  36. package/dist/_chunks/{build-e1ca35da.mjs.map → build-b67ecc59.mjs.map} +1 -1
  37. package/dist/_chunks/{constants-70e05152.js → constants-42f4f7b3.js} +6 -6
  38. package/dist/_chunks/{constants-70e05152.js.map → constants-42f4f7b3.js.map} +1 -1
  39. package/dist/_chunks/{constants-921eda17.mjs → constants-6ecddc43.mjs} +43 -15
  40. package/dist/_chunks/constants-6ecddc43.mjs.map +1 -0
  41. package/dist/_chunks/{constants-727a113c.js → constants-733b0568.js} +26 -26
  42. package/dist/_chunks/constants-733b0568.js.map +1 -0
  43. package/dist/_chunks/{constants-86aa3e70.js → constants-7596f6f3.js} +60 -13
  44. package/dist/_chunks/constants-7596f6f3.js.map +1 -0
  45. package/dist/_chunks/{constants-32975b2e.js → constants-82e97fee.js} +11 -12
  46. package/dist/_chunks/{constants-32975b2e.js.map → constants-82e97fee.js.map} +1 -1
  47. package/dist/_chunks/{constants-90c20a6f.mjs → constants-952c50be.mjs} +11 -12
  48. package/dist/_chunks/{constants-90c20a6f.mjs.map → constants-952c50be.mjs.map} +1 -1
  49. package/dist/_chunks/{constants-9de7641c.mjs → constants-c0280aed.mjs} +28 -28
  50. package/dist/_chunks/constants-c0280aed.mjs.map +1 -0
  51. package/dist/_chunks/{constants-a773ff9b.js → constants-c9fce26f.js} +13 -12
  52. package/dist/_chunks/{constants-a773ff9b.js.map → constants-c9fce26f.js.map} +1 -1
  53. package/dist/_chunks/{constants-6157f648.mjs → constants-cbadfd36.mjs} +6 -6
  54. package/dist/_chunks/{constants-6157f648.mjs.map → constants-cbadfd36.mjs.map} +1 -1
  55. package/dist/_chunks/{constants-27319180.mjs → constants-cd1acf1b.mjs} +13 -12
  56. package/dist/_chunks/{constants-27319180.mjs.map → constants-cd1acf1b.mjs.map} +1 -1
  57. package/dist/_chunks/{develop-513c9644.js → develop-69e28e61.js} +4 -2
  58. package/dist/_chunks/{develop-513c9644.js.map → develop-69e28e61.js.map} +1 -1
  59. package/dist/_chunks/{develop-e45b460e.mjs → develop-d97e7494.mjs} +4 -2
  60. package/dist/_chunks/{develop-e45b460e.mjs.map → develop-d97e7494.mjs.map} +1 -1
  61. package/dist/_chunks/formatAPIErrors-b599cf27.js +20 -0
  62. package/dist/_chunks/formatAPIErrors-b599cf27.js.map +1 -0
  63. package/dist/_chunks/formatAPIErrors-db6ed675.mjs +21 -0
  64. package/dist/_chunks/formatAPIErrors-db6ed675.mjs.map +1 -0
  65. package/dist/_chunks/{index-af69bc98.mjs → index-01dfec54.mjs} +11 -11
  66. package/dist/_chunks/{index-af69bc98.mjs.map → index-01dfec54.mjs.map} +1 -1
  67. package/dist/_chunks/{index-fcd5bc14.mjs → index-0ed0c104.mjs} +14 -13
  68. package/dist/_chunks/{index-fcd5bc14.mjs.map → index-0ed0c104.mjs.map} +1 -1
  69. package/dist/_chunks/{index-1f1e2465.js → index-13a78498.js} +9 -11
  70. package/dist/_chunks/{index-1f1e2465.js.map → index-13a78498.js.map} +1 -1
  71. package/dist/_chunks/{index-6b9e3d60.js → index-150ec200.js} +9 -10
  72. package/dist/_chunks/{index-6b9e3d60.js.map → index-150ec200.js.map} +1 -1
  73. package/dist/_chunks/{index-b2257157.js → index-17acbe23.js} +49 -12
  74. package/dist/_chunks/index-17acbe23.js.map +1 -0
  75. package/dist/_chunks/{index-f5342ea5.js → index-17fbff58.js} +14 -13
  76. package/dist/_chunks/{index-f5342ea5.js.map → index-17fbff58.js.map} +1 -1
  77. package/dist/_chunks/{index-bb8093ea.mjs → index-18155022.mjs} +12 -12
  78. package/dist/_chunks/{index-bb8093ea.mjs.map → index-18155022.mjs.map} +1 -1
  79. package/dist/_chunks/{index-e22d1a84.mjs → index-22993544.mjs} +14 -13
  80. package/dist/_chunks/{index-e22d1a84.mjs.map → index-22993544.mjs.map} +1 -1
  81. package/dist/_chunks/{index-16030b74.js → index-2f4b78ee.js} +3 -3
  82. package/dist/_chunks/index-2f4b78ee.js.map +1 -0
  83. package/dist/_chunks/{index-35e4bad6.mjs → index-30933e3e.mjs} +8 -9
  84. package/dist/_chunks/{index-35e4bad6.mjs.map → index-30933e3e.mjs.map} +1 -1
  85. package/dist/_chunks/{index-928b18d2.mjs → index-31227291.mjs} +3 -3
  86. package/dist/_chunks/{index-928b18d2.mjs.map → index-31227291.mjs.map} +1 -1
  87. package/dist/_chunks/{index-24189ec9.js → index-3b888524.js} +6 -6
  88. package/dist/_chunks/{index-24189ec9.js.map → index-3b888524.js.map} +1 -1
  89. package/dist/_chunks/{index-5752584c.mjs → index-44360544.mjs} +182 -76
  90. package/dist/_chunks/index-44360544.mjs.map +1 -0
  91. package/dist/_chunks/{index-be2ca313.mjs → index-45ae7be1.mjs} +13 -13
  92. package/dist/_chunks/{index-be2ca313.mjs.map → index-45ae7be1.mjs.map} +1 -1
  93. package/dist/_chunks/{index-62b4b3fc.js → index-470a72bf.js} +11 -11
  94. package/dist/_chunks/{index-62b4b3fc.js.map → index-470a72bf.js.map} +1 -1
  95. package/dist/_chunks/{index-00202c8a.mjs → index-4a46c368.mjs} +13 -12
  96. package/dist/_chunks/{index-00202c8a.mjs.map → index-4a46c368.mjs.map} +1 -1
  97. package/dist/_chunks/{index-332f319e.mjs → index-52b70b56.mjs} +8 -10
  98. package/dist/_chunks/{index-332f319e.mjs.map → index-52b70b56.mjs.map} +1 -1
  99. package/dist/_chunks/{index-5ad8482b.mjs → index-55f9b6b3.mjs} +7 -7
  100. package/dist/_chunks/{index-5ad8482b.mjs.map → index-55f9b6b3.mjs.map} +1 -1
  101. package/dist/_chunks/{index-6cc54f3b.mjs → index-59e31a9f.mjs} +8 -9
  102. package/dist/_chunks/{index-6cc54f3b.mjs.map → index-59e31a9f.mjs.map} +1 -1
  103. package/dist/_chunks/{index-1e973c03.mjs → index-5df8a59e.mjs} +14 -13
  104. package/dist/_chunks/{index-1e973c03.mjs.map → index-5df8a59e.mjs.map} +1 -1
  105. package/dist/_chunks/{index-34de382e.mjs → index-60a57d31.mjs} +688 -824
  106. package/dist/_chunks/index-60a57d31.mjs.map +1 -0
  107. package/dist/_chunks/{index-77e0e5d7.js → index-62264743.js} +8 -7
  108. package/dist/_chunks/{index-77e0e5d7.js.map → index-62264743.js.map} +1 -1
  109. package/dist/_chunks/{index-4565fcbd.js → index-6931e33c.js} +3 -3
  110. package/dist/_chunks/{index-4565fcbd.js.map → index-6931e33c.js.map} +1 -1
  111. package/dist/_chunks/{index-3c58de6f.js → index-748f8264.js} +14 -13
  112. package/dist/_chunks/{index-3c58de6f.js.map → index-748f8264.js.map} +1 -1
  113. package/dist/_chunks/{index-bdfc1149.mjs → index-768b7de9.mjs} +49 -12
  114. package/dist/_chunks/index-768b7de9.mjs.map +1 -0
  115. package/dist/_chunks/{index-1763a04f.js → index-7739ddf5.js} +8 -9
  116. package/dist/_chunks/{index-1763a04f.js.map → index-7739ddf5.js.map} +1 -1
  117. package/dist/_chunks/{index-89d27faa.js → index-794eb0b6.js} +14 -13
  118. package/dist/_chunks/{index-89d27faa.js.map → index-794eb0b6.js.map} +1 -1
  119. package/dist/_chunks/{index-f448aed2.js → index-7e9cd960.js} +13 -12
  120. package/dist/_chunks/{index-f448aed2.js.map → index-7e9cd960.js.map} +1 -1
  121. package/dist/_chunks/{index-0af587c3.js → index-7f642760.js} +78 -147
  122. package/dist/_chunks/index-7f642760.js.map +1 -0
  123. package/dist/_chunks/{index-56ced4ab.mjs → index-853bd239.mjs} +8 -7
  124. package/dist/_chunks/{index-56ced4ab.mjs.map → index-853bd239.mjs.map} +1 -1
  125. package/dist/_chunks/{index-b98ea3ce.mjs → index-8a4d0275.mjs} +13 -14
  126. package/dist/_chunks/{index-b98ea3ce.mjs.map → index-8a4d0275.mjs.map} +1 -1
  127. package/dist/_chunks/{index-6dbc94a9.mjs → index-9c45bda7.mjs} +6 -6
  128. package/dist/_chunks/{index-6dbc94a9.mjs.map → index-9c45bda7.mjs.map} +1 -1
  129. package/dist/_chunks/{index-4c5acc70.js → index-9eb160a3.js} +9 -10
  130. package/dist/_chunks/{index-4c5acc70.js.map → index-9eb160a3.js.map} +1 -1
  131. package/dist/_chunks/{index-51a15b27.js → index-9f155b14.js} +4 -4
  132. package/dist/_chunks/{index-51a15b27.js.map → index-9f155b14.js.map} +1 -1
  133. package/dist/_chunks/{index-066ee02e.js → index-9f50c8b0.js} +8 -10
  134. package/dist/_chunks/{index-066ee02e.js.map → index-9f50c8b0.js.map} +1 -1
  135. package/dist/_chunks/{index-284c5926.js → index-9f900c47.js} +33 -47
  136. package/dist/_chunks/index-9f900c47.js.map +1 -0
  137. package/dist/_chunks/{index-5d8d89a7.js → index-a163001f.js} +13 -13
  138. package/dist/_chunks/{index-5d8d89a7.js.map → index-a163001f.js.map} +1 -1
  139. package/dist/_chunks/{index-34a2909e.mjs → index-a3176d19.mjs} +12 -12
  140. package/dist/_chunks/{index-34a2909e.mjs.map → index-a3176d19.mjs.map} +1 -1
  141. package/dist/_chunks/{index-ea23ee9f.mjs → index-a7d28c42.mjs} +9 -11
  142. package/dist/_chunks/{index-ea23ee9f.mjs.map → index-a7d28c42.mjs.map} +1 -1
  143. package/dist/_chunks/{index-a4348f3b.js → index-a8358156.js} +12 -12
  144. package/dist/_chunks/index-a8358156.js.map +1 -0
  145. package/dist/_chunks/{index-58db145d.mjs → index-a8d13f01.mjs} +3 -3
  146. package/dist/_chunks/{index-58db145d.mjs.map → index-a8d13f01.mjs.map} +1 -1
  147. package/dist/_chunks/{index-59d22949.mjs → index-b4cc14ad.mjs} +8 -9
  148. package/dist/_chunks/{index-59d22949.mjs.map → index-b4cc14ad.mjs.map} +1 -1
  149. package/dist/_chunks/{index-6a512cec.js → index-bad666f0.js} +8 -9
  150. package/dist/_chunks/{index-6a512cec.js.map → index-bad666f0.js.map} +1 -1
  151. package/dist/_chunks/{index-53ba81f9.mjs → index-bf788868.mjs} +9 -10
  152. package/dist/_chunks/{index-53ba81f9.mjs.map → index-bf788868.mjs.map} +1 -1
  153. package/dist/_chunks/{index-da04b144.js → index-bfb5b3ab.js} +14 -13
  154. package/dist/_chunks/{index-da04b144.js.map → index-bfb5b3ab.js.map} +1 -1
  155. package/dist/_chunks/{index-cadd3ee0.js → index-c0603138.js} +4 -4
  156. package/dist/_chunks/{index-cadd3ee0.js.map → index-c0603138.js.map} +1 -1
  157. package/dist/_chunks/{index-c604806d.js → index-c3761887.js} +12 -12
  158. package/dist/_chunks/{index-c604806d.js.map → index-c3761887.js.map} +1 -1
  159. package/dist/_chunks/{index-1da8c640.mjs → index-c4d3a07b.mjs} +9 -10
  160. package/dist/_chunks/{index-1da8c640.mjs.map → index-c4d3a07b.mjs.map} +1 -1
  161. package/dist/_chunks/{index-36e0d449.mjs → index-c7386be1.mjs} +32 -45
  162. package/dist/_chunks/index-c7386be1.mjs.map +1 -0
  163. package/dist/_chunks/{index-8d4d361d.mjs → index-cc7bedec.mjs} +13 -13
  164. package/dist/_chunks/{index-8d4d361d.mjs.map → index-cc7bedec.mjs.map} +1 -1
  165. package/dist/_chunks/{index-86dfbe3a.js → index-cce8ecb6.js} +178 -72
  166. package/dist/_chunks/index-cce8ecb6.js.map +1 -0
  167. package/dist/_chunks/{index-acd6d64f.js → index-cdadc366.js} +8 -7
  168. package/dist/_chunks/{index-acd6d64f.js.map → index-cdadc366.js.map} +1 -1
  169. package/dist/_chunks/{index-48322669.mjs → index-d81f74c4.mjs} +3 -3
  170. package/dist/_chunks/index-d81f74c4.mjs.map +1 -0
  171. package/dist/_chunks/{index-b81f7273.mjs → index-d93367d2.mjs} +78 -147
  172. package/dist/_chunks/index-d93367d2.mjs.map +1 -0
  173. package/dist/_chunks/{index-85069cac.mjs → index-dace55d9.mjs} +9 -10
  174. package/dist/_chunks/{index-85069cac.mjs.map → index-dace55d9.mjs.map} +1 -1
  175. package/dist/_chunks/{index-f179c7ea.js → index-db37fbe6.js} +13 -13
  176. package/dist/_chunks/{index-f179c7ea.js.map → index-db37fbe6.js.map} +1 -1
  177. package/dist/_chunks/{index-d1620260.js → index-dcb2c919.js} +13 -14
  178. package/dist/_chunks/{index-d1620260.js.map → index-dcb2c919.js.map} +1 -1
  179. package/dist/_chunks/{index-52b5db8a.js → index-dd3259f3.js} +8 -9
  180. package/dist/_chunks/{index-52b5db8a.js.map → index-dd3259f3.js.map} +1 -1
  181. package/dist/_chunks/{index-7d40adea.mjs → index-df42dfec.mjs} +8 -7
  182. package/dist/_chunks/{index-7d40adea.mjs.map → index-df42dfec.mjs.map} +1 -1
  183. package/dist/_chunks/{index-edc9bb0b.js → index-e2663a88.js} +673 -811
  184. package/dist/_chunks/index-e2663a88.js.map +1 -0
  185. package/dist/_chunks/{index-7aed99db.js → index-e2c5346d.js} +12 -12
  186. package/dist/_chunks/{index-7aed99db.js.map → index-e2c5346d.js.map} +1 -1
  187. package/dist/_chunks/{index-e414353b.js → index-e7381e58.js} +8 -8
  188. package/dist/_chunks/{index-e414353b.js.map → index-e7381e58.js.map} +1 -1
  189. package/dist/_chunks/{index-73ba6bdd.mjs → index-e8eff6c5.mjs} +3 -3
  190. package/dist/_chunks/{index-73ba6bdd.mjs.map → index-e8eff6c5.mjs.map} +1 -1
  191. package/dist/_chunks/{index-370a4ee8.mjs → index-f69d3930.mjs} +12 -12
  192. package/dist/_chunks/index-f69d3930.mjs.map +1 -0
  193. package/dist/_chunks/{index-8ea5a488.js → index-f9e95b10.js} +9 -10
  194. package/dist/_chunks/{index-8ea5a488.js.map → index-f9e95b10.js.map} +1 -1
  195. package/dist/_chunks/{index-1b7e986c.mjs → index-fe29b1fd.mjs} +14 -13
  196. package/dist/_chunks/{index-1b7e986c.mjs.map → index-fe29b1fd.mjs.map} +1 -1
  197. package/dist/_chunks/{schema-f49c76d7.js → schema-8eebfdf9.js} +2 -2
  198. package/dist/_chunks/{schema-f49c76d7.js.map → schema-8eebfdf9.js.map} +1 -1
  199. package/dist/_chunks/{schema-a95f2514.mjs → schema-ac25a47b.mjs} +2 -2
  200. package/dist/_chunks/{schema-a95f2514.mjs.map → schema-ac25a47b.mjs.map} +1 -1
  201. package/dist/_chunks/{validateWorkflow-d051b610.mjs → validateWorkflow-2511dc85.mjs} +3 -3
  202. package/dist/_chunks/{validateWorkflow-d051b610.mjs.map → validateWorkflow-2511dc85.mjs.map} +1 -1
  203. package/dist/_chunks/{validateWorkflow-e66d7d2e.js → validateWorkflow-c0f3148d.js} +3 -3
  204. package/dist/_chunks/{validateWorkflow-e66d7d2e.js.map → validateWorkflow-c0f3148d.js.map} +1 -1
  205. package/dist/admin/index.js +9 -10
  206. package/dist/admin/index.js.map +1 -1
  207. package/dist/admin/index.mjs +9 -10
  208. package/dist/admin/index.mjs.map +1 -1
  209. package/dist/admin/src/constants.d.ts +10 -0
  210. package/dist/admin/src/contexts/admin.d.ts +2 -2
  211. package/dist/admin/src/hooks/__mocks__/useSettingsMenu.d.ts +2 -0
  212. package/dist/admin/src/hooks/useEnterprise.d.ts +6 -4
  213. package/dist/admin/src/hooks/useSettingsMenu.d.ts +24 -0
  214. package/dist/admin/src/pages/Auth/AuthPage.d.ts +6 -0
  215. package/dist/admin/src/pages/Auth/components/FieldActionWrapper.d.ts +3 -0
  216. package/dist/admin/src/pages/Auth/components/ForgotPassword.d.ts +3 -0
  217. package/dist/admin/src/pages/Auth/components/ForgotPasswordSuccess.d.ts +2 -0
  218. package/dist/admin/src/pages/Auth/components/Login.d.ts +8 -0
  219. package/dist/admin/src/pages/Auth/components/Oops.d.ts +2 -0
  220. package/dist/admin/src/pages/Auth/components/Register.d.ts +7 -0
  221. package/dist/admin/src/pages/Auth/components/ResetPassword.d.ts +3 -0
  222. package/dist/admin/src/pages/Auth/constants.d.ts +14 -0
  223. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
  224. package/dist/admin/src/types/permissions.d.ts +10 -0
  225. package/dist/cli.js +3 -1
  226. package/dist/cli.js.map +1 -1
  227. package/dist/cli.mjs +3 -1
  228. package/dist/cli.mjs.map +1 -1
  229. package/dist/ee/admin/src/constants.d.ts +3 -1
  230. package/dist/ee/admin/src/pages/AuthPage/components/Login.d.ts +3 -0
  231. package/dist/ee/admin/src/pages/AuthPage/components/Providers.d.ts +2 -0
  232. package/dist/ee/admin/src/pages/AuthPage/components/SSOProviders.d.ts +8 -0
  233. package/dist/ee/admin/src/pages/AuthPage/constants.d.ts +3 -0
  234. package/dist/ee/admin/src/pages/AuthResponse.d.ts +2 -0
  235. package/dist/ee/admin/src/pages/HomePage.d.ts +1 -1
  236. package/dist/shared/contracts/authentication.d.ts +126 -0
  237. package/dist/shared/contracts/providers.d.ts +18 -0
  238. package/package.json +21 -21
  239. package/dist/_chunks/HomePage-a3cc32d2.mjs.map +0 -1
  240. package/dist/_chunks/HomePage-bdcb51be.js.map +0 -1
  241. package/dist/_chunks/SSOProviders-1d062c95.mjs.map +0 -1
  242. package/dist/_chunks/SSOProviders-1ef0a89e.js.map +0 -1
  243. package/dist/_chunks/constants-12dfb222.mjs +0 -34
  244. package/dist/_chunks/constants-12dfb222.mjs.map +0 -1
  245. package/dist/_chunks/constants-1aea1185.js +0 -34
  246. package/dist/_chunks/constants-1aea1185.js.map +0 -1
  247. package/dist/_chunks/constants-727a113c.js.map +0 -1
  248. package/dist/_chunks/constants-86aa3e70.js.map +0 -1
  249. package/dist/_chunks/constants-921eda17.mjs.map +0 -1
  250. package/dist/_chunks/constants-9de7641c.mjs.map +0 -1
  251. package/dist/_chunks/index-0af587c3.js.map +0 -1
  252. package/dist/_chunks/index-137490ba.js.map +0 -1
  253. package/dist/_chunks/index-16030b74.js.map +0 -1
  254. package/dist/_chunks/index-284c5926.js.map +0 -1
  255. package/dist/_chunks/index-305a03f4.mjs.map +0 -1
  256. package/dist/_chunks/index-34de382e.mjs.map +0 -1
  257. package/dist/_chunks/index-36e0d449.mjs.map +0 -1
  258. package/dist/_chunks/index-370a4ee8.mjs.map +0 -1
  259. package/dist/_chunks/index-48322669.mjs.map +0 -1
  260. package/dist/_chunks/index-5752584c.mjs.map +0 -1
  261. package/dist/_chunks/index-86dfbe3a.js.map +0 -1
  262. package/dist/_chunks/index-a4348f3b.js.map +0 -1
  263. package/dist/_chunks/index-b2257157.js.map +0 -1
  264. package/dist/_chunks/index-b81f7273.mjs.map +0 -1
  265. package/dist/_chunks/index-bdfc1149.mjs.map +0 -1
  266. package/dist/_chunks/index-edc9bb0b.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index-928b18d2.mjs","sources":["../../admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/LoadingView/index.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Box, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport LifeSpanInput from '../../../../../components/Tokens/LifeSpanInput';\nimport TokenDescription from '../../../../../components/Tokens/TokenDescription';\nimport TokenName from '../../../../../components/Tokens/TokenName';\nimport TokenTypeSelect from '../../../../../components/Tokens/TokenTypeSelect';\n\nconst FormTransferTokenContainer = ({\n errors,\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken,\n}) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem key=\"name\" col={6} xs={12}>\n <TokenName\n errors={errors}\n values={values}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"description\" col={6} xs={12}>\n <TokenDescription\n errors={errors}\n values={values}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"lifespan\" col={6} xs={12}>\n <LifeSpanInput\n isCreating={isCreating}\n errors={errors}\n values={values}\n onChange={onChange}\n token={transferToken}\n />\n </GridItem>\n <GridItem key=\"permissions\" col={6} xs={12}>\n <TokenTypeSelect\n name=\"permissions\"\n values={values}\n errors={errors}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n onChange={(value) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nFormTransferTokenContainer.propTypes = {\n errors: PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n lifespan: PropTypes.string,\n type: PropTypes.string,\n }),\n onChange: PropTypes.func.isRequired,\n canEditInputs: PropTypes.bool.isRequired,\n values: PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n lifespan: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n type: PropTypes.string,\n }).isRequired,\n isCreating: PropTypes.bool.isRequired,\n transferToken: PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n type: PropTypes.string,\n lifespan: PropTypes.string,\n name: PropTypes.string,\n accessKey: PropTypes.string,\n permissions: PropTypes.array,\n description: PropTypes.string,\n createdAt: PropTypes.string,\n }),\n};\n\nFormTransferTokenContainer.defaultProps = {\n errors: {},\n transferToken: {},\n};\n\nexport default FormTransferTokenContainer;\n","import React from 'react';\n\nimport { Button, ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LoadingIndicatorPage,\n SettingsPageTitle,\n useFocusWhenNavigate,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst LoadingView = ({ transferTokenName }) => {\n const { formatMessage } = useIntl();\n useFocusWhenNavigate();\n\n return (\n <Main aria-busy=\"true\">\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <HeaderLayout\n primaryAction={\n <Button disabled startIcon={<Check />} type=\"button\" size=\"L\">\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={\n transferTokenName ||\n formatMessage({\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'Create Transfer Token',\n })\n }\n />\n <ContentLayout>\n <LoadingIndicatorPage />\n </ContentLayout>\n </Main>\n );\n};\n\nLoadingView.defaultProps = {\n transferTokenName: null,\n};\n\nLoadingView.propTypes = {\n transferTokenName: PropTypes.string,\n};\n\nexport default LoadingView;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n name: yup.string(translatedErrors.string).max(100).required(translatedErrors.required),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required),\n permissions: yup.string(translatedErrors.string).required(translatedErrors.required),\n});\n\nexport default schema;\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport { ContentLayout, Flex, Main } from '@strapi/design-system';\nimport {\n Form,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { formatAPIErrors } from '../../../../../utils/formatAPIErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport FormHead from '../../../components/Tokens/FormHead';\nimport TokenBox from '../../../components/Tokens/TokenBox';\n\nimport FormTransferTokenContainer from './components/FormTransferTokenContainer';\nimport LoadingView from './components/LoadingView';\nimport { schema } from './utils';\n\nconst MSG_ERROR_NAME_TAKEN = 'Name already taken';\n\nconst TransferTokenCreateView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const history = useHistory();\n const [transferToken, setTransferToken] = useState(\n history.location.state?.transferToken.accessKey\n ? {\n ...history.location.state.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const trackUsageRef = useRef(trackUsage);\n const { setCurrentStep } = useGuidedTour();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions.settings['transfer-tokens']);\n const {\n params: { id },\n } = useRouteMatch('/settings/transfer-tokens/:id');\n const { get, post, put } = useFetchClient();\n\n const isCreating = id === 'create';\n\n const { formatAPIError } = useAPIErrorHandler();\n\n useEffect(() => {\n trackUsageRef.current(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating]);\n\n const { status } = useQuery(\n ['transfer-token', id],\n async () => {\n const {\n data: { data },\n } = await get(`/admin/transfer/tokens/${id}`);\n\n setTransferToken({\n ...data,\n });\n\n return data;\n },\n {\n enabled: !isCreating && !transferToken,\n onError(err) {\n if (err.response.data.error.details?.code === 'INVALID_TOKEN_SALT') {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.invalid.configuration',\n defaultMessage:\n 'You have an invalid configuration, check your server log for more information.',\n },\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n }\n },\n }\n );\n\n const handleSubmit = async (body, actions) => {\n trackUsageRef.current(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n lockApp();\n const lifespanVal =\n body.lifespan && parseInt(body.lifespan, 10) && body.lifespan !== '0'\n ? parseInt(body.lifespan, 10)\n : null;\n\n const permissions = body.permissions.split('-');\n\n try {\n const {\n data: { data: response },\n } = isCreating\n ? await post(`/admin/transfer/tokens`, {\n ...body,\n lifespan: lifespanVal,\n permissions,\n })\n : await put(`/admin/transfer/tokens/${id}`, {\n name: body.name,\n description: body.description,\n permissions,\n });\n\n unlockApp();\n\n if (isCreating) {\n history.replace(`/settings/transfer-tokens/${response.id}`, { transferToken: response });\n setCurrentStep('transferTokens.success');\n }\n setTransferToken({\n ...response,\n });\n\n toggleNotification({\n type: 'success',\n message: isCreating\n ? formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n })\n : formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsageRef.current(isCreating ? 'didCreateToken' : 'didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n } catch (err) {\n const errors = formatAPIErrors(err.response.data);\n actions.setErrors(errors);\n\n if (err?.response?.data?.error?.message === MSG_ERROR_NAME_TAKEN) {\n toggleNotification({\n type: 'warning',\n message: err.response.data.message || 'notification.error.tokennamenotunique',\n });\n } else if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.invalid.configuration',\n defaultMessage:\n 'You have an invalid configuration, check your server log for more information.',\n },\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: err?.response?.data?.message || 'notification.error',\n });\n }\n unlockApp();\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken && status !== 'success';\n\n if (isLoading) {\n return <LoadingView transferTokenName={transferToken?.name} />;\n }\n\n const handleErrorRegenerate = (err) => {\n if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.invalid.configuration',\n defaultMessage:\n 'You have an invalid configuration, check your server log for more information.',\n },\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n }\n };\n\n return (\n <Main>\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={{\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan\n ? transferToken.lifespan.toString()\n : transferToken?.lifespan,\n permissions: transferToken?.permissions.join('-'),\n }}\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n backUrl=\"/settings/transfer-tokens\"\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'Create Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n onErrorRegenerate={handleErrorRegenerate}\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {Boolean(transferToken?.name) && (\n <TokenBox token={transferToken?.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Main>\n );\n};\n\nexport default TransferTokenCreateView;\n"],"names":["permissions"],"mappings":"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"}
1
+ {"version":3,"file":"index-31227291.mjs","sources":["../../admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/LoadingView/index.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Box, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport LifeSpanInput from '../../../../../components/Tokens/LifeSpanInput';\nimport TokenDescription from '../../../../../components/Tokens/TokenDescription';\nimport TokenName from '../../../../../components/Tokens/TokenName';\nimport TokenTypeSelect from '../../../../../components/Tokens/TokenTypeSelect';\n\nconst FormTransferTokenContainer = ({\n errors,\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken,\n}) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem key=\"name\" col={6} xs={12}>\n <TokenName\n errors={errors}\n values={values}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"description\" col={6} xs={12}>\n <TokenDescription\n errors={errors}\n values={values}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"lifespan\" col={6} xs={12}>\n <LifeSpanInput\n isCreating={isCreating}\n errors={errors}\n values={values}\n onChange={onChange}\n token={transferToken}\n />\n </GridItem>\n <GridItem key=\"permissions\" col={6} xs={12}>\n <TokenTypeSelect\n name=\"permissions\"\n values={values}\n errors={errors}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n onChange={(value) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nFormTransferTokenContainer.propTypes = {\n errors: PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n lifespan: PropTypes.string,\n type: PropTypes.string,\n }),\n onChange: PropTypes.func.isRequired,\n canEditInputs: PropTypes.bool.isRequired,\n values: PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n lifespan: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n type: PropTypes.string,\n }).isRequired,\n isCreating: PropTypes.bool.isRequired,\n transferToken: PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n type: PropTypes.string,\n lifespan: PropTypes.string,\n name: PropTypes.string,\n accessKey: PropTypes.string,\n permissions: PropTypes.array,\n description: PropTypes.string,\n createdAt: PropTypes.string,\n }),\n};\n\nFormTransferTokenContainer.defaultProps = {\n errors: {},\n transferToken: {},\n};\n\nexport default FormTransferTokenContainer;\n","import React from 'react';\n\nimport { Button, ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LoadingIndicatorPage,\n SettingsPageTitle,\n useFocusWhenNavigate,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst LoadingView = ({ transferTokenName }) => {\n const { formatMessage } = useIntl();\n useFocusWhenNavigate();\n\n return (\n <Main aria-busy=\"true\">\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <HeaderLayout\n primaryAction={\n <Button disabled startIcon={<Check />} type=\"button\" size=\"L\">\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={\n transferTokenName ||\n formatMessage({\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'Create Transfer Token',\n })\n }\n />\n <ContentLayout>\n <LoadingIndicatorPage />\n </ContentLayout>\n </Main>\n );\n};\n\nLoadingView.defaultProps = {\n transferTokenName: null,\n};\n\nLoadingView.propTypes = {\n transferTokenName: PropTypes.string,\n};\n\nexport default LoadingView;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n name: yup.string(translatedErrors.string).max(100).required(translatedErrors.required),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required),\n permissions: yup.string(translatedErrors.string).required(translatedErrors.required),\n});\n\nexport default schema;\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport { ContentLayout, Flex, Main } from '@strapi/design-system';\nimport {\n Form,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { formatAPIErrors } from '../../../../../utils/formatAPIErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport FormHead from '../../../components/Tokens/FormHead';\nimport TokenBox from '../../../components/Tokens/TokenBox';\n\nimport FormTransferTokenContainer from './components/FormTransferTokenContainer';\nimport LoadingView from './components/LoadingView';\nimport { schema } from './utils';\n\nconst MSG_ERROR_NAME_TAKEN = 'Name already taken';\n\nconst TransferTokenCreateView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const history = useHistory();\n const [transferToken, setTransferToken] = useState(\n history.location.state?.transferToken.accessKey\n ? {\n ...history.location.state.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const trackUsageRef = useRef(trackUsage);\n const { setCurrentStep } = useGuidedTour();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions.settings['transfer-tokens']);\n const {\n params: { id },\n } = useRouteMatch('/settings/transfer-tokens/:id');\n const { get, post, put } = useFetchClient();\n\n const isCreating = id === 'create';\n\n const { formatAPIError } = useAPIErrorHandler();\n\n useEffect(() => {\n trackUsageRef.current(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating]);\n\n const { status } = useQuery(\n ['transfer-token', id],\n async () => {\n const {\n data: { data },\n } = await get(`/admin/transfer/tokens/${id}`);\n\n setTransferToken({\n ...data,\n });\n\n return data;\n },\n {\n enabled: !isCreating && !transferToken,\n onError(err) {\n if (err.response.data.error.details?.code === 'INVALID_TOKEN_SALT') {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.invalid.configuration',\n defaultMessage:\n 'You have an invalid configuration, check your server log for more information.',\n },\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n }\n },\n }\n );\n\n const handleSubmit = async (body, actions) => {\n trackUsageRef.current(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n lockApp();\n const lifespanVal =\n body.lifespan && parseInt(body.lifespan, 10) && body.lifespan !== '0'\n ? parseInt(body.lifespan, 10)\n : null;\n\n const permissions = body.permissions.split('-');\n\n try {\n const {\n data: { data: response },\n } = isCreating\n ? await post(`/admin/transfer/tokens`, {\n ...body,\n lifespan: lifespanVal,\n permissions,\n })\n : await put(`/admin/transfer/tokens/${id}`, {\n name: body.name,\n description: body.description,\n permissions,\n });\n\n unlockApp();\n\n if (isCreating) {\n history.replace(`/settings/transfer-tokens/${response.id}`, { transferToken: response });\n setCurrentStep('transferTokens.success');\n }\n setTransferToken({\n ...response,\n });\n\n toggleNotification({\n type: 'success',\n message: isCreating\n ? formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n })\n : formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsageRef.current(isCreating ? 'didCreateToken' : 'didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n } catch (err) {\n const errors = formatAPIErrors(err.response.data);\n actions.setErrors(errors);\n\n if (err?.response?.data?.error?.message === MSG_ERROR_NAME_TAKEN) {\n toggleNotification({\n type: 'warning',\n message: err.response.data.message || 'notification.error.tokennamenotunique',\n });\n } else if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.invalid.configuration',\n defaultMessage:\n 'You have an invalid configuration, check your server log for more information.',\n },\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: err?.response?.data?.message || 'notification.error',\n });\n }\n unlockApp();\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken && status !== 'success';\n\n if (isLoading) {\n return <LoadingView transferTokenName={transferToken?.name} />;\n }\n\n const handleErrorRegenerate = (err) => {\n if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.invalid.configuration',\n defaultMessage:\n 'You have an invalid configuration, check your server log for more information.',\n },\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n }\n };\n\n return (\n <Main>\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={{\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan\n ? transferToken.lifespan.toString()\n : transferToken?.lifespan,\n permissions: transferToken?.permissions.join('-'),\n }}\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n backUrl=\"/settings/transfer-tokens\"\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'Create Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n onErrorRegenerate={handleErrorRegenerate}\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {Boolean(transferToken?.name) && (\n <TokenBox token={transferToken?.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Main>\n );\n};\n\nexport default TransferTokenCreateView;\n"],"names":["permissions"],"mappings":";;;;;;;;;;;;;;;;;;AAWA,MAAM,6BAA6B,CAAC;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,kBAAkB;AAE1B,QAAM,cAAc;AAAA,IAClB;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,EAAA;AAIA,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,YAAW;AAAA,MACX,WAAS;AAAA,MACT,QAAO;AAAA,MACP,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MAEd,+BAAC,MAAK,EAAA,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UAAA;AAAA,QAAA,oBAAC,YAAW,EAAA,SAAQ,SAAQ,IAAG,MAC5B,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QACjB,CAAA,GACH;AAAA,QACA,qBAAC,MAAK,EAAA,KAAK,GACT,UAAA;AAAA,UAAA,oBAAC,UAAoB,EAAA,KAAK,GAAG,IAAI,IAC/B,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,eALU,MAOd;AAAA,UACC,oBAAA,UAAA,EAA2B,KAAK,GAAG,IAAI,IACtC,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,eALU,aAOd;AAAA,UACC,oBAAA,UAAA,EAAwB,KAAK,GAAG,IAAI,IACnC,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,OAAO;AAAA,YAAA;AAAA,eANG,UAQd;AAAA,UACC,oBAAA,UAAA,EAA2B,KAAK,GAAG,IAAI,IACtC,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL;AAAA,cACA;AAAA,cACA,OAAO;AAAA,gBACL,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAClB;AAAA,cACA,UAAU,CAAC,UAAU;AACnB,yBAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,SAAS;AAAA,cACrD;AAAA,cACA,SAAS;AAAA,cACT;AAAA,YAAA;AAAA,eAbU,aAed;AAAA,QAAA,GACF;AAAA,MAAA,GACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,2BAA2B,YAAY;AAAA,EACrC,QAAQ,UAAU,MAAM;AAAA,IACtB,MAAM,UAAU;AAAA,IAChB,aAAa,UAAU;AAAA,IACvB,UAAU,UAAU;AAAA,IACpB,MAAM,UAAU;AAAA,EAAA,CACjB;AAAA,EACD,UAAU,UAAU,KAAK;AAAA,EACzB,eAAe,UAAU,KAAK;AAAA,EAC9B,QAAQ,UAAU,MAAM;AAAA,IACtB,MAAM,UAAU;AAAA,IAChB,aAAa,UAAU;AAAA,IACvB,UAAU,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC;AAAA,IAClE,MAAM,UAAU;AAAA,EACjB,CAAA,EAAE;AAAA,EACH,YAAY,UAAU,KAAK;AAAA,EAC3B,eAAe,UAAU,MAAM;AAAA,IAC7B,IAAI,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC;AAAA,IAC5D,MAAM,UAAU;AAAA,IAChB,UAAU,UAAU;AAAA,IACpB,MAAM,UAAU;AAAA,IAChB,WAAW,UAAU;AAAA,IACrB,aAAa,UAAU;AAAA,IACvB,aAAa,UAAU;AAAA,IACvB,WAAW,UAAU;AAAA,EAAA,CACtB;AACH;AAEA,2BAA2B,eAAe;AAAA,EACxC,QAAQ,CAAC;AAAA,EACT,eAAe,CAAC;AAClB;ACjIA,MAAM,cAAc,CAAC,EAAE,wBAAwB;AACvC,QAAA,EAAE,kBAAkB;AACL;AAGnB,SAAA,qBAAC,MAAK,EAAA,aAAU,QACd,UAAA;AAAA,IAAC,oBAAA,mBAAA,EAAkB,MAAK,kBAAkB,CAAA;AAAA,IAC1C;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,mCACG,QAAO,EAAA,UAAQ,MAAC,WAAW,oBAAC,SAAM,GAAI,MAAK,UAAS,MAAK,KACvD,wBAAc,EAAE,IAAI,eAAe,gBAAgB,OAAQ,CAAA,GAC9D;AAAA,QAEF,OACE,qBACA,cAAc;AAAA,UACZ,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IAEL;AAAA,IACC,oBAAA,eAAA,EACC,UAAC,oBAAA,sBAAA,CAAqB,CAAA,GACxB;AAAA,EACF,EAAA,CAAA;AAEJ;AAEA,YAAY,eAAe;AAAA,EACzB,mBAAmB;AACrB;AAEA,YAAY,YAAY;AAAA,EACtB,mBAAmB,UAAU;AAC/B;AC3CA,MAAM,SAAS,IAAI,OAAO,EAAE,MAAM;AAAA,EAChC,MAAM,IAAI,OAAO,iBAAiB,MAAM,EAAE,IAAI,GAAG,EAAE,SAAS,iBAAiB,QAAQ;AAAA,EACrF,aAAa,IAAI,OAAO,EAAE,SAAS;AAAA,EACnC,UAAU,IAAI,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,SAAW,EAAA,QAAQ,iBAAiB,QAAQ;AAAA,EACpF,aAAa,IAAI,OAAO,iBAAiB,MAAM,EAAE,SAAS,iBAAiB,QAAQ;AACrF,CAAC;ACuBD,MAAM,uBAAuB;AAE7B,MAAM,0BAA0B,MAAM;AACf;AACf,QAAA,EAAE,kBAAkB;AAC1B,QAAM,EAAE,SAAS,UAAU,IAAI,kBAAkB;AACjD,QAAM,qBAAqB;AAC3B,QAAM,UAAU;AACV,QAAA,CAAC,eAAe,gBAAgB,IAAI;AAAA,IACxC,QAAQ,SAAS,OAAO,cAAc,YAClC;AAAA,MACE,GAAG,QAAQ,SAAS,MAAM;AAAA,IAAA,IAE5B;AAAA,EAAA;AAEA,QAAA,EAAE,eAAe;AACjB,QAAA,gBAAgB,OAAO,UAAU;AACjC,QAAA,EAAE,mBAAmB;AACrB,QAAA,cAAc,YAAY,sBAAsB;AAChD,QAAA;AAAA,IACJ,gBAAgB,EAAE,WAAW,WAAW,cAAc;AAAA,EACpD,IAAA,QAAQ,YAAY,SAAS,iBAAiB,CAAC;AAC7C,QAAA;AAAA,IACJ,QAAQ,EAAE,GAAG;AAAA,EAAA,IACX,cAAc,+BAA+B;AACjD,QAAM,EAAE,KAAK,MAAM,QAAQ,eAAe;AAE1C,QAAM,aAAa,OAAO;AAEpB,QAAA,EAAE,mBAAmB;AAE3B,YAAU,MAAM;AACA,kBAAA,QAAQ,aAAa,wBAAwB,wBAAwB;AAAA,MACjF,WAAW;AAAA,IAAA,CACZ;AAAA,EAAA,GACA,CAAC,UAAU,CAAC;AAET,QAAA,EAAE,WAAW;AAAA,IACjB,CAAC,kBAAkB,EAAE;AAAA,IACrB,YAAY;AACJ,YAAA;AAAA,QACJ,MAAM,EAAE,KAAK;AAAA,MACX,IAAA,MAAM,IAAI,0BAA0B,EAAE,EAAE;AAE3B,uBAAA;AAAA,QACf,GAAG;AAAA,MAAA,CACJ;AAEM,aAAA;AAAA,IACT;AAAA,IACA;AAAA,MACE,SAAS,CAAC,cAAc,CAAC;AAAA,MACzB,QAAQ,KAAK;AACX,YAAI,IAAI,SAAS,KAAK,MAAM,SAAS,SAAS,sBAAsB;AAC/C,6BAAA;AAAA,YACjB,MAAM;AAAA,YACN,SAAS;AAAA,cACP,IAAI;AAAA,cACJ,gBACE;AAAA,YACJ;AAAA,UAAA,CACD;AAAA,QAAA,OACI;AACc,6BAAA;AAAA,YACjB,MAAM;AAAA,YACN,SAAS,eAAe,GAAG;AAAA,UAAA,CAC5B;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EAAA;AAGI,QAAA,eAAe,OAAO,MAAM,YAAY;AAC9B,kBAAA,QAAQ,aAAa,oBAAoB,iBAAiB;AAAA,MACtE,WAAW;AAAA,IAAA,CACZ;AACO;AACR,UAAM,cACJ,KAAK,YAAY,SAAS,KAAK,UAAU,EAAE,KAAK,KAAK,aAAa,MAC9D,SAAS,KAAK,UAAU,EAAE,IAC1B;AAEN,UAAMA,eAAc,KAAK,YAAY,MAAM,GAAG;AAE1C,QAAA;AACI,YAAA;AAAA,QACJ,MAAM,EAAE,MAAM,SAAS;AAAA,MACrB,IAAA,aACA,MAAM,KAAK,0BAA0B;AAAA,QACnC,GAAG;AAAA,QACH,UAAU;AAAA,QACV,aAAAA;AAAAA,MACD,CAAA,IACD,MAAM,IAAI,0BAA0B,EAAE,IAAI;AAAA,QACxC,MAAM,KAAK;AAAA,QACX,aAAa,KAAK;AAAA,QAClB,aAAAA;AAAAA,MAAA,CACD;AAEK;AAEV,UAAI,YAAY;AACN,gBAAA,QAAQ,6BAA6B,SAAS,EAAE,IAAI,EAAE,eAAe,UAAU;AACvF,uBAAe,wBAAwB;AAAA,MACzC;AACiB,uBAAA;AAAA,QACf,GAAG;AAAA,MAAA,CACJ;AAEkB,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,aACL,cAAc;AAAA,UACZ,IAAI;AAAA,UACJ,gBAAgB;AAAA,QACjB,CAAA,IACD,cAAc;AAAA,UACZ,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA,CACN;AAEa,oBAAA,QAAQ,aAAa,mBAAmB,gBAAgB;AAAA,QACpE,MAAM,eAAe;AAAA,QACrB,WAAW;AAAA,MAAA,CACZ;AAAA,aACM,KAAK;AACZ,YAAM,SAAS,gBAAgB,IAAI,SAAS,IAAI;AAChD,cAAQ,UAAU,MAAM;AAExB,UAAI,KAAK,UAAU,MAAM,OAAO,YAAY,sBAAsB;AAC7C,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,IAAI,SAAS,KAAK,WAAW;AAAA,QAAA,CACvC;AAAA,MAAA,WACQ,KAAK,UAAU,MAAM,OAAO,SAAS,SAAS,sBAAsB;AAC1D,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS;AAAA,YACP,IAAI;AAAA,YACJ,gBACE;AAAA,UACJ;AAAA,QAAA,CACD;AAAA,MAAA,OACI;AACc,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,KAAK,UAAU,MAAM,WAAW;AAAA,QAAA,CAC1C;AAAA,MACH;AACU;IACZ;AAAA,EAAA;AAGF,QAAM,gBAAiB,aAAa,CAAC,cAAgB,aAAa;AAClE,QAAM,YAAY,CAAC,cAAc,CAAC,iBAAiB,WAAW;AAE9D,MAAI,WAAW;AACb,WAAQ,oBAAA,aAAA,EAAY,mBAAmB,eAAe,KAAM,CAAA;AAAA,EAC9D;AAEM,QAAA,wBAAwB,CAAC,QAAQ;AACrC,QAAI,KAAK,UAAU,MAAM,OAAO,SAAS,SAAS,sBAAsB;AACnD,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS;AAAA,UACP,IAAI;AAAA,UACJ,gBACE;AAAA,QACJ;AAAA,MAAA,CACD;AAAA,IAAA,OACI;AACc,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,eAAe,GAAG;AAAA,MAAA,CAC5B;AAAA,IACH;AAAA,EAAA;AAGF,8BACG,MACC,EAAA,UAAA;AAAA,IAAC,oBAAA,mBAAA,EAAkB,MAAK,kBAAkB,CAAA;AAAA,IAC1C;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,eAAe;AAAA,UACb,MAAM,eAAe,QAAQ;AAAA,UAC7B,aAAa,eAAe,eAAe;AAAA,UAC3C,UAAU,eAAe,WACrB,cAAc,SAAS,SAAA,IACvB,eAAe;AAAA,UACnB,aAAa,eAAe,YAAY,KAAK,GAAG;AAAA,QAClD;AAAA,QACA,oBAAkB;AAAA,QAClB,UAAU,CAAC,MAAM,YAAY,aAAa,MAAM,OAAO;AAAA,QAEtD,WAAC,EAAE,QAAQ,cAAc,cAAc,aAAa;AACnD,sCACG,MACC,EAAA,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,OAAO;AAAA,kBACL,IAAI;AAAA,kBACJ,gBAAgB;AAAA,gBAClB;AAAA,gBACA,OAAO;AAAA,gBACP,UAAU;AAAA,gBACV;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,eAAc;AAAA,gBACd,mBAAmB;AAAA,cAAA;AAAA,YACrB;AAAA,YACA,oBAAC,iBACC,UAAC,qBAAA,MAAA,EAAK,WAAU,UAAS,YAAW,WAAU,KAAK,GAChD,UAAA;AAAA,cAAQ,QAAA,eAAe,IAAI,KAC1B,oBAAC,YAAS,OAAO,eAAe,WAAW,WAAW,oBAAqB,CAAA;AAAA,cAE7E;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC;AAAA,kBACA,UAAU;AAAA,kBACV;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA,EAAA,CACF,EACF,CAAA;AAAA,UACF,EAAA,CAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -2,7 +2,7 @@
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const helperPlugin = require("@strapi/helper-plugin");
4
4
  const reactRedux = require("react-redux");
5
- const AuthenticatedApp = require("./AuthenticatedApp-092ef2be.js");
5
+ const AuthenticatedApp = require("./AuthenticatedApp-d1e28164.js");
6
6
  const React = require("react");
7
7
  const designSystem = require("@strapi/design-system");
8
8
  const qs = require("qs");
@@ -10,13 +10,13 @@ const reactIntl = require("react-intl");
10
10
  const reactQuery = require("react-query");
11
11
  const reactRouterDom = require("react-router-dom");
12
12
  const useAdminUsers = require("./useAdminUsers-05d6b26a.js");
13
- const index$1 = require("./index-edc9bb0b.js");
13
+ const index$1 = require("./index-e2663a88.js");
14
14
  const index$3 = require("./index-88298941.js");
15
15
  const Icons = require("@strapi/icons");
16
16
  const PropTypes = require("prop-types");
17
17
  const v2 = require("@strapi/design-system/v2");
18
18
  const formik = require("formik");
19
- const index$2 = require("./index-16030b74.js");
19
+ const index$2 = require("./index-2f4b78ee.js");
20
20
  const yup = require("yup");
21
21
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
22
22
  function _interopNamespace(e) {
@@ -264,7 +264,7 @@ const ModalForm = ({ onSuccess, onToggle }) => {
264
264
  );
265
265
  const MagicLink = index$1.useEnterprise(
266
266
  index$2.MagicLinkCE,
267
- async () => (await Promise.resolve().then(() => require("./index-a4348f3b.js"))).MagicLinkEE
267
+ async () => (await Promise.resolve().then(() => require("./index-a8358156.js"))).MagicLinkEE
268
268
  );
269
269
  const postMutation = reactQuery.useMutation(
270
270
  (body) => {
@@ -676,7 +676,7 @@ const UsersListPageSwitch = () => {
676
676
  UserListPageCE,
677
677
  async () => (
678
678
  // eslint-disable-next-line import/no-cycle
679
- (await Promise.resolve().then(() => require("./index-d1620260.js"))).UserListPageEE
679
+ (await Promise.resolve().then(() => require("./index-dcb2c919.js"))).UserListPageEE
680
680
  )
681
681
  );
682
682
  if (!UsersListPage) {
@@ -694,4 +694,4 @@ const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
694
694
  }, Symbol.toStringTag, { value: "Module" }));
695
695
  exports.UserListPageCE = UserListPageCE;
696
696
  exports.index = index;
697
- //# sourceMappingURL=index-24189ec9.js.map
697
+ //# sourceMappingURL=index-3b888524.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-24189ec9.js","sources":["../../admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/displayedFilters.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/index.js","../../admin/src/pages/SettingsPage/pages/Users/ProtectedListPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Button } from '@strapi/design-system';\nimport { Envelop } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nexport const CreateActionCE = ({ onClick }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button onClick={onClick} startIcon={<Envelop />} size=\"S\">\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n};\n\nCreateActionCE.propTypes = {\n onClick: PropTypes.func.isRequired,\n};\n","import React from 'react';\n\nimport {\n BaseCheckbox,\n Box,\n Flex,\n IconButton,\n Tbody,\n Td,\n Tr,\n Typography,\n} from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { getFullName } from '../../../../../../../utils/getFullName';\n\nconst TableRows = ({\n canDelete,\n headers,\n entriesToDelete,\n onClickDelete,\n onSelectRow,\n withMainAction,\n withBulkActions,\n rows,\n}) => {\n const {\n push,\n location: { pathname },\n } = useHistory();\n const { formatMessage } = useIntl();\n\n return (\n <Tbody>\n {rows.map((data) => {\n const isChecked = entriesToDelete.findIndex((id) => id === data.id) !== -1;\n\n return (\n <Tr\n key={data.id}\n {...onRowClick({\n fn: () => push(`${pathname}/${data.id}`),\n condition: withBulkActions,\n })}\n >\n {withMainAction && (\n <Td {...stopPropagation}>\n <BaseCheckbox\n aria-label={formatMessage(\n {\n id: 'app.component.table.select.one-entry',\n defaultMessage: `Select {target}`,\n },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n checked={isChecked}\n onChange={() => {\n onSelectRow({ name: data.id, value: !isChecked });\n }}\n />\n </Td>\n )}\n {headers.map(({ key, cellFormatter, name, ...rest }) => {\n return (\n <Td key={key}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(data, { key, name, formatMessage, ...rest })\n ) : (\n <Typography textColor=\"neutral800\">{data[name] || '-'}</Typography>\n )}\n </Td>\n );\n })}\n\n {withBulkActions && (\n <Td>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => push(`${pathname}/${data.id}`)}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Pencil />}\n />\n\n {canDelete && (\n <Box paddingLeft={1} {...stopPropagation}>\n <IconButton\n onClick={() => onClickDelete(data.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Trash />}\n />\n </Box>\n )}\n </Flex>\n </Td>\n )}\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n\nTableRows.defaultProps = {\n canDelete: false,\n entriesToDelete: [],\n onClickDelete() {},\n onSelectRow() {},\n rows: [],\n withBulkActions: false,\n withMainAction: false,\n};\n\nTableRows.propTypes = {\n canDelete: PropTypes.bool,\n entriesToDelete: PropTypes.array,\n headers: PropTypes.array.isRequired,\n onClickDelete: PropTypes.func,\n onSelectRow: PropTypes.func,\n rows: PropTypes.array,\n withBulkActions: PropTypes.bool,\n withMainAction: PropTypes.bool,\n};\n\nexport default TableRows;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nexport const FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nexport const ROLE_LAYOUT = [];\n\nexport const FORM_LAYOUT = [\n [\n {\n intlLabel: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n {\n intlLabel: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n [\n {\n intlLabel: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n ],\n];\n\nexport const FORM_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required(translatedErrors.required),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).required(translatedErrors.required),\n roles: yup.array().min(1, translatedErrors.required).required(translatedErrors.required),\n});\n\nexport const STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n};\n","import React, { useState } from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport {\n Form,\n GenericInput,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport { Formik } from 'formik';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { useEnterprise } from '../../../../../../hooks/useEnterprise';\nimport { MagicLinkCE } from '../../components/MagicLink';\nimport SelectRoles from '../../components/SelectRoles';\n\nimport { FORM_LAYOUT, FORM_SCHEMA, FORM_INITIAL_VALUES, ROLE_LAYOUT, STEPPER } from './constants';\n\nconst ModalForm = ({ onSuccess, onToggle }) => {\n const [currentStep, setStep] = useState('create');\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [registrationToken, setRegistrationToken] = useState(null);\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { post } = useFetchClient();\n const roleLayout = useEnterprise(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, eeRoles];\n },\n\n defaultValue: [],\n }\n );\n const initialValues = useEnterprise(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLink'\n )\n ).MagicLinkEE\n );\n const postMutation = useMutation(\n (body) => {\n return post('/admin/users', body);\n },\n {\n async onSuccess({ data }) {\n setRegistrationToken(data.data.registrationToken);\n\n await onSuccess();\n\n goNext();\n setIsSubmitting(false);\n },\n onError(err) {\n setIsSubmitting(false);\n\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n\n throw err;\n },\n onSettled() {\n unlockApp();\n },\n }\n );\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body, { setErrors }) => {\n lockApp();\n setIsSubmitting(true);\n try {\n await postMutation.mutateAsync(body);\n } catch (err) {\n unlockApp();\n\n if (err?.response?.data?.error.message === 'Email already taken') {\n setErrors({ email: err.response.data.error.message });\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n const endActions =\n currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n );\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <ModalLayout onClose={onToggle} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <Formik\n enableReinitialize\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n validateOnChange={false}\n >\n {({ errors, handleChange, values }) => {\n return (\n <Form>\n <ModalBody>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && <MagicLink registrationToken={registrationToken} />}\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\n error={errors[input.name]}\n onChange={handleChange}\n value={values[input.name]}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles\n disabled={isDisabled}\n error={errors.roles}\n onChange={handleChange}\n value={values.roles}\n />\n </GridItem>\n {roleLayout.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\n onChange={handleChange}\n value={values[input.name]}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Box>\n </Box>\n </Flex>\n </ModalBody>\n <ModalFooter\n startActions={\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n }\n endActions={endActions}\n />\n </Form>\n );\n }}\n </Formik>\n </ModalLayout>\n );\n};\n\nModalForm.propTypes = {\n onToggle: PropTypes.func.isRequired,\n onSuccess: PropTypes.func.isRequired,\n};\n\nexport default ModalForm;\n","import React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nconst PaginationFooter = ({ pagination }) => {\n return (\n <Box paddingTop={4}>\n <Flex alignItems=\"flex-end\" justifyContent=\"space-between\">\n <PageSizeURLQuery />\n <PaginationURLQuery pagination={pagination} />\n </Flex>\n </Box>\n );\n};\n\nPaginationFooter.defaultProps = {\n pagination: {\n pageCount: 0,\n pageSize: 10,\n total: 0,\n },\n};\n\nPaginationFooter.propTypes = {\n pagination: PropTypes.shape({\n page: PropTypes.number,\n pageCount: PropTypes.number,\n pageSize: PropTypes.number,\n total: PropTypes.number,\n }),\n};\n\nexport default PaginationFooter;\n","const displayedFilters = [\n {\n name: 'firstname',\n metadatas: { label: 'Firstname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'lastname',\n metadatas: { label: 'Lastname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'email',\n metadatas: { label: 'Email' },\n fieldSchema: { type: 'email' },\n },\n {\n name: 'username',\n metadatas: { label: 'Username' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'isActive',\n metadatas: { label: 'Active user' },\n fieldSchema: { type: 'boolean' },\n },\n];\n\nexport default displayedFilters;\n","import React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport { Status } from '@strapi/helper-plugin';\n\nconst tableHeaders = [\n {\n name: 'firstname',\n key: 'firstname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n },\n {\n name: 'lastname',\n key: 'lastname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n },\n {\n key: 'email',\n name: 'email',\n metadatas: {\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n },\n {\n key: 'roles',\n name: 'roles',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n },\n cellFormatter({ roles }, { formatMessage }) {\n return (\n <Typography textColor=\"neutral800\">\n {roles\n .map((role) =>\n formatMessage({\n id: `Settings.permissions.users.${role.code}`,\n defaultMessage: role.name,\n })\n )\n .join(',\\n')}\n </Typography>\n );\n },\n },\n {\n key: 'username',\n name: 'username',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n },\n {\n key: 'isActive',\n name: 'isActive',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n },\n cellFormatter({ isActive }, { formatMessage }) {\n return (\n <Flex>\n <Status isActive={isActive} variant={isActive ? 'success' : 'danger'} />\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: isActive\n ? 'Settings.permissions.users.active'\n : 'Settings.permissions.users.inactive',\n defaultMessage: isActive ? 'Active' : 'Inactive',\n })}\n </Typography>\n </Flex>\n );\n },\n },\n];\n\nexport default tableHeaders;\n","import React, { useState } from 'react';\n\nimport { ActionLayout, ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n DynamicTable,\n NoPermissions,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../hooks/useAdminUsers';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport Filters from '../../../components/Filters';\n\nimport { CreateActionCE } from './CreateAction';\nimport TableRows from './DynamicTable/TableRows';\nimport ModalForm from './ModalForm';\nimport PaginationFooter from './PaginationFooter';\nimport displayedFilters from './utils/displayedFilters';\nimport tableHeaders from './utils/tableHeaders';\n\nconst EE_LICENSE_LIMIT_QUERY_KEY = ['ee', 'license-limit-info'];\n\nexport const UserListPageCE = () => {\n const { post } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = useState(false);\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings.users);\n const queryClient = useQueryClient();\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n useFocusWhenNavigate();\n const {\n users,\n pagination,\n isError,\n isLoading,\n refetch: refetchAdminUsers,\n } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }), {\n cacheTime: 0,\n enabled: canRead,\n });\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction'\n )\n ).CreateActionEE\n );\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const deleteAllMutation = useMutation(\n async (ids) => {\n await post('/admin/users/batch-delete', { ids });\n },\n {\n async onSuccess() {\n await refetchAdminUsers();\n\n // Toggle enabled/ disabled state on the invite button\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n },\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n message: formatAPIError(error),\n defaultMessage: 'An error occured',\n },\n });\n },\n }\n );\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Users\" />\n <HeaderLayout\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n {canRead && (\n <ActionLayout\n startActions={\n <>\n <SearchURLQuery\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters displayedFilters={displayedFilters} />\n </>\n }\n />\n )}\n\n <ContentLayout canRead={canRead}>\n {!canRead && <NoPermissions />}\n {/* TODO: Replace error message with something better */}\n {isError && <div>TODO: An error occurred</div>}\n {canRead && (\n <>\n <DynamicTable\n contentType=\"Users\"\n isLoading={isLoading}\n onConfirmDeleteAll={deleteAllMutation.mutateAsync}\n onConfirmDelete={(id) => deleteAllMutation.mutateAsync([id])}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n >\n <TableRows\n canDelete={canDelete}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n />\n </DynamicTable>\n\n {pagination && <PaginationFooter pagination={pagination} />}\n </>\n )}\n </ContentLayout>\n {isModalOpened && (\n <ModalForm\n onSuccess={async () => {\n await refetchAdminUsers();\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n }}\n onToggle={handleToggle}\n />\n )}\n </Main>\n );\n};\n\n// component which determines whether this page should render the CE or EE page\nconst UsersListPageSwitch = () => {\n const UsersListPage = useEnterprise(\n UserListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\nexport default UsersListPageSwitch;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListPage from '../ListPage';\n\nconst ProtectedListPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.users.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["useIntl","jsx","Button","Envelop","PropTypes","useHistory","Tbody","jsxs","Tr","onRowClick","Td","stopPropagation","BaseCheckbox","getFullName","Typography","Flex","IconButton","Pencil","Box","Trash","yup","translatedErrors","useState","useNotification","useOverlayBlocker","useFetchClient","useEnterprise","MagicLinkCE","useMutation","ModalLayout","ModalHeader","Breadcrumbs","Crumb","Formik","Form","ModalBody","Grid","GridItem","GenericInput","SelectRoles","ModalFooter","PageSizeURLQuery","PaginationURLQuery","Status","useAPIErrorHandler","useSelector","selectAdminPermissions","useRBAC","useQueryClient","useLocation","useFocusWhenNavigate","useAdminUsers","qs","Main","SettingsPageTitle","HeaderLayout","ActionLayout","Fragment","SearchURLQuery","Filters","ContentLayout","NoPermissions","DynamicTable","CheckPagePermissions","ListPage"],"mappings":"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"}
1
+ {"version":3,"file":"index-3b888524.js","sources":["../../admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/displayedFilters.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/index.js","../../admin/src/pages/SettingsPage/pages/Users/ProtectedListPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Button } from '@strapi/design-system';\nimport { Envelop } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nexport const CreateActionCE = ({ onClick }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button onClick={onClick} startIcon={<Envelop />} size=\"S\">\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n};\n\nCreateActionCE.propTypes = {\n onClick: PropTypes.func.isRequired,\n};\n","import React from 'react';\n\nimport {\n BaseCheckbox,\n Box,\n Flex,\n IconButton,\n Tbody,\n Td,\n Tr,\n Typography,\n} from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { getFullName } from '../../../../../../../utils/getFullName';\n\nconst TableRows = ({\n canDelete,\n headers,\n entriesToDelete,\n onClickDelete,\n onSelectRow,\n withMainAction,\n withBulkActions,\n rows,\n}) => {\n const {\n push,\n location: { pathname },\n } = useHistory();\n const { formatMessage } = useIntl();\n\n return (\n <Tbody>\n {rows.map((data) => {\n const isChecked = entriesToDelete.findIndex((id) => id === data.id) !== -1;\n\n return (\n <Tr\n key={data.id}\n {...onRowClick({\n fn: () => push(`${pathname}/${data.id}`),\n condition: withBulkActions,\n })}\n >\n {withMainAction && (\n <Td {...stopPropagation}>\n <BaseCheckbox\n aria-label={formatMessage(\n {\n id: 'app.component.table.select.one-entry',\n defaultMessage: `Select {target}`,\n },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n checked={isChecked}\n onChange={() => {\n onSelectRow({ name: data.id, value: !isChecked });\n }}\n />\n </Td>\n )}\n {headers.map(({ key, cellFormatter, name, ...rest }) => {\n return (\n <Td key={key}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(data, { key, name, formatMessage, ...rest })\n ) : (\n <Typography textColor=\"neutral800\">{data[name] || '-'}</Typography>\n )}\n </Td>\n );\n })}\n\n {withBulkActions && (\n <Td>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => push(`${pathname}/${data.id}`)}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Pencil />}\n />\n\n {canDelete && (\n <Box paddingLeft={1} {...stopPropagation}>\n <IconButton\n onClick={() => onClickDelete(data.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Trash />}\n />\n </Box>\n )}\n </Flex>\n </Td>\n )}\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n\nTableRows.defaultProps = {\n canDelete: false,\n entriesToDelete: [],\n onClickDelete() {},\n onSelectRow() {},\n rows: [],\n withBulkActions: false,\n withMainAction: false,\n};\n\nTableRows.propTypes = {\n canDelete: PropTypes.bool,\n entriesToDelete: PropTypes.array,\n headers: PropTypes.array.isRequired,\n onClickDelete: PropTypes.func,\n onSelectRow: PropTypes.func,\n rows: PropTypes.array,\n withBulkActions: PropTypes.bool,\n withMainAction: PropTypes.bool,\n};\n\nexport default TableRows;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nexport const FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nexport const ROLE_LAYOUT = [];\n\nexport const FORM_LAYOUT = [\n [\n {\n intlLabel: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n {\n intlLabel: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n [\n {\n intlLabel: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n ],\n];\n\nexport const FORM_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required(translatedErrors.required),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).required(translatedErrors.required),\n roles: yup.array().min(1, translatedErrors.required).required(translatedErrors.required),\n});\n\nexport const STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n};\n","import React, { useState } from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport {\n Form,\n GenericInput,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport { Formik } from 'formik';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { useEnterprise } from '../../../../../../hooks/useEnterprise';\nimport { MagicLinkCE } from '../../components/MagicLink';\nimport SelectRoles from '../../components/SelectRoles';\n\nimport { FORM_LAYOUT, FORM_SCHEMA, FORM_INITIAL_VALUES, ROLE_LAYOUT, STEPPER } from './constants';\n\nconst ModalForm = ({ onSuccess, onToggle }) => {\n const [currentStep, setStep] = useState('create');\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [registrationToken, setRegistrationToken] = useState(null);\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { post } = useFetchClient();\n const roleLayout = useEnterprise(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, eeRoles];\n },\n\n defaultValue: [],\n }\n );\n const initialValues = useEnterprise(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLink'\n )\n ).MagicLinkEE\n );\n const postMutation = useMutation(\n (body) => {\n return post('/admin/users', body);\n },\n {\n async onSuccess({ data }) {\n setRegistrationToken(data.data.registrationToken);\n\n await onSuccess();\n\n goNext();\n setIsSubmitting(false);\n },\n onError(err) {\n setIsSubmitting(false);\n\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n\n throw err;\n },\n onSettled() {\n unlockApp();\n },\n }\n );\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body, { setErrors }) => {\n lockApp();\n setIsSubmitting(true);\n try {\n await postMutation.mutateAsync(body);\n } catch (err) {\n unlockApp();\n\n if (err?.response?.data?.error.message === 'Email already taken') {\n setErrors({ email: err.response.data.error.message });\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n const endActions =\n currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n );\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <ModalLayout onClose={onToggle} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <Formik\n enableReinitialize\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n validateOnChange={false}\n >\n {({ errors, handleChange, values }) => {\n return (\n <Form>\n <ModalBody>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && <MagicLink registrationToken={registrationToken} />}\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\n error={errors[input.name]}\n onChange={handleChange}\n value={values[input.name]}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles\n disabled={isDisabled}\n error={errors.roles}\n onChange={handleChange}\n value={values.roles}\n />\n </GridItem>\n {roleLayout.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\n onChange={handleChange}\n value={values[input.name]}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Box>\n </Box>\n </Flex>\n </ModalBody>\n <ModalFooter\n startActions={\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n }\n endActions={endActions}\n />\n </Form>\n );\n }}\n </Formik>\n </ModalLayout>\n );\n};\n\nModalForm.propTypes = {\n onToggle: PropTypes.func.isRequired,\n onSuccess: PropTypes.func.isRequired,\n};\n\nexport default ModalForm;\n","import React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nconst PaginationFooter = ({ pagination }) => {\n return (\n <Box paddingTop={4}>\n <Flex alignItems=\"flex-end\" justifyContent=\"space-between\">\n <PageSizeURLQuery />\n <PaginationURLQuery pagination={pagination} />\n </Flex>\n </Box>\n );\n};\n\nPaginationFooter.defaultProps = {\n pagination: {\n pageCount: 0,\n pageSize: 10,\n total: 0,\n },\n};\n\nPaginationFooter.propTypes = {\n pagination: PropTypes.shape({\n page: PropTypes.number,\n pageCount: PropTypes.number,\n pageSize: PropTypes.number,\n total: PropTypes.number,\n }),\n};\n\nexport default PaginationFooter;\n","const displayedFilters = [\n {\n name: 'firstname',\n metadatas: { label: 'Firstname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'lastname',\n metadatas: { label: 'Lastname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'email',\n metadatas: { label: 'Email' },\n fieldSchema: { type: 'email' },\n },\n {\n name: 'username',\n metadatas: { label: 'Username' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'isActive',\n metadatas: { label: 'Active user' },\n fieldSchema: { type: 'boolean' },\n },\n];\n\nexport default displayedFilters;\n","import React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport { Status } from '@strapi/helper-plugin';\n\nconst tableHeaders = [\n {\n name: 'firstname',\n key: 'firstname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n },\n {\n name: 'lastname',\n key: 'lastname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n },\n {\n key: 'email',\n name: 'email',\n metadatas: {\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n },\n {\n key: 'roles',\n name: 'roles',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n },\n cellFormatter({ roles }, { formatMessage }) {\n return (\n <Typography textColor=\"neutral800\">\n {roles\n .map((role) =>\n formatMessage({\n id: `Settings.permissions.users.${role.code}`,\n defaultMessage: role.name,\n })\n )\n .join(',\\n')}\n </Typography>\n );\n },\n },\n {\n key: 'username',\n name: 'username',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n },\n {\n key: 'isActive',\n name: 'isActive',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n },\n cellFormatter({ isActive }, { formatMessage }) {\n return (\n <Flex>\n <Status isActive={isActive} variant={isActive ? 'success' : 'danger'} />\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: isActive\n ? 'Settings.permissions.users.active'\n : 'Settings.permissions.users.inactive',\n defaultMessage: isActive ? 'Active' : 'Inactive',\n })}\n </Typography>\n </Flex>\n );\n },\n },\n];\n\nexport default tableHeaders;\n","import React, { useState } from 'react';\n\nimport { ActionLayout, ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n DynamicTable,\n NoPermissions,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../hooks/useAdminUsers';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport Filters from '../../../components/Filters';\n\nimport { CreateActionCE } from './CreateAction';\nimport TableRows from './DynamicTable/TableRows';\nimport ModalForm from './ModalForm';\nimport PaginationFooter from './PaginationFooter';\nimport displayedFilters from './utils/displayedFilters';\nimport tableHeaders from './utils/tableHeaders';\n\nconst EE_LICENSE_LIMIT_QUERY_KEY = ['ee', 'license-limit-info'];\n\nexport const UserListPageCE = () => {\n const { post } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = useState(false);\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings.users);\n const queryClient = useQueryClient();\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n useFocusWhenNavigate();\n const {\n users,\n pagination,\n isError,\n isLoading,\n refetch: refetchAdminUsers,\n } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }), {\n cacheTime: 0,\n enabled: canRead,\n });\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction'\n )\n ).CreateActionEE\n );\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const deleteAllMutation = useMutation(\n async (ids) => {\n await post('/admin/users/batch-delete', { ids });\n },\n {\n async onSuccess() {\n await refetchAdminUsers();\n\n // Toggle enabled/ disabled state on the invite button\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n },\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n message: formatAPIError(error),\n defaultMessage: 'An error occured',\n },\n });\n },\n }\n );\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Users\" />\n <HeaderLayout\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n {canRead && (\n <ActionLayout\n startActions={\n <>\n <SearchURLQuery\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters displayedFilters={displayedFilters} />\n </>\n }\n />\n )}\n\n <ContentLayout canRead={canRead}>\n {!canRead && <NoPermissions />}\n {/* TODO: Replace error message with something better */}\n {isError && <div>TODO: An error occurred</div>}\n {canRead && (\n <>\n <DynamicTable\n contentType=\"Users\"\n isLoading={isLoading}\n onConfirmDeleteAll={deleteAllMutation.mutateAsync}\n onConfirmDelete={(id) => deleteAllMutation.mutateAsync([id])}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n >\n <TableRows\n canDelete={canDelete}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n />\n </DynamicTable>\n\n {pagination && <PaginationFooter pagination={pagination} />}\n </>\n )}\n </ContentLayout>\n {isModalOpened && (\n <ModalForm\n onSuccess={async () => {\n await refetchAdminUsers();\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n }}\n onToggle={handleToggle}\n />\n )}\n </Main>\n );\n};\n\n// component which determines whether this page should render the CE or EE page\nconst UsersListPageSwitch = () => {\n const UsersListPage = useEnterprise(\n UserListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\nexport default UsersListPageSwitch;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListPage from '../ListPage';\n\nconst ProtectedListPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.users.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["useIntl","jsx","Button","Envelop","PropTypes","useHistory","Tbody","jsxs","Tr","onRowClick","Td","stopPropagation","BaseCheckbox","getFullName","Typography","Flex","IconButton","Pencil","Box","Trash","yup","translatedErrors","useState","useNotification","useOverlayBlocker","useFetchClient","useEnterprise","MagicLinkCE","useMutation","ModalLayout","ModalHeader","Breadcrumbs","Crumb","Formik","Form","ModalBody","Grid","GridItem","GenericInput","SelectRoles","ModalFooter","PageSizeURLQuery","PaginationURLQuery","Status","useAPIErrorHandler","useSelector","selectAdminPermissions","useRBAC","useQueryClient","useLocation","useFocusWhenNavigate","useAdminUsers","qs","Main","SettingsPageTitle","HeaderLayout","ActionLayout","Fragment","SearchURLQuery","Filters","ContentLayout","NoPermissions","DynamicTable","CheckPagePermissions","ListPage"],"mappings":"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"}