@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
@@ -10,13 +10,13 @@ import { useIntl } from "react-intl";
10
10
  import { useSelector } from "react-redux";
11
11
  import { useRouteMatch, useHistory } from "react-router-dom";
12
12
  import styled from "styled-components";
13
- import { s as selectAdminPermissions } from "./AuthenticatedApp-b0ada7e9.mjs";
13
+ import { s as selectAdminPermissions } from "./AuthenticatedApp-332b40a8.mjs";
14
14
  import { u as useAdminRolePermissionLayout, a as useAdminRolePermissions, P as Permissions } from "./useAdminRolePermissions-603a2709.mjs";
15
15
  import * as yup from "yup";
16
16
  import "react-query";
17
17
  import "semver/functions/lt";
18
18
  import "semver/functions/valid";
19
- import "./index-34de382e.mjs";
19
+ import "./index-cd461a87.mjs";
20
20
  import "react-dom/client";
21
21
  import "invariant";
22
22
  import "lodash/isFunction";
@@ -24,21 +24,20 @@ import "lodash/merge";
24
24
  import "lodash/pick";
25
25
  import "react-helmet";
26
26
  import "@radix-ui/react-context";
27
- import "axios";
27
+ import "@strapi/design-system/v2";
28
28
  import "lodash/camelCase";
29
- import "lodash/get";
30
- import "lodash/omit";
31
- import "prop-types";
32
29
  import "lodash/defaultsDeep";
30
+ import "lodash/omit";
31
+ import "qs";
33
32
  import "immer";
33
+ import "lodash/get";
34
34
  import "lodash/set";
35
- import "qs";
36
35
  import "@reduxjs/toolkit";
37
36
  import "react-dnd";
38
37
  import "react-dnd-html5-backend";
39
- import "@strapi/design-system/v2";
40
38
  import "lodash/cloneDeep";
41
39
  import "lodash/has";
40
+ import "prop-types";
42
41
  import "lodash/sortBy";
43
42
  import "lodash/groupBy";
44
43
  import "lodash/upperFirst";
@@ -242,4 +241,4 @@ export {
242
241
  CreatePage,
243
242
  index as default
244
243
  };
245
- //# sourceMappingURL=index-6cc54f3b.mjs.map
244
+ //# sourceMappingURL=index-a1c1b833.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-6cc54f3b.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Roles/CreatePage/utils/schema.js","../../admin/src/pages/SettingsPage/pages/Roles/CreatePage/index.js"],"sourcesContent":["import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n name: yup.string().required(translatedErrors.required),\n description: yup.string().required(translatedErrors.required),\n});\n\nexport default schema;\n","import React, { useRef, useState } from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n Form,\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport Permissions from '../EditPage/components/Permissions';\nimport { useAdminRolePermissionLayout } from '../hooks/useAdminRolePermissionLayout';\nimport { useAdminRolePermissions } from '../hooks/useAdminRolePermissions';\n\nimport schema from './utils/schema';\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: ${12 / 16}rem;\n font-weight: bold;\n`;\n\nconst CreatePage = () => {\n const route = useRouteMatch('/settings/roles/duplicate/:id');\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { formatMessage } = useIntl();\n const [isSubmitting, setIsSubmiting] = useState(false);\n const { replace } = useHistory();\n const permissionsRef = useRef();\n const { trackUsage } = useTracking();\n const { post, put } = useFetchClient();\n\n const { params } = route ?? {};\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useAdminRolePermissionLayout(params?.id, {\n cacheTime: 0,\n });\n\n const { permissions: rolePermissions, isLoading: isLoadingRole } = useAdminRolePermissions(\n { id: params?.id },\n {\n cacheTime: 0,\n\n // only fetch permissions if a role is cloned\n enabled: !!params?.id,\n }\n );\n\n const handleCreateRoleSubmit = (data) => {\n lockApp();\n setIsSubmiting(true);\n\n if (params?.id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n Promise.resolve(post('/admin/roles', data))\n .then(async ({ data: res }) => {\n const { permissionsToSend } = permissionsRef.current.getPermissions();\n\n if (params?.id) {\n trackUsage('didDuplicateRole');\n } else {\n trackUsage('didCreateNewRole');\n }\n\n if (res.data.id && !isEmpty(permissionsToSend)) {\n await put(`/admin/roles/${res.data.id}/permissions`, { permissions: permissionsToSend });\n }\n\n return res;\n })\n .then((res) => {\n setIsSubmiting(false);\n toggleNotification({\n type: 'success',\n message: { id: 'Settings.roles.created', defaultMessage: 'created' },\n });\n replace(`/settings/roles/${res.data.id}`);\n })\n .catch((err) => {\n console.error(err);\n setIsSubmiting(false);\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error' },\n });\n })\n .finally(() => {\n unlockApp();\n });\n };\n\n const defaultDescription = `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`;\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <Formik\n initialValues={{ name: '', description: defaultDescription }}\n onSubmit={handleCreateRoleSubmit}\n validationSchema={schema}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleReset, handleChange }) => (\n <Form noValidate>\n <>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current.resetForm();\n }}\n size=\"L\"\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button onClick={handleSubmit} loading={isSubmitting} size=\"L\">\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/roles\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n onChange={handleChange}\n required\n value={values.name}\n />\n </GridItem>\n <GridItem col={6}>\n <Textarea\n label={formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n onChange={handleChange}\n >\n {values.description}\n </Textarea>\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n {!isLoadingPermissionsLayout && !isLoadingRole ? (\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n ) : (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n )}\n </Flex>\n </ContentLayout>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.roles.create}>\n <CreatePage />\n </CheckPagePermissions>\n );\n}\n\nexport { CreatePage };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-a1c1b833.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Roles/CreatePage/utils/schema.js","../../admin/src/pages/SettingsPage/pages/Roles/CreatePage/index.js"],"sourcesContent":["import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n name: yup.string().required(translatedErrors.required),\n description: yup.string().required(translatedErrors.required),\n});\n\nexport default schema;\n","import React, { useRef, useState } from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n Form,\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport Permissions from '../EditPage/components/Permissions';\nimport { useAdminRolePermissionLayout } from '../hooks/useAdminRolePermissionLayout';\nimport { useAdminRolePermissions } from '../hooks/useAdminRolePermissions';\n\nimport schema from './utils/schema';\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: ${12 / 16}rem;\n font-weight: bold;\n`;\n\nconst CreatePage = () => {\n const route = useRouteMatch('/settings/roles/duplicate/:id');\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { formatMessage } = useIntl();\n const [isSubmitting, setIsSubmiting] = useState(false);\n const { replace } = useHistory();\n const permissionsRef = useRef();\n const { trackUsage } = useTracking();\n const { post, put } = useFetchClient();\n\n const { params } = route ?? {};\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useAdminRolePermissionLayout(params?.id, {\n cacheTime: 0,\n });\n\n const { permissions: rolePermissions, isLoading: isLoadingRole } = useAdminRolePermissions(\n { id: params?.id },\n {\n cacheTime: 0,\n\n // only fetch permissions if a role is cloned\n enabled: !!params?.id,\n }\n );\n\n const handleCreateRoleSubmit = (data) => {\n lockApp();\n setIsSubmiting(true);\n\n if (params?.id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n Promise.resolve(post('/admin/roles', data))\n .then(async ({ data: res }) => {\n const { permissionsToSend } = permissionsRef.current.getPermissions();\n\n if (params?.id) {\n trackUsage('didDuplicateRole');\n } else {\n trackUsage('didCreateNewRole');\n }\n\n if (res.data.id && !isEmpty(permissionsToSend)) {\n await put(`/admin/roles/${res.data.id}/permissions`, { permissions: permissionsToSend });\n }\n\n return res;\n })\n .then((res) => {\n setIsSubmiting(false);\n toggleNotification({\n type: 'success',\n message: { id: 'Settings.roles.created', defaultMessage: 'created' },\n });\n replace(`/settings/roles/${res.data.id}`);\n })\n .catch((err) => {\n console.error(err);\n setIsSubmiting(false);\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error' },\n });\n })\n .finally(() => {\n unlockApp();\n });\n };\n\n const defaultDescription = `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`;\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <Formik\n initialValues={{ name: '', description: defaultDescription }}\n onSubmit={handleCreateRoleSubmit}\n validationSchema={schema}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleReset, handleChange }) => (\n <Form noValidate>\n <>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current.resetForm();\n }}\n size=\"L\"\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button onClick={handleSubmit} loading={isSubmitting} size=\"L\">\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/roles\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n onChange={handleChange}\n required\n value={values.name}\n />\n </GridItem>\n <GridItem col={6}>\n <Textarea\n label={formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n onChange={handleChange}\n >\n {values.description}\n </Textarea>\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n {!isLoadingPermissionsLayout && !isLoadingRole ? (\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n ) : (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n )}\n </Flex>\n </ContentLayout>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.roles.create}>\n <CreatePage />\n </CheckPagePermissions>\n );\n}\n\nexport { CreatePage };\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const helperPlugin = require("@strapi/helper-plugin");
5
- const index = require("./index-b2257157.js");
5
+ const index = require("./index-866d1aaf.js");
6
6
  const designSystem = require("@strapi/design-system");
