@strapi/admin 4.15.1 → 4.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/dist/_chunks/{AuthenticatedApp-092ef2be.js → AuthenticatedApp-d1e28164.js} +30 -30
  2. package/dist/_chunks/{AuthenticatedApp-092ef2be.js.map → AuthenticatedApp-d1e28164.js.map} +1 -1
  3. package/dist/_chunks/{AuthenticatedApp-b0ada7e9.mjs → AuthenticatedApp-fd7e406d.mjs} +30 -30
  4. package/dist/_chunks/{AuthenticatedApp-b0ada7e9.mjs.map → AuthenticatedApp-fd7e406d.mjs.map} +1 -1
  5. package/dist/_chunks/{HomePage-5798ba6f.mjs → HomePage-2a7f678a.mjs} +7 -8
  6. package/dist/_chunks/{HomePage-5798ba6f.mjs.map → HomePage-2a7f678a.mjs.map} +1 -1
  7. package/dist/_chunks/{HomePage-5ae473e6.js → HomePage-2ac5c213.js} +7 -8
  8. package/dist/_chunks/{HomePage-5ae473e6.js.map → HomePage-2ac5c213.js.map} +1 -1
  9. package/dist/_chunks/{HomePage-bdcb51be.js → HomePage-616a2985.js} +12 -13
  10. package/dist/_chunks/HomePage-616a2985.js.map +1 -0
  11. package/dist/_chunks/{HomePage-a3cc32d2.mjs → HomePage-ded37c60.mjs} +12 -13
  12. package/dist/_chunks/HomePage-ded37c60.mjs.map +1 -0
  13. package/dist/_chunks/{InstalledPluginsPage-cc2d6a36.js → InstalledPluginsPage-189010c1.js} +10 -12
  14. package/dist/_chunks/{InstalledPluginsPage-cc2d6a36.js.map → InstalledPluginsPage-189010c1.js.map} +1 -1
  15. package/dist/_chunks/{InstalledPluginsPage-6284aaff.mjs → InstalledPluginsPage-afa9edc3.mjs} +10 -12
  16. package/dist/_chunks/{InstalledPluginsPage-6284aaff.mjs.map → InstalledPluginsPage-afa9edc3.mjs.map} +1 -1
  17. package/dist/_chunks/{index-305a03f4.mjs → Login-02ddabf7.mjs} +25 -29
  18. package/dist/_chunks/Login-02ddabf7.mjs.map +1 -0
  19. package/dist/_chunks/{index-137490ba.js → Login-28127829.js} +25 -30
  20. package/dist/_chunks/Login-28127829.js.map +1 -0
  21. package/dist/_chunks/{MarketplacePage-7dee72f5.mjs → MarketplacePage-40f76f3d.mjs} +6 -8
  22. package/dist/_chunks/{MarketplacePage-7dee72f5.mjs.map → MarketplacePage-40f76f3d.mjs.map} +1 -1
  23. package/dist/_chunks/{MarketplacePage-209ec658.js → MarketplacePage-946134e6.js} +6 -8
  24. package/dist/_chunks/{MarketplacePage-209ec658.js.map → MarketplacePage-946134e6.js.map} +1 -1
  25. package/dist/_chunks/{ProfilePage-26c14ba4.mjs → ProfilePage-4c94e332.mjs} +7 -9
  26. package/dist/_chunks/{ProfilePage-26c14ba4.mjs.map → ProfilePage-4c94e332.mjs.map} +1 -1
  27. package/dist/_chunks/{ProfilePage-4f8c127b.js → ProfilePage-6506e401.js} +7 -9
  28. package/dist/_chunks/{ProfilePage-4f8c127b.js.map → ProfilePage-6506e401.js.map} +1 -1
  29. package/dist/_chunks/{SSOProviders-1d062c95.mjs → SSOProviders-62bfad92.mjs} +29 -61
  30. package/dist/_chunks/SSOProviders-62bfad92.mjs.map +1 -0
  31. package/dist/_chunks/{SSOProviders-1ef0a89e.js → SSOProviders-b395a4e6.js} +28 -80
  32. package/dist/_chunks/SSOProviders-b395a4e6.js.map +1 -0
  33. package/dist/_chunks/{build-f36bfc97.js → build-55ba3e68.js} +4 -2
  34. package/dist/_chunks/{build-f36bfc97.js.map → build-55ba3e68.js.map} +1 -1
  35. package/dist/_chunks/{build-e1ca35da.mjs → build-b67ecc59.mjs} +4 -2
  36. package/dist/_chunks/{build-e1ca35da.mjs.map → build-b67ecc59.mjs.map} +1 -1
  37. package/dist/_chunks/{constants-70e05152.js → constants-42f4f7b3.js} +6 -6
  38. package/dist/_chunks/{constants-70e05152.js.map → constants-42f4f7b3.js.map} +1 -1
  39. package/dist/_chunks/{constants-921eda17.mjs → constants-6ecddc43.mjs} +43 -15
  40. package/dist/_chunks/constants-6ecddc43.mjs.map +1 -0
  41. package/dist/_chunks/{constants-727a113c.js → constants-733b0568.js} +26 -26
  42. package/dist/_chunks/constants-733b0568.js.map +1 -0
  43. package/dist/_chunks/{constants-86aa3e70.js → constants-7596f6f3.js} +60 -13
  44. package/dist/_chunks/constants-7596f6f3.js.map +1 -0
  45. package/dist/_chunks/{constants-32975b2e.js → constants-82e97fee.js} +11 -12
  46. package/dist/_chunks/{constants-32975b2e.js.map → constants-82e97fee.js.map} +1 -1
  47. package/dist/_chunks/{constants-90c20a6f.mjs → constants-952c50be.mjs} +11 -12
  48. package/dist/_chunks/{constants-90c20a6f.mjs.map → constants-952c50be.mjs.map} +1 -1
  49. package/dist/_chunks/{constants-9de7641c.mjs → constants-c0280aed.mjs} +28 -28
  50. package/dist/_chunks/constants-c0280aed.mjs.map +1 -0
  51. package/dist/_chunks/{constants-a773ff9b.js → constants-c9fce26f.js} +13 -12
  52. package/dist/_chunks/{constants-a773ff9b.js.map → constants-c9fce26f.js.map} +1 -1
  53. package/dist/_chunks/{constants-6157f648.mjs → constants-cbadfd36.mjs} +6 -6
  54. package/dist/_chunks/{constants-6157f648.mjs.map → constants-cbadfd36.mjs.map} +1 -1
  55. package/dist/_chunks/{constants-27319180.mjs → constants-cd1acf1b.mjs} +13 -12
  56. package/dist/_chunks/{constants-27319180.mjs.map → constants-cd1acf1b.mjs.map} +1 -1
  57. package/dist/_chunks/{develop-513c9644.js → develop-69e28e61.js} +4 -2
  58. package/dist/_chunks/{develop-513c9644.js.map → develop-69e28e61.js.map} +1 -1
  59. package/dist/_chunks/{develop-e45b460e.mjs → develop-d97e7494.mjs} +4 -2
  60. package/dist/_chunks/{develop-e45b460e.mjs.map → develop-d97e7494.mjs.map} +1 -1
  61. package/dist/_chunks/formatAPIErrors-b599cf27.js +20 -0
  62. package/dist/_chunks/formatAPIErrors-b599cf27.js.map +1 -0
  63. package/dist/_chunks/formatAPIErrors-db6ed675.mjs +21 -0
  64. package/dist/_chunks/formatAPIErrors-db6ed675.mjs.map +1 -0
  65. package/dist/_chunks/{index-af69bc98.mjs → index-01dfec54.mjs} +11 -11
  66. package/dist/_chunks/{index-af69bc98.mjs.map → index-01dfec54.mjs.map} +1 -1
  67. package/dist/_chunks/{index-fcd5bc14.mjs → index-0ed0c104.mjs} +14 -13
  68. package/dist/_chunks/{index-fcd5bc14.mjs.map → index-0ed0c104.mjs.map} +1 -1
  69. package/dist/_chunks/{index-1f1e2465.js → index-13a78498.js} +9 -11
  70. package/dist/_chunks/{index-1f1e2465.js.map → index-13a78498.js.map} +1 -1
  71. package/dist/_chunks/{index-6b9e3d60.js → index-150ec200.js} +9 -10
  72. package/dist/_chunks/{index-6b9e3d60.js.map → index-150ec200.js.map} +1 -1
  73. package/dist/_chunks/{index-b2257157.js → index-17acbe23.js} +49 -12
  74. package/dist/_chunks/index-17acbe23.js.map +1 -0
  75. package/dist/_chunks/{index-f5342ea5.js → index-17fbff58.js} +14 -13
  76. package/dist/_chunks/{index-f5342ea5.js.map → index-17fbff58.js.map} +1 -1
  77. package/dist/_chunks/{index-bb8093ea.mjs → index-18155022.mjs} +12 -12
  78. package/dist/_chunks/{index-bb8093ea.mjs.map → index-18155022.mjs.map} +1 -1
  79. package/dist/_chunks/{index-e22d1a84.mjs → index-22993544.mjs} +14 -13
  80. package/dist/_chunks/{index-e22d1a84.mjs.map → index-22993544.mjs.map} +1 -1
  81. package/dist/_chunks/{index-16030b74.js → index-2f4b78ee.js} +3 -3
  82. package/dist/_chunks/index-2f4b78ee.js.map +1 -0
  83. package/dist/_chunks/{index-35e4bad6.mjs → index-30933e3e.mjs} +8 -9
  84. package/dist/_chunks/{index-35e4bad6.mjs.map → index-30933e3e.mjs.map} +1 -1
  85. package/dist/_chunks/{index-928b18d2.mjs → index-31227291.mjs} +3 -3
  86. package/dist/_chunks/{index-928b18d2.mjs.map → index-31227291.mjs.map} +1 -1
  87. package/dist/_chunks/{index-24189ec9.js → index-3b888524.js} +6 -6
  88. package/dist/_chunks/{index-24189ec9.js.map → index-3b888524.js.map} +1 -1
  89. package/dist/_chunks/{index-5752584c.mjs → index-44360544.mjs} +182 -76
  90. package/dist/_chunks/index-44360544.mjs.map +1 -0
  91. package/dist/_chunks/{index-be2ca313.mjs → index-45ae7be1.mjs} +13 -13
  92. package/dist/_chunks/{index-be2ca313.mjs.map → index-45ae7be1.mjs.map} +1 -1
  93. package/dist/_chunks/{index-62b4b3fc.js → index-470a72bf.js} +11 -11
  94. package/dist/_chunks/{index-62b4b3fc.js.map → index-470a72bf.js.map} +1 -1
  95. package/dist/_chunks/{index-00202c8a.mjs → index-4a46c368.mjs} +13 -12
  96. package/dist/_chunks/{index-00202c8a.mjs.map → index-4a46c368.mjs.map} +1 -1
  97. package/dist/_chunks/{index-332f319e.mjs → index-52b70b56.mjs} +8 -10
  98. package/dist/_chunks/{index-332f319e.mjs.map → index-52b70b56.mjs.map} +1 -1
  99. package/dist/_chunks/{index-5ad8482b.mjs → index-55f9b6b3.mjs} +7 -7
  100. package/dist/_chunks/{index-5ad8482b.mjs.map → index-55f9b6b3.mjs.map} +1 -1
  101. package/dist/_chunks/{index-6cc54f3b.mjs → index-59e31a9f.mjs} +8 -9
  102. package/dist/_chunks/{index-6cc54f3b.mjs.map → index-59e31a9f.mjs.map} +1 -1
  103. package/dist/_chunks/{index-1e973c03.mjs → index-5df8a59e.mjs} +14 -13
  104. package/dist/_chunks/{index-1e973c03.mjs.map → index-5df8a59e.mjs.map} +1 -1
  105. package/dist/_chunks/{index-34de382e.mjs → index-60a57d31.mjs} +688 -824
  106. package/dist/_chunks/index-60a57d31.mjs.map +1 -0
  107. package/dist/_chunks/{index-77e0e5d7.js → index-62264743.js} +8 -7
  108. package/dist/_chunks/{index-77e0e5d7.js.map → index-62264743.js.map} +1 -1
  109. package/dist/_chunks/{index-4565fcbd.js → index-6931e33c.js} +3 -3
  110. package/dist/_chunks/{index-4565fcbd.js.map → index-6931e33c.js.map} +1 -1
  111. package/dist/_chunks/{index-3c58de6f.js → index-748f8264.js} +14 -13
  112. package/dist/_chunks/{index-3c58de6f.js.map → index-748f8264.js.map} +1 -1
  113. package/dist/_chunks/{index-bdfc1149.mjs → index-768b7de9.mjs} +49 -12
  114. package/dist/_chunks/index-768b7de9.mjs.map +1 -0
  115. package/dist/_chunks/{index-1763a04f.js → index-7739ddf5.js} +8 -9
  116. package/dist/_chunks/{index-1763a04f.js.map → index-7739ddf5.js.map} +1 -1
  117. package/dist/_chunks/{index-89d27faa.js → index-794eb0b6.js} +14 -13
  118. package/dist/_chunks/{index-89d27faa.js.map → index-794eb0b6.js.map} +1 -1
  119. package/dist/_chunks/{index-f448aed2.js → index-7e9cd960.js} +13 -12
  120. package/dist/_chunks/{index-f448aed2.js.map → index-7e9cd960.js.map} +1 -1
  121. package/dist/_chunks/{index-0af587c3.js → index-7f642760.js} +78 -147
  122. package/dist/_chunks/index-7f642760.js.map +1 -0
  123. package/dist/_chunks/{index-56ced4ab.mjs → index-853bd239.mjs} +8 -7
  124. package/dist/_chunks/{index-56ced4ab.mjs.map → index-853bd239.mjs.map} +1 -1
  125. package/dist/_chunks/{index-b98ea3ce.mjs → index-8a4d0275.mjs} +13 -14
  126. package/dist/_chunks/{index-b98ea3ce.mjs.map → index-8a4d0275.mjs.map} +1 -1
  127. package/dist/_chunks/{index-6dbc94a9.mjs → index-9c45bda7.mjs} +6 -6
  128. package/dist/_chunks/{index-6dbc94a9.mjs.map → index-9c45bda7.mjs.map} +1 -1
  129. package/dist/_chunks/{index-4c5acc70.js → index-9eb160a3.js} +9 -10
  130. package/dist/_chunks/{index-4c5acc70.js.map → index-9eb160a3.js.map} +1 -1
  131. package/dist/_chunks/{index-51a15b27.js → index-9f155b14.js} +4 -4
  132. package/dist/_chunks/{index-51a15b27.js.map → index-9f155b14.js.map} +1 -1
  133. package/dist/_chunks/{index-066ee02e.js → index-9f50c8b0.js} +8 -10
  134. package/dist/_chunks/{index-066ee02e.js.map → index-9f50c8b0.js.map} +1 -1
  135. package/dist/_chunks/{index-284c5926.js → index-9f900c47.js} +33 -47
  136. package/dist/_chunks/index-9f900c47.js.map +1 -0
  137. package/dist/_chunks/{index-5d8d89a7.js → index-a163001f.js} +13 -13
  138. package/dist/_chunks/{index-5d8d89a7.js.map → index-a163001f.js.map} +1 -1
  139. package/dist/_chunks/{index-34a2909e.mjs → index-a3176d19.mjs} +12 -12
  140. package/dist/_chunks/{index-34a2909e.mjs.map → index-a3176d19.mjs.map} +1 -1
  141. package/dist/_chunks/{index-ea23ee9f.mjs → index-a7d28c42.mjs} +9 -11
  142. package/dist/_chunks/{index-ea23ee9f.mjs.map → index-a7d28c42.mjs.map} +1 -1
  143. package/dist/_chunks/{index-a4348f3b.js → index-a8358156.js} +12 -12
  144. package/dist/_chunks/index-a8358156.js.map +1 -0
  145. package/dist/_chunks/{index-58db145d.mjs → index-a8d13f01.mjs} +3 -3
  146. package/dist/_chunks/{index-58db145d.mjs.map → index-a8d13f01.mjs.map} +1 -1
  147. package/dist/_chunks/{index-59d22949.mjs → index-b4cc14ad.mjs} +8 -9
  148. package/dist/_chunks/{index-59d22949.mjs.map → index-b4cc14ad.mjs.map} +1 -1
  149. package/dist/_chunks/{index-6a512cec.js → index-bad666f0.js} +8 -9
  150. package/dist/_chunks/{index-6a512cec.js.map → index-bad666f0.js.map} +1 -1
  151. package/dist/_chunks/{index-53ba81f9.mjs → index-bf788868.mjs} +9 -10
  152. package/dist/_chunks/{index-53ba81f9.mjs.map → index-bf788868.mjs.map} +1 -1
  153. package/dist/_chunks/{index-da04b144.js → index-bfb5b3ab.js} +14 -13
  154. package/dist/_chunks/{index-da04b144.js.map → index-bfb5b3ab.js.map} +1 -1
  155. package/dist/_chunks/{index-cadd3ee0.js → index-c0603138.js} +4 -4
  156. package/dist/_chunks/{index-cadd3ee0.js.map → index-c0603138.js.map} +1 -1
  157. package/dist/_chunks/{index-c604806d.js → index-c3761887.js} +12 -12
  158. package/dist/_chunks/{index-c604806d.js.map → index-c3761887.js.map} +1 -1
  159. package/dist/_chunks/{index-1da8c640.mjs → index-c4d3a07b.mjs} +9 -10
  160. package/dist/_chunks/{index-1da8c640.mjs.map → index-c4d3a07b.mjs.map} +1 -1
  161. package/dist/_chunks/{index-36e0d449.mjs → index-c7386be1.mjs} +32 -45
  162. package/dist/_chunks/index-c7386be1.mjs.map +1 -0
  163. package/dist/_chunks/{index-8d4d361d.mjs → index-cc7bedec.mjs} +13 -13
  164. package/dist/_chunks/{index-8d4d361d.mjs.map → index-cc7bedec.mjs.map} +1 -1
  165. package/dist/_chunks/{index-86dfbe3a.js → index-cce8ecb6.js} +178 -72
  166. package/dist/_chunks/index-cce8ecb6.js.map +1 -0
  167. package/dist/_chunks/{index-acd6d64f.js → index-cdadc366.js} +8 -7
  168. package/dist/_chunks/{index-acd6d64f.js.map → index-cdadc366.js.map} +1 -1
  169. package/dist/_chunks/{index-48322669.mjs → index-d81f74c4.mjs} +3 -3
  170. package/dist/_chunks/index-d81f74c4.mjs.map +1 -0
  171. package/dist/_chunks/{index-b81f7273.mjs → index-d93367d2.mjs} +78 -147
  172. package/dist/_chunks/index-d93367d2.mjs.map +1 -0
  173. package/dist/_chunks/{index-85069cac.mjs → index-dace55d9.mjs} +9 -10
  174. package/dist/_chunks/{index-85069cac.mjs.map → index-dace55d9.mjs.map} +1 -1
  175. package/dist/_chunks/{index-f179c7ea.js → index-db37fbe6.js} +13 -13
  176. package/dist/_chunks/{index-f179c7ea.js.map → index-db37fbe6.js.map} +1 -1
  177. package/dist/_chunks/{index-d1620260.js → index-dcb2c919.js} +13 -14
  178. package/dist/_chunks/{index-d1620260.js.map → index-dcb2c919.js.map} +1 -1
  179. package/dist/_chunks/{index-52b5db8a.js → index-dd3259f3.js} +8 -9
  180. package/dist/_chunks/{index-52b5db8a.js.map → index-dd3259f3.js.map} +1 -1
  181. package/dist/_chunks/{index-7d40adea.mjs → index-df42dfec.mjs} +8 -7
  182. package/dist/_chunks/{index-7d40adea.mjs.map → index-df42dfec.mjs.map} +1 -1
  183. package/dist/_chunks/{index-edc9bb0b.js → index-e2663a88.js} +673 -811
  184. package/dist/_chunks/index-e2663a88.js.map +1 -0
  185. package/dist/_chunks/{index-7aed99db.js → index-e2c5346d.js} +12 -12
  186. package/dist/_chunks/{index-7aed99db.js.map → index-e2c5346d.js.map} +1 -1
  187. package/dist/_chunks/{index-e414353b.js → index-e7381e58.js} +8 -8
  188. package/dist/_chunks/{index-e414353b.js.map → index-e7381e58.js.map} +1 -1
  189. package/dist/_chunks/{index-73ba6bdd.mjs → index-e8eff6c5.mjs} +3 -3
  190. package/dist/_chunks/{index-73ba6bdd.mjs.map → index-e8eff6c5.mjs.map} +1 -1
  191. package/dist/_chunks/{index-370a4ee8.mjs → index-f69d3930.mjs} +12 -12
  192. package/dist/_chunks/index-f69d3930.mjs.map +1 -0
  193. package/dist/_chunks/{index-8ea5a488.js → index-f9e95b10.js} +9 -10
  194. package/dist/_chunks/{index-8ea5a488.js.map → index-f9e95b10.js.map} +1 -1
  195. package/dist/_chunks/{index-1b7e986c.mjs → index-fe29b1fd.mjs} +14 -13
  196. package/dist/_chunks/{index-1b7e986c.mjs.map → index-fe29b1fd.mjs.map} +1 -1
  197. package/dist/_chunks/{schema-f49c76d7.js → schema-8eebfdf9.js} +2 -2
  198. package/dist/_chunks/{schema-f49c76d7.js.map → schema-8eebfdf9.js.map} +1 -1
  199. package/dist/_chunks/{schema-a95f2514.mjs → schema-ac25a47b.mjs} +2 -2
  200. package/dist/_chunks/{schema-a95f2514.mjs.map → schema-ac25a47b.mjs.map} +1 -1
  201. package/dist/_chunks/{validateWorkflow-d051b610.mjs → validateWorkflow-2511dc85.mjs} +3 -3
  202. package/dist/_chunks/{validateWorkflow-d051b610.mjs.map → validateWorkflow-2511dc85.mjs.map} +1 -1
  203. package/dist/_chunks/{validateWorkflow-e66d7d2e.js → validateWorkflow-c0f3148d.js} +3 -3
  204. package/dist/_chunks/{validateWorkflow-e66d7d2e.js.map → validateWorkflow-c0f3148d.js.map} +1 -1
  205. package/dist/admin/index.js +9 -10
  206. package/dist/admin/index.js.map +1 -1
  207. package/dist/admin/index.mjs +9 -10
  208. package/dist/admin/index.mjs.map +1 -1
  209. package/dist/admin/src/constants.d.ts +10 -0
  210. package/dist/admin/src/contexts/admin.d.ts +2 -2
  211. package/dist/admin/src/hooks/__mocks__/useSettingsMenu.d.ts +2 -0
  212. package/dist/admin/src/hooks/useEnterprise.d.ts +6 -4
  213. package/dist/admin/src/hooks/useSettingsMenu.d.ts +24 -0
  214. package/dist/admin/src/pages/Auth/AuthPage.d.ts +6 -0
  215. package/dist/admin/src/pages/Auth/components/FieldActionWrapper.d.ts +3 -0
  216. package/dist/admin/src/pages/Auth/components/ForgotPassword.d.ts +3 -0
  217. package/dist/admin/src/pages/Auth/components/ForgotPasswordSuccess.d.ts +2 -0
  218. package/dist/admin/src/pages/Auth/components/Login.d.ts +8 -0
  219. package/dist/admin/src/pages/Auth/components/Oops.d.ts +2 -0
  220. package/dist/admin/src/pages/Auth/components/Register.d.ts +7 -0
  221. package/dist/admin/src/pages/Auth/components/ResetPassword.d.ts +3 -0
  222. package/dist/admin/src/pages/Auth/constants.d.ts +14 -0
  223. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
  224. package/dist/admin/src/types/permissions.d.ts +10 -0
  225. package/dist/cli.js +3 -1
  226. package/dist/cli.js.map +1 -1
  227. package/dist/cli.mjs +3 -1
  228. package/dist/cli.mjs.map +1 -1
  229. package/dist/ee/admin/src/constants.d.ts +3 -1
  230. package/dist/ee/admin/src/pages/AuthPage/components/Login.d.ts +3 -0
  231. package/dist/ee/admin/src/pages/AuthPage/components/Providers.d.ts +2 -0
  232. package/dist/ee/admin/src/pages/AuthPage/components/SSOProviders.d.ts +8 -0
  233. package/dist/ee/admin/src/pages/AuthPage/constants.d.ts +3 -0
  234. package/dist/ee/admin/src/pages/AuthResponse.d.ts +2 -0
  235. package/dist/ee/admin/src/pages/HomePage.d.ts +1 -1
  236. package/dist/shared/contracts/authentication.d.ts +126 -0
  237. package/dist/shared/contracts/providers.d.ts +18 -0
  238. package/package.json +21 -21
  239. package/dist/_chunks/HomePage-a3cc32d2.mjs.map +0 -1
  240. package/dist/_chunks/HomePage-bdcb51be.js.map +0 -1
  241. package/dist/_chunks/SSOProviders-1d062c95.mjs.map +0 -1
  242. package/dist/_chunks/SSOProviders-1ef0a89e.js.map +0 -1
  243. package/dist/_chunks/constants-12dfb222.mjs +0 -34
  244. package/dist/_chunks/constants-12dfb222.mjs.map +0 -1
  245. package/dist/_chunks/constants-1aea1185.js +0 -34
  246. package/dist/_chunks/constants-1aea1185.js.map +0 -1
  247. package/dist/_chunks/constants-727a113c.js.map +0 -1
  248. package/dist/_chunks/constants-86aa3e70.js.map +0 -1
  249. package/dist/_chunks/constants-921eda17.mjs.map +0 -1
  250. package/dist/_chunks/constants-9de7641c.mjs.map +0 -1
  251. package/dist/_chunks/index-0af587c3.js.map +0 -1
  252. package/dist/_chunks/index-137490ba.js.map +0 -1
  253. package/dist/_chunks/index-16030b74.js.map +0 -1
  254. package/dist/_chunks/index-284c5926.js.map +0 -1
  255. package/dist/_chunks/index-305a03f4.mjs.map +0 -1
  256. package/dist/_chunks/index-34de382e.mjs.map +0 -1
  257. package/dist/_chunks/index-36e0d449.mjs.map +0 -1
  258. package/dist/_chunks/index-370a4ee8.mjs.map +0 -1
  259. package/dist/_chunks/index-48322669.mjs.map +0 -1
  260. package/dist/_chunks/index-5752584c.mjs.map +0 -1
  261. package/dist/_chunks/index-86dfbe3a.js.map +0 -1
  262. package/dist/_chunks/index-a4348f3b.js.map +0 -1
  263. package/dist/_chunks/index-b2257157.js.map +0 -1
  264. package/dist/_chunks/index-b81f7273.mjs.map +0 -1
  265. package/dist/_chunks/index-bdfc1149.mjs.map +0 -1
  266. package/dist/_chunks/index-edc9bb0b.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index-34a2909e.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/index.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, Loader, Typography } from '@strapi/design-system';\nimport {\n ConfirmDialog,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { useFormik, Form, FormikProvider } from 'formik';\nimport set from 'lodash/set';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useParams } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../../../../../admin/src/hooks/useAdminRoles';\nimport { useContentTypes } from '../../../../../../../../../admin/src/hooks/useContentTypes';\nimport { useInjectReducer } from '../../../../../../../../../admin/src/hooks/useInjectReducer';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport {\n resetWorkflow,\n setIsLoading,\n setWorkflow,\n setContentTypes,\n setRoles,\n setWorkflows,\n} from '../../actions';\nimport * as Layout from '../../components/Layout';\nimport * as LimitsModal from '../../components/LimitsModal';\nimport { Stages } from '../../components/Stages';\nimport { WorkflowAttributes } from '../../components/WorkflowAttributes';\nimport {\n CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n REDUX_NAMESPACE,\n} from '../../constants';\nimport { useReviewWorkflows } from '../../hooks/useReviewWorkflows';\nimport { reducer } from '../../reducer';\nimport {\n selectIsWorkflowDirty,\n selectCurrentWorkflow,\n selectHasDeletedServerStages,\n selectIsLoading,\n selectRoles,\n selectServerState,\n} from '../../selectors';\nimport { validateWorkflow } from '../../utils/validateWorkflow';\n\nexport function ReviewWorkflowsEditView() {\n const { workflowId } = useParams();\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const dispatch = useDispatch();\n const { put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { isLoading: isLoadingWorkflow, meta, workflows, refetch } = useReviewWorkflows();\n const { collectionTypes, singleTypes, isLoading: isLoadingContentTypes } = useContentTypes();\n const serverState = useSelector(selectServerState);\n const currentWorkflowIsDirty = useSelector(selectIsWorkflowDirty);\n const currentWorkflow = useSelector(selectCurrentWorkflow);\n const hasDeletedServerStages = useSelector(selectHasDeletedServerStages);\n const roles = useSelector(selectRoles);\n const isLoading = useSelector(selectIsLoading);\n const {\n allowedActions: { canDelete, canUpdate },\n } = useRBAC(permissions.settings['review-workflows']);\n const [savePrompts, setSavePrompts] = React.useState({});\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { isLoading: isLoadingRoles, roles: serverRoles } = useAdminRoles(undefined, {\n retry: false,\n });\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n const [initialErrors, setInitialErrors] = React.useState(null);\n\n const workflow = workflows.find((workflow) => workflow.id === parseInt(workflowId, 10));\n const contentTypesFromOtherWorkflows = workflows\n .filter((workflow) => workflow.id !== parseInt(workflowId, 10))\n .flatMap((workflow) => workflow.contentTypes);\n\n const { mutateAsync, isLoading: isLoadingMutation } = useMutation(\n async ({ workflow }) => {\n const {\n data: { data },\n } = await put(`/admin/review-workflows/workflows/${workflow.id}`, {\n data: workflow,\n });\n\n return data;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved', defaultMessage: 'Saved' },\n });\n },\n }\n );\n\n const updateWorkflow = async (workflow) => {\n // reset the error messages\n setInitialErrors(null);\n\n try {\n const res = await mutateAsync({\n workflow: {\n ...workflow,\n\n // compare permissions of stages and only submit them if at least one has\n // changed; this enables partial updates e.g. for users who don't have\n // permissions to see roles\n stages: workflow.stages.map((stage) => {\n let hasUpdatedPermissions = true;\n const serverStage = serverState.workflow.stages.find(\n (serverStage) => serverStage.id === stage?.id\n );\n\n if (serverStage) {\n hasUpdatedPermissions =\n serverStage.permissions?.length !== stage.permission?.length ||\n !serverStage.permissions.every(\n (serverPermission) =>\n !!stage.permissions.find(\n (permission) => permission.role === serverPermission.role\n )\n );\n }\n\n return {\n ...stage,\n permissions: hasUpdatedPermissions ? stage.permissions : undefined,\n };\n }),\n },\n });\n\n return res;\n } catch (error) {\n // TODO: this would benefit from a utility to get a formik error\n // representation from an API error\n if (\n error.response.data?.error?.name === 'ValidationError' &&\n error.response.data?.error?.details?.errors?.length > 0\n ) {\n setInitialErrors(\n error.response.data?.error?.details?.errors.reduce((acc, error) => {\n set(acc, error.path, error.message);\n\n return acc;\n }, {})\n );\n }\n\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n\n return null;\n }\n };\n\n const submitForm = async () => {\n await updateWorkflow(currentWorkflow);\n await refetch();\n\n setSavePrompts({});\n };\n\n const handleConfirmDeleteDialog = async () => {\n await submitForm();\n };\n\n const handleConfirmClose = () => {\n setSavePrompts({});\n };\n\n const formik = useFormik({\n enableReinitialize: true,\n initialErrors,\n initialValues: currentWorkflow,\n async onSubmit() {\n const isContentTypeReassignment = currentWorkflow.contentTypes.some((contentType) =>\n contentTypesFromOtherWorkflows.includes(contentType)\n );\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n /**\n * If the current license has a limit, check if the total count of workflows\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit, check if the total count of stages\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n currentWorkflow.stages.length >\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('stage');\n } else if (hasDeletedServerStages || isContentTypeReassignment) {\n if (hasDeletedServerStages) {\n setSavePrompts((prev) => ({ ...prev, hasDeletedServerStages: true }));\n }\n\n if (isContentTypeReassignment) {\n setSavePrompts((prev) => ({ ...prev, hasReassignedContentTypes: true }));\n }\n } else {\n submitForm();\n }\n },\n validate(values) {\n return validateWorkflow({ values, formatMessage });\n },\n });\n\n useInjectReducer(REDUX_NAMESPACE, reducer);\n\n const limits = getFeature('review-workflows');\n\n React.useEffect(() => {\n if (!isLoadingWorkflow) {\n dispatch(setWorkflow({ workflow }));\n dispatch(setWorkflows({ workflows }));\n }\n\n if (!isLoadingContentTypes) {\n dispatch(setContentTypes({ collectionTypes, singleTypes }));\n }\n\n if (!isLoadingRoles) {\n dispatch(setRoles(serverRoles));\n }\n\n dispatch(setIsLoading(isLoadingWorkflow || isLoadingContentTypes || isLoadingRoles));\n\n // reset the state to the initial state to avoid flashes if a user\n // navigates from an edit-view to a create-view\n return () => {\n dispatch(resetWorkflow());\n };\n }, [\n collectionTypes,\n dispatch,\n isLoadingContentTypes,\n isLoadingWorkflow,\n isLoadingRoles,\n serverRoles,\n singleTypes,\n workflow,\n workflows,\n ]);\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n\n React.useEffect(() => {\n if (!isLoadingWorkflow && !isLicenseLoading) {\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('workflow');\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n currentWorkflow.stages.length >\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('stage');\n }\n }\n }, [\n currentWorkflow.stages.length,\n isLicenseLoading,\n isLoadingWorkflow,\n limits,\n meta?.workflowCount,\n meta.workflowsTotal,\n ]);\n\n React.useEffect(() => {\n if (!isLoading && roles.length === 0) {\n toggleNotification({\n blockTransition: true,\n type: 'warning',\n message: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles',\n }),\n });\n }\n }, [formatMessage, isLoading, roles, toggleNotification]);\n\n // TODO: redirect back to list-view if workflow is not found?\n\n return (\n <>\n <Layout.DragLayerRendered />\n\n <FormikProvider value={formik}>\n <Form onSubmit={formik.handleSubmit}>\n <Layout.Header\n navigationAction={<Layout.Back href=\"/settings/review-workflows\" />}\n primaryAction={\n canUpdate && (\n <Button\n startIcon={<Check />}\n type=\"submit\"\n size=\"M\"\n disabled={!currentWorkflowIsDirty}\n // if the confirm dialog is open the loading state is on\n // the confirm button already\n loading={!Object.keys(savePrompts).length > 0 && isLoadingMutation}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n subtitle={\n !isLoading &&\n formatMessage(\n {\n id: 'Settings.review-workflows.page.subtitle',\n defaultMessage: '{count, plural, one {# stage} other {# stages}}',\n },\n { count: currentWorkflow.stages.length }\n )\n }\n title={currentWorkflow.name}\n />\n\n <Layout.Root>\n {isLoading ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.isLoading',\n defaultMessage: 'Workflow is loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Flex alignItems=\"stretch\" direction=\"column\" gap={7}>\n <WorkflowAttributes canUpdate={canUpdate} />\n <Stages\n canDelete={canDelete}\n canUpdate={canUpdate}\n stages={formik.values?.stages}\n />\n </Flex>\n )}\n </Layout.Root>\n </Form>\n </FormikProvider>\n\n <ConfirmDialog.Root\n isConfirmButtonLoading={isLoading}\n isOpen={Object.keys(savePrompts).length > 0}\n onToggleDialog={handleConfirmClose}\n onConfirm={handleConfirmDeleteDialog}\n >\n <ConfirmDialog.Body>\n <Flex direction=\"column\" gap={5}>\n {savePrompts.hasDeletedServerStages && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.stages.body',\n defaultMessage:\n 'All entries assigned to deleted stages will be moved to the previous stage.',\n })}\n </Typography>\n )}\n\n {savePrompts.hasReassignedContentTypes && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage(\n {\n id: 'Settings.review-workflows.page.delete.confirm.contentType.body',\n defaultMessage:\n '{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed.',\n },\n {\n count: contentTypesFromOtherWorkflows.filter((contentType) =>\n currentWorkflow.contentTypes.includes(contentType)\n ).length,\n }\n )}\n </Typography>\n )}\n\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.confirm',\n defaultMessage: 'Are you sure you want to save?',\n })}\n </Typography>\n </Flex>\n </ConfirmDialog.Body>\n </ConfirmDialog.Root>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'workflow'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'stage'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.stages.limit.title',\n defaultMessage: 'You have reached the limit of stages for this workflow in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.stages.limit.body',\n defaultMessage: 'Try deleting some stages or contact Sales to enable more stages.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </>\n );\n}\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\n\nimport { ReviewWorkflowsEditView } from './EditView';\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['review-workflows'].main}>\n <ReviewWorkflowsEditView />\n </CheckPagePermissions>\n );\n}\n"],"names":["workflow","serverStage","error","Layout.DragLayerRendered","Layout.Header","Layout.Back","Layout.Root","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body"],"mappings":"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"}
1
+ {"version":3,"file":"index-a3176d19.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/index.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, Loader, Typography } from '@strapi/design-system';\nimport {\n ConfirmDialog,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { useFormik, Form, FormikProvider } from 'formik';\nimport set from 'lodash/set';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useParams } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../../../../../admin/src/hooks/useAdminRoles';\nimport { useContentTypes } from '../../../../../../../../../admin/src/hooks/useContentTypes';\nimport { useInjectReducer } from '../../../../../../../../../admin/src/hooks/useInjectReducer';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport {\n resetWorkflow,\n setIsLoading,\n setWorkflow,\n setContentTypes,\n setRoles,\n setWorkflows,\n} from '../../actions';\nimport * as Layout from '../../components/Layout';\nimport * as LimitsModal from '../../components/LimitsModal';\nimport { Stages } from '../../components/Stages';\nimport { WorkflowAttributes } from '../../components/WorkflowAttributes';\nimport {\n CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n REDUX_NAMESPACE,\n} from '../../constants';\nimport { useReviewWorkflows } from '../../hooks/useReviewWorkflows';\nimport { reducer } from '../../reducer';\nimport {\n selectIsWorkflowDirty,\n selectCurrentWorkflow,\n selectHasDeletedServerStages,\n selectIsLoading,\n selectRoles,\n selectServerState,\n} from '../../selectors';\nimport { validateWorkflow } from '../../utils/validateWorkflow';\n\nexport function ReviewWorkflowsEditView() {\n const { workflowId } = useParams();\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const dispatch = useDispatch();\n const { put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { isLoading: isLoadingWorkflow, meta, workflows, refetch } = useReviewWorkflows();\n const { collectionTypes, singleTypes, isLoading: isLoadingContentTypes } = useContentTypes();\n const serverState = useSelector(selectServerState);\n const currentWorkflowIsDirty = useSelector(selectIsWorkflowDirty);\n const currentWorkflow = useSelector(selectCurrentWorkflow);\n const hasDeletedServerStages = useSelector(selectHasDeletedServerStages);\n const roles = useSelector(selectRoles);\n const isLoading = useSelector(selectIsLoading);\n const {\n allowedActions: { canDelete, canUpdate },\n } = useRBAC(permissions.settings['review-workflows']);\n const [savePrompts, setSavePrompts] = React.useState({});\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { isLoading: isLoadingRoles, roles: serverRoles } = useAdminRoles(undefined, {\n retry: false,\n });\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n const [initialErrors, setInitialErrors] = React.useState(null);\n\n const workflow = workflows.find((workflow) => workflow.id === parseInt(workflowId, 10));\n const contentTypesFromOtherWorkflows = workflows\n .filter((workflow) => workflow.id !== parseInt(workflowId, 10))\n .flatMap((workflow) => workflow.contentTypes);\n\n const { mutateAsync, isLoading: isLoadingMutation } = useMutation(\n async ({ workflow }) => {\n const {\n data: { data },\n } = await put(`/admin/review-workflows/workflows/${workflow.id}`, {\n data: workflow,\n });\n\n return data;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved', defaultMessage: 'Saved' },\n });\n },\n }\n );\n\n const updateWorkflow = async (workflow) => {\n // reset the error messages\n setInitialErrors(null);\n\n try {\n const res = await mutateAsync({\n workflow: {\n ...workflow,\n\n // compare permissions of stages and only submit them if at least one has\n // changed; this enables partial updates e.g. for users who don't have\n // permissions to see roles\n stages: workflow.stages.map((stage) => {\n let hasUpdatedPermissions = true;\n const serverStage = serverState.workflow.stages.find(\n (serverStage) => serverStage.id === stage?.id\n );\n\n if (serverStage) {\n hasUpdatedPermissions =\n serverStage.permissions?.length !== stage.permission?.length ||\n !serverStage.permissions.every(\n (serverPermission) =>\n !!stage.permissions.find(\n (permission) => permission.role === serverPermission.role\n )\n );\n }\n\n return {\n ...stage,\n permissions: hasUpdatedPermissions ? stage.permissions : undefined,\n };\n }),\n },\n });\n\n return res;\n } catch (error) {\n // TODO: this would benefit from a utility to get a formik error\n // representation from an API error\n if (\n error.response.data?.error?.name === 'ValidationError' &&\n error.response.data?.error?.details?.errors?.length > 0\n ) {\n setInitialErrors(\n error.response.data?.error?.details?.errors.reduce((acc, error) => {\n set(acc, error.path, error.message);\n\n return acc;\n }, {})\n );\n }\n\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n\n return null;\n }\n };\n\n const submitForm = async () => {\n await updateWorkflow(currentWorkflow);\n await refetch();\n\n setSavePrompts({});\n };\n\n const handleConfirmDeleteDialog = async () => {\n await submitForm();\n };\n\n const handleConfirmClose = () => {\n setSavePrompts({});\n };\n\n const formik = useFormik({\n enableReinitialize: true,\n initialErrors,\n initialValues: currentWorkflow,\n async onSubmit() {\n const isContentTypeReassignment = currentWorkflow.contentTypes.some((contentType) =>\n contentTypesFromOtherWorkflows.includes(contentType)\n );\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n /**\n * If the current license has a limit, check if the total count of workflows\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit, check if the total count of stages\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n currentWorkflow.stages.length >\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('stage');\n } else if (hasDeletedServerStages || isContentTypeReassignment) {\n if (hasDeletedServerStages) {\n setSavePrompts((prev) => ({ ...prev, hasDeletedServerStages: true }));\n }\n\n if (isContentTypeReassignment) {\n setSavePrompts((prev) => ({ ...prev, hasReassignedContentTypes: true }));\n }\n } else {\n submitForm();\n }\n },\n validate(values) {\n return validateWorkflow({ values, formatMessage });\n },\n });\n\n useInjectReducer(REDUX_NAMESPACE, reducer);\n\n const limits = getFeature('review-workflows');\n\n React.useEffect(() => {\n if (!isLoadingWorkflow) {\n dispatch(setWorkflow({ workflow }));\n dispatch(setWorkflows({ workflows }));\n }\n\n if (!isLoadingContentTypes) {\n dispatch(setContentTypes({ collectionTypes, singleTypes }));\n }\n\n if (!isLoadingRoles) {\n dispatch(setRoles(serverRoles));\n }\n\n dispatch(setIsLoading(isLoadingWorkflow || isLoadingContentTypes || isLoadingRoles));\n\n // reset the state to the initial state to avoid flashes if a user\n // navigates from an edit-view to a create-view\n return () => {\n dispatch(resetWorkflow());\n };\n }, [\n collectionTypes,\n dispatch,\n isLoadingContentTypes,\n isLoadingWorkflow,\n isLoadingRoles,\n serverRoles,\n singleTypes,\n workflow,\n workflows,\n ]);\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n\n React.useEffect(() => {\n if (!isLoadingWorkflow && !isLicenseLoading) {\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('workflow');\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n currentWorkflow.stages.length >\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('stage');\n }\n }\n }, [\n currentWorkflow.stages.length,\n isLicenseLoading,\n isLoadingWorkflow,\n limits,\n meta?.workflowCount,\n meta.workflowsTotal,\n ]);\n\n React.useEffect(() => {\n if (!isLoading && roles.length === 0) {\n toggleNotification({\n blockTransition: true,\n type: 'warning',\n message: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles',\n }),\n });\n }\n }, [formatMessage, isLoading, roles, toggleNotification]);\n\n // TODO: redirect back to list-view if workflow is not found?\n\n return (\n <>\n <Layout.DragLayerRendered />\n\n <FormikProvider value={formik}>\n <Form onSubmit={formik.handleSubmit}>\n <Layout.Header\n navigationAction={<Layout.Back href=\"/settings/review-workflows\" />}\n primaryAction={\n canUpdate && (\n <Button\n startIcon={<Check />}\n type=\"submit\"\n size=\"M\"\n disabled={!currentWorkflowIsDirty}\n // if the confirm dialog is open the loading state is on\n // the confirm button already\n loading={!Object.keys(savePrompts).length > 0 && isLoadingMutation}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n subtitle={\n !isLoading &&\n formatMessage(\n {\n id: 'Settings.review-workflows.page.subtitle',\n defaultMessage: '{count, plural, one {# stage} other {# stages}}',\n },\n { count: currentWorkflow.stages.length }\n )\n }\n title={currentWorkflow.name}\n />\n\n <Layout.Root>\n {isLoading ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.isLoading',\n defaultMessage: 'Workflow is loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Flex alignItems=\"stretch\" direction=\"column\" gap={7}>\n <WorkflowAttributes canUpdate={canUpdate} />\n <Stages\n canDelete={canDelete}\n canUpdate={canUpdate}\n stages={formik.values?.stages}\n />\n </Flex>\n )}\n </Layout.Root>\n </Form>\n </FormikProvider>\n\n <ConfirmDialog.Root\n isConfirmButtonLoading={isLoading}\n isOpen={Object.keys(savePrompts).length > 0}\n onToggleDialog={handleConfirmClose}\n onConfirm={handleConfirmDeleteDialog}\n >\n <ConfirmDialog.Body>\n <Flex direction=\"column\" gap={5}>\n {savePrompts.hasDeletedServerStages && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.stages.body',\n defaultMessage:\n 'All entries assigned to deleted stages will be moved to the previous stage.',\n })}\n </Typography>\n )}\n\n {savePrompts.hasReassignedContentTypes && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage(\n {\n id: 'Settings.review-workflows.page.delete.confirm.contentType.body',\n defaultMessage:\n '{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed.',\n },\n {\n count: contentTypesFromOtherWorkflows.filter((contentType) =>\n currentWorkflow.contentTypes.includes(contentType)\n ).length,\n }\n )}\n </Typography>\n )}\n\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.confirm',\n defaultMessage: 'Are you sure you want to save?',\n })}\n </Typography>\n </Flex>\n </ConfirmDialog.Body>\n </ConfirmDialog.Root>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'workflow'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'stage'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.stages.limit.title',\n defaultMessage: 'You have reached the limit of stages for this workflow in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.stages.limit.body',\n defaultMessage: 'Try deleting some stages or contact Sales to enable more stages.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </>\n );\n}\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\n\nimport { ReviewWorkflowsEditView } from './EditView';\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['review-workflows'].main}>\n <ReviewWorkflowsEditView />\n </CheckPagePermissions>\n );\n}\n"],"names":["workflow","serverStage","error","Layout.DragLayerRendered","Layout.Header","Layout.Back","Layout.Root","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { useAPIErrorHandler, useNotification, useFocusWhenNavigate, useRBAC, useFetchClient, SettingsPageTitle, LinkButton, LoadingIndicatorPage, onRowClick, stopPropagation, ConfirmDialog, 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-fd7e406d.mjs";
5
5
  import { useState, useEffect } from "react";
6
6
  import { useNotifyAT, Layout, Main, HeaderLayout, ActionLayout, Typography, Button, ContentLayout, Box, Table, TFooter, Thead, Tr, Th, BaseCheckbox, VisuallyHidden, Tbody, Td, Flex, Switch, IconButton, EmptyStateLayout } from "@strapi/design-system";
7
7
  import { Plus, Trash, Pencil, EmptyDocuments } from "@strapi/icons";
@@ -10,7 +10,7 @@ import { useQuery, useMutation } from "react-query";
10
10
  import { useHistory, useLocation } from "react-router-dom";
11
11
  import "semver/functions/lt";
12
12
  import "semver/functions/valid";
13
- import "./index-34de382e.mjs";
13
+ import "./index-60a57d31.mjs";
14
14
  import "react-dom/client";
15
15
  import "invariant";
16
16
  import "lodash/isFunction";
@@ -18,22 +18,20 @@ import "lodash/merge";
18
18
  import "lodash/pick";
19
19
  import "react-helmet";
20
20
  import "@radix-ui/react-context";
21
- import "axios";
21
+ import "@strapi/design-system/v2";
22
+ import "formik";
22
23
  import "lodash/camelCase";
23
- import "lodash/get";
24
- import "lodash/omit";
25
- import "prop-types";
26
- import "lodash/defaultsDeep";
27
24
  import "styled-components";
28
- import "formik";
29
25
  import "yup";
26
+ import "lodash/defaultsDeep";
27
+ import "lodash/omit";
28
+ import "qs";
30
29
  import "immer";
30
+ import "lodash/get";
31
31
  import "lodash/set";
32
- import "qs";
33
32
  import "@reduxjs/toolkit";
34
33
  import "react-dnd";
35
34
  import "react-dnd-html5-backend";
36
- import "@strapi/design-system/v2";
37
35
  import "lodash/cloneDeep";
38
36
  const ListView = () => {
39
37
  const [showModal, setShowModal] = useState(false);
@@ -337,4 +335,4 @@ const ProtectedListView = () => {
337
335
  export {
338
336
  ProtectedListView as default
339
337
  };
340
- //# sourceMappingURL=index-ea23ee9f.mjs.map
338
+ //# sourceMappingURL=index-a7d28c42.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-ea23ee9f.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js","../../admin/src/pages/SettingsPage/pages/Webhooks/ProtectedListView/index.js"],"sourcesContent":["/* eslint-disable no-nested-ternary */\nimport React, { useEffect, useState } from 'react';\n\nimport {\n ActionLayout,\n BaseCheckbox,\n Box,\n Button,\n ContentLayout,\n EmptyStateLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Layout,\n Main,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n LinkButton,\n LoadingIndicatorPage,\n onRowClick,\n SettingsPageTitle,\n stopPropagation,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { EmptyDocuments, Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\n\nconst ListView = () => {\n const [showModal, setShowModal] = useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = useState([]);\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n useFocusWhenNavigate();\n const { push } = useHistory();\n const { pathname } = useLocation();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions.settings.webhooks);\n const { get, post, put } = useFetchClient();\n const { notifyStatus } = useNotifyAT();\n\n const QUERY_KEY = 'webhooks';\n const {\n isLoading: isWebhooksLoading,\n data: webhooks,\n error: webhooksError,\n refetch: refetchWebhooks,\n } = useQuery(QUERY_KEY, async () => {\n const {\n data: { data },\n } = await get('/admin/webhooks');\n\n return data;\n });\n\n useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const deleteMutation = useMutation(\n async () => {\n await post('/admin/webhooks/batch-delete', {\n ids: webhooksToDelete,\n });\n },\n {\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n setShowModal(false);\n },\n onSuccess() {\n setWebhooksToDelete([]);\n setShowModal(false);\n refetchWebhooks();\n },\n }\n );\n\n const enabledMutation = useMutation(\n async ({ isEnabled, id }) => {\n const { id: _, ...webhook } = webhooks.find((webhook) => webhook.id === id) ?? {};\n const body = {\n ...webhook,\n isEnabled,\n };\n\n await put(`/admin/webhooks/${id}`, body);\n },\n {\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n },\n onSuccess() {\n refetchWebhooks();\n },\n }\n );\n\n const confirmDelete = () => deleteMutation.mutate();\n\n const selectAllCheckbox = (selected) =>\n selected ? setWebhooksToDelete(webhooks.map((webhook) => webhook.id)) : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected, id) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const goTo = (to) => push(`${pathname}/${to}`);\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"Webhooks\" />\n <Main aria-busy={isLoading}>\n <HeaderLayout\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton startIcon={<Plus />} variant=\"default\" to={`${pathname}/create`} size=\"S\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <ActionLayout\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <ContentLayout>\n {isLoading ? (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n ) : numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter onClick={() => (canCreate ? goTo('create') : {})} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <BaseCheckbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n indeterminate={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n }\n value={webhooksToDeleteLength === numberOfWebhooks}\n onValueChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks.map((webhook) => (\n <Tr\n key={webhook.id}\n {...onRowClick({\n fn: () => goTo(webhook.id),\n condition: canUpdate,\n })}\n >\n <Td {...stopPropagation}>\n <BaseCheckbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n value={webhooksToDelete?.includes(webhook.id)}\n onValueChange={(selected) => selectOneCheckbox(selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n selected={webhook.isEnabled}\n onChange={(e) => {\n e.stopPropagation();\n enabledMutation.mutate({\n isEnabled: !webhook.isEnabled,\n id: webhook.id,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n icon={<Pencil />}\n noBorder\n />\n )}\n {canDelete && (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setWebhooksToDelete([webhook.id]);\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n icon={<Trash />}\n noBorder\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n <Button\n variant=\"secondary\"\n startIcon={<Plus />}\n onClick={() => (canCreate ? goTo('create') : {})}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </Button>\n }\n />\n )}\n </ContentLayout>\n </Main>\n <ConfirmDialog\n isOpen={showModal}\n onToggleDialog={() => setShowModal((prev) => !prev)}\n onConfirm={confirmDelete}\n isConfirmButtonLoading={deleteMutation.isLoading}\n />\n </Layout>\n );\n};\n\nexport default ListView;\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 ProtectedListView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.webhooks.main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListView;\n"],"names":["webhook"],"mappings":"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"}
1
+ {"version":3,"file":"index-a7d28c42.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js","../../admin/src/pages/SettingsPage/pages/Webhooks/ProtectedListView/index.js"],"sourcesContent":["/* eslint-disable no-nested-ternary */\nimport React, { useEffect, useState } from 'react';\n\nimport {\n ActionLayout,\n BaseCheckbox,\n Box,\n Button,\n ContentLayout,\n EmptyStateLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Layout,\n Main,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n LinkButton,\n LoadingIndicatorPage,\n onRowClick,\n SettingsPageTitle,\n stopPropagation,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { EmptyDocuments, Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\n\nconst ListView = () => {\n const [showModal, setShowModal] = useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = useState([]);\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n useFocusWhenNavigate();\n const { push } = useHistory();\n const { pathname } = useLocation();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions.settings.webhooks);\n const { get, post, put } = useFetchClient();\n const { notifyStatus } = useNotifyAT();\n\n const QUERY_KEY = 'webhooks';\n const {\n isLoading: isWebhooksLoading,\n data: webhooks,\n error: webhooksError,\n refetch: refetchWebhooks,\n } = useQuery(QUERY_KEY, async () => {\n const {\n data: { data },\n } = await get('/admin/webhooks');\n\n return data;\n });\n\n useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const deleteMutation = useMutation(\n async () => {\n await post('/admin/webhooks/batch-delete', {\n ids: webhooksToDelete,\n });\n },\n {\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n setShowModal(false);\n },\n onSuccess() {\n setWebhooksToDelete([]);\n setShowModal(false);\n refetchWebhooks();\n },\n }\n );\n\n const enabledMutation = useMutation(\n async ({ isEnabled, id }) => {\n const { id: _, ...webhook } = webhooks.find((webhook) => webhook.id === id) ?? {};\n const body = {\n ...webhook,\n isEnabled,\n };\n\n await put(`/admin/webhooks/${id}`, body);\n },\n {\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n },\n onSuccess() {\n refetchWebhooks();\n },\n }\n );\n\n const confirmDelete = () => deleteMutation.mutate();\n\n const selectAllCheckbox = (selected) =>\n selected ? setWebhooksToDelete(webhooks.map((webhook) => webhook.id)) : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected, id) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const goTo = (to) => push(`${pathname}/${to}`);\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"Webhooks\" />\n <Main aria-busy={isLoading}>\n <HeaderLayout\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton startIcon={<Plus />} variant=\"default\" to={`${pathname}/create`} size=\"S\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <ActionLayout\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <ContentLayout>\n {isLoading ? (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n ) : numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter onClick={() => (canCreate ? goTo('create') : {})} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <BaseCheckbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n indeterminate={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n }\n value={webhooksToDeleteLength === numberOfWebhooks}\n onValueChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks.map((webhook) => (\n <Tr\n key={webhook.id}\n {...onRowClick({\n fn: () => goTo(webhook.id),\n condition: canUpdate,\n })}\n >\n <Td {...stopPropagation}>\n <BaseCheckbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n value={webhooksToDelete?.includes(webhook.id)}\n onValueChange={(selected) => selectOneCheckbox(selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n selected={webhook.isEnabled}\n onChange={(e) => {\n e.stopPropagation();\n enabledMutation.mutate({\n isEnabled: !webhook.isEnabled,\n id: webhook.id,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n icon={<Pencil />}\n noBorder\n />\n )}\n {canDelete && (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setWebhooksToDelete([webhook.id]);\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n icon={<Trash />}\n noBorder\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n <Button\n variant=\"secondary\"\n startIcon={<Plus />}\n onClick={() => (canCreate ? goTo('create') : {})}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </Button>\n }\n />\n )}\n </ContentLayout>\n </Main>\n <ConfirmDialog\n isOpen={showModal}\n onToggleDialog={() => setShowModal((prev) => !prev)}\n onConfirm={confirmDelete}\n isConfirmButtonLoading={deleteMutation.isLoading}\n />\n </Layout>\n );\n};\n\nexport default ListView;\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 ProtectedListView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.webhooks.main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListView;\n"],"names":["webhook"],"mappings":"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"}
@@ -3,8 +3,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const PropTypes = require("prop-types");
5
5
  const reactIntl = require("react-intl");
6
- const index$1 = require("./index-edc9bb0b.js");
7
- const index = require("./index-16030b74.js");
6
+ const index$1 = require("./index-e2663a88.js");
7
+ const index = require("./index-2f4b78ee.js");
8
8
  require("@strapi/helper-plugin");
9
9
  require("react-dom/client");
10
10
  require("@strapi/design-system");
@@ -17,19 +17,19 @@ require("react-router-dom");
17
17
  require("react");
18
18
  require("react-redux");
19
19
  require("@radix-ui/react-context");
20
- require("axios");
21
- require("lodash/camelCase");
22
- require("lodash/get");
23
- require("lodash/omit");
24
- require("lodash/defaultsDeep");
25
- require("styled-components");
20
+ require("@strapi/design-system/v2");
26
21
  require("@strapi/icons");
27
22
  require("formik");
28
- require("yup");
23
+ require("lodash/camelCase");
29
24
  require("react-query");
25
+ require("styled-components");
26
+ require("yup");
27
+ require("lodash/defaultsDeep");
28
+ require("lodash/omit");
29
+ require("qs");
30
30
  require("immer");
31
+ require("lodash/get");
31
32
  require("lodash/set");
32
- require("qs");
33
33
  require("@reduxjs/toolkit");
34
34
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
35
35
  const PropTypes__default = /* @__PURE__ */ _interopDefault(PropTypes);
@@ -39,7 +39,7 @@ const MagicLinkEE = ({ registrationToken }) => {
39
39
  return /* @__PURE__ */ jsxRuntime.jsx(
40
40
  index.MagicLinkWrapper,
41
41
  {
42
- target: `${window.location.origin}${index$1.getBasename()}auth/register?registrationToken=${registrationToken}`,
42
+ target: `${window.location.origin}${index$1.getBasename()}/auth/register?registrationToken=${registrationToken}`,
43
43
  children: formatMessage({
44
44
  id: "app.components.Users.MagicLink.connect",
45
45
  defaultMessage: "Copy and share this link to give access to this user"
@@ -59,4 +59,4 @@ MagicLinkEE.propTypes = {
59
59
  registrationToken: PropTypes__default.default.string
60
60
  };
61
61
  exports.MagicLinkEE = MagicLinkEE;
62
- //# sourceMappingURL=index-a4348f3b.js.map
62
+ //# sourceMappingURL=index-a8358156.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-a8358156.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/index.js"],"sourcesContent":["import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../../../../../admin/src/core/utils/basename';\nimport MagicLinkWrapper from '../../../../../../../../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper';\n\n// FIXME replace with parts compo when ready\nexport const MagicLinkEE = ({ registrationToken }) => {\n const { formatMessage } = useIntl();\n\n if (registrationToken) {\n return (\n <MagicLinkWrapper\n target={`${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`}\n >\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\n return (\n <MagicLinkWrapper target={`${window.location.origin}${getBasename()}auth/login`}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect.sso',\n defaultMessage:\n 'Send this link to the user, the first login can be made via a SSO provider.',\n })}\n </MagicLinkWrapper>\n );\n};\n\nMagicLinkEE.defaultProps = {\n registrationToken: '',\n};\n\nMagicLinkEE.propTypes = {\n registrationToken: PropTypes.string,\n};\n"],"names":["useIntl","jsx","MagicLinkWrapper","getBasename","PropTypes"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,MAAM,cAAc,CAAC,EAAE,wBAAwB;AAC9C,QAAA,EAAE,kBAAkBA,UAAAA;AAE1B,MAAI,mBAAmB;AAEnB,WAAAC,2BAAA;AAAA,MAACC,MAAA;AAAA,MAAA;AAAA,QACC,QAAQ,GACN,OAAO,SAAS,MAClB,GAAGC,oBAAa,CAAA,oCAAoC,iBAAiB;AAAA,QAEpE,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AAGE,SAAAF,2BAAA,IAACC,MAAiB,kBAAA,EAAA,QAAQ,GAAG,OAAO,SAAS,MAAM,GAAGC,QAAAA,YAAa,CAAA,cAChE,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBACE;AAAA,EACH,CAAA,EACH,CAAA;AAEJ;AAEA,YAAY,eAAe;AAAA,EACzB,mBAAmB;AACrB;AAEA,YAAY,YAAY;AAAA,EACtB,mBAAmBC,mBAAU,QAAA;AAC/B;;"}
@@ -8,8 +8,8 @@ import { useQuery } from "react-query";
8
8
  import { useSelector } from "react-redux";
9
9
  import { useHistory, useRouteMatch } from "react-router-dom";
10
10
  import { createContext } from "@radix-ui/react-context";
11
- import { s as selectAdminPermissions } from "./AuthenticatedApp-b0ada7e9.mjs";
12
- import { z as formatAPIErrors } from "./index-34de382e.mjs";
11
+ import { s as selectAdminPermissions } from "./AuthenticatedApp-fd7e406d.mjs";
12
+ import { f as formatAPIErrors } from "./formatAPIErrors-db6ed675.mjs";
13
13
  import { A as API_TOKEN_TYPE } from "./constants-d3dd8ed6.mjs";
14
14
  import { T as TokenName, a as TokenDescription, L as LifeSpanInput, b as TokenTypeSelect, s as schema, F as FormHead, c as TokenBox } from "./index-176cc121.mjs";
15
15
  import PropTypes from "prop-types";
@@ -863,4 +863,4 @@ const ApiTokenCreateView = () => {
863
863
  export {
864
864
  ApiTokenCreateView as A
865
865
  };
866
- //# sourceMappingURL=index-58db145d.mjs.map
866
+ //# sourceMappingURL=index-a8d13f01.mjs.map