@strapi/admin 4.15.1 → 4.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/dist/_chunks/{AuthenticatedApp-092ef2be.js → AuthenticatedApp-d1e28164.js} +30 -30
  2. package/dist/_chunks/{AuthenticatedApp-092ef2be.js.map → AuthenticatedApp-d1e28164.js.map} +1 -1
  3. package/dist/_chunks/{AuthenticatedApp-b0ada7e9.mjs → AuthenticatedApp-fd7e406d.mjs} +30 -30
  4. package/dist/_chunks/{AuthenticatedApp-b0ada7e9.mjs.map → AuthenticatedApp-fd7e406d.mjs.map} +1 -1
  5. package/dist/_chunks/{HomePage-5798ba6f.mjs → HomePage-2a7f678a.mjs} +7 -8
  6. package/dist/_chunks/{HomePage-5798ba6f.mjs.map → HomePage-2a7f678a.mjs.map} +1 -1
  7. package/dist/_chunks/{HomePage-5ae473e6.js → HomePage-2ac5c213.js} +7 -8
  8. package/dist/_chunks/{HomePage-5ae473e6.js.map → HomePage-2ac5c213.js.map} +1 -1
  9. package/dist/_chunks/{HomePage-bdcb51be.js → HomePage-616a2985.js} +12 -13
  10. package/dist/_chunks/HomePage-616a2985.js.map +1 -0
  11. package/dist/_chunks/{HomePage-a3cc32d2.mjs → HomePage-ded37c60.mjs} +12 -13
  12. package/dist/_chunks/HomePage-ded37c60.mjs.map +1 -0
  13. package/dist/_chunks/{InstalledPluginsPage-cc2d6a36.js → InstalledPluginsPage-189010c1.js} +10 -12
  14. package/dist/_chunks/{InstalledPluginsPage-cc2d6a36.js.map → InstalledPluginsPage-189010c1.js.map} +1 -1
  15. package/dist/_chunks/{InstalledPluginsPage-6284aaff.mjs → InstalledPluginsPage-afa9edc3.mjs} +10 -12
  16. package/dist/_chunks/{InstalledPluginsPage-6284aaff.mjs.map → InstalledPluginsPage-afa9edc3.mjs.map} +1 -1
  17. package/dist/_chunks/{index-305a03f4.mjs → Login-02ddabf7.mjs} +25 -29
  18. package/dist/_chunks/Login-02ddabf7.mjs.map +1 -0
  19. package/dist/_chunks/{index-137490ba.js → Login-28127829.js} +25 -30
  20. package/dist/_chunks/Login-28127829.js.map +1 -0
  21. package/dist/_chunks/{MarketplacePage-7dee72f5.mjs → MarketplacePage-40f76f3d.mjs} +6 -8
  22. package/dist/_chunks/{MarketplacePage-7dee72f5.mjs.map → MarketplacePage-40f76f3d.mjs.map} +1 -1
  23. package/dist/_chunks/{MarketplacePage-209ec658.js → MarketplacePage-946134e6.js} +6 -8
  24. package/dist/_chunks/{MarketplacePage-209ec658.js.map → MarketplacePage-946134e6.js.map} +1 -1
  25. package/dist/_chunks/{ProfilePage-26c14ba4.mjs → ProfilePage-4c94e332.mjs} +7 -9
  26. package/dist/_chunks/{ProfilePage-26c14ba4.mjs.map → ProfilePage-4c94e332.mjs.map} +1 -1
  27. package/dist/_chunks/{ProfilePage-4f8c127b.js → ProfilePage-6506e401.js} +7 -9
  28. package/dist/_chunks/{ProfilePage-4f8c127b.js.map → ProfilePage-6506e401.js.map} +1 -1
  29. package/dist/_chunks/{SSOProviders-1d062c95.mjs → SSOProviders-62bfad92.mjs} +29 -61
  30. package/dist/_chunks/SSOProviders-62bfad92.mjs.map +1 -0
  31. package/dist/_chunks/{SSOProviders-1ef0a89e.js → SSOProviders-b395a4e6.js} +28 -80
  32. package/dist/_chunks/SSOProviders-b395a4e6.js.map +1 -0
  33. package/dist/_chunks/{build-f36bfc97.js → build-55ba3e68.js} +4 -2
  34. package/dist/_chunks/{build-f36bfc97.js.map → build-55ba3e68.js.map} +1 -1
  35. package/dist/_chunks/{build-e1ca35da.mjs → build-b67ecc59.mjs} +4 -2
  36. package/dist/_chunks/{build-e1ca35da.mjs.map → build-b67ecc59.mjs.map} +1 -1
  37. package/dist/_chunks/{constants-70e05152.js → constants-42f4f7b3.js} +6 -6
  38. package/dist/_chunks/{constants-70e05152.js.map → constants-42f4f7b3.js.map} +1 -1
  39. package/dist/_chunks/{constants-921eda17.mjs → constants-6ecddc43.mjs} +43 -15
  40. package/dist/_chunks/constants-6ecddc43.mjs.map +1 -0
  41. package/dist/_chunks/{constants-727a113c.js → constants-733b0568.js} +26 -26
  42. package/dist/_chunks/constants-733b0568.js.map +1 -0
  43. package/dist/_chunks/{constants-86aa3e70.js → constants-7596f6f3.js} +60 -13
  44. package/dist/_chunks/constants-7596f6f3.js.map +1 -0
  45. package/dist/_chunks/{constants-32975b2e.js → constants-82e97fee.js} +11 -12
  46. package/dist/_chunks/{constants-32975b2e.js.map → constants-82e97fee.js.map} +1 -1
  47. package/dist/_chunks/{constants-90c20a6f.mjs → constants-952c50be.mjs} +11 -12
  48. package/dist/_chunks/{constants-90c20a6f.mjs.map → constants-952c50be.mjs.map} +1 -1
  49. package/dist/_chunks/{constants-9de7641c.mjs → constants-c0280aed.mjs} +28 -28
  50. package/dist/_chunks/constants-c0280aed.mjs.map +1 -0
  51. package/dist/_chunks/{constants-a773ff9b.js → constants-c9fce26f.js} +13 -12
  52. package/dist/_chunks/{constants-a773ff9b.js.map → constants-c9fce26f.js.map} +1 -1
  53. package/dist/_chunks/{constants-6157f648.mjs → constants-cbadfd36.mjs} +6 -6
  54. package/dist/_chunks/{constants-6157f648.mjs.map → constants-cbadfd36.mjs.map} +1 -1
  55. package/dist/_chunks/{constants-27319180.mjs → constants-cd1acf1b.mjs} +13 -12
  56. package/dist/_chunks/{constants-27319180.mjs.map → constants-cd1acf1b.mjs.map} +1 -1
  57. package/dist/_chunks/{develop-513c9644.js → develop-69e28e61.js} +4 -2
  58. package/dist/_chunks/{develop-513c9644.js.map → develop-69e28e61.js.map} +1 -1
  59. package/dist/_chunks/{develop-e45b460e.mjs → develop-d97e7494.mjs} +4 -2
  60. package/dist/_chunks/{develop-e45b460e.mjs.map → develop-d97e7494.mjs.map} +1 -1
  61. package/dist/_chunks/formatAPIErrors-b599cf27.js +20 -0
  62. package/dist/_chunks/formatAPIErrors-b599cf27.js.map +1 -0
  63. package/dist/_chunks/formatAPIErrors-db6ed675.mjs +21 -0
  64. package/dist/_chunks/formatAPIErrors-db6ed675.mjs.map +1 -0
  65. package/dist/_chunks/{index-af69bc98.mjs → index-01dfec54.mjs} +11 -11
  66. package/dist/_chunks/{index-af69bc98.mjs.map → index-01dfec54.mjs.map} +1 -1
  67. package/dist/_chunks/{index-fcd5bc14.mjs → index-0ed0c104.mjs} +14 -13
  68. package/dist/_chunks/{index-fcd5bc14.mjs.map → index-0ed0c104.mjs.map} +1 -1
  69. package/dist/_chunks/{index-1f1e2465.js → index-13a78498.js} +9 -11
  70. package/dist/_chunks/{index-1f1e2465.js.map → index-13a78498.js.map} +1 -1
  71. package/dist/_chunks/{index-6b9e3d60.js → index-150ec200.js} +9 -10
  72. package/dist/_chunks/{index-6b9e3d60.js.map → index-150ec200.js.map} +1 -1
  73. package/dist/_chunks/{index-b2257157.js → index-17acbe23.js} +49 -12
  74. package/dist/_chunks/index-17acbe23.js.map +1 -0
  75. package/dist/_chunks/{index-f5342ea5.js → index-17fbff58.js} +14 -13
  76. package/dist/_chunks/{index-f5342ea5.js.map → index-17fbff58.js.map} +1 -1
  77. package/dist/_chunks/{index-bb8093ea.mjs → index-18155022.mjs} +12 -12
  78. package/dist/_chunks/{index-bb8093ea.mjs.map → index-18155022.mjs.map} +1 -1
  79. package/dist/_chunks/{index-e22d1a84.mjs → index-22993544.mjs} +14 -13
  80. package/dist/_chunks/{index-e22d1a84.mjs.map → index-22993544.mjs.map} +1 -1
  81. package/dist/_chunks/{index-16030b74.js → index-2f4b78ee.js} +3 -3
  82. package/dist/_chunks/index-2f4b78ee.js.map +1 -0
  83. package/dist/_chunks/{index-35e4bad6.mjs → index-30933e3e.mjs} +8 -9
  84. package/dist/_chunks/{index-35e4bad6.mjs.map → index-30933e3e.mjs.map} +1 -1
  85. package/dist/_chunks/{index-928b18d2.mjs → index-31227291.mjs} +3 -3
  86. package/dist/_chunks/{index-928b18d2.mjs.map → index-31227291.mjs.map} +1 -1
  87. package/dist/_chunks/{index-24189ec9.js → index-3b888524.js} +6 -6
  88. package/dist/_chunks/{index-24189ec9.js.map → index-3b888524.js.map} +1 -1
  89. package/dist/_chunks/{index-5752584c.mjs → index-44360544.mjs} +182 -76
  90. package/dist/_chunks/index-44360544.mjs.map +1 -0
  91. package/dist/_chunks/{index-be2ca313.mjs → index-45ae7be1.mjs} +13 -13
  92. package/dist/_chunks/{index-be2ca313.mjs.map → index-45ae7be1.mjs.map} +1 -1
  93. package/dist/_chunks/{index-62b4b3fc.js → index-470a72bf.js} +11 -11
  94. package/dist/_chunks/{index-62b4b3fc.js.map → index-470a72bf.js.map} +1 -1
  95. package/dist/_chunks/{index-00202c8a.mjs → index-4a46c368.mjs} +13 -12
  96. package/dist/_chunks/{index-00202c8a.mjs.map → index-4a46c368.mjs.map} +1 -1
  97. package/dist/_chunks/{index-332f319e.mjs → index-52b70b56.mjs} +8 -10
  98. package/dist/_chunks/{index-332f319e.mjs.map → index-52b70b56.mjs.map} +1 -1
  99. package/dist/_chunks/{index-5ad8482b.mjs → index-55f9b6b3.mjs} +7 -7
  100. package/dist/_chunks/{index-5ad8482b.mjs.map → index-55f9b6b3.mjs.map} +1 -1
  101. package/dist/_chunks/{index-6cc54f3b.mjs → index-59e31a9f.mjs} +8 -9
  102. package/dist/_chunks/{index-6cc54f3b.mjs.map → index-59e31a9f.mjs.map} +1 -1
  103. package/dist/_chunks/{index-1e973c03.mjs → index-5df8a59e.mjs} +14 -13
  104. package/dist/_chunks/{index-1e973c03.mjs.map → index-5df8a59e.mjs.map} +1 -1
  105. package/dist/_chunks/{index-34de382e.mjs → index-60a57d31.mjs} +688 -824
  106. package/dist/_chunks/index-60a57d31.mjs.map +1 -0
  107. package/dist/_chunks/{index-77e0e5d7.js → index-62264743.js} +8 -7
  108. package/dist/_chunks/{index-77e0e5d7.js.map → index-62264743.js.map} +1 -1
  109. package/dist/_chunks/{index-4565fcbd.js → index-6931e33c.js} +3 -3
  110. package/dist/_chunks/{index-4565fcbd.js.map → index-6931e33c.js.map} +1 -1
  111. package/dist/_chunks/{index-3c58de6f.js → index-748f8264.js} +14 -13
  112. package/dist/_chunks/{index-3c58de6f.js.map → index-748f8264.js.map} +1 -1
  113. package/dist/_chunks/{index-bdfc1149.mjs → index-768b7de9.mjs} +49 -12
  114. package/dist/_chunks/index-768b7de9.mjs.map +1 -0
  115. package/dist/_chunks/{index-1763a04f.js → index-7739ddf5.js} +8 -9
  116. package/dist/_chunks/{index-1763a04f.js.map → index-7739ddf5.js.map} +1 -1
  117. package/dist/_chunks/{index-89d27faa.js → index-794eb0b6.js} +14 -13
  118. package/dist/_chunks/{index-89d27faa.js.map → index-794eb0b6.js.map} +1 -1
  119. package/dist/_chunks/{index-f448aed2.js → index-7e9cd960.js} +13 -12
  120. package/dist/_chunks/{index-f448aed2.js.map → index-7e9cd960.js.map} +1 -1
  121. package/dist/_chunks/{index-0af587c3.js → index-7f642760.js} +78 -147
  122. package/dist/_chunks/index-7f642760.js.map +1 -0
  123. package/dist/_chunks/{index-56ced4ab.mjs → index-853bd239.mjs} +8 -7
  124. package/dist/_chunks/{index-56ced4ab.mjs.map → index-853bd239.mjs.map} +1 -1
  125. package/dist/_chunks/{index-b98ea3ce.mjs → index-8a4d0275.mjs} +13 -14
  126. package/dist/_chunks/{index-b98ea3ce.mjs.map → index-8a4d0275.mjs.map} +1 -1
  127. package/dist/_chunks/{index-6dbc94a9.mjs → index-9c45bda7.mjs} +6 -6
  128. package/dist/_chunks/{index-6dbc94a9.mjs.map → index-9c45bda7.mjs.map} +1 -1
  129. package/dist/_chunks/{index-4c5acc70.js → index-9eb160a3.js} +9 -10
  130. package/dist/_chunks/{index-4c5acc70.js.map → index-9eb160a3.js.map} +1 -1
  131. package/dist/_chunks/{index-51a15b27.js → index-9f155b14.js} +4 -4
  132. package/dist/_chunks/{index-51a15b27.js.map → index-9f155b14.js.map} +1 -1
  133. package/dist/_chunks/{index-066ee02e.js → index-9f50c8b0.js} +8 -10
  134. package/dist/_chunks/{index-066ee02e.js.map → index-9f50c8b0.js.map} +1 -1
  135. package/dist/_chunks/{index-284c5926.js → index-9f900c47.js} +33 -47
  136. package/dist/_chunks/index-9f900c47.js.map +1 -0
  137. package/dist/_chunks/{index-5d8d89a7.js → index-a163001f.js} +13 -13
  138. package/dist/_chunks/{index-5d8d89a7.js.map → index-a163001f.js.map} +1 -1
  139. package/dist/_chunks/{index-34a2909e.mjs → index-a3176d19.mjs} +12 -12
  140. package/dist/_chunks/{index-34a2909e.mjs.map → index-a3176d19.mjs.map} +1 -1
  141. package/dist/_chunks/{index-ea23ee9f.mjs → index-a7d28c42.mjs} +9 -11
  142. package/dist/_chunks/{index-ea23ee9f.mjs.map → index-a7d28c42.mjs.map} +1 -1
  143. package/dist/_chunks/{index-a4348f3b.js → index-a8358156.js} +12 -12
  144. package/dist/_chunks/index-a8358156.js.map +1 -0
  145. package/dist/_chunks/{index-58db145d.mjs → index-a8d13f01.mjs} +3 -3
  146. package/dist/_chunks/{index-58db145d.mjs.map → index-a8d13f01.mjs.map} +1 -1
  147. package/dist/_chunks/{index-59d22949.mjs → index-b4cc14ad.mjs} +8 -9
  148. package/dist/_chunks/{index-59d22949.mjs.map → index-b4cc14ad.mjs.map} +1 -1
  149. package/dist/_chunks/{index-6a512cec.js → index-bad666f0.js} +8 -9
  150. package/dist/_chunks/{index-6a512cec.js.map → index-bad666f0.js.map} +1 -1
  151. package/dist/_chunks/{index-53ba81f9.mjs → index-bf788868.mjs} +9 -10
  152. package/dist/_chunks/{index-53ba81f9.mjs.map → index-bf788868.mjs.map} +1 -1
  153. package/dist/_chunks/{index-da04b144.js → index-bfb5b3ab.js} +14 -13
  154. package/dist/_chunks/{index-da04b144.js.map → index-bfb5b3ab.js.map} +1 -1
  155. package/dist/_chunks/{index-cadd3ee0.js → index-c0603138.js} +4 -4
  156. package/dist/_chunks/{index-cadd3ee0.js.map → index-c0603138.js.map} +1 -1
  157. package/dist/_chunks/{index-c604806d.js → index-c3761887.js} +12 -12
  158. package/dist/_chunks/{index-c604806d.js.map → index-c3761887.js.map} +1 -1
  159. package/dist/_chunks/{index-1da8c640.mjs → index-c4d3a07b.mjs} +9 -10
  160. package/dist/_chunks/{index-1da8c640.mjs.map → index-c4d3a07b.mjs.map} +1 -1
  161. package/dist/_chunks/{index-36e0d449.mjs → index-c7386be1.mjs} +32 -45
  162. package/dist/_chunks/index-c7386be1.mjs.map +1 -0
  163. package/dist/_chunks/{index-8d4d361d.mjs → index-cc7bedec.mjs} +13 -13
  164. package/dist/_chunks/{index-8d4d361d.mjs.map → index-cc7bedec.mjs.map} +1 -1
  165. package/dist/_chunks/{index-86dfbe3a.js → index-cce8ecb6.js} +178 -72
  166. package/dist/_chunks/index-cce8ecb6.js.map +1 -0
  167. package/dist/_chunks/{index-acd6d64f.js → index-cdadc366.js} +8 -7
  168. package/dist/_chunks/{index-acd6d64f.js.map → index-cdadc366.js.map} +1 -1
  169. package/dist/_chunks/{index-48322669.mjs → index-d81f74c4.mjs} +3 -3
  170. package/dist/_chunks/index-d81f74c4.mjs.map +1 -0
  171. package/dist/_chunks/{index-b81f7273.mjs → index-d93367d2.mjs} +78 -147
  172. package/dist/_chunks/index-d93367d2.mjs.map +1 -0
  173. package/dist/_chunks/{index-85069cac.mjs → index-dace55d9.mjs} +9 -10
  174. package/dist/_chunks/{index-85069cac.mjs.map → index-dace55d9.mjs.map} +1 -1
  175. package/dist/_chunks/{index-f179c7ea.js → index-db37fbe6.js} +13 -13
  176. package/dist/_chunks/{index-f179c7ea.js.map → index-db37fbe6.js.map} +1 -1
  177. package/dist/_chunks/{index-d1620260.js → index-dcb2c919.js} +13 -14
  178. package/dist/_chunks/{index-d1620260.js.map → index-dcb2c919.js.map} +1 -1
  179. package/dist/_chunks/{index-52b5db8a.js → index-dd3259f3.js} +8 -9
  180. package/dist/_chunks/{index-52b5db8a.js.map → index-dd3259f3.js.map} +1 -1
  181. package/dist/_chunks/{index-7d40adea.mjs → index-df42dfec.mjs} +8 -7
  182. package/dist/_chunks/{index-7d40adea.mjs.map → index-df42dfec.mjs.map} +1 -1
  183. package/dist/_chunks/{index-edc9bb0b.js → index-e2663a88.js} +673 -811
  184. package/dist/_chunks/index-e2663a88.js.map +1 -0
  185. package/dist/_chunks/{index-7aed99db.js → index-e2c5346d.js} +12 -12
  186. package/dist/_chunks/{index-7aed99db.js.map → index-e2c5346d.js.map} +1 -1
  187. package/dist/_chunks/{index-e414353b.js → index-e7381e58.js} +8 -8
  188. package/dist/_chunks/{index-e414353b.js.map → index-e7381e58.js.map} +1 -1
  189. package/dist/_chunks/{index-73ba6bdd.mjs → index-e8eff6c5.mjs} +3 -3
  190. package/dist/_chunks/{index-73ba6bdd.mjs.map → index-e8eff6c5.mjs.map} +1 -1
  191. package/dist/_chunks/{index-370a4ee8.mjs → index-f69d3930.mjs} +12 -12
  192. package/dist/_chunks/index-f69d3930.mjs.map +1 -0
  193. package/dist/_chunks/{index-8ea5a488.js → index-f9e95b10.js} +9 -10
  194. package/dist/_chunks/{index-8ea5a488.js.map → index-f9e95b10.js.map} +1 -1
  195. package/dist/_chunks/{index-1b7e986c.mjs → index-fe29b1fd.mjs} +14 -13
  196. package/dist/_chunks/{index-1b7e986c.mjs.map → index-fe29b1fd.mjs.map} +1 -1
  197. package/dist/_chunks/{schema-f49c76d7.js → schema-8eebfdf9.js} +2 -2
  198. package/dist/_chunks/{schema-f49c76d7.js.map → schema-8eebfdf9.js.map} +1 -1
  199. package/dist/_chunks/{schema-a95f2514.mjs → schema-ac25a47b.mjs} +2 -2
  200. package/dist/_chunks/{schema-a95f2514.mjs.map → schema-ac25a47b.mjs.map} +1 -1
  201. package/dist/_chunks/{validateWorkflow-d051b610.mjs → validateWorkflow-2511dc85.mjs} +3 -3
  202. package/dist/_chunks/{validateWorkflow-d051b610.mjs.map → validateWorkflow-2511dc85.mjs.map} +1 -1
  203. package/dist/_chunks/{validateWorkflow-e66d7d2e.js → validateWorkflow-c0f3148d.js} +3 -3
  204. package/dist/_chunks/{validateWorkflow-e66d7d2e.js.map → validateWorkflow-c0f3148d.js.map} +1 -1
  205. package/dist/admin/index.js +9 -10
  206. package/dist/admin/index.js.map +1 -1
  207. package/dist/admin/index.mjs +9 -10
  208. package/dist/admin/index.mjs.map +1 -1
  209. package/dist/admin/src/constants.d.ts +10 -0
  210. package/dist/admin/src/contexts/admin.d.ts +2 -2
  211. package/dist/admin/src/hooks/__mocks__/useSettingsMenu.d.ts +2 -0
  212. package/dist/admin/src/hooks/useEnterprise.d.ts +6 -4
  213. package/dist/admin/src/hooks/useSettingsMenu.d.ts +24 -0
  214. package/dist/admin/src/pages/Auth/AuthPage.d.ts +6 -0
  215. package/dist/admin/src/pages/Auth/components/FieldActionWrapper.d.ts +3 -0
  216. package/dist/admin/src/pages/Auth/components/ForgotPassword.d.ts +3 -0
  217. package/dist/admin/src/pages/Auth/components/ForgotPasswordSuccess.d.ts +2 -0
  218. package/dist/admin/src/pages/Auth/components/Login.d.ts +8 -0
  219. package/dist/admin/src/pages/Auth/components/Oops.d.ts +2 -0
  220. package/dist/admin/src/pages/Auth/components/Register.d.ts +7 -0
  221. package/dist/admin/src/pages/Auth/components/ResetPassword.d.ts +3 -0
  222. package/dist/admin/src/pages/Auth/constants.d.ts +14 -0
  223. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
  224. package/dist/admin/src/types/permissions.d.ts +10 -0
  225. package/dist/cli.js +3 -1
  226. package/dist/cli.js.map +1 -1
  227. package/dist/cli.mjs +3 -1
  228. package/dist/cli.mjs.map +1 -1
  229. package/dist/ee/admin/src/constants.d.ts +3 -1
  230. package/dist/ee/admin/src/pages/AuthPage/components/Login.d.ts +3 -0
  231. package/dist/ee/admin/src/pages/AuthPage/components/Providers.d.ts +2 -0
  232. package/dist/ee/admin/src/pages/AuthPage/components/SSOProviders.d.ts +8 -0
  233. package/dist/ee/admin/src/pages/AuthPage/constants.d.ts +3 -0
  234. package/dist/ee/admin/src/pages/AuthResponse.d.ts +2 -0
  235. package/dist/ee/admin/src/pages/HomePage.d.ts +1 -1
  236. package/dist/shared/contracts/authentication.d.ts +126 -0
  237. package/dist/shared/contracts/providers.d.ts +18 -0
  238. package/package.json +21 -21
  239. package/dist/_chunks/HomePage-a3cc32d2.mjs.map +0 -1
  240. package/dist/_chunks/HomePage-bdcb51be.js.map +0 -1
  241. package/dist/_chunks/SSOProviders-1d062c95.mjs.map +0 -1
  242. package/dist/_chunks/SSOProviders-1ef0a89e.js.map +0 -1
  243. package/dist/_chunks/constants-12dfb222.mjs +0 -34
  244. package/dist/_chunks/constants-12dfb222.mjs.map +0 -1
  245. package/dist/_chunks/constants-1aea1185.js +0 -34
  246. package/dist/_chunks/constants-1aea1185.js.map +0 -1
  247. package/dist/_chunks/constants-727a113c.js.map +0 -1
  248. package/dist/_chunks/constants-86aa3e70.js.map +0 -1
  249. package/dist/_chunks/constants-921eda17.mjs.map +0 -1
  250. package/dist/_chunks/constants-9de7641c.mjs.map +0 -1
  251. package/dist/_chunks/index-0af587c3.js.map +0 -1
  252. package/dist/_chunks/index-137490ba.js.map +0 -1
  253. package/dist/_chunks/index-16030b74.js.map +0 -1
  254. package/dist/_chunks/index-284c5926.js.map +0 -1
  255. package/dist/_chunks/index-305a03f4.mjs.map +0 -1
  256. package/dist/_chunks/index-34de382e.mjs.map +0 -1
  257. package/dist/_chunks/index-36e0d449.mjs.map +0 -1
  258. package/dist/_chunks/index-370a4ee8.mjs.map +0 -1
  259. package/dist/_chunks/index-48322669.mjs.map +0 -1
  260. package/dist/_chunks/index-5752584c.mjs.map +0 -1
  261. package/dist/_chunks/index-86dfbe3a.js.map +0 -1
  262. package/dist/_chunks/index-a4348f3b.js.map +0 -1
  263. package/dist/_chunks/index-b2257157.js.map +0 -1
  264. package/dist/_chunks/index-b81f7273.mjs.map +0 -1
  265. package/dist/_chunks/index-bdfc1149.mjs.map +0 -1
  266. package/dist/_chunks/index-edc9bb0b.js.map +0 -1