7
7
  const reactIntl = require("react-intl");
8
8
  const reactQuery = require("react-query");
@@ -11,11 +11,11 @@ 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
17
  const useAdminUsers = require("./useAdminUsers-05d6b26a.js");
18
- const AuthenticatedApp = require("./AuthenticatedApp-092ef2be.js");
18
+ const AuthenticatedApp = require("./AuthenticatedApp-26a57d48.js");
19
19
  const constants = require("./constants-d5d67ca8.js");
20
20
  const React = require("react");
21
21
  const useLicenseLimits = require("./useLicenseLimits-81ef3cce.js");
@@ -39,16 +39,16 @@ require("lodash/upperFirst");
39
39
  require("@strapi/design-system/v2");
40
40
  require("react-dnd-html5-backend");
41
41
  require("styled-components");
42
- require("./index-edc9bb0b.js");
42
+ require("./index-0134922e.js");
43
43
  require("react-dom/client");
44
44
  require("invariant");
45
45
  require("lodash/isFunction");
46
46
  require("lodash/pick");
47
47
  require("@radix-ui/react-context");
48
- require("lodash/camelCase");
49
- require("lodash/defaultsDeep");
50
48
  require("formik");
49
+ require("lodash/camelCase");
51
50
  require("yup");
51
+ require("lodash/defaultsDeep");
52
52
  require("@reduxjs/toolkit");
53
53
  require("lodash/size");
54
54
  require("lodash/take");
@@ -82,6 +82,7 @@ require("lodash/unset");
82
82
  require("lodash/isArray");
83
83
  require("lodash/flatMap");
84
84
  require("lodash/uniq");
85
+ require("./formatAPIErrors-b599cf27.js");
85
86
  require("date-fns/parseISO");
86
87
  require("lodash/isNumber");
87
88
  require("lodash/groupBy");
@@ -414,4 +415,4 @@ function InformationBoxEE() {
414
415
  ] });
415
416
  }
416
417
  exports.InformationBoxEE = InformationBoxEE;
