@strapi/admin 4.15.1 → 4.15.3-alpha.0

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 (267) hide show
  1. package/dist/_chunks/{AuthenticatedApp-092ef2be.js → AuthenticatedApp-26a57d48.js} +30 -30
  2. package/dist/_chunks/{AuthenticatedApp-092ef2be.js.map → AuthenticatedApp-26a57d48.js.map} +1 -1
  3. package/dist/_chunks/{AuthenticatedApp-b0ada7e9.mjs → AuthenticatedApp-332b40a8.mjs} +30 -30
  4. package/dist/_chunks/{AuthenticatedApp-b0ada7e9.mjs.map → AuthenticatedApp-332b40a8.mjs.map} +1 -1
  5. package/dist/_chunks/{HomePage-5798ba6f.mjs → HomePage-332764b2.mjs} +7 -8
  6. package/dist/_chunks/{HomePage-5798ba6f.mjs.map → HomePage-332764b2.mjs.map} +1 -1
  7. package/dist/_chunks/{HomePage-bdcb51be.js → HomePage-74c5c19b.js} +12 -13
  8. package/dist/_chunks/HomePage-74c5c19b.js.map +1 -0
  9. package/dist/_chunks/{HomePage-5ae473e6.js → HomePage-8022e4f9.js} +7 -8
  10. package/dist/_chunks/{HomePage-5ae473e6.js.map → HomePage-8022e4f9.js.map} +1 -1
  11. package/dist/_chunks/{HomePage-a3cc32d2.mjs → HomePage-ebb9bd4d.mjs} +12 -13
  12. package/dist/_chunks/HomePage-ebb9bd4d.mjs.map +1 -0
  13. package/dist/_chunks/{InstalledPluginsPage-cc2d6a36.js → InstalledPluginsPage-08915bd0.js} +10 -12
  14. package/dist/_chunks/{InstalledPluginsPage-cc2d6a36.js.map → InstalledPluginsPage-08915bd0.js.map} +1 -1
  15. package/dist/_chunks/{InstalledPluginsPage-6284aaff.mjs → InstalledPluginsPage-33ed21ac.mjs} +10 -12
  16. package/dist/_chunks/{InstalledPluginsPage-6284aaff.mjs.map → InstalledPluginsPage-33ed21ac.mjs.map} +1 -1
  17. package/dist/_chunks/{index-305a03f4.mjs → Login-4e7ab11a.mjs} +25 -29
  18. package/dist/_chunks/Login-4e7ab11a.mjs.map +1 -0
  19. package/dist/_chunks/{index-137490ba.js → Login-7c938e98.js} +25 -30
  20. package/dist/_chunks/Login-7c938e98.js.map +1 -0
  21. package/dist/_chunks/{MarketplacePage-209ec658.js → MarketplacePage-3c080568.js} +6 -8
  22. package/dist/_chunks/{MarketplacePage-209ec658.js.map → MarketplacePage-3c080568.js.map} +1 -1
  23. package/dist/_chunks/{MarketplacePage-7dee72f5.mjs → MarketplacePage-b82389f1.mjs} +6 -8
  24. package/dist/_chunks/{MarketplacePage-7dee72f5.mjs.map → MarketplacePage-b82389f1.mjs.map} +1 -1
  25. package/dist/_chunks/{ProfilePage-26c14ba4.mjs → ProfilePage-2f0d41e0.mjs} +7 -9
  26. package/dist/_chunks/{ProfilePage-26c14ba4.mjs.map → ProfilePage-2f0d41e0.mjs.map} +1 -1
  27. package/dist/_chunks/{ProfilePage-4f8c127b.js → ProfilePage-9911a1aa.js} +7 -9
  28. package/dist/_chunks/{ProfilePage-4f8c127b.js.map → ProfilePage-9911a1aa.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-a773ff9b.js → constants-2bd3e15b.js} +13 -12
  38. package/dist/_chunks/{constants-a773ff9b.js.map → constants-2bd3e15b.js.map} +1 -1
  39. package/dist/_chunks/{constants-90c20a6f.mjs → constants-6082c0ef.mjs} +11 -12
  40. package/dist/_chunks/{constants-90c20a6f.mjs.map → constants-6082c0ef.mjs.map} +1 -1
  41. package/dist/_chunks/{constants-921eda17.mjs → constants-6ecddc43.mjs} +43 -15
  42. package/dist/_chunks/constants-6ecddc43.mjs.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-9de7641c.mjs → constants-889d52fe.mjs} +28 -28
  46. package/dist/_chunks/constants-889d52fe.mjs.map +1 -0
  47. package/dist/_chunks/{constants-70e05152.js → constants-9d60a039.js} +6 -6
  48. package/dist/_chunks/{constants-70e05152.js.map → constants-9d60a039.js.map} +1 -1
  49. package/dist/_chunks/{constants-6157f648.mjs → constants-b9efe215.mjs} +6 -6
  50. package/dist/_chunks/{constants-6157f648.mjs.map → constants-b9efe215.mjs.map} +1 -1
  51. package/dist/_chunks/{constants-27319180.mjs → constants-c5bbe308.mjs} +13 -12
  52. package/dist/_chunks/{constants-27319180.mjs.map → constants-c5bbe308.mjs.map} +1 -1
  53. package/dist/_chunks/{constants-32975b2e.js → constants-df81febb.js} +11 -12
  54. package/dist/_chunks/{constants-32975b2e.js.map → constants-df81febb.js.map} +1 -1
  55. package/dist/_chunks/{constants-727a113c.js → constants-efc88bf2.js} +26 -26
  56. package/dist/_chunks/constants-efc88bf2.js.map +1 -0
  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-edc9bb0b.js → index-0134922e.js} +673 -811
  66. package/dist/_chunks/index-0134922e.js.map +1 -0
  67. package/dist/_chunks/{index-6a512cec.js → index-01a3932c.js} +8 -9
  68. package/dist/_chunks/{index-6a512cec.js.map → index-01a3932c.js.map} +1 -1
  69. package/dist/_chunks/{index-284c5926.js → index-13a08117.js} +33 -47
  70. package/dist/_chunks/index-13a08117.js.map +1 -0
  71. package/dist/_chunks/{index-1b7e986c.mjs → index-14462502.mjs} +14 -13
  72. package/dist/_chunks/{index-1b7e986c.mjs.map → index-14462502.mjs.map} +1 -1
  73. package/dist/_chunks/{index-85069cac.mjs → index-22fbd8cc.mjs} +9 -10
  74. package/dist/_chunks/{index-85069cac.mjs.map → index-22fbd8cc.mjs.map} +1 -1
  75. package/dist/_chunks/{index-73ba6bdd.mjs → index-259a5ab3.mjs} +3 -3
  76. package/dist/_chunks/{index-73ba6bdd.mjs.map → index-259a5ab3.mjs.map} +1 -1
  77. package/dist/_chunks/{index-7d40adea.mjs → index-287b49b0.mjs} +8 -7
  78. package/dist/_chunks/{index-7d40adea.mjs.map → index-287b49b0.mjs.map} +1 -1
  79. package/dist/_chunks/{index-77e0e5d7.js → index-293f112c.js} +8 -7
  80. package/dist/_chunks/{index-77e0e5d7.js.map → index-293f112c.js.map} +1 -1
  81. package/dist/_chunks/{index-0af587c3.js → index-2ca9ffb3.js} +78 -147
  82. package/dist/_chunks/index-2ca9ffb3.js.map +1 -0
  83. package/dist/_chunks/{index-4c5acc70.js → index-2e47d9aa.js} +9 -10
  84. package/dist/_chunks/{index-4c5acc70.js.map → index-2e47d9aa.js.map} +1 -1
  85. package/dist/_chunks/{index-59d22949.mjs → index-3d323e1b.mjs} +8 -9
  86. package/dist/_chunks/{index-59d22949.mjs.map → index-3d323e1b.mjs.map} +1 -1
  87. package/dist/_chunks/{index-5752584c.mjs → index-44360544.mjs} +182 -76
  88. package/dist/_chunks/index-44360544.mjs.map +1 -0
  89. package/dist/_chunks/{index-34a2909e.mjs → index-46245c2d.mjs} +12 -12
  90. package/dist/_chunks/{index-34a2909e.mjs.map → index-46245c2d.mjs.map} +1 -1
  91. package/dist/_chunks/{index-5ad8482b.mjs → index-486f5166.mjs} +7 -7
  92. package/dist/_chunks/{index-5ad8482b.mjs.map → index-486f5166.mjs.map} +1 -1
  93. package/dist/_chunks/{index-58db145d.mjs → index-49b41e57.mjs} +3 -3
  94. package/dist/_chunks/{index-58db145d.mjs.map → index-49b41e57.mjs.map} +1 -1
  95. package/dist/_chunks/{index-da04b144.js → index-4bdd41f2.js} +14 -13
  96. package/dist/_chunks/{index-da04b144.js.map → index-4bdd41f2.js.map} +1 -1
  97. package/dist/_chunks/{index-7aed99db.js → index-4ff5f2a8.js} +12 -12
  98. package/dist/_chunks/{index-7aed99db.js.map → index-4ff5f2a8.js.map} +1 -1
  99. package/dist/_chunks/{index-56ced4ab.mjs → index-5221021e.mjs} +8 -7
  100. package/dist/_chunks/{index-56ced4ab.mjs.map → index-5221021e.mjs.map} +1 -1
  101. package/dist/_chunks/{index-a4348f3b.js → index-54a7f1f4.js} +12 -12
  102. package/dist/_chunks/index-54a7f1f4.js.map +1 -0
  103. package/dist/_chunks/{index-1da8c640.mjs → index-5502f0f9.mjs} +9 -10
  104. package/dist/_chunks/{index-1da8c640.mjs.map → index-5502f0f9.mjs.map} +1 -1
  105. package/dist/_chunks/{index-36e0d449.mjs → index-5af78a9d.mjs} +32 -45
  106. package/dist/_chunks/index-5af78a9d.mjs.map +1 -0
  107. package/dist/_chunks/{index-1f1e2465.js → index-5be49e36.js} +9 -11
  108. package/dist/_chunks/{index-1f1e2465.js.map → index-5be49e36.js.map} +1 -1
  109. package/dist/_chunks/{index-4565fcbd.js → index-5bf8300a.js} +3 -3
  110. package/dist/_chunks/{index-4565fcbd.js.map → index-5bf8300a.js.map} +1 -1
  111. package/dist/_chunks/{index-48322669.mjs → index-663f37fb.mjs} +3 -3
  112. package/dist/_chunks/index-663f37fb.mjs.map +1 -0
  113. package/dist/_chunks/{index-35e4bad6.mjs → index-6999385d.mjs} +8 -9
  114. package/dist/_chunks/{index-35e4bad6.mjs.map → index-6999385d.mjs.map} +1 -1
  115. package/dist/_chunks/{index-928b18d2.mjs → index-70ad05e1.mjs} +3 -3
  116. package/dist/_chunks/{index-928b18d2.mjs.map → index-70ad05e1.mjs.map} +1 -1
  117. package/dist/_chunks/{index-e22d1a84.mjs → index-72195b26.mjs} +14 -13
  118. package/dist/_chunks/{index-e22d1a84.mjs.map → index-72195b26.mjs.map} +1 -1
  119. package/dist/_chunks/{index-c604806d.js → index-73b1ca6d.js} +12 -12
  120. package/dist/_chunks/{index-c604806d.js.map → index-73b1ca6d.js.map} +1 -1
  121. package/dist/_chunks/{index-62b4b3fc.js → index-76459a60.js} +11 -11
  122. package/dist/_chunks/{index-62b4b3fc.js.map → index-76459a60.js.map} +1 -1
  123. package/dist/_chunks/{index-6b9e3d60.js → index-77b91009.js} +9 -10
  124. package/dist/_chunks/{index-6b9e3d60.js.map → index-77b91009.js.map} +1 -1
  125. package/dist/_chunks/{index-24189ec9.js → index-84321b2e.js} +6 -6
  126. package/dist/_chunks/{index-24189ec9.js.map → index-84321b2e.js.map} +1 -1
  127. package/dist/_chunks/{index-b2257157.js → index-866d1aaf.js} +49 -12
  128. package/dist/_chunks/index-866d1aaf.js.map +1 -0
  129. package/dist/_chunks/{index-066ee02e.js → index-891738bc.js} +8 -10
  130. package/dist/_chunks/{index-066ee02e.js.map → index-891738bc.js.map} +1 -1
  131. package/dist/_chunks/{index-cadd3ee0.js → index-89cb437c.js} +4 -4
  132. package/dist/_chunks/{index-cadd3ee0.js.map → index-89cb437c.js.map} +1 -1
  133. package/dist/_chunks/{index-8ea5a488.js → index-901d8afc.js} +9 -10
  134. package/dist/_chunks/{index-8ea5a488.js.map → index-901d8afc.js.map} +1 -1
  135. package/dist/_chunks/{index-d1620260.js → index-9c56225f.js} +13 -14
  136. package/dist/_chunks/{index-d1620260.js.map → index-9c56225f.js.map} +1 -1
  137. package/dist/_chunks/{index-6dbc94a9.mjs → index-9e3fc4fe.mjs} +6 -6
  138. package/dist/_chunks/{index-6dbc94a9.mjs.map → index-9e3fc4fe.mjs.map} +1 -1
  139. package/dist/_chunks/{index-bdfc1149.mjs → index-a16075f2.mjs} +49 -12
  140. package/dist/_chunks/index-a16075f2.mjs.map +1 -0
  141. package/dist/_chunks/{index-6cc54f3b.mjs → index-a1c1b833.mjs} +8 -9
  142. package/dist/_chunks/{index-6cc54f3b.mjs.map → index-a1c1b833.mjs.map} +1 -1
  143. package/dist/_chunks/{index-acd6d64f.js → index-aaffa28c.js} +8 -7
  144. package/dist/_chunks/{index-acd6d64f.js.map → index-aaffa28c.js.map} +1 -1
  145. package/dist/_chunks/{index-be2ca313.mjs → index-abcea3d3.mjs} +13 -13
  146. package/dist/_chunks/{index-be2ca313.mjs.map → index-abcea3d3.mjs.map} +1 -1
  147. package/dist/_chunks/{index-af69bc98.mjs → index-acdd9b71.mjs} +11 -11
  148. package/dist/_chunks/{index-af69bc98.mjs.map → index-acdd9b71.mjs.map} +1 -1
  149. package/dist/_chunks/{index-89d27faa.js → index-adc85ed8.js} +14 -13
  150. package/dist/_chunks/{index-89d27faa.js.map → index-adc85ed8.js.map} +1 -1
  151. package/dist/_chunks/{index-f448aed2.js → index-af5e137f.js} +13 -12
  152. package/dist/_chunks/{index-f448aed2.js.map → index-af5e137f.js.map} +1 -1
  153. package/dist/_chunks/{index-16030b74.js → index-b11e88f3.js} +3 -3
  154. package/dist/_chunks/index-b11e88f3.js.map +1 -0
  155. package/dist/_chunks/{index-e414353b.js → index-b47862fc.js} +8 -8
  156. package/dist/_chunks/{index-e414353b.js.map → index-b47862fc.js.map} +1 -1
  157. package/dist/_chunks/{index-51a15b27.js → index-bea39602.js} +4 -4
  158. package/dist/_chunks/{index-51a15b27.js.map → index-bea39602.js.map} +1 -1
  159. package/dist/_chunks/{index-53ba81f9.mjs → index-c202e78f.mjs} +9 -10
  160. package/dist/_chunks/{index-53ba81f9.mjs.map → index-c202e78f.mjs.map} +1 -1
  161. package/dist/_chunks/{index-8d4d361d.mjs → index-c9f9b444.mjs} +13 -13
  162. package/dist/_chunks/{index-8d4d361d.mjs.map → index-c9f9b444.mjs.map} +1 -1
  163. package/dist/_chunks/{index-ea23ee9f.mjs → index-caecca36.mjs} +9 -11
  164. package/dist/_chunks/{index-ea23ee9f.mjs.map → index-caecca36.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-34de382e.mjs → index-cd461a87.mjs} +688 -824
  168. package/dist/_chunks/index-cd461a87.mjs.map +1 -0
  169. package/dist/_chunks/{index-5d8d89a7.js → index-cdfb1568.js} +13 -13
  170. package/dist/_chunks/{index-5d8d89a7.js.map → index-cdfb1568.js.map} +1 -1
  171. package/dist/_chunks/{index-1763a04f.js → index-cf87a6f0.js} +8 -9
  172. package/dist/_chunks/{index-1763a04f.js.map → index-cf87a6f0.js.map} +1 -1
  173. package/dist/_chunks/{index-b81f7273.mjs → index-d33930a8.mjs} +78 -147
  174. package/dist/_chunks/index-d33930a8.mjs.map +1 -0
  175. package/dist/_chunks/{index-fcd5bc14.mjs → index-d4473456.mjs} +14 -13
  176. package/dist/_chunks/{index-fcd5bc14.mjs.map → index-d4473456.mjs.map} +1 -1
  177. package/dist/_chunks/{index-3c58de6f.js → index-d74efba3.js} +14 -13
  178. package/dist/_chunks/{index-3c58de6f.js.map → index-d74efba3.js.map} +1 -1
  179. package/dist/_chunks/{index-1e973c03.mjs → index-d7bc095b.mjs} +14 -13
  180. package/dist/_chunks/{index-1e973c03.mjs.map → index-d7bc095b.mjs.map} +1 -1
  181. package/dist/_chunks/{index-00202c8a.mjs → index-dbbda762.mjs} +13 -12
  182. package/dist/_chunks/{index-00202c8a.mjs.map → index-dbbda762.mjs.map} +1 -1
  183. package/dist/_chunks/{index-f5342ea5.js → index-dfb03b19.js} +14 -13
  184. package/dist/_chunks/{index-f5342ea5.js.map → index-dfb03b19.js.map} +1 -1
  185. package/dist/_chunks/{index-bb8093ea.mjs → index-e10dd15d.mjs} +12 -12
  186. package/dist/_chunks/{index-bb8093ea.mjs.map → index-e10dd15d.mjs.map} +1 -1
  187. package/dist/_chunks/{index-370a4ee8.mjs → index-e4f7fa95.mjs} +12 -12
  188. package/dist/_chunks/index-e4f7fa95.mjs.map +1 -0
  189. package/dist/_chunks/{index-b98ea3ce.mjs → index-e749e6ef.mjs} +13 -14
  190. package/dist/_chunks/{index-b98ea3ce.mjs.map → index-e749e6ef.mjs.map} +1 -1
  191. package/dist/_chunks/{index-332f319e.mjs → index-ef5a0b8f.mjs} +8 -10
  192. package/dist/_chunks/{index-332f319e.mjs.map → index-ef5a0b8f.mjs.map} +1 -1
  193. package/dist/_chunks/{index-f179c7ea.js → index-f03c4e70.js} +13 -13
  194. package/dist/_chunks/{index-f179c7ea.js.map → index-f03c4e70.js.map} +1 -1
  195. package/dist/_chunks/{index-52b5db8a.js → index-fc0191f3.js} +8 -9
  196. package/dist/_chunks/{index-52b5db8a.js.map → index-fc0191f3.js.map} +1 -1
  197. package/dist/_chunks/{schema-a95f2514.mjs → schema-4d12cff6.mjs} +2 -2
  198. package/dist/_chunks/{schema-a95f2514.mjs.map → schema-4d12cff6.mjs.map} +1 -1
  199. package/dist/_chunks/{schema-f49c76d7.js → schema-c6ce9e01.js} +2 -2
  200. package/dist/_chunks/{schema-f49c76d7.js.map → schema-c6ce9e01.js.map} +1 -1
  201. package/dist/_chunks/{validateWorkflow-e66d7d2e.js → validateWorkflow-155f5778.js} +3 -3
  202. package/dist/_chunks/{validateWorkflow-e66d7d2e.js.map → validateWorkflow-155f5778.js.map} +1 -1
  203. package/dist/_chunks/{validateWorkflow-d051b610.mjs → validateWorkflow-e0166061.mjs} +3 -3
  204. package/dist/_chunks/{validateWorkflow-d051b610.mjs.map → validateWorkflow-e0166061.mjs.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/ee/LICENSE +1 -0
  239. package/package.json +21 -21
  240. package/dist/_chunks/HomePage-a3cc32d2.mjs.map +0 -1
  241. package/dist/_chunks/HomePage-bdcb51be.js.map +0 -1
  242. package/dist/_chunks/SSOProviders-1d062c95.mjs.map +0 -1
  243. package/dist/_chunks/SSOProviders-1ef0a89e.js.map +0 -1
  244. package/dist/_chunks/constants-12dfb222.mjs +0 -34
  245. package/dist/_chunks/constants-12dfb222.mjs.map +0 -1
  246. package/dist/_chunks/constants-1aea1185.js +0 -34
  247. package/dist/_chunks/constants-1aea1185.js.map +0 -1
  248. package/dist/_chunks/constants-727a113c.js.map +0 -1
  249. package/dist/_chunks/constants-86aa3e70.js.map +0 -1
  250. package/dist/_chunks/constants-921eda17.mjs.map +0 -1
  251. package/dist/_chunks/constants-9de7641c.mjs.map +0 -1
  252. package/dist/_chunks/index-0af587c3.js.map +0 -1
  253. package/dist/_chunks/index-137490ba.js.map +0 -1
  254. package/dist/_chunks/index-16030b74.js.map +0 -1
  255. package/dist/_chunks/index-284c5926.js.map +0 -1
  256. package/dist/_chunks/index-305a03f4.mjs.map +0 -1
  257. package/dist/_chunks/index-34de382e.mjs.map +0 -1
  258. package/dist/_chunks/index-36e0d449.mjs.map +0 -1
  259. package/dist/_chunks/index-370a4ee8.mjs.map +0 -1
  260. package/dist/_chunks/index-48322669.mjs.map +0 -1
  261. package/dist/_chunks/index-5752584c.mjs.map +0 -1
  262. package/dist/_chunks/index-86dfbe3a.js.map +0 -1
  263. package/dist/_chunks/index-a4348f3b.js.map +0 -1
  264. package/dist/_chunks/index-b2257157.js.map +0 -1
  265. package/dist/_chunks/index-b81f7273.mjs.map +0 -1
  266. package/dist/_chunks/index-bdfc1149.mjs.map +0 -1
  267. package/dist/_chunks/index-edc9bb0b.js.map +0 -1
@@ -11,14 +11,14 @@ require("lodash/cloneDeep");
11
11
  require("lodash/get");
12
12
  require("lodash/omit");
13
13
  require("lodash/isNaN");
14
- require("./schema-f49c76d7.js");
14
+ require("./schema-c6ce9e01.js");
15
15
  require("lodash/merge");
16
16
  require("lodash/set");
17
- const index = require("./index-b2257157.js");
17
+ const index = require("./index-866d1aaf.js");
18
18
  require("react");
19
19
  require("react-dnd");
20
20
  require("@reduxjs/toolkit");
21
- require("./index-edc9bb0b.js");
21
+ require("./index-0134922e.js");
22
22
  require("react-dom/client");
23
23
  require("invariant");
24
24
  require("lodash/isFunction");
@@ -27,27 +27,27 @@ require("react-helmet");
27
27
  require("react-router-dom");
28
28
  require("react-redux");
29
29
  require("@radix-ui/react-context");
30
- require("axios");
31
- require("lodash/camelCase");
32
- require("lodash/defaultsDeep");
33
- require("styled-components");
30
+ require("@strapi/design-system/v2");
34
31
  require("@strapi/icons");
35
32
  require("formik");
36
- require("yup");
33
+ require("lodash/camelCase");
37
34
  require("react-query");
38
- require("immer");
35
+ require("styled-components");
36
+ require("yup");
37
+ require("lodash/defaultsDeep");
39
38
  require("qs");
39
+ require("immer");
40
40
  require("lodash/isBoolean");
41
41
  require("lodash/isEmpty");
42
42
  require("lodash/toNumber");
43
43
  require("lodash/sortBy");
44
44
  require("./DragLayer-f07eee6c.js");
45
- require("./AuthenticatedApp-092ef2be.js");
45
+ require("./AuthenticatedApp-26a57d48.js");
46
46
  require("semver/functions/lt");
47
47
  require("semver/functions/valid");
48
48
  require("react-dnd-html5-backend");
49
- require("@strapi/design-system/v2");
50
49
  require("react-error-boundary");
50
+ require("axios");
51
51
  require("lodash/isObject");
52
52
  require("lodash/isEqual");
53
53
  require("lodash/upperFirst");
@@ -83,6 +83,7 @@ require("lodash/isArray");
83
83
  require("lodash/flatMap");
84
84
  require("lodash/uniq");
85
85
  require("./useAdminUsers-05d6b26a.js");
86
+ require("./formatAPIErrors-b599cf27.js");
86
87
  require("date-fns/parseISO");
87
88
  require("lodash/isNumber");
88
89
  require("lodash/groupBy");
@@ -125,4 +126,4 @@ ReviewWorkflowsAssigneeEE.propTypes = {
125
126
  };
126
127
  exports.ReviewWorkflowsAssigneeEE = ReviewWorkflowsAssigneeEE;
127
128
  exports.ReviewWorkflowsStageEE = ReviewWorkflowsStageEE;
128
- //# sourceMappingURL=index-f448aed2.js.map
129
+ //# sourceMappingURL=index-af5e137f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-f448aed2.js","sources":["../../ee/admin/src/content-manager/pages/ListView/ReviewWorkflowsColumn/ReviewWorkflowsStageEE.js","../../ee/admin/src/content-manager/pages/ListView/ReviewWorkflowsColumn/ReviewWorkflowsAssigneeEE.js"],"sourcesContent":["import React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { pxToRem } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nimport { STAGE_COLOR_DEFAULT } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/constants';\nimport { getStageColorByHex } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\nexport function ReviewWorkflowsStageEE({ color, name }) {\n const { themeColorName } = getStageColorByHex(color);\n\n return (\n <Flex alignItems=\"center\" gap={2} maxWidth={pxToRem(300)}>\n <Box\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n\n <Typography fontWeight=\"regular\" textColor=\"neutral700\" ellipsis>\n {name}\n </Typography>\n </Flex>\n );\n}\n\nReviewWorkflowsStageEE.defaultProps = {\n color: STAGE_COLOR_DEFAULT,\n};\n\nReviewWorkflowsStageEE.propTypes = {\n color: PropTypes.string,\n name: PropTypes.string.isRequired,\n};\n","import React from 'react';\n\nimport { Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../admin/src/content-manager/utils';\n\nexport function ReviewWorkflowsAssigneeEE({ user }) {\n const { formatMessage } = useIntl();\n\n return <Typography textColor=\"neutral800\">{getDisplayName(user, formatMessage)}</Typography>;\n}\n\nReviewWorkflowsAssigneeEE.propTypes = {\n user: PropTypes.shape({\n firstname: PropTypes.string,\n lastname: PropTypes.string,\n username: PropTypes.string,\n }).isRequired,\n};\n"],"names":["getStageColorByHex","jsxs","Flex","pxToRem","jsx","Box","Typography","STAGE_COLOR_DEFAULT","PropTypes","useIntl","getDisplayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,SAAS,uBAAuB,EAAE,OAAO,QAAQ;AACtD,QAAM,EAAE,eAAA,IAAmBA,OAAA,mBAAmB,KAAK;AAGjD,SAAAC,gCAACC,aAAAA,QAAK,YAAW,UAAS,KAAK,GAAG,UAAUC,aAAAA,QAAQ,GAAG,GACrD,UAAA;AAAA,IAAAC,2BAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,aAAa,mBAAmB,aAAa,eAAe;AAAA,QAC5D,WAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEAD,2BAAAA,IAACE,2BAAW,YAAW,WAAU,WAAU,cAAa,UAAQ,MAC7D,UACH,KAAA,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;AAEA,uBAAuB,eAAe;AAAA,EACpC,OAAOC,UAAA;AACT;AAEA,uBAAuB,YAAY;AAAA,EACjC,OAAOC,mBAAU,QAAA;AAAA,EACjB,MAAMA,mBAAAA,QAAU,OAAO;AACzB;AC7BgB,SAAA,0BAA0B,EAAE,QAAQ;AAC5C,QAAA,EAAE,kBAAkBC,UAAAA;AAE1B,wCAAQH,aAAAA,YAAW,EAAA,WAAU,cAAc,UAAeI,MAAAA,eAAA,MAAM,aAAa,EAAE,CAAA;AACjF;AAEA,0BAA0B,YAAY;AAAA,EACpC,MAAMF,2BAAU,MAAM;AAAA,IACpB,WAAWA,mBAAU,QAAA;AAAA,IACrB,UAAUA,mBAAU,QAAA;AAAA,IACpB,UAAUA,mBAAU,QAAA;AAAA,EACrB,CAAA,EAAE;AACL;;;"}
1
+ {"version":3,"file":"index-af5e137f.js","sources":["../../ee/admin/src/content-manager/pages/ListView/ReviewWorkflowsColumn/ReviewWorkflowsStageEE.js","../../ee/admin/src/content-manager/pages/ListView/ReviewWorkflowsColumn/ReviewWorkflowsAssigneeEE.js"],"sourcesContent":["import React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { pxToRem } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nimport { STAGE_COLOR_DEFAULT } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/constants';\nimport { getStageColorByHex } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\nexport function ReviewWorkflowsStageEE({ color, name }) {\n const { themeColorName } = getStageColorByHex(color);\n\n return (\n <Flex alignItems=\"center\" gap={2} maxWidth={pxToRem(300)}>\n <Box\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n\n <Typography fontWeight=\"regular\" textColor=\"neutral700\" ellipsis>\n {name}\n </Typography>\n </Flex>\n );\n}\n\nReviewWorkflowsStageEE.defaultProps = {\n color: STAGE_COLOR_DEFAULT,\n};\n\nReviewWorkflowsStageEE.propTypes = {\n color: PropTypes.string,\n name: PropTypes.string.isRequired,\n};\n","import React from 'react';\n\nimport { Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../admin/src/content-manager/utils';\n\nexport function ReviewWorkflowsAssigneeEE({ user }) {\n const { formatMessage } = useIntl();\n\n return <Typography textColor=\"neutral800\">{getDisplayName(user, formatMessage)}</Typography>;\n}\n\nReviewWorkflowsAssigneeEE.propTypes = {\n user: PropTypes.shape({\n firstname: PropTypes.string,\n lastname: PropTypes.string,\n username: PropTypes.string,\n }).isRequired,\n};\n"],"names":["getStageColorByHex","jsxs","Flex","pxToRem","jsx","Box","Typography","STAGE_COLOR_DEFAULT","PropTypes","useIntl","getDisplayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,SAAS,uBAAuB,EAAE,OAAO,QAAQ;AACtD,QAAM,EAAE,eAAA,IAAmBA,OAAA,mBAAmB,KAAK;AAGjD,SAAAC,gCAACC,aAAAA,QAAK,YAAW,UAAS,KAAK,GAAG,UAAUC,aAAAA,QAAQ,GAAG,GACrD,UAAA;AAAA,IAAAC,2BAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,aAAa,mBAAmB,aAAa,eAAe;AAAA,QAC5D,WAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEAD,2BAAAA,IAACE,2BAAW,YAAW,WAAU,WAAU,cAAa,UAAQ,MAC7D,UACH,KAAA,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;AAEA,uBAAuB,eAAe;AAAA,EACpC,OAAOC,UAAA;AACT;AAEA,uBAAuB,YAAY;AAAA,EACjC,OAAOC,mBAAU,QAAA;AAAA,EACjB,MAAMA,mBAAAA,QAAU,OAAO;AACzB;AC7BgB,SAAA,0BAA0B,EAAE,QAAQ;AAC5C,QAAA,EAAE,kBAAkBC,UAAAA;AAE1B,wCAAQH,aAAAA,YAAW,EAAA,WAAU,cAAc,UAAeI,MAAAA,eAAA,MAAM,aAAa,EAAE,CAAA;AACjF;AAEA,0BAA0B,YAAY;AAAA,EACpC,MAAMF,2BAAU,MAAM;AAAA,IACpB,WAAWA,mBAAU,QAAA;AAAA,IACrB,UAAUA,mBAAU,QAAA;AAAA,IACpB,UAAUA,mBAAU,QAAA;AAAA,EACrB,CAAA,EAAE;AACL;;;"}
@@ -2,7 +2,7 @@
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const PropTypes = require("prop-types");
4
4
  const reactIntl = require("react-intl");
5
- const index = require("./index-edc9bb0b.js");
5
+ const index = require("./index-0134922e.js");
6
6
  const designSystem = require("@strapi/design-system");
7
7
  const helperPlugin = require("@strapi/helper-plugin");
8
8
  const Icons = require("@strapi/icons");
@@ -43,7 +43,7 @@ MagicLinkWrapper.propTypes = {
43
43
  };
44
44
  const MagicLinkCE = ({ registrationToken }) => {
45
45
  const { formatMessage } = reactIntl.useIntl();
46
- const target = `${window.location.origin}${index.getBasename()}auth/register?registrationToken=${registrationToken}`;
46
+ const target = `${window.location.origin}${index.getBasename()}/auth/register?registrationToken=${registrationToken}`;
47
47
  return /* @__PURE__ */ jsxRuntime.jsx(MagicLinkWrapper, { target, children: formatMessage({
48
48
  id: "app.components.Users.MagicLink.connect",
49
49
  defaultMessage: "Copy and share this link to give access to this user"
@@ -131,4 +131,4 @@ SelectRoles.propTypes = {
131
131
  exports.MagicLinkCE = MagicLinkCE;
132
132
  exports.MagicLinkWrapper = MagicLinkWrapper;
133
133
  exports.SelectRoles = SelectRoles;
134
- //# sourceMappingURL=index-16030b74.js.map
134
+ //# sourceMappingURL=index-b11e88f3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-b11e88f3.js","sources":["../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper.js","../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/index.js","../../admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js"],"sourcesContent":["import React from 'react';\n\nimport { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification } from '@strapi/helper-plugin';\nimport { Duplicate } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst MagicLinkWrapper = ({ children, target }) => {\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const copyLabel = formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n });\n\n const handleClick = async () => {\n const didCopy = await copy(target);\n\n if (didCopy) {\n toggleNotification({ type: 'info', message: { id: 'notification.link-copied' } });\n }\n };\n\n return (\n <ContentBox\n endAction={\n <IconButton label={copyLabel} noBorder icon={<Duplicate />} onClick={handleClick} />\n }\n title={target}\n titleEllipsis\n subtitle={children}\n icon={<span style={{ fontSize: 32 }}>✉️</span>}\n iconBackground=\"neutral100\"\n />\n );\n};\n\nMagicLinkWrapper.propTypes = {\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]).isRequired,\n target: PropTypes.string.isRequired,\n};\n\nexport default MagicLinkWrapper;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../../core/utils/basename';\n\nimport MagicLinkWrapper from './MagicLinkWrapper';\n\nexport const MagicLinkCE = ({ registrationToken }) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nMagicLinkCE.defaultProps = {\n registrationToken: '',\n};\n\nMagicLinkCE.propTypes = {\n registrationToken: PropTypes.string,\n};\n","import React from 'react';\n\nimport { Option, Select } from '@strapi/design-system';\nimport { getFetchClient } from '@strapi/helper-plugin';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\nimport styled, { keyframes } from 'styled-components';\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nconst fetchData = async () => {\n const { get } = getFetchClient();\n const { data } = await get('/admin/roles');\n\n return data.data;\n};\n\nconst SelectRoles = ({ disabled, error, onChange, value }) => {\n const { status, data } = useQuery(['roles'], fetchData, {\n staleTime: 50000,\n });\n const { formatMessage } = useIntl();\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const label = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n });\n const hint = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n });\n const placeholder = formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n });\n const startIcon = status === 'loading' ? <Loader /> : undefined;\n\n return (\n <Select\n id=\"roles\"\n disabled={disabled}\n error={errorMessage}\n hint={hint}\n label={label}\n name=\"roles\"\n onChange={(v) => {\n onChange({ target: { name: 'roles', value: v } });\n }}\n placeholder={placeholder}\n multi\n startIcon={startIcon}\n value={value.map((v) => v.toString())}\n withTags\n required\n >\n {(data || []).map((role) => {\n return (\n <Option key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </Option>\n );\n })}\n </Select>\n );\n};\n\nSelectRoles.defaultProps = {\n disabled: false,\n error: undefined,\n};\n\nSelectRoles.propTypes = {\n disabled: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.array.isRequired,\n};\n\nexport default SelectRoles;\n"],"names":["useNotification","useIntl","useClipboard","jsx","ContentBox","IconButton","Duplicate","PropTypes","getBasename","keyframes","styled","LoadingIcon","getFetchClient","useQuery","Select","Option"],"mappings":"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"}
@@ -5,7 +5,7 @@ const React = require("react");
5
5
  const helperPlugin = require("@strapi/helper-plugin");
6
6
  const reactRedux = require("react-redux");
7
7
  const reactRouterDom = require("react-router-dom");
8
- const AuthenticatedApp = require("./AuthenticatedApp-092ef2be.js");
8
+ const AuthenticatedApp = require("./AuthenticatedApp-26a57d48.js");
9
9
  const designSystem = require("@strapi/design-system");
10
10
  const Icons = require("@strapi/icons");
11
11
  const formik = require("formik");
@@ -15,8 +15,9 @@ const pick = require("lodash/pick");
15
15
  const PropTypes = require("prop-types");
16
16
  const reactIntl = require("react-intl");
17
17
  const useAdminUsers = require("./useAdminUsers-05d6b26a.js");
18
- const index = require("./index-edc9bb0b.js");
19
- const index$1 = require("./index-16030b74.js");
18
+ const index = require("./index-0134922e.js");
19
+ const formatAPIErrors = require("./formatAPIErrors-b599cf27.js");
20
+ const index$1 = require("./index-b11e88f3.js");
20
21
  const edit = require("./edit-29bdf5d6.js");
21
22
  require("react-query");
22
23
  require("semver/functions/lt");
@@ -34,10 +35,9 @@ require("lodash/isFunction");
34
35
  require("lodash/merge");
35
36
  require("react-helmet");
36
37
  require("@radix-ui/react-context");
37
- require("axios");
38
38
  require("lodash/camelCase");
39
- require("lodash/defaultsDeep");
40
39
  require("yup");
40
+ require("lodash/defaultsDeep");
41
41
  require("qs");
42
42
  require("@reduxjs/toolkit");
43
43
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
@@ -177,7 +177,7 @@ const EditPage = ({ canUpdate }) => {
177
177
  const { lockApp, unlockApp } = helperPlugin.useOverlayBlocker();
178
178
  const MagicLink = index.useEnterprise(
179
179
  index$1.MagicLinkCE,
180
- async () => (await Promise.resolve().then(() => require("./index-a4348f3b.js"))).MagicLinkEE
180
+ async () => (await Promise.resolve().then(() => require("./index-54a7f1f4.js"))).MagicLinkEE
181
181
  );
182
182
  helperPlugin.useFocusWhenNavigate();
183
183
  const {
@@ -223,7 +223,7 @@ const EditPage = ({ canUpdate }) => {
223
223
  }
224
224
  actions.setValues(pick__default.default(body, fieldsToPick));
225
225
  } catch (err) {
226
- const errors = index.formatAPIErrors(err.response.data);
226
+ const errors = formatAPIErrors.formatAPIErrors(err.response.data);
227
227
  const fieldsErrors = Object.keys(errors).reduce((acc, current) => {
228
228
  acc[current] = errors[current].id;
229
229
  return acc;
@@ -415,4 +415,4 @@ const ProtectedEditPage = () => {
415
415
  return /* @__PURE__ */ jsxRuntime.jsx(EditPage, { canUpdate });
416
416
  };
417
417
  exports.default = ProtectedEditPage;
418
- //# sourceMappingURL=index-e414353b.js.map
418
+ //# sourceMappingURL=index-b47862fc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-e414353b.js","sources":["../../admin/src/pages/SettingsPage/pages/Users/EditPage/utils/api.js","../../admin/src/pages/SettingsPage/pages/Users/EditPage/utils/layout.js","../../admin/src/pages/SettingsPage/pages/Users/EditPage/index.js","../../admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js"],"sourcesContent":["import { getFetchClient } from '@strapi/helper-plugin';\n\nconst putUser = async (id, body) => {\n const { put } = getFetchClient();\n\n const { data } = await put(`/admin/users/${id}`, body);\n\n return data.data;\n};\n\nexport { putUser };\n","const 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 intlLabel: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n [\n {\n intlLabel: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password',\n size: {\n col: 6,\n xs: 12,\n },\n autoComplete: 'new-password',\n },\n {\n intlLabel: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password',\n size: {\n col: 6,\n xs: 12,\n },\n autoComplete: 'new-password',\n },\n ],\n [\n {\n intlLabel: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'bool',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n];\n\nexport default layout;\n","import React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Main,\n Typography,\n} from '@strapi/design-system';\nimport {\n auth,\n Form,\n GenericInput,\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAppInfo,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft, Check } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport get from 'lodash/get';\nimport omit from 'lodash/omit';\nimport pick from 'lodash/pick';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../hooks/useAdminUsers';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { formatAPIErrors } from '../../../../../utils/formatAPIErrors';\nimport { getFullName } from '../../../../../utils/getFullName';\nimport { MagicLinkCE } from '../components/MagicLink';\nimport SelectRoles from '../components/SelectRoles';\nimport { editValidation } from '../utils/validations/users';\n\nimport { putUser } from './utils/api';\nimport layout from './utils/layout';\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'];\n\nconst EditPage = ({ canUpdate }) => {\n const { formatMessage } = useIntl();\n const {\n params: { id },\n } = useRouteMatch('/settings/users/:id');\n const { push } = useHistory();\n const { setUserDisplayName } = useAppInfo();\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\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\n useFocusWhenNavigate();\n\n const {\n users: [user],\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n cacheTime: 0,\n\n onError(error) {\n const { status } = error.response;\n\n // Redirect the use to the homepage if is not allowed to read\n if (status === 403) {\n toggleNotification({\n type: 'info',\n message: {\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n },\n });\n\n push('/');\n } else {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const handleSubmit = async (body, actions) => {\n lockApp();\n\n try {\n const data = await putUser(id, omit(body, 'confirmPassword'));\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n const userInfos = auth.getUserInfo();\n\n // The user is updating himself\n if (id.toString() === userInfos.id.toString()) {\n auth.setUserInfo(data);\n\n const userDisplayName = get(body, 'username') || getFullName(body.firstname, body.lastname);\n\n setUserDisplayName(userDisplayName);\n }\n actions.setValues(pick(body, fieldsToPick));\n } catch (err) {\n // FIXME when API errors are ready\n const errors = formatAPIErrors(err.response.data);\n const fieldsErrors = Object.keys(errors).reduce((acc, current) => {\n acc[current] = errors[current].id;\n\n return acc;\n }, {});\n\n actions.setErrors(fieldsErrors);\n toggleNotification({\n type: 'warning',\n message: get(err, 'response.data.error.message', 'notification.error'),\n });\n }\n\n unlockApp();\n };\n\n const isLoading = isLoadingAdminUsers || !MagicLink;\n\n const headerLabel = isLoading\n ? { id: 'app.containers.Users.EditPage.header.label-loading', defaultMessage: 'Edit user' }\n : { id: 'app.containers.Users.EditPage.header.label', defaultMessage: 'Edit {name}' };\n\n const initialData = Object.keys(pick(user, fieldsToPick)).reduce((acc, current) => {\n if (current === 'roles') {\n acc[current] = (user?.roles || []).map(({ id }) => id);\n\n return acc;\n }\n\n acc[current] = user?.[current];\n\n return acc;\n }, {});\n\n const headerLabelName =\n initialData.username || getFullName(initialData.firstname, initialData.lastname);\n\n const title = formatMessage(headerLabel, { name: headerLabelName });\n\n if (isLoading) {\n return (\n <Main aria-busy=\"true\">\n {/* TODO: translate */}\n <SettingsPageTitle name=\"Users\" />\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={title}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/users?pageSize=10&page=1&sort=firstname\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <LoadingIndicatorPage />\n </ContentLayout>\n </Main>\n );\n }\n\n return (\n <Main>\n <SettingsPageTitle name=\"Users\" />\n <Formik\n onSubmit={handleSubmit}\n initialValues={initialData}\n validateOnChange={false}\n validationSchema={editValidation}\n >\n {({ errors, values, handleChange, isSubmitting, dirty }) => {\n return (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate ? true : !dirty}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={title}\n navigationAction={\n <Link\n startIcon={<ArrowLeft />}\n to=\"/settings/users?pageSize=10&page=1&sort=firstname\"\n >\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\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: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n {layout.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={!canUpdate}\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 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.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles\n disabled={!canUpdate}\n error={errors.roles}\n onChange={handleChange}\n value={values.roles}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n </Flex>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Main>\n );\n};\n\nEditPage.propTypes = {\n canUpdate: PropTypes.bool.isRequired,\n};\n\nexport default EditPage;\n","import React, { useEffect } from 'react';\n\nimport { LoadingIndicatorPage, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\nimport { Redirect, useLocation } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditPage from '../EditPage';\n\nconst ProtectedEditPage = () => {\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n\n const memoizedPermissions = React.useMemo(\n () => ({\n read: permissions.settings.users.read,\n update: permissions.settings.users.update,\n }),\n [permissions.settings.users]\n );\n\n const {\n isLoading,\n allowedActions: { canRead, canUpdate },\n } = useRBAC(memoizedPermissions);\n const { state } = useLocation();\n const from = state?.from ?? '/';\n\n useEffect(() => {\n if (!isLoading) {\n if (!canRead && !canUpdate) {\n toggleNotification({\n type: 'info',\n message: {\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n },\n });\n }\n }\n }, [isLoading, canRead, canUpdate, toggleNotification]);\n\n if (isLoading) {\n return <LoadingIndicatorPage />;\n }\n\n if (!canRead && !canUpdate) {\n return <Redirect to={from} />;\n }\n\n return <EditPage canUpdate={canUpdate} />;\n};\n\nexport default ProtectedEditPage;\n"],"names":["getFetchClient","useIntl","useRouteMatch","useHistory","useAppInfo","useNotification","useOverlayBlocker","useEnterprise","MagicLinkCE","useFocusWhenNavigate","useAdminUsers","omit","auth","get","getFullName","pick","formatAPIErrors","id","jsxs","Main","jsx","SettingsPageTitle","HeaderLayout","Button","Check","Link","ArrowLeft","ContentLayout","LoadingIndicatorPage","Formik","editValidation","Form","Box","Flex","Typography","Grid","GridItem","GenericInput","SelectRoles","PropTypes","useSelector","selectAdminPermissions","React","useRBAC","useLocation","useEffect","Redirect"],"mappings":"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"}
1
+ {"version":3,"file":"index-b47862fc.js","sources":["../../admin/src/pages/SettingsPage/pages/Users/EditPage/utils/api.js","../../admin/src/pages/SettingsPage/pages/Users/EditPage/utils/layout.js","../../admin/src/pages/SettingsPage/pages/Users/EditPage/index.js","../../admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js"],"sourcesContent":["import { getFetchClient } from '@strapi/helper-plugin';\n\nconst putUser = async (id, body) => {\n const { put } = getFetchClient();\n\n const { data } = await put(`/admin/users/${id}`, body);\n\n return data.data;\n};\n\nexport { putUser };\n","const 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 intlLabel: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n [\n {\n intlLabel: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password',\n size: {\n col: 6,\n xs: 12,\n },\n autoComplete: 'new-password',\n },\n {\n intlLabel: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password',\n size: {\n col: 6,\n xs: 12,\n },\n autoComplete: 'new-password',\n },\n ],\n [\n {\n intlLabel: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'bool',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n];\n\nexport default layout;\n","import React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Main,\n Typography,\n} from '@strapi/design-system';\nimport {\n auth,\n Form,\n GenericInput,\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAppInfo,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft, Check } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport get from 'lodash/get';\nimport omit from 'lodash/omit';\nimport pick from 'lodash/pick';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../hooks/useAdminUsers';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { formatAPIErrors } from '../../../../../utils/formatAPIErrors';\nimport { getFullName } from '../../../../../utils/getFullName';\nimport { MagicLinkCE } from '../components/MagicLink';\nimport SelectRoles from '../components/SelectRoles';\nimport { editValidation } from '../utils/validations/users';\n\nimport { putUser } from './utils/api';\nimport layout from './utils/layout';\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'];\n\nconst EditPage = ({ canUpdate }) => {\n const { formatMessage } = useIntl();\n const {\n params: { id },\n } = useRouteMatch('/settings/users/:id');\n const { push } = useHistory();\n const { setUserDisplayName } = useAppInfo();\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\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\n useFocusWhenNavigate();\n\n const {\n users: [user],\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n cacheTime: 0,\n\n onError(error) {\n const { status } = error.response;\n\n // Redirect the use to the homepage if is not allowed to read\n if (status === 403) {\n toggleNotification({\n type: 'info',\n message: {\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n },\n });\n\n push('/');\n } else {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const handleSubmit = async (body, actions) => {\n lockApp();\n\n try {\n const data = await putUser(id, omit(body, 'confirmPassword'));\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n const userInfos = auth.getUserInfo();\n\n // The user is updating himself\n if (id.toString() === userInfos.id.toString()) {\n auth.setUserInfo(data);\n\n const userDisplayName = get(body, 'username') || getFullName(body.firstname, body.lastname);\n\n setUserDisplayName(userDisplayName);\n }\n actions.setValues(pick(body, fieldsToPick));\n } catch (err) {\n // FIXME when API errors are ready\n const errors = formatAPIErrors(err.response.data);\n const fieldsErrors = Object.keys(errors).reduce((acc, current) => {\n acc[current] = errors[current].id;\n\n return acc;\n }, {});\n\n actions.setErrors(fieldsErrors);\n toggleNotification({\n type: 'warning',\n message: get(err, 'response.data.error.message', 'notification.error'),\n });\n }\n\n unlockApp();\n };\n\n const isLoading = isLoadingAdminUsers || !MagicLink;\n\n const headerLabel = isLoading\n ? { id: 'app.containers.Users.EditPage.header.label-loading', defaultMessage: 'Edit user' }\n : { id: 'app.containers.Users.EditPage.header.label', defaultMessage: 'Edit {name}' };\n\n const initialData = Object.keys(pick(user, fieldsToPick)).reduce((acc, current) => {\n if (current === 'roles') {\n acc[current] = (user?.roles || []).map(({ id }) => id);\n\n return acc;\n }\n\n acc[current] = user?.[current];\n\n return acc;\n }, {});\n\n const headerLabelName =\n initialData.username || getFullName(initialData.firstname, initialData.lastname);\n\n const title = formatMessage(headerLabel, { name: headerLabelName });\n\n if (isLoading) {\n return (\n <Main aria-busy=\"true\">\n {/* TODO: translate */}\n <SettingsPageTitle name=\"Users\" />\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={title}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/users?pageSize=10&page=1&sort=firstname\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <LoadingIndicatorPage />\n </ContentLayout>\n </Main>\n );\n }\n\n return (\n <Main>\n <SettingsPageTitle name=\"Users\" />\n <Formik\n onSubmit={handleSubmit}\n initialValues={initialData}\n validateOnChange={false}\n validationSchema={editValidation}\n >\n {({ errors, values, handleChange, isSubmitting, dirty }) => {\n return (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate ? true : !dirty}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={title}\n navigationAction={\n <Link\n startIcon={<ArrowLeft />}\n to=\"/settings/users?pageSize=10&page=1&sort=firstname\"\n >\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\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: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n {layout.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={!canUpdate}\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 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.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles\n disabled={!canUpdate}\n error={errors.roles}\n onChange={handleChange}\n value={values.roles}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n </Flex>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Main>\n );\n};\n\nEditPage.propTypes = {\n canUpdate: PropTypes.bool.isRequired,\n};\n\nexport default EditPage;\n","import React, { useEffect } from 'react';\n\nimport { LoadingIndicatorPage, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\nimport { Redirect, useLocation } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditPage from '../EditPage';\n\nconst ProtectedEditPage = () => {\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n\n const memoizedPermissions = React.useMemo(\n () => ({\n read: permissions.settings.users.read,\n update: permissions.settings.users.update,\n }),\n [permissions.settings.users]\n );\n\n const {\n isLoading,\n allowedActions: { canRead, canUpdate },\n } = useRBAC(memoizedPermissions);\n const { state } = useLocation();\n const from = state?.from ?? '/';\n\n useEffect(() => {\n if (!isLoading) {\n if (!canRead && !canUpdate) {\n toggleNotification({\n type: 'info',\n message: {\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n },\n });\n }\n }\n }, [isLoading, canRead, canUpdate, toggleNotification]);\n\n if (isLoading) {\n return <LoadingIndicatorPage />;\n }\n\n if (!canRead && !canUpdate) {\n return <Redirect to={from} />;\n }\n\n return <EditPage canUpdate={canUpdate} />;\n};\n\nexport default ProtectedEditPage;\n"],"names":["getFetchClient","useIntl","useRouteMatch","useHistory","useAppInfo","useNotification","useOverlayBlocker","useEnterprise","MagicLinkCE","useFocusWhenNavigate","useAdminUsers","omit","auth","get","getFullName","pick","formatAPIErrors","id","jsxs","Main","jsx","SettingsPageTitle","HeaderLayout","Button","Check","Link","ArrowLeft","ContentLayout","LoadingIndicatorPage","Formik","editValidation","Form","Box","Flex","Typography","Grid","GridItem","GenericInput","SelectRoles","PropTypes","useSelector","selectAdminPermissions","React","useRBAC","useLocation","useEffect","Redirect"],"mappings":"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"}
@@ -8,8 +8,8 @@ const reactIntl = require("react-intl");
8
8
  const reactQuery = require("react-query");
9
9
  const reactRedux = require("react-redux");
10
10
  const reactRouterDom = require("react-router-dom");
11
- const AuthenticatedApp = require("./AuthenticatedApp-092ef2be.js");
12
- const index$1 = require("./index-edc9bb0b.js");
11
+ const AuthenticatedApp = require("./AuthenticatedApp-26a57d48.js");
12
+ const formatAPIErrors = require("./formatAPIErrors-b599cf27.js");
13
13
  const constants = require("./constants-da2542a3.js");
14
14
  const index = require("./index-d3e1fd86.js");
15
15
  const PropTypes = require("prop-types");
@@ -300,7 +300,7 @@ const TransferTokenCreateView = () => {
300
300
  tokenType: constants.TRANSFER_TOKEN_TYPE
301
301
  });
302
302
  } catch (err) {
303
- const errors = index$1.formatAPIErrors(err.response.data);
303
+ const errors = formatAPIErrors.formatAPIErrors(err.response.data);
304
304
  actions.setErrors(errors);
305
305
  if (err?.response?.data?.error?.message === MSG_ERROR_NAME_TAKEN) {
306
306
  toggleNotification({
@@ -400,4 +400,4 @@ const TransferTokenCreateView = () => {
400
400
  ] });
401
401
  };
402
402
  exports.TransferTokenCreateView = TransferTokenCreateView;
403
- //# sourceMappingURL=index-51a15b27.js.map
403
+ //# sourceMappingURL=index-bea39602.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-51a15b27.js","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":["useIntl","jsx","Box","Flex","Typography","jsxs","Grid","GridItem","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","PropTypes","useFocusWhenNavigate","Main","SettingsPageTitle","HeaderLayout","Button","Check","ContentLayout","LoadingIndicatorPage","yup","translatedErrors","useOverlayBlocker","useNotification","useHistory","useState","useTracking","useRef","useGuidedTour","useSelector","selectAdminPermissions","useRBAC","useRouteMatch","useFetchClient","useAPIErrorHandler","useEffect","TRANSFER_TOKEN_TYPE","useQuery","permissions","formatAPIErrors","Formik","Form","FormHead","TokenBox"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,6BAA6B,CAAC;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,kBAAkBA,UAAAA;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,SAAAC,2BAAA;AAAA,IAACC,aAAA;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,0CAACC,mBAAK,EAAA,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UAAA;AAAA,QAAAF,+BAACG,aAAAA,YAAW,EAAA,SAAQ,SAAQ,IAAG,MAC5B,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QACjB,CAAA,GACH;AAAA,QACAC,2BAAAA,KAACC,aAAAA,MAAK,EAAA,KAAK,GACT,UAAA;AAAA,UAAAL,2BAAA,IAACM,aAAoB,UAAA,EAAA,KAAK,GAAG,IAAI,IAC/B,UAAAN,2BAAA;AAAA,YAACO,MAAA;AAAA,YAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,eALU,MAOd;AAAA,UACCP,2BAAA,IAAAM,aAAA,UAAA,EAA2B,KAAK,GAAG,IAAI,IACtC,UAAAN,2BAAA;AAAA,YAACQ,MAAA;AAAA,YAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,eALU,aAOd;AAAA,UACCR,2BAAA,IAAAM,aAAA,UAAA,EAAwB,KAAK,GAAG,IAAI,IACnC,UAAAN,2BAAA;AAAA,YAACS,MAAA;AAAA,YAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,OAAO;AAAA,YAAA;AAAA,eANG,UAQd;AAAA,UACCT,2BAAA,IAAAM,aAAA,UAAA,EAA2B,KAAK,GAAG,IAAI,IACtC,UAAAN,2BAAA;AAAA,YAACU,MAAA;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,QAAQC,2BAAU,MAAM;AAAA,IACtB,MAAMA,mBAAU,QAAA;AAAA,IAChB,aAAaA,mBAAU,QAAA;AAAA,IACvB,UAAUA,mBAAU,QAAA;AAAA,IACpB,MAAMA,mBAAU,QAAA;AAAA,EAAA,CACjB;AAAA,EACD,UAAUA,mBAAAA,QAAU,KAAK;AAAA,EACzB,eAAeA,mBAAAA,QAAU,KAAK;AAAA,EAC9B,QAAQA,2BAAU,MAAM;AAAA,IACtB,MAAMA,mBAAU,QAAA;AAAA,IAChB,aAAaA,mBAAU,QAAA;AAAA,IACvB,UAAUA,2BAAU,UAAU,CAACA,2BAAU,QAAQA,mBAAAA,QAAU,MAAM,CAAC;AAAA,IAClE,MAAMA,mBAAU,QAAA;AAAA,EACjB,CAAA,EAAE;AAAA,EACH,YAAYA,mBAAAA,QAAU,KAAK;AAAA,EAC3B,eAAeA,2BAAU,MAAM;AAAA,IAC7B,IAAIA,2BAAU,UAAU,CAACA,2BAAU,QAAQA,mBAAAA,QAAU,MAAM,CAAC;AAAA,IAC5D,MAAMA,mBAAU,QAAA;AAAA,IAChB,UAAUA,mBAAU,QAAA;AAAA,IACpB,MAAMA,mBAAU,QAAA;AAAA,IAChB,WAAWA,mBAAU,QAAA;AAAA,IACrB,aAAaA,mBAAU,QAAA;AAAA,IACvB,aAAaA,mBAAU,QAAA;AAAA,IACvB,WAAWA,mBAAU,QAAA;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,kBAAkBZ,UAAAA;AACLa,eAAAA;AAGnB,SAAAR,2BAAA,KAACS,aAAK,MAAA,EAAA,aAAU,QACd,UAAA;AAAA,IAACb,2BAAAA,IAAAc,aAAA,mBAAA,EAAkB,MAAK,kBAAkB,CAAA;AAAA,IAC1Cd,2BAAA;AAAA,MAACe,aAAA;AAAA,MAAA;AAAA,QACC,8CACGC,aAAO,QAAA,EAAA,UAAQ,MAAC,WAAWhB,2BAAA,IAACiB,eAAM,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,IACCjB,2BAAA,IAAAkB,aAAA,eAAA,EACC,UAAClB,2BAAA,IAAAmB,aAAA,sBAAA,CAAqB,CAAA,GACxB;AAAA,EACF,EAAA,CAAA;AAEJ;AAEA,YAAY,eAAe;AAAA,EACzB,mBAAmB;AACrB;AAEA,YAAY,YAAY;AAAA,EACtB,mBAAmBR,mBAAU,QAAA;AAC/B;AC3CA,MAAM,SAASS,eAAI,OAAO,EAAE,MAAM;AAAA,EAChC,MAAMA,eAAI,OAAOC,aAAAA,iBAAiB,MAAM,EAAE,IAAI,GAAG,EAAE,SAASA,aAAAA,iBAAiB,QAAQ;AAAA,EACrF,aAAaD,eAAI,OAAO,EAAE,SAAS;AAAA,EACnC,UAAUA,eAAI,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,SAAW,EAAA,QAAQC,aAAAA,iBAAiB,QAAQ;AAAA,EACpF,aAAaD,eAAI,OAAOC,aAAA,iBAAiB,MAAM,EAAE,SAASA,8BAAiB,QAAQ;AACrF,CAAC;ACuBD,MAAM,uBAAuB;AAE7B,MAAM,0BAA0B,MAAM;AACfT,eAAAA;AACf,QAAA,EAAE,kBAAkBb,UAAAA;AAC1B,QAAM,EAAE,SAAS,UAAU,IAAIuB,aAAkB,kBAAA;AACjD,QAAM,qBAAqBC,aAAAA;AAC3B,QAAM,UAAUC,eAAAA;AACV,QAAA,CAAC,eAAe,gBAAgB,IAAIC,MAAA;AAAA,IACxC,QAAQ,SAAS,OAAO,cAAc,YAClC;AAAA,MACE,GAAG,QAAQ,SAAS,MAAM;AAAA,IAAA,IAE5B;AAAA,EAAA;AAEA,QAAA,EAAE,eAAeC,aAAAA;AACjB,QAAA,gBAAgBC,aAAO,UAAU;AACjC,QAAA,EAAE,mBAAmBC,aAAAA;AACrB,QAAA,cAAcC,uBAAYC,iBAAAA,sBAAsB;AAChD,QAAA;AAAA,IACJ,gBAAgB,EAAE,WAAW,WAAW,cAAc;AAAA,EACpD,IAAAC,aAAA,QAAQ,YAAY,SAAS,iBAAiB,CAAC;AAC7C,QAAA;AAAA,IACJ,QAAQ,EAAE,GAAG;AAAA,EAAA,IACXC,eAAAA,cAAc,+BAA+B;AACjD,QAAM,EAAE,KAAK,MAAM,QAAQC,aAAe,eAAA;AAE1C,QAAM,aAAa,OAAO;AAEpB,QAAA,EAAE,mBAAmBC,aAAAA;AAE3BC,QAAAA,UAAU,MAAM;AACA,kBAAA,QAAQ,aAAa,wBAAwB,wBAAwB;AAAA,MACjF,WAAWC,UAAA;AAAA,IAAA,CACZ;AAAA,EAAA,GACA,CAAC,UAAU,CAAC;AAET,QAAA,EAAE,WAAWC,WAAA;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,WAAWD,UAAA;AAAA,IAAA,CACZ;AACO;AACR,UAAM,cACJ,KAAK,YAAY,SAAS,KAAK,UAAU,EAAE,KAAK,KAAK,aAAa,MAC9D,SAAS,KAAK,UAAU,EAAE,IAC1B;AAEN,UAAME,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,WAAWF,UAAA;AAAA,MAAA,CACZ;AAAA,aACM,KAAK;AACZ,YAAM,SAASG,QAAA,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,WAAQvC,2BAAAA,IAAA,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,yCACGa,mBACC,EAAA,UAAA;AAAA,IAACb,2BAAAA,IAAAc,aAAA,mBAAA,EAAkB,MAAK,kBAAkB,CAAA;AAAA,IAC1Cd,2BAAA;AAAA,MAACwC,OAAA;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,iDACGC,mBACC,EAAA,UAAA;AAAA,YAAAzC,2BAAA;AAAA,cAAC0C,MAAA;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,YACA1C,2BAAAA,IAACkB,aAAAA,iBACC,UAACd,2BAAAA,KAAAF,aAAAA,MAAA,EAAK,WAAU,UAAS,YAAW,WAAU,KAAK,GAChD,UAAA;AAAA,cAAQ,QAAA,eAAe,IAAI,KAC1BF,2BAAA,IAAC2C,kBAAS,OAAO,eAAe,WAAW,WAAWP,UAAqB,oBAAA,CAAA;AAAA,cAE7EpC,2BAAA;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;;"}
1
+ {"version":3,"file":"index-bea39602.js","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":["useIntl","jsx","Box","Flex","Typography","jsxs","Grid","GridItem","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","PropTypes","useFocusWhenNavigate","Main","SettingsPageTitle","HeaderLayout","Button","Check","ContentLayout","LoadingIndicatorPage","yup","translatedErrors","useOverlayBlocker","useNotification","useHistory","useState","useTracking","useRef","useGuidedTour","useSelector","selectAdminPermissions","useRBAC","useRouteMatch","useFetchClient","useAPIErrorHandler","useEffect","TRANSFER_TOKEN_TYPE","useQuery","permissions","formatAPIErrors","Formik","Form","FormHead","TokenBox"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { useFocusWhenNavigate, useNotification, useRBAC, useTracking, useGuidedTour, useFetchClient, SettingsPageTitle, LinkButton, NoPermissions, NoContent, CheckPagePermissions } from "@strapi/helper-plugin";
3
3
  import { useSelector } from "react-redux";
4
- import { s as selectAdminPermissions } from "./AuthenticatedApp-b0ada7e9.mjs";
4
+ import { s as selectAdminPermissions } from "./AuthenticatedApp-332b40a8.mjs";
5
5
  import { useRef, useEffect } from "react";
6
6
  import { Main, HeaderLayout, ContentLayout } from "@strapi/design-system";
7
7
  import { Plus } from "@strapi/icons";
@@ -13,7 +13,7 @@ import { T as TRANSFER_TOKEN_TYPE } from "./constants-d3dd8ed6.mjs";
13
13
  import { T as Table } from "./index-eb67694f.mjs";
14
14
  import "semver/functions/lt";
15
15
  import "semver/functions/valid";
16
- import "./index-34de382e.mjs";
16
+ import "./index-cd461a87.mjs";
17
17
  import "react-dom/client";
18
18
  import "invariant";
19
19
  import "lodash/isFunction";
@@ -21,22 +21,21 @@ import "lodash/merge";
21
21
  import "lodash/pick";
22
22
  import "react-helmet";
23
23
  import "@radix-ui/react-context";
24
- import "axios";
24
+ import "@strapi/design-system/v2";
25
+ import "formik";
25
26
  import "lodash/camelCase";
26
- import "lodash/get";
27
- import "lodash/omit";
28
- import "prop-types";
29
- import "lodash/defaultsDeep";
30
27
  import "styled-components";
31
- import "formik";
32
28
  import "yup";
29
+ import "lodash/defaultsDeep";
30
+ import "lodash/omit";
33
31
  import "immer";
32
+ import "lodash/get";
34
33
  import "lodash/set";
35
34
  import "@reduxjs/toolkit";
36
35
  import "react-dnd";
37
36
  import "react-dnd-html5-backend";
38
- import "@strapi/design-system/v2";
39
37
  import "lodash/cloneDeep";
38
+ import "prop-types";
40
39
  const tableHeaders = [
41
40
  {
42
41
  name: "name",
@@ -268,4 +267,4 @@ const ProtectedTransferTokenListView = () => {
268
267
  export {
269
268
  ProtectedTransferTokenListView as default
270
269
  };
271
- //# sourceMappingURL=index-53ba81f9.mjs.map
270
+ //# sourceMappingURL=index-c202e78f.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-53ba81f9.mjs","sources":["../../admin/src/pages/SettingsPage/pages/TransferTokens/ListView/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedListView/index.js"],"sourcesContent":["const tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport default tableHeaders;\n","import React, { useEffect, useRef } from 'react';\n\nimport { ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LinkButton,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { TRANSFER_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport Table from '../../../components/Tokens/Table';\n\nimport tableHeaders from './utils/tableHeaders';\n\nconst TransferTokenListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions.settings['transfer-tokens']);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n\n const { startSection } = useGuidedTour();\n const startSectionRef = useRef(startSection);\n const { get, del } = useFetchClient();\n\n useEffect(() => {\n if (startSectionRef.current) {\n startSectionRef.current('transferTokens');\n }\n }, []);\n\n useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\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 {\n data: transferTokens,\n status,\n isFetching,\n refetch,\n } = useQuery(\n ['transfer-tokens'],\n async () => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n const {\n data: { data },\n } = await get(`/admin/transfer/tokens`);\n\n trackUsage('didAccessTokenList', { number: data.length, tokenType: TRANSFER_TOKEN_TYPE });\n\n return data;\n },\n {\n enabled: canRead,\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: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const isLoading =\n canRead &&\n ((status !== 'success' && status !== 'error') || (status === 'success' && isFetching));\n\n const deleteMutation = useMutation(\n async (id) => {\n await del(`/admin/transfer/tokens/${id}`);\n },\n {\n async onSuccess() {\n await refetch(['transfer-tokens']);\n },\n onError(err) {\n if (err?.response?.data?.data) {\n toggleNotification({ type: 'warning', message: err.response.data.data });\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: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const hasTransferTokens = transferTokens && transferTokens?.length > 0;\n const shouldDisplayDynamicTable = canRead && hasTransferTokens;\n const shouldDisplayNoContent = canRead && !hasTransferTokens && !canCreate;\n const shouldDisplayNoContentWithCreationButton = canRead && !hasTransferTokens && canCreate;\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <HeaderLayout\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {shouldDisplayDynamicTable && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"trasfer-tokens\"\n rows={transferTokens}\n isLoading={isLoading}\n onConfirmDelete={(id) => deleteMutation.mutateAsync(id)}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {shouldDisplayNoContentWithCreationButton && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n }}\n action={\n <LinkButton\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n />\n )}\n {shouldDisplayNoContent && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport default TransferTokenListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListView from '../ListView';\n\nconst ProtectedTransferTokenListView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['transfer-tokens'].main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedTransferTokenListView;\n"],"names":["qs","ListView"],"mappings":"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"}
1
+ {"version":3,"file":"index-c202e78f.mjs","sources":["../../admin/src/pages/SettingsPage/pages/TransferTokens/ListView/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedListView/index.js"],"sourcesContent":["const tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport default tableHeaders;\n","import React, { useEffect, useRef } from 'react';\n\nimport { ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LinkButton,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { TRANSFER_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport Table from '../../../components/Tokens/Table';\n\nimport tableHeaders from './utils/tableHeaders';\n\nconst TransferTokenListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions.settings['transfer-tokens']);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n\n const { startSection } = useGuidedTour();\n const startSectionRef = useRef(startSection);\n const { get, del } = useFetchClient();\n\n useEffect(() => {\n if (startSectionRef.current) {\n startSectionRef.current('transferTokens');\n }\n }, []);\n\n useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\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 {\n data: transferTokens,\n status,\n isFetching,\n refetch,\n } = useQuery(\n ['transfer-tokens'],\n async () => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n const {\n data: { data },\n } = await get(`/admin/transfer/tokens`);\n\n trackUsage('didAccessTokenList', { number: data.length, tokenType: TRANSFER_TOKEN_TYPE });\n\n return data;\n },\n {\n enabled: canRead,\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: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const isLoading =\n canRead &&\n ((status !== 'success' && status !== 'error') || (status === 'success' && isFetching));\n\n const deleteMutation = useMutation(\n async (id) => {\n await del(`/admin/transfer/tokens/${id}`);\n },\n {\n async onSuccess() {\n await refetch(['transfer-tokens']);\n },\n onError(err) {\n if (err?.response?.data?.data) {\n toggleNotification({ type: 'warning', message: err.response.data.data });\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: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const hasTransferTokens = transferTokens && transferTokens?.length > 0;\n const shouldDisplayDynamicTable = canRead && hasTransferTokens;\n const shouldDisplayNoContent = canRead && !hasTransferTokens && !canCreate;\n const shouldDisplayNoContentWithCreationButton = canRead && !hasTransferTokens && canCreate;\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <HeaderLayout\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {shouldDisplayDynamicTable && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"trasfer-tokens\"\n rows={transferTokens}\n isLoading={isLoading}\n onConfirmDelete={(id) => deleteMutation.mutateAsync(id)}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {shouldDisplayNoContentWithCreationButton && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n }}\n action={\n <LinkButton\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n />\n )}\n {shouldDisplayNoContent && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport default TransferTokenListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListView from '../ListView';\n\nconst ProtectedTransferTokenListView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['transfer-tokens'].main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedTransferTokenListView;\n"],"names":["qs","ListView"],"mappings":"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"}