@@ -4,7 +4,7 @@ require("lodash/cloneDeep");
4
4
  require("lodash/get");
5
5
  require("lodash/omit");
6
6
  require("lodash/isNaN");
7
- const schema = require("./schema-f49c76d7.js");
7
+ const schema = require("./schema-8eebfdf9.js");
8
8
  require("lodash/merge");
9
9
  require("lodash/set");
10
10
  require("@strapi/helper-plugin");
@@ -12,14 +12,14 @@ const jsxRuntime = require("react/jsx-runtime");
12
12
  const designSystem = require("@strapi/design-system");
13
13
  const PropTypes = require("prop-types");
14
14
  const reactIntl = require("react-intl");
15
- const index = require("./index-b2257157.js");
15
+ const index = require("./index-17acbe23.js");
16
16
  const useAdminUsers = require("./useAdminUsers-05d6b26a.js");
17
17
  const useReviewWorkflows = require("./useReviewWorkflows-799e0305.js");
18
18
  const colors = require("./colors-c24a54f0.js");
19
19
  require("react");
20
20
  require("react-dnd");
21
21
  require("@reduxjs/toolkit");
22
- require("./index-edc9bb0b.js");
22
+ require("./index-e2663a88.js");
23
23
  require("react-dom/client");
24
24
  require("invariant");