417
- //# sourceMappingURL=index-acd6d64f.js.map
418
+ //# sourceMappingURL=index-aaffa28c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-acd6d64f.js","sources":["../../ee/admin/src/content-manager/pages/EditView/InformationBox/components/AssigneeSelect/AssigneeSelect.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflowsStages.js","../../ee/admin/src/content-manager/pages/EditView/InformationBox/components/StageSelect/StageSelect.js","../../ee/admin/src/content-manager/pages/EditView/InformationBox/InformationBoxEE.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Combobox, ComboboxOption, Field, Flex } from '@strapi/design-system';\nimport {\n useCMEditViewDataManager,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector } from 'react-redux';\n\nimport { getDisplayName } from '../../../../../../../../../admin/src/content-manager/utils';\nimport { useAdminUsers } from '../../../../../../../../../admin/src/hooks/useAdminUsers';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { ASSIGNEE_ATTRIBUTE_NAME } from '../../constants';\n\nexport function AssigneeSelect() {\n const {\n initialData,\n layout: { uid },\n isSingleType,\n onChange,\n } = useCMEditViewDataManager();\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { put } = useFetchClient();\n const {\n allowedActions: { canReadUsers },\n isLoading: isLoadingPermissions,\n } = useRBAC({\n readUsers: permissions.settings.users.read,\n });\n const { users, isLoading, isError } = useAdminUsers(\n {},\n {\n enabled: !isLoadingPermissions && canReadUsers,\n }\n );\n\n const currentAssignee = initialData?.[ASSIGNEE_ATTRIBUTE_NAME] ?? null;\n\n const handleChange = async ({ value: assigneeId }) => {\n mutation.mutate({\n entityId: initialData.id,\n assigneeId: parseInt(assigneeId, 10),\n uid,\n });\n };\n\n const mutation = useMutation(\n async ({ entityId, assigneeId, uid }) => {\n const typeSlug = isSingleType ? 'single-types' : 'collection-types';\n\n const {\n data: { data: createdEntity },\n } = await put(`/admin/content-manager/${typeSlug}/${uid}/${entityId}/assignee`, {\n data: { id: assigneeId },\n });\n\n // initialData and modifiedData have to stay in sync, otherwise the entity would be flagged\n // as modified, which is what the boolean flag is for\n onChange(\n {\n target: { name: ASSIGNEE_ATTRIBUTE_NAME, value: createdEntity[ASSIGNEE_ATTRIBUTE_NAME] },\n },\n true\n );\n\n return createdEntity;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: {\n id: 'content-manager.reviewWorkflows.assignee.notification.saved',\n defaultMessage: 'Assignee updated',\n },\n });\n },\n }\n );\n\n return (\n <Field name={ASSIGNEE_ATTRIBUTE_NAME} id={ASSIGNEE_ATTRIBUTE_NAME}>\n <Flex direction=\"column\" gap={2} alignItems=\"stretch\">\n <Combobox\n clearLabel={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.clear',\n defaultMessage: 'Clear assignee',\n })}\n error={\n (isError &&\n canReadUsers &&\n formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.error',\n defaultMessage: 'An error occurred while fetching users',\n })) ||\n (mutation.error && formatAPIError(mutation.error))\n }\n disabled={!isLoadingPermissions && !isLoading && users.length === 0}\n name={ASSIGNEE_ATTRIBUTE_NAME}\n id={ASSIGNEE_ATTRIBUTE_NAME}\n value={currentAssignee ? currentAssignee.id : null}\n onChange={(value) => handleChange({ value })}\n onClear={() => handleChange({ value: null })}\n placeholder={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.placeholder',\n defaultMessage: 'Select …',\n })}\n label={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.label',\n defaultMessage: 'Assignee',\n })}\n loading={isLoading || isLoadingPermissions || mutation.isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption\n key={user.id}\n value={user.id}\n textValue={getDisplayName(user, formatMessage)}\n >\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n </Flex>\n </Field>\n );\n}\n","import * as React from 'react';\n\nimport { useFetchClient } from '@strapi/helper-plugin';\nimport { useQuery } from 'react-query';\n\nexport function useReviewWorkflowsStages({ id, layout } = {}, queryOptions = {}) {\n const { kind, uid } = layout;\n const slug = kind === 'collectionType' ? 'collection-types' : 'single-types';\n\n const { get } = useFetchClient();\n\n const { data, isLoading, refetch } = useQuery(\n ['content-manager', slug, layout.uid, id, 'stages'],\n async () => {\n const { data } = await get(`/admin/content-manager/${slug}/${uid}/${id}/stages`);\n\n return data;\n },\n queryOptions\n );\n\n // these return values need to be memoized, because the default value\n // would lead to infinite rendering loops when used in a dependency array\n // on an effect\n const meta = React.useMemo(() => data?.meta ?? {}, [data?.meta]);\n const stages = React.useMemo(() => data?.data ?? [], [data?.data]);\n\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n stages,\n isLoading,\n refetch,\n };\n}\n","import * as React from 'react';\n\nimport {\n SingleSelect,\n SingleSelectOption,\n Field,\n FieldError,\n FieldHint,\n Flex,\n Loader,\n Typography,\n} from '@strapi/design-system';\nimport {\n useCMEditViewDataManager,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport * as LimitsModal from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/components/LimitsModal';\nimport {\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,\n} from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/constants';\nimport { useReviewWorkflowsStages } from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflowsStages';\nimport { getStageColorByHex } from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\nimport { STAGE_ATTRIBUTE_NAME } from '../../constants';\n\nexport function StageSelect() {\n const { initialData, layout: contentType, isSingleType, onChange } = useCMEditViewDataManager();\n const { put } = useFetchClient();\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { meta, stages, isLoading, refetch } = useReviewWorkflowsStages(\n { id: initialData.id, layout: contentType },\n {\n enabled: !!initialData?.id,\n }\n );\n const { getFeature } = useLicenseLimits();\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n\n const limits = getFeature('review-workflows');\n // it is possible to rely on initialData here, because it always will\n // be updated at the same time when modifiedData is updated, otherwise\n // the entity is flagged as modified\n const activeWorkflowStage = initialData?.[STAGE_ATTRIBUTE_NAME] ?? null;\n\n const mutation = useMutation(\n async ({ entityId, stageId, uid }) => {\n const typeSlug = isSingleType ? 'single-types' : 'collection-types';\n\n const {\n data: { data: createdEntity },\n } = await put(`/admin/content-manager/${typeSlug}/${uid}/${entityId}/stage`, {\n data: { id: stageId },\n });\n\n // initialData and modifiedData have to stay in sync, otherwise the entity would be flagged\n // as modified, which is what the boolean flag is for\n onChange(\n { target: { name: STAGE_ATTRIBUTE_NAME, value: createdEntity[STAGE_ATTRIBUTE_NAME] } },\n true\n );\n\n await refetch();\n\n return createdEntity;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: {\n id: 'content-manager.reviewWorkflows.stage.notification.saved',\n defaultMessage: 'Review stage updated',\n },\n });\n },\n }\n );\n\n const handleChange = async ({ value: stageId }) => {\n try {\n /**\n * If the current license has a limit:\n * check if the total count of workflows exceeds that limit and display\n * the limits modal.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now).\n *\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10) < meta.workflowCount\n ) {\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit:\n * check if the total count of stages exceeds that limit and display\n * the limits modal.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now).\n *\n */\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10) < stages.length\n ) {\n setShowLimitModal('stage');\n } else {\n mutation.mutateAsync({\n entityId: initialData.id,\n stageId,\n uid: contentType.uid,\n });\n }\n } catch (error) {\n // react-query@v3: the error doesn't have to be handled here\n // see: https://github.com/TanStack/query/issues/121\n }\n };\n\n const { themeColorName } = activeWorkflowStage?.color\n ? getStageColorByHex(activeWorkflowStage?.color)\n : {};\n\n return (\n <>\n <Field\n hint={\n stages.length === 0 &&\n formatMessage({\n id: 'content-manager.reviewWorkflows.stages.no-transition',\n defaultMessage: 'You don’t have the permission to update this stage.',\n })\n }\n name={STAGE_ATTRIBUTE_NAME}\n id={STAGE_ATTRIBUTE_NAME}\n >\n <Flex direction=\"column\" gap={2} alignItems=\"stretch\">\n <SingleSelect\n disabled={stages.length === 0}\n error={(mutation.error && formatAPIError(mutation.error)) || null}\n name={STAGE_ATTRIBUTE_NAME}\n id={STAGE_ATTRIBUTE_NAME}\n value={activeWorkflowStage?.id}\n onChange={(value) => handleChange({ value })}\n label={formatMessage({\n id: 'content-manager.reviewWorkflows.stage.label',\n defaultMessage: 'Review stage',\n })}\n startIcon={\n activeWorkflowStage && (\n <Flex\n as=\"span\"\n height={2}\n background={activeWorkflowStage?.color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n marginRight=\"-3px\"\n />\n )\n }\n // eslint-disable-next-line react/no-unstable-nested-components\n customizeContent={() => (\n <Flex as=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis>\n {activeWorkflowStage?.name ?? ''}\n </Typography>\n {isLoading ? (\n <Loader small style={{ display: 'flex' }} data-testid=\"loader\" />\n ) : null}\n </Flex>\n )}\n >\n {stages.map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color);\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={id}\n textValue={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <FieldHint />\n <FieldError />\n </Flex>\n </Field>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'workflow'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.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: 'content-manager.reviewWorkflows.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: 'content-manager.reviewWorkflows.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: 'content-manager.reviewWorkflows.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 { useCMEditViewDataManager } from '@strapi/helper-plugin';\n\nimport { Information } from '../../../../../../../admin/src/content-manager/pages/EditView/Information';\n\nimport { AssigneeSelect } from './components/AssigneeSelect';\nimport { StageSelect } from './components/StageSelect';\n\nexport function InformationBoxEE() {\n const {\n isCreatingEntry,\n layout: { options },\n } = useCMEditViewDataManager();\n\n const hasReviewWorkflowsEnabled = options?.reviewWorkflows ?? false;\n\n return (\n <Information.Root>\n <Information.Title />\n {hasReviewWorkflowsEnabled && !isCreatingEntry && (\n <>\n <StageSelect />\n <AssigneeSelect />\n </>\n )}\n <Information.Body />\n </Information.Root>\n );\n}\n"],"names":["useCMEditViewDataManager","useSelector","selectAdminPermissions","useIntl","useAPIErrorHandler","useNotification","useFetchClient","useRBAC","useAdminUsers","ASSIGNEE_ATTRIBUTE_NAME","useMutation","uid","jsx","Field","Flex","Combobox","ComboboxOption","getDisplayName","useQuery","data","React","useLicenseLimits","STAGE_ATTRIBUTE_NAME","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME","getStageColorByHex","jsxs","Fragment","SingleSelect","Typography","Loader","themeColorName","SingleSelectOption","FieldHint","FieldError","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body","Information"],"mappings":"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"}
1
+ {"version":3,"file":"index-aaffa28c.js","sources":["../../ee/admin/src/content-manager/pages/EditView/InformationBox/components/AssigneeSelect/AssigneeSelect.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflowsStages.js","../../ee/admin/src/content-manager/pages/EditView/InformationBox/components/StageSelect/StageSelect.js","../../ee/admin/src/content-manager/pages/EditView/InformationBox/InformationBoxEE.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Combobox, ComboboxOption, Field, Flex } from '@strapi/design-system';\nimport {\n useCMEditViewDataManager,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector } from 'react-redux';\n\nimport { getDisplayName } from '../../../../../../../../../admin/src/content-manager/utils';\nimport { useAdminUsers } from '../../../../../../../../../admin/src/hooks/useAdminUsers';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { ASSIGNEE_ATTRIBUTE_NAME } from '../../constants';\n\nexport function AssigneeSelect() {\n const {\n initialData,\n layout: { uid },\n isSingleType,\n onChange,\n } = useCMEditViewDataManager();\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { put } = useFetchClient();\n const {\n allowedActions: { canReadUsers },\n isLoading: isLoadingPermissions,\n } = useRBAC({\n readUsers: permissions.settings.users.read,\n });\n const { users, isLoading, isError } = useAdminUsers(\n {},\n {\n enabled: !isLoadingPermissions && canReadUsers,\n }\n );\n\n const currentAssignee = initialData?.[ASSIGNEE_ATTRIBUTE_NAME] ?? null;\n\n const handleChange = async ({ value: assigneeId }) => {\n mutation.mutate({\n entityId: initialData.id,\n assigneeId: parseInt(assigneeId, 10),\n uid,\n });\n };\n\n const mutation = useMutation(\n async ({ entityId, assigneeId, uid }) => {\n const typeSlug = isSingleType ? 'single-types' : 'collection-types';\n\n const {\n data: { data: createdEntity },\n } = await put(`/admin/content-manager/${typeSlug}/${uid}/${entityId}/assignee`, {\n data: { id: assigneeId },\n });\n\n // initialData and modifiedData have to stay in sync, otherwise the entity would be flagged\n // as modified, which is what the boolean flag is for\n onChange(\n {\n target: { name: ASSIGNEE_ATTRIBUTE_NAME, value: createdEntity[ASSIGNEE_ATTRIBUTE_NAME] },\n },\n true\n );\n\n return createdEntity;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: {\n id: 'content-manager.reviewWorkflows.assignee.notification.saved',\n defaultMessage: 'Assignee updated',\n },\n });\n },\n }\n );\n\n return (\n <Field name={ASSIGNEE_ATTRIBUTE_NAME} id={ASSIGNEE_ATTRIBUTE_NAME}>\n <Flex direction=\"column\" gap={2} alignItems=\"stretch\">\n <Combobox\n clearLabel={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.clear',\n defaultMessage: 'Clear assignee',\n })}\n error={\n (isError &&\n canReadUsers &&\n formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.error',\n defaultMessage: 'An error occurred while fetching users',\n })) ||\n (mutation.error && formatAPIError(mutation.error))\n }\n disabled={!isLoadingPermissions && !isLoading && users.length === 0}\n name={ASSIGNEE_ATTRIBUTE_NAME}\n id={ASSIGNEE_ATTRIBUTE_NAME}\n value={currentAssignee ? currentAssignee.id : null}\n onChange={(value) => handleChange({ value })}\n onClear={() => handleChange({ value: null })}\n placeholder={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.placeholder',\n defaultMessage: 'Select …',\n })}\n label={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.label',\n defaultMessage: 'Assignee',\n })}\n loading={isLoading || isLoadingPermissions || mutation.isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption\n key={user.id}\n value={user.id}\n textValue={getDisplayName(user, formatMessage)}\n >\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n </Flex>\n </Field>\n );\n}\n","import * as React from 'react';\n\nimport { useFetchClient } from '@strapi/helper-plugin';\nimport { useQuery } from 'react-query';\n\nexport function useReviewWorkflowsStages({ id, layout } = {}, queryOptions = {}) {\n const { kind, uid } = layout;\n const slug = kind === 'collectionType' ? 'collection-types' : 'single-types';\n\n const { get } = useFetchClient();\n\n const { data, isLoading, refetch } = useQuery(\n ['content-manager', slug, layout.uid, id, 'stages'],\n async () => {\n const { data } = await get(`/admin/content-manager/${slug}/${uid}/${id}/stages`);\n\n return data;\n },\n queryOptions\n );\n\n // these return values need to be memoized, because the default value\n // would lead to infinite rendering loops when used in a dependency array\n // on an effect\n const meta = React.useMemo(() => data?.meta ?? {}, [data?.meta]);\n const stages = React.useMemo(() => data?.data ?? [], [data?.data]);\n\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n stages,\n isLoading,\n refetch,\n };\n}\n","import * as React from 'react';\n\nimport {\n SingleSelect,\n SingleSelectOption,\n Field,\n FieldError,\n FieldHint,\n Flex,\n Loader,\n Typography,\n} from '@strapi/design-system';\nimport {\n useCMEditViewDataManager,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport * as LimitsModal from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/components/LimitsModal';\nimport {\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,\n} from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/constants';\nimport { useReviewWorkflowsStages } from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflowsStages';\nimport { getStageColorByHex } from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\nimport { STAGE_ATTRIBUTE_NAME } from '../../constants';\n\nexport function StageSelect() {\n const { initialData, layout: contentType, isSingleType, onChange } = useCMEditViewDataManager();\n const { put } = useFetchClient();\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { meta, stages, isLoading, refetch } = useReviewWorkflowsStages(\n { id: initialData.id, layout: contentType },\n {\n enabled: !!initialData?.id,\n }\n );\n const { getFeature } = useLicenseLimits();\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n\n const limits = getFeature('review-workflows');\n // it is possible to rely on initialData here, because it always will\n // be updated at the same time when modifiedData is updated, otherwise\n // the entity is flagged as modified\n const activeWorkflowStage = initialData?.[STAGE_ATTRIBUTE_NAME] ?? null;\n\n const mutation = useMutation(\n async ({ entityId, stageId, uid }) => {\n const typeSlug = isSingleType ? 'single-types' : 'collection-types';\n\n const {\n data: { data: createdEntity },\n } = await put(`/admin/content-manager/${typeSlug}/${uid}/${entityId}/stage`, {\n data: { id: stageId },\n });\n\n // initialData and modifiedData have to stay in sync, otherwise the entity would be flagged\n // as modified, which is what the boolean flag is for\n onChange(\n { target: { name: STAGE_ATTRIBUTE_NAME, value: createdEntity[STAGE_ATTRIBUTE_NAME] } },\n true\n );\n\n await refetch();\n\n return createdEntity;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: {\n id: 'content-manager.reviewWorkflows.stage.notification.saved',\n defaultMessage: 'Review stage updated',\n },\n });\n },\n }\n );\n\n const handleChange = async ({ value: stageId }) => {\n try {\n /**\n * If the current license has a limit:\n * check if the total count of workflows exceeds that limit and display\n * the limits modal.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now).\n *\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10) < meta.workflowCount\n ) {\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit:\n * check if the total count of stages exceeds that limit and display\n * the limits modal.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now).\n *\n */\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10) < stages.length\n ) {\n setShowLimitModal('stage');\n } else {\n mutation.mutateAsync({\n entityId: initialData.id,\n stageId,\n uid: contentType.uid,\n });\n }\n } catch (error) {\n // react-query@v3: the error doesn't have to be handled here\n // see: https://github.com/TanStack/query/issues/121\n }\n };\n\n const { themeColorName } = activeWorkflowStage?.color\n ? getStageColorByHex(activeWorkflowStage?.color)\n : {};\n\n return (\n <>\n <Field\n hint={\n stages.length === 0 &&\n formatMessage({\n id: 'content-manager.reviewWorkflows.stages.no-transition',\n defaultMessage: 'You don’t have the permission to update this stage.',\n })\n }\n name={STAGE_ATTRIBUTE_NAME}\n id={STAGE_ATTRIBUTE_NAME}\n >\n <Flex direction=\"column\" gap={2} alignItems=\"stretch\">\n <SingleSelect\n disabled={stages.length === 0}\n error={(mutation.error && formatAPIError(mutation.error)) || null}\n name={STAGE_ATTRIBUTE_NAME}\n id={STAGE_ATTRIBUTE_NAME}\n value={activeWorkflowStage?.id}\n onChange={(value) => handleChange({ value })}\n label={formatMessage({\n id: 'content-manager.reviewWorkflows.stage.label',\n defaultMessage: 'Review stage',\n })}\n startIcon={\n activeWorkflowStage && (\n <Flex\n as=\"span\"\n height={2}\n background={activeWorkflowStage?.color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n marginRight=\"-3px\"\n />\n )\n }\n // eslint-disable-next-line react/no-unstable-nested-components\n customizeContent={() => (\n <Flex as=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis>\n {activeWorkflowStage?.name ?? ''}\n </Typography>\n {isLoading ? (\n <Loader small style={{ display: 'flex' }} data-testid=\"loader\" />\n ) : null}\n </Flex>\n )}\n >\n {stages.map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color);\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={id}\n textValue={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <FieldHint />\n <FieldError />\n </Flex>\n </Field>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'workflow'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.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: 'content-manager.reviewWorkflows.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: 'content-manager.reviewWorkflows.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: 'content-manager.reviewWorkflows.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 { useCMEditViewDataManager } from '@strapi/helper-plugin';\n\nimport { Information } from '../../../../../../../admin/src/content-manager/pages/EditView/Information';\n\nimport { AssigneeSelect } from './components/AssigneeSelect';\nimport { StageSelect } from './components/StageSelect';\n\nexport function InformationBoxEE() {\n const {\n isCreatingEntry,\n layout: { options },\n } = useCMEditViewDataManager();\n\n const hasReviewWorkflowsEnabled = options?.reviewWorkflows ?? false;\n\n return (\n <Information.Root>\n <Information.Title />\n {hasReviewWorkflowsEnabled && !isCreatingEntry && (\n <>\n <StageSelect />\n <AssigneeSelect />\n </>\n )}\n <Information.Body />\n </Information.Root>\n );\n}\n"],"names":["useCMEditViewDataManager","useSelector","selectAdminPermissions","useIntl","useAPIErrorHandler","useNotification","useFetchClient","useRBAC","useAdminUsers","ASSIGNEE_ATTRIBUTE_NAME","useMutation","uid","jsx","Field","Flex","Combobox","ComboboxOption","getDisplayName","useQuery","data","React","useLicenseLimits","STAGE_ATTRIBUTE_NAME","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME","getStageColorByHex","jsxs","Fragment","SingleSelect","Typography","Loader","themeColorName","SingleSelectOption","FieldHint","FieldError","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body","Information"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { CheckPagePermissions } from "@strapi/helper-plugin";
3
3
  import { useSelector } from "react-redux";
4
- import { s as selectAdminPermissions } from "./AuthenticatedApp-b0ada7e9.mjs";
5
- import { E as EditView } from "./index-73ba6bdd.mjs";
4
+ import { s as selectAdminPermissions } from "./AuthenticatedApp-332b40a8.mjs";
5
+ import { E as EditView } from "./index-259a5ab3.mjs";
6
6
  import "react";
7
7
  import "react-query";
8
8
  import "semver/functions/lt";
9
9
  import "semver/functions/valid";
10
- import "./index-34de382e.mjs";
10
+ import "./index-cd461a87.mjs";
11
11
  import "react-dom/client";
12
12
  import "@strapi/design-system";
13
13
  import "invariant";
@@ -18,25 +18,25 @@ import "react-helmet";
18
18
  import "react-router-dom";
19
19
  import "react-intl";
20
20
  import "@radix-ui/react-context";
21
- import "axios";
22
- import "lodash/camelCase";
23
- import "lodash/get";
24
- import "lodash/omit";
25
- import "prop-types";
26
- import "lodash/defaultsDeep";
27
- import "styled-components";
21
+ import "@strapi/design-system/v2";
28
22
  import "@strapi/icons";
29
23
  import "formik";
24
+ import "lodash/camelCase";
25
+ import "styled-components";
30
26
  import "yup";
27
+ import "lodash/defaultsDeep";
28
+ import "lodash/omit";
29
+ import "qs";
31
30
  import "immer";
31
+ import "lodash/get";
32
32
  import "lodash/set";
33
- import "qs";
34
33
  import "@reduxjs/toolkit";
35
34
  import "react-dnd";
36
35
  import "react-dnd-html5-backend";
37
- import "@strapi/design-system/v2";
38
36
  import "lodash/cloneDeep";
39
37
  import "./useContentTypes-53b449bb.mjs";
38
+ import "axios";
39
+ import "prop-types";
40
40
  const ProtectedEditView = () => {
41
41
  const permissions = useSelector(selectAdminPermissions);
42
42
  return /* @__PURE__ */ jsx(CheckPagePermissions, { permissions: permissions.settings.webhooks.update, children: /* @__PURE__ */ jsx(EditView, {}) });
@@ -44,4 +44,4 @@ const ProtectedEditView = () => {
44
44
  export {
45
45
  ProtectedEditView as default
46
46
  };
47
- //# sourceMappingURL=index-be2ca313.mjs.map
47
+ //# sourceMappingURL=index-abcea3d3.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-be2ca313.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Webhooks/ProtectedEditView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditView from '../EditView';\n\nconst ProtectedEditView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.webhooks.update}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedEditView;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,oBAAoB,MAAM;AACxB,QAAA,cAAc,YAAY,sBAAsB;AAGpD,SAAA,oBAAC,wBAAqB,aAAa,YAAY,SAAS,SAAS,QAC/D,UAAC,oBAAA,UAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;"}
1
+ {"version":3,"file":"index-abcea3d3.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Webhooks/ProtectedEditView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditView from '../EditView';\n\nconst ProtectedEditView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.webhooks.update}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedEditView;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,oBAAoB,MAAM;AACxB,QAAA,cAAc,YAAY,sBAAsB;AAGpD,SAAA,oBAAC,wBAAqB,aAAa,YAAY,SAAS,SAAS,QAC/D,UAAC,oBAAA,UAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { Link, pxToRem, useFetchClient, useAPIErrorHandler, useNotification, useTracking, useRBAC, LinkButton, onRowClick, 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-332b40a8.mjs";
5
5
  import React__default, { createElement } from "react";
6
6
  import { Flex, Loader, Table, TFooter, Thead, Tr, Th, Typography, VisuallyHidden, Tbody, Td, IconButton } from "@strapi/design-system";
7
7
  import { Plus, Pencil, Trash } from "@strapi/icons";
@@ -17,7 +17,7 @@ import { C as CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from "./constants-8092eeb5.m
17
17
  import { u as useReviewWorkflows } from "./useReviewWorkflows-9e6b8986.mjs";
18
18
  import "semver/functions/lt";
19
19
  import "semver/functions/valid";
20
- import "./index-34de382e.mjs";
20
+ import "./index-cd461a87.mjs";
21
21
  import "react-dom/client";
22
22
  import "invariant";
23
23
  import "lodash/isFunction";
@@ -25,23 +25,23 @@ import "lodash/merge";
25
25
  import "lodash/pick";
26
26
  import "react-helmet";
27
27
  import "@radix-ui/react-context";
28
- import "axios";
29
- import "lodash/camelCase";
30
- import "lodash/get";
31
- import "lodash/omit";
32
- import "prop-types";
33
- import "lodash/defaultsDeep";
28
+ import "@strapi/design-system/v2";
34
29
  import "formik";
30
+ import "lodash/camelCase";
35
31
  import "yup";
32
+ import "lodash/defaultsDeep";
33
+ import "lodash/omit";
34
+ import "qs";
36
35
  import "immer";
36
+ import "lodash/get";
37
37
  import "lodash/set";
38
- import "qs";
39
38
  import "@reduxjs/toolkit";
40
39
  import "react-dnd";
41
40
  import "react-dnd-html5-backend";
42
- import "@strapi/design-system/v2";
43
41
  import "lodash/cloneDeep";
42
+ import "axios";
44
43
  import "./DragLayer-bff96835.mjs";
44
+ import "prop-types";
45
45
  const ActionLink = styled(Link)`
46
46
  align-items: center;
47
47
  height: ${pxToRem(32)};
@@ -305,4 +305,4 @@ function index() {
305
305
  export {
306
306
  index as default
307
307
  };
308
- //# sourceMappingURL=index-af69bc98.mjs.map
308
+ //# sourceMappingURL=index-acdd9b71.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-af69bc98.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Flex,\n IconButton,\n Loader,\n Table,\n Thead,\n Tbody,\n Tr,\n Td,\n TFooter,\n Th,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n Link,\n LinkButton,\n onRowClick,\n pxToRem,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useContentTypes } from '../../../../../../../../../admin/src/hooks/useContentTypes';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport * as Layout from '../../components/Layout';\nimport * as LimitsModal from '../../components/LimitsModal';\nimport { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from '../../constants';\nimport { useReviewWorkflows } from '../../hooks/useReviewWorkflows';\n\nconst ActionLink = styled(Link)`\n align-items: center;\n height: ${pxToRem(32)};\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}}`};\n width: ${pxToRem(32)};\n\n svg {\n height: ${pxToRem(12)};\n width: ${pxToRem(12)};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nexport function ReviewWorkflowsListView() {\n const { formatMessage } = useIntl();\n const { push } = useHistory();\n const { collectionTypes, singleTypes, isLoading: isLoadingModels } = useContentTypes();\n const { meta, workflows, isLoading, refetch } = useReviewWorkflows();\n const [workflowToDelete, setWorkflowToDelete] = React.useState(null);\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n const { del } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { trackUsage } = useTracking();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete },\n } = useRBAC(permissions.settings['review-workflows']);\n\n const limits = getFeature('review-workflows');\n\n const { mutateAsync, isLoading: isLoadingMutation } = useMutation(\n async ({ workflowId, stages }) => {\n const {\n data: { data },\n } = await del(`/admin/review-workflows/workflows/${workflowId}`, {\n data: stages,\n });\n\n return data;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.deleted', defaultMessage: 'Deleted' },\n });\n },\n }\n );\n\n const getContentTypeDisplayName = (uid) => {\n const contentType = [...collectionTypes, ...singleTypes].find(\n (contentType) => contentType.uid === uid\n );\n\n return contentType.info.displayName;\n };\n\n const handleDeleteWorkflow = (workflowId) => {\n setWorkflowToDelete(workflowId);\n };\n\n const toggleConfirmDeleteDialog = () => {\n setWorkflowToDelete(null);\n };\n\n const handleConfirmDeleteDialog = async () => {\n try {\n const res = await mutateAsync({ workflowId: workflowToDelete });\n\n await refetch();\n setWorkflowToDelete(null);\n\n return res;\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n\n return null;\n }\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 (!isLoading && !isLicenseLoading) {\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n }\n }\n }, [isLicenseLoading, isLoading, limits, meta?.workflowCount, meta.workflowsTotal]);\n\n return (\n <>\n <Layout.Header\n primaryAction={\n canCreate && (\n <LinkButton\n startIcon={<Plus />}\n size=\"S\"\n to=\"/settings/review-workflows/create\"\n onClick={(event) => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit. If so,\n * prevent the navigation and show the limits overlay.\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >= parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n event.preventDefault();\n setShowLimitModal(true);\n } else {\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </LinkButton>\n )\n }\n subtitle={formatMessage({\n id: 'Settings.review-workflows.list.page.subtitle',\n defaultMessage: 'Manage your content review process',\n })}\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n\n <Layout.Root>\n {isLoading || isLoadingModels ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.list.isLoading',\n defaultMessage: 'Workflows are loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Table\n colCount={3}\n footer={\n // TODO: we should be able to use a link here instead of an (inaccessible onClick) handler\n canCreate && (\n <TFooter\n icon={<Plus />}\n onClick={() => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >=\n parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n } else {\n push('/settings/review-workflows/create');\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </TFooter>\n )\n }\n rowCount={1}\n >\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.name.title',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.stages.title',\n defaultMessage: 'Stages',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.contentTypes.title',\n defaultMessage: 'Content Types',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.actions.title',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n\n <Tbody>\n {workflows.map((workflow) => (\n <Tr\n {...onRowClick({\n fn(event) {\n // Abort row onClick event when the user click on the delete button\n if (event.target.nodeName === 'BUTTON') {\n return;\n }\n\n push(`/settings/review-workflows/${workflow.id}`);\n },\n })}\n key={`workflow-${workflow.id}`}\n >\n <Td width={pxToRem(250)}>\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {workflow.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{workflow.stages.length}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {(workflow?.contentTypes ?? []).map(getContentTypeDisplayName).join(', ')}\n </Typography>\n </Td>\n <Td>\n <Flex alignItems=\"center\" justifyContent=\"end\">\n <ActionLink\n to={`/settings/review-workflows/${workflow.id}`}\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',\n defaultMessage: 'Edit {name}',\n },\n { name: workflow.name }\n )}\n >\n <Pencil />\n </ActionLink>\n\n {workflows.length > 1 && canDelete && (\n <IconButton\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.delete.label',\n defaultMessage: 'Delete {name}',\n },\n { name: 'Default workflow' }\n )}\n icon={<Trash />}\n noBorder\n onClick={() => {\n handleDeleteWorkflow(workflow.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n )}\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.review-workflows.list.page.delete.confirm.body',\n defaultMessage:\n 'If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?',\n }}\n isConfirmButtonLoading={isLoadingMutation}\n isOpen={!!workflowToDelete}\n onToggleDialog={toggleConfirmDeleteDialog}\n onConfirm={handleConfirmDeleteDialog}\n />\n\n <LimitsModal.Root isOpen={showLimitModal} onClose={() => setShowLimitModal(false)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.list.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.list.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </Layout.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 { ReviewWorkflowsListView } from './ListView';\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['review-workflows'].main}>\n <ReviewWorkflowsListView />\n </CheckPagePermissions>\n );\n}\n"],"names":["React","contentType","Layout.Header","Layout.Root","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body"],"mappings":"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"}
1
+ {"version":3,"file":"index-acdd9b71.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Flex,\n IconButton,\n Loader,\n Table,\n Thead,\n Tbody,\n Tr,\n Td,\n TFooter,\n Th,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n Link,\n LinkButton,\n onRowClick,\n pxToRem,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useContentTypes } from '../../../../../../../../../admin/src/hooks/useContentTypes';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport * as Layout from '../../components/Layout';\nimport * as LimitsModal from '../../components/LimitsModal';\nimport { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from '../../constants';\nimport { useReviewWorkflows } from '../../hooks/useReviewWorkflows';\n\nconst ActionLink = styled(Link)`\n align-items: center;\n height: ${pxToRem(32)};\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}}`};\n width: ${pxToRem(32)};\n\n svg {\n height: ${pxToRem(12)};\n width: ${pxToRem(12)};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nexport function ReviewWorkflowsListView() {\n const { formatMessage } = useIntl();\n const { push } = useHistory();\n const { collectionTypes, singleTypes, isLoading: isLoadingModels } = useContentTypes();\n const { meta, workflows, isLoading, refetch } = useReviewWorkflows();\n const [workflowToDelete, setWorkflowToDelete] = React.useState(null);\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n const { del } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { trackUsage } = useTracking();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete },\n } = useRBAC(permissions.settings['review-workflows']);\n\n const limits = getFeature('review-workflows');\n\n const { mutateAsync, isLoading: isLoadingMutation } = useMutation(\n async ({ workflowId, stages }) => {\n const {\n data: { data },\n } = await del(`/admin/review-workflows/workflows/${workflowId}`, {\n data: stages,\n });\n\n return data;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.deleted', defaultMessage: 'Deleted' },\n });\n },\n }\n );\n\n const getContentTypeDisplayName = (uid) => {\n const contentType = [...collectionTypes, ...singleTypes].find(\n (contentType) => contentType.uid === uid\n );\n\n return contentType.info.displayName;\n };\n\n const handleDeleteWorkflow = (workflowId) => {\n setWorkflowToDelete(workflowId);\n };\n\n const toggleConfirmDeleteDialog = () => {\n setWorkflowToDelete(null);\n };\n\n const handleConfirmDeleteDialog = async () => {\n try {\n const res = await mutateAsync({ workflowId: workflowToDelete });\n\n await refetch();\n setWorkflowToDelete(null);\n\n return res;\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n\n return null;\n }\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 (!isLoading && !isLicenseLoading) {\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n }\n }\n }, [isLicenseLoading, isLoading, limits, meta?.workflowCount, meta.workflowsTotal]);\n\n return (\n <>\n <Layout.Header\n primaryAction={\n canCreate && (\n <LinkButton\n startIcon={<Plus />}\n size=\"S\"\n to=\"/settings/review-workflows/create\"\n onClick={(event) => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit. If so,\n * prevent the navigation and show the limits overlay.\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >= parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n event.preventDefault();\n setShowLimitModal(true);\n } else {\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </LinkButton>\n )\n }\n subtitle={formatMessage({\n id: 'Settings.review-workflows.list.page.subtitle',\n defaultMessage: 'Manage your content review process',\n })}\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n\n <Layout.Root>\n {isLoading || isLoadingModels ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.list.isLoading',\n defaultMessage: 'Workflows are loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Table\n colCount={3}\n footer={\n // TODO: we should be able to use a link here instead of an (inaccessible onClick) handler\n canCreate && (\n <TFooter\n icon={<Plus />}\n onClick={() => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >=\n parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n } else {\n push('/settings/review-workflows/create');\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </TFooter>\n )\n }\n rowCount={1}\n >\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.name.title',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.stages.title',\n defaultMessage: 'Stages',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.contentTypes.title',\n defaultMessage: 'Content Types',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.actions.title',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n\n <Tbody>\n {workflows.map((workflow) => (\n <Tr\n {...onRowClick({\n fn(event) {\n // Abort row onClick event when the user click on the delete button\n if (event.target.nodeName === 'BUTTON') {\n return;\n }\n\n push(`/settings/review-workflows/${workflow.id}`);\n },\n })}\n key={`workflow-${workflow.id}`}\n >\n <Td width={pxToRem(250)}>\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {workflow.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{workflow.stages.length}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {(workflow?.contentTypes ?? []).map(getContentTypeDisplayName).join(', ')}\n </Typography>\n </Td>\n <Td>\n <Flex alignItems=\"center\" justifyContent=\"end\">\n <ActionLink\n to={`/settings/review-workflows/${workflow.id}`}\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',\n defaultMessage: 'Edit {name}',\n },\n { name: workflow.name }\n )}\n >\n <Pencil />\n </ActionLink>\n\n {workflows.length > 1 && canDelete && (\n <IconButton\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.delete.label',\n defaultMessage: 'Delete {name}',\n },\n { name: 'Default workflow' }\n )}\n icon={<Trash />}\n noBorder\n onClick={() => {\n handleDeleteWorkflow(workflow.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n )}\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.review-workflows.list.page.delete.confirm.body',\n defaultMessage:\n 'If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?',\n }}\n isConfirmButtonLoading={isLoadingMutation}\n isOpen={!!workflowToDelete}\n onToggleDialog={toggleConfirmDeleteDialog}\n onConfirm={handleConfirmDeleteDialog}\n />\n\n <LimitsModal.Root isOpen={showLimitModal} onClose={() => setShowLimitModal(false)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.list.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.list.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </Layout.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 { ReviewWorkflowsListView } from './ListView';\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['review-workflows'].main}>\n <ReviewWorkflowsListView />\n </CheckPagePermissions>\n );\n}\n"],"names":["React","contentType","Layout.Header","Layout.Root","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body"],"mappings":"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"}
@@ -3,13 +3,13 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const helperPlugin = require("@strapi/helper-plugin");
5
5
  const reactRedux = require("react-redux");
6
- const AuthenticatedApp = require("./AuthenticatedApp-092ef2be.js");
7
- const index = require("./index-cadd3ee0.js");
6
+ const AuthenticatedApp = require("./AuthenticatedApp-26a57d48.js");
7
+ const index = require("./index-89cb437c.js");
8
8
  require("react");
9
9
  require("react-query");
10
10
  require("semver/functions/lt");
11
11
  require("semver/functions/valid");
12
- require("./index-edc9bb0b.js");
12
+ require("./index-0134922e.js");
13
13
  require("react-dom/client");
14
14
  require("@strapi/design-system");
15
15
  require("invariant");
@@ -20,26 +20,27 @@ require("react-helmet");
20
20
  require("react-router-dom");
21
21
  require("react-intl");
22
22
  require("@radix-ui/react-context");
23
- require("axios");
24
- require("lodash/camelCase");
25
- require("lodash/get");
26
- require("lodash/omit");
27
- require("prop-types");
28
- require("lodash/defaultsDeep");
29
- require("styled-components");
23
+ require("@strapi/design-system/v2");
30
24
  require("@strapi/icons");
31
25
  require("formik");
26
+ require("lodash/camelCase");
27
+ require("styled-components");
32
28
  require("yup");
29
+ require("lodash/defaultsDeep");
30
+ require("lodash/omit");
31
+ require("qs");
33
32
  require("immer");
33
+ require("lodash/get");
34
34
  require("lodash/set");
35
- require("qs");
36
35
  require("@reduxjs/toolkit");
37
36
  require("react-dnd");
38
37
  require("react-dnd-html5-backend");
39
- require("@strapi/design-system/v2");
40
38
  require("lodash/cloneDeep");
39
+ require("./formatAPIErrors-b599cf27.js");
41
40
  require("./constants-da2542a3.js");
42
41
  require("./index-d3e1fd86.js");
42
+ require("prop-types");
43
+ require("axios");
43
44
  require("date-fns");
44
45
  require("date-fns/locale");
45
46
  require("lodash/map");
@@ -51,4 +52,4 @@ const ProtectedApiTokenCreateView = () => {
51
52
  return /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.CheckPagePermissions, { permissions: permissions.settings["api-tokens"].read, children: /* @__PURE__ */ jsxRuntime.jsx(index.ApiTokenCreateView, {}) });
52
53
  };
53
54
  exports.default = ProtectedApiTokenCreateView;
54
- //# sourceMappingURL=index-89d27faa.js.map
55
+ //# sourceMappingURL=index-adc85ed8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-89d27faa.js","sources":["../../admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedEditView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditView from '../EditView';\n\nconst ProtectedApiTokenCreateView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['api-tokens'].read}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedApiTokenCreateView;\n"],"names":["useSelector","selectAdminPermissions","jsx","CheckPagePermissions","EditView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,8BAA8B,MAAM;AAClC,QAAA,cAAcA,uBAAYC,iBAAAA,sBAAsB;AAGpD,SAAAC,2BAAA,IAACC,aAAqB,sBAAA,EAAA,aAAa,YAAY,SAAS,YAAY,EAAE,MACpE,UAACD,2BAAA,IAAAE,MAAA,oBAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;;"}
1
+ {"version":3,"file":"index-adc85ed8.js","sources":["../../admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedEditView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditView from '../EditView';\n\nconst ProtectedApiTokenCreateView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['api-tokens'].read}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedApiTokenCreateView;\n"],"names":["useSelector","selectAdminPermissions","jsx","CheckPagePermissions","EditView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,8BAA8B,MAAM;AAClC,QAAA,cAAcA,uBAAYC,iBAAAA,sBAAsB;AAGpD,SAAAC,2BAAA,IAACC,aAAqB,sBAAA,EAAA,aAAa,YAAY,SAAS,YAAY,EAAE,MACpE,UAACD,2BAAA,IAAAE,MAAA,oBAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;;"}