25
25
  require("lodash/isFunction");
@@ -28,27 +28,27 @@ require("react-helmet");
28
28
  require("react-router-dom");
29
29
  require("react-redux");
30
30
  require("@radix-ui/react-context");
31
- require("axios");
32
- require("lodash/camelCase");
33
- require("lodash/defaultsDeep");
34
- require("styled-components");
31
+ require("@strapi/design-system/v2");
35
32
  require("@strapi/icons");
36
33
  require("formik");
37
- require("yup");
34
+ require("lodash/camelCase");
38
35
  require("react-query");
39
- require("immer");
36
+ require("styled-components");
37
+ require("yup");
38
+ require("lodash/defaultsDeep");
40
39
  require("qs");
40
+ require("immer");
41
41
  require("lodash/isBoolean");
42
42
  require("lodash/isEmpty");
43
43
  require("lodash/toNumber");
44
44
  require("lodash/sortBy");
45
45
  require("./DragLayer-f07eee6c.js");
46
- require("./AuthenticatedApp-092ef2be.js");
46
+ require("./AuthenticatedApp-d1e28164.js");
47
47
  require("semver/functions/lt");
48
48
  require("semver/functions/valid");
49
49
  require("react-dnd-html5-backend");
50
- require("@strapi/design-system/v2");
51
50
  require("react-error-boundary");
51
+ require("axios");
52
52
  require("lodash/isObject");
53
53
  require("lodash/isEqual");
54
54
  require("lodash/upperFirst");
@@ -83,6 +83,7 @@ require("lodash/unset");
83
83
  require("lodash/isArray");
84
84
  require("lodash/flatMap");
85
85
  require("lodash/uniq");
86
+ require("./formatAPIErrors-b599cf27.js");
86
87
  require("date-fns/parseISO");
87
88
  require("lodash/isNumber");
88
89
  require("lodash/groupBy");
@@ -225,4 +226,4 @@ const REVIEW_WORKFLOW_FILTERS = [
225
226
  }
226
227
  ];
227
228
  exports.REVIEW_WORKFLOW_FILTERS = REVIEW_WORKFLOW_FILTERS;
228
- //# sourceMappingURL=constants-a773ff9b.js.map
229
+ //# sourceMappingURL=constants-c9fce26f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-a773ff9b.js","sources":["../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/AssigneeFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/StageFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/constants.js"],"sourcesContent":["import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../../admin/src/content-manager/utils/getDisplayName';\nimport { useAdminUsers } from '../../../../../../../../admin/src/hooks/useAdminUsers';\n\nexport const AssigneeFilter = ({ value, onChange }) => {\n const { formatMessage } = useIntl();\n const { users, isLoading } = useAdminUsers();\n\n return (\n <Combobox\n value={value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select an user to filter',\n })}\n onChange={onChange}\n loading={isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nAssigneeFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n};\n\nAssigneeFilter.defaultProps = {\n value: '',\n};\n","import * as React from 'react';\n\nimport { Flex, Loader, SingleSelect, SingleSelectOption, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { useReviewWorkflows } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';\nimport { getStageColorByHex } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\nexport const StageFilter = ({ value, onChange, uid }) => {\n const { formatMessage } = useIntl();\n const {\n workflows: [workflow],\n isLoading,\n } = useReviewWorkflows({ filters: { contentTypes: uid } });\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.reviewWorkflows.label',\n defaultMessage: 'Search and select an workflow stage to filter',\n })}\n value={value}\n onChange={onChange}\n loading={isLoading}\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 {value}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} /> : null}\n </Flex>\n )}\n >\n {(workflow?.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={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nStageFilter.defaultProps = {\n value: '',\n};\n\nStageFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string.isRequired,\n value: PropTypes.string,\n};\n","import { getTrad } from '../../../../../../../../admin/src/content-manager/utils';\n\nimport { AssigneeFilter } from './AssigneeFilter';\nimport { StageFilter } from './StageFilter';\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'name',\n\n schema: {\n type: 'string',\n },\n },\n },\n\n metadatas: {\n customInput: StageFilter,\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n },\n\n name: 'strapi_stage',\n },\n\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'id',\n\n schema: {\n type: 'int',\n },\n },\n },\n\n metadatas: {\n customInput: AssigneeFilter,\n\n customOperators: [\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: 'Assignee',\n },\n },\n\n name: 'strapi_assignee',\n },\n];\n"],"names":["useIntl","useAdminUsers","jsx","Combobox","ComboboxOption","getDisplayName","PropTypes","useReviewWorkflows","SingleSelect","jsxs","Flex","Typography","Loader","getStageColorByHex","SingleSelectOption","getTrad"],"mappings":"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"}
1
+ {"version":3,"file":"constants-c9fce26f.js","sources":["../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/AssigneeFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/StageFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/constants.js"],"sourcesContent":["import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../../admin/src/content-manager/utils/getDisplayName';\nimport { useAdminUsers } from '../../../../../../../../admin/src/hooks/useAdminUsers';\n\nexport const AssigneeFilter = ({ value, onChange }) => {\n const { formatMessage } = useIntl();\n const { users, isLoading } = useAdminUsers();\n\n return (\n <Combobox\n value={value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select an user to filter',\n })}\n onChange={onChange}\n loading={isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nAssigneeFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n};\n\nAssigneeFilter.defaultProps = {\n value: '',\n};\n","import * as React from 'react';\n\nimport { Flex, Loader, SingleSelect, SingleSelectOption, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { useReviewWorkflows } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';\nimport { getStageColorByHex } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\nexport const StageFilter = ({ value, onChange, uid }) => {\n const { formatMessage } = useIntl();\n const {\n workflows: [workflow],\n isLoading,\n } = useReviewWorkflows({ filters: { contentTypes: uid } });\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.reviewWorkflows.label',\n defaultMessage: 'Search and select an workflow stage to filter',\n })}\n value={value}\n onChange={onChange}\n loading={isLoading}\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 {value}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} /> : null}\n </Flex>\n )}\n >\n {(workflow?.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={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nStageFilter.defaultProps = {\n value: '',\n};\n\nStageFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string.isRequired,\n value: PropTypes.string,\n};\n","import { getTrad } from '../../../../../../../../admin/src/content-manager/utils';\n\nimport { AssigneeFilter } from './AssigneeFilter';\nimport { StageFilter } from './StageFilter';\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'name',\n\n schema: {\n type: 'string',\n },\n },\n },\n\n metadatas: {\n customInput: StageFilter,\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n },\n\n name: 'strapi_stage',\n },\n\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'id',\n\n schema: {\n type: 'int',\n },\n },\n },\n\n metadatas: {\n customInput: AssigneeFilter,\n\n customOperators: [\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: 'Assignee',\n },\n },\n\n name: 'strapi_assignee',\n },\n];\n"],"names":["useIntl","useAdminUsers","jsx","Combobox","ComboboxOption","getDisplayName","PropTypes","useReviewWorkflows","SingleSelect","jsxs","Flex","Typography","Loader","getStageColorByHex","SingleSelectOption","getTrad"],"mappings":"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"}
@@ -2,7 +2,7 @@ const ROUTES_EE = [
2
2
  ...window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) ? [
3
3
  {
4
4
  async Component() {
5
- const component = await import("./index-59d22949.mjs");
5
+ const component = await import("./index-b4cc14ad.mjs");
6
6
  return component;
7
7
  },
8
8
  to: "/settings/audit-logs",
@@ -12,7 +12,7 @@ const ROUTES_EE = [
12
12
  ...window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS) ? [
13
13
  {
14
14
  async Component() {
15
- const component = await import("./index-af69bc98.mjs");
15
+ const component = await import("./index-01dfec54.mjs");
16
16
  return component;
17
17
  },
18
18
  to: "/settings/review-workflows",
@@ -20,7 +20,7 @@ const ROUTES_EE = [
20
20
  },
21
21
  {
22
22
  async Component() {
23
- const component = await import("./index-bb8093ea.mjs");
23
+ const component = await import("./index-18155022.mjs");
24
24
  return component;
25
25
  },
26
26
  to: "/settings/review-workflows/create",
@@ -28,7 +28,7 @@ const ROUTES_EE = [
28
28
  },
29
29
  {
30
30
  async Component() {
31
- const component = await import("./index-34a2909e.mjs");
31
+ const component = await import("./index-a3176d19.mjs");
32
32
  return component;
33
33
  },
34
34
  to: "/settings/review-workflows/:workflowId",
@@ -38,7 +38,7 @@ const ROUTES_EE = [
38
38
  ...window.strapi.features.isEnabled(window.strapi.features.SSO) ? [
39
39
  {
40
40
  async Component() {
41
- const component = await import("./index-36e0d449.mjs");
41
+ const component = await import("./index-c7386be1.mjs");
42
42
  return component;
43
43
  },
44
44
  to: "/settings/single-sign-on",
@@ -49,4 +49,4 @@ const ROUTES_EE = [
49
49
  export {
50
50
  ROUTES_EE
51
51
  };
52
- //# sourceMappingURL=constants-6157f648.mjs.map
52
+ //# sourceMappingURL=constants-cbadfd36.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-6157f648.mjs","sources":["../../ee/admin/src/pages/SettingsPage/constants.js"],"sourcesContent":["export const ROUTES_EE = [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n async Component() {\n const component = await import('./pages/AuditLogs/ProtectedListPage');\n\n return component;\n },\n to: '/settings/audit-logs',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS)\n ? [\n {\n async Component() {\n const component = await import('./pages/ReviewWorkflows/pages/ListView');\n\n return component;\n },\n to: '/settings/review-workflows',\n exact: true,\n },\n\n {\n async Component() {\n const component = await import('./pages/ReviewWorkflows/pages/CreateView');\n\n return component;\n },\n to: '/settings/review-workflows/create',\n exact: true,\n },\n\n {\n async Component() {\n const component = await import('./pages/ReviewWorkflows/pages/EditView');\n\n return component;\n },\n to: '/settings/review-workflows/:workflowId',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n async Component() {\n const component = await import('./pages/SingleSignOn');\n\n return component;\n },\n to: '/settings/single-sign-on',\n exact: true,\n },\n ]\n : []),\n];\n"],"names":[],"mappings":"AAAO,MAAM,YAAY;AAAA,EACvB,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,UAAU,IAClE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AACV,cAAA,YAAY,MAAM,OAAO,sBAAqC;AAE7D,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,gBAAgB,IACxE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AACV,cAAA,YAAY,MAAM,OAAO,sBAAwC;AAEhE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AACV,cAAA,YAAY,MAAM,OAAO,sBAA0C;AAElE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AACV,cAAA,YAAY,MAAM,OAAO,sBAAwC;AAEhE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,GAAG,IAC3D;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AACV,cAAA,YAAY,MAAM,OAAO,sBAAsB;AAE9C,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AACP;"}
1
+ {"version":3,"file":"constants-cbadfd36.mjs","sources":["../../ee/admin/src/pages/SettingsPage/constants.js"],"sourcesContent":["export const ROUTES_EE = [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n async Component() {\n const component = await import('./pages/AuditLogs/ProtectedListPage');\n\n return component;\n },\n to: '/settings/audit-logs',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS)\n ? [\n {\n async Component() {\n const component = await import('./pages/ReviewWorkflows/pages/ListView');\n\n return component;\n },\n to: '/settings/review-workflows',\n exact: true,\n },\n\n {\n async Component() {\n const component = await import('./pages/ReviewWorkflows/pages/CreateView');\n\n return component;\n },\n to: '/settings/review-workflows/create',\n exact: true,\n },\n\n {\n async Component() {\n const component = await import('./pages/ReviewWorkflows/pages/EditView');\n\n return component;\n },\n to: '/settings/review-workflows/:workflowId',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n async Component() {\n const component = await import('./pages/SingleSignOn');\n\n return component;\n },\n to: '/settings/single-sign-on',\n exact: true,\n },\n ]\n : []),\n];\n"],"names":[],"mappings":"AAAO,MAAM,YAAY;AAAA,EACvB,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,UAAU,IAClE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AACV,cAAA,YAAY,MAAM,OAAO,sBAAqC;AAE7D,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,gBAAgB,IACxE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AACV,cAAA,YAAY,MAAM,OAAO,sBAAwC;AAEhE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AACV,cAAA,YAAY,MAAM,OAAO,sBAA0C;AAElE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AACV,cAAA,YAAY,MAAM,OAAO,sBAAwC;AAEhE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,GAAG,IAC3D;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AACV,cAAA,YAAY,MAAM,OAAO,sBAAsB;AAE9C,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AACP;"}
@@ -2,7 +2,7 @@ import "lodash/cloneDeep";
2
2
  import "lodash/get";
3
3
  import "lodash/omit";
4
4
  import "lodash/isNaN";
5
- import { g as getTrad } from "./schema-a95f2514.mjs";
5
+ import { g as getTrad } from "./schema-ac25a47b.mjs";
6
6
  import "lodash/merge";
7
7
  import "lodash/set";
8
8
  import "@strapi/helper-plugin";
@@ -10,14 +10,14 @@ import { jsx, jsxs } from "react/jsx-runtime";
10
10
  import { Combobox, ComboboxOption, SingleSelect, Flex, Typography, Loader, SingleSelectOption } from "@strapi/design-system";
11
11
  import PropTypes from "prop-types";
12
12
  import { useIntl } from "react-intl";
13
- import { g as getDisplayName } from "./index-bdfc1149.mjs";
13
+ import { g as getDisplayName } from "./index-768b7de9.mjs";
14
14
  import { u as useAdminUsers } from "./useAdminUsers-09f86a58.mjs";
15
15
  import { u as useReviewWorkflows } from "./useReviewWorkflows-9e6b8986.mjs";
16
16
  import { g as getStageColorByHex } from "./colors-e7489dd4.mjs";
17
17
  import "react";
18
18
  import "react-dnd";
19
19
  import "@reduxjs/toolkit";
20
- import "./index-34de382e.mjs";
20
+ import "./index-60a57d31.mjs";
21
21
  import "react-dom/client";
22
22
  import "invariant";
23
23
  import "lodash/isFunction";
@@ -26,27 +26,27 @@ import "react-helmet";
26
26
  import "react-router-dom";
27
27
  import "react-redux";
28
28
  import "@radix-ui/react-context";
29
- import "axios";
30
- import "lodash/camelCase";
31
- import "lodash/defaultsDeep";
32
- import "styled-components";
29
+ import "@strapi/design-system/v2";
33
30
  import "@strapi/icons";
34
31
  import "formik";
35
- import "yup";
32
+ import "lodash/camelCase";
36
33
  import "react-query";
37
- import "immer";
34
+ import "styled-components";
35
+ import "yup";
36
+ import "lodash/defaultsDeep";
38
37
  import "qs";
38
+ import "immer";
39
39
  import "lodash/isBoolean";
40
40
  import "lodash/isEmpty";
41
41
  import "lodash/toNumber";
42
42
  import "lodash/sortBy";
43
43
  import "./DragLayer-bff96835.mjs";
44
- import "./AuthenticatedApp-b0ada7e9.mjs";
44
+ import "./AuthenticatedApp-fd7e406d.mjs";
45
45
  import "semver/functions/lt";
46
46
  import "semver/functions/valid";
47
47
  import "react-dnd-html5-backend";
48
- import "@strapi/design-system/v2";
49
48
  import "react-error-boundary";
49
+ import "axios";
50
50
  import "lodash/isObject";
51
51
  import "lodash/isEqual";
52
52
  import "lodash/upperFirst";
@@ -81,6 +81,7 @@ import "lodash/unset";
81
81
  import "lodash/isArray";
82
82
  import "lodash/flatMap";
83
83
  import "lodash/uniq";
84
+ import "./formatAPIErrors-db6ed675.mjs";
84
85
  import "date-fns/parseISO";
85
86
  import "lodash/isNumber";
86
87
  import "lodash/groupBy";
@@ -223,4 +224,4 @@ const REVIEW_WORKFLOW_FILTERS = [
223
224
  export {
224
225
  REVIEW_WORKFLOW_FILTERS
225
226
  };
226
- //# sourceMappingURL=constants-27319180.mjs.map
227
+ //# sourceMappingURL=constants-cd1acf1b.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-27319180.mjs","sources":["../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/AssigneeFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/StageFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/constants.js"],"sourcesContent":["import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../../admin/src/content-manager/utils/getDisplayName';\nimport { useAdminUsers } from '../../../../../../../../admin/src/hooks/useAdminUsers';\n\nexport const AssigneeFilter = ({ value, onChange }) => {\n const { formatMessage } = useIntl();\n const { users, isLoading } = useAdminUsers();\n\n return (\n <Combobox\n value={value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select an user to filter',\n })}\n onChange={onChange}\n loading={isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nAssigneeFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n};\n\nAssigneeFilter.defaultProps = {\n value: '',\n};\n","import * as React from 'react';\n\nimport { Flex, Loader, SingleSelect, SingleSelectOption, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { useReviewWorkflows } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';\nimport { getStageColorByHex } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\nexport const StageFilter = ({ value, onChange, uid }) => {\n const { formatMessage } = useIntl();\n const {\n workflows: [workflow],\n isLoading,\n } = useReviewWorkflows({ filters: { contentTypes: uid } });\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.reviewWorkflows.label',\n defaultMessage: 'Search and select an workflow stage to filter',\n })}\n value={value}\n onChange={onChange}\n loading={isLoading}\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 {value}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} /> : null}\n </Flex>\n )}\n >\n {(workflow?.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={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nStageFilter.defaultProps = {\n value: '',\n};\n\nStageFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string.isRequired,\n value: PropTypes.string,\n};\n","import { getTrad } from '../../../../../../../../admin/src/content-manager/utils';\n\nimport { AssigneeFilter } from './AssigneeFilter';\nimport { StageFilter } from './StageFilter';\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'name',\n\n schema: {\n type: 'string',\n },\n },\n },\n\n metadatas: {\n customInput: StageFilter,\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n },\n\n name: 'strapi_stage',\n },\n\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'id',\n\n schema: {\n type: 'int',\n },\n },\n },\n\n metadatas: {\n customInput: AssigneeFilter,\n\n customOperators: [\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: 'Assignee',\n },\n },\n\n name: 'strapi_assignee',\n },\n];\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants-cd1acf1b.mjs","sources":["../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/AssigneeFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/StageFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/constants.js"],"sourcesContent":["import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../../admin/src/content-manager/utils/getDisplayName';\nimport { useAdminUsers } from '../../../../../../../../admin/src/hooks/useAdminUsers';\n\nexport const AssigneeFilter = ({ value, onChange }) => {\n const { formatMessage } = useIntl();\n const { users, isLoading } = useAdminUsers();\n\n return (\n <Combobox\n value={value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select an user to filter',\n })}\n onChange={onChange}\n loading={isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nAssigneeFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n};\n\nAssigneeFilter.defaultProps = {\n value: '',\n};\n","import * as React from 'react';\n\nimport { Flex, Loader, SingleSelect, SingleSelectOption, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { useReviewWorkflows } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';\nimport { getStageColorByHex } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\nexport const StageFilter = ({ value, onChange, uid }) => {\n const { formatMessage } = useIntl();\n const {\n workflows: [workflow],\n isLoading,\n } = useReviewWorkflows({ filters: { contentTypes: uid } });\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.reviewWorkflows.label',\n defaultMessage: 'Search and select an workflow stage to filter',\n })}\n value={value}\n onChange={onChange}\n loading={isLoading}\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 {value}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} /> : null}\n </Flex>\n )}\n >\n {(workflow?.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={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nStageFilter.defaultProps = {\n value: '',\n};\n\nStageFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string.isRequired,\n value: PropTypes.string,\n};\n","import { getTrad } from '../../../../../../../../admin/src/content-manager/utils';\n\nimport { AssigneeFilter } from './AssigneeFilter';\nimport { StageFilter } from './StageFilter';\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'name',\n\n schema: {\n type: 'string',\n },\n },\n },\n\n metadatas: {\n customInput: StageFilter,\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n },\n\n name: 'strapi_stage',\n },\n\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'id',\n\n schema: {\n type: 'int',\n },\n },\n },\n\n metadatas: {\n customInput: AssigneeFilter,\n\n customOperators: [\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: 'Assignee',\n },\n },\n\n name: 'strapi_assignee',\n },\n];\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./index-86dfbe3a.js");
3
+ const index = require("./index-cce8ecb6.js");
4
4
  require("@strapi/typescript-utils");
5
5
  require("node:os");
6
6
  require("node:fs/promises");
@@ -14,6 +14,7 @@ require("outdent");
14
14
  require("prettier");
15
15
  require("react");
16
16
  require("react-dom/server");
17
+ require("react/jsx-runtime");
17
18
  require("webpack");
18
19
  require("browserslist-to-esbuild");
19
20
  require("esbuild-loader");
@@ -38,6 +39,7 @@ require("@strapi/strapi/dist/utils/ee");
38
39
  require("perf_hooks");
39
40
  require("chokidar");
40
41
  require("node:cluster");
42
+ require("node:util");
41
43
  require("webpack-dev-middleware");
42
44
  require("webpack-hot-middleware");
43
45
  const develop = async (options) => {
@@ -56,4 +58,4 @@ const develop = async (options) => {
56
58
  }
57
59
  };
58
60
  exports.develop = develop;
59
- //# sourceMappingURL=develop-513c9644.js.map
61
+ //# sourceMappingURL=develop-69e28e61.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"develop-513c9644.js","sources":["../../_internal/cli/commands/develop.ts"],"sourcesContent":["import { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ninterface DevelopCLIOptions extends DevelopOptions {\n /**\n * @deprecated\n */\n browser?: boolean;\n}\n\nconst develop = async (options: DevelopCLIOptions) => {\n try {\n if (typeof options.browser !== 'undefined') {\n options.logger.warn(\n \"[@strapi/strapi]: The browser argument, this is now deprecated. Use '--open' instead.\"\n );\n }\n\n await nodeDevelop({\n ...options,\n open: options.browser ?? options.open,\n });\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\nexport { develop };\nexport type { DevelopCLIOptions };\n"],"names":["nodeDevelop","handleUnexpectedError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUM,MAAA,UAAU,OAAO,YAA+B;AAChD,MAAA;AACE,QAAA,OAAO,QAAQ,YAAY,aAAa;AAC1C,cAAQ,OAAO;AAAA,QACb;AAAA,MAAA;AAAA,IAEJ;AAEA,UAAMA,cAAY;AAAA,MAChB,GAAG;AAAA,MACH,MAAM,QAAQ,WAAW,QAAQ;AAAA,IAAA,CAClC;AAAA,WACM,KAAK;AACZC,UAAA,sBAAsB,GAAG;AAAA,EAC3B;AACF;;"}
1
+ {"version":3,"file":"develop-69e28e61.js","sources":["../../_internal/cli/commands/develop.ts"],"sourcesContent":["import { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ninterface DevelopCLIOptions extends DevelopOptions {\n /**\n * @deprecated\n */\n browser?: boolean;\n}\n\nconst develop = async (options: DevelopCLIOptions) => {\n try {\n if (typeof options.browser !== 'undefined') {\n options.logger.warn(\n \"[@strapi/strapi]: The browser argument, this is now deprecated. Use '--open' instead.\"\n );\n }\n\n await nodeDevelop({\n ...options,\n open: options.browser ?? options.open,\n });\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\nexport { develop };\nexport type { DevelopCLIOptions };\n"],"names":["nodeDevelop","handleUnexpectedError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUM,MAAA,UAAU,OAAO,YAA+B;AAChD,MAAA;AACE,QAAA,OAAO,QAAQ,YAAY,aAAa;AAC1C,cAAQ,OAAO;AAAA,QACb;AAAA,MAAA;AAAA,IAEJ;AAEA,UAAMA,cAAY;AAAA,MAChB,GAAG;AAAA,MACH,MAAM,QAAQ,WAAW,QAAQ;AAAA,IAAA,CAClC;AAAA,WACM,KAAK;AACZC,UAAA,sBAAsB,GAAG;AAAA,EAC3B;AACF;;"}
@@ -1,4 +1,4 @@
1
- import { d as develop$1, h as handleUnexpectedError } from "./index-5752584c.mjs";
1
+ import { d as develop$1, h as handleUnexpectedError } from "./index-44360544.mjs";
2
2
  import "@strapi/typescript-utils";
3
3
  import "node:os";
4
4
  import "node:fs/promises";
@@ -12,6 +12,7 @@ import "outdent";
12
12
  import "prettier";
13
13
  import "react";
14
14
  import "react-dom/server";
15
+ import "react/jsx-runtime";
15
16
  import "webpack";
16
17
  import "browserslist-to-esbuild";
17
18
  import "esbuild-loader";
@@ -36,6 +37,7 @@ import "@strapi/strapi/dist/utils/ee";
36
37
  import "perf_hooks";
37
38
  import "chokidar";
38
39
  import "node:cluster";
40
+ import "node:util";
39
41
  import "webpack-dev-middleware";
40
42
  import "webpack-hot-middleware";
41
43
  const develop = async (options) => {
@@ -56,4 +58,4 @@ const develop = async (options) => {
56
58
  export {
57
59
  develop
58
60
  };
59
- //# sourceMappingURL=develop-e45b460e.mjs.map
61
+ //# sourceMappingURL=develop-d97e7494.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"develop-e45b460e.mjs","sources":["../../_internal/cli/commands/develop.ts"],"sourcesContent":["import { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ninterface DevelopCLIOptions extends DevelopOptions {\n /**\n * @deprecated\n */\n browser?: boolean;\n}\n\nconst develop = async (options: DevelopCLIOptions) => {\n try {\n if (typeof options.browser !== 'undefined') {\n options.logger.warn(\n \"[@strapi/strapi]: The browser argument, this is now deprecated. Use '--open' instead.\"\n );\n }\n\n await nodeDevelop({\n ...options,\n open: options.browser ?? options.open,\n });\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\nexport { develop };\nexport type { DevelopCLIOptions };\n"],"names":["nodeDevelop"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUM,MAAA,UAAU,OAAO,YAA+B;AAChD,MAAA;AACE,QAAA,OAAO,QAAQ,YAAY,aAAa;AAC1C,cAAQ,OAAO;AAAA,QACb;AAAA,MAAA;AAAA,IAEJ;AAEA,UAAMA,UAAY;AAAA,MAChB,GAAG;AAAA,MACH,MAAM,QAAQ,WAAW,QAAQ;AAAA,IAAA,CAClC;AAAA,WACM,KAAK;AACZ,0BAAsB,GAAG;AAAA,EAC3B;AACF;"}
1
+ {"version":3,"file":"develop-d97e7494.mjs","sources":["../../_internal/cli/commands/develop.ts"],"sourcesContent":["import { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ninterface DevelopCLIOptions extends DevelopOptions {\n /**\n * @deprecated\n */\n browser?: boolean;\n}\n\nconst develop = async (options: DevelopCLIOptions) => {\n try {\n if (typeof options.browser !== 'undefined') {\n options.logger.warn(\n \"[@strapi/strapi]: The browser argument, this is now deprecated. Use '--open' instead.\"\n );\n }\n\n await nodeDevelop({\n ...options,\n open: options.browser ?? options.open,\n });\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\nexport { develop };\nexport type { DevelopCLIOptions };\n"],"names":["nodeDevelop"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUM,MAAA,UAAU,OAAO,YAA+B;AAChD,MAAA;AACE,QAAA,OAAO,QAAQ,YAAY,aAAa;AAC1C,cAAQ,OAAO;AAAA,QACb;AAAA,MAAA;AAAA,IAEJ;AAEA,UAAMA,UAAY;AAAA,MAChB,GAAG;AAAA,MACH,MAAM,QAAQ,WAAW,QAAQ;AAAA,IAAA,CAClC;AAAA,WACM,KAAK;AACZ,0BAAsB,GAAG;AAAA,EAC3B;AACF;"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ const formatAPIErrors = ({ data }) => {
3
+ try {
4
+ return Object.keys(data).reduce(
5
+ (acc, current) => {
6
+ const errorMessage = data[current][0];
7
+ acc[current] = {
8
+ id: errorMessage,
9
+ defaultMessage: errorMessage
10
+ };
11
+ return acc;
12
+ },
13
+ {}
14
+ );
15
+ } catch (err) {
16
+ return {};
17
+ }
18
+ };
19
+ exports.formatAPIErrors = formatAPIErrors;
20
+ //# sourceMappingURL=formatAPIErrors-b599cf27.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatAPIErrors-b599cf27.js","sources":["../../admin/src/utils/formatAPIErrors.ts"],"sourcesContent":["export const formatAPIErrors = ({ data }: { data: Record<string, string[]> }) => {\n try {\n return Object.keys(data).reduce(\n (acc: Record<string, { id: string; defaultMessage: string }>, current) => {\n const errorMessage = data[current][0];\n acc[current] = {\n id: errorMessage,\n defaultMessage: errorMessage,\n };\n\n return acc;\n },\n {}\n );\n } catch (err) {\n return {};\n }\n};\n"],"names":[],"mappings":";AAAO,MAAM,kBAAkB,CAAC,EAAE,WAA+C;AAC3E,MAAA;AACK,WAAA,OAAO,KAAK,IAAI,EAAE;AAAA,MACvB,CAAC,KAA6D,YAAY;AACxE,cAAM,eAAe,KAAK,OAAO,EAAE,CAAC;AACpC,YAAI,OAAO,IAAI;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA;AAGX,eAAA;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IAAA;AAAA,WAEI,KAAK;AACZ,WAAO;EACT;AACF;;"}
@@ -0,0 +1,21 @@
1
+ const formatAPIErrors = ({ data }) => {
2
+ try {
3
+ return Object.keys(data).reduce(
4
+ (acc, current) => {
5
+ const errorMessage = data[current][0];
6
+ acc[current] = {
7
+ id: errorMessage,
8
+ defaultMessage: errorMessage
9
+ };
10
+ return acc;
11
+ },
12
+ {}
13
+ );
14
+ } catch (err) {
15
+ return {};
16
+ }
17
+ };
18
+ export {
19
+ formatAPIErrors as f
20
+ };
21
+ //# sourceMappingURL=formatAPIErrors-db6ed675.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatAPIErrors-db6ed675.mjs","sources":["../../admin/src/utils/formatAPIErrors.ts"],"sourcesContent":["export const formatAPIErrors = ({ data }: { data: Record<string, string[]> }) => {\n try {\n return Object.keys(data).reduce(\n (acc: Record<string, { id: string; defaultMessage: string }>, current) => {\n const errorMessage = data[current][0];\n acc[current] = {\n id: errorMessage,\n defaultMessage: errorMessage,\n };\n\n return acc;\n },\n {}\n );\n } catch (err) {\n return {};\n }\n};\n"],"names":[],"mappings":"AAAO,MAAM,kBAAkB,CAAC,EAAE,WAA+C;AAC3E,MAAA;AACK,WAAA,OAAO,KAAK,IAAI,EAAE;AAAA,MACvB,CAAC,KAA6D,YAAY;AACxE,cAAM,eAAe,KAAK,OAAO,EAAE,CAAC;AACpC,YAAI,OAAO,IAAI;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA;AAGX,eAAA;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IAAA;AAAA,WAEI,KAAK;AACZ,WAAO;EACT;AACF;"}
@@ -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-fd7e406d.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-60a57d31.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-01dfec54.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-01dfec54.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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